@bpmnkit/editor 0.0.35 → 0.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/dist/dock.js CHANGED
@@ -1,131 +1,109 @@
1
+ import { injectChromeStyles } from "./chrome.js";
1
2
  const DOCK_STYLE_ID = "bpmnkit-side-dock-styles-v1";
2
3
  const STORAGE_KEY_WIDTH = "bpmnkit-side-dock-width";
3
4
  const STORAGE_KEY_COLLAPSED = "bpmnkit-side-dock-collapsed";
4
5
  const MIN_WIDTH = 280;
5
6
  const MAX_WIDTH = 700;
6
- const DEFAULT_WIDTH = 360;
7
+ const DEFAULT_WIDTH = 340;
7
8
  const DOCK_CSS = `
8
- /* ── Side Dock ──────────────────────────────────────────────────────────── */
9
- .bpmnkit-side-dock__tab:disabled { opacity: 0.3; cursor: default; }
9
+ /* ── Side dock ───────────────────────────────────────────────────────────
10
+ The properties panel, in the bpmnkit.com design system: flat, square,
11
+ hairline-bounded, mono uppercase labels. Grounds follow the HUD theme
12
+ variables declared in css.ts, so the two read as one piece of chrome.
13
+ ──────────────────────────────────────────────────────────────────────── */
10
14
  .bpmnkit-side-dock {
11
15
  position: fixed; right: 0; top: 36px; bottom: 0;
12
16
  z-index: 9999; display: flex; flex-direction: column;
13
- background: rgba(18, 18, 26, 0.98);
14
- border-left: 1px solid rgba(255,255,255,0.1);
15
- box-shadow: -8px 0 40px rgba(0,0,0,0.6);
16
- font-family: system-ui, -apple-system, sans-serif;
17
+ background: var(--bpmnkit-chrome-ground, #ffffff);
18
+ border-left: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14));
19
+ font-family: var(--bpmnkit-ds-font-sans, system-ui, -apple-system, sans-serif);
17
20
  transition: width 0.22s ease;
18
21
  }
19
- /* Pill handle — sticks out from the left edge; always visible + clickable */
22
+ /* Square handle — sticks out from the left edge; always visible + clickable */
20
23
  .bpmnkit-side-dock__collapse-handle {
21
24
  position: absolute; left: -20px; top: 50%; transform: translateY(-50%);
22
25
  width: 20px; height: 52px;
23
- background: rgba(18, 18, 26, 0.98);
24
- border: 1px solid rgba(255,255,255,0.1); border-right: none;
25
- border-radius: 8px 0 0 8px;
26
+ background: var(--bpmnkit-chrome-ground, #ffffff);
27
+ border: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14)); border-right: none;
26
28
  display: flex; align-items: center; justify-content: center;
27
29
  cursor: pointer; z-index: 1;
28
- color: rgba(255,255,255,0.45); font-size: 14px; line-height: 1;
29
- transition: color 0.1s, background 0.1s;
30
+ color: var(--bpmnkit-chrome-ink-4, #9aa1aa);
31
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
32
+ font-size: 13px; line-height: 1;
33
+ font-variant-emoji: text;
30
34
  user-select: none;
31
35
  }
32
- .bpmnkit-side-dock__collapse-handle:hover { color: #fff; background: rgba(40,40,60,0.99); }
36
+ .bpmnkit-side-dock__collapse-handle:hover { color: var(--bpmnkit-chrome-ink, #f4f5f7); background: var(--bpmnkit-chrome-hover, rgba(255,255,255,0.07)); }
33
37
  .bpmnkit-side-dock__resize-handle {
34
38
  position: absolute; left: 0; top: 0; bottom: 0;
35
39
  width: 5px; cursor: ew-resize; z-index: 2;
36
40
  }
37
- .bpmnkit-side-dock__resize-handle:hover { background: rgba(76,142,247,0.35); }
41
+ .bpmnkit-side-dock__resize-handle:hover { background: var(--bpmnkit-chrome-accent, #c9755c); }
42
+
43
+ /* ── Tabs — equal-width row, the underline sits on the row's own rule ── */
38
44
  .bpmnkit-side-dock__tab-strip {
39
- display: flex; align-items: center; height: 38px; flex-shrink: 0;
40
- border-bottom: 1px solid rgba(255,255,255,0.08);
45
+ display: flex; align-items: stretch; height: 34px; flex-shrink: 0;
46
+ border-bottom: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14));
47
+ overflow-x: auto; scrollbar-width: none;
41
48
  }
49
+ .bpmnkit-side-dock__tab-strip::-webkit-scrollbar { display: none; }
50
+ /* Equal-width while the labels fit; the strip scrolls rather than clipping them. */
42
51
  .bpmnkit-side-dock__tab {
43
- padding: 0 16px; height: 100%; background: none; border: none;
44
- border-bottom: 2px solid transparent; color: rgba(255,255,255,0.4);
45
- cursor: pointer; font-size: 12px; font-weight: 500; white-space: nowrap;
46
- transition: color 0.1s, border-color 0.1s;
47
- font-family: system-ui, -apple-system, sans-serif;
52
+ flex: 1 0 auto;
53
+ padding: 0 10px; height: 100%; background: none; border: none;
54
+ border-bottom: 2px solid transparent; color: var(--bpmnkit-chrome-ink-4, #9aa1aa);
55
+ cursor: pointer; white-space: nowrap;
56
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
57
+ font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px);
58
+ letter-spacing: 0.08em; text-transform: uppercase;
59
+ }
60
+ .bpmnkit-side-dock__tab:hover { color: var(--bpmnkit-chrome-ink-2, #c8ccd2); }
61
+ .bpmnkit-side-dock__tab.active {
62
+ color: var(--bpmnkit-chrome-ink, #f4f5f7);
63
+ border-bottom-color: var(--bpmnkit-chrome-accent, #c9755c);
64
+ margin-bottom: -1px;
48
65
  }
49
- .bpmnkit-side-dock__tab:hover { color: rgba(255,255,255,0.75); }
50
- .bpmnkit-side-dock__tab.active { color: #4c8ef7; border-bottom-color: #4c8ef7; }
66
+ .bpmnkit-side-dock__tab:disabled { opacity: 0.3; cursor: default; }
51
67
  .bpmnkit-side-dock__pane {
52
68
  flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0;
53
69
  }
54
70
  .bpmnkit-side-dock__pane--hidden { display: none; }
55
- /* Empty state — info widget + hint, shown when no element is selected */
71
+
72
+ /* ── Empty state — info rows + hint, shown when nothing is selected ── */
56
73
  .bpmnkit-side-dock__empty {
57
74
  flex: 1; display: flex; flex-direction: column;
58
- overflow-y: auto; padding: 14px 16px;
59
- gap: 0;
75
+ overflow-y: auto; padding: 0 20px;
60
76
  }
61
77
  .bpmnkit-side-dock__info-row {
62
78
  display: flex; flex-direction: column;
63
- padding: 10px 0;
64
- border-bottom: 1px solid rgba(255,255,255,0.06);
65
- gap: 3px;
79
+ padding: 14px 0;
80
+ border-bottom: 1px solid var(--bpmnkit-chrome-line-soft, rgba(255, 255, 255, 0.08));
81
+ gap: 7px;
66
82
  }
67
83
  .bpmnkit-side-dock__info-label {
68
- font-size: 10px; font-weight: 700; text-transform: uppercase;
69
- letter-spacing: 0.08em; color: rgba(255,255,255,0.3);
84
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
85
+ font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
86
+ text-transform: uppercase; color: var(--bpmnkit-chrome-ink-4, #9aa1aa);
70
87
  }
71
88
  .bpmnkit-side-dock__info-value {
72
- font-size: 13px; color: rgba(255,255,255,0.75); word-break: break-word;
89
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
90
+ font-size: 12.5px; color: var(--bpmnkit-chrome-ink-2, #c8ccd2); word-break: break-word;
73
91
  }
92
+ /* A sentence, not a label — --ink-4 does not clear 4.5:1 on a light ground. */
74
93
  .bpmnkit-side-dock__empty-hint {
75
- font-size: 12px; color: rgba(255,255,255,0.25);
76
- text-align: center; padding: 20px 0;
94
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
95
+ font-size: var(--bpmnkit-ds-t-mono-label, 11.5px); letter-spacing: 0.04em;
96
+ color: var(--bpmnkit-chrome-ink-2, #c8ccd2);
97
+ padding: 24px 0;
77
98
  }
78
- /* Collapsed state — only the pill handle remains visible */
99
+ /* Collapsed state — only the handle remains visible */
79
100
  .bpmnkit-side-dock--collapsed .bpmnkit-side-dock__tab-strip,
80
101
  .bpmnkit-side-dock--collapsed .bpmnkit-side-dock__pane { display: none; }
81
102
  /* Push watermark left of the dock using a CSS variable updated by JS */
82
103
  .bpmnkit-watermark { right: calc(var(--bpmnkit-dock-width, 0px) + 8px) !important; }
83
- /* Light theme */
84
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock {
85
- background: rgba(248,248,252,0.99); border-left-color: rgba(0,0,0,0.08);
86
- box-shadow: -8px 0 40px rgba(0,0,0,0.12);
87
- }
88
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__collapse-handle {
89
- background: rgba(248,248,252,0.99); border-color: rgba(0,0,0,0.08); color: rgba(0,0,0,0.4);
90
- }
91
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__collapse-handle:hover {
92
- background: rgba(235,235,242,0.99); color: rgba(0,0,0,0.9);
93
- }
94
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__tab-strip { border-bottom-color: rgba(0,0,0,0.07); }
95
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__tab { color: rgba(0,0,0,0.4); }
96
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__tab:hover { color: rgba(0,0,0,0.7); }
97
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__tab.active { color: #1a56db; border-bottom-color: #1a56db; }
98
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__resize-handle:hover { background: rgba(26,86,219,0.2); }
99
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__info-label { color: rgba(0,0,0,0.3); }
100
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__info-value { color: rgba(0,0,0,0.75); }
101
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__info-row { border-bottom-color: rgba(0,0,0,0.06); }
102
- [data-bpmnkit-hud-theme="light"] .bpmnkit-side-dock__empty-hint { color: rgba(0,0,0,0.25); }
103
- /* Neon theme */
104
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock {
105
- background: oklch(6% 0.04 280);
106
- border-left: 1px solid oklch(65% 0.28 280 / 0.35);
107
- box-shadow: -8px 0 40px oklch(0% 0 0 / 0.8), -1px 0 20px oklch(65% 0.28 280 / 0.12);
108
- }
109
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__collapse-handle {
110
- background: oklch(6% 0.04 280);
111
- border-color: oklch(65% 0.28 280 / 0.35);
112
- color: oklch(65% 0.28 280 / 0.6);
113
- }
114
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__collapse-handle:hover {
115
- background: oklch(12% 0.04 270 / 0.99);
116
- color: oklch(73% 0.16 280);
117
- }
118
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__tab-strip { border-bottom-color: oklch(65% 0.28 280 / 0.25); }
119
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__tab { color: oklch(50% 0.1 280); }
120
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__tab:hover { color: oklch(73% 0.16 280); }
121
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__tab.active { color: oklch(72% 0.18 185); border-bottom-color: oklch(72% 0.18 185); }
122
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__resize-handle:hover { background: oklch(65% 0.28 280 / 0.25); }
123
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__info-label { color: oklch(50% 0.06 280); }
124
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__info-value { color: oklch(73% 0.16 280); }
125
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__info-row { border-bottom-color: oklch(65% 0.28 280 / 0.1); }
126
- [data-bpmnkit-hud-theme="neon"] .bpmnkit-side-dock__empty-hint { color: oklch(45% 0.08 280); }
127
104
  `;
