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
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # dialkit
2
2
 
3
- Real-time parameter tweaking for React + Motion.
3
+ Real-time parameter tweaking for React, Solid, and Svelte.
4
4
 
5
5
  ## Quick Start
6
6
 
@@ -256,8 +256,36 @@ const values = useDialKit('Controls', {
256
256
  |------|------|---------|
257
257
  | `position` | `'top-right' \| 'top-left' \| 'bottom-right' \| 'bottom-left'` | `'top-right'` |
258
258
  | `defaultOpen` | `boolean` | `true` |
259
+ | `mode` | `'popover' \| 'inline'` | `'popover'` |
259
260
 
260
- Mount once at your app root. The panel renders via a portal on `document.body`. It collapses to a small icon button and expands to 280px wide on click.
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:
266
+
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.
261
289
 
262
290
  ---
263
291
 
@@ -328,6 +356,99 @@ function PhotoStack() {
328
356
 
329
357
  ---
330
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
+
331
452
  ## Types
332
453
 
333
454
  All config and value types are exported:
package/dist/index.cjs CHANGED
@@ -561,7 +561,7 @@ var import_react16 = require("motion/react");
561
561
  var import_react2 = require("react");
562
562
  var import_react3 = require("motion/react");
563
563
  var import_jsx_runtime = require("react/jsx-runtime");
564
- function Folder({ title, children, defaultOpen = true, isRoot = false, onOpenChange, toolbar }) {
564
+ function Folder({ title, children, defaultOpen = true, isRoot = false, inline = false, onOpenChange, toolbar }) {
565
565
  const [isOpen, setIsOpen] = (0, import_react2.useState)(defaultOpen);
566
566
  const [isCollapsed, setIsCollapsed] = (0, import_react2.useState)(!defaultOpen);
567
567
  const contentRef = (0, import_react2.useRef)(null);
@@ -579,6 +579,7 @@ function Folder({ title, children, defaultOpen = true, isRoot = false, onOpenCha
579
579
  return () => ro.disconnect();
580
580
  }, [isOpen]);
581
581
  const handleToggle = () => {
582
+ if (inline && isRoot) return;
582
583
  const next = !isOpen;
583
584
  setIsOpen(next);
584
585
  if (next) {
@@ -592,40 +593,35 @@ function Folder({ title, children, defaultOpen = true, isRoot = false, onOpenCha
592
593
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `dialkit-folder-header ${isRoot ? "dialkit-panel-header" : ""}`, onClick: handleToggle, children: [
593
594
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dialkit-folder-header-top", children: [
594
595
  isRoot ? isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dialkit-folder-title-row", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dialkit-folder-title dialkit-folder-title-root", children: title }) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dialkit-folder-title-row", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dialkit-folder-title", children: title }) }),
595
- isRoot ? (
596
- // Root panel icon — fixed position, container morphs around it
597
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
598
- "svg",
599
- {
600
- className: "dialkit-panel-icon",
601
- viewBox: "0 0 16 16",
602
- fill: "none",
603
- children: [
604
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("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" }),
605
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "6", cy: "8", r: "0.998596", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" }),
606
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "10.4999", cy: "3.5", r: "0.998657", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" }),
607
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "9.75015", cy: "12.5", r: "0.997986", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" })
608
- ]
609
- }
610
- )
611
- ) : (
612
- // Section folders use rotating chevron with gentle spring
613
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
614
- import_react3.motion.svg,
615
- {
616
- className: "dialkit-folder-icon",
617
- viewBox: "0 0 24 24",
618
- fill: "none",
619
- stroke: "currentColor",
620
- strokeWidth: "2.5",
621
- strokeLinecap: "round",
622
- strokeLinejoin: "round",
623
- initial: false,
624
- animate: { rotate: isOpen ? 0 : 180 },
625
- transition: { type: "spring", visualDuration: 0.35, bounce: 0.15 },
626
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M6 9.5L12 15.5L18 9.5" })
627
- }
628
- )
596
+ isRoot && !inline && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
597
+ "svg",
598
+ {
599
+ className: "dialkit-panel-icon",
600
+ viewBox: "0 0 16 16",
601
+ fill: "none",
602
+ children: [
603
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("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" }),
604
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "6", cy: "8", r: "0.998596", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" }),
605
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "10.4999", cy: "3.5", r: "0.998657", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" }),
606
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "9.75015", cy: "12.5", r: "0.997986", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.25" })
607
+ ]
608
+ }
609
+ ),
610
+ !isRoot && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
611
+ import_react3.motion.svg,
612
+ {
613
+ className: "dialkit-folder-icon",
614
+ viewBox: "0 0 24 24",
615
+ fill: "none",
616
+ stroke: "currentColor",
617
+ strokeWidth: "2.5",
618
+ strokeLinecap: "round",
619
+ strokeLinejoin: "round",
620
+ initial: false,
621
+ animate: { rotate: isOpen ? 0 : 180 },
622
+ transition: { type: "spring", visualDuration: 0.35, bounce: 0.15 },
623
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M6 9.5L12 15.5L18 9.5" })
624
+ }
629
625
  )
