sldeditor 0.0.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/LICENSE +25 -0
- package/README.md +117 -0
- package/THIRD_PARTY_NOTICES.md +31 -0
- package/dist/OneLineEditor.d.ts +24 -0
- package/dist/OneLineEditor.d.ts.map +1 -0
- package/dist/canvas/AnnotationLayer.d.ts +18 -0
- package/dist/canvas/AnnotationLayer.d.ts.map +1 -0
- package/dist/canvas/BusHandles.d.ts +10 -0
- package/dist/canvas/BusHandles.d.ts.map +1 -0
- package/dist/canvas/BusLayer.d.ts +8 -0
- package/dist/canvas/BusLayer.d.ts.map +1 -0
- package/dist/canvas/BusbarPreview.d.ts +7 -0
- package/dist/canvas/BusbarPreview.d.ts.map +1 -0
- package/dist/canvas/CanvasSvg.d.ts +11 -0
- package/dist/canvas/CanvasSvg.d.ts.map +1 -0
- package/dist/canvas/ElementHoverLabel.d.ts +9 -0
- package/dist/canvas/ElementHoverLabel.d.ts.map +1 -0
- package/dist/canvas/ElementLayer.d.ts +17 -0
- package/dist/canvas/ElementLayer.d.ts.map +1 -0
- package/dist/canvas/FreeAnnotationLayer.d.ts +18 -0
- package/dist/canvas/FreeAnnotationLayer.d.ts.map +1 -0
- package/dist/canvas/MarqueeOverlay.d.ts +6 -0
- package/dist/canvas/MarqueeOverlay.d.ts.map +1 -0
- package/dist/canvas/PlaceGhost.d.ts +16 -0
- package/dist/canvas/PlaceGhost.d.ts.map +1 -0
- package/dist/canvas/SelectionOverlay.d.ts +7 -0
- package/dist/canvas/SelectionOverlay.d.ts.map +1 -0
- package/dist/canvas/TerminalLayer.d.ts +13 -0
- package/dist/canvas/TerminalLayer.d.ts.map +1 -0
- package/dist/canvas/WireLayer.d.ts +11 -0
- package/dist/canvas/WireLayer.d.ts.map +1 -0
- package/dist/canvas/WirePreview.d.ts +8 -0
- package/dist/canvas/WirePreview.d.ts.map +1 -0
- package/dist/canvas/drop-on-bus.d.ts +45 -0
- package/dist/canvas/drop-on-bus.d.ts.map +1 -0
- package/dist/canvas/fit-to-content.d.ts +22 -0
- package/dist/canvas/fit-to-content.d.ts.map +1 -0
- package/dist/canvas/grid.d.ts +14 -0
- package/dist/canvas/grid.d.ts.map +1 -0
- package/dist/canvas/hit-test.d.ts +14 -0
- package/dist/canvas/hit-test.d.ts.map +1 -0
- package/dist/canvas/hover-bus.d.ts +7 -0
- package/dist/canvas/hover-bus.d.ts.map +1 -0
- package/dist/canvas/index.d.ts +11 -0
- package/dist/canvas/index.d.ts.map +1 -0
- package/dist/canvas/marquee-bus.d.ts +17 -0
- package/dist/canvas/marquee-bus.d.ts.map +1 -0
- package/dist/canvas/resolve-wire-target.d.ts +4 -0
- package/dist/canvas/resolve-wire-target.d.ts.map +1 -0
- package/dist/canvas/synthetic-pointer-cancel.d.ts +12 -0
- package/dist/canvas/synthetic-pointer-cancel.d.ts.map +1 -0
- package/dist/canvas/tools/BusbarTool.d.ts +3 -0
- package/dist/canvas/tools/BusbarTool.d.ts.map +1 -0
- package/dist/canvas/tools/PanTool.d.ts +3 -0
- package/dist/canvas/tools/PanTool.d.ts.map +1 -0
- package/dist/canvas/tools/PlaceTool.d.ts +3 -0
- package/dist/canvas/tools/PlaceTool.d.ts.map +1 -0
- package/dist/canvas/tools/SelectTool.d.ts +3 -0
- package/dist/canvas/tools/SelectTool.d.ts.map +1 -0
- package/dist/canvas/tools/TextTool.d.ts +3 -0
- package/dist/canvas/tools/TextTool.d.ts.map +1 -0
- package/dist/canvas/tools/WireTool.d.ts +3 -0
- package/dist/canvas/tools/WireTool.d.ts.map +1 -0
- package/dist/canvas/tools/index.d.ts +4 -0
- package/dist/canvas/tools/index.d.ts.map +1 -0
- package/dist/canvas/tools/types.d.ts +25 -0
- package/dist/canvas/tools/types.d.ts.map +1 -0
- package/dist/canvas/touch.d.ts +20 -0
- package/dist/canvas/touch.d.ts.map +1 -0
- package/dist/canvas/transform-attr.d.ts +3 -0
- package/dist/canvas/transform-attr.d.ts.map +1 -0
- package/dist/canvas/useHoverHighlight.d.ts +3 -0
- package/dist/canvas/useHoverHighlight.d.ts.map +1 -0
- package/dist/canvas/useKeyboardShortcuts.d.ts +15 -0
- package/dist/canvas/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/canvas/useTools.d.ts +4 -0
- package/dist/canvas/useTools.d.ts.map +1 -0
- package/dist/canvas/useViewport.d.ts +18 -0
- package/dist/canvas/useViewport.d.ts.map +1 -0
- package/dist/canvas/viewport-bus.d.ts +4 -0
- package/dist/canvas/viewport-bus.d.ts.map +1 -0
- package/dist/canvas/wire-target-bus.d.ts +14 -0
- package/dist/canvas/wire-target-bus.d.ts.map +1 -0
- package/dist/canvas/zoom-bus.d.ts +11 -0
- package/dist/canvas/zoom-bus.d.ts.map +1 -0
- package/dist/compiler/auto-layout.d.ts +18 -0
- package/dist/compiler/auto-layout.d.ts.map +1 -0
- package/dist/compiler/auto-route.d.ts +10 -0
- package/dist/compiler/auto-route.d.ts.map +1 -0
- package/dist/compiler/compile.d.ts +4 -0
- package/dist/compiler/compile.d.ts.map +1 -0
- package/dist/compiler/index.d.ts +6 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/internal-model.d.ts +73 -0
- package/dist/compiler/internal-model.d.ts.map +1 -0
- package/dist/compiler/library-index.d.ts +4 -0
- package/dist/compiler/library-index.d.ts.map +1 -0
- package/dist/compiler/transforms.d.ts +7 -0
- package/dist/compiler/transforms.d.ts.map +1 -0
- package/dist/compiler/union-find.d.ts +14 -0
- package/dist/compiler/union-find.d.ts.map +1 -0
- package/dist/components/ContextMenu.d.ts +26 -0
- package/dist/components/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextualToolbar.d.ts +12 -0
- package/dist/components/ContextualToolbar.d.ts.map +1 -0
- package/dist/components/EditorShell.d.ts +2 -0
- package/dist/components/EditorShell.d.ts.map +1 -0
- package/dist/components/ExportMenu.d.ts +8 -0
- package/dist/components/ExportMenu.d.ts.map +1 -0
- package/dist/components/FileMenu.d.ts +11 -0
- package/dist/components/FileMenu.d.ts.map +1 -0
- package/dist/components/FloatingToolbar.d.ts +2 -0
- package/dist/components/FloatingToolbar.d.ts.map +1 -0
- package/dist/components/LeftPanel.d.ts +2 -0
- package/dist/components/LeftPanel.d.ts.map +1 -0
- package/dist/components/LibraryPopover.d.ts +8 -0
- package/dist/components/LibraryPopover.d.ts.map +1 -0
- package/dist/components/OnboardingCard.d.ts +13 -0
- package/dist/components/OnboardingCard.d.ts.map +1 -0
- package/dist/components/PropertyPanel.d.ts +8 -0
- package/dist/components/PropertyPanel.d.ts.map +1 -0
- package/dist/components/RightPanel.d.ts +2 -0
- package/dist/components/RightPanel.d.ts.map +1 -0
- package/dist/components/ViewToolbar.d.ts +19 -0
- package/dist/components/ViewToolbar.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +18 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/upward-popover.d.ts +8 -0
- package/dist/components/ui/upward-popover.d.ts.map +1 -0
- package/dist/element-library/index.d.ts +14 -0
- package/dist/element-library/index.d.ts.map +1 -0
- package/dist/hooks/editor-tier.d.ts +32 -0
- package/dist/hooks/editor-tier.d.ts.map +1 -0
- package/dist/hooks/use-editor-tier.d.ts +6 -0
- package/dist/hooks/use-editor-tier.d.ts.map +1 -0
- package/dist/hooks/use-onboarding.d.ts +15 -0
- package/dist/hooks/use-onboarding.d.ts.map +1 -0
- package/dist/hooks/use-panels.d.ts +16 -0
- package/dist/hooks/use-panels.d.ts.map +1 -0
- package/dist/hooks/use-theme.d.ts +24 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +14 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/library.d.ts +14 -0
- package/dist/i18n/library.d.ts.map +1 -0
- package/dist/i18n/messages.d.ts +348 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/lib/export-dxf.d.ts +16 -0
- package/dist/lib/export-dxf.d.ts.map +1 -0
- package/dist/lib/export-image.d.ts +13 -0
- package/dist/lib/export-image.d.ts.map +1 -0
- package/dist/lib/file-io.d.ts +26 -0
- package/dist/lib/file-io.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/model/index.d.ts +3 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/library.d.ts +115 -0
- package/dist/model/library.d.ts.map +1 -0
- package/dist/model/types.d.ts +78 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/sldeditor.cjs +193 -0
- package/dist/sldeditor.cjs.map +1 -0
- package/dist/sldeditor.js +11601 -0
- package/dist/sldeditor.js.map +1 -0
- package/dist/store/id-allocator.d.ts +11 -0
- package/dist/store/id-allocator.d.ts.map +1 -0
- package/dist/store/index.d.ts +3 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/store.d.ts +104 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DiagramFile, ElementId, WireEnd, WireId } from '../model';
|
|
2
|
+
export declare function newElementId(diagram: DiagramFile, kind: string): ElementId;
|
|
3
|
+
export declare function newBusId(diagram: DiagramFile): ElementId;
|
|
4
|
+
export declare function newAnnotationId(diagram: DiagramFile): string;
|
|
5
|
+
/**
|
|
6
|
+
* Content-hashed wire id. Two wires with the same pair of endpoints collide
|
|
7
|
+
* intentionally — duplicate `addWire` is a no-op, and migration / save
|
|
8
|
+
* round-trips produce stable diffs.
|
|
9
|
+
*/
|
|
10
|
+
export declare function wireIdFromEnds(a: WireEnd, b: WireEnd): WireId;
|
|
11
|
+
//# sourceMappingURL=id-allocator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-allocator.d.ts","sourceRoot":"","sources":["../../src/store/id-allocator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA2CxE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAM1E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAKxD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAK5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAS7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { InternalModel } from '../compiler';
|
|
2
|
+
import { FileSession } from '../lib/file-io';
|
|
3
|
+
import { AnnotationId, Bus, BusId, BusLayout, DiagramFile, Element, ElementId, NodeId, Placement, TextAnnotation, Wire, WireEnd, WireId } from '../model';
|
|
4
|
+
/**
|
|
5
|
+
* Self-contained snapshot of a copied selection. Placements are pre-resolved
|
|
6
|
+
* (auto-layout positions baked in) so paste survives later edits to the
|
|
7
|
+
* source diagram. Wires only include those whose endpoints are all within
|
|
8
|
+
* the selection.
|
|
9
|
+
*/
|
|
10
|
+
export interface ClipboardData {
|
|
11
|
+
elements: Element[];
|
|
12
|
+
buses: Bus[];
|
|
13
|
+
placements: Record<ElementId, Placement>;
|
|
14
|
+
busLayouts: Record<BusId, BusLayout>;
|
|
15
|
+
wires: Wire[];
|
|
16
|
+
}
|
|
17
|
+
export type ToolId = 'select' | 'pan' | 'wire' | 'place' | 'busbar' | 'text';
|
|
18
|
+
export interface EditorState {
|
|
19
|
+
diagram: DiagramFile;
|
|
20
|
+
internal: InternalModel;
|
|
21
|
+
fileSession: FileSession | null;
|
|
22
|
+
activeTool: ToolId;
|
|
23
|
+
placeKind: string | null;
|
|
24
|
+
lastPlaceKind: string | null;
|
|
25
|
+
wireFromTerminal: WireEnd | null;
|
|
26
|
+
placeFromTerminal: WireEnd | null;
|
|
27
|
+
busbarDrawStart: [number, number] | null;
|
|
28
|
+
cursorSvg: [number, number] | null;
|
|
29
|
+
/** Selected devices and/or buses (shared id namespace). */
|
|
30
|
+
selection: ElementId[];
|
|
31
|
+
/** Selected single wire (mutually exclusive with selection/selectedNode). */
|
|
32
|
+
selectedWire: WireId | null;
|
|
33
|
+
/** Selected ConnectivityNode — used for "select the whole electrical
|
|
34
|
+
* node" operations. Mutually exclusive with the others. */
|
|
35
|
+
selectedNode: NodeId | null;
|
|
36
|
+
selectedAnnotation: AnnotationId | null;
|
|
37
|
+
editingAnnotation: AnnotationId | null;
|
|
38
|
+
editingElement: ElementId | null;
|
|
39
|
+
past: DiagramFile[];
|
|
40
|
+
future: DiagramFile[];
|
|
41
|
+
clipboard: ClipboardData | null;
|
|
42
|
+
clipboardPasteIndex: number;
|
|
43
|
+
setDiagram: (diagram: DiagramFile) => void;
|
|
44
|
+
setFileSession: (session: FileSession | null) => void;
|
|
45
|
+
loadDiagramFromFile: (diagram: DiagramFile, session: FileSession) => void;
|
|
46
|
+
dispatch: (mutator: (d: DiagramFile) => DiagramFile, label?: string) => void;
|
|
47
|
+
undo: () => void;
|
|
48
|
+
redo: () => void;
|
|
49
|
+
setActiveTool: (tool: ToolId, opts?: {
|
|
50
|
+
placeKind?: string | null;
|
|
51
|
+
}) => void;
|
|
52
|
+
setPlaceKind: (kind: string | null) => void;
|
|
53
|
+
setWireFromTerminal: (ref: WireEnd | null) => void;
|
|
54
|
+
setPlaceFromTerminal: (ref: WireEnd | null) => void;
|
|
55
|
+
setBusbarDrawStart: (pt: [number, number] | null) => void;
|
|
56
|
+
setCursorSvg: (pt: [number, number] | null) => void;
|
|
57
|
+
setSelection: (ids: ElementId[]) => void;
|
|
58
|
+
toggleInSelection: (id: ElementId) => void;
|
|
59
|
+
clearSelection: () => void;
|
|
60
|
+
setSelectedWire: (id: WireId | null) => void;
|
|
61
|
+
setSelectedNode: (nodeId: NodeId | null) => void;
|
|
62
|
+
setSelectedAnnotation: (id: AnnotationId | null) => void;
|
|
63
|
+
setEditingAnnotation: (id: AnnotationId | null) => void;
|
|
64
|
+
setEditingElement: (id: ElementId | null) => void;
|
|
65
|
+
copySelection: () => void;
|
|
66
|
+
cutSelection: () => void;
|
|
67
|
+
pasteClipboard: () => void;
|
|
68
|
+
autoArrangeAll: () => void;
|
|
69
|
+
autoArrangeSelection: () => void;
|
|
70
|
+
fillUnplacedAll: () => void;
|
|
71
|
+
fillUnplacedSelection: () => void;
|
|
72
|
+
moveElements: (deltas: Map<ElementId, [number, number]>) => void;
|
|
73
|
+
deleteSelection: () => void;
|
|
74
|
+
/** Drop a single wire by id. */
|
|
75
|
+
deleteSelectedWire: () => void;
|
|
76
|
+
/** Drop every wire touching the currently selected ConnectivityNode. */
|
|
77
|
+
deleteSelectedNode: () => void;
|
|
78
|
+
rotateSelection: (deltaDegrees: 90 | -90 | 180) => void;
|
|
79
|
+
mirrorSelection: () => void;
|
|
80
|
+
addElement: (kind: string, at: [number, number], extra?: Partial<Element>) => ElementId;
|
|
81
|
+
addBus: (at: [number, number], span: number, rot?: 0 | 90 | 180 | 270) => BusId;
|
|
82
|
+
/** Append a wire between two endpoints (idempotent — duplicate is a no-op). */
|
|
83
|
+
addWire: (a: WireEnd, b: WireEnd) => void;
|
|
84
|
+
updateElement: (id: ElementId, patch: Partial<Element>) => void;
|
|
85
|
+
updatePlacement: (id: ElementId, patch: Partial<Placement>) => void;
|
|
86
|
+
updateBus: (id: BusId, patch: Partial<BusLayout>) => void;
|
|
87
|
+
addAnnotation: (at: [number, number], text?: string) => AnnotationId;
|
|
88
|
+
updateAnnotation: (id: AnnotationId, patch: Partial<TextAnnotation>) => void;
|
|
89
|
+
deleteAnnotation: (id: AnnotationId) => void;
|
|
90
|
+
}
|
|
91
|
+
export declare const useEditorStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<EditorState>, "setState" | "persist"> & {
|
|
92
|
+
setState(partial: EditorState | Partial<EditorState> | ((state: EditorState) => EditorState | Partial<EditorState>), replace?: false | undefined): unknown;
|
|
93
|
+
setState(state: EditorState | ((state: EditorState) => EditorState), replace: true): unknown;
|
|
94
|
+
persist: {
|
|
95
|
+
setOptions: (options: Partial<import('zustand/middleware').PersistOptions<EditorState, unknown, unknown>>) => void;
|
|
96
|
+
clearStorage: () => void;
|
|
97
|
+
rehydrate: () => Promise<void> | void;
|
|
98
|
+
hasHydrated: () => boolean;
|
|
99
|
+
onHydrate: (fn: (state: EditorState) => void) => () => void;
|
|
100
|
+
onFinishHydration: (fn: (state: EditorState) => void) => () => void;
|
|
101
|
+
getOptions: () => Partial<import('zustand/middleware').PersistOptions<EditorState, unknown, unknown>>;
|
|
102
|
+
};
|
|
103
|
+
}>;
|
|
104
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){.ole-root *,.ole-root :before,.ole-root :after,.ole-root ::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{.ole-root{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{.ole-root *,.ole-root :after,.ole-root :before,.ole-root ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}.ole-root ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}.ole-root html,.ole-root{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}.ole-root hr{height:0;color:inherit;border-top-width:1px}.ole-root abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ole-root h1,.ole-root h2,.ole-root h3,.ole-root h4,.ole-root h5,.ole-root h6{font-size:inherit;font-weight:inherit}.ole-root a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.ole-root b,.ole-root strong{font-weight:bolder}.ole-root code,.ole-root kbd,.ole-root samp,.ole-root pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}.ole-root small{font-size:80%}.ole-root sub,.ole-root sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}.ole-root sub{bottom:-.25em}.ole-root sup{top:-.5em}.ole-root table{text-indent:0;border-color:inherit;border-collapse:collapse}.ole-root :-moz-focusring{outline:auto}.ole-root progress{vertical-align:baseline}.ole-root summary{display:list-item}.ole-root ol,.ole-root ul,.ole-root menu{list-style:none}.ole-root img,.ole-root svg,.ole-root video,.ole-root canvas,.ole-root audio,.ole-root iframe,.ole-root embed,.ole-root object{vertical-align:middle;display:block}.ole-root img,.ole-root video{max-width:100%;height:auto}.ole-root button,.ole-root input,.ole-root select,.ole-root optgroup,.ole-root textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}.ole-root ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}.ole-root :where(select:is([multiple],[size])) optgroup{font-weight:bolder}.ole-root :where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}.ole-root ::file-selector-button{margin-inline-end:4px}.ole-root ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){.ole-root ::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){.ole-root ::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}.ole-root textarea{resize:vertical}.ole-root ::-webkit-search-decoration{-webkit-appearance:none}.ole-root ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}.ole-root ::-webkit-datetime-edit{display:inline-flex}.ole-root ::-webkit-datetime-edit-fields-wrapper{padding:0}.ole-root ::-webkit-datetime-edit{padding-block:0}.ole-root ::-webkit-datetime-edit-year-field{padding-block:0}.ole-root ::-webkit-datetime-edit-month-field{padding-block:0}.ole-root ::-webkit-datetime-edit-day-field{padding-block:0}.ole-root ::-webkit-datetime-edit-hour-field{padding-block:0}.ole-root ::-webkit-datetime-edit-minute-field{padding-block:0}.ole-root ::-webkit-datetime-edit-second-field{padding-block:0}.ole-root ::-webkit-datetime-edit-millisecond-field{padding-block:0}.ole-root ::-webkit-datetime-edit-meridiem-field{padding-block:0}.ole-root ::-webkit-calendar-picker-indicator{line-height:1}.ole-root :-moz-ui-invalid{box-shadow:none}.ole-root button,.ole-root input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}.ole-root ::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}.ole-root ::-webkit-inner-spin-button{height:auto}.ole-root ::-webkit-outer-spin-button{height:auto}.ole-root [hidden]:where(:not([hidden=until-found])){display:none!important}.ole-root{--ole-top-inset:env(safe-area-inset-top,0px);--ole-right-inset:env(safe-area-inset-right,0px);--ole-bottom-inset:env(safe-area-inset-bottom,0px);--ole-left-inset:env(safe-area-inset-left,0px);--background:#f5f5f5;--foreground:#171717;--card:#fff;--card-foreground:#171717;--popover:#fff;--popover-foreground:#171717;--primary:#0891b2;--primary-foreground:#fff;--secondary:#e5e5e5;--secondary-foreground:#171717;--muted:#e5e5e5;--muted-foreground:#737373;--accent:#e5e7eb;--accent-foreground:#171717;--destructive:#ef4444;--destructive-foreground:#fff;--border:#d4d4d4;--input:#e5e5e5;--ring:#0891b2;--radius:.5rem;--canvas-bg:#e8ecf1;--canvas-grid:#d4d4d4;--canvas-grid-strong:#b8b8b8;--selection:#0891b2}.dark .ole-root,.ole-root.dark{--background:#1a1a1a;--foreground:#f0f0f0;--card:#2c2c2c;--card-foreground:#f0f0f0;--popover:#2c2c2c;--popover-foreground:#f0f0f0;--primary:#0891b2;--primary-foreground:#fff;--secondary:#383838;--secondary-foreground:#f0f0f0;--muted:#333;--muted-foreground:#8a8a8a;--accent:#3a3a3a;--accent-foreground:#f0f0f0;--destructive:#ef4444;--destructive-foreground:#fff;--border:#3d3d3d;--input:#383838;--ring:#0891b2;--canvas-bg:#1a1a1a;--canvas-grid:#2f2f2f;--canvas-grid-strong:#525252;--selection:#0891b2}}@layer components;@layer utilities{.ole-root .pointer-events-auto{pointer-events:auto}.ole-root .pointer-events-none{pointer-events:none}.ole-root .collapse{visibility:collapse}.ole-root .invisible{visibility:hidden}.ole-root .visible{visibility:visible}.ole-root .absolute{position:absolute}.ole-root .fixed{position:fixed}.ole-root .relative{position:relative}.ole-root .static{position:static}.ole-root .inset-0{inset:calc(var(--spacing) * 0)}.ole-root .start{inset-inline-start:var(--spacing)}.ole-root .end{inset-inline-end:var(--spacing)}.ole-root .-top-1\.5{top:calc(var(--spacing) * -1.5)}.ole-root .top-0{top:calc(var(--spacing) * 0)}.ole-root .top-1\/2{top:50%}.ole-root .top-full{top:100%}.ole-root .-right-1\.5{right:calc(var(--spacing) * -1.5)}.ole-root .right-0{right:calc(var(--spacing) * 0)}.ole-root .right-1{right:calc(var(--spacing) * 1)}.ole-root .right-2{right:calc(var(--spacing) * 2)}.ole-root .bottom-full{bottom:100%}.ole-root .left-0{left:calc(var(--spacing) * 0)}.ole-root .left-1\/2{left:50%}.ole-root .left-2{left:calc(var(--spacing) * 2)}.ole-root .left-3{left:calc(var(--spacing) * 3)}.ole-root .z-10{z-index:10}.ole-root .z-20{z-index:20}.ole-root .z-30{z-index:30}.ole-root .z-50{z-index:50}.ole-root .z-\[100\]{z-index:100}.ole-root .m-0{margin:calc(var(--spacing) * 0)}.ole-root .mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.ole-root .mx-1{margin-inline:calc(var(--spacing) * 1)}.ole-root .my-1{margin-block:calc(var(--spacing) * 1)}.ole-root .mt-0\.5{margin-top:calc(var(--spacing) * .5)}.ole-root .mt-1{margin-top:calc(var(--spacing) * 1)}.ole-root .mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.ole-root .mt-3{margin-top:calc(var(--spacing) * 3)}.ole-root .mt-4{margin-top:calc(var(--spacing) * 4)}.ole-root .mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.ole-root .mb-2{margin-bottom:calc(var(--spacing) * 2)}.ole-root .ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ole-root .block{display:block}.ole-root .contents{display:contents}.ole-root .flex{display:flex}.ole-root .grid{display:grid}.ole-root .hidden{display:none}.ole-root .inline{display:inline}.ole-root .inline-block{display:inline-block}.ole-root .inline-flex{display:inline-flex}.ole-root .table{display:table}.ole-root .size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.ole-root .size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.ole-root .size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.ole-root .size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.ole-root .size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.ole-root .size-full{width:100%;height:100%}.ole-root .h-4{height:calc(var(--spacing) * 4)}.ole-root .h-5{height:calc(var(--spacing) * 5)}.ole-root .h-6{height:calc(var(--spacing) * 6)}.ole-root .h-7{height:calc(var(--spacing) * 7)}.ole-root .h-8{height:calc(var(--spacing) * 8)}.ole-root .h-9{height:calc(var(--spacing) * 9)}.ole-root .h-10{height:calc(var(--spacing) * 10)}.ole-root .h-12{height:calc(var(--spacing) * 12)}.ole-root .h-full{height:100%}.ole-root .h-px{height:1px}.ole-root .h-screen{height:100vh}.ole-root .w-6{width:calc(var(--spacing) * 6)}.ole-root .w-9{width:calc(var(--spacing) * 9)}.ole-root .w-12{width:calc(var(--spacing) * 12)}.ole-root .w-16{width:calc(var(--spacing) * 16)}.ole-root .w-48{width:calc(var(--spacing) * 48)}.ole-root .w-52{width:calc(var(--spacing) * 52)}.ole-root .w-56{width:calc(var(--spacing) * 56)}.ole-root .w-64{width:calc(var(--spacing) * 64)}.ole-root .w-72{width:calc(var(--spacing) * 72)}.ole-root .w-\[min\(420px\,calc\(100vw-2rem\)\)\]{width:min(420px,100vw - 2rem)}.ole-root .w-full{width:100%}.ole-root .w-px{width:1px}.ole-root .w-screen{width:100vw}.ole-root .max-w-\[280px\]{max-width:280px}.ole-root .max-w-full{max-width:100%}.ole-root .min-w-0{min-width:calc(var(--spacing) * 0)}.ole-root .min-w-12{min-width:calc(var(--spacing) * 12)}.ole-root .min-w-40{min-width:calc(var(--spacing) * 40)}.ole-root .min-w-44{min-width:calc(var(--spacing) * 44)}.ole-root .min-w-52{min-width:calc(var(--spacing) * 52)}.ole-root .min-w-\[200px\]{min-width:200px}.ole-root .flex-1{flex:1}.ole-root .shrink-0{flex-shrink:0}.ole-root .grow{flex-grow:1}.ole-root .-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.ole-root .-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.ole-root .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.ole-root .cursor-grab{cursor:grab}.ole-root .cursor-pointer{cursor:pointer}.ole-root .resize{resize:both}.ole-root .resize-none{resize:none}.ole-root .flex-col{flex-direction:column}.ole-root .flex-row{flex-direction:row}.ole-root .items-center{align-items:center}.ole-root .items-start{align-items:flex-start}.ole-root .justify-between{justify-content:space-between}.ole-root .justify-center{justify-content:center}.ole-root .gap-0\.5{gap:calc(var(--spacing) * .5)}.ole-root .gap-1\.5{gap:calc(var(--spacing) * 1.5)}.ole-root .gap-2{gap:calc(var(--spacing) * 2)}.ole-root .gap-2\.5{gap:calc(var(--spacing) * 2.5)}.ole-root .gap-3{gap:calc(var(--spacing) * 3)}.ole-root :where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.ole-root :where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}.ole-root :where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}.ole-root :where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}.ole-root .self-start{align-self:flex-start}.ole-root .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ole-root .overflow-hidden{overflow:hidden}.ole-root .overflow-y-auto{overflow-y:auto}.ole-root .rounded{border-radius:.25rem}.ole-root .rounded-2xl{border-radius:var(--radius-2xl)}.ole-root .rounded-full{border-radius:3.40282e38px}.ole-root .rounded-md{border-radius:calc(var(--radius) - 2px)}.ole-root .rounded-sm{border-radius:calc(var(--radius) - 4px)}.ole-root .border{border-style:var(--tw-border-style);border-width:1px}.ole-root .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ole-root .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ole-root .border-\[var\(--selection\)\]{border-color:var(--selection)}.ole-root .border-border,.ole-root .border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.ole-root .border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.ole-root .border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.ole-root .border-border\/60{border-color:color-mix(in oklab,var(--border) 60%,transparent)}}.ole-root .border-input{border-color:var(--input)}.ole-root .bg-\[color-mix\(in_oklch\,var\(--selection\)_18\%\,transparent\)\]{background-color:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-\[color-mix\(in_oklch\,var\(--selection\)_18\%\,transparent\)\]{background-color:color-mix(in oklch,var(--selection) 18%,transparent)}}.ole-root .bg-\[var\(--selection\)\]\/15{background-color:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-\[var\(--selection\)\]\/15{background-color:color-mix(in oklab,var(--selection) 15%,transparent)}}.ole-root .bg-accent{background-color:var(--accent)}.ole-root .bg-background,.ole-root .bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-background\/50{background-color:color-mix(in oklab,var(--background) 50%,transparent)}}.ole-root .bg-border{background-color:var(--border)}.ole-root .bg-destructive{background-color:var(--destructive)}.ole-root .bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-foreground\/10{background-color:color-mix(in oklab,var(--foreground) 10%,transparent)}}.ole-root .bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.ole-root .bg-primary{background-color:var(--primary)}.ole-root .bg-primary-foreground\/20{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .bg-primary-foreground\/20{background-color:color-mix(in oklab,var(--primary-foreground) 20%,transparent)}}.ole-root .bg-secondary{background-color:var(--secondary)}.ole-root .p-0\.5{padding:calc(var(--spacing) * .5)}.ole-root .p-1{padding:calc(var(--spacing) * 1)}.ole-root .p-1\.5{padding:calc(var(--spacing) * 1.5)}.ole-root .p-2{padding:calc(var(--spacing) * 2)}.ole-root .p-5{padding:calc(var(--spacing) * 5)}.ole-root .px-1{padding-inline:calc(var(--spacing) * 1)}.ole-root .px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.ole-root .px-2{padding-inline:calc(var(--spacing) * 2)}.ole-root .px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.ole-root .px-3{padding-inline:calc(var(--spacing) * 3)}.ole-root .px-4{padding-inline:calc(var(--spacing) * 4)}.ole-root .px-8{padding-inline:calc(var(--spacing) * 8)}.ole-root .py-0\.5{padding-block:calc(var(--spacing) * .5)}.ole-root .py-1{padding-block:calc(var(--spacing) * 1)}.ole-root .py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.ole-root .py-2{padding-block:calc(var(--spacing) * 2)}.ole-root .py-3{padding-block:calc(var(--spacing) * 3)}.ole-root .py-5{padding-block:calc(var(--spacing) * 5)}.ole-root .py-6{padding-block:calc(var(--spacing) * 6)}.ole-root .pt-1{padding-top:calc(var(--spacing) * 1)}.ole-root .pt-2{padding-top:calc(var(--spacing) * 2)}.ole-root .pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.ole-root .pr-7{padding-right:calc(var(--spacing) * 7)}.ole-root .pr-8{padding-right:calc(var(--spacing) * 8)}.ole-root .pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.ole-root .pb-2{padding-bottom:calc(var(--spacing) * 2)}.ole-root .pl-7{padding-left:calc(var(--spacing) * 7)}.ole-root .text-center{text-align:center}.ole-root .text-left{text-align:left}.ole-root .font-mono{font-family:var(--font-mono)}.ole-root .text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.ole-root .text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.ole-root .text-\[8px\]{font-size:8px}.ole-root .text-\[10px\]{font-size:10px}.ole-root .text-\[11px\]{font-size:11px}.ole-root .text-\[12px\]{font-size:12px}.ole-root .leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.ole-root .leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.ole-root .leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.ole-root .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.ole-root .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.ole-root .tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.ole-root .whitespace-nowrap{white-space:nowrap}.ole-root .text-\[var\(--selection\)\]{color:var(--selection)}.ole-root .text-destructive{color:var(--destructive)}.ole-root .text-destructive-foreground{color:var(--destructive-foreground)}.ole-root .text-foreground,.ole-root .text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.ole-root .text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-foreground\/90{color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.ole-root .text-muted-foreground,.ole-root .text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground) 60%,transparent)}}.ole-root .text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.ole-root .text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-muted-foreground\/80{color:color-mix(in oklab,var(--muted-foreground) 80%,transparent)}}.ole-root .text-primary{color:var(--primary)}.ole-root .text-primary-foreground,.ole-root .text-primary-foreground\/85{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.ole-root .text-primary-foreground\/85{color:color-mix(in oklab,var(--primary-foreground) 85%,transparent)}}.ole-root .text-secondary-foreground{color:var(--secondary-foreground)}.ole-root .uppercase{text-transform:uppercase}.ole-root .italic{font-style:italic}.ole-root .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ole-root .underline-offset-4{text-underline-offset:4px}.ole-root .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ole-root .opacity-40{opacity:.4}.ole-root .opacity-60{opacity:.6}.ole-root .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .ring,.ole-root .ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .ring-\[var\(--selection\)\]\/30{--tw-ring-color:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ring-\[var\(--selection\)\]\/30{--tw-ring-color:color-mix(in oklab, var(--selection) 30%, transparent)}}.ole-root .ring-\[var\(--selection\)\]\/60{--tw-ring-color:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ring-\[var\(--selection\)\]\/60{--tw-ring-color:color-mix(in oklab, var(--selection) 60%, transparent)}}.ole-root .outline{outline-style:var(--tw-outline-style);outline-width:1px}.ole-root .blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ole-root .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.ole-root .backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.ole-root .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ole-root .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ole-root .transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ole-root .ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.ole-root .select-all{-webkit-user-select:all;user-select:all}.ole-root .select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.ole-root .group-hover\:text-accent-foreground:is(:where(.group):hover *){color:var(--accent-foreground)}}.ole-root .placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.ole-root .last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}@media(hover:hover){.ole-root .hover\:bg-accent:hover{background-color:var(--accent)}.ole-root .hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.ole-root .hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.ole-root .hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.ole-root .hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.ole-root .hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.ole-root .hover\:bg-muted\/40:hover{background-color:color-mix(in oklab,var(--muted) 40%,transparent)}}.ole-root .hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ole-root .hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.ole-root .hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.ole-root .hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.ole-root .hover\:bg-transparent:hover{background-color:#0000}.ole-root .hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.ole-root .hover\:text-destructive:hover{color:var(--destructive)}.ole-root .hover\:underline:hover{text-decoration-line:underline}}.ole-root .focus\:border-border:focus{border-color:var(--border)}.ole-root .focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.ole-root .focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.ole-root .focus-visible\:bg-accent:focus-visible{background-color:var(--accent)}.ole-root .focus-visible\:text-accent-foreground:focus-visible{color:var(--accent-foreground)}.ole-root .focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ole-root .focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.ole-root .focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.ole-root .active\:cursor-grabbing:active{cursor:grabbing}.ole-root .disabled\:pointer-events-none:disabled{pointer-events:none}.ole-root .disabled\:opacity-50:disabled{opacity:.5}.ole-root .data-\[selected\=true\]\:bg-\[color-mix\(in_oklch\,var\(--selection\)_18\%\,transparent\)\][data-selected=true]{background-color:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .data-\[selected\=true\]\:bg-\[color-mix\(in_oklch\,var\(--selection\)_18\%\,transparent\)\][data-selected=true]{background-color:color-mix(in oklch,var(--selection) 18%,transparent)}}.ole-root .\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.ole-root .\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.ole-root .\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.ole-root .\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.ole-root .\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.ole-root details:not([open])>summary>.\[details\:not\(\[open\]\)\>summary\>\&\]\:-rotate-90{rotate:-90deg}}.ole-root{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.ole-root .ole-canvas-root{--canvas-scale:1;-webkit-user-select:none;user-select:none}.ole-root .ole-glass{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-glass{background-color:color-mix(in oklch,var(--card) 80%,transparent)}}.ole-root .ole-glass{-webkit-backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none}.ole-root .ole-glass input,.ole-root .ole-glass textarea,.ole-root .ole-glass [contenteditable=true]{-webkit-user-select:text;user-select:text}.ole-root .ole-symbol,.ole-root .ole-element{color:var(--foreground)}.ole-root .ole-symbol [stroke=black],.ole-root .ole-symbol [stroke="#000"],.ole-root .ole-symbol [stroke="#000000"],.ole-root .ole-element [stroke=black],.ole-root .ole-element [stroke="#000"],.ole-root .ole-element [stroke="#000000"]{stroke:currentColor}.ole-root .ole-symbol [fill=black],.ole-root .ole-symbol [fill="#000"],.ole-root .ole-symbol [fill="#000000"],.ole-root .ole-element [fill=black],.ole-root .ole-element [fill="#000"],.ole-root .ole-element [fill="#000000"]{fill:currentColor}.ole-root .ole-canvas-svg{background-color:var(--canvas-bg);touch-action:none}.ole-root .ole-canvas-root.hide-grid .ole-canvas-svg>rect{display:none}.ole-root .ole-terminal{fill:var(--canvas-bg);stroke:var(--selection);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none;transition:r 80ms ease-out;display:none}.ole-root .ole-terminal[data-connected=true]{fill:var(--selection)}.ole-root .ole-terminal[data-active=true]{stroke:var(--selection);stroke-width:4px;fill:var(--selection)}.ole-root .ole-canvas-root.tool-wire .ole-terminal{pointer-events:auto;display:inline}.ole-root .ole-canvas-root.tool-wire .ole-terminal:hover{r:5;stroke:var(--selection);cursor:crosshair}.ole-root .ole-canvas-root.tool-place .ole-terminal{pointer-events:auto;display:inline}.ole-root .ole-canvas-root.tool-place .ole-terminal:hover{r:5;stroke:var(--selection);cursor:copy}.ole-root .ole-terminal[data-on-selected=true]{pointer-events:auto;display:inline}.ole-root .ole-terminal[data-on-selected=true]:hover{r:5;stroke:var(--selection);cursor:crosshair}.ole-root .ole-annotation-text{fill:var(--foreground);paint-order:stroke;stroke:var(--canvas-bg);stroke-width:2px;stroke-linejoin:round;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:ui-sans-serif,system-ui,sans-serif;font-size:7px}.ole-root .ole-free-annotation-text{fill:var(--foreground);paint-order:stroke;stroke:var(--canvas-bg);stroke-width:2px;stroke-linejoin:round;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:ui-sans-serif,system-ui,sans-serif}.ole-root .ole-free-annotation-hit{pointer-events:auto;cursor:move}.ole-root .ole-free-annotation-halo{fill:none;stroke:var(--selection);stroke-width:1.2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.ole-root .ole-terminal.ole-hover-terminal-on{display:inline}.ole-root .ole-element.ole-hover-element-host [stroke=black],.ole-root .ole-element.ole-hover-element-host [stroke="#000"],.ole-root .ole-element.ole-hover-element-host [stroke="#000000"]{stroke:var(--selection)}.ole-root .ole-element.ole-hover-element-host [fill=black],.ole-root .ole-element.ole-hover-element-host [fill="#000"],.ole-root .ole-element.ole-hover-element-host [fill="#000000"]{fill:var(--selection)}.ole-root .ole-wire.ole-hover-node-on,.ole-root .ole-terminal.ole-hover-node-on{stroke:var(--selection)}.ole-root .ole-terminal.ole-hover-node-on[data-connected=true]{fill:var(--selection)}.ole-root .ole-selection-rect{stroke:var(--selection);stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.ole-root .ole-wire-preview-line{stroke:var(--selection);stroke-width:1.5px;stroke-dasharray:4 3;fill:none;vector-effect:non-scaling-stroke}.ole-root .ole-wire-preview-anchor{fill:var(--selection);stroke:none}.ole-root .ole-wire-preview-target-ring{fill:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-wire-preview-target-ring{fill:color-mix(in oklch,var(--selection) 25%,transparent)}}.ole-root .ole-wire-preview-target-ring{stroke:var(--selection);stroke-width:1.5px;vector-effect:non-scaling-stroke}.ole-root .ole-wire-preview-target-dot{fill:var(--selection);stroke:var(--canvas-bg);stroke-width:1px;vector-effect:non-scaling-stroke}.ole-root .ole-busbar-preview-line{stroke:var(--selection);stroke-width:3px;stroke-linecap:round;stroke-dasharray:6 4;fill:none;vector-effect:non-scaling-stroke}.ole-root .ole-busbar-preview-anchor{fill:var(--selection);stroke:none}.ole-root .ole-bus-handle{fill:var(--canvas-bg);stroke:var(--selection);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:ew-resize;pointer-events:auto}.ole-root .ole-bus-handle:hover,.ole-root .ole-marquee{fill:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-marquee{fill:color-mix(in oklch,var(--selection) 8%,transparent)}}.ole-root .ole-marquee{stroke:var(--selection);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;pointer-events:none}.ole-root .ole-bus-layer,.ole-root .ole-wire-layer{color:var(--foreground)}.ole-root .ole-wire{pointer-events:none;stroke-linecap:round;stroke-linejoin:round}.ole-root .ole-wire[data-selected=true]{stroke:var(--selection);stroke-width:3.5px}.ole-root .ole-wire-hit{stroke:#0000;stroke-width:12px;fill:none;pointer-events:stroke;cursor:pointer}.ole-root .ole-wire-hit:hover+.ole-wire{stroke:var(--selection)}@media(hover:none),(pointer:coarse){.ole-root .ole-glass button.h-9.w-9,.ole-root .ole-glass [role=menuitem].h-9.w-9{width:2.5rem;height:2.5rem}.ole-root .ole-terminal{pointer-events:auto;display:inline}.ole-root .ole-element:hover .ole-element-hit{fill:#0000}.ole-root .ole-wire-hit:hover+.ole-wire{stroke:inherit}.ole-root .ole-element.ole-hover-element-host [stroke=black],.ole-root .ole-element.ole-hover-element-host [stroke="#000"],.ole-root .ole-element.ole-hover-element-host [stroke="#000000"],.ole-root .ole-element.ole-hover-element-host [fill=black],.ole-root .ole-element.ole-hover-element-host [fill="#000"],.ole-root .ole-element.ole-hover-element-host [fill="#000000"]{stroke:inherit;fill:inherit}.ole-root .ole-canvas-root.tool-wire .ole-terminal,.ole-root .ole-canvas-root.tool-place .ole-terminal,.ole-root .ole-terminal[data-on-selected=true]{r:5}}.ole-root .ole-element-hit{fill:#0000;stroke:none;cursor:inherit}.ole-root .ole-canvas-root.tool-wire .ole-element-hit{pointer-events:none}.ole-root .ole-element:hover .ole-element-hit{fill:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-element:hover .ole-element-hit{fill:color-mix(in oklch,var(--selection) 8%,transparent)}}.ole-root .ole-element[data-selected=true] .ole-element-hit{fill:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-element[data-selected=true] .ole-element-hit{fill:color-mix(in oklch,var(--selection) 12%,transparent)}}.ole-root .ole-element[data-node-related=true] .ole-element-hit{fill:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-element[data-node-related=true] .ole-element-hit{fill:color-mix(in oklch,var(--selection) 14%,transparent)}}.ole-root .ole-element[data-node-related=true] [stroke=black],.ole-root .ole-element[data-node-related=true] [stroke="#000"],.ole-root .ole-element[data-node-related=true] [stroke="#000000"]{stroke:var(--selection)}@supports (color:color-mix(in lab,red,red)){.ole-root .ole-element[data-node-related=true] [stroke=black],.ole-root .ole-element[data-node-related=true] [stroke="#000"],.ole-root .ole-element[data-node-related=true] [stroke="#000000"]{stroke:color-mix(in oklch,var(--selection) 55%,var(--foreground))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
package/package.json
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sldeditor",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Lightweight in-browser React editor for electrical single-line diagrams (SLD).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "NovaShang",
|
|
8
|
+
"homepage": "https://github.com/NovaShang/sldeditor#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/NovaShang/sldeditor.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/NovaShang/sldeditor/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"react",
|
|
18
|
+
"electrical",
|
|
19
|
+
"single-line-diagram",
|
|
20
|
+
"sld",
|
|
21
|
+
"schematic",
|
|
22
|
+
"diagram",
|
|
23
|
+
"editor",
|
|
24
|
+
"electrical-engineering",
|
|
25
|
+
"one-line-diagram",
|
|
26
|
+
"power-system"
|
|
27
|
+
],
|
|
28
|
+
"main": "./dist/sldeditor.cjs",
|
|
29
|
+
"module": "./dist/sldeditor.js",
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
34
|
+
"import": "./dist/sldeditor.js",
|
|
35
|
+
"require": "./dist/sldeditor.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./style.css": "./dist/style.css"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md",
|
|
42
|
+
"LICENSE",
|
|
43
|
+
"THIRD_PARTY_NOTICES.md"
|
|
44
|
+
],
|
|
45
|
+
"sideEffects": [
|
|
46
|
+
"**/*.css"
|
|
47
|
+
],
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18"
|
|
50
|
+
},
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public",
|
|
53
|
+
"registry": "https://registry.npmjs.org"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "vite",
|
|
57
|
+
"build": "vite build",
|
|
58
|
+
"build:lib": "tsc -p tsconfig.lib.json --emitDeclarationOnly && vite build --config vite.lib.config.ts",
|
|
59
|
+
"preview": "vite preview",
|
|
60
|
+
"typecheck": "tsc -p tsconfig.app.json --noEmit && tsc -p tsconfig.lib.json --noEmit",
|
|
61
|
+
"lint": "eslint .",
|
|
62
|
+
"format": "prettier --write \"src/**/*.{ts,tsx,css,md}\"",
|
|
63
|
+
"test": "vitest run",
|
|
64
|
+
"test:watch": "vitest",
|
|
65
|
+
"changeset": "changeset",
|
|
66
|
+
"version": "changeset version",
|
|
67
|
+
"release": "npm run build:lib && changeset publish",
|
|
68
|
+
"prepublishOnly": "npm run build:lib"
|
|
69
|
+
},
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"@radix-ui/react-slot": "^1.1.1",
|
|
72
|
+
"class-variance-authority": "^0.7.1",
|
|
73
|
+
"clsx": "^2.1.1",
|
|
74
|
+
"lucide-react": "^0.469.0",
|
|
75
|
+
"tailwind-merge": "^2.6.0",
|
|
76
|
+
"zustand": "^5.0.2"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"react": ">=18.0.0",
|
|
80
|
+
"react-dom": ">=18.0.0"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@changesets/changelog-github": "^0.7.0",
|
|
84
|
+
"@changesets/cli": "^2.31.0",
|
|
85
|
+
"@eslint/js": "^9.17.0",
|
|
86
|
+
"@tailwindcss/vite": "^4.0.0",
|
|
87
|
+
"@types/node": "^22.10.5",
|
|
88
|
+
"@types/react": "^19.0.2",
|
|
89
|
+
"@types/react-dom": "^19.0.2",
|
|
90
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
91
|
+
"eslint": "^9.17.0",
|
|
92
|
+
"eslint-plugin-react-hooks": "^5.1.0",
|
|
93
|
+
"eslint-plugin-react-refresh": "^0.4.16",
|
|
94
|
+
"globals": "^15.14.0",
|
|
95
|
+
"postcss": "^8.5.14",
|
|
96
|
+
"postcss-prefix-selector": "^2.1.1",
|
|
97
|
+
"prettier": "^3.4.2",
|
|
98
|
+
"react": "^19.0.0",
|
|
99
|
+
"react-dom": "^19.0.0",
|
|
100
|
+
"tailwindcss": "^4.0.0",
|
|
101
|
+
"typescript": "~5.7.2",
|
|
102
|
+
"typescript-eslint": "^8.19.0",
|
|
103
|
+
"vite": "^6.0.7",
|
|
104
|
+
"vite-plugin-dts": "^4.4.0",
|
|
105
|
+
"vitest": "^2.1.8"
|
|
106
|
+
}
|
|
107
|
+
}
|