128
105
  function injectDockStyles() {
106
+ injectChromeStyles();
129
107
  if (document.getElementById(DOCK_STYLE_ID))
130
108
  return;
131
109
  const style = document.createElement("style");
package/dist/editor.js CHANGED
@@ -295,8 +295,10 @@ export class BpmnEditor {
295
295
  injectEditorStyles();
296
296
  this._id = String(_instanceCounter++);
297
297
  this._t = options.translate ?? defaultTranslate;
298
- // Resolve initial theme — localStorage overrides the options.theme when persistTheme is on
299
- let initialTheme = options.theme ?? "neon";
298
+ // Resolve initial theme — localStorage overrides the options.theme when persistTheme is on.
299
+ // The shell's default is the design system's light `--canvas` ground; `neon` stays a
300
+ // white-label theme a host opts into.
301
+ let initialTheme = options.theme ?? "light";
300
302
  if (options.persistTheme) {
301
303
  try {
302
304
  const stored = localStorage.getItem("bpmnkit-theme");
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { BpmnEditor } from "./editor.js";
2
+ export { CHROME_CSS, CHROME_STYLE_ID, injectChromeStyles } from "./chrome.js";
3
+ export { injectStyle } from "./inject.js";
2
4
  export { createEmptyDefinitions } from "./modeling.js";
3
5
  export type { EditorEvents, EditorOptions, LabelPosition, Tool, CreateShapeType, HandleDir, PortDir, } from "./types.js";
4
6
  export { ELEMENT_GROUPS, ELEMENT_TYPE_LABELS, EXTERNAL_LABEL_TYPES, CONTEXTUAL_ADD_TYPES, getElementGroup, getValidLabelPositions, } from "./element-groups.js";
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export { BpmnEditor } from "./editor.js";
2
+ export { CHROME_CSS, CHROME_STYLE_ID, injectChromeStyles } from "./chrome.js";
3
+ export { injectStyle } from "./inject.js";
2
4
  export { createEmptyDefinitions } from "./modeling.js";
3
5
  export { ELEMENT_GROUPS, ELEMENT_TYPE_LABELS, EXTERNAL_LABEL_TYPES, CONTEXTUAL_ADD_TYPES, getElementGroup, getValidLabelPositions, } from "./element-groups.js";
4
6
  export { initEditorHud } from "./hud.js";
@@ -0,0 +1,3 @@
1
+ /** Injects a CSS string into `<head>` exactly once, keyed by id. */
2
+ export declare function injectStyle(id: string, css: string): void;
3
+ //# sourceMappingURL=inject.d.ts.map
package/dist/inject.js ADDED
@@ -0,0 +1,12 @@
1
+ /** Injects a CSS string into `<head>` exactly once, keyed by id. */
2
+ export function injectStyle(id, css) {
3
+ if (typeof document === "undefined")
4
+ return;
5
+ if (document.getElementById(id))
6
+ return;
7
+ const style = document.createElement("style");
8
+ style.id = id;
9
+ style.textContent = css;
10
+ document.head.appendChild(style);
11
+ }
12
+ //# sourceMappingURL=inject.js.map
package/dist/modal.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { injectChromeStyles } from "./chrome.js";
1
2
  const MODAL_STYLE_ID = "bpmnkit-hud-modal-styles";
2
3
  function injectModalStyles() {
4
+ injectChromeStyles();
3
5
  if (document.getElementById(MODAL_STYLE_ID))
4
6
  return;
5
7
  const style = document.createElement("style");
@@ -7,76 +9,54 @@ function injectModalStyles() {
7
9
  style.textContent = `
8
10
  .bpmnkit-hud-modal-overlay {
9
11
  position: fixed; inset: 0; z-index: 300;
10
- background: rgba(0,0,0,0.5);
12
+ background: color-mix(in srgb, var(--bpmnkit-ds-dark, #14161a) 55%, transparent);
11
13
  display: flex; align-items: center; justify-content: center;
12
14
  }
13
15
  .bpmnkit-hud-modal {
14
- background: rgba(22, 22, 30, 0.97);
15
- border: 1px solid rgba(255,255,255,0.12);
16
- border-radius: 10px;
17
- padding: 20px;
18
- min-width: 300px; max-width: 90vw;
19
- color: rgba(255,255,255,0.85);
20
- font-family: system-ui, -apple-system, sans-serif;
21
- box-shadow: 0 16px 48px rgba(0,0,0,0.6);
22
- display: flex; flex-direction: column; gap: 12px;
16
+ background: var(--bpmnkit-chrome-ground, #ffffff);
17
+ border: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14));
18
+ padding: 24px 26px;
19
+ min-width: 320px; max-width: 90vw;
20
+ color: var(--bpmnkit-chrome-ink-2, #c8ccd2);
21
+ font-family: var(--bpmnkit-ds-font-sans, system-ui, -apple-system, sans-serif);
22
+ display: flex; flex-direction: column; gap: 14px;
23
23
  }
24
24
  .bpmnkit-hud-modal-title {
25
- font-size: 14px; font-weight: 600;
26
- color: rgba(255,255,255,0.95);
25
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
26
+ font-size: var(--bpmnkit-ds-t-mono-micro, 10.5px); letter-spacing: 0.12em;
27
+ text-transform: uppercase; color: var(--bpmnkit-chrome-ink-4, #9aa1aa);
27
28
  }
28
29
  .bpmnkit-hud-modal-input {
29
- width: 100%; padding: 6px 10px;
30
- background: rgba(255,255,255,0.08);
31
- border: 1px solid rgba(255,255,255,0.15);
32
- border-radius: 6px;
33
- color: rgba(255,255,255,0.9);
34
- font-size: 13px;
30
+ width: 100%; padding: 7px 9px;
31
+ background: transparent;
32
+ border: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14));
33
+ color: var(--bpmnkit-chrome-ink, #f4f5f7);
34
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
35
+ font-size: 12.5px;
35
36
  outline: none;
36
37
  box-sizing: border-box;
37
38
  }
38
- .bpmnkit-hud-modal-input:focus { border-color: rgba(60,120,220,0.6); }
39
- .bpmnkit-hud-modal-actions { display: flex; gap: 8px; justify-content: flex-end; }
39
+ .bpmnkit-hud-modal-input:focus { border-color: var(--bpmnkit-chrome-accent, #c9755c); }
40
+ .bpmnkit-hud-modal-actions { display: flex; gap: 10px; justify-content: flex-end; }
40
41
  .bpmnkit-hud-modal-btn {
41
- font-size: 13px; padding: 6px 14px; border-radius: 6px;
42
- cursor: pointer; font-weight: 500;
43
- border: 1px solid rgba(255,255,255,0.12);
44
- background: rgba(255,255,255,0.06);
45
- color: rgba(255,255,255,0.8);
42
+ font-family: var(--bpmnkit-ds-font-mono, ui-monospace, monospace);
43
+ font-size: 12px; padding: 7px 16px;
44
+ cursor: pointer;
45
+ border: 1px solid var(--bpmnkit-chrome-line, rgba(255, 255, 255, 0.14));
46
+ background: transparent;
47
+ color: var(--bpmnkit-chrome-ink-2, #c8ccd2);
46
48
  }
47
- .bpmnkit-hud-modal-btn:hover { background: rgba(255,255,255,0.1); }
49
+ .bpmnkit-hud-modal-btn:hover { background: var(--bpmnkit-chrome-hover, rgba(255,255,255,0.07)); color: var(--bpmnkit-chrome-ink, #f4f5f7); }
48
50
  .bpmnkit-hud-modal-btn--primary {
49
- background: rgba(60,120,220,0.5);
50
- border-color: rgba(60,120,220,0.7);
51
+ background: var(--bpmnkit-ds-accent, #a8503a);
52
+ border-color: var(--bpmnkit-ds-accent, #a8503a);
51
53
  color: #fff;
52
54
  }
53
- .bpmnkit-hud-modal-btn--primary:hover { background: rgba(60,120,220,0.65); }
54
- /* Light theme */
55
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal {
56
- background: rgba(252,252,254,0.98);
57
- border-color: rgba(0,0,0,0.1);
58
- color: rgba(0,0,0,0.8);
59
- box-shadow: 0 8px 32px rgba(0,0,0,0.15);
60
- }
61
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-title { color: rgba(0,0,0,0.88); }
62
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-input {
63
- background: rgba(0,0,0,0.04);
64
- border-color: rgba(0,0,0,0.15);
65
- color: rgba(0,0,0,0.9);
66
- }
67
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-input:focus { border-color: rgba(0,80,200,0.4); }
68
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-btn {
69
- border-color: rgba(0,0,0,0.12);
70
- background: rgba(0,0,0,0.04);
71
- color: rgba(0,0,0,0.7);
72
- }
73
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-btn:hover { background: rgba(0,0,0,0.08); }
74
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-btn--primary {
75
- background: rgba(0,80,200,0.85);
76
- border-color: rgba(0,80,200,0.9);
55
+ .bpmnkit-hud-modal-btn--primary:hover {
56
+ background: var(--bpmnkit-ds-accent-hover, #8f412e);
57
+ border-color: var(--bpmnkit-ds-accent-hover, #8f412e);
77
58
  color: #fff;
78
59
  }
79
- [data-bpmnkit-hud-theme="light"] .bpmnkit-hud-modal-btn--primary:hover { background: rgba(0,80,200,1); }
80
60
  `;
81
61
  document.head.appendChild(style);
82
62
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmnkit/editor",
3
- "version": "0.0.35",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",