630
626
  ] }),
631
627
  isRoot && toolbar && isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dialkit-panel-toolbar", onClick: (e) => e.stopPropagation(), children: toolbar })
@@ -644,6 +640,9 @@ function Folder({ title, children, defaultOpen = true, isRoot = false, onOpenCha
644
640
  ) })
645
641
  ] });
646
642
  if (isRoot) {
643
+ if (inline) {
644
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "dialkit-panel-inner dialkit-panel-inline", children: folderContent });
645
+ }
647
646
  const panelStyle = isOpen ? { width: 280, height: contentHeight !== void 0 ? contentHeight + 24 : "auto", borderRadius: 14, boxShadow: "0 8px 32px rgba(0, 0, 0, 0.5)", cursor: void 0 } : { width: 42, height: 42, borderRadius: 21, boxShadow: "0 4px 16px rgba(0, 0, 0, 0.25)", overflow: "hidden", cursor: "pointer" };
648
647
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
649
648
  import_react3.motion.div,
@@ -1838,7 +1837,7 @@ function PresetManager({ panelId, presets, activePresetId, onAdd }) {
1838
1837
 
1839
1838
  // src/components/Panel.tsx
1840
1839
  var import_jsx_runtime13 = require("react/jsx-runtime");
1841
- function Panel({ panel, defaultOpen = true }) {
1840
+ function Panel({ panel, defaultOpen = true, inline = false }) {
1842
1841
  const [copied, setCopied] = (0, import_react15.useState)(false);
1843
1842
  const [isPanelOpen, setIsPanelOpen] = (0, import_react15.useState)(defaultOpen);
1844
1843
  const values = (0, import_react15.useSyncExternalStore)(
@@ -2043,14 +2042,15 @@ Apply these values as the new defaults in the useDialKit call.`;
2043
2042
  }
2044
2043
  )
2045
2044
  ] });
2046
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "dialkit-panel-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Folder, { title: panel.name, defaultOpen, isRoot: true, onOpenChange: setIsPanelOpen, toolbar, children: renderControls() }) });
2045
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "dialkit-panel-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Folder, { title: panel.name, defaultOpen, isRoot: true, inline, onOpenChange: setIsPanelOpen, toolbar, children: renderControls() }) });
2047
2046
  }
2048
2047
 
2049
2048
  // src/components/DialRoot.tsx
2050
2049
  var import_jsx_runtime14 = require("react/jsx-runtime");
2051
- function DialRoot({ position = "top-right", defaultOpen = true }) {
2050
+ function DialRoot({ position = "top-right", defaultOpen = true, mode = "popover" }) {
2052
2051
  const [panels, setPanels] = (0, import_react17.useState)([]);
2053
2052
  const [mounted, setMounted] = (0, import_react17.useState)(false);
2053
+ const inline = mode === "inline";
2054
2054
  (0, import_react17.useEffect)(() => {
2055
2055
  setMounted(true);
2056
2056
  setPanels(DialStore.getPanels());
@@ -2065,7 +2065,10 @@ function DialRoot({ position = "top-right", defaultOpen = true }) {
2065
2065
  if (panels.length === 0) {
2066
2066
  return null;
2067
2067
  }
2068
- const content = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "dialkit-root", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "dialkit-panel", "data-position": position, children: panels.map((panel) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Panel, { panel, defaultOpen }, panel.id)) }) });
2068
+ const content = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "dialkit-root", "data-mode": mode, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "dialkit-panel", "data-position": inline ? void 0 : position, "data-mode": mode, children: panels.map((panel) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Panel, { panel, defaultOpen: inline || defaultOpen, inline }, panel.id)) }) });
2069
+ if (inline) {
2070
+ return content;
2071
+ }
2069
2072
  return (0, import_react_dom3.createPortal)(content, document.body);
2070
2073
  }
2071
2074