treege 3.0.0-beta.42 → 3.0.0-beta.44
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/DefaultInputs-D6a1ESW-.js +1562 -0
- package/dist/ThemeContext-CUHjGVUf.js +0 -1
- package/dist/editor/components/styles/EditorStyles.d.ts +2 -0
- package/dist/{editor-CE8g1o72.js → editor-DjtjUgyb.js} +249 -245
- package/dist/editor.js +1 -1
- package/dist/main.js +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/styles/RendererStyles.d.ts +2 -0
- package/dist/renderer.js +1 -1
- package/package.json +1 -2
- package/dist/DefaultInputs-Cr6wTVNE.js +0 -1558
- /package/dist/editor/components/{data-display/logo.d.ts → branding/Logo.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A as e, E as t, F as n, I as r, L as i, N as a, P as o, T as s, j as c, k as l, t as u } from "./ThemeContext-CUHjGVUf.js";
|
|
2
|
-
import { $ as d, A as f, B as p, F as m, G as h, H as g, I as _, J as v, K as y, L as ee, M as te, N as b, P as x, Q as ne, R as S, U as C, V as re, W as w, X as ie, Y as T, Z as ae, _ as E, at as D, c as O, et as k, it as A, j as oe, k as se, nt as j, o as ce, p as le, q as ue, rt as de, t as fe, tt as M, v as pe, z as me } from "./DefaultInputs-
|
|
2
|
+
import { $ as d, A as f, B as p, F as m, G as h, H as g, I as _, J as v, K as y, L as ee, M as te, N as b, P as x, Q as ne, R as S, U as C, V as re, W as w, X as ie, Y as T, Z as ae, _ as E, at as D, c as O, et as k, it as A, j as oe, k as se, nt as j, o as ce, p as le, q as ue, rt as de, t as fe, tt as M, v as pe, z as me } from "./DefaultInputs-D6a1ESW-.js";
|
|
3
3
|
import { Background as he, BackgroundVariant as ge, BaseEdge as _e, ControlButton as ve, Controls as ye, EdgeLabelRenderer as be, Handle as xe, MiniMap as Se, NodeResizer as Ce, Panel as we, Position as Te, ReactFlow as Ee, ReactFlowProvider as De, addEdge as Oe, getBezierPath as ke, useEdges as Ae, useNodes as je, useNodesInitialized as Me, useReactFlow as N, useStore as Ne } from "@xyflow/react";
|
|
4
4
|
import { createContext as Pe, memo as Fe, useCallback as P, useContext as Ie, useEffect as Le, useId as Re, useMemo as ze, useRef as Be, useState as F } from "react";
|
|
5
5
|
import { Fragment as I, jsx as L, jsxs as R } from "react/jsx-runtime";
|
|
@@ -22,7 +22,11 @@ var Bt = "data:image/svg+xml,%3csvg%20width='462'%20height='144'%20viewBox='0%20
|
|
|
22
22
|
alt: "Treege",
|
|
23
23
|
className: "tg:relative tg:h-7 tg:w-auto tg:drop-shadow-[0_0px_35px] tg:drop-shadow-blue-600 tg:md:h-14"
|
|
24
24
|
})
|
|
25
|
-
}), Ut = (e) => {
|
|
25
|
+
}), Ut = "/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-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-duration:initial;--tw-ease:initial;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-border-default:1px solid #bbb;--xy-node-border-selected-default:1px solid #555;--xy-handle-background-color-default:#333;--xy-selection-background-color-default:#9696b41a;--xy-selection-border-default:1px dotted #9b9b9bcc;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));min-width:5px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{justify-content:center;align-items:center;width:26px;height:26px;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border:var(--xy-node-border,var(--xy-node-border-default));color:var(--xy-node-color,var(--xy-node-color-default))}.react-flow__node-input.selected,.react-flow__node-input:focus,.react-flow__node-input:focus-visible,.react-flow__node-default.selected,.react-flow__node-default:focus,.react-flow__node-default:focus-visible,.react-flow__node-output.selected,.react-flow__node-output:focus,.react-flow__node-output:focus-visible,.react-flow__node-group.selected,.react-flow__node-group:focus,.react-flow__node-group:focus-visible{border:var(--xy-node-border-selected,var(--xy-node-border-selected-default));outline:none}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}@layer theme{:root,:host{--tg-font-sans:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--tg-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--tg-color-red-500:oklch(63.7% .237 25.331);--tg-color-blue-300:oklch(80.9% .105 251.813);--tg-color-blue-500:oklch(62.3% .214 259.815);--tg-color-blue-600:oklch(54.6% .245 262.881);--tg-color-purple-600:oklch(55.8% .288 302.321);--tg-color-purple-700:oklch(49.6% .265 301.924);--tg-color-gray-300:oklch(87.2% .01 258.338);--tg-color-gray-400:oklch(70.7% .022 261.325);--tg-color-gray-500:oklch(55.1% .027 264.364);--tg-color-black:#000;--tg-color-white:#fff;--tg-spacing:.25rem;--tg-container-sm:24rem;--tg-container-lg:32rem;--tg-container-2xl:42rem;--tg-text-xs:.75rem;--tg-text-xs--line-height:calc(1 / .75);--tg-text-sm:.875rem;--tg-text-sm--line-height:calc(1.25 / .875);--tg-text-base:1rem;--tg-text-base--line-height:calc(1.5 / 1);--tg-text-lg:1.125rem;--tg-text-lg--line-height:calc(1.75 / 1.125);--tg-text-2xl:1.5rem;--tg-text-2xl--line-height:calc(2 / 1.5);--tg-font-weight-light:300;--tg-font-weight-normal:400;--tg-font-weight-medium:500;--tg-font-weight-semibold:600;--tg-font-weight-bold:700;--tg-tracking-widest:.1em;--tg-radius-xs:.125rem;--tg-ease-in-out:cubic-bezier(.4, 0, .2, 1);--tg-animate-spin:spin 1s linear infinite;--tg-default-transition-duration:.15s;--tg-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--tg-default-font-family:var(--tg-font-sans);--tg-default-mono-font-family:var(--tg-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--tg-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(--tg-default-font-feature-settings,normal);font-variation-settings:var(--tg-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--tg-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--tg-default-mono-font-feature-settings,normal);font-variation-settings:var(--tg-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::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}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--treege-border)}body{color:var(--treege-foreground)}}@layer components;@layer utilities{.tg\\:pointer-events-none{pointer-events:none}.tg\\:invisible{visibility:hidden}.tg\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tg\\:absolute{position:absolute}.tg\\:fixed{position:fixed}.tg\\:relative{position:relative}.tg\\:inset-0{inset:calc(var(--tg-spacing) * 0)}.tg\\:inset-x-0{inset-inline:calc(var(--tg-spacing) * 0)}.tg\\:inset-y-0{inset-block:calc(var(--tg-spacing) * 0)}.tg\\:-top-1{top:calc(var(--tg-spacing) * -1)}.tg\\:-top-3\\.5{top:calc(var(--tg-spacing) * -3.5)}.tg\\:top-0{top:calc(var(--tg-spacing) * 0)}.tg\\:top-1\\/2{top:50%}.tg\\:top-2{top:calc(var(--tg-spacing) * 2)}.tg\\:top-4{top:calc(var(--tg-spacing) * 4)}.tg\\:top-\\[50\\%\\]{top:50%}.tg\\:-right-1{right:calc(var(--tg-spacing) * -1)}.tg\\:right-0{right:calc(var(--tg-spacing) * 0)}.tg\\:right-2{right:calc(var(--tg-spacing) * 2)}.tg\\:right-3{right:calc(var(--tg-spacing) * 3)}.tg\\:right-4{right:calc(var(--tg-spacing) * 4)}.tg\\:bottom-0{bottom:calc(var(--tg-spacing) * 0)}.tg\\:left-0{left:calc(var(--tg-spacing) * 0)}.tg\\:left-1\\/2{left:50%}.tg\\:left-2{left:calc(var(--tg-spacing) * 2)}.tg\\:left-5{left:calc(var(--tg-spacing) * 5)}.tg\\:left-6{left:calc(var(--tg-spacing) * 6)}.tg\\:left-\\[50\\%\\]{left:50%}.tg\\:z-50{z-index:50}.tg\\:-mx-1{margin-inline:calc(var(--tg-spacing) * -1)}.tg\\:mx-auto{margin-inline:auto}.tg\\:my-1{margin-block:calc(var(--tg-spacing) * 1)}.tg\\:my-4{margin-block:calc(var(--tg-spacing) * 4)}.tg\\:my-8{margin-block:calc(var(--tg-spacing) * 8)}.tg\\:mt-0\\.5{margin-top:calc(var(--tg-spacing) * .5)}.tg\\:mt-1{margin-top:calc(var(--tg-spacing) * 1)}.tg\\:mt-2{margin-top:calc(var(--tg-spacing) * 2)}.tg\\:mt-4{margin-top:calc(var(--tg-spacing) * 4)}.tg\\:mt-8{margin-top:calc(var(--tg-spacing) * 8)}.tg\\:mt-10{margin-top:calc(var(--tg-spacing) * 10)}.tg\\:mt-auto{margin-top:auto}.tg\\:mr-1{margin-right:calc(var(--tg-spacing) * 1)}.tg\\:mr-2{margin-right:calc(var(--tg-spacing) * 2)}.tg\\:mb-1{margin-bottom:calc(var(--tg-spacing) * 1)}.tg\\:mb-2{margin-bottom:calc(var(--tg-spacing) * 2)}.tg\\:mb-4{margin-bottom:calc(var(--tg-spacing) * 4)}.tg\\:mb-5{margin-bottom:calc(var(--tg-spacing) * 5)}.tg\\:mb-6{margin-bottom:calc(var(--tg-spacing) * 6)}.tg\\:mb-10{margin-bottom:calc(var(--tg-spacing) * 10)}.tg\\:ml-1{margin-left:calc(var(--tg-spacing) * 1)}.tg\\:ml-2{margin-left:calc(var(--tg-spacing) * 2)}.tg\\:ml-4{margin-left:calc(var(--tg-spacing) * 4)}.tg\\:ml-auto{margin-left:auto}.tg\\:block{display:block}.tg\\:flex{display:flex}.tg\\:grid{display:grid}.tg\\:hidden{display:none}.tg\\:inline-flex{display:inline-flex}.tg\\:field-sizing-content{field-sizing:content}.tg\\:aspect-square{aspect-ratio:1}.tg\\:size-\\(--cell-size\\){width:var(--cell-size);height:var(--cell-size)}.tg\\:size-2{width:calc(var(--tg-spacing) * 2);height:calc(var(--tg-spacing) * 2)}.tg\\:size-2\\.5{width:calc(var(--tg-spacing) * 2.5);height:calc(var(--tg-spacing) * 2.5)}.tg\\:size-3{width:calc(var(--tg-spacing) * 3);height:calc(var(--tg-spacing) * 3)}.tg\\:size-3\\.5{width:calc(var(--tg-spacing) * 3.5);height:calc(var(--tg-spacing) * 3.5)}.tg\\:size-4{width:calc(var(--tg-spacing) * 4);height:calc(var(--tg-spacing) * 4)}.tg\\:size-8{width:calc(var(--tg-spacing) * 8);height:calc(var(--tg-spacing) * 8)}.tg\\:size-9{width:calc(var(--tg-spacing) * 9);height:calc(var(--tg-spacing) * 9)}.tg\\:size-10{width:calc(var(--tg-spacing) * 10);height:calc(var(--tg-spacing) * 10)}.tg\\:size-auto{width:auto;height:auto}.tg\\:size-full{width:100%;height:100%}.tg\\:\\!h-3{height:calc(var(--tg-spacing) * 3)!important}.tg\\:h-\\(--cell-size\\){height:var(--cell-size)}.tg\\:h-0{height:calc(var(--tg-spacing) * 0)}.tg\\:h-2\\.5{height:calc(var(--tg-spacing) * 2.5)}.tg\\:h-3{height:calc(var(--tg-spacing) * 3)}.tg\\:h-3\\.5{height:calc(var(--tg-spacing) * 3.5)}.tg\\:h-4{height:calc(var(--tg-spacing) * 4)}.tg\\:h-6{height:calc(var(--tg-spacing) * 6)}.tg\\:h-6\\!{height:calc(var(--tg-spacing) * 6)!important}.tg\\:h-7{height:calc(var(--tg-spacing) * 7)}.tg\\:h-8{height:calc(var(--tg-spacing) * 8)}.tg\\:h-9{height:calc(var(--tg-spacing) * 9)}.tg\\:h-10{height:calc(var(--tg-spacing) * 10)}.tg\\:h-12{height:calc(var(--tg-spacing) * 12)}.tg\\:h-\\[1\\.15rem\\]{height:1.15rem}.tg\\:h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.tg\\:h-auto{height:auto}.tg\\:h-full{height:100%}.tg\\:h-px{height:1px}.tg\\:h-screen{height:100vh}.tg\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.tg\\:max-h-\\(--radix-select-content-available-height\\){max-height:var(--radix-select-content-available-height)}.tg\\:max-h-80{max-height:calc(var(--tg-spacing) * 80)}.tg\\:max-h-150{max-height:calc(var(--tg-spacing) * 150)}.tg\\:max-h-\\[300px\\]{max-height:300px}.tg\\:min-h-0{min-height:calc(var(--tg-spacing) * 0)}.tg\\:min-h-16{min-height:calc(var(--tg-spacing) * 16)}.tg\\:\\!w-3{width:calc(var(--tg-spacing) * 3)!important}.tg\\:w-\\(--cell-size\\){width:var(--cell-size)}.tg\\:w-0{width:calc(var(--tg-spacing) * 0)}.tg\\:w-2\\.5{width:calc(var(--tg-spacing) * 2.5)}.tg\\:w-3{width:calc(var(--tg-spacing) * 3)}.tg\\:w-3\\.5{width:calc(var(--tg-spacing) * 3.5)}.tg\\:w-3\\/4{width:75%}.tg\\:w-4{width:calc(var(--tg-spacing) * 4)}.tg\\:w-4\\/12{width:33.3333%}.tg\\:w-6{width:calc(var(--tg-spacing) * 6)}.tg\\:w-6\\!{width:calc(var(--tg-spacing) * 6)!important}.tg\\:w-8{width:calc(var(--tg-spacing) * 8)}.tg\\:w-8\\/12{width:66.6667%}.tg\\:w-9{width:calc(var(--tg-spacing) * 9)}.tg\\:w-10{width:calc(var(--tg-spacing) * 10)}.tg\\:w-12{width:calc(var(--tg-spacing) * 12)}.tg\\:w-32{width:calc(var(--tg-spacing) * 32)}.tg\\:w-64{width:calc(var(--tg-spacing) * 64)}.tg\\:w-72{width:calc(var(--tg-spacing) * 72)}.tg\\:w-80{width:calc(var(--tg-spacing) * 80)}.tg\\:w-96{width:calc(var(--tg-spacing) * 96)}.tg\\:w-\\[300px\\]{width:300px}.tg\\:w-auto{width:auto}.tg\\:w-fit{width:fit-content}.tg\\:w-full{width:100%}.tg\\:w-screen{width:100vw}.tg\\:max-w-2xl{max-width:var(--tg-container-2xl)}.tg\\:max-w-50{max-width:calc(var(--tg-spacing) * 50)}.tg\\:max-w-\\[350px\\]{max-width:350px}.tg\\:max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.tg\\:max-w-none{max-width:none}.tg\\:min-w-\\(--cell-size\\){min-width:var(--cell-size)}.tg\\:min-w-0{min-width:calc(var(--tg-spacing) * 0)}.tg\\:min-w-\\[8rem\\]{min-width:8rem}.tg\\:min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.tg\\:flex-1{flex:1}.tg\\:shrink-0{flex-shrink:0}.tg\\:border-collapse{border-collapse:collapse}.tg\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.tg\\:origin-\\(--radix-popover-content-transform-origin\\){transform-origin:var(--radix-popover-content-transform-origin)}.tg\\:origin-\\(--radix-select-content-transform-origin\\){transform-origin:var(--radix-select-content-transform-origin)}.tg\\:origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.tg\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:rotate-45{rotate:45deg}.tg\\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tg\\:animate-spin{animation:var(--tg-animate-spin)}.tg\\:cursor-default{cursor:default}.tg\\:cursor-pointer{cursor:pointer}.tg\\:touch-none{touch-action:none}.tg\\:resize-none{resize:none}.tg\\:scroll-my-1{scroll-margin-block:calc(var(--tg-spacing) * 1)}.tg\\:scroll-py-1{scroll-padding-block:calc(var(--tg-spacing) * 1)}.tg\\:list-inside{list-style-position:inside}.tg\\:list-disc{list-style-type:disc}.tg\\:flex-col{flex-direction:column}.tg\\:flex-col-reverse{flex-direction:column-reverse}.tg\\:place-content-center{place-content:center}.tg\\:items-center{align-items:center}.tg\\:items-end{align-items:flex-end}.tg\\:items-start{align-items:flex-start}.tg\\:justify-between{justify-content:space-between}.tg\\:justify-center{justify-content:center}.tg\\:justify-end{justify-content:flex-end}.tg\\:gap-0{gap:calc(var(--tg-spacing) * 0)}.tg\\:gap-0\\.5{gap:calc(var(--tg-spacing) * .5)}.tg\\:gap-1{gap:calc(var(--tg-spacing) * 1)}.tg\\:gap-1\\.5{gap:calc(var(--tg-spacing) * 1.5)}.tg\\:gap-2{gap:calc(var(--tg-spacing) * 2)}.tg\\:gap-3{gap:calc(var(--tg-spacing) * 3)}.tg\\:gap-4{gap:calc(var(--tg-spacing) * 4)}.tg\\:gap-5{gap:calc(var(--tg-spacing) * 5)}.tg\\:gap-6{gap:calc(var(--tg-spacing) * 6)}:where(.tg\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--tg-spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--tg-spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.tg\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--tg-spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--tg-spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.tg\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--tg-spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--tg-spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.tg\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--tg-spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--tg-spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.tg\\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--tg-spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--tg-spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.tg\\:gap-x-3{column-gap:calc(var(--tg-spacing) * 3)}:where(.tg\\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--tg-spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--tg-spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.tg\\:gap-y-3{row-gap:calc(var(--tg-spacing) * 3)}.tg\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tg\\:overflow-auto{overflow:auto}.tg\\:overflow-hidden{overflow:hidden}.tg\\:overflow-x-hidden{overflow-x:hidden}.tg\\:overflow-y-auto{overflow-y:auto}.tg\\:rounded{border-radius:.25rem}.tg\\:rounded-\\[2px\\]{border-radius:2px}.tg\\:rounded-\\[4px\\]{border-radius:4px}.tg\\:rounded-\\[inherit\\]{border-radius:inherit}.tg\\:rounded-full{border-radius:3.40282e38px}.tg\\:rounded-lg{border-radius:var(--treege-radius)}.tg\\:rounded-md{border-radius:calc(var(--treege-radius) - 2px)}.tg\\:rounded-none{border-radius:0}.tg\\:rounded-sm{border-radius:calc(var(--treege-radius) - 4px)}.tg\\:rounded-xs{border-radius:var(--tg-radius-xs)}.tg\\:rounded-l-md{border-top-left-radius:calc(var(--treege-radius) - 2px);border-bottom-left-radius:calc(var(--treege-radius) - 2px)}.tg\\:rounded-r-md{border-top-right-radius:calc(var(--treege-radius) - 2px);border-bottom-right-radius:calc(var(--treege-radius) - 2px)}.tg\\:border{border-style:var(--tw-border-style);border-width:1px}.tg\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.tg\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.tg\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tg\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.tg\\:border-foreground\\/30{border-color:var(--treege-foreground)}@supports (color:color-mix(in lab, red, red)){.tg\\:border-foreground\\/30{border-color:color-mix(in oklab, var(--treege-foreground) 30%, transparent)}}.tg\\:border-gray-300{border-color:var(--tg-color-gray-300)}.tg\\:border-input{border-color:var(--treege-input)}.tg\\:border-primary{border-color:var(--treege-primary)}.tg\\:border-transparent{border-color:#0000}.tg\\:border-t-transparent{border-top-color:#0000}.tg\\:border-l-transparent{border-left-color:#0000}.tg\\:bg-accent{background-color:var(--treege-accent)}.tg\\:bg-background{background-color:var(--treege-background)}.tg\\:bg-black\\/50{background-color:var(--tg-color-black)}@supports (color:color-mix(in lab, red, red)){.tg\\:bg-black\\/50{background-color:color-mix(in oklab, var(--tg-color-black) 50%, transparent)}}.tg\\:bg-blue-300{background-color:var(--tg-color-blue-300)}.tg\\:bg-blue-500{background-color:var(--tg-color-blue-500)}.tg\\:bg-border{background-color:var(--treege-border)}.tg\\:bg-chart-2{background-color:var(--treege-chart-2)}.tg\\:bg-destructive{background-color:var(--treege-destructive)}.tg\\:bg-foreground{background-color:var(--treege-foreground)}.tg\\:bg-muted,.tg\\:bg-muted\\/20{background-color:var(--treege-muted)}@supports (color:color-mix(in lab, red, red)){.tg\\:bg-muted\\/20{background-color:color-mix(in oklab, var(--treege-muted) 20%, transparent)}}.tg\\:bg-muted\\/30{background-color:var(--treege-muted)}@supports (color:color-mix(in lab, red, red)){.tg\\:bg-muted\\/30{background-color:color-mix(in oklab, var(--treege-muted) 30%, transparent)}}.tg\\:bg-popover{background-color:var(--treege-popover)}.tg\\:bg-primary,.tg\\:bg-primary\\/5{background-color:var(--treege-primary)}@supports (color:color-mix(in lab, red, red)){.tg\\:bg-primary\\/5{background-color:color-mix(in oklab, var(--treege-primary) 5%, transparent)}}.tg\\:bg-purple-600{background-color:var(--tg-color-purple-600)}.tg\\:bg-secondary{background-color:var(--treege-secondary)}.tg\\:bg-transparent{background-color:#0000}.tg\\:fill-current{fill:currentColor}.tg\\:fill-foreground{fill:var(--treege-foreground)}.tg\\:fill-primary{fill:var(--treege-primary)}.tg\\:object-cover{object-fit:cover}.tg\\:p-0{padding:calc(var(--tg-spacing) * 0)}.tg\\:p-0\\!{padding:calc(var(--tg-spacing) * 0)!important}.tg\\:p-1{padding:calc(var(--tg-spacing) * 1)}.tg\\:p-2{padding:calc(var(--tg-spacing) * 2)}.tg\\:p-3{padding:calc(var(--tg-spacing) * 3)}.tg\\:p-4{padding:calc(var(--tg-spacing) * 4)}.tg\\:p-6{padding:calc(var(--tg-spacing) * 6)}.tg\\:p-px{padding:1px}.tg\\:px-\\(--cell-size\\){padding-inline:var(--cell-size)}.tg\\:px-1{padding-inline:calc(var(--tg-spacing) * 1)}.tg\\:px-1\\.5{padding-inline:calc(var(--tg-spacing) * 1.5)}.tg\\:px-2{padding-inline:calc(var(--tg-spacing) * 2)}.tg\\:px-3{padding-inline:calc(var(--tg-spacing) * 3)}.tg\\:px-4{padding-inline:calc(var(--tg-spacing) * 4)}.tg\\:px-6{padding-inline:calc(var(--tg-spacing) * 6)}.tg\\:py-0{padding-block:calc(var(--tg-spacing) * 0)}.tg\\:py-0\\.5{padding-block:calc(var(--tg-spacing) * .5)}.tg\\:py-1{padding-block:calc(var(--tg-spacing) * 1)}.tg\\:py-1\\.5{padding-block:calc(var(--tg-spacing) * 1.5)}.tg\\:py-2{padding-block:calc(var(--tg-spacing) * 2)}.tg\\:py-3{padding-block:calc(var(--tg-spacing) * 3)}.tg\\:py-4{padding-block:calc(var(--tg-spacing) * 4)}.tg\\:py-6{padding-block:calc(var(--tg-spacing) * 6)}.tg\\:pt-2{padding-top:calc(var(--tg-spacing) * 2)}.tg\\:pr-1{padding-right:calc(var(--tg-spacing) * 1)}.tg\\:pr-2{padding-right:calc(var(--tg-spacing) * 2)}.tg\\:pr-8{padding-right:calc(var(--tg-spacing) * 8)}.tg\\:pr-10{padding-right:calc(var(--tg-spacing) * 10)}.tg\\:pb-1\\.5{padding-bottom:calc(var(--tg-spacing) * 1.5)}.tg\\:pl-2{padding-left:calc(var(--tg-spacing) * 2)}.tg\\:pl-8{padding-left:calc(var(--tg-spacing) * 8)}.tg\\:text-center{text-align:center}.tg\\:font-mono{font-family:var(--tg-font-mono)}.tg\\:text-2xl{font-size:var(--tg-text-2xl);line-height:var(--tw-leading,var(--tg-text-2xl--line-height))}.tg\\:text-base{font-size:var(--tg-text-base);line-height:var(--tw-leading,var(--tg-text-base--line-height))}.tg\\:text-lg{font-size:var(--tg-text-lg);line-height:var(--tw-leading,var(--tg-text-lg--line-height))}.tg\\:text-sm{font-size:var(--tg-text-sm);line-height:var(--tw-leading,var(--tg-text-sm--line-height))}.tg\\:text-xs{font-size:var(--tg-text-xs);line-height:var(--tw-leading,var(--tg-text-xs--line-height))}.tg\\:text-\\[0\\.8rem\\]{font-size:.8rem}.tg\\:text-\\[10px\\]{font-size:10px}.tg\\:leading-none{--tw-leading:1;line-height:1}.tg\\:font-bold{--tw-font-weight:var(--tg-font-weight-bold);font-weight:var(--tg-font-weight-bold)}.tg\\:font-light{--tw-font-weight:var(--tg-font-weight-light);font-weight:var(--tg-font-weight-light)}.tg\\:font-medium{--tw-font-weight:var(--tg-font-weight-medium);font-weight:var(--tg-font-weight-medium)}.tg\\:font-normal{--tw-font-weight:var(--tg-font-weight-normal);font-weight:var(--tg-font-weight-normal)}.tg\\:font-semibold{--tw-font-weight:var(--tg-font-weight-semibold);font-weight:var(--tg-font-weight-semibold)}.tg\\:tracking-widest{--tw-tracking:var(--tg-tracking-widest);letter-spacing:var(--tg-tracking-widest)}.tg\\:text-balance{text-wrap:balance}.tg\\:whitespace-nowrap{white-space:nowrap}.tg\\:text-\\[\\#13d3b4\\]{color:#13d3b4}.tg\\:text-\\[--treege-color-primary\\]{color:--treege-color-primary}.tg\\:text-accent-foreground{color:var(--treege-accent-foreground)}.tg\\:text-background{color:var(--treege-background)}.tg\\:text-current{color:currentColor}.tg\\:text-destructive{color:var(--treege-destructive)}.tg\\:text-foreground{color:var(--treege-foreground)}.tg\\:text-gray-300{color:var(--tg-color-gray-300)}.tg\\:text-gray-400{color:var(--tg-color-gray-400)}.tg\\:text-gray-500{color:var(--tg-color-gray-500)}.tg\\:text-muted-foreground{color:var(--treege-muted-foreground)}.tg\\:text-popover-foreground{color:var(--treege-popover-foreground)}.tg\\:text-primary{color:var(--treege-primary)}.tg\\:text-primary-foreground{color:var(--treege-primary-foreground)}.tg\\:text-red-500{color:var(--tg-color-red-500)}.tg\\:text-secondary-foreground{color:var(--treege-secondary-foreground)}.tg\\:text-white{color:var(--tg-color-white)}.tg\\:capitalize{text-transform:capitalize}.tg\\:uppercase{text-transform:uppercase}.tg\\:underline{text-decoration-line:underline}.tg\\:underline-offset-4{text-underline-offset:4px}.tg\\:\\[color-scheme\\:light\\]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.tg\\:opacity-0{opacity:0}.tg\\:opacity-50{opacity:.5}.tg\\:opacity-60{opacity:.6}.tg\\:opacity-70{opacity:.7}.tg\\:opacity-100{opacity:1}.tg\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.tg\\: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)}.tg\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.tg\\:ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}.tg\\:ring-offset-background{--tw-ring-offset-color:var(--treege-background)}.tg\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tg\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.tg\\:drop-shadow-\\[0_0px_35px\\]{--tw-drop-shadow-size:drop-shadow(0 0px 35px var(--tw-drop-shadow-color,currentcolor));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.tg\\:drop-shadow-blue-600{--tw-drop-shadow-color:var(--tg-color-blue-600)}@supports (color:color-mix(in lab, red, red)){.tg\\:drop-shadow-blue-600{--tw-drop-shadow-color:color-mix(in oklab, var(--tg-color-blue-600) var(--tw-drop-shadow-alpha), transparent)}}.tg\\:drop-shadow-blue-600{--tw-drop-shadow:var(--tw-drop-shadow-size)}.tg\\: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(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\: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(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration))}.tg\\:transition-none{transition-property:none}.tg\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.tg\\:ease-in-out{--tw-ease:var(--tg-ease-in-out);transition-timing-function:var(--tg-ease-in-out)}.tg\\:fade-in-0{--tw-enter-opacity:0}.tg\\:outline-none{--tw-outline-style:none;outline-style:none}.tg\\:select-none{-webkit-user-select:none;user-select:none}.tg\\:zoom-in-95{--tw-enter-scale:.95}.tg\\:\\[--cell-size\\:--spacing\\(8\\)\\]{--cell-size:calc(var(--tg-spacing) * 8)}.tg\\:group-data-\\[disabled\\=true\\]\\:pointer-events-none:is(:where(.tg\\:group)[data-disabled=true] *){pointer-events:none}.tg\\:group-data-\\[disabled\\=true\\]\\:opacity-50:is(:where(.tg\\:group)[data-disabled=true] *){opacity:.5}.tg\\:group-data-\\[focused\\=true\\]\\/day\\:relative:is(:where(.tg\\:group\\/day)[data-focused=true] *){position:relative}.tg\\:group-data-\\[focused\\=true\\]\\/day\\:z-10:is(:where(.tg\\:group\\/day)[data-focused=true] *){z-index:10}.tg\\:group-data-\\[focused\\=true\\]\\/day\\:border-ring:is(:where(.tg\\:group\\/day)[data-focused=true] *){border-color:var(--treege-ring)}.tg\\:group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\]:is(:where(.tg\\:group\\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.tg\\:group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50:is(:where(.tg\\:group\\/day)[data-focused=true] *){--tw-ring-color:var(--treege-ring)}@supports (color:color-mix(in lab, red, red)){.tg\\:group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50:is(:where(.tg\\:group\\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--treege-ring) 50%, transparent)}}.tg\\:peer-disabled\\:cursor-not-allowed:is(:where(.tg\\:peer):disabled~*){cursor:not-allowed}.tg\\:peer-disabled\\:opacity-50:is(:where(.tg\\:peer):disabled~*){opacity:.5}.tg\\:selection\\:bg-primary ::selection{background-color:var(--treege-primary)}.tg\\:selection\\:bg-primary::selection{background-color:var(--treege-primary)}.tg\\:selection\\:text-primary-foreground ::selection{color:var(--treege-primary-foreground)}.tg\\:selection\\:text-primary-foreground::selection{color:var(--treege-primary-foreground)}.tg\\:file\\:inline-flex::file-selector-button{display:inline-flex}.tg\\:file\\:h-7::file-selector-button{height:calc(var(--tg-spacing) * 7)}.tg\\:file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.tg\\:file\\:bg-transparent::file-selector-button{background-color:#0000}.tg\\:file\\:text-sm::file-selector-button{font-size:var(--tg-text-sm);line-height:var(--tw-leading,var(--tg-text-sm--line-height))}.tg\\:file\\:font-medium::file-selector-button{--tw-font-weight:var(--tg-font-weight-medium);font-weight:var(--tg-font-weight-medium)}.tg\\:file\\:text-foreground::file-selector-button{color:var(--treege-foreground)}.tg\\:placeholder\\:text-muted-foreground::placeholder,.tg\\:placeholder\\:text-muted-foreground\\/40::placeholder{color:var(--treege-muted-foreground)}@supports (color:color-mix(in lab, red, red)){.tg\\:placeholder\\:text-muted-foreground\\/40::placeholder{color:color-mix(in oklab, var(--treege-muted-foreground) 40%, transparent)}}.tg\\:placeholder\\:text-white\\/60::placeholder{color:var(--tg-color-white)}@supports (color:color-mix(in lab, red, red)){.tg\\:placeholder\\:text-white\\/60::placeholder{color:color-mix(in oklab, var(--tg-color-white) 60%, transparent)}}@media (hover:hover){.tg\\:hover\\:border-primary\\/50:hover{border-color:var(--treege-primary)}@supports (color:color-mix(in lab, red, red)){.tg\\:hover\\:border-primary\\/50:hover{border-color:color-mix(in oklab, var(--treege-primary) 50%, transparent)}}.tg\\:hover\\:bg-accent:hover{background-color:var(--treege-accent)}.tg\\:hover\\:bg-blue-600:hover{background-color:var(--tg-color-blue-600)}.tg\\:hover\\:bg-destructive\\/90:hover{background-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--treege-destructive) 90%, transparent)}}.tg\\:hover\\:bg-primary:hover{background-color:var(--treege-primary)}.tg\\:hover\\:bg-primary\\/80\\!:hover{background-color:var(--treege-primary)!important}@supports (color:color-mix(in lab, red, red)){.tg\\:hover\\:bg-primary\\/80\\!:hover{background-color:color-mix(in oklab, var(--treege-primary) 80%, transparent)!important}}.tg\\:hover\\:bg-primary\\/90:hover{background-color:var(--treege-primary)}@supports (color:color-mix(in lab, red, red)){.tg\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--treege-primary) 90%, transparent)}}.tg\\:hover\\:bg-purple-700:hover{background-color:var(--tg-color-purple-700)}.tg\\:hover\\:bg-secondary:hover,.tg\\:hover\\:bg-secondary\\/80:hover{background-color:var(--treege-secondary)}@supports (color:color-mix(in lab, red, red)){.tg\\:hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab, var(--treege-secondary) 80%, transparent)}}.tg\\:hover\\:text-\\[--treege-color-primary\\]:hover{color:--treege-color-primary}.tg\\:hover\\:text-accent-foreground:hover{color:var(--treege-accent-foreground)}.tg\\:hover\\:text-primary:hover{color:var(--treege-primary)}.tg\\:hover\\:no-underline:hover{text-decoration-line:none}.tg\\:hover\\:underline:hover{text-decoration-line:underline}.tg\\:hover\\:opacity-100:hover{opacity:1}.tg\\:hover\\:brightness-90:hover{--tw-brightness:brightness(90%);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,)}.tg\\:hover\\:brightness-125:hover{--tw-brightness:brightness(125%);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,)}}.tg\\:focus\\:bg-accent:focus{background-color:var(--treege-accent)}.tg\\:focus\\:text-accent-foreground:focus{color:var(--treege-accent-foreground)}.tg\\:focus\\:text-destructive:focus{color:var(--treege-destructive)}.tg\\:focus\\:ring-2:focus{--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)}.tg\\:focus\\:ring-blue-500:focus{--tw-ring-color:var(--tg-color-blue-500)}.tg\\:focus\\:ring-ring:focus{--tw-ring-color:var(--treege-ring)}.tg\\:focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.tg\\:focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tg\\:focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.tg\\:focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.tg\\:focus-visible\\:border-ring:focus-visible{border-color:var(--treege-ring)}.tg\\:focus-visible\\:border-transparent\\!:focus-visible{border-color:#0000!important}.tg\\:focus-visible\\:ring-0\\!:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.tg\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.tg\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--treege-destructive) 20%, transparent)}}.tg\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--treege-ring)}@supports (color:color-mix(in lab, red, red)){.tg\\:focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--treege-ring) 50%, transparent)}}.tg\\:focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.tg\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.tg\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.tg\\:disabled\\:opacity-50:disabled{opacity:.5}.tg\\:has-focus\\:border-ring:has(:focus){border-color:var(--treege-ring)}.tg\\:has-focus\\:ring-\\[3px\\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.tg\\:has-focus\\:ring-ring\\/50:has(:focus){--tw-ring-color:var(--treege-ring)}@supports (color:color-mix(in lab, red, red)){.tg\\:has-focus\\:ring-ring\\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--treege-ring) 50%, transparent)}}.tg\\:has-\\[\\>svg\\]\\:px-1\\.5:has(>svg){padding-inline:calc(var(--tg-spacing) * 1.5)}.tg\\:has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--tg-spacing) * 2.5)}.tg\\:has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--tg-spacing) * 3)}.tg\\:has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--tg-spacing) * 4)}.tg\\:aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}.tg\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--treege-destructive)}.tg\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--treege-destructive) 20%, transparent)}}.tg\\:aria-selected\\:text-muted-foreground[aria-selected=true]{color:var(--treege-muted-foreground)}.tg\\:data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.tg\\:data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.tg\\:data-\\[disabled\\=true\\]\\:pointer-events-none[data-disabled=true]{pointer-events:none}.tg\\:data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=true]{opacity:.5}.tg\\:data-\\[inset\\]\\:pl-7[data-inset]{padding-left:calc(var(--tg-spacing) * 7)}.tg\\:data-\\[inset\\]\\:pl-8[data-inset]{padding-left:calc(var(--tg-spacing) * 8)}.tg\\:data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.tg\\:data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.tg\\:data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.tg\\:data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.tg\\:data-\\[placeholder\\]\\:text-muted-foreground[data-placeholder]{color:var(--treege-muted-foreground)}.tg\\:data-\\[range-end\\=true\\]\\:rounded-md[data-range-end=true]{border-radius:calc(var(--treege-radius) - 2px)}.tg\\:data-\\[range-end\\=true\\]\\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--treege-radius) - 2px);border-bottom-right-radius:calc(var(--treege-radius) - 2px)}.tg\\:data-\\[range-end\\=true\\]\\:bg-primary[data-range-end=true]{background-color:var(--treege-primary)}.tg\\:data-\\[range-end\\=true\\]\\:text-primary-foreground[data-range-end=true]{color:var(--treege-primary-foreground)}.tg\\:data-\\[range-middle\\=true\\]\\:rounded-none[data-range-middle=true]{border-radius:0}.tg\\:data-\\[range-middle\\=true\\]\\:bg-accent[data-range-middle=true]{background-color:var(--treege-accent)}.tg\\:data-\\[range-middle\\=true\\]\\:text-accent-foreground[data-range-middle=true]{color:var(--treege-accent-foreground)}.tg\\:data-\\[range-start\\=true\\]\\:rounded-md[data-range-start=true]{border-radius:calc(var(--treege-radius) - 2px)}.tg\\:data-\\[range-start\\=true\\]\\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--treege-radius) - 2px);border-bottom-left-radius:calc(var(--treege-radius) - 2px)}.tg\\:data-\\[range-start\\=true\\]\\:bg-primary[data-range-start=true]{background-color:var(--treege-primary)}.tg\\:data-\\[range-start\\=true\\]\\:text-primary-foreground[data-range-start=true]{color:var(--treege-primary-foreground)}.tg\\:data-\\[selected-single\\=true\\]\\:bg-primary[data-selected-single=true]{background-color:var(--treege-primary)}.tg\\:data-\\[selected-single\\=true\\]\\:text-primary-foreground[data-selected-single=true]{color:var(--treege-primary-foreground)}.tg\\:data-\\[selected\\=true\\]\\:rounded-none[data-selected=true]{border-radius:0}.tg\\:data-\\[selected\\=true\\]\\:bg-accent[data-selected=true]{background-color:var(--treege-accent)}.tg\\:data-\\[selected\\=true\\]\\:text-accent-foreground[data-selected=true]{color:var(--treege-accent-foreground)}.tg\\:data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--tg-spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.tg\\:data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--tg-spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.tg\\:data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--tg-spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.tg\\:data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--tg-spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.tg\\:data-\\[size\\=default\\]\\:h-9[data-size=default]{height:calc(var(--tg-spacing) * 9)}.tg\\:data-\\[size\\=sm\\]\\:h-8[data-size=sm]{height:calc(var(--tg-spacing) * 8)}:is(.tg\\:\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--tg-spacing) * 12)}:is(.tg\\:\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.tg\\:\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.tg\\:\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.tg\\:\\*\\:data-\\[slot\\=select-value\\]\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--tg-spacing) * 2)}.tg\\:data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\][data-state=checked]{--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[state\\=checked\\]\\:border-primary[data-state=checked]{border-color:var(--treege-primary)}.tg\\:data-\\[state\\=checked\\]\\:bg-primary[data-state=checked]{background-color:var(--treege-primary)}.tg\\:data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked]{color:var(--treege-primary-foreground)}.tg\\:data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tg\\:data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.tg\\:data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.tg\\:data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.tg\\:data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.tg\\:data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.tg\\:data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.tg\\:data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.tg\\:data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.tg\\:data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--treege-accent)}.tg\\:data-\\[state\\=open\\]\\:bg-secondary[data-state=open]{background-color:var(--treege-secondary)}.tg\\:data-\\[state\\=open\\]\\:text-accent-foreground[data-state=open]{color:var(--treege-accent-foreground)}.tg\\:data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--treege-muted-foreground)}.tg\\:data-\\[state\\=open\\]\\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.tg\\:data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.tg\\:data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.tg\\:data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.tg\\:data-\\[state\\=open\\]\\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.tg\\:data-\\[state\\=open\\]\\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.tg\\:data-\\[state\\=open\\]\\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.tg\\:data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--tg-spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.tg\\:data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked]{background-color:var(--treege-input)}.tg\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--treege-destructive)}.tg\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--treege-destructive) 10%, transparent)}}.tg\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--treege-destructive)}@media (width>=40rem){.tg\\:sm\\:max-w-\\[550px\\]\\!{max-width:550px!important}.tg\\:sm\\:max-w-lg{max-width:var(--tg-container-lg)}.tg\\:sm\\:max-w-none{max-width:none}.tg\\:sm\\:max-w-sm{max-width:var(--tg-container-sm)}.tg\\:sm\\:flex-row{flex-direction:row}.tg\\:sm\\:justify-end{justify-content:flex-end}.tg\\:sm\\:text-left{text-align:left}}@media (width>=48rem){.tg\\:md\\:top-5{top:calc(var(--tg-spacing) * 5)}.tg\\:md\\:inline{display:inline}.tg\\:md\\:h-14{height:calc(var(--tg-spacing) * 14)}.tg\\:md\\:w-3\\/4{width:75%}.tg\\:md\\:flex-row{flex-direction:row}.tg\\:md\\:text-sm{font-size:var(--tg-text-sm);line-height:var(--tw-leading,var(--tg-text-sm--line-height))}}.tg\\:dark\\:border-input:is(.dark *){border-color:var(--treege-input)}.tg\\:dark\\:bg-blue-600:is(.dark *){background-color:var(--tg-color-blue-600)}.tg\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab, var(--treege-destructive) 60%, transparent)}}.tg\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--treege-input)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab, var(--treege-input) 30%, transparent)}}.tg\\:dark\\:\\[color-scheme\\:dark\\]:is(.dark *){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (hover:hover){.tg\\:dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--treege-accent)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--treege-accent) 50%, transparent)}}.tg\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--treege-input)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--treege-input) 50%, transparent)}}.tg\\:dark\\:hover\\:text-accent-foreground:is(.dark *):hover{color:var(--treege-accent-foreground)}}.tg\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--treege-destructive) 40%, transparent)}}.tg\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--treege-destructive) 40%, transparent)}}.tg\\:dark\\:data-\\[state\\=checked\\]\\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--treege-primary)}.tg\\:dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--treege-primary-foreground)}.tg\\:dark\\:data-\\[state\\=unchecked\\]\\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--treege-foreground)}.tg\\:dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80:is(.dark *)[data-state=unchecked]{background-color:var(--treege-input)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab, var(--treege-input) 80%, transparent)}}.tg\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){.tg\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--treege-destructive) 20%, transparent)}}.tg\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--tg-spacing) * 2)}.tg\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading]{padding-block:calc(var(--tg-spacing) * 1.5)}.tg\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs [cmdk-group-heading]{font-size:var(--tg-text-xs);line-height:var(--tw-leading,var(--tg-text-xs--line-height))}.tg\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--tg-font-weight-medium);font-weight:var(--tg-font-weight-medium)}.tg\\:\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground [cmdk-group-heading]{color:var(--treege-muted-foreground)}.tg\\:\\[\\&_\\[cmdk-group\\]\\]\\:px-2 [cmdk-group]{padding-inline:calc(var(--tg-spacing) * 2)}.tg\\:\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--tg-spacing) * 0)}.tg\\:\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--tg-spacing) * 5)}.tg\\:\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--tg-spacing) * 5)}.tg\\:\\[\\&_\\[cmdk-input\\]\\]\\:h-12 [cmdk-input]{height:calc(var(--tg-spacing) * 12)}.tg\\:\\[\\&_\\[cmdk-item\\]\\]\\:px-2 [cmdk-item]{padding-inline:calc(var(--tg-spacing) * 2)}.tg\\:\\[\\&_\\[cmdk-item\\]\\]\\:py-3 [cmdk-item]{padding-block:calc(var(--tg-spacing) * 3)}.tg\\:\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 [cmdk-item] svg{height:calc(var(--tg-spacing) * 5)}.tg\\:\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 [cmdk-item] svg{width:calc(var(--tg-spacing) * 5)}.tg\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.tg\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.tg\\:\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--tg-spacing) * 4);height:calc(var(--tg-spacing) * 4)}.tg\\:\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground svg:not([class*=text-]){color:var(--treege-muted-foreground)}.tg\\:\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--treege-radius) - 2px);border-bottom-left-radius:calc(var(--treege-radius) - 2px)}:is(.tg\\:rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_next\\>svg\\]\\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.tg\\:rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_previous\\>svg\\]\\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}:is(.tg\\:\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.tg\\:\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.tg\\:\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(var(--tg-spacing) * 2)}:is(.tg\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--treege-destructive)!important}.tg\\:\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--treege-radius) - 2px);border-bottom-right-radius:calc(var(--treege-radius) - 2px)}.tg\\:\\[\\&\\>span\\]\\:text-xs>span{font-size:var(--tg-text-xs);line-height:var(--tw-leading,var(--tg-text-xs--line-height))}.tg\\:\\[\\&\\>span\\]\\:opacity-70>span{opacity:.7}.tg\\:\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.tg\\:\\[\\&\\>svg\\]\\:size-2\\.5>svg{width:calc(var(--tg-spacing) * 2.5);height:calc(var(--tg-spacing) * 2.5)}.tg\\:\\[\\&\\>svg\\]\\:size-3>svg{width:calc(var(--tg-spacing) * 3);height:calc(var(--tg-spacing) * 3)}.tg\\:\\[\\&\\>svg\\]\\:size-3\\.5>svg{width:calc(var(--tg-spacing) * 3.5);height:calc(var(--tg-spacing) * 3.5)}.tg\\:\\[\\&\\>svg\\]\\:text-muted-foreground>svg{color:var(--treege-muted-foreground)}[data-slot=card-content] .tg\\:\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent,[data-slot=popover-content] .tg\\:\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent{background-color:#0000}@media (hover:hover){a.tg\\:\\[a\\&\\]\\:hover\\:bg-accent:hover{background-color:var(--treege-accent)}a.tg\\:\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:var(--treege-destructive)}@supports (color:color-mix(in lab, red, red)){a.tg\\:\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--treege-destructive) 90%, transparent)}}a.tg\\:\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:var(--treege-primary)}@supports (color:color-mix(in lab, red, red)){a.tg\\:\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--treege-primary) 90%, transparent)}}a.tg\\:\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:var(--treege-secondary)}@supports (color:color-mix(in lab, red, red)){a.tg\\:\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:color-mix(in oklab, var(--treege-secondary) 90%, transparent)}}a.tg\\:\\[a\\&\\]\\:hover\\:text-accent-foreground:hover{color:var(--treege-accent-foreground)}}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}:root{--treege-radius:.625rem;--treege-background:oklch(100% 0 0);--treege-foreground:oklch(14.5% 0 0);--treege-card:oklch(100% 0 0);--treege-card-foreground:oklch(14.5% 0 0);--treege-popover:oklch(100% 0 0);--treege-popover-foreground:oklch(14.5% 0 0);--treege-primary:oklch(20.5% 0 0);--treege-primary-foreground:oklch(98.5% 0 0);--treege-secondary:oklch(97% 0 0);--treege-secondary-foreground:oklch(20.5% 0 0);--treege-muted:oklch(97% 0 0);--treege-muted-foreground:oklch(55.6% 0 0);--treege-accent:oklch(97% 0 0);--treege-accent-foreground:oklch(20.5% 0 0);--treege-destructive:oklch(57.7% .245 27.325);--treege-border:oklch(92.2% 0 0);--treege-input:oklch(92.2% 0 0);--treege-ring:oklch(70.8% 0 0);--treege-chart-1:oklch(64.6% .222 41.116);--treege-chart-2:oklch(60% .118 184.704);--treege-chart-3:oklch(39.8% .07 227.392);--treege-chart-4:oklch(82.8% .189 84.429);--treege-chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--treege-background:oklch(14.5% 0 0);--treege-foreground:oklch(98.5% 0 0);--treege-card:oklch(20.5% 0 0);--treege-card-foreground:oklch(98.5% 0 0);--treege-popover:oklch(20.5% 0 0);--treege-popover-foreground:oklch(98.5% 0 0);--treege-primary:oklch(92.2% 0 0);--treege-primary-foreground:oklch(20.5% 0 0);--treege-secondary:oklch(26.9% 0 0);--treege-secondary-foreground:oklch(98.5% 0 0);--treege-muted:oklch(26.9% 0 0);--treege-muted-foreground:oklch(70.8% 0 0);--treege-accent:oklch(26.9% 0 0);--treege-accent-foreground:oklch(98.5% 0 0);--treege-destructive:oklch(70.4% .191 22.216);--treege-border:oklch(100% 0 0/.1);--treege-input:oklch(100% 0 0/.15);--treege-ring:oklch(55.6% 0 0);--treege-chart-1:oklch(48.8% .243 264.376);--treege-chart-2:oklch(69.6% .17 162.48);--treege-chart-3:oklch(76.9% .188 70.08);--treege-chart-4:oklch(62.7% .265 303.9);--treege-chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}:root{--node-width:280px;--node-height:150px;--node-border-radius:40px;--treege-color-primary:#13d3b4;--treege-color-tertiary:#0065a8;--treege-color-secondary:#007ff6;--treege-color-submit-primary:#ff4757;--treege-color-submit-secondary:#ff6b81;--treege-color-submit-tertiary:#ee5a6f}button{cursor:pointer;-webkit-user-select:none;user-select:none}#root{width:100vw;height:100vh}div.react-flow__node,div.react-flow__node.react-flow__node-input{border:0}div.react-flow__node__wrapper{padding:calc(var(--tg-spacing) * 7);width:270px;min-height:150px;box-shadow:0 0 20px 6px oklch(from var(--treege-color-primary) l c h / 10%), 0 0 20px oklch(from var(--treege-color-tertiary) l c h / 10%);background:linear-gradient(oklch(from var(--treege-card) l c h / 33%), oklch(from var(--treege-card) l c h / 33%)) padding-box, linear-gradient(145deg, oklch(from var(--treege-color-primary) l c h / 40%), oklch(0% 0 0/0), oklch(from var(--treege-color-secondary) l c h / 40%)) border-box;border:3px solid #0000;border-radius:30px;flex-direction:column;justify-content:center;display:flex}div.react-flow__node__wrapper.in-group{background:linear-gradient(oklch(from var(--treege-card) l c h / 33%), oklch(from var(--treege-card) l c h / 33%)) padding-box, linear-gradient(145deg, oklch(from var(--treege-chart-2) l c h / 33%), oklch(0% 0 0/0), oklch(from var(--treege-chart-2) l c h / 33%)) border-box}div.react-flow__node.selected .react-flow__node__wrapper{box-shadow:0 0 20px 6px oklch(from var(--treege-color-primary) l c h / 30%), 0 0 20px oklch(from var(--treege-color-tertiary) l c h / 30%)}div.react-flow__node__wrapper.submit-type{box-shadow:0 0 20px 6px oklch(from var(--treege-color-submit-primary) l c h / 10%), 0 0 20px oklch(from var(--treege-color-submit-tertiary) l c h / 10%);background:linear-gradient(oklch(from var(--treege-card) l c h / 33%), oklch(from var(--treege-card) l c h / 33%)) padding-box, linear-gradient(145deg, oklch(from var(--treege-color-submit-primary) l c h / 40%), oklch(0% 0 0/0), oklch(from var(--treege-color-submit-secondary) l c h / 40%)) border-box}div.react-flow__node.selected .react-flow__node__wrapper.submit-type{box-shadow:0 0 20px 6px oklch(from var(--treege-color-submit-primary) l c h / 30%), 0 0 20px oklch(from var(--treege-color-submit-tertiary) l c h / 30%)}div.react-flow__node-group,div.react-flow__node-group.selected{background:oklch(from var(--treege-chart-2) l c h / 5%);box-shadow:none;border:3px dashed var(--treege-chart-2)}div.react-flow__node-group .react-flow__resize-control{opacity:0;padding:4px;transition:opacity .2s}div.react-flow__node-group:hover .react-flow__resize-control,.react-flow__resize-control:hover{opacity:1}div.react-flow__handle{background-color:var(--treege-muted-foreground);height:calc(var(--tg-spacing) * 6);width:calc(var(--tg-spacing) * 6);cursor:pointer;border-radius:calc(var(--treege-radius) - 4px);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(--tg-default-transition-timing-function));transition-duration:var(--tw-duration,var(--tg-default-transition-duration));justify-content:center;align-items:center;display:flex}@media (hover:hover){div.react-flow__handle:hover{background-color:var(--treege-primary)}@supports (color:color-mix(in lab, red, red)){div.react-flow__handle:hover{background-color:color-mix(in oklab, var(--treege-primary) 80%, transparent)}}}path.react-flow__edge-path{stroke:var(--treege-muted-foreground)}.button-edge__label{pointer-events:all;transform-origin:50%;position:absolute}.button-edge__button{border:5px solid var(--xy-minimap-background-color-default);background-color:var(--treege-ring);width:30px;height:30px;color:var(--treege-primary);cursor:pointer;border-radius:50%;padding-top:0;font-size:12px}.button-edge__button:hover{background-color:var(--treege-destructive);color:#fff}.w-tc-editor{border-radius:calc(var(--treege-radius) - 2px);border-style:var(--tw-border-style);border-width:1px;border-color:var(--treege-input);background-color:var(--treege-input)}@supports (color:color-mix(in lab, red, red)){.w-tc-editor{background-color:color-mix(in oklab, var(--treege-input) 30%, transparent)}}.w-tc-editor:is(.dark *){background-color:var(--treege-input)}@supports (color:color-mix(in lab, red, red)){.w-tc-editor:is(.dark *){background-color:color-mix(in oklab, var(--treege-input) 30%, transparent)}}.treege-scrollbar{scrollbar-width:thin;scrollbar-color:var(--treege-border) transparent}.treege-scrollbar::-webkit-scrollbar{width:6px;height:6px}.treege-scrollbar::-webkit-scrollbar-track{background:0 0}.treege-scrollbar::-webkit-scrollbar-thumb{background-color:var(--treege-border);border-radius:3px}.treege-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--treege-muted-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-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-x-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-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-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-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}", Wt = () => /* @__PURE__ */ L("style", {
|
|
26
|
+
href: "treege-editor",
|
|
27
|
+
precedence: "default",
|
|
28
|
+
children: Ut
|
|
29
|
+
}), Gt = (e) => {
|
|
26
30
|
let t = je(), n = Ae();
|
|
27
31
|
return ze(() => {
|
|
28
32
|
if (!e) return [];
|
|
@@ -45,7 +49,7 @@ var Bt = "data:image/svg+xml,%3csvg%20width='462'%20height='144'%20viewBox='0%20
|
|
|
45
49
|
t,
|
|
46
50
|
n
|
|
47
51
|
]);
|
|
48
|
-
},
|
|
52
|
+
}, Kt = Pe(null), qt = ({ children: e, value: t }) => {
|
|
49
53
|
let [n, r] = F(t?.flowId), [i, a] = F(!1), [o, s] = F(null), [c, l] = F(null), u = ze(() => ({
|
|
50
54
|
...t,
|
|
51
55
|
...t?.aiConfig && { aiConfig: {
|
|
@@ -69,11 +73,11 @@ var Bt = "data:image/svg+xml,%3csvg%20width='462'%20height='144'%20viewBox='0%20
|
|
|
69
73
|
o,
|
|
70
74
|
c
|
|
71
75
|
]);
|
|
72
|
-
return /* @__PURE__ */ L(
|
|
76
|
+
return /* @__PURE__ */ L(Kt.Provider, {
|
|
73
77
|
value: u,
|
|
74
78
|
children: e
|
|
75
79
|
});
|
|
76
|
-
}, U = () => Ie(
|
|
80
|
+
}, U = () => Ie(Kt) ?? {
|
|
77
81
|
closeDeleteNodeConfirmation: () => {},
|
|
78
82
|
closeNodeTypeChangeConfirmation: () => {},
|
|
79
83
|
flowId: void 0,
|
|
@@ -91,7 +95,7 @@ var Bt = "data:image/svg+xml,%3csvg%20width='462'%20height='144'%20viewBox='0%20
|
|
|
91
95
|
};
|
|
92
96
|
//#endregion
|
|
93
97
|
//#region src/shared/components/ui/scroll-area.tsx
|
|
94
|
-
function
|
|
98
|
+
function Jt({ className: e, children: t, ...n }) {
|
|
95
99
|
return /* @__PURE__ */ R(Pt.Root, {
|
|
96
100
|
"data-slot": "scroll-area",
|
|
97
101
|
className: D("tg:relative", e),
|
|
@@ -102,12 +106,12 @@ function Kt({ className: e, children: t, ...n }) {
|
|
|
102
106
|
className: "tg:size-full tg:rounded-[inherit] tg:outline-none tg:transition-[color,box-shadow] tg:focus-visible:outline-1 tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50",
|
|
103
107
|
children: t
|
|
104
108
|
}),
|
|
105
|
-
/* @__PURE__ */ L(
|
|
109
|
+
/* @__PURE__ */ L(Yt, {}),
|
|
106
110
|
/* @__PURE__ */ L(Pt.Corner, {})
|
|
107
111
|
]
|
|
108
112
|
});
|
|
109
113
|
}
|
|
110
|
-
function
|
|
114
|
+
function Yt({ className: e, orientation: t = "vertical", ...n }) {
|
|
111
115
|
return /* @__PURE__ */ L(Pt.ScrollAreaScrollbar, {
|
|
112
116
|
"data-slot": "scroll-area-scrollbar",
|
|
113
117
|
orientation: t,
|
|
@@ -121,14 +125,14 @@ function qt({ className: e, orientation: t = "vertical", ...n }) {
|
|
|
121
125
|
}
|
|
122
126
|
//#endregion
|
|
123
127
|
//#region src/editor/features/TreegeEditor/edges/ConditionalEdge.tsx
|
|
124
|
-
var
|
|
128
|
+
var Xt = {
|
|
125
129
|
"!==": "≠",
|
|
126
130
|
"<": "<",
|
|
127
131
|
"<=": "≤",
|
|
128
132
|
"===": "=",
|
|
129
133
|
">": ">",
|
|
130
134
|
">=": "≥"
|
|
131
|
-
},
|
|
135
|
+
}, Zt = (e) => !!e.field && e.value !== void 0 && e.value !== "", Qt = {
|
|
132
136
|
conditional: Fe(({ id: t, target: n, sourceX: r, sourceY: i, targetX: a, targetY: o, sourcePosition: s, targetPosition: c, markerEnd: l, style: u, data: f }) => {
|
|
133
137
|
let [p, m, _] = ke({
|
|
134
138
|
sourcePosition: s,
|
|
@@ -137,7 +141,7 @@ var Jt = {
|
|
|
137
141
|
targetPosition: c,
|
|
138
142
|
targetX: a,
|
|
139
143
|
targetY: o
|
|
140
|
-
}), [y, ee] = F(!1), { updateEdgeData: te } = N(), b =
|
|
144
|
+
}), [y, ee] = F(!1), { updateEdgeData: te } = N(), b = Gt(n), x = W(), S = !!f?.configured || !!f?.isFallback || !!f?.label || (f?.conditions?.some(Zt) ?? !1), { handleSubmit: re, reset: w, Field: E } = Ve({
|
|
141
145
|
defaultValues: {
|
|
142
146
|
conditions: f?.conditions || [{
|
|
143
147
|
field: b[0]?.nodeId ?? "",
|
|
@@ -181,7 +185,7 @@ var Jt = {
|
|
|
181
185
|
if (t.length === 0) return null;
|
|
182
186
|
if (t.length === 1) {
|
|
183
187
|
let [e] = t, n = b.find((t) => t.nodeId === e.field)?.label ?? e.field ?? "";
|
|
184
|
-
return `${n === e.field && n.length > 5 ? `${n.slice(0, 5)}…` : n} ${
|
|
188
|
+
return `${n === e.field && n.length > 5 ? `${n.slice(0, 5)}…` : n} ${Xt[e.operator] ?? e.operator} ${e.value ?? ""}`;
|
|
185
189
|
}
|
|
186
190
|
let n = t.filter((t) => t.logicalOperator === e.AND).length, r = t.filter((t) => t.logicalOperator === e.OR).length;
|
|
187
191
|
return n > 0 && r === 0 ? `${t.length} ${x("editor.conditionalEdge.conditionsAnd")}` : r > 0 && n === 0 ? `${t.length} ${x("editor.conditionalEdge.conditionsOr")}` : `${t.length} ${x("editor.conditionalEdge.conditionsMixed")}`;
|
|
@@ -217,7 +221,7 @@ var Jt = {
|
|
|
217
221
|
className: "tg:w-96 tg:p-1",
|
|
218
222
|
align: "center",
|
|
219
223
|
onClick: (e) => e.stopPropagation(),
|
|
220
|
-
children: /* @__PURE__ */ L(
|
|
224
|
+
children: /* @__PURE__ */ L(Jt, {
|
|
221
225
|
className: "tg:flex tg:max-h-150 tg:flex-col tg:p-3",
|
|
222
226
|
children: /* @__PURE__ */ L("form", {
|
|
223
227
|
onSubmit: (e) => {
|
|
@@ -484,11 +488,11 @@ var Jt = {
|
|
|
484
488
|
})
|
|
485
489
|
}) })] });
|
|
486
490
|
})
|
|
487
|
-
},
|
|
491
|
+
}, $t = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", en = (e = 21) => {
|
|
488
492
|
let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
|
|
489
|
-
for (; e--;) t +=
|
|
493
|
+
for (; e--;) t += $t[n[e] & 63];
|
|
490
494
|
return t;
|
|
491
|
-
},
|
|
495
|
+
}, tn = (e, t) => {
|
|
492
496
|
if (t.size === 0) return e;
|
|
493
497
|
let n = /* @__PURE__ */ new Map();
|
|
494
498
|
return e.forEach((e) => {
|
|
@@ -543,14 +547,14 @@ var Jt = {
|
|
|
543
547
|
if (t.length === 1 && r.length === 1) {
|
|
544
548
|
let [e] = t, [n] = r, o = {
|
|
545
549
|
data: e.data,
|
|
546
|
-
id:
|
|
550
|
+
id: en(),
|
|
547
551
|
source: e.source,
|
|
548
552
|
target: n.target,
|
|
549
553
|
type: e.type
|
|
550
554
|
};
|
|
551
|
-
return
|
|
555
|
+
return tn([...a, o], i);
|
|
552
556
|
}
|
|
553
|
-
return
|
|
557
|
+
return tn(a, i);
|
|
554
558
|
});
|
|
555
559
|
}, [e, t]);
|
|
556
560
|
return {
|
|
@@ -566,7 +570,7 @@ var Jt = {
|
|
|
566
570
|
updateSelectedNodeData: c,
|
|
567
571
|
updateSelectedNodeType: s
|
|
568
572
|
};
|
|
569
|
-
},
|
|
573
|
+
}, nn = ({ nodeId: e, label: t, placeholder: n, className: r }) => {
|
|
570
574
|
let { language: i } = U(), { updateNodeData: a, clearSelection: o } = G(), s = W(), c = Be(null), l = t?.[i] ?? "", u = n || s("editor.treegeNode.labelPlaceholder"), d = (e) => e.stopPropagation();
|
|
571
575
|
return Le(() => {
|
|
572
576
|
let e = setTimeout(() => {
|
|
@@ -601,13 +605,13 @@ function K({ ...e }) {
|
|
|
601
605
|
...e
|
|
602
606
|
});
|
|
603
607
|
}
|
|
604
|
-
function
|
|
608
|
+
function rn({ ...e }) {
|
|
605
609
|
return /* @__PURE__ */ L(V.Trigger, {
|
|
606
610
|
"data-slot": "dropdown-menu-trigger",
|
|
607
611
|
...e
|
|
608
612
|
});
|
|
609
613
|
}
|
|
610
|
-
function
|
|
614
|
+
function an({ className: e, sideOffset: t = 4, ...n }) {
|
|
611
615
|
return /* @__PURE__ */ L(V.Portal, { children: /* @__PURE__ */ L(V.Content, {
|
|
612
616
|
"data-slot": "dropdown-menu-content",
|
|
613
617
|
sideOffset: t,
|
|
@@ -630,7 +634,7 @@ function J({ className: e, inset: t, variant: n = "default", ...r }) {
|
|
|
630
634
|
...r
|
|
631
635
|
});
|
|
632
636
|
}
|
|
633
|
-
function
|
|
637
|
+
function on({ className: e, inset: t, ...n }) {
|
|
634
638
|
return /* @__PURE__ */ L(V.Label, {
|
|
635
639
|
"data-slot": "dropdown-menu-label",
|
|
636
640
|
"data-inset": t,
|
|
@@ -647,11 +651,11 @@ function Y({ className: e, ...t }) {
|
|
|
647
651
|
}
|
|
648
652
|
//#endregion
|
|
649
653
|
//#region src/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.tsx
|
|
650
|
-
var
|
|
654
|
+
var sn = ({ nodeId: e, className: t }) => {
|
|
651
655
|
let { selectNode: n } = G(), { setIsNodeSheetOpen: r, openDeleteNodeConfirmation: i } = U(), a = W(), o = (e) => e.stopPropagation();
|
|
652
656
|
return /* @__PURE__ */ R(K, {
|
|
653
657
|
modal: !1,
|
|
654
|
-
children: [/* @__PURE__ */ L(
|
|
658
|
+
children: [/* @__PURE__ */ L(rn, {
|
|
655
659
|
asChild: !0,
|
|
656
660
|
onClick: o,
|
|
657
661
|
children: /* @__PURE__ */ L("button", {
|
|
@@ -660,7 +664,7 @@ var an = ({ nodeId: e, className: t }) => {
|
|
|
660
664
|
className: D("nodrag nopan tg:absolute tg:top-2 tg:right-2 tg:flex tg:h-6 tg:w-6 tg:cursor-pointer tg:items-center tg:justify-center tg:rounded-md tg:opacity-60 tg:transition-all tg:hover:text-[--treege-color-primary] tg:hover:opacity-100", t),
|
|
661
665
|
children: /* @__PURE__ */ L(gt, { className: "tg:h-3.5 tg:w-3.5" })
|
|
662
666
|
})
|
|
663
|
-
}), /* @__PURE__ */ R(
|
|
667
|
+
}), /* @__PURE__ */ R(an, {
|
|
664
668
|
align: "end",
|
|
665
669
|
onClick: o,
|
|
666
670
|
children: [
|
|
@@ -681,7 +685,7 @@ var an = ({ nodeId: e, className: t }) => {
|
|
|
681
685
|
]
|
|
682
686
|
})]
|
|
683
687
|
});
|
|
684
|
-
},
|
|
688
|
+
}, cn = Nt("tg:inline-flex tg:w-fit tg:shrink-0 tg:items-center tg:justify-center tg:gap-1 tg:overflow-hidden tg:rounded-full tg:border tg:border-transparent tg:px-2 tg:py-0.5 tg:text-xs tg:font-medium tg:whitespace-nowrap tg:transition-[color,box-shadow] tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:dark:aria-invalid:ring-destructive/40 tg:[&>svg]:pointer-events-none tg:[&>svg]:size-3", {
|
|
685
689
|
defaultVariants: { variant: "default" },
|
|
686
690
|
variants: { variant: {
|
|
687
691
|
blue: "tg:bg-blue-500 tg:text-white tg:dark:bg-blue-600",
|
|
@@ -692,41 +696,41 @@ var an = ({ nodeId: e, className: t }) => {
|
|
|
692
696
|
secondary: "tg:border-transparent tg:bg-secondary tg:text-secondary-foreground tg:[a&]:hover:bg-secondary/90"
|
|
693
697
|
} }
|
|
694
698
|
});
|
|
695
|
-
function
|
|
699
|
+
function ln({ className: e, variant: t, asChild: n = !1, ...r }) {
|
|
696
700
|
return /* @__PURE__ */ L(n ? Mt : "span", {
|
|
697
701
|
"data-slot": "badge",
|
|
698
|
-
className: D(
|
|
702
|
+
className: D(cn({ variant: t }), e),
|
|
699
703
|
...r
|
|
700
704
|
});
|
|
701
705
|
}
|
|
702
|
-
var
|
|
706
|
+
var un = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
703
707
|
/* @__PURE__ */ L(Ce, {}),
|
|
704
708
|
/* @__PURE__ */ L("div", {
|
|
705
709
|
className: "tg:-top-3.5 tg:absolute tg:left-6",
|
|
706
|
-
children: /* @__PURE__ */ R(
|
|
710
|
+
children: /* @__PURE__ */ R(ln, {
|
|
707
711
|
className: "tg:max-w-50 tg:bg-chart-2",
|
|
708
|
-
children: [/* @__PURE__ */ L(We, { className: "tg:!w-3 tg:!h-3" }), /* @__PURE__ */ L(
|
|
712
|
+
children: [/* @__PURE__ */ L(We, { className: "tg:!w-3 tg:!h-3" }), /* @__PURE__ */ L(nn, {
|
|
709
713
|
nodeId: t,
|
|
710
714
|
label: e?.label,
|
|
711
715
|
className: "tg:min-w-0 tg:flex-1 tg:text-xs tg:text-white tg:placeholder:text-white/60"
|
|
712
716
|
})]
|
|
713
717
|
})
|
|
714
718
|
}),
|
|
715
|
-
/* @__PURE__ */ L(
|
|
716
|
-
] })),
|
|
719
|
+
/* @__PURE__ */ L(sn, { nodeId: t })
|
|
720
|
+
] })), dn = {
|
|
717
721
|
data: { type: "text" },
|
|
718
|
-
id:
|
|
722
|
+
id: en(),
|
|
719
723
|
position: {
|
|
720
724
|
x: 0,
|
|
721
725
|
y: 0
|
|
722
726
|
},
|
|
723
727
|
type: "input"
|
|
724
|
-
},
|
|
728
|
+
}, fn = () => {
|
|
725
729
|
let { setNodes: e, setEdges: t, screenToFlowPosition: n, getNode: i, getNodes: a, getEdges: o } = N(), s = P((n, i, a = !1, s) => {
|
|
726
730
|
let c = n.id, l = o().filter((e) => e.source === c), u = r(n);
|
|
727
731
|
if (l.length > 0 && !u) return;
|
|
728
|
-
let d =
|
|
729
|
-
...
|
|
732
|
+
let d = en(), f = {
|
|
733
|
+
...dn,
|
|
730
734
|
...s && {
|
|
731
735
|
data: s.data ?? {},
|
|
732
736
|
type: s.type
|
|
@@ -742,7 +746,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
742
746
|
operator: "===",
|
|
743
747
|
value: ""
|
|
744
748
|
}] } : void 0,
|
|
745
|
-
id:
|
|
749
|
+
id: en(),
|
|
746
750
|
source: c,
|
|
747
751
|
target: d,
|
|
748
752
|
type: t && u ? "conditional" : "default"
|
|
@@ -822,7 +826,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
822
826
|
i,
|
|
823
827
|
n
|
|
824
828
|
]), d = P((e) => {
|
|
825
|
-
t((t) =>
|
|
829
|
+
t((t) => tn(t.filter((t) => !e.find((e) => e.id === t.id)), new Set(e.map((e) => e.source))));
|
|
826
830
|
}, [t]);
|
|
827
831
|
return {
|
|
828
832
|
isValidConnection: P((e) => {
|
|
@@ -854,10 +858,10 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
854
858
|
textarea: "textarea",
|
|
855
859
|
time: "time",
|
|
856
860
|
timerange: "timerange"
|
|
857
|
-
},
|
|
861
|
+
}, pn = {
|
|
858
862
|
divider: "divider",
|
|
859
863
|
title: "title"
|
|
860
|
-
},
|
|
864
|
+
}, mn = {
|
|
861
865
|
[X.address]: pt,
|
|
862
866
|
[X.autocomplete]: St,
|
|
863
867
|
[X.checkbox]: Ye,
|
|
@@ -876,11 +880,11 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
876
880
|
[X.textarea]: He,
|
|
877
881
|
[X.time]: $e,
|
|
878
882
|
[X.timerange]: et,
|
|
879
|
-
[
|
|
880
|
-
[
|
|
883
|
+
[pn.divider]: ht,
|
|
884
|
+
[pn.title]: st,
|
|
881
885
|
[l.flow]: _t
|
|
882
|
-
},
|
|
883
|
-
let { onAddFromHandle: n } =
|
|
886
|
+
}, hn = bt, Z = (e) => e && mn[e] || hn, gn = ({ nodeId: e, isConnectable: t }) => {
|
|
887
|
+
let { onAddFromHandle: n } = fn(), r = W(), [i, a] = F(!1), o = Z(l.flow);
|
|
884
888
|
return /* @__PURE__ */ R(I, { children: [/* @__PURE__ */ L(xe, {
|
|
885
889
|
type: "source",
|
|
886
890
|
position: Te.Bottom,
|
|
@@ -893,18 +897,18 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
893
897
|
}), /* @__PURE__ */ R(K, {
|
|
894
898
|
open: i,
|
|
895
899
|
onOpenChange: a,
|
|
896
|
-
children: [/* @__PURE__ */ L(
|
|
900
|
+
children: [/* @__PURE__ */ L(rn, {
|
|
897
901
|
asChild: !0,
|
|
898
902
|
children: /* @__PURE__ */ L("span", {
|
|
899
903
|
"aria-hidden": !0,
|
|
900
904
|
className: "tg:-translate-x-1/2 tg:pointer-events-none tg:absolute tg:bottom-0 tg:left-1/2 tg:h-0 tg:w-0"
|
|
901
905
|
})
|
|
902
|
-
}), /* @__PURE__ */ R(
|
|
906
|
+
}), /* @__PURE__ */ R(an, {
|
|
903
907
|
align: "center",
|
|
904
908
|
side: "bottom",
|
|
905
909
|
className: "treege-scrollbar tg:max-h-80",
|
|
906
910
|
children: [
|
|
907
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
911
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: r("editor.selectNodeType.options.input") }), Object.values(X).map((t) => /* @__PURE__ */ R(J, {
|
|
908
912
|
onClick: () => n(e, {
|
|
909
913
|
data: { type: t },
|
|
910
914
|
type: l.input
|
|
@@ -913,7 +917,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
913
917
|
children: [/* @__PURE__ */ L(Z(t), {}), t]
|
|
914
918
|
}, t))] }),
|
|
915
919
|
/* @__PURE__ */ L(Y, {}),
|
|
916
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
920
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: r("editor.selectNodeType.options.ui") }), Object.values(pn).map((t) => /* @__PURE__ */ R(J, {
|
|
917
921
|
onClick: () => n(e, {
|
|
918
922
|
data: { type: t },
|
|
919
923
|
type: l.ui
|
|
@@ -922,7 +926,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
922
926
|
children: [/* @__PURE__ */ L(Z(t), {}), t]
|
|
923
927
|
}, t))] }),
|
|
924
928
|
/* @__PURE__ */ L(Y, {}),
|
|
925
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
929
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: r("common.other") }), /* @__PURE__ */ R(J, {
|
|
926
930
|
onClick: () => n(e, {
|
|
927
931
|
data: {},
|
|
928
932
|
type: l.flow
|
|
@@ -932,7 +936,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
932
936
|
]
|
|
933
937
|
})]
|
|
934
938
|
})] });
|
|
935
|
-
},
|
|
939
|
+
}, _n = (e) => {
|
|
936
940
|
switch (e) {
|
|
937
941
|
case "number":
|
|
938
942
|
case "daterange":
|
|
@@ -942,7 +946,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
942
946
|
case "checkbox": return [];
|
|
943
947
|
default: return "";
|
|
944
948
|
}
|
|
945
|
-
},
|
|
949
|
+
}, vn = ({ nodeId: e, data: n }) => {
|
|
946
950
|
let { language: r } = U(), i = n?.type;
|
|
947
951
|
if (!i) return null;
|
|
948
952
|
let o = {
|
|
@@ -981,7 +985,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
981
985
|
className: D("tg:pointer-events-none tg:flex tg:select-none tg:flex-col tg:gap-1", i === "submit" && "tg:items-center"),
|
|
982
986
|
children: [u, /* @__PURE__ */ L(d, {
|
|
983
987
|
node: o,
|
|
984
|
-
value:
|
|
988
|
+
value: _n(i),
|
|
985
989
|
setValue: () => {},
|
|
986
990
|
id: e,
|
|
987
991
|
name: l,
|
|
@@ -990,7 +994,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
990
994
|
helperText: f || void 0
|
|
991
995
|
})]
|
|
992
996
|
});
|
|
993
|
-
},
|
|
997
|
+
}, yn = Object.values(X), bn = Object.values(pn), xn = ({ nodeId: e, nodeType: t, subType: n }) => {
|
|
994
998
|
let { updateNodeType: r } = G(), { getEdges: i } = N(), { openNodeTypeChangeConfirmation: a } = U(), o = W(), s = (e) => e.stopPropagation(), c = n || t, u = t === l.flow ? o("editor.selectNodeType.options.flow") : c, d = Z(c), f = Z(l.flow), p = (t, n) => {
|
|
995
999
|
let o = i().filter((t) => t.source === e).length;
|
|
996
1000
|
if ((t === l.ui || t === l.flow) && o > 1) {
|
|
@@ -1003,10 +1007,10 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1003
1007
|
}
|
|
1004
1008
|
r(e, t, n);
|
|
1005
1009
|
};
|
|
1006
|
-
return /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
1010
|
+
return /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
1007
1011
|
asChild: !0,
|
|
1008
1012
|
onClick: s,
|
|
1009
|
-
children: /* @__PURE__ */ R(
|
|
1013
|
+
children: /* @__PURE__ */ R(ln, {
|
|
1010
1014
|
variant: "default",
|
|
1011
1015
|
className: "nodrag nopan tg:cursor-pointer tg:px-1.5 tg:py-0 tg:text-[10px] tg:capitalize tg:[&>svg]:size-2.5",
|
|
1012
1016
|
children: [
|
|
@@ -1015,12 +1019,12 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1015
1019
|
/* @__PURE__ */ L(Xe, {})
|
|
1016
1020
|
]
|
|
1017
1021
|
})
|
|
1018
|
-
}), /* @__PURE__ */ R(
|
|
1022
|
+
}), /* @__PURE__ */ R(an, {
|
|
1019
1023
|
align: "start",
|
|
1020
1024
|
className: "treege-scrollbar tg:max-h-80",
|
|
1021
1025
|
onClick: s,
|
|
1022
1026
|
children: [
|
|
1023
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
1027
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: o("editor.selectNodeType.options.input") }), yn.map((e) => {
|
|
1024
1028
|
let r = Z(e);
|
|
1025
1029
|
return /* @__PURE__ */ R(J, {
|
|
1026
1030
|
onClick: () => p(l.input, e),
|
|
@@ -1029,7 +1033,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1029
1033
|
}, e);
|
|
1030
1034
|
})] }),
|
|
1031
1035
|
/* @__PURE__ */ L(Y, {}),
|
|
1032
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
1036
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: o("editor.selectNodeType.options.ui") }), bn.map((e) => {
|
|
1033
1037
|
let r = Z(e);
|
|
1034
1038
|
return /* @__PURE__ */ R(J, {
|
|
1035
1039
|
onClick: () => p(l.ui, e),
|
|
@@ -1038,21 +1042,21 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1038
1042
|
}, e);
|
|
1039
1043
|
})] }),
|
|
1040
1044
|
/* @__PURE__ */ L(Y, {}),
|
|
1041
|
-
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(
|
|
1045
|
+
/* @__PURE__ */ R(q, { children: [/* @__PURE__ */ L(on, { children: o("common.other") }), /* @__PURE__ */ R(J, {
|
|
1042
1046
|
onClick: () => p(l.flow),
|
|
1043
1047
|
className: D(t === l.flow && "tg:bg-accent"),
|
|
1044
1048
|
children: [/* @__PURE__ */ L(f, {}), o("editor.selectNodeType.options.flow")]
|
|
1045
1049
|
})] })
|
|
1046
1050
|
]
|
|
1047
1051
|
})] });
|
|
1048
|
-
},
|
|
1052
|
+
}, Sn = [
|
|
1049
1053
|
"radio",
|
|
1050
1054
|
"select",
|
|
1051
1055
|
"checkbox",
|
|
1052
1056
|
"autocomplete"
|
|
1053
|
-
],
|
|
1057
|
+
], Cn = ({ nodeId: e, data: t }) => {
|
|
1054
1058
|
let [n, r] = F(!1), [i, a] = F(""), [o, s] = F(""), { updateNodeData: c } = G(), { language: l } = U(), u = W(), f = t && "type" in t ? t.type : void 0;
|
|
1055
|
-
if (!(f &&
|
|
1059
|
+
if (!(f && Sn.includes(f))) return null;
|
|
1056
1060
|
let p = t.options ?? [], m = () => {
|
|
1057
1061
|
a(""), s("");
|
|
1058
1062
|
}, h = (t) => {
|
|
@@ -1136,9 +1140,9 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1136
1140
|
})]
|
|
1137
1141
|
})]
|
|
1138
1142
|
});
|
|
1139
|
-
},
|
|
1143
|
+
}, wn = ({ nodeId: e, required: t }) => {
|
|
1140
1144
|
let { updateNodeData: n } = G(), r = W();
|
|
1141
|
-
return /* @__PURE__ */ L(
|
|
1145
|
+
return /* @__PURE__ */ L(ln, {
|
|
1142
1146
|
variant: t ? "destructive" : "outline",
|
|
1143
1147
|
asChild: !0,
|
|
1144
1148
|
className: "nodrag nopan tg:cursor-pointer tg:px-1.5 tg:py-0 tg:text-[10px] tg:capitalize tg:[&>svg]:size-2.5",
|
|
@@ -1150,27 +1154,27 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1150
1154
|
children: r(t ? "editor.inputNodeForm.required" : "editor.inputNodeForm.optional")
|
|
1151
1155
|
})
|
|
1152
1156
|
});
|
|
1153
|
-
},
|
|
1157
|
+
}, Tn = ({ children: e, inGroup: t, isSubmit: n }) => /* @__PURE__ */ L("div", {
|
|
1154
1158
|
className: D("react-flow__node__wrapper tg:relative", t && "in-group", n && "submit-type"),
|
|
1155
1159
|
children: e
|
|
1156
|
-
}),
|
|
1160
|
+
}), En = Fe((e) => {
|
|
1157
1161
|
let { id: t, isConnectable: n, parentId: r, selected: i, type: a } = e, o = e.type === "input" ? e.data : void 0, s = e.type === "ui" ? e.data : void 0, c = o?.type ?? s?.type, l = o?.type === "submit", u = !i && !!o?.type;
|
|
1158
|
-
return /* @__PURE__ */ R(
|
|
1162
|
+
return /* @__PURE__ */ R(Tn, {
|
|
1159
1163
|
inGroup: !!r,
|
|
1160
1164
|
isSubmit: l,
|
|
1161
1165
|
children: [
|
|
1162
|
-
/* @__PURE__ */ L(
|
|
1166
|
+
/* @__PURE__ */ L(sn, { nodeId: t }),
|
|
1163
1167
|
/* @__PURE__ */ L(xe, {
|
|
1164
1168
|
type: "target",
|
|
1165
1169
|
position: Te.Top,
|
|
1166
1170
|
isConnectable: n,
|
|
1167
1171
|
isConnectableStart: a === "ui"
|
|
1168
1172
|
}),
|
|
1169
|
-
u && o ? /* @__PURE__ */ L(
|
|
1173
|
+
u && o ? /* @__PURE__ */ L(vn, {
|
|
1170
1174
|
nodeId: t,
|
|
1171
1175
|
data: o
|
|
1172
1176
|
}) : /* @__PURE__ */ R(I, { children: [
|
|
1173
|
-
/* @__PURE__ */ L(
|
|
1177
|
+
/* @__PURE__ */ L(nn, {
|
|
1174
1178
|
nodeId: t,
|
|
1175
1179
|
label: e.data?.label,
|
|
1176
1180
|
placeholder: o?.name,
|
|
@@ -1178,49 +1182,49 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1178
1182
|
}),
|
|
1179
1183
|
/* @__PURE__ */ R("div", {
|
|
1180
1184
|
className: "tg:mb-1 tg:flex tg:gap-1",
|
|
1181
|
-
children: [/* @__PURE__ */ L(
|
|
1185
|
+
children: [/* @__PURE__ */ L(xn, {
|
|
1182
1186
|
nodeId: t,
|
|
1183
1187
|
nodeType: a,
|
|
1184
1188
|
subType: c
|
|
1185
|
-
}), o && !l && /* @__PURE__ */ L(
|
|
1189
|
+
}), o && !l && /* @__PURE__ */ L(wn, {
|
|
1186
1190
|
nodeId: t,
|
|
1187
1191
|
required: o.required
|
|
1188
1192
|
})]
|
|
1189
1193
|
}),
|
|
1190
|
-
o && /* @__PURE__ */ L(
|
|
1194
|
+
o && /* @__PURE__ */ L(Cn, {
|
|
1191
1195
|
nodeId: t,
|
|
1192
1196
|
data: o
|
|
1193
1197
|
})
|
|
1194
1198
|
] }),
|
|
1195
|
-
/* @__PURE__ */ L(
|
|
1199
|
+
/* @__PURE__ */ L(gn, {
|
|
1196
1200
|
nodeId: t,
|
|
1197
1201
|
isConnectable: n
|
|
1198
1202
|
})
|
|
1199
1203
|
]
|
|
1200
1204
|
});
|
|
1201
|
-
}),
|
|
1202
|
-
[l.flow]:
|
|
1203
|
-
[l.group]:
|
|
1204
|
-
[l.input]:
|
|
1205
|
-
[l.ui]:
|
|
1206
|
-
},
|
|
1205
|
+
}), Dn = {
|
|
1206
|
+
[l.flow]: En,
|
|
1207
|
+
[l.group]: un,
|
|
1208
|
+
[l.input]: En,
|
|
1209
|
+
[l.ui]: En
|
|
1210
|
+
}, On = ({ show: e, onToggle: t }) => /* @__PURE__ */ L(ve, {
|
|
1207
1211
|
onClick: t,
|
|
1208
1212
|
title: e ? "Hide minimap" : "Show minimap",
|
|
1209
1213
|
children: L(e ? mt : pt, {})
|
|
1210
|
-
}),
|
|
1214
|
+
}), kn = {
|
|
1211
1215
|
"!==": "≠",
|
|
1212
1216
|
"<": "<",
|
|
1213
1217
|
"<=": "≤",
|
|
1214
1218
|
"===": "=",
|
|
1215
1219
|
">": ">",
|
|
1216
1220
|
">=": "≥"
|
|
1217
|
-
},
|
|
1221
|
+
}, An = (e, t) => {
|
|
1218
1222
|
let n = e?.filter((e) => e.value !== void 0 && e.value !== "") ?? [];
|
|
1219
1223
|
return n.length === 0 ? "" : n.map((e, n) => {
|
|
1220
|
-
let r =
|
|
1224
|
+
let r = kn[e.operator ?? ""] ?? e.operator ?? "", i = `${e.field ? t(e.field) : ""} ${r} ${e.value ?? ""}`.trim();
|
|
1221
1225
|
return `${n === 0 ? "" : ` ${e.logicalOperator ?? "AND"} `}${i}`;
|
|
1222
1226
|
}).join("");
|
|
1223
|
-
},
|
|
1227
|
+
}, jn = () => {
|
|
1224
1228
|
let { pendingNodeTypeChange: e, closeNodeTypeChangeConfirmation: t } = U(), { getEdges: n, getNode: r, setEdges: i, updateEdgeData: a } = N(), { updateNodeType: o } = G(), s = W(), c = ze(() => e ? n().filter((t) => t.source === e.nodeId).sort((e, t) => {
|
|
1225
1229
|
let n = r(e.target)?.position ?? {
|
|
1226
1230
|
x: 0,
|
|
@@ -1257,7 +1261,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1257
1261
|
}, v = (e) => {
|
|
1258
1262
|
let t = r(e)?.data, n = s(t?.label) || t?.name || e;
|
|
1259
1263
|
return n === e && n.length > 5 ? `${n.slice(0, 5)}…` : n;
|
|
1260
|
-
}, y = (e) => e?.isFallback ? s("editor.conditionalEdge.fallback") : e?.label ? e.label :
|
|
1264
|
+
}, y = (e) => e?.isFallback ? s("editor.conditionalEdge.fallback") : e?.label ? e.label : An(e?.conditions, v) || s("editor.changeNodeTypeDialog.noConditions");
|
|
1261
1265
|
return /* @__PURE__ */ L(m, {
|
|
1262
1266
|
open: e !== null,
|
|
1263
1267
|
onOpenChange: f,
|
|
@@ -1265,7 +1269,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1265
1269
|
showCloseButton: !1,
|
|
1266
1270
|
children: [
|
|
1267
1271
|
/* @__PURE__ */ R(me, { children: [/* @__PURE__ */ L(p, { children: s("editor.changeNodeTypeDialog.title") }), /* @__PURE__ */ L(ee, { children: s("editor.changeNodeTypeDialog.description") })] }),
|
|
1268
|
-
/* @__PURE__ */ L(
|
|
1272
|
+
/* @__PURE__ */ L(Jt, {
|
|
1269
1273
|
className: "tg:max-h-80",
|
|
1270
1274
|
children: /* @__PURE__ */ L(E, {
|
|
1271
1275
|
value: l,
|
|
@@ -1306,7 +1310,7 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1306
1310
|
]
|
|
1307
1311
|
})
|
|
1308
1312
|
});
|
|
1309
|
-
},
|
|
1313
|
+
}, Mn = () => {
|
|
1310
1314
|
let { pendingDeleteNodeId: e, closeDeleteNodeConfirmation: t } = U(), { deleteNode: n } = G(), r = W();
|
|
1311
1315
|
return /* @__PURE__ */ L(m, {
|
|
1312
1316
|
open: e !== null,
|
|
@@ -1327,10 +1331,10 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1327
1331
|
})] })]
|
|
1328
1332
|
})
|
|
1329
1333
|
});
|
|
1330
|
-
},
|
|
1334
|
+
}, Nn = 200, Pn = 100, Fn = (e) => !!(e.measured?.width && e.measured?.height), In = (e, t, n) => {
|
|
1331
1335
|
let r = n === "TB" ? "y" : "x";
|
|
1332
1336
|
return e.reduce((e, n) => t.node(n.id)[r] < t.node(e.id)[r] ? n : e, e[0]);
|
|
1333
|
-
},
|
|
1337
|
+
}, Ln = (e, t, n) => {
|
|
1334
1338
|
let r = new It.graphlib.Graph().setDefaultEdgeLabel(() => ({}));
|
|
1335
1339
|
r.setGraph({
|
|
1336
1340
|
nodesep: n.horizontalSpacing,
|
|
@@ -1340,35 +1344,35 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1340
1344
|
let i = /* @__PURE__ */ new Set();
|
|
1341
1345
|
e.forEach((e) => {
|
|
1342
1346
|
i.add(e.id), r.setNode(e.id, {
|
|
1343
|
-
height: e.measured?.height ??
|
|
1344
|
-
width: e.measured?.width ??
|
|
1347
|
+
height: e.measured?.height ?? Pn,
|
|
1348
|
+
width: e.measured?.width ?? Nn
|
|
1345
1349
|
});
|
|
1346
1350
|
}), t.forEach((e) => {
|
|
1347
1351
|
i.has(e.source) && i.has(e.target) && r.setEdge(e.source, e.target);
|
|
1348
1352
|
}), It.layout(r);
|
|
1349
|
-
let a =
|
|
1353
|
+
let a = In(e, r, n.direction), o = a.measured?.width ?? Nn, s = a.measured?.height ?? Pn, c = r.node(a.id), l = a.position.x - (c.x - o / 2), u = a.position.y - (c.y - s / 2), d = /* @__PURE__ */ new Map();
|
|
1350
1354
|
return e.forEach((e) => {
|
|
1351
|
-
let { x: t, y: n } = r.node(e.id), i = e.measured?.width ??
|
|
1355
|
+
let { x: t, y: n } = r.node(e.id), i = e.measured?.width ?? Nn, a = e.measured?.height ?? Pn;
|
|
1352
1356
|
d.set(e.id, {
|
|
1353
1357
|
x: t - i / 2 + l,
|
|
1354
1358
|
y: n - a / 2 + u
|
|
1355
1359
|
});
|
|
1356
1360
|
}), d;
|
|
1357
|
-
},
|
|
1361
|
+
}, Rn = (e) => {
|
|
1358
1362
|
let t = /* @__PURE__ */ new Map();
|
|
1359
1363
|
return e.forEach((e) => {
|
|
1360
1364
|
let n = t.get(e.parentId) ?? [];
|
|
1361
1365
|
n.push(e), t.set(e.parentId, n);
|
|
1362
1366
|
}), t;
|
|
1363
|
-
},
|
|
1367
|
+
}, zn = (e, t, n = {}) => {
|
|
1364
1368
|
let r = {
|
|
1365
1369
|
direction: n.direction ?? "TB",
|
|
1366
1370
|
horizontalSpacing: n.horizontalSpacing ?? 60,
|
|
1367
1371
|
verticalSpacing: n.verticalSpacing ?? 80
|
|
1368
1372
|
}, i = /* @__PURE__ */ new Map();
|
|
1369
|
-
return
|
|
1370
|
-
let n = e.filter(
|
|
1371
|
-
n.length !== 0 &&
|
|
1373
|
+
return Rn(e).forEach((e) => {
|
|
1374
|
+
let n = e.filter(Fn);
|
|
1375
|
+
n.length !== 0 && Ln(n, t, r).forEach((e, t) => {
|
|
1372
1376
|
i.set(t, e);
|
|
1373
1377
|
});
|
|
1374
1378
|
}), e.map((e) => {
|
|
@@ -1378,10 +1382,10 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1378
1382
|
position: t
|
|
1379
1383
|
} : e;
|
|
1380
1384
|
});
|
|
1381
|
-
},
|
|
1382
|
-
let { getNodes: r, getEdges: i, setNodes: a } = N(), o = Me(), s = Ne(
|
|
1385
|
+
}, Bn = (e) => Array.from(e.nodeLookup.values()).map((e) => `${e.id}:${e.measured?.width ?? 0}x${e.measured?.height ?? 0}`).join("|"), Vn = ({ direction: e, horizontalSpacing: t, verticalSpacing: n } = {}) => {
|
|
1386
|
+
let { getNodes: r, getEdges: i, setNodes: a } = N(), o = Me(), s = Ne(Bn);
|
|
1383
1387
|
return Le(() => {
|
|
1384
|
-
o && s && a(
|
|
1388
|
+
o && s && a(zn(r(), i(), {
|
|
1385
1389
|
direction: e,
|
|
1386
1390
|
horizontalSpacing: t,
|
|
1387
1391
|
verticalSpacing: n
|
|
@@ -1396,13 +1400,13 @@ var cn = Fe(({ data: e, id: t }) => /* @__PURE__ */ R(I, { children: [
|
|
|
1396
1400
|
i,
|
|
1397
1401
|
a
|
|
1398
1402
|
]), null;
|
|
1399
|
-
}, Bn = "You are a Treege decision tree generator. You must generate valid JSON structures for decision trees.\n\nIMPORTANT RULES:\n1. Always respond with valid JSON only, no markdown, no code blocks, no explanations outside the JSON\n2. The JSON must have this exact structure: { \"nodes\": [...], \"edges\": [...] }\n3. Every node must have: id (string), type (string), position ({ x: number, y: number }), data (object)\n4. Every edge must have: id (string), source (string), target (string)\n5. For regex patterns: ALWAYS use double backslashes (\\\\) for special characters (\\\\s, \\\\d, etc.)\n6. AVOID using \"pattern\" field unless specifically requested - prefer using simple validation\n7. For submit buttons, use type \"input\" with data.type \"submit\", NOT type \"flow\"\n8. For conditional logic, use conditional edges with proper operators (===, !==, >, <, >=, <=)\n\nNODE TYPES:\n- \"input\": Form input fields (text, number, select, checkbox, etc.)\n- \"ui\": UI elements (title, divider)\n- \"flow\": Navigation/flow control nodes\n- \"group\": Container for organizing nodes\n\nINPUT NODE TYPES (data.type):\n- \"text\", \"number\", \"textarea\", \"password\"\n- \"select\", \"radio\", \"checkbox\", \"switch\"\n- \"autocomplete\", \"date\", \"daterange\", \"time\", \"timerange\"\n- \"file\", \"address\", \"http\", \"hidden\", \"submit\"\n\nINPUT NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Field Label\",\n \"name\": \"fieldName\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter value...\",\n \"helperText\": \"Optional helper text\",\n \"pattern\": \"regex pattern (optional)\",\n \"errorMessage\": \"Error message if validation fails\",\n \"options\": [{ \"value\": \"val\", \"label\": \"Label\" }], // for select/radio/checkbox\n \"multiple\": false // for select/checkbox\n }\n}\n\nUI NODE TYPES (data.type):\n- \"title\": Display a title\n- \"divider\": Display a divider line\n\nUI NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"UI Element Label\",\n \"type\": \"title\" // or \"divider\"\n }\n}\n\nFLOW NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"flow\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Flow Step Label\",\n \"targetId\": \"next-node-id\" // optional\n }\n}\n\nGROUP NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"group\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Group Label\"\n }\n}\n\nEDGE STRUCTURE:\n{\n \"id\": \"edge-id\",\n \"source\": \"source-node-id\",\n \"target\": \"target-node-id\",\n \"type\": \"default\" // or \"conditional\" for conditional logic\n}\n\nCONDITIONAL EDGE STRUCTURE:\n{\n \"id\": \"edge-id\",\n \"source\": \"source-node-id\",\n \"target\": \"target-node-id\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If condition is true\", // optional label for the edge\n \"conditions\": [\n {\n \"field\": \"field-node-id\", // ID of the field to check\n \"operator\": \">=\", // operators: ===, !==, >, <, >=, <=\n \"value\": \"18\" // value to compare (as string)\n }\n ],\n \"operator\": \"AND\" // optional: \"AND\" or \"OR\" for multiple conditions (default: AND)\n }\n}\n\nIMPORTANT: For conditional edges, the value must ALWAYS be a string, even for numbers.\nExample: For \"age >= 18\", use \"value\": \"18\" (not value: 18)\n\nLAYOUT GUIDELINES:\n- Position nodes in a vertical flow (top to bottom)\n- Start at position { x: 0, y: 0 }\n- Space nodes vertically by exactly 250 pixels between each position (node height 150px + 100px spacing)\n- For horizontal spacing, use 350 pixels\n- Create logical flow from top to bottom\n- IMPORTANT: Keep consistent vertical spacing to avoid overlap\n- Each node position Y should increment by 250: first at y:0, second at y:250, third at y:500, etc.\n\nEXAMPLES:\n\nUser: \"Create a simple contact form with name, email and message\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"Contact Form\", \"type\": \"title\" }\n },\n {\n \"id\": \"name-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Name\",\n \"name\": \"name\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter your name\"\n }\n },\n {\n \"id\": \"email-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Email\",\n \"name\": \"email\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"your@email.com\"\n }\n },\n {\n \"id\": \"message-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 750 },\n \"data\": {\n \"label\": \"Message\",\n \"name\": \"message\",\n \"type\": \"textarea\",\n \"required\": true,\n \"placeholder\": \"Enter your message\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"name-1\" },\n { \"id\": \"e2\", \"source\": \"name-1\", \"target\": \"email-1\" },\n { \"id\": \"e3\", \"source\": \"email-1\", \"target\": \"message-1\" }\n ]\n}\n\nUser: \"Create a user registration form with age, address and country selector\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"User Registration\", \"type\": \"title\" }\n },\n {\n \"id\": \"age-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Age\",\n \"name\": \"age\",\n \"type\": \"number\",\n \"required\": true,\n \"placeholder\": \"Enter your age\"\n }\n },\n {\n \"id\": \"address-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Address\",\n \"name\": \"address\",\n \"type\": \"address\",\n \"required\": true,\n \"placeholder\": \"Enter your address\"\n }\n },\n {\n \"id\": \"country-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 750 },\n \"data\": {\n \"label\": \"Country\",\n \"name\": \"country\",\n \"type\": \"select\",\n \"required\": true,\n \"options\": [\n { \"value\": \"us\", \"label\": \"United States\" },\n { \"value\": \"ca\", \"label\": \"Canada\" },\n { \"value\": \"uk\", \"label\": \"United Kingdom\" },\n { \"value\": \"fr\", \"label\": \"France\" },\n { \"value\": \"de\", \"label\": \"Germany\" }\n ]\n }\n },\n {\n \"id\": \"submit-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 1000 },\n \"data\": {\n \"label\": \"Submit\",\n \"type\": \"submit\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"age-1\" },\n { \"id\": \"e2\", \"source\": \"age-1\", \"target\": \"address-1\" },\n { \"id\": \"e3\", \"source\": \"address-1\", \"target\": \"country-1\" },\n { \"id\": \"e4\", \"source\": \"country-1\", \"target\": \"submit-1\" }\n ]\n}\n\nUser: \"Create a form with name, age, and show different questions based on age (movie for 18+, color for under 18)\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"Survey Form\", \"type\": \"title\" }\n },\n {\n \"id\": \"name-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Name\",\n \"name\": \"name\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter your name\"\n }\n },\n {\n \"id\": \"age-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Age\",\n \"name\": \"age\",\n \"type\": \"number\",\n \"required\": true,\n \"placeholder\": \"Enter your age\"\n }\n },\n {\n \"id\": \"movie-1\",\n \"type\": \"input\",\n \"position\": { \"x\": -350, \"y\": 750 },\n \"data\": {\n \"label\": \"Favorite Movie\",\n \"name\": \"favoriteMovie\",\n \"type\": \"text\",\n \"required\": true,\n \"helperText\": \"For adults 18 and over\"\n }\n },\n {\n \"id\": \"color-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 350, \"y\": 750 },\n \"data\": {\n \"label\": \"Favorite Color\",\n \"name\": \"favoriteColor\",\n \"type\": \"text\",\n \"required\": true,\n \"helperText\": \"For those under 18\"\n }\n },\n {\n \"id\": \"submit-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 1000 },\n \"data\": {\n \"label\": \"Submit\",\n \"type\": \"submit\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"name-1\" },\n { \"id\": \"e2\", \"source\": \"name-1\", \"target\": \"age-1\" },\n {\n \"id\": \"e3\",\n \"source\": \"age-1\",\n \"target\": \"movie-1\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If 18 or older\",\n \"conditions\": [\n {\n \"field\": \"age-1\",\n \"operator\": \">=\",\n \"value\": \"18\"\n }\n ]\n }\n },\n {\n \"id\": \"e4\",\n \"source\": \"age-1\",\n \"target\": \"color-1\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If under 18\",\n \"conditions\": [\n {\n \"field\": \"age-1\",\n \"operator\": \"<\",\n \"value\": \"18\"\n }\n ]\n }\n },\n { \"id\": \"e5\", \"source\": \"movie-1\", \"target\": \"submit-1\" },\n { \"id\": \"e6\", \"source\": \"color-1\", \"target\": \"submit-1\" }\n ]\n}\n\nRemember:\n- Always respond with ONLY valid JSON\n- No markdown code blocks\n- No explanations outside the JSON\n- Follow the exact structure shown above\n- For submit buttons, ALWAYS use type \"input\" with data.type \"submit\"\n- For conditional edges, ALWAYS specify the value as a string and use proper operators (>=, <, ===, etc.)\n- Never leave condition values empty - always provide the comparison value\n", Vn = {
|
|
1403
|
+
}, Hn = "You are a Treege decision tree generator. You must generate valid JSON structures for decision trees.\n\nIMPORTANT RULES:\n1. Always respond with valid JSON only, no markdown, no code blocks, no explanations outside the JSON\n2. The JSON must have this exact structure: { \"nodes\": [...], \"edges\": [...] }\n3. Every node must have: id (string), type (string), position ({ x: number, y: number }), data (object)\n4. Every edge must have: id (string), source (string), target (string)\n5. For regex patterns: ALWAYS use double backslashes (\\\\) for special characters (\\\\s, \\\\d, etc.)\n6. AVOID using \"pattern\" field unless specifically requested - prefer using simple validation\n7. For submit buttons, use type \"input\" with data.type \"submit\", NOT type \"flow\"\n8. For conditional logic, use conditional edges with proper operators (===, !==, >, <, >=, <=)\n\nNODE TYPES:\n- \"input\": Form input fields (text, number, select, checkbox, etc.)\n- \"ui\": UI elements (title, divider)\n- \"flow\": Navigation/flow control nodes\n- \"group\": Container for organizing nodes\n\nINPUT NODE TYPES (data.type):\n- \"text\", \"number\", \"textarea\", \"password\"\n- \"select\", \"radio\", \"checkbox\", \"switch\"\n- \"autocomplete\", \"date\", \"daterange\", \"time\", \"timerange\"\n- \"file\", \"address\", \"http\", \"hidden\", \"submit\"\n\nINPUT NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Field Label\",\n \"name\": \"fieldName\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter value...\",\n \"helperText\": \"Optional helper text\",\n \"pattern\": \"regex pattern (optional)\",\n \"errorMessage\": \"Error message if validation fails\",\n \"options\": [{ \"value\": \"val\", \"label\": \"Label\" }], // for select/radio/checkbox\n \"multiple\": false // for select/checkbox\n }\n}\n\nUI NODE TYPES (data.type):\n- \"title\": Display a title\n- \"divider\": Display a divider line\n\nUI NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"UI Element Label\",\n \"type\": \"title\" // or \"divider\"\n }\n}\n\nFLOW NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"flow\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Flow Step Label\",\n \"targetId\": \"next-node-id\" // optional\n }\n}\n\nGROUP NODE DATA STRUCTURE:\n{\n \"id\": \"unique-id\",\n \"type\": \"group\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": {\n \"label\": \"Group Label\"\n }\n}\n\nEDGE STRUCTURE:\n{\n \"id\": \"edge-id\",\n \"source\": \"source-node-id\",\n \"target\": \"target-node-id\",\n \"type\": \"default\" // or \"conditional\" for conditional logic\n}\n\nCONDITIONAL EDGE STRUCTURE:\n{\n \"id\": \"edge-id\",\n \"source\": \"source-node-id\",\n \"target\": \"target-node-id\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If condition is true\", // optional label for the edge\n \"conditions\": [\n {\n \"field\": \"field-node-id\", // ID of the field to check\n \"operator\": \">=\", // operators: ===, !==, >, <, >=, <=\n \"value\": \"18\" // value to compare (as string)\n }\n ],\n \"operator\": \"AND\" // optional: \"AND\" or \"OR\" for multiple conditions (default: AND)\n }\n}\n\nIMPORTANT: For conditional edges, the value must ALWAYS be a string, even for numbers.\nExample: For \"age >= 18\", use \"value\": \"18\" (not value: 18)\n\nLAYOUT GUIDELINES:\n- Position nodes in a vertical flow (top to bottom)\n- Start at position { x: 0, y: 0 }\n- Space nodes vertically by exactly 250 pixels between each position (node height 150px + 100px spacing)\n- For horizontal spacing, use 350 pixels\n- Create logical flow from top to bottom\n- IMPORTANT: Keep consistent vertical spacing to avoid overlap\n- Each node position Y should increment by 250: first at y:0, second at y:250, third at y:500, etc.\n\nEXAMPLES:\n\nUser: \"Create a simple contact form with name, email and message\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"Contact Form\", \"type\": \"title\" }\n },\n {\n \"id\": \"name-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Name\",\n \"name\": \"name\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter your name\"\n }\n },\n {\n \"id\": \"email-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Email\",\n \"name\": \"email\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"your@email.com\"\n }\n },\n {\n \"id\": \"message-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 750 },\n \"data\": {\n \"label\": \"Message\",\n \"name\": \"message\",\n \"type\": \"textarea\",\n \"required\": true,\n \"placeholder\": \"Enter your message\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"name-1\" },\n { \"id\": \"e2\", \"source\": \"name-1\", \"target\": \"email-1\" },\n { \"id\": \"e3\", \"source\": \"email-1\", \"target\": \"message-1\" }\n ]\n}\n\nUser: \"Create a user registration form with age, address and country selector\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"User Registration\", \"type\": \"title\" }\n },\n {\n \"id\": \"age-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Age\",\n \"name\": \"age\",\n \"type\": \"number\",\n \"required\": true,\n \"placeholder\": \"Enter your age\"\n }\n },\n {\n \"id\": \"address-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Address\",\n \"name\": \"address\",\n \"type\": \"address\",\n \"required\": true,\n \"placeholder\": \"Enter your address\"\n }\n },\n {\n \"id\": \"country-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 750 },\n \"data\": {\n \"label\": \"Country\",\n \"name\": \"country\",\n \"type\": \"select\",\n \"required\": true,\n \"options\": [\n { \"value\": \"us\", \"label\": \"United States\" },\n { \"value\": \"ca\", \"label\": \"Canada\" },\n { \"value\": \"uk\", \"label\": \"United Kingdom\" },\n { \"value\": \"fr\", \"label\": \"France\" },\n { \"value\": \"de\", \"label\": \"Germany\" }\n ]\n }\n },\n {\n \"id\": \"submit-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 1000 },\n \"data\": {\n \"label\": \"Submit\",\n \"type\": \"submit\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"age-1\" },\n { \"id\": \"e2\", \"source\": \"age-1\", \"target\": \"address-1\" },\n { \"id\": \"e3\", \"source\": \"address-1\", \"target\": \"country-1\" },\n { \"id\": \"e4\", \"source\": \"country-1\", \"target\": \"submit-1\" }\n ]\n}\n\nUser: \"Create a form with name, age, and show different questions based on age (movie for 18+, color for under 18)\"\nResponse:\n{\n \"nodes\": [\n {\n \"id\": \"title-1\",\n \"type\": \"ui\",\n \"position\": { \"x\": 0, \"y\": 0 },\n \"data\": { \"label\": \"Survey Form\", \"type\": \"title\" }\n },\n {\n \"id\": \"name-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 250 },\n \"data\": {\n \"label\": \"Name\",\n \"name\": \"name\",\n \"type\": \"text\",\n \"required\": true,\n \"placeholder\": \"Enter your name\"\n }\n },\n {\n \"id\": \"age-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 500 },\n \"data\": {\n \"label\": \"Age\",\n \"name\": \"age\",\n \"type\": \"number\",\n \"required\": true,\n \"placeholder\": \"Enter your age\"\n }\n },\n {\n \"id\": \"movie-1\",\n \"type\": \"input\",\n \"position\": { \"x\": -350, \"y\": 750 },\n \"data\": {\n \"label\": \"Favorite Movie\",\n \"name\": \"favoriteMovie\",\n \"type\": \"text\",\n \"required\": true,\n \"helperText\": \"For adults 18 and over\"\n }\n },\n {\n \"id\": \"color-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 350, \"y\": 750 },\n \"data\": {\n \"label\": \"Favorite Color\",\n \"name\": \"favoriteColor\",\n \"type\": \"text\",\n \"required\": true,\n \"helperText\": \"For those under 18\"\n }\n },\n {\n \"id\": \"submit-1\",\n \"type\": \"input\",\n \"position\": { \"x\": 0, \"y\": 1000 },\n \"data\": {\n \"label\": \"Submit\",\n \"type\": \"submit\"\n }\n }\n ],\n \"edges\": [\n { \"id\": \"e1\", \"source\": \"title-1\", \"target\": \"name-1\" },\n { \"id\": \"e2\", \"source\": \"name-1\", \"target\": \"age-1\" },\n {\n \"id\": \"e3\",\n \"source\": \"age-1\",\n \"target\": \"movie-1\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If 18 or older\",\n \"conditions\": [\n {\n \"field\": \"age-1\",\n \"operator\": \">=\",\n \"value\": \"18\"\n }\n ]\n }\n },\n {\n \"id\": \"e4\",\n \"source\": \"age-1\",\n \"target\": \"color-1\",\n \"type\": \"conditional\",\n \"data\": {\n \"label\": \"If under 18\",\n \"conditions\": [\n {\n \"field\": \"age-1\",\n \"operator\": \"<\",\n \"value\": \"18\"\n }\n ]\n }\n },\n { \"id\": \"e5\", \"source\": \"movie-1\", \"target\": \"submit-1\" },\n { \"id\": \"e6\", \"source\": \"color-1\", \"target\": \"submit-1\" }\n ]\n}\n\nRemember:\n- Always respond with ONLY valid JSON\n- No markdown code blocks\n- No explanations outside the JSON\n- Follow the exact structure shown above\n- For submit buttons, ALWAYS use type \"input\" with data.type \"submit\"\n- For conditional edges, ALWAYS specify the value as a string and use proper operators (>=, <, ===, etc.)\n- Never leave condition values empty - always provide the comparison value\n", Un = {
|
|
1400
1404
|
claude: "claude-3-5-haiku-20241022",
|
|
1401
1405
|
deepseek: "deepseek-chat",
|
|
1402
1406
|
gemini: "gemini-2.5-flash",
|
|
1403
1407
|
openai: "gpt-4o-mini"
|
|
1404
|
-
},
|
|
1405
|
-
function
|
|
1408
|
+
}, Wn = .3;
|
|
1409
|
+
function Gn(e) {
|
|
1406
1410
|
try {
|
|
1407
1411
|
return JSON.parse(e);
|
|
1408
1412
|
} catch (t) {
|
|
@@ -1414,10 +1418,10 @@ function Un(e) {
|
|
|
1414
1418
|
}
|
|
1415
1419
|
}
|
|
1416
1420
|
}
|
|
1417
|
-
async function
|
|
1418
|
-
let t = e.config.model ||
|
|
1421
|
+
async function Kn(e) {
|
|
1422
|
+
let t = e.config.model || Un.gemini, n = e.config.temperature ?? Wn, r = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${t}:generateContent?key=${e.config.apiKey}`, {
|
|
1419
1423
|
body: JSON.stringify({
|
|
1420
|
-
contents: [{ parts: [{ text: `${
|
|
1424
|
+
contents: [{ parts: [{ text: `${Hn}\n\nUser request: ${e.prompt}` }] }],
|
|
1421
1425
|
generationConfig: {
|
|
1422
1426
|
responseMimeType: "application/json",
|
|
1423
1427
|
temperature: n
|
|
@@ -1432,13 +1436,13 @@ async function Wn(e) {
|
|
|
1432
1436
|
}
|
|
1433
1437
|
let i = (await r.json()).candidates?.[0]?.content?.parts?.[0]?.text;
|
|
1434
1438
|
if (!i) throw Error("No response from Gemini");
|
|
1435
|
-
return
|
|
1439
|
+
return Gn(i);
|
|
1436
1440
|
}
|
|
1437
|
-
async function
|
|
1438
|
-
let t = e.config.model ||
|
|
1441
|
+
async function qn(e) {
|
|
1442
|
+
let t = e.config.model || Un.openai, n = e.config.temperature ?? Wn, r = await fetch("https://api.openai.com/v1/chat/completions", {
|
|
1439
1443
|
body: JSON.stringify({
|
|
1440
1444
|
messages: [{
|
|
1441
|
-
content:
|
|
1445
|
+
content: Hn,
|
|
1442
1446
|
role: "system"
|
|
1443
1447
|
}, {
|
|
1444
1448
|
content: e.prompt,
|
|
@@ -1460,13 +1464,13 @@ async function Gn(e) {
|
|
|
1460
1464
|
}
|
|
1461
1465
|
let i = (await r.json()).choices?.[0]?.message?.content;
|
|
1462
1466
|
if (!i) throw Error("No response from OpenAI");
|
|
1463
|
-
return
|
|
1467
|
+
return Gn(i);
|
|
1464
1468
|
}
|
|
1465
|
-
async function
|
|
1466
|
-
let t = e.config.model ||
|
|
1469
|
+
async function Jn(e) {
|
|
1470
|
+
let t = e.config.model || Un.deepseek, n = e.config.temperature ?? Wn, r = await fetch("https://api.deepseek.com/v1/chat/completions", {
|
|
1467
1471
|
body: JSON.stringify({
|
|
1468
1472
|
messages: [{
|
|
1469
|
-
content:
|
|
1473
|
+
content: Hn,
|
|
1470
1474
|
role: "system"
|
|
1471
1475
|
}, {
|
|
1472
1476
|
content: e.prompt,
|
|
@@ -1488,10 +1492,10 @@ async function Kn(e) {
|
|
|
1488
1492
|
}
|
|
1489
1493
|
let i = (await r.json()).choices?.[0]?.message?.content;
|
|
1490
1494
|
if (!i) throw Error("No response from DeepSeek");
|
|
1491
|
-
return
|
|
1495
|
+
return Gn(i);
|
|
1492
1496
|
}
|
|
1493
|
-
async function
|
|
1494
|
-
let t = e.config.model ||
|
|
1497
|
+
async function Yn(e) {
|
|
1498
|
+
let t = e.config.model || Un.claude, n = e.config.temperature ?? Wn, r = await fetch("https://api.anthropic.com/v1/messages", {
|
|
1495
1499
|
body: JSON.stringify({
|
|
1496
1500
|
max_tokens: 4096,
|
|
1497
1501
|
messages: [{
|
|
@@ -1499,7 +1503,7 @@ async function qn(e) {
|
|
|
1499
1503
|
role: "user"
|
|
1500
1504
|
}],
|
|
1501
1505
|
model: t,
|
|
1502
|
-
system:
|
|
1506
|
+
system: Hn,
|
|
1503
1507
|
temperature: n
|
|
1504
1508
|
}),
|
|
1505
1509
|
headers: {
|
|
@@ -1515,20 +1519,20 @@ async function qn(e) {
|
|
|
1515
1519
|
}
|
|
1516
1520
|
let i = (await r.json()).content?.[0]?.text;
|
|
1517
1521
|
if (!i) throw Error("No response from Claude");
|
|
1518
|
-
return
|
|
1522
|
+
return Gn(i);
|
|
1519
1523
|
}
|
|
1520
|
-
function
|
|
1524
|
+
function Xn(e) {
|
|
1521
1525
|
switch (e.config.provider) {
|
|
1522
|
-
case "gemini": return
|
|
1523
|
-
case "openai": return
|
|
1524
|
-
case "deepseek": return
|
|
1525
|
-
case "claude": return
|
|
1526
|
+
case "gemini": return Kn(e);
|
|
1527
|
+
case "openai": return qn(e);
|
|
1528
|
+
case "deepseek": return Jn(e);
|
|
1529
|
+
case "claude": return Yn(e);
|
|
1526
1530
|
default: throw Error(`Unsupported AI provider: ${e.config.provider}`);
|
|
1527
1531
|
}
|
|
1528
1532
|
}
|
|
1529
1533
|
//#endregion
|
|
1530
1534
|
//#region src/editor/features/TreegeEditor/panel/AIGeneratorDialog.tsx
|
|
1531
|
-
var
|
|
1535
|
+
var Zn = ({ aiConfig: e, onGenerate: t }) => {
|
|
1532
1536
|
let [n, r] = F(!1), [i, a] = F(""), [o, s] = F(!1), c = W(), l = async () => {
|
|
1533
1537
|
if (!i.trim()) {
|
|
1534
1538
|
H.error(c("editor.aiGenerator.enterDescription"));
|
|
@@ -1540,7 +1544,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1540
1544
|
}
|
|
1541
1545
|
s(!0);
|
|
1542
1546
|
try {
|
|
1543
|
-
let n = await
|
|
1547
|
+
let n = await Xn({
|
|
1544
1548
|
config: e,
|
|
1545
1549
|
prompt: i.trim()
|
|
1546
1550
|
});
|
|
@@ -1633,15 +1637,15 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1633
1637
|
]
|
|
1634
1638
|
})]
|
|
1635
1639
|
});
|
|
1636
|
-
},
|
|
1637
|
-
let { flowId: r, setFlowId: i, aiConfig: a } = U(), { setNodes: o, setEdges: s, addNodes: c, screenToFlowPosition: l } = N(), u = r ||
|
|
1640
|
+
}, Qn = en(), $n = ({ onExportJson: e, onSave: t, extraMenuItems: n }) => {
|
|
1641
|
+
let { flowId: r, setFlowId: i, aiConfig: a } = U(), { setNodes: o, setEdges: s, addNodes: c, screenToFlowPosition: l } = N(), u = r || Qn, d = je(), f = Ae(), p = Be(null), m = W(), h = () => {
|
|
1638
1642
|
let e = (window.innerWidth || 0) / 2, t = (window.innerHeight || 0) / 2, n = parseInt(getComputedStyle(document.documentElement).getPropertyValue("--node-width"), 10), r = parseInt(getComputedStyle(document.documentElement).getPropertyValue("--node-height"), 10), i = l({
|
|
1639
1643
|
x: e - n,
|
|
1640
1644
|
y: t - r
|
|
1641
1645
|
});
|
|
1642
1646
|
c([{
|
|
1643
|
-
...
|
|
1644
|
-
id:
|
|
1647
|
+
...dn,
|
|
1648
|
+
id: en(),
|
|
1645
1649
|
position: i,
|
|
1646
1650
|
selected: !0
|
|
1647
1651
|
}]);
|
|
@@ -1690,7 +1694,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1690
1694
|
position: "top-right",
|
|
1691
1695
|
className: "tg:flex tg:gap-2",
|
|
1692
1696
|
children: [
|
|
1693
|
-
/* @__PURE__ */ L(
|
|
1697
|
+
/* @__PURE__ */ L(Zn, {
|
|
1694
1698
|
aiConfig: a,
|
|
1695
1699
|
onGenerate: (e) => {
|
|
1696
1700
|
o(e.nodes), s(e.edges);
|
|
@@ -1722,17 +1726,17 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1722
1726
|
})
|
|
1723
1727
|
]
|
|
1724
1728
|
}),
|
|
1725
|
-
/* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
1729
|
+
/* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
1726
1730
|
asChild: !0,
|
|
1727
1731
|
children: /* @__PURE__ */ L(A, {
|
|
1728
1732
|
variant: "outline",
|
|
1729
1733
|
size: "sm",
|
|
1730
1734
|
children: /* @__PURE__ */ L(it, {})
|
|
1731
1735
|
})
|
|
1732
|
-
}), /* @__PURE__ */ R(
|
|
1736
|
+
}), /* @__PURE__ */ R(an, {
|
|
1733
1737
|
align: "start",
|
|
1734
1738
|
children: [
|
|
1735
|
-
/* @__PURE__ */ L(
|
|
1739
|
+
/* @__PURE__ */ L(on, {
|
|
1736
1740
|
className: "tg:font-normal",
|
|
1737
1741
|
children: /* @__PURE__ */ R("div", {
|
|
1738
1742
|
className: "tg:flex tg:flex-col tg:gap-1",
|
|
@@ -1800,7 +1804,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1800
1804
|
})
|
|
1801
1805
|
]
|
|
1802
1806
|
});
|
|
1803
|
-
},
|
|
1807
|
+
}, er = {
|
|
1804
1808
|
ar: "ar",
|
|
1805
1809
|
de: "de",
|
|
1806
1810
|
en: "en",
|
|
@@ -1814,7 +1818,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1814
1818
|
children: [/* @__PURE__ */ L(v, {
|
|
1815
1819
|
className: "tg:uppercase",
|
|
1816
1820
|
children: /* @__PURE__ */ L(T, { placeholder: "" })
|
|
1817
|
-
}), /* @__PURE__ */ L(C, { children: /* @__PURE__ */ L(w, { children: Object.values(
|
|
1821
|
+
}), /* @__PURE__ */ L(C, { children: /* @__PURE__ */ L(w, { children: Object.values(er).map((e) => /* @__PURE__ */ L(h, {
|
|
1818
1822
|
value: e,
|
|
1819
1823
|
className: "tg:uppercase",
|
|
1820
1824
|
children: e
|
|
@@ -1828,7 +1832,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1828
1832
|
selectedNode: i,
|
|
1829
1833
|
selectedNodes: r
|
|
1830
1834
|
};
|
|
1831
|
-
},
|
|
1835
|
+
}, tr = () => {
|
|
1832
1836
|
let [e, t] = F("en"), { updateSelectedNodeData: n } = G(), { selectedNode: r } = $(), i = W(), { Field: a } = Ve({
|
|
1833
1837
|
defaultValues: {
|
|
1834
1838
|
label: r?.data?.label || { en: "" },
|
|
@@ -1895,7 +1899,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1895
1899
|
})]
|
|
1896
1900
|
})
|
|
1897
1901
|
});
|
|
1898
|
-
},
|
|
1902
|
+
}, nr = () => {
|
|
1899
1903
|
let [e, t] = F("en"), { selectedNode: n } = $(), { updateSelectedNodeData: r } = G(), { Field: i } = Ve({
|
|
1900
1904
|
defaultValues: { label: n?.data?.label || { en: "" } },
|
|
1901
1905
|
listeners: {
|
|
@@ -1940,12 +1944,12 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1940
1944
|
})]
|
|
1941
1945
|
})
|
|
1942
1946
|
});
|
|
1943
|
-
},
|
|
1947
|
+
}, rr = [
|
|
1944
1948
|
"POST",
|
|
1945
1949
|
"PUT",
|
|
1946
1950
|
"PATCH"
|
|
1947
|
-
],
|
|
1948
|
-
let { selectedNode: n } = $(), r = W(), i =
|
|
1951
|
+
], ir = ({ value: e, onChange: t }) => {
|
|
1952
|
+
let { selectedNode: n } = $(), r = W(), i = Gt(n?.id), { handleSubmit: a, Field: o, Subscribe: s } = Ve({
|
|
1949
1953
|
defaultValues: {
|
|
1950
1954
|
body: e?.body || "",
|
|
1951
1955
|
fetchOnMount: e?.fetchOnMount ?? !e?.searchParam,
|
|
@@ -1991,7 +1995,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1991
1995
|
onChange: ({ target: t }) => e.handleChange(t.value),
|
|
1992
1996
|
placeholder: r("editor.httpConfigForm.apiUrlPlaceholder"),
|
|
1993
1997
|
className: "tg:flex-1"
|
|
1994
|
-
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
1998
|
+
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
1995
1999
|
asChild: !0,
|
|
1996
2000
|
children: /* @__PURE__ */ L(A, {
|
|
1997
2001
|
type: "button",
|
|
@@ -1999,7 +2003,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
1999
2003
|
size: "icon",
|
|
2000
2004
|
children: /* @__PURE__ */ L(Ot, { className: "tg:h-4 tg:w-4" })
|
|
2001
2005
|
})
|
|
2002
|
-
}), /* @__PURE__ */ L(
|
|
2006
|
+
}), /* @__PURE__ */ L(an, {
|
|
2003
2007
|
align: "end",
|
|
2004
2008
|
children: i.length === 0 ? /* @__PURE__ */ L(J, {
|
|
2005
2009
|
disabled: !0,
|
|
@@ -2122,7 +2126,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2122
2126
|
method: e.values.method,
|
|
2123
2127
|
sendAllFormValues: e.values.sendAllFormValues
|
|
2124
2128
|
}),
|
|
2125
|
-
children: ({ method: e, sendAllFormValues: t }) =>
|
|
2129
|
+
children: ({ method: e, sendAllFormValues: t }) => rr.includes(e || "") && /* @__PURE__ */ R("div", {
|
|
2126
2130
|
className: "tg:space-y-4",
|
|
2127
2131
|
children: [/* @__PURE__ */ L(o, {
|
|
2128
2132
|
name: "sendAllFormValues",
|
|
@@ -2145,7 +2149,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2145
2149
|
children: [/* @__PURE__ */ L(d, {
|
|
2146
2150
|
htmlFor: e.name,
|
|
2147
2151
|
children: r("editor.httpConfigForm.requestBody")
|
|
2148
|
-
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
2152
|
+
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
2149
2153
|
asChild: !0,
|
|
2150
2154
|
children: /* @__PURE__ */ R(A, {
|
|
2151
2155
|
type: "button",
|
|
@@ -2154,7 +2158,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2154
2158
|
disabled: t,
|
|
2155
2159
|
children: [/* @__PURE__ */ L(Ot, { className: "tg:mr-2 tg:h-4 tg:w-4" }), r("editor.httpConfigForm.insertVariable")]
|
|
2156
2160
|
})
|
|
2157
|
-
}), /* @__PURE__ */ L(
|
|
2161
|
+
}), /* @__PURE__ */ L(an, {
|
|
2158
2162
|
align: "end",
|
|
2159
2163
|
children: i.length === 0 ? /* @__PURE__ */ L(J, {
|
|
2160
2164
|
disabled: !0,
|
|
@@ -2329,12 +2333,12 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2329
2333
|
})
|
|
2330
2334
|
]
|
|
2331
2335
|
}) });
|
|
2332
|
-
},
|
|
2336
|
+
}, ar = [
|
|
2333
2337
|
"POST",
|
|
2334
2338
|
"PUT",
|
|
2335
2339
|
"PATCH"
|
|
2336
|
-
],
|
|
2337
|
-
let [n, r] = F("en"), { selectedNode: i } = $(), a = W(), o =
|
|
2340
|
+
], or = ({ value: e, onChange: t }) => {
|
|
2341
|
+
let [n, r] = F("en"), { selectedNode: i } = $(), a = W(), o = Gt(i?.id), { handleSubmit: s, Field: c, Subscribe: l } = Ve({
|
|
2338
2342
|
defaultValues: {
|
|
2339
2343
|
body: e?.body || "",
|
|
2340
2344
|
errorMessage: e?.errorMessage || { en: "" },
|
|
@@ -2376,7 +2380,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2376
2380
|
onChange: ({ target: t }) => e.handleChange(t.value),
|
|
2377
2381
|
placeholder: a("editor.submitConfigForm.apiUrlPlaceholder"),
|
|
2378
2382
|
className: "tg:flex-1"
|
|
2379
|
-
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
2383
|
+
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
2380
2384
|
asChild: !0,
|
|
2381
2385
|
children: /* @__PURE__ */ L(A, {
|
|
2382
2386
|
type: "button",
|
|
@@ -2384,7 +2388,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2384
2388
|
size: "icon",
|
|
2385
2389
|
children: /* @__PURE__ */ L(Ot, { className: "tg:h-4 tg:w-4" })
|
|
2386
2390
|
})
|
|
2387
|
-
}), /* @__PURE__ */ L(
|
|
2391
|
+
}), /* @__PURE__ */ L(an, {
|
|
2388
2392
|
align: "end",
|
|
2389
2393
|
children: o.length === 0 ? /* @__PURE__ */ L(J, {
|
|
2390
2394
|
disabled: !0,
|
|
@@ -2503,7 +2507,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2503
2507
|
method: e.values.method,
|
|
2504
2508
|
sendAllFormValues: e.values.sendAllFormValues
|
|
2505
2509
|
}),
|
|
2506
|
-
children: ({ method: e, sendAllFormValues: t }) =>
|
|
2510
|
+
children: ({ method: e, sendAllFormValues: t }) => ar.includes(e || "") && /* @__PURE__ */ R("div", {
|
|
2507
2511
|
className: "tg:space-y-4",
|
|
2508
2512
|
children: [/* @__PURE__ */ L(c, {
|
|
2509
2513
|
name: "sendAllFormValues",
|
|
@@ -2526,7 +2530,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2526
2530
|
children: [/* @__PURE__ */ L(d, {
|
|
2527
2531
|
htmlFor: e.name,
|
|
2528
2532
|
children: a("editor.submitConfigForm.requestBody")
|
|
2529
|
-
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(
|
|
2533
|
+
}), /* @__PURE__ */ R(K, { children: [/* @__PURE__ */ L(rn, {
|
|
2530
2534
|
asChild: !0,
|
|
2531
2535
|
children: /* @__PURE__ */ R(A, {
|
|
2532
2536
|
type: "button",
|
|
@@ -2535,7 +2539,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2535
2539
|
disabled: t,
|
|
2536
2540
|
children: [/* @__PURE__ */ L(Ot, { className: "tg:mr-2 tg:h-4 tg:w-4" }), a("editor.submitConfigForm.insertVariable")]
|
|
2537
2541
|
})
|
|
2538
|
-
}), /* @__PURE__ */ L(
|
|
2542
|
+
}), /* @__PURE__ */ L(an, {
|
|
2539
2543
|
align: "end",
|
|
2540
2544
|
children: o.length === 0 ? /* @__PURE__ */ L(J, {
|
|
2541
2545
|
disabled: !0,
|
|
@@ -2686,7 +2690,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2686
2690
|
})
|
|
2687
2691
|
]
|
|
2688
2692
|
}) });
|
|
2689
|
-
},
|
|
2693
|
+
}, sr = ({ options: e, id: t, value: n, onValueChange: r, placeholder: i = "Select...", searchPlaceholder: a = "Search or create...", createLabel: o = (e) => `Use: ${e}`, clearLabel: s = "Clear selection", emptyLabel: c = "No results found", className: l, allowClear: u = !0, allowCreate: d = !0 }) => {
|
|
2690
2694
|
let [p, m] = F(!1), [h, g] = F(""), _ = (e) => e ?? "", v = (e) => e.trim().toLowerCase(), y = _(n), ee = n !== null && n !== "", S = ee ? e.find((e) => _(e.value) === y) : void 0, C = v(h), re = d && C !== "" && !e.some((e) => v(e.label) === C || v(e.value ?? "") === C), w = (e) => {
|
|
2691
2695
|
e === y ? u && r?.("") : r?.(e), m(!1), g("");
|
|
2692
2696
|
};
|
|
@@ -2748,7 +2752,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2748
2752
|
})
|
|
2749
2753
|
})]
|
|
2750
2754
|
});
|
|
2751
|
-
},
|
|
2755
|
+
}, cr = Object.entries({
|
|
2752
2756
|
alphanumeric: "^[a-zA-Z0-9]+$",
|
|
2753
2757
|
email: "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
|
|
2754
2758
|
letters: "^[a-zA-Z]+$",
|
|
@@ -2757,39 +2761,39 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2757
2761
|
}).map(([e, t]) => ({
|
|
2758
2762
|
label: e.charAt(0).toUpperCase() + e.slice(1).replace(/_/g, " "),
|
|
2759
2763
|
value: t
|
|
2760
|
-
})),
|
|
2764
|
+
})), lr = ({ id: e, value: t, onValueChange: n }) => /* @__PURE__ */ L(sr, {
|
|
2761
2765
|
id: e,
|
|
2762
|
-
options: ze(() => t && !
|
|
2766
|
+
options: ze(() => t && !cr.some((e) => e.value === t) ? [...cr, {
|
|
2763
2767
|
label: `Custom: ${t}`,
|
|
2764
2768
|
value: t
|
|
2765
|
-
}] :
|
|
2769
|
+
}] : cr, [t]),
|
|
2766
2770
|
value: t,
|
|
2767
2771
|
onValueChange: n,
|
|
2768
2772
|
placeholder: "Select or create a pattern",
|
|
2769
2773
|
searchPlaceholder: "Search patterns...",
|
|
2770
2774
|
createLabel: (e) => `Use pattern: ${e}`
|
|
2771
|
-
}),
|
|
2775
|
+
}), ur = 400, dr = .8, fr = (e) => new Promise((t, n) => {
|
|
2772
2776
|
let r = new FileReader();
|
|
2773
2777
|
r.onerror = () => n(/* @__PURE__ */ Error("read_failed")), r.onload = () => {
|
|
2774
2778
|
let e = new Image();
|
|
2775
2779
|
e.onload = () => t(e), e.onerror = () => n(/* @__PURE__ */ Error("decode_failed")), e.src = r.result;
|
|
2776
2780
|
}, r.readAsDataURL(e);
|
|
2777
|
-
}),
|
|
2781
|
+
}), pr = async (e) => {
|
|
2778
2782
|
if (!e.type.startsWith("image/")) throw Error("invalid_type");
|
|
2779
2783
|
if (e.size > 5242880) throw Error("too_large");
|
|
2780
|
-
let t = await
|
|
2784
|
+
let t = await fr(e), n = Math.min(1, ur / Math.max(t.width, t.height)), r = document.createElement("canvas");
|
|
2781
2785
|
r.width = Math.round(t.width * n), r.height = Math.round(t.height * n);
|
|
2782
2786
|
let i = r.getContext("2d");
|
|
2783
2787
|
if (!i) throw Error("canvas_unavailable");
|
|
2784
|
-
return i.drawImage(t, 0, 0, r.width, r.height), r.toDataURL("image/jpeg",
|
|
2785
|
-
},
|
|
2788
|
+
return i.drawImage(t, 0, 0, r.width, r.height), r.toDataURL("image/jpeg", dr);
|
|
2789
|
+
}, mr = 400, hr = (e) => {
|
|
2786
2790
|
if (!/^https?:\/\//i.test(e)) return !1;
|
|
2787
2791
|
try {
|
|
2788
2792
|
return !!new URL(e).hostname;
|
|
2789
2793
|
} catch {
|
|
2790
2794
|
return !1;
|
|
2791
2795
|
}
|
|
2792
|
-
},
|
|
2796
|
+
}, gr = ({ value: e, onChange: t }) => {
|
|
2793
2797
|
let n = Be(null), r = Be(null), [i, a] = F(!1), [o, s] = F(e && /^https?:\/\//i.test(e) ? e : ""), c = W();
|
|
2794
2798
|
Le(() => {
|
|
2795
2799
|
i || s(e && /^https?:\/\//i.test(e) ? e : "");
|
|
@@ -2799,7 +2803,7 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2799
2803
|
let l = async (e) => {
|
|
2800
2804
|
let r = e.target.files?.[0];
|
|
2801
2805
|
if (r) try {
|
|
2802
|
-
t(await
|
|
2806
|
+
t(await pr(r)), a(!1);
|
|
2803
2807
|
} catch (e) {
|
|
2804
2808
|
let t = e.message;
|
|
2805
2809
|
t === "too_large" ? H.error(c("editor.inputNodeForm.optionImageTooLarge")) : t === "invalid_type" ? H.error(c("editor.inputNodeForm.optionImageInvalid")) : H.error(c("editor.inputNodeForm.optionImageError"));
|
|
@@ -2863,9 +2867,9 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2863
2867
|
let i = n.target.value;
|
|
2864
2868
|
s(i), r.current && clearTimeout(r.current);
|
|
2865
2869
|
let a = i.trim();
|
|
2866
|
-
!
|
|
2870
|
+
!hr(a) || a === e || (r.current = setTimeout(() => {
|
|
2867
2871
|
t(a);
|
|
2868
|
-
},
|
|
2872
|
+
}, mr));
|
|
2869
2873
|
},
|
|
2870
2874
|
onKeyDown: (e) => {
|
|
2871
2875
|
e.key === "Enter" && (e.preventDefault(), u());
|
|
@@ -2890,19 +2894,19 @@ var Yn = ({ aiConfig: e, onGenerate: t }) => {
|
|
|
2890
2894
|
};
|
|
2891
2895
|
//#endregion
|
|
2892
2896
|
//#region src/shared/components/ui/collapsible.tsx
|
|
2893
|
-
function
|
|
2897
|
+
function _r({ ...e }) {
|
|
2894
2898
|
return /* @__PURE__ */ L(Rt.Root, {
|
|
2895
2899
|
"data-slot": "collapsible",
|
|
2896
2900
|
...e
|
|
2897
2901
|
});
|
|
2898
2902
|
}
|
|
2899
|
-
function
|
|
2903
|
+
function vr({ ...e }) {
|
|
2900
2904
|
return /* @__PURE__ */ L(Rt.CollapsibleTrigger, {
|
|
2901
2905
|
"data-slot": "collapsible-trigger",
|
|
2902
2906
|
...e
|
|
2903
2907
|
});
|
|
2904
2908
|
}
|
|
2905
|
-
function
|
|
2909
|
+
function yr({ ...e }) {
|
|
2906
2910
|
return /* @__PURE__ */ L(Rt.CollapsibleContent, {
|
|
2907
2911
|
"data-slot": "collapsible-content",
|
|
2908
2912
|
...e
|
|
@@ -2910,13 +2914,13 @@ function _r({ ...e }) {
|
|
|
2910
2914
|
}
|
|
2911
2915
|
//#endregion
|
|
2912
2916
|
//#region src/editor/features/TreegeEditor/forms/InputNodeForm.tsx
|
|
2913
|
-
var
|
|
2917
|
+
var br = () => {
|
|
2914
2918
|
let [e, t] = F("en"), { selectedNode: n } = $(), { updateSelectedNodeData: r } = G(), i = [
|
|
2915
2919
|
"select",
|
|
2916
2920
|
"radio",
|
|
2917
2921
|
"autocomplete",
|
|
2918
2922
|
"checkbox"
|
|
2919
|
-
].includes(n?.data?.type || ""), a =
|
|
2923
|
+
].includes(n?.data?.type || ""), a = Gt(n?.id), o = W(), s = n?.data?.type === "submit", c = n?.data?.type === "hidden", { handleSubmit: l, Field: u } = Ve({
|
|
2920
2924
|
defaultValues: {
|
|
2921
2925
|
defaultValue: n?.data?.defaultValue,
|
|
2922
2926
|
disablePast: n?.data?.disablePast,
|
|
@@ -3032,10 +3036,10 @@ var vr = () => {
|
|
|
3032
3036
|
onValueChange: t
|
|
3033
3037
|
})]
|
|
3034
3038
|
}),
|
|
3035
|
-
n?.data?.type === "http" && /* @__PURE__ */ R(
|
|
3039
|
+
n?.data?.type === "http" && /* @__PURE__ */ R(_r, {
|
|
3036
3040
|
defaultOpen: !0,
|
|
3037
3041
|
className: "tg:flex tg:w-full tg:max-w-[350px] tg:flex-col tg:gap-2",
|
|
3038
|
-
children: [/* @__PURE__ */ L(
|
|
3042
|
+
children: [/* @__PURE__ */ L(vr, {
|
|
3039
3043
|
asChild: !0,
|
|
3040
3044
|
children: /* @__PURE__ */ R("div", {
|
|
3041
3045
|
className: "tg:flex tg:items-center tg:justify-between tg:gap-4",
|
|
@@ -3052,11 +3056,11 @@ var vr = () => {
|
|
|
3052
3056
|
})]
|
|
3053
3057
|
})]
|
|
3054
3058
|
})
|
|
3055
|
-
}), /* @__PURE__ */ L(
|
|
3059
|
+
}), /* @__PURE__ */ L(yr, {
|
|
3056
3060
|
className: "tg:flex tg:flex-col tg:gap-4",
|
|
3057
3061
|
children: /* @__PURE__ */ L(u, {
|
|
3058
3062
|
name: "httpConfig",
|
|
3059
|
-
children: (e) => /* @__PURE__ */ L(
|
|
3063
|
+
children: (e) => /* @__PURE__ */ L(ir, {
|
|
3060
3064
|
value: e.state.value,
|
|
3061
3065
|
onChange: (t) => {
|
|
3062
3066
|
e.handleChange(t), l().then();
|
|
@@ -3065,9 +3069,9 @@ var vr = () => {
|
|
|
3065
3069
|
})
|
|
3066
3070
|
})]
|
|
3067
3071
|
}),
|
|
3068
|
-
s && /* @__PURE__ */ R(
|
|
3072
|
+
s && /* @__PURE__ */ R(_r, {
|
|
3069
3073
|
className: "tg:flex tg:w-full tg:max-w-[350px] tg:flex-col tg:gap-2",
|
|
3070
|
-
children: [/* @__PURE__ */ L(
|
|
3074
|
+
children: [/* @__PURE__ */ L(vr, {
|
|
3071
3075
|
asChild: !0,
|
|
3072
3076
|
children: /* @__PURE__ */ R("div", {
|
|
3073
3077
|
className: "tg:flex tg:items-center tg:justify-between tg:gap-4",
|
|
@@ -3084,11 +3088,11 @@ var vr = () => {
|
|
|
3084
3088
|
})]
|
|
3085
3089
|
})]
|
|
3086
3090
|
})
|
|
3087
|
-
}), /* @__PURE__ */ L(
|
|
3091
|
+
}), /* @__PURE__ */ L(yr, {
|
|
3088
3092
|
className: "tg:flex tg:flex-col tg:gap-4",
|
|
3089
3093
|
children: /* @__PURE__ */ L(u, {
|
|
3090
3094
|
name: "submitConfig",
|
|
3091
|
-
children: (e) => /* @__PURE__ */ L(
|
|
3095
|
+
children: (e) => /* @__PURE__ */ L(or, {
|
|
3092
3096
|
value: e.state.value,
|
|
3093
3097
|
onChange: (t) => {
|
|
3094
3098
|
e.handleChange(t), l().then();
|
|
@@ -3111,10 +3115,10 @@ var vr = () => {
|
|
|
3111
3115
|
})]
|
|
3112
3116
|
})
|
|
3113
3117
|
}),
|
|
3114
|
-
i && /* @__PURE__ */ R(
|
|
3118
|
+
i && /* @__PURE__ */ R(_r, {
|
|
3115
3119
|
defaultOpen: !0,
|
|
3116
3120
|
className: "tg:flex tg:w-full tg:max-w-[350px] tg:flex-col tg:gap-2",
|
|
3117
|
-
children: [/* @__PURE__ */ L(
|
|
3121
|
+
children: [/* @__PURE__ */ L(vr, {
|
|
3118
3122
|
asChild: !0,
|
|
3119
3123
|
children: /* @__PURE__ */ R("div", {
|
|
3120
3124
|
className: "tg:flex tg:items-center tg:justify-between tg:gap-4",
|
|
@@ -3131,7 +3135,7 @@ var vr = () => {
|
|
|
3131
3135
|
})]
|
|
3132
3136
|
})]
|
|
3133
3137
|
})
|
|
3134
|
-
}), /* @__PURE__ */ R(
|
|
3138
|
+
}), /* @__PURE__ */ R(yr, {
|
|
3135
3139
|
className: "tg:flex tg:flex-col tg:gap-4",
|
|
3136
3140
|
children: [
|
|
3137
3141
|
/* @__PURE__ */ L(u, {
|
|
@@ -3148,7 +3152,7 @@ var vr = () => {
|
|
|
3148
3152
|
children: [
|
|
3149
3153
|
n?.data?.type === "radio" && /* @__PURE__ */ L(u, {
|
|
3150
3154
|
name: `options[${i}].image`,
|
|
3151
|
-
children: (e) => /* @__PURE__ */ L(
|
|
3155
|
+
children: (e) => /* @__PURE__ */ L(gr, {
|
|
3152
3156
|
value: e.state.value,
|
|
3153
3157
|
onChange: (t) => e.handleChange(t)
|
|
3154
3158
|
})
|
|
@@ -3250,9 +3254,9 @@ var vr = () => {
|
|
|
3250
3254
|
]
|
|
3251
3255
|
})]
|
|
3252
3256
|
}),
|
|
3253
|
-
!s && /* @__PURE__ */ R(
|
|
3257
|
+
!s && /* @__PURE__ */ R(_r, {
|
|
3254
3258
|
className: "tg:flex tg:w-full tg:max-w-[350px] tg:flex-col tg:gap-2",
|
|
3255
|
-
children: [/* @__PURE__ */ L(
|
|
3259
|
+
children: [/* @__PURE__ */ L(vr, {
|
|
3256
3260
|
asChild: !0,
|
|
3257
3261
|
children: /* @__PURE__ */ R("div", {
|
|
3258
3262
|
className: "tg:flex tg:items-center tg:justify-between tg:gap-4",
|
|
@@ -3269,7 +3273,7 @@ var vr = () => {
|
|
|
3269
3273
|
})]
|
|
3270
3274
|
})]
|
|
3271
3275
|
})
|
|
3272
|
-
}), /* @__PURE__ */ R(
|
|
3276
|
+
}), /* @__PURE__ */ R(yr, {
|
|
3273
3277
|
className: "tg:flex tg:flex-col tg:gap-6",
|
|
3274
3278
|
children: [
|
|
3275
3279
|
/* @__PURE__ */ L(u, {
|
|
@@ -3305,7 +3309,7 @@ var vr = () => {
|
|
|
3305
3309
|
children: (e) => /* @__PURE__ */ R(j, { children: [/* @__PURE__ */ L(d, {
|
|
3306
3310
|
htmlFor: e.name,
|
|
3307
3311
|
children: o("editor.inputNodeForm.pattern")
|
|
3308
|
-
}), /* @__PURE__ */ L(
|
|
3312
|
+
}), /* @__PURE__ */ L(lr, {
|
|
3309
3313
|
id: e.name,
|
|
3310
3314
|
value: e.state.value,
|
|
3311
3315
|
onValueChange: e.handleChange
|
|
@@ -3341,9 +3345,9 @@ var vr = () => {
|
|
|
3341
3345
|
]
|
|
3342
3346
|
})]
|
|
3343
3347
|
}),
|
|
3344
|
-
!s && /* @__PURE__ */ R(
|
|
3348
|
+
!s && /* @__PURE__ */ R(_r, {
|
|
3345
3349
|
className: "tg:flex tg:w-full tg:max-w-[350px] tg:flex-col tg:gap-2",
|
|
3346
|
-
children: [/* @__PURE__ */ L(
|
|
3350
|
+
children: [/* @__PURE__ */ L(vr, {
|
|
3347
3351
|
asChild: !0,
|
|
3348
3352
|
children: /* @__PURE__ */ R("div", {
|
|
3349
3353
|
className: "tg:flex tg:items-center tg:justify-between tg:gap-4",
|
|
@@ -3360,7 +3364,7 @@ var vr = () => {
|
|
|
3360
3364
|
})]
|
|
3361
3365
|
})]
|
|
3362
3366
|
})
|
|
3363
|
-
}), /* @__PURE__ */ R(
|
|
3367
|
+
}), /* @__PURE__ */ R(yr, {
|
|
3364
3368
|
className: "tg:flex tg:flex-col tg:gap-6",
|
|
3365
3369
|
children: [/* @__PURE__ */ L(u, {
|
|
3366
3370
|
name: "name",
|
|
@@ -3593,7 +3597,7 @@ var vr = () => {
|
|
|
3593
3597
|
]
|
|
3594
3598
|
})
|
|
3595
3599
|
});
|
|
3596
|
-
},
|
|
3600
|
+
}, xr = () => {
|
|
3597
3601
|
let [e, t] = F("en"), { selectedNode: n } = $(), { updateSelectedNodeData: r } = G(), { Field: i } = Ve({
|
|
3598
3602
|
defaultValues: { label: n?.data?.label || { en: "" } },
|
|
3599
3603
|
listeners: {
|
|
@@ -3641,7 +3645,7 @@ var vr = () => {
|
|
|
3641
3645
|
})
|
|
3642
3646
|
})
|
|
3643
3647
|
});
|
|
3644
|
-
},
|
|
3648
|
+
}, Sr = () => {
|
|
3645
3649
|
let [e, t] = F(""), [r, i] = F(!1), { selectedNode: a, groupNodes: o } = $(), { setNodes: s } = N(), c = a?.parentId || "none", l = n(a), u = W(), f = Re(), p = Re();
|
|
3646
3650
|
if (l) return null;
|
|
3647
3651
|
let m = (e) => {
|
|
@@ -3669,7 +3673,7 @@ var vr = () => {
|
|
|
3669
3673
|
H.error("This group already exists", { description: "Use the selector to add the node to an existing group." });
|
|
3670
3674
|
return;
|
|
3671
3675
|
}
|
|
3672
|
-
let n =
|
|
3676
|
+
let n = en();
|
|
3673
3677
|
s((t) => [{
|
|
3674
3678
|
data: { label: { en: e.trim() } },
|
|
3675
3679
|
id: n,
|
|
@@ -3777,7 +3781,7 @@ var vr = () => {
|
|
|
3777
3781
|
})]
|
|
3778
3782
|
})]
|
|
3779
3783
|
});
|
|
3780
|
-
},
|
|
3784
|
+
}, Cr = Object.values(X), wr = Object.values(pn), Tr = () => {
|
|
3781
3785
|
let { selectedNode: e } = $(), { updateSelectedNodeType: t } = G(), { getEdges: a } = N(), { openNodeTypeChangeConfirmation: o } = U(), s = n(e), c = W(), u = Re(), d = Z(l.flow), f = () => e ? r(e) || i(e) ? e.data?.type || "" : e.type || "" : "", p = (n, r) => {
|
|
3782
3786
|
if (!e) return;
|
|
3783
3787
|
let i = a().filter((t) => t.source === e.id).length;
|
|
@@ -3797,11 +3801,11 @@ var vr = () => {
|
|
|
3797
3801
|
}), /* @__PURE__ */ R(g, {
|
|
3798
3802
|
value: f(),
|
|
3799
3803
|
onValueChange: (e) => {
|
|
3800
|
-
if (
|
|
3804
|
+
if (Cr.includes(e)) {
|
|
3801
3805
|
p(l.input, e);
|
|
3802
3806
|
return;
|
|
3803
3807
|
}
|
|
3804
|
-
if (
|
|
3808
|
+
if (wr.includes(e)) {
|
|
3805
3809
|
p(l.ui, e);
|
|
3806
3810
|
return;
|
|
3807
3811
|
}
|
|
@@ -3818,13 +3822,13 @@ var vr = () => {
|
|
|
3818
3822
|
value: l.group,
|
|
3819
3823
|
children: c("editor.selectNodeType.options.group")
|
|
3820
3824
|
}) }) : /* @__PURE__ */ R(I, { children: [
|
|
3821
|
-
/* @__PURE__ */ R(w, { children: [/* @__PURE__ */ L(y, { children: c("editor.selectNodeType.options.input") }),
|
|
3825
|
+
/* @__PURE__ */ R(w, { children: [/* @__PURE__ */ L(y, { children: c("editor.selectNodeType.options.input") }), Cr.map((e) => /* @__PURE__ */ R(h, {
|
|
3822
3826
|
value: e,
|
|
3823
3827
|
className: "tg:capitalize",
|
|
3824
3828
|
children: [/* @__PURE__ */ L(Z(e), {}), e]
|
|
3825
3829
|
}, e))] }),
|
|
3826
3830
|
/* @__PURE__ */ L(ue, {}),
|
|
3827
|
-
/* @__PURE__ */ R(w, { children: [/* @__PURE__ */ L(y, { children: c("editor.selectNodeType.options.ui") }),
|
|
3831
|
+
/* @__PURE__ */ R(w, { children: [/* @__PURE__ */ L(y, { children: c("editor.selectNodeType.options.ui") }), wr.map((e) => /* @__PURE__ */ R(h, {
|
|
3828
3832
|
value: e,
|
|
3829
3833
|
className: "tg:capitalize",
|
|
3830
3834
|
children: [/* @__PURE__ */ L(Z(e), {}), e]
|
|
@@ -3840,27 +3844,27 @@ var vr = () => {
|
|
|
3840
3844
|
};
|
|
3841
3845
|
//#endregion
|
|
3842
3846
|
//#region src/shared/components/ui/sheet.tsx
|
|
3843
|
-
function
|
|
3847
|
+
function Er({ ...e }) {
|
|
3844
3848
|
return /* @__PURE__ */ L(Ft.Root, {
|
|
3845
3849
|
"data-slot": "sheet",
|
|
3846
3850
|
...e
|
|
3847
3851
|
});
|
|
3848
3852
|
}
|
|
3849
|
-
function
|
|
3853
|
+
function Dr({ ...e }) {
|
|
3850
3854
|
return /* @__PURE__ */ L(Ft.Portal, {
|
|
3851
3855
|
"data-slot": "sheet-portal",
|
|
3852
3856
|
...e
|
|
3853
3857
|
});
|
|
3854
3858
|
}
|
|
3855
|
-
function
|
|
3859
|
+
function Or({ className: e, ...t }) {
|
|
3856
3860
|
return /* @__PURE__ */ L(Ft.Overlay, {
|
|
3857
3861
|
"data-slot": "sheet-overlay",
|
|
3858
3862
|
className: D("tg:data-[state=closed]:fade-out-0 tg:data-[state=open]:fade-in-0 tg:fixed tg:inset-0 tg:z-50 tg:bg-black/50 tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in", e),
|
|
3859
3863
|
...t
|
|
3860
3864
|
});
|
|
3861
3865
|
}
|
|
3862
|
-
function
|
|
3863
|
-
return /* @__PURE__ */ R(
|
|
3866
|
+
function kr({ className: e, children: t, side: n = "right", ...r }) {
|
|
3867
|
+
return /* @__PURE__ */ R(Dr, { children: [/* @__PURE__ */ L(Or, {}), /* @__PURE__ */ R(Ft.Content, {
|
|
3864
3868
|
"data-slot": "sheet-content",
|
|
3865
3869
|
className: D("tg:fixed tg:z-50 tg:flex tg:flex-col tg:gap-4 tg:bg-background tg:shadow-lg tg:transition tg:ease-in-out tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in tg:data-[state=closed]:duration-300 tg:data-[state=open]:duration-500", n === "right" && "tg:data-[state=closed]:slide-out-to-right tg:data-[state=open]:slide-in-from-right tg:inset-y-0 tg:right-0 tg:h-full tg:w-3/4 tg:border-l tg:sm:max-w-sm", n === "left" && "tg:data-[state=closed]:slide-out-to-left tg:data-[state=open]:slide-in-from-left tg:inset-y-0 tg:left-0 tg:h-full tg:w-3/4 tg:border-r tg:sm:max-w-sm", n === "top" && "tg:data-[state=closed]:slide-out-to-top tg:data-[state=open]:slide-in-from-top tg:inset-x-0 tg:top-0 tg:h-auto tg:border-b", n === "bottom" && "tg:data-[state=closed]:slide-out-to-bottom tg:data-[state=open]:slide-in-from-bottom tg:inset-x-0 tg:bottom-0 tg:h-auto tg:border-t", e),
|
|
3866
3870
|
...r,
|
|
@@ -3873,28 +3877,28 @@ function Dr({ className: e, children: t, side: n = "right", ...r }) {
|
|
|
3873
3877
|
})]
|
|
3874
3878
|
})] });
|
|
3875
3879
|
}
|
|
3876
|
-
function
|
|
3880
|
+
function Ar({ className: e, ...t }) {
|
|
3877
3881
|
return /* @__PURE__ */ L("div", {
|
|
3878
3882
|
"data-slot": "sheet-header",
|
|
3879
3883
|
className: D("tg:flex tg:flex-col tg:gap-1.5 tg:p-4", e),
|
|
3880
3884
|
...t
|
|
3881
3885
|
});
|
|
3882
3886
|
}
|
|
3883
|
-
function
|
|
3887
|
+
function jr({ className: e, ...t }) {
|
|
3884
3888
|
return /* @__PURE__ */ L("div", {
|
|
3885
3889
|
"data-slot": "sheet-footer",
|
|
3886
3890
|
className: D("tg:mt-auto tg:flex tg:flex-col tg:gap-2 tg:p-4", e),
|
|
3887
3891
|
...t
|
|
3888
3892
|
});
|
|
3889
3893
|
}
|
|
3890
|
-
function
|
|
3894
|
+
function Mr({ className: e, ...t }) {
|
|
3891
3895
|
return /* @__PURE__ */ L(Ft.Title, {
|
|
3892
3896
|
"data-slot": "sheet-title",
|
|
3893
3897
|
className: D("tg:font-semibold tg:text-foreground", e),
|
|
3894
3898
|
...t
|
|
3895
3899
|
});
|
|
3896
3900
|
}
|
|
3897
|
-
function
|
|
3901
|
+
function Nr({ className: e, ...t }) {
|
|
3898
3902
|
return /* @__PURE__ */ L(Ft.Description, {
|
|
3899
3903
|
"data-slot": "sheet-description",
|
|
3900
3904
|
className: D("tg:text-muted-foreground tg:text-sm", e),
|
|
@@ -3903,42 +3907,42 @@ function jr({ className: e, ...t }) {
|
|
|
3903
3907
|
}
|
|
3904
3908
|
//#endregion
|
|
3905
3909
|
//#region src/editor/features/TreegeEditor/sheets/NodeActionsSheet.tsx
|
|
3906
|
-
var
|
|
3910
|
+
var Pr = () => {
|
|
3907
3911
|
let { selectedNode: e } = $(), { clearSelection: t } = G(), { isNodeSheetOpen: a, setIsNodeSheetOpen: s, openDeleteNodeConfirmation: c } = U(), l = W(), u = l(e?.data?.label), d = () => {
|
|
3908
3912
|
s(!1), t();
|
|
3909
3913
|
};
|
|
3910
|
-
return /* @__PURE__ */ L(
|
|
3914
|
+
return /* @__PURE__ */ L(Er, {
|
|
3911
3915
|
open: a && !!e,
|
|
3912
3916
|
onOpenChange: (e) => {
|
|
3913
3917
|
e || d();
|
|
3914
3918
|
},
|
|
3915
|
-
children: /* @__PURE__ */ R(
|
|
3919
|
+
children: /* @__PURE__ */ R(kr, {
|
|
3916
3920
|
className: "tg:flex tg:flex-col tg:gap-0",
|
|
3917
3921
|
children: [
|
|
3918
|
-
/* @__PURE__ */ R(
|
|
3922
|
+
/* @__PURE__ */ R(Ar, { children: [/* @__PURE__ */ R(Mr, { children: [
|
|
3919
3923
|
l("editor.nodeActionsSheet.editNode"),
|
|
3920
3924
|
" ",
|
|
3921
3925
|
/* @__PURE__ */ L("span", {
|
|
3922
3926
|
className: "tg:font-light tg:text-muted-foreground tg:text-xs",
|
|
3923
3927
|
children: e?.id
|
|
3924
3928
|
})
|
|
3925
|
-
] }), /* @__PURE__ */ L(
|
|
3926
|
-
/* @__PURE__ */ L(
|
|
3929
|
+
] }), /* @__PURE__ */ L(Nr, { children: u || "\xA0" })] }),
|
|
3930
|
+
/* @__PURE__ */ L(Jt, {
|
|
3927
3931
|
className: "tg:flex tg:min-h-0 tg:flex-1 tg:flex-col tg:px-4",
|
|
3928
3932
|
children: /* @__PURE__ */ R("div", {
|
|
3929
3933
|
className: "tg:space-y-6 tg:py-4",
|
|
3930
3934
|
children: [
|
|
3931
|
-
/* @__PURE__ */ L(
|
|
3932
|
-
/* @__PURE__ */ L(
|
|
3935
|
+
/* @__PURE__ */ L(Tr, {}),
|
|
3936
|
+
/* @__PURE__ */ L(Sr, {}),
|
|
3933
3937
|
/* @__PURE__ */ L(le, {}),
|
|
3934
|
-
r(e) && /* @__PURE__ */ L(
|
|
3935
|
-
i(e) && /* @__PURE__ */ L(
|
|
3936
|
-
o(e) && /* @__PURE__ */ L(
|
|
3937
|
-
n(e) && /* @__PURE__ */ L(
|
|
3938
|
+
r(e) && /* @__PURE__ */ L(br, {}),
|
|
3939
|
+
i(e) && /* @__PURE__ */ L(xr, {}),
|
|
3940
|
+
o(e) && /* @__PURE__ */ L(tr, {}),
|
|
3941
|
+
n(e) && /* @__PURE__ */ L(nr, {})
|
|
3938
3942
|
]
|
|
3939
3943
|
})
|
|
3940
3944
|
}),
|
|
3941
|
-
/* @__PURE__ */ L(
|
|
3945
|
+
/* @__PURE__ */ L(jr, {
|
|
3942
3946
|
className: "tg:flex tg:items-end tg:border-t",
|
|
3943
3947
|
children: /* @__PURE__ */ L(A, {
|
|
3944
3948
|
variant: "ghost",
|
|
@@ -3953,7 +3957,7 @@ var Mr = () => {
|
|
|
3953
3957
|
]
|
|
3954
3958
|
})
|
|
3955
3959
|
});
|
|
3956
|
-
},
|
|
3960
|
+
}, Fr = ({ ...e }) => {
|
|
3957
3961
|
let { theme: t = "system" } = zt();
|
|
3958
3962
|
return /* @__PURE__ */ L(Lt, {
|
|
3959
3963
|
theme: t,
|
|
@@ -3965,26 +3969,26 @@ var Mr = () => {
|
|
|
3965
3969
|
},
|
|
3966
3970
|
...e
|
|
3967
3971
|
});
|
|
3968
|
-
},
|
|
3972
|
+
}, Ir = {
|
|
3969
3973
|
desktop: "(min-width: 1024px)",
|
|
3970
3974
|
mobile: "(max-width: 767px)",
|
|
3971
3975
|
tablet: "(min-width: 768px) and (max-width: 1023px)"
|
|
3972
|
-
},
|
|
3973
|
-
let [t, n] = F(void 0), r =
|
|
3976
|
+
}, Lr = (e) => e in Ir, Rr = (e) => {
|
|
3977
|
+
let [t, n] = F(void 0), r = Lr(e) ? Ir[e] : e;
|
|
3974
3978
|
return Le(() => {
|
|
3975
3979
|
let e = window.matchMedia(r), t = () => n(e.matches);
|
|
3976
3980
|
return e.addEventListener("change", t), n(e.matches), () => e.removeEventListener("change", t);
|
|
3977
3981
|
}, [r]), !!t;
|
|
3978
|
-
},
|
|
3979
|
-
let { onConnect: o, onConnectEnd: s, onEdgesDelete: c, isValidConnection: l } =
|
|
3982
|
+
}, zr = ({ flow: e, onExportJson: t, onSave: n, theme: r, className: i, extraMenuItems: a }) => {
|
|
3983
|
+
let { onConnect: o, onConnectEnd: s, onEdgesDelete: c, isValidConnection: l } = fn(), [u, d] = F(!1);
|
|
3980
3984
|
return /* @__PURE__ */ R(Ee, {
|
|
3981
3985
|
fitView: !0,
|
|
3982
3986
|
minZoom: .1,
|
|
3983
|
-
fitViewOptions: { maxZoom:
|
|
3987
|
+
fitViewOptions: { maxZoom: Rr("mobile") ? .6 : 1 },
|
|
3984
3988
|
colorMode: r,
|
|
3985
3989
|
selectNodesOnDrag: !1,
|
|
3986
|
-
nodeTypes:
|
|
3987
|
-
edgeTypes:
|
|
3990
|
+
nodeTypes: Dn,
|
|
3991
|
+
edgeTypes: Qt,
|
|
3988
3992
|
defaultEdges: e?.edges || [],
|
|
3989
3993
|
defaultNodes: e?.nodes || [],
|
|
3990
3994
|
onConnect: o,
|
|
@@ -3993,38 +3997,38 @@ var Mr = () => {
|
|
|
3993
3997
|
isValidConnection: l,
|
|
3994
3998
|
className: D(i, "treege"),
|
|
3995
3999
|
children: [
|
|
3996
|
-
/* @__PURE__ */ L(
|
|
4000
|
+
/* @__PURE__ */ L(Vn, {}),
|
|
3997
4001
|
/* @__PURE__ */ L(he, {
|
|
3998
4002
|
gap: 10,
|
|
3999
4003
|
variant: ge.Dots
|
|
4000
4004
|
}),
|
|
4001
|
-
/* @__PURE__ */ L(
|
|
4005
|
+
/* @__PURE__ */ L($n, {
|
|
4002
4006
|
onExportJson: t,
|
|
4003
4007
|
onSave: n,
|
|
4004
4008
|
extraMenuItems: a
|
|
4005
4009
|
}),
|
|
4006
4010
|
/* @__PURE__ */ L(Ht, { theme: r }),
|
|
4007
4011
|
u && /* @__PURE__ */ L(Se, {}),
|
|
4008
|
-
/* @__PURE__ */ L(ye, { children: /* @__PURE__ */ L(
|
|
4012
|
+
/* @__PURE__ */ L(ye, { children: /* @__PURE__ */ L(On, {
|
|
4009
4013
|
show: u,
|
|
4010
4014
|
onToggle: () => d((e) => !e)
|
|
4011
4015
|
}) }),
|
|
4012
|
-
/* @__PURE__ */ L(
|
|
4013
|
-
/* @__PURE__ */ L(
|
|
4014
|
-
/* @__PURE__ */ L(
|
|
4016
|
+
/* @__PURE__ */ L(Pr, {}),
|
|
4017
|
+
/* @__PURE__ */ L(Mn, {}),
|
|
4018
|
+
/* @__PURE__ */ L(jn, {})
|
|
4015
4019
|
]
|
|
4016
4020
|
});
|
|
4017
|
-
},
|
|
4021
|
+
}, Br = ({ flow: e, onExportJson: t, onSave: n, theme: r = "dark", language: i = "en", aiConfig: a, extraMenuItems: o }) => /* @__PURE__ */ R(I, { children: [/* @__PURE__ */ L(Wt, {}), /* @__PURE__ */ L(u, {
|
|
4018
4022
|
defaultTheme: r,
|
|
4019
4023
|
storageKey: "treege-editor-theme",
|
|
4020
4024
|
theme: r,
|
|
4021
|
-
children: /* @__PURE__ */ R(
|
|
4025
|
+
children: /* @__PURE__ */ R(qt, {
|
|
4022
4026
|
value: {
|
|
4023
4027
|
aiConfig: a,
|
|
4024
4028
|
flowId: e?.id,
|
|
4025
4029
|
language: i
|
|
4026
4030
|
},
|
|
4027
|
-
children: [/* @__PURE__ */ L(
|
|
4031
|
+
children: [/* @__PURE__ */ L(Fr, { position: "bottom-center" }), /* @__PURE__ */ L(De, { children: /* @__PURE__ */ L(zr, {
|
|
4028
4032
|
onExportJson: t,
|
|
4029
4033
|
onSave: n,
|
|
4030
4034
|
flow: e,
|
|
@@ -4032,6 +4036,6 @@ var Mr = () => {
|
|
|
4032
4036
|
extraMenuItems: o
|
|
4033
4037
|
}) })]
|
|
4034
4038
|
})
|
|
4035
|
-
});
|
|
4039
|
+
})] });
|
|
4036
4040
|
//#endregion
|
|
4037
|
-
export {
|
|
4041
|
+
export { Br as t };
|