import { jsx, jsxs, Fragment } from "react/jsx-runtime";
import React, { forwardRef, createElement, createContext, useContext, useState, useEffect, useRef, useMemo, useCallback, memo, useLayoutEffect } from "react";
import ReactFlow, { Handle, Position, useReactFlow, getBezierPath, EdgeLabelRenderer, useStore, Controls, MiniMap, Background, BackgroundVariant, addEdge, useNodesState, useEdgesState, ReactFlowProvider } from "reactflow";
import { createPortal } from "react-dom";
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
const toCamelCase = (string) => string.replace(
  /^([A-Z])|[\s-_]+(\w)/g,
  (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
);
const toPascalCase = (string) => {
  const camelCase = toCamelCase(string);
  return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
};
const mergeClasses = (...classes) => classes.filter((className, index2, array) => {
  return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index2;
}).join(" ").trim();
const hasA11yProp = (props) => {
  for (const prop in props) {
    if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
      return true;
    }
  }
};
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
var defaultAttributes = {
  xmlns: "http://www.w3.org/2000/svg",
  width: 24,
  height: 24,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  strokeWidth: 2,
  strokeLinecap: "round",
  strokeLinejoin: "round"
};
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const Icon = forwardRef(
  ({
    color = "currentColor",
    size = 24,
    strokeWidth = 2,
    absoluteStrokeWidth,
    className = "",
    children,
    iconNode,
    ...rest
  }, ref) => createElement(
    "svg",
    {
      ref,
      ...defaultAttributes,
      width: size,
      height: size,
      stroke: color,
      strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
      className: mergeClasses("lucide", className),
      ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
      ...rest
    },
    [
      ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
      ...Array.isArray(children) ? children : [children]
    ]
  )
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const createLucideIcon = (iconName, iconNode) => {
  const Component2 = forwardRef(
    ({ className, ...props }, ref) => createElement(Icon, {
      ref,
      iconNode,
      className: mergeClasses(
        `lucide-${toKebabCase(toPascalCase(iconName))}`,
        `lucide-${iconName}`,
        className
      ),
      ...props
    })
  );
  Component2.displayName = toPascalCase(iconName);
  return Component2;
};
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pO = [
  ["path", { d: "m14 12 4 4 4-4", key: "buelq4" }],
  ["path", { d: "M18 16V7", key: "ty0viw" }],
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }]
];
const AArrowDown = createLucideIcon("a-arrow-down", __iconNode$pO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pN = [
  ["path", { d: "m14 11 4-4 4 4", key: "1pu57t" }],
  ["path", { d: "M18 16V7", key: "ty0viw" }],
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }]
];
const AArrowUp = createLucideIcon("a-arrow-up", __iconNode$pN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pM = [
  ["path", { d: "m15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16", key: "xik6mr" }],
  ["path", { d: "M15.697 14h5.606", key: "1stdlc" }],
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }]
];
const ALargeSmall = createLucideIcon("a-large-small", __iconNode$pM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pL = [
  ["circle", { cx: "16", cy: "4", r: "1", key: "1grugj" }],
  ["path", { d: "m18 19 1-7-6 1", key: "r0i19z" }],
  ["path", { d: "m5 8 3-3 5.5 3-2.36 3.5", key: "9ptxx2" }],
  ["path", { d: "M4.24 14.5a5 5 0 0 0 6.88 6", key: "10kmtu" }],
  ["path", { d: "M13.76 17.5a5 5 0 0 0-6.88-6", key: "2qq6rc" }]
];
const Accessibility = createLucideIcon("accessibility", __iconNode$pL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pK = [
  [
    "path",
    {
      d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
      key: "169zse"
    }
  ]
];
const Activity = createLucideIcon("activity", __iconNode$pK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pJ = [
  ["path", { d: "M18 17.5a2.5 2.5 0 1 1-4 2.03V12", key: "yd12zl" }],
  [
    "path",
    {
      d: "M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",
      key: "larmp2"
    }
  ],
  ["path", { d: "M6 8h12", key: "6g4wlu" }],
  ["path", { d: "M6.6 15.572A2 2 0 1 0 10 17v-5", key: "1x1kqn" }]
];
const AirVent = createLucideIcon("air-vent", __iconNode$pJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pI = [
  [
    "path",
    {
      d: "M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1",
      key: "ns4c3b"
    }
  ],
  ["path", { d: "m12 15 5 6H7Z", key: "14qnn2" }]
];
const Airplay = createLucideIcon("airplay", __iconNode$pI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pH = [
  ["circle", { cx: "12", cy: "13", r: "8", key: "3y4lt7" }],
  ["path", { d: "M5 3 2 6", key: "18tl5t" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.38 18.7 4 21", key: "17xu3x" }],
  ["path", { d: "M17.64 18.67 20 21", key: "kv2oe2" }],
  ["path", { d: "m9 13 2 2 4-4", key: "6343dt" }]
];
const AlarmClockCheck = createLucideIcon("alarm-clock-check", __iconNode$pH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pG = [
  ["circle", { cx: "12", cy: "13", r: "8", key: "3y4lt7" }],
  ["path", { d: "M5 3 2 6", key: "18tl5t" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.38 18.7 4 21", key: "17xu3x" }],
  ["path", { d: "M17.64 18.67 20 21", key: "kv2oe2" }],
  ["path", { d: "M9 13h6", key: "1uhe8q" }]
];
const AlarmClockMinus = createLucideIcon("alarm-clock-minus", __iconNode$pG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pF = [
  ["path", { d: "M6.87 6.87a8 8 0 1 0 11.26 11.26", key: "3on8tj" }],
  ["path", { d: "M19.9 14.25a8 8 0 0 0-9.15-9.15", key: "15ghsc" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.26 18.67 4 21", key: "yzmioq" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M4 4 2 6", key: "1ycko6" }]
];
const AlarmClockOff = createLucideIcon("alarm-clock-off", __iconNode$pF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pE = [
  ["circle", { cx: "12", cy: "13", r: "8", key: "3y4lt7" }],
  ["path", { d: "M12 9v4l2 2", key: "1c63tq" }],
  ["path", { d: "M5 3 2 6", key: "18tl5t" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.38 18.7 4 21", key: "17xu3x" }],
  ["path", { d: "M17.64 18.67 20 21", key: "kv2oe2" }]
];
const AlarmClock = createLucideIcon("alarm-clock", __iconNode$pE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pD = [
  ["circle", { cx: "12", cy: "13", r: "8", key: "3y4lt7" }],
  ["path", { d: "M5 3 2 6", key: "18tl5t" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.38 18.7 4 21", key: "17xu3x" }],
  ["path", { d: "M17.64 18.67 20 21", key: "kv2oe2" }],
  ["path", { d: "M12 10v6", key: "1bos4e" }],
  ["path", { d: "M9 13h6", key: "1uhe8q" }]
];
const AlarmClockPlus = createLucideIcon("alarm-clock-plus", __iconNode$pD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pC = [
  ["path", { d: "M11 21c0-2.5 2-2.5 2-5", key: "1sicvv" }],
  ["path", { d: "M16 21c0-2.5 2-2.5 2-5", key: "1o3eny" }],
  ["path", { d: "m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8", key: "1bvca4" }],
  [
    "path",
    { d: "M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z", key: "x3qr1j" }
  ],
  ["path", { d: "M6 21c0-2.5 2-2.5 2-5", key: "i3w1gp" }]
];
const AlarmSmoke = createLucideIcon("alarm-smoke", __iconNode$pC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pB = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["polyline", { points: "11 3 11 11 14 8 17 11 17 3", key: "1wcwz3" }]
];
const Album = createLucideIcon("album", __iconNode$pB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pA = [
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4", key: "11f1s0" }],
  ["path", { d: "M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4", key: "t14dx9" }],
  ["path", { d: "M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1", key: "1w07xs" }],
  ["path", { d: "M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1", key: "1apec2" }]
];
const AlignCenterHorizontal = createLucideIcon("align-center-horizontal", __iconNode$pA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pz = [
  ["path", { d: "M12 2v20", key: "t6zp3m" }],
  ["path", { d: "M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4", key: "14d6g8" }],
  ["path", { d: "M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4", key: "1e2lrw" }],
  ["path", { d: "M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1", key: "1fkdwx" }],
  ["path", { d: "M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1", key: "1euafb" }]
];
const AlignCenterVertical = createLucideIcon("align-center-vertical", __iconNode$pz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$py = [
  ["rect", { width: "6", height: "16", x: "4", y: "2", rx: "2", key: "z5wdxg" }],
  ["rect", { width: "6", height: "9", x: "14", y: "9", rx: "2", key: "um7a8w" }],
  ["path", { d: "M22 22H2", key: "19qnx5" }]
];
const AlignEndHorizontal = createLucideIcon("align-end-horizontal", __iconNode$py);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$px = [
  ["rect", { width: "16", height: "6", x: "2", y: "4", rx: "2", key: "10wcwx" }],
  ["rect", { width: "9", height: "6", x: "9", y: "14", rx: "2", key: "4p5bwg" }],
  ["path", { d: "M22 22V2", key: "12ipfv" }]
];
const AlignEndVertical = createLucideIcon("align-end-vertical", __iconNode$px);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pw = [
  ["rect", { width: "6", height: "14", x: "4", y: "5", rx: "2", key: "1wwnby" }],
  ["rect", { width: "6", height: "10", x: "14", y: "7", rx: "2", key: "1fe6j6" }],
  ["path", { d: "M17 22v-5", key: "4b6g73" }],
  ["path", { d: "M17 7V2", key: "hnrr36" }],
  ["path", { d: "M7 22v-3", key: "1r4jpn" }],
  ["path", { d: "M7 5V2", key: "liy1u9" }]
];
const AlignHorizontalDistributeCenter = createLucideIcon(
  "align-horizontal-distribute-center",
  __iconNode$pw
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pv = [
  ["rect", { width: "6", height: "14", x: "4", y: "5", rx: "2", key: "1wwnby" }],
  ["rect", { width: "6", height: "10", x: "14", y: "7", rx: "2", key: "1fe6j6" }],
  ["path", { d: "M10 2v20", key: "uyc634" }],
  ["path", { d: "M20 2v20", key: "1tx262" }]
];
const AlignHorizontalDistributeEnd = createLucideIcon(
  "align-horizontal-distribute-end",
  __iconNode$pv
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pu = [
  ["rect", { width: "6", height: "14", x: "4", y: "5", rx: "2", key: "1wwnby" }],
  ["rect", { width: "6", height: "10", x: "14", y: "7", rx: "2", key: "1fe6j6" }],
  ["path", { d: "M4 2v20", key: "gtpd5x" }],
  ["path", { d: "M14 2v20", key: "tg6bpw" }]
];
const AlignHorizontalDistributeStart = createLucideIcon(
  "align-horizontal-distribute-start",
  __iconNode$pu
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pt = [
  ["rect", { width: "6", height: "14", x: "2", y: "5", rx: "2", key: "dy24zr" }],
  ["rect", { width: "6", height: "10", x: "16", y: "7", rx: "2", key: "13zkjt" }],
  ["path", { d: "M12 2v20", key: "t6zp3m" }]
];
const AlignHorizontalJustifyCenter = createLucideIcon(
  "align-horizontal-justify-center",
  __iconNode$pt
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ps = [
  ["rect", { width: "6", height: "14", x: "2", y: "5", rx: "2", key: "dy24zr" }],
  ["rect", { width: "6", height: "10", x: "12", y: "7", rx: "2", key: "1ht384" }],
  ["path", { d: "M22 2v20", key: "40qfg1" }]
];
const AlignHorizontalJustifyEnd = createLucideIcon("align-horizontal-justify-end", __iconNode$ps);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pr = [
  ["rect", { width: "6", height: "14", x: "6", y: "5", rx: "2", key: "hsirpf" }],
  ["rect", { width: "6", height: "10", x: "16", y: "7", rx: "2", key: "13zkjt" }],
  ["path", { d: "M2 2v20", key: "1ivd8o" }]
];
const AlignHorizontalJustifyStart = createLucideIcon("align-horizontal-justify-start", __iconNode$pr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pq = [
  ["rect", { width: "6", height: "10", x: "9", y: "7", rx: "2", key: "yn7j0q" }],
  ["path", { d: "M4 22V2", key: "tsjzd3" }],
  ["path", { d: "M20 22V2", key: "1bnhr8" }]
];
const AlignHorizontalSpaceAround = createLucideIcon("align-horizontal-space-around", __iconNode$pq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pp = [
  ["rect", { width: "6", height: "16", x: "4", y: "6", rx: "2", key: "1n4dg1" }],
  ["rect", { width: "6", height: "9", x: "14", y: "6", rx: "2", key: "17khns" }],
  ["path", { d: "M22 2H2", key: "fhrpnj" }]
];
const AlignStartHorizontal = createLucideIcon("align-start-horizontal", __iconNode$pp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$po = [
  ["rect", { width: "6", height: "14", x: "3", y: "5", rx: "2", key: "j77dae" }],
  ["rect", { width: "6", height: "10", x: "15", y: "7", rx: "2", key: "bq30hj" }],
  ["path", { d: "M3 2v20", key: "1d2pfg" }],
  ["path", { d: "M21 2v20", key: "p059bm" }]
];
const AlignHorizontalSpaceBetween = createLucideIcon("align-horizontal-space-between", __iconNode$po);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pn = [
  ["rect", { width: "9", height: "6", x: "6", y: "14", rx: "2", key: "lpm2y7" }],
  ["rect", { width: "16", height: "6", x: "6", y: "4", rx: "2", key: "rdj6ps" }],
  ["path", { d: "M2 2v20", key: "1ivd8o" }]
];
const AlignStartVertical = createLucideIcon("align-start-vertical", __iconNode$pn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pm = [
  ["path", { d: "M22 17h-3", key: "1lwga1" }],
  ["path", { d: "M22 7h-5", key: "o2endc" }],
  ["path", { d: "M5 17H2", key: "1gx9xc" }],
  ["path", { d: "M7 7H2", key: "6bq26l" }],
  ["rect", { x: "5", y: "14", width: "14", height: "6", rx: "2", key: "1qrzuf" }],
  ["rect", { x: "7", y: "4", width: "10", height: "6", rx: "2", key: "we8e9z" }]
];
const AlignVerticalDistributeCenter = createLucideIcon(
  "align-vertical-distribute-center",
  __iconNode$pm
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pl = [
  ["rect", { width: "14", height: "6", x: "5", y: "14", rx: "2", key: "jmoj9s" }],
  ["rect", { width: "10", height: "6", x: "7", y: "4", rx: "2", key: "aza5on" }],
  ["path", { d: "M2 20h20", key: "owomy5" }],
  ["path", { d: "M2 10h20", key: "1ir3d8" }]
];
const AlignVerticalDistributeEnd = createLucideIcon("align-vertical-distribute-end", __iconNode$pl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pk = [
  ["rect", { width: "14", height: "6", x: "5", y: "16", rx: "2", key: "1i8z2d" }],
  ["rect", { width: "10", height: "6", x: "7", y: "2", rx: "2", key: "ypihtt" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
];
const AlignVerticalJustifyCenter = createLucideIcon("align-vertical-justify-center", __iconNode$pk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pj = [
  ["rect", { width: "14", height: "6", x: "5", y: "14", rx: "2", key: "jmoj9s" }],
  ["rect", { width: "10", height: "6", x: "7", y: "4", rx: "2", key: "aza5on" }],
  ["path", { d: "M2 14h20", key: "myj16y" }],
  ["path", { d: "M2 4h20", key: "mda7wb" }]
];
const AlignVerticalDistributeStart = createLucideIcon(
  "align-vertical-distribute-start",
  __iconNode$pj
);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pi = [
  ["rect", { width: "14", height: "6", x: "5", y: "12", rx: "2", key: "4l4tp2" }],
  ["rect", { width: "10", height: "6", x: "7", y: "2", rx: "2", key: "ypihtt" }],
  ["path", { d: "M2 22h20", key: "272qi7" }]
];
const AlignVerticalJustifyEnd = createLucideIcon("align-vertical-justify-end", __iconNode$pi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ph = [
  ["rect", { width: "14", height: "6", x: "5", y: "16", rx: "2", key: "1i8z2d" }],
  ["rect", { width: "10", height: "6", x: "7", y: "6", rx: "2", key: "13squh" }],
  ["path", { d: "M2 2h20", key: "1ennik" }]
];
const AlignVerticalJustifyStart = createLucideIcon("align-vertical-justify-start", __iconNode$ph);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pg = [
  ["rect", { width: "10", height: "6", x: "7", y: "9", rx: "2", key: "b1zbii" }],
  ["path", { d: "M22 20H2", key: "1p1f7z" }],
  ["path", { d: "M22 4H2", key: "1b7qnq" }]
];
const AlignVerticalSpaceAround = createLucideIcon("align-vertical-space-around", __iconNode$pg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pf = [
  ["rect", { width: "14", height: "6", x: "5", y: "15", rx: "2", key: "1w91an" }],
  ["rect", { width: "10", height: "6", x: "7", y: "3", rx: "2", key: "17wqzy" }],
  ["path", { d: "M2 21h20", key: "1nyx9w" }],
  ["path", { d: "M2 3h20", key: "91anmk" }]
];
const AlignVerticalSpaceBetween = createLucideIcon("align-vertical-space-between", __iconNode$pf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pe = [
  ["path", { d: "M10 10H6", key: "1bsnug" }],
  ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
  [
    "path",
    {
      d: "M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14",
      key: "lrkjwd"
    }
  ],
  ["path", { d: "M8 8v4", key: "1fwk8c" }],
  ["path", { d: "M9 18h6", key: "x1upvd" }],
  ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
  ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
];
const Ambulance = createLucideIcon("ambulance", __iconNode$pe);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pd = [
  ["path", { d: "M16 12h3", key: "4uvgyw" }],
  [
    "path",
    {
      d: "M17.5 12a8 8 0 0 1-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13",
      key: "nfoe1t"
    }
  ]
];
const Ampersand = createLucideIcon("ampersand", __iconNode$pd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pc = [
  [
    "path",
    {
      d: "M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",
      key: "12lh1k"
    }
  ],
  [
    "path",
    {
      d: "M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5",
      key: "173c68"
    }
  ]
];
const Ampersands = createLucideIcon("ampersands", __iconNode$pc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pb = [
  [
    "path",
    { d: "M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8", key: "1h8rid" }
  ],
  ["path", { d: "M10 5H8a2 2 0 0 0 0 4h.68", key: "3ezsi6" }],
  ["path", { d: "M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8", key: "yt6q09" }],
  ["path", { d: "M14 5h2a2 2 0 0 1 0 4h-.68", key: "8f95yk" }],
  ["path", { d: "M18 22H6", key: "mg6kv4" }],
  ["path", { d: "M9 2h6", key: "1jrp98" }]
];
const Amphora = createLucideIcon("amphora", __iconNode$pb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$pa = [
  ["path", { d: "M12 6v16", key: "nqf5sj" }],
  ["path", { d: "m19 13 2-1a9 9 0 0 1-18 0l2 1", key: "y7qv08" }],
  ["path", { d: "M9 11h6", key: "1fldmi" }],
  ["circle", { cx: "12", cy: "4", r: "2", key: "muu5ef" }]
];
const Anchor = createLucideIcon("anchor", __iconNode$pa);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p9 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M16 16s-1.5-2-4-2-4 2-4 2", key: "epbg0q" }],
  ["path", { d: "M7.5 8 10 9", key: "olxxln" }],
  ["path", { d: "m14 9 2.5-1", key: "1j6cij" }],
  ["path", { d: "M9 10h.01", key: "qbtxuw" }],
  ["path", { d: "M15 10h.01", key: "1qmjsl" }]
];
const Angry = createLucideIcon("angry", __iconNode$p9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p8 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M8 15h8", key: "45n4r" }],
  ["path", { d: "M8 9h2", key: "1g203m" }],
  ["path", { d: "M14 9h2", key: "116p9w" }]
];
const Annoyed = createLucideIcon("annoyed", __iconNode$p8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p7 = [
  ["path", { d: "M2 12 7 2", key: "117k30" }],
  ["path", { d: "m7 12 5-10", key: "1tvx22" }],
  ["path", { d: "m12 12 5-10", key: "ev1o1a" }],
  ["path", { d: "m17 12 5-10", key: "1e4ti3" }],
  ["path", { d: "M4.5 7h15", key: "vlsxkz" }],
  ["path", { d: "M12 16v6", key: "c8a4gj" }]
];
const Antenna = createLucideIcon("antenna", __iconNode$p7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p6 = [
  ["path", { d: "M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4", key: "1hjpb6" }],
  [
    "path",
    { d: "M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z", key: "1qn45f" }
  ],
  ["path", { d: "M9 12v5", key: "3anwtq" }],
  ["path", { d: "M15 12v5", key: "5xh3zn" }],
  [
    "path",
    { d: "M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1", key: "1fi4x8" }
  ]
];
const Anvil = createLucideIcon("anvil", __iconNode$p6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p5 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m14.31 8 5.74 9.94", key: "1y6ab4" }],
  ["path", { d: "M9.69 8h11.48", key: "1wxppr" }],
  ["path", { d: "m7.38 12 5.74-9.94", key: "1grp0k" }],
  ["path", { d: "M9.69 16 3.95 6.06", key: "libnyf" }],
  ["path", { d: "M14.31 16H2.83", key: "x5fava" }],
  ["path", { d: "m16.62 12-5.74 9.94", key: "1vwawt" }]
];
const Aperture = createLucideIcon("aperture", __iconNode$p5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p4 = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M6 8h.01", key: "x9i8wu" }],
  ["path", { d: "M10 8h.01", key: "1r9ogq" }],
  ["path", { d: "M14 8h.01", key: "1primd" }]
];
const AppWindowMac = createLucideIcon("app-window-mac", __iconNode$p4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p3 = [
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }],
  ["path", { d: "M10 4v4", key: "pp8u80" }],
  ["path", { d: "M2 8h20", key: "d11cs7" }],
  ["path", { d: "M6 4v4", key: "1svtjw" }]
];
const AppWindow = createLucideIcon("app-window", __iconNode$p3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p2 = [
  ["path", { d: "M12 6.528V3a1 1 0 0 1 1-1h0", key: "11qiee" }],
  [
    "path",
    {
      d: "M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21",
      key: "110c12"
    }
  ]
];
const Apple = createLucideIcon("apple", __iconNode$p2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p1 = [
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h2", key: "tvwodi" }],
  ["path", { d: "M20 8v11a2 2 0 0 1-2 2h-2", key: "1gkqxj" }],
  ["path", { d: "m9 15 3-3 3 3", key: "1pd0qc" }],
  ["path", { d: "M12 12v9", key: "192myk" }]
];
const ArchiveRestore = createLucideIcon("archive-restore", __iconNode$p1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p0 = [
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
  ["path", { d: "m9.5 17 5-5", key: "nakeu6" }],
  ["path", { d: "m9.5 12 5 5", key: "1hccrj" }]
];
const ArchiveX = createLucideIcon("archive-x", __iconNode$p0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o$ = [
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
  ["path", { d: "M10 12h4", key: "a56b0p" }]
];
const Archive = createLucideIcon("archive", __iconNode$o$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o_ = [
  ["path", { d: "M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3", key: "irtipd" }],
  [
    "path",
    {
      d: "M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",
      key: "1qyhux"
    }
  ],
  ["path", { d: "M5 18v2", key: "ppbyun" }],
  ["path", { d: "M19 18v2", key: "gy7782" }]
];
const Armchair = createLucideIcon("armchair", __iconNode$o_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oZ = [
  [
    "path",
    {
      d: "M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V9a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z",
      key: "1hy3w3"
    }
  ],
  ["path", { d: "M9 4h6", key: "10am2s" }]
];
const ArrowBigDownDash = createLucideIcon("arrow-big-down-dash", __iconNode$oZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oY = [
  [
    "path",
    {
      d: "M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z",
      key: "1eaqc3"
    }
  ]
];
const ArrowBigDown = createLucideIcon("arrow-big-down", __iconNode$oY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oX = [
  [
    "path",
    {
      d: "M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z",
      key: "p8w4w5"
    }
  ],
  ["path", { d: "M20 9v6", key: "14roy0" }]
];
const ArrowBigLeftDash = createLucideIcon("arrow-big-left-dash", __iconNode$oX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oW = [
  [
    "path",
    {
      d: "M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h6a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z",
      key: "aztept"
    }
  ]
];
const ArrowBigLeft = createLucideIcon("arrow-big-left", __iconNode$oW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oV = [
  [
    "path",
    {
      d: "M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z",
      key: "67vhrh"
    }
  ],
  ["path", { d: "M4 9v6", key: "bns7oa" }]
];
const ArrowBigRightDash = createLucideIcon("arrow-big-right-dash", __iconNode$oV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oU = [
  [
    "path",
    {
      d: "M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z",
      key: "1232du"
    }
  ]
];
const ArrowBigRight = createLucideIcon("arrow-big-right", __iconNode$oU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oT = [
  [
    "path",
    {
      d: "M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z",
      key: "pnzqmc"
    }
  ],
  ["path", { d: "M9 20h6", key: "s66wpe" }]
];
const ArrowBigUpDash = createLucideIcon("arrow-big-up-dash", __iconNode$oT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oS = [
  [
    "path",
    {
      d: "M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v6a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z",
      key: "lh0v7k"
    }
  ]
];
const ArrowBigUp = createLucideIcon("arrow-big-up", __iconNode$oS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oR = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["rect", { x: "15", y: "4", width: "4", height: "6", ry: "2", key: "1bwicg" }],
  ["path", { d: "M17 20v-6h-2", key: "1qp1so" }],
  ["path", { d: "M15 20h4", key: "1j968p" }]
];
const ArrowDown01 = createLucideIcon("arrow-down-0-1", __iconNode$oR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oQ = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["path", { d: "M17 10V4h-2", key: "zcsr5x" }],
  ["path", { d: "M15 10h4", key: "id2lce" }],
  ["rect", { x: "15", y: "14", width: "4", height: "6", ry: "2", key: "33xykx" }]
];
const ArrowDown10 = createLucideIcon("arrow-down-1-0", __iconNode$oQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oP = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["path", { d: "M20 8h-5", key: "1vsyxs" }],
  ["path", { d: "M15 10V6.5a2.5 2.5 0 0 1 5 0V10", key: "ag13bf" }],
  ["path", { d: "M15 14h5l-5 6h5", key: "ur5jdg" }]
];
const ArrowDownAZ = createLucideIcon("arrow-down-a-z", __iconNode$oP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oO = [
  ["path", { d: "M19 3H5", key: "1236rx" }],
  ["path", { d: "M12 21V7", key: "gj6g52" }],
  ["path", { d: "m6 15 6 6 6-6", key: "h15q88" }]
];
const ArrowDownFromLine = createLucideIcon("arrow-down-from-line", __iconNode$oO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oN = [
  ["path", { d: "M17 7 7 17", key: "15tmo1" }],
  ["path", { d: "M17 17H7V7", key: "1org7z" }]
];
const ArrowDownLeft = createLucideIcon("arrow-down-left", __iconNode$oN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oM = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["path", { d: "M11 4h4", key: "6d7r33" }],
  ["path", { d: "M11 8h7", key: "djye34" }],
  ["path", { d: "M11 12h10", key: "1438ji" }]
];
const ArrowDownNarrowWide = createLucideIcon("arrow-down-narrow-wide", __iconNode$oM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oL = [
  ["path", { d: "m7 7 10 10", key: "1fmybs" }],
  ["path", { d: "M17 7v10H7", key: "6fjiku" }]
];
const ArrowDownRight = createLucideIcon("arrow-down-right", __iconNode$oL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oK = [
  ["path", { d: "M12 2v14", key: "jyx4ut" }],
  ["path", { d: "m19 9-7 7-7-7", key: "1oe3oy" }],
  ["circle", { cx: "12", cy: "21", r: "1", key: "o0uj5v" }]
];
const ArrowDownToDot = createLucideIcon("arrow-down-to-dot", __iconNode$oK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oJ = [
  ["path", { d: "M12 17V3", key: "1cwfxf" }],
  ["path", { d: "m6 11 6 6 6-6", key: "12ii2o" }],
  ["path", { d: "M19 21H5", key: "150jfl" }]
];
const ArrowDownToLine = createLucideIcon("arrow-down-to-line", __iconNode$oJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oI = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["path", { d: "m21 8-4-4-4 4", key: "1c9v7m" }],
  ["path", { d: "M17 4v16", key: "7dpous" }]
];
const ArrowDownUp = createLucideIcon("arrow-down-up", __iconNode$oI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oH = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 20V4", key: "1yoxec" }],
  ["path", { d: "M11 4h10", key: "1w87gc" }],
  ["path", { d: "M11 8h7", key: "djye34" }],
  ["path", { d: "M11 12h4", key: "q8tih4" }]
];
const ArrowDownWideNarrow = createLucideIcon("arrow-down-wide-narrow", __iconNode$oH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oG = [
  ["path", { d: "m3 16 4 4 4-4", key: "1co6wj" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M15 4h5l-5 6h5", key: "8asdl1" }],
  ["path", { d: "M15 20v-3.5a2.5 2.5 0 0 1 5 0V20", key: "r6l5cz" }],
  ["path", { d: "M20 18h-5", key: "18j1r2" }]
];
const ArrowDownZA = createLucideIcon("arrow-down-z-a", __iconNode$oG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oF = [
  ["path", { d: "M12 5v14", key: "s699le" }],
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
];
const ArrowDown = createLucideIcon("arrow-down", __iconNode$oF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oE = [
  ["path", { d: "m9 6-6 6 6 6", key: "7v63n9" }],
  ["path", { d: "M3 12h14", key: "13k4hi" }],
  ["path", { d: "M21 19V5", key: "b4bplr" }]
];
const ArrowLeftFromLine = createLucideIcon("arrow-left-from-line", __iconNode$oE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oD = [
  ["path", { d: "M8 3 4 7l4 4", key: "9rb6wj" }],
  ["path", { d: "M4 7h16", key: "6tx8e3" }],
  ["path", { d: "m16 21 4-4-4-4", key: "siv7j2" }],
  ["path", { d: "M20 17H4", key: "h6l3hr" }]
];
const ArrowLeftRight = createLucideIcon("arrow-left-right", __iconNode$oD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oC = [
  ["path", { d: "M3 19V5", key: "rwsyhb" }],
  ["path", { d: "m13 6-6 6 6 6", key: "1yhaz7" }],
  ["path", { d: "M7 12h14", key: "uoisry" }]
];
const ArrowLeftToLine = createLucideIcon("arrow-left-to-line", __iconNode$oC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oB = [
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
];
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$oB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oA = [
  ["path", { d: "M3 5v14", key: "1nt18q" }],
  ["path", { d: "M21 12H7", key: "13ipq5" }],
  ["path", { d: "m15 18 6-6-6-6", key: "6tx3qv" }]
];
const ArrowRightFromLine = createLucideIcon("arrow-right-from-line", __iconNode$oA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oz = [
  ["path", { d: "m16 3 4 4-4 4", key: "1x1c3m" }],
  ["path", { d: "M20 7H4", key: "zbl0bi" }],
  ["path", { d: "m8 21-4-4 4-4", key: "h9nckh" }],
  ["path", { d: "M4 17h16", key: "g4d7ey" }]
];
const ArrowRightLeft = createLucideIcon("arrow-right-left", __iconNode$oz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oy = [
  ["path", { d: "M17 12H3", key: "8awo09" }],
  ["path", { d: "m11 18 6-6-6-6", key: "8c2y43" }],
  ["path", { d: "M21 5v14", key: "nzette" }]
];
const ArrowRightToLine = createLucideIcon("arrow-right-to-line", __iconNode$oy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ox = [
  ["path", { d: "M5 12h14", key: "1ays0h" }],
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
];
const ArrowRight = createLucideIcon("arrow-right", __iconNode$ox);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ow = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["rect", { x: "15", y: "4", width: "4", height: "6", ry: "2", key: "1bwicg" }],
  ["path", { d: "M17 20v-6h-2", key: "1qp1so" }],
  ["path", { d: "M15 20h4", key: "1j968p" }]
];
const ArrowUp01 = createLucideIcon("arrow-up-0-1", __iconNode$ow);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ov = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M17 10V4h-2", key: "zcsr5x" }],
  ["path", { d: "M15 10h4", key: "id2lce" }],
  ["rect", { x: "15", y: "14", width: "4", height: "6", ry: "2", key: "33xykx" }]
];
const ArrowUp10 = createLucideIcon("arrow-up-1-0", __iconNode$ov);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ou = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M20 8h-5", key: "1vsyxs" }],
  ["path", { d: "M15 10V6.5a2.5 2.5 0 0 1 5 0V10", key: "ag13bf" }],
  ["path", { d: "M15 14h5l-5 6h5", key: "ur5jdg" }]
];
const ArrowUpAZ = createLucideIcon("arrow-up-a-z", __iconNode$ou);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ot = [
  ["path", { d: "m21 16-4 4-4-4", key: "f6ql7i" }],
  ["path", { d: "M17 20V4", key: "1ejh1v" }],
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }]
];
const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$ot);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$os = [
  ["path", { d: "m5 9 7-7 7 7", key: "1hw5ic" }],
  ["path", { d: "M12 16V2", key: "ywoabb" }],
  ["circle", { cx: "12", cy: "21", r: "1", key: "o0uj5v" }]
];
const ArrowUpFromDot = createLucideIcon("arrow-up-from-dot", __iconNode$os);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$or = [
  ["path", { d: "m18 9-6-6-6 6", key: "kcunyi" }],
  ["path", { d: "M12 3v14", key: "7cf3v8" }],
  ["path", { d: "M5 21h14", key: "11awu3" }]
];
const ArrowUpFromLine = createLucideIcon("arrow-up-from-line", __iconNode$or);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oq = [
  ["path", { d: "M7 17V7h10", key: "11bw93" }],
  ["path", { d: "M17 17 7 7", key: "2786uv" }]
];
const ArrowUpLeft = createLucideIcon("arrow-up-left", __iconNode$oq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$op = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M11 12h4", key: "q8tih4" }],
  ["path", { d: "M11 16h7", key: "uosisv" }],
  ["path", { d: "M11 20h10", key: "jvxblo" }]
];
const ArrowUpNarrowWide = createLucideIcon("arrow-up-narrow-wide", __iconNode$op);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oo = [
  ["path", { d: "M7 7h10v10", key: "1tivn9" }],
  ["path", { d: "M7 17 17 7", key: "1vkiza" }]
];
const ArrowUpRight = createLucideIcon("arrow-up-right", __iconNode$oo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$on = [
  ["path", { d: "M5 3h14", key: "7usisc" }],
  ["path", { d: "m18 13-6-6-6 6", key: "1kf1n9" }],
  ["path", { d: "M12 7v14", key: "1akyts" }]
];
const ArrowUpToLine = createLucideIcon("arrow-up-to-line", __iconNode$on);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$om = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M11 12h10", key: "1438ji" }],
  ["path", { d: "M11 16h7", key: "uosisv" }],
  ["path", { d: "M11 20h4", key: "1krc32" }]
];
const ArrowUpWideNarrow = createLucideIcon("arrow-up-wide-narrow", __iconNode$om);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ol = [
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
  ["path", { d: "M7 4v16", key: "1glfcx" }],
  ["path", { d: "M15 4h5l-5 6h5", key: "8asdl1" }],
  ["path", { d: "M15 20v-3.5a2.5 2.5 0 0 1 5 0V20", key: "r6l5cz" }],
  ["path", { d: "M20 18h-5", key: "18j1r2" }]
];
const ArrowUpZA = createLucideIcon("arrow-up-z-a", __iconNode$ol);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ok = [
  ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
  ["path", { d: "M12 19V5", key: "x0mq9r" }]
];
const ArrowUp = createLucideIcon("arrow-up", __iconNode$ok);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oj = [
  ["path", { d: "M12 6v12", key: "1vza4d" }],
  ["path", { d: "M17.196 9 6.804 15", key: "1ah31z" }],
  ["path", { d: "m6.804 9 10.392 6", key: "1b6pxd" }]
];
const Asterisk = createLucideIcon("asterisk", __iconNode$oj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oi = [
  ["path", { d: "m4 6 3-3 3 3", key: "9aidw8" }],
  ["path", { d: "M7 17V3", key: "19qxw1" }],
  ["path", { d: "m14 6 3-3 3 3", key: "6iy689" }],
  ["path", { d: "M17 17V3", key: "o0fmgi" }],
  ["path", { d: "M4 21h16", key: "1h09gz" }]
];
const ArrowsUpFromLine = createLucideIcon("arrows-up-from-line", __iconNode$oi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oh = [
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["path", { d: "M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8", key: "7n84p3" }]
];
const AtSign = createLucideIcon("at-sign", __iconNode$oh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$og = [
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  [
    "path",
    {
      d: "M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",
      key: "1l2ple"
    }
  ],
  [
    "path",
    {
      d: "M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",
      key: "1wam0m"
    }
  ]
];
const Atom = createLucideIcon("atom", __iconNode$og);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$of = [
  ["path", { d: "M2 10v3", key: "1fnikh" }],
  ["path", { d: "M6 6v11", key: "11sgs0" }],
  ["path", { d: "M10 3v18", key: "yhl04a" }],
  ["path", { d: "M14 8v7", key: "3a1oy3" }],
  ["path", { d: "M18 5v13", key: "123xd1" }],
  ["path", { d: "M22 10v3", key: "154ddg" }]
];
const AudioLines = createLucideIcon("audio-lines", __iconNode$of);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oe = [
  [
    "path",
    {
      d: "M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2",
      key: "57tc96"
    }
  ]
];
const AudioWaveform = createLucideIcon("audio-waveform", __iconNode$oe);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$od = [
  [
    "path",
    {
      d: "m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",
      key: "1yiouv"
    }
  ],
  ["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
];
const Award = createLucideIcon("award", __iconNode$od);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oc = [
  ["path", { d: "m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9", key: "5z9253" }],
  [
    "path",
    {
      d: "M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z",
      key: "19zklq"
    }
  ]
];
const Axe = createLucideIcon("axe", __iconNode$oc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ob = [
  ["path", { d: "M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5", key: "1u7htd" }],
  ["path", { d: "M15 12h.01", key: "1k8ypt" }],
  [
    "path",
    {
      d: "M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1",
      key: "11xh7x"
    }
  ],
  ["path", { d: "M9 12h.01", key: "157uk2" }]
];
const Baby = createLucideIcon("baby", __iconNode$ob);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$oa = [
  ["path", { d: "M13.5 10.5 15 9", key: "1nsxvm" }],
  ["path", { d: "M4 4v15a1 1 0 0 0 1 1h15", key: "1w6lkd" }],
  ["path", { d: "M4.293 19.707 6 18", key: "3g1p8c" }],
  ["path", { d: "m9 15 1.5-1.5", key: "1xfbes" }]
];
const Axis3d = createLucideIcon("axis-3d", __iconNode$oa);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o9 = [
  [
    "path",
    { d: "M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z", key: "1ol0lm" }
  ],
  ["path", { d: "M8 10h8", key: "c7uz4u" }],
  ["path", { d: "M8 18h8", key: "1no2b1" }],
  ["path", { d: "M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6", key: "1fr6do" }],
  ["path", { d: "M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2", key: "donm21" }]
];
const Backpack = createLucideIcon("backpack", __iconNode$o9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o8 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
];
const BadgeAlert = createLucideIcon("badge-alert", __iconNode$o8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o7 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M12 7v10", key: "jspqdw" }],
  ["path", { d: "M15.4 10a4 4 0 1 0 0 4", key: "2eqtx8" }]
];
const BadgeCent = createLucideIcon("badge-cent", __iconNode$o7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o6 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
];
const BadgeCheck = createLucideIcon("badge-check", __iconNode$o6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o5 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8", key: "1h4pet" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }]
];
const BadgeDollarSign = createLucideIcon("badge-dollar-sign", __iconNode$o5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o4 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M7 12h5", key: "gblrwe" }],
  ["path", { d: "M15 9.4a4 4 0 1 0 0 5.2", key: "1makmb" }]
];
const BadgeEuro = createLucideIcon("badge-euro", __iconNode$o4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o3 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M8 8h8", key: "1bis0t" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "m13 17-5-1h1a4 4 0 0 0 0-8", key: "nu2bwa" }]
];
const BadgeIndianRupee = createLucideIcon("badge-indian-rupee", __iconNode$o3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o2 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["line", { x1: "12", x2: "12", y1: "16", y2: "12", key: "1y1yb1" }],
  ["line", { x1: "12", x2: "12.01", y1: "8", y2: "8", key: "110wyk" }]
];
const BadgeInfo = createLucideIcon("badge-info", __iconNode$o2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o1 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "m9 8 3 3v7", key: "17yadx" }],
  ["path", { d: "m12 11 3-3", key: "p4cfq1" }],
  ["path", { d: "M9 12h6", key: "1c52cq" }],
  ["path", { d: "M9 16h6", key: "8wimt3" }]
];
const BadgeJapaneseYen = createLucideIcon("badge-japanese-yen", __iconNode$o1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o0 = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
];
const BadgeMinus = createLucideIcon("badge-minus", __iconNode$o0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n$ = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["path", { d: "M15 15h.01", key: "lqbp3k" }]
];
const BadgePercent = createLucideIcon("badge-percent", __iconNode$n$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n_ = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["line", { x1: "12", x2: "12", y1: "8", y2: "16", key: "10p56q" }],
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
];
const BadgePlus = createLucideIcon("badge-plus", __iconNode$n_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nZ = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M8 12h4", key: "qz6y1c" }],
  ["path", { d: "M10 16V9.5a2.5 2.5 0 0 1 5 0", key: "3mlbjk" }],
  ["path", { d: "M8 16h7", key: "sbedsn" }]
];
const BadgePoundSterling = createLucideIcon("badge-pound-sterling", __iconNode$nZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nY = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
  ["line", { x1: "12", x2: "12.01", y1: "17", y2: "17", key: "io3f8k" }]
];
const BadgeQuestionMark = createLucideIcon("badge-question-mark", __iconNode$nY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nX = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M9 16h5", key: "1syiyw" }],
  ["path", { d: "M9 12h5a2 2 0 1 0 0-4h-3v9", key: "1ge9c1" }]
];
const BadgeRussianRuble = createLucideIcon("badge-russian-ruble", __iconNode$nX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nW = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["path", { d: "M11 17V8h4", key: "1bfq6y" }],
  ["path", { d: "M11 12h3", key: "2eqnfz" }],
  ["path", { d: "M9 16h4", key: "1skf3a" }]
];
const BadgeSwissFranc = createLucideIcon("badge-swiss-franc", __iconNode$nW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nV = [
  ["path", { d: "M11 7v10a5 5 0 0 0 5-5", key: "1ja3ih" }],
  ["path", { d: "m15 8-6 3", key: "4x0uwz" }],
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76",
      key: "18242g"
    }
  ]
];
const BadgeTurkishLira = createLucideIcon("badge-turkish-lira", __iconNode$nV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nU = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ],
  ["line", { x1: "15", x2: "9", y1: "9", y2: "15", key: "f7djnv" }],
  ["line", { x1: "9", x2: "15", y1: "9", y2: "15", key: "1shsy8" }]
];
const BadgeX = createLucideIcon("badge-x", __iconNode$nU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nT = [
  [
    "path",
    {
      d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
      key: "3c2336"
    }
  ]
];
const Badge = createLucideIcon("badge", __iconNode$nT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nS = [
  ["path", { d: "M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2", key: "4irg2o" }],
  ["path", { d: "M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10", key: "14fcyx" }],
  ["rect", { width: "13", height: "8", x: "8", y: "6", rx: "1", key: "o6oiis" }],
  ["circle", { cx: "18", cy: "20", r: "2", key: "t9985n" }],
  ["circle", { cx: "9", cy: "20", r: "2", key: "e5v82j" }]
];
const BaggageClaim = createLucideIcon("baggage-claim", __iconNode$nS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nR = [
  ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Ban = createLucideIcon("ban", __iconNode$nR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nQ = [
  ["path", { d: "M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5", key: "1cscit" }],
  [
    "path",
    {
      d: "M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z",
      key: "1y1nbv"
    }
  ]
];
const Banana = createLucideIcon("banana", __iconNode$nQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nP = [
  ["path", { d: "M10 10.01h.01", key: "1e9xi7" }],
  ["path", { d: "M10 14.01h.01", key: "ac23bv" }],
  ["path", { d: "M14 10.01h.01", key: "2wfrvf" }],
  ["path", { d: "M14 14.01h.01", key: "8tw8yn" }],
  ["path", { d: "M18 6v11.5", key: "dkbidh" }],
  ["path", { d: "M6 6v12", key: "vkc79e" }],
  ["rect", { x: "2", y: "6", width: "20", height: "12", rx: "2", key: "1wpnh2" }]
];
const Bandage = createLucideIcon("bandage", __iconNode$nP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nO = [
  ["path", { d: "M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5", key: "x6cv4u" }],
  ["path", { d: "m16 19 3 3 3-3", key: "1ibux0" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }],
  ["path", { d: "M19 16v6", key: "tddt3s" }],
  ["path", { d: "M6 12h.01", key: "c2rlol" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const BanknoteArrowDown = createLucideIcon("banknote-arrow-down", __iconNode$nO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nN = [
  ["path", { d: "M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5", key: "x6cv4u" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }],
  ["path", { d: "M19 22v-6", key: "qhmiwi" }],
  ["path", { d: "m22 19-3-3-3 3", key: "rn6bg2" }],
  ["path", { d: "M6 12h.01", key: "c2rlol" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const BanknoteArrowUp = createLucideIcon("banknote-arrow-up", __iconNode$nN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nM = [
  ["path", { d: "M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5", key: "16nib6" }],
  ["path", { d: "m17 17 5 5", key: "p7ous7" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }],
  ["path", { d: "m22 17-5 5", key: "gqnmv0" }],
  ["path", { d: "M6 12h.01", key: "c2rlol" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const BanknoteX = createLucideIcon("banknote-x", __iconNode$nM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nL = [
  ["path", { d: "M3 5v14", key: "1nt18q" }],
  ["path", { d: "M8 5v14", key: "1ybrkv" }],
  ["path", { d: "M12 5v14", key: "s699le" }],
  ["path", { d: "M17 5v14", key: "ycjyhj" }],
  ["path", { d: "M21 5v14", key: "nzette" }]
];
const Barcode = createLucideIcon("barcode", __iconNode$nL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nK = [
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
];
const Banknote = createLucideIcon("banknote", __iconNode$nK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nJ = [
  ["path", { d: "M10 3a41 41 0 0 0 0 18", key: "1qcnzb" }],
  ["path", { d: "M14 3a41 41 0 0 1 0 18", key: "547vd4" }],
  [
    "path",
    {
      d: "M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z",
      key: "1wepyy"
    }
  ],
  ["path", { d: "M3.84 17h16.32", key: "1wh981" }],
  ["path", { d: "M3.84 7h16.32", key: "19jf4x" }]
];
const Barrel = createLucideIcon("barrel", __iconNode$nJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nI = [
  ["path", { d: "M4 20h16", key: "14thso" }],
  ["path", { d: "m6 16 6-12 6 12", key: "1b4byz" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const Baseline = createLucideIcon("baseline", __iconNode$nI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nH = [
  ["path", { d: "M10 4 8 6", key: "1rru8s" }],
  ["path", { d: "M17 19v2", key: "ts1sot" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "M7 19v2", key: "12npes" }],
  [
    "path",
    {
      d: "M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",
      key: "14ym8i"
    }
  ]
];
const Bath = createLucideIcon("bath", __iconNode$nH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nG = [
  ["path", { d: "M10 10v4", key: "1mb2ec" }],
  ["path", { d: "M14 10v4", key: "1nt88p" }],
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M6 10v4", key: "1n77qd" }],
  ["rect", { x: "2", y: "6", width: "16", height: "12", rx: "2", key: "13zb55" }]
];
const BatteryFull = createLucideIcon("battery-full", __iconNode$nG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nF = [
  ["path", { d: "m11 7-3 5h4l-3 5", key: "b4a64w" }],
  ["path", { d: "M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935", key: "lre1cr" }],
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936", key: "13q5k0" }]
];
const BatteryCharging = createLucideIcon("battery-charging", __iconNode$nF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nE = [
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M6 14v-4", key: "14a6bd" }],
  ["rect", { x: "2", y: "6", width: "16", height: "12", rx: "2", key: "13zb55" }]
];
const BatteryLow = createLucideIcon("battery-low", __iconNode$nE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nD = [
  ["path", { d: "M10 14v-4", key: "suye4c" }],
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M6 14v-4", key: "14a6bd" }],
  ["rect", { x: "2", y: "6", width: "16", height: "12", rx: "2", key: "13zb55" }]
];
const BatteryMedium = createLucideIcon("battery-medium", __iconNode$nD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nC = [
  ["path", { d: "M10 9v6", key: "17i7lo" }],
  ["path", { d: "M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605", key: "o09yah" }],
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M7 12h6", key: "iekk3h" }],
  ["path", { d: "M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606", key: "xyqvf1" }]
];
const BatteryPlus = createLucideIcon("battery-plus", __iconNode$nC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nB = [
  ["path", { d: "M10 17h.01", key: "nbq80n" }],
  ["path", { d: "M10 7v6", key: "nne03l" }],
  ["path", { d: "M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2", key: "1m83kb" }],
  ["path", { d: "M22 14v-4", key: "14q9d5" }],
  ["path", { d: "M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2", key: "h8lgfh" }]
];
const BatteryWarning = createLucideIcon("battery-warning", __iconNode$nB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nA = [
  ["path", { d: "M 22 14 L 22 10", key: "nqc4tb" }],
  ["rect", { x: "2", y: "6", width: "16", height: "12", rx: "2", key: "13zb55" }]
];
const Battery = createLucideIcon("battery", __iconNode$nA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nz = [
  ["path", { d: "M4.5 3h15", key: "c7n0jr" }],
  ["path", { d: "M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3", key: "m1uhx7" }],
  ["path", { d: "M6 14h12", key: "4cwo0f" }]
];
const Beaker = createLucideIcon("beaker", __iconNode$nz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ny = [
  [
    "path",
    {
      d: "M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1",
      key: "bq3udt"
    }
  ],
  ["path", { d: "M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66", key: "17ccse" }],
  [
    "path",
    {
      d: "M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04",
      key: "18zqgq"
    }
  ],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const BeanOff = createLucideIcon("bean-off", __iconNode$ny);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nx = [
  [
    "path",
    {
      d: "M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z",
      key: "1tvzk7"
    }
  ],
  ["path", { d: "M5.341 10.62a4 4 0 1 0 5.279-5.28", key: "2cyri2" }]
];
const Bean = createLucideIcon("bean", __iconNode$nx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nw = [
  ["path", { d: "M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8", key: "1k78r4" }],
  ["path", { d: "M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4", key: "fb3tl2" }],
  ["path", { d: "M12 4v6", key: "1dcgq2" }],
  ["path", { d: "M2 18h20", key: "ajqnye" }]
];
const BedDouble = createLucideIcon("bed-double", __iconNode$nw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nv = [
  ["path", { d: "M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8", key: "1wm6mi" }],
  ["path", { d: "M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4", key: "4k93s5" }],
  ["path", { d: "M3 18h18", key: "1h113x" }]
];
const BedSingle = createLucideIcon("bed-single", __iconNode$nv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nu = [
  ["path", { d: "M2 4v16", key: "vw9hq8" }],
  ["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
  ["path", { d: "M2 17h20", key: "18nfp3" }],
  ["path", { d: "M6 8v9", key: "1yriud" }]
];
const Bed = createLucideIcon("bed", __iconNode$nu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nt = [
  [
    "path",
    {
      d: "M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3",
      key: "cisjcv"
    }
  ],
  [
    "path",
    {
      d: "m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5",
      key: "5byaag"
    }
  ],
  ["circle", { cx: "12.5", cy: "8.5", r: "2.5", key: "9738u8" }]
];
const Beef = createLucideIcon("beef", __iconNode$nt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ns = [
  ["path", { d: "M13 13v5", key: "igwfh0" }],
  ["path", { d: "M17 11.47V8", key: "16yw0g" }],
  ["path", { d: "M17 11h1a3 3 0 0 1 2.745 4.211", key: "1xbt65" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3", key: "c55o3e" }],
  [
    "path",
    { d: "M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268", key: "1ydug7" }
  ],
  [
    "path",
    {
      d: "M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12",
      key: "q81o7q"
    }
  ],
  ["path", { d: "M9 14.6V18", key: "20ek98" }]
];
const BeerOff = createLucideIcon("beer-off", __iconNode$ns);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nr = [
  ["path", { d: "M17 11h1a3 3 0 0 1 0 6h-1", key: "1yp76v" }],
  ["path", { d: "M9 12v6", key: "1u1cab" }],
  ["path", { d: "M13 12v6", key: "1sugkk" }],
  [
    "path",
    {
      d: "M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z",
      key: "1510fo"
    }
  ],
  ["path", { d: "M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8", key: "19jb7n" }]
];
const Beer = createLucideIcon("beer", __iconNode$nr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nq = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  [
    "path",
    {
      d: "M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665",
      key: "1tip0g"
    }
  ],
  ["circle", { cx: "18", cy: "8", r: "3", key: "1g0gzu" }]
];
const BellDot = createLucideIcon("bell-dot", __iconNode$nq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$np = [
  ["path", { d: "M18.518 17.347A7 7 0 0 1 14 19", key: "1emhpo" }],
  ["path", { d: "M18.8 4A11 11 0 0 1 20 9", key: "127b67" }],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["circle", { cx: "20", cy: "16", r: "2", key: "1v9bxh" }],
  ["circle", { cx: "9", cy: "9", r: "7", key: "p2h5vp" }],
  ["rect", { x: "4", y: "16", width: "10", height: "6", rx: "2", key: "bfnviv" }]
];
const BellElectric = createLucideIcon("bell-electric", __iconNode$np);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$no = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  ["path", { d: "M15 8h6", key: "8ybuxh" }],
  [
    "path",
    {
      d: "M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12",
      key: "bdwj86"
    }
  ]
];
const BellMinus = createLucideIcon("bell-minus", __iconNode$no);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nn = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  [
    "path",
    {
      d: "M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",
      key: "178tsu"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05", key: "1hqiys" }]
];
const BellOff = createLucideIcon("bell-off", __iconNode$nn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nm = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  ["path", { d: "M15 8h6", key: "8ybuxh" }],
  ["path", { d: "M18 5v6", key: "g5ayrv" }],
  [
    "path",
    {
      d: "M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332",
      key: "1abcvy"
    }
  ]
];
const BellPlus = createLucideIcon("bell-plus", __iconNode$nm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nl = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  ["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
  [
    "path",
    {
      d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
      key: "11g9vi"
    }
  ],
  ["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
];
const BellRing = createLucideIcon("bell-ring", __iconNode$nl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nk = [
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
  [
    "path",
    {
      d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
      key: "11g9vi"
    }
  ]
];
const Bell = createLucideIcon("bell", __iconNode$nk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nj = [
  ["rect", { width: "13", height: "7", x: "3", y: "3", rx: "1", key: "11xb64" }],
  ["path", { d: "m22 15-3-3 3-3", key: "26chmm" }],
  ["rect", { width: "13", height: "7", x: "3", y: "14", rx: "1", key: "k6ky7n" }]
];
const BetweenHorizontalEnd = createLucideIcon("between-horizontal-end", __iconNode$nj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ni = [
  ["rect", { width: "13", height: "7", x: "8", y: "3", rx: "1", key: "pkso9a" }],
  ["path", { d: "m2 9 3 3-3 3", key: "1agib5" }],
  ["rect", { width: "13", height: "7", x: "8", y: "14", rx: "1", key: "1q5fc1" }]
];
const BetweenHorizontalStart = createLucideIcon("between-horizontal-start", __iconNode$ni);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nh = [
  ["rect", { width: "7", height: "13", x: "3", y: "3", rx: "1", key: "1fdu0f" }],
  ["path", { d: "m9 22 3-3 3 3", key: "17z65a" }],
  ["rect", { width: "7", height: "13", x: "14", y: "3", rx: "1", key: "1squn4" }]
];
const BetweenVerticalEnd = createLucideIcon("between-vertical-end", __iconNode$nh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ng = [
  ["rect", { width: "7", height: "13", x: "3", y: "8", rx: "1", key: "1fjrkv" }],
  ["path", { d: "m15 2-3 3-3-3", key: "1uh6eb" }],
  ["rect", { width: "7", height: "13", x: "14", y: "8", rx: "1", key: "w3fjg8" }]
];
const BetweenVerticalStart = createLucideIcon("between-vertical-start", __iconNode$ng);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nf = [
  [
    "path",
    {
      d: "M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1",
      key: "1pmlyh"
    }
  ],
  ["path", { d: "M15 14a5 5 0 0 0-7.584 2", key: "5rb254" }],
  ["path", { d: "M9.964 6.825C8.019 7.977 9.5 13 8 15", key: "kbvsx9" }]
];
const BicepsFlexed = createLucideIcon("biceps-flexed", __iconNode$nf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ne = [
  ["circle", { cx: "18.5", cy: "17.5", r: "3.5", key: "15x4ox" }],
  ["circle", { cx: "5.5", cy: "17.5", r: "3.5", key: "1noe27" }],
  ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
  ["path", { d: "M12 17.5V14l-3-3 4-3 2 3h2", key: "1npguv" }]
];
const Bike = createLucideIcon("bike", __iconNode$ne);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nd = [
  ["rect", { x: "14", y: "14", width: "4", height: "6", rx: "2", key: "p02svl" }],
  ["rect", { x: "6", y: "4", width: "4", height: "6", rx: "2", key: "xm4xkj" }],
  ["path", { d: "M6 20h4", key: "1i6q5t" }],
  ["path", { d: "M14 10h4", key: "ru81e7" }],
  ["path", { d: "M6 14h2v6", key: "16z9wg" }],
  ["path", { d: "M14 4h2v6", key: "1idq9u" }]
];
const Binary = createLucideIcon("binary", __iconNode$nd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nc = [
  ["path", { d: "M10 10h4", key: "tcdvrf" }],
  ["path", { d: "M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3", key: "3apit1" }],
  [
    "path",
    {
      d: "M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z",
      key: "rhpgnw"
    }
  ],
  ["path", { d: "M 22 16 L 2 16", key: "14lkq7" }],
  [
    "path",
    {
      d: "M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z",
      key: "104b3k"
    }
  ],
  ["path", { d: "M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3", key: "14fczp" }]
];
const Binoculars = createLucideIcon("binoculars", __iconNode$nc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$nb = [
  ["circle", { cx: "12", cy: "11.9", r: "2", key: "e8h31w" }],
  ["path", { d: "M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6", key: "17bolr" }],
  ["path", { d: "m8.9 10.1 1.4.8", key: "15ezny" }],
  ["path", { d: "M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5", key: "wtwa5u" }],
  ["path", { d: "m15.1 10.1-1.4.8", key: "1r0b28" }],
  ["path", { d: "M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2", key: "m7qszh" }],
  ["path", { d: "M12 13.9v1.6", key: "zfyyim" }],
  ["path", { d: "M13.5 5.4c-1-.2-2-.2-3 0", key: "1bi9q0" }],
  ["path", { d: "M17 16.4c.7-.7 1.2-1.6 1.5-2.5", key: "1rhjqw" }],
  ["path", { d: "M5.5 13.9c.3.9.8 1.8 1.5 2.5", key: "8gsud3" }]
];
const Biohazard = createLucideIcon("biohazard", __iconNode$nb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$na = [
  ["path", { d: "M16 7h.01", key: "1kdx03" }],
  ["path", { d: "M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20", key: "oj1oa8" }],
  ["path", { d: "m20 7 2 .5-2 .5", key: "12nv4d" }],
  ["path", { d: "M10 18v3", key: "1yea0a" }],
  ["path", { d: "M14 17.75V21", key: "1pymcb" }],
  ["path", { d: "M7 18a6 6 0 0 0 3.84-10.61", key: "1npnn0" }]
];
const Bird = createLucideIcon("bird", __iconNode$na);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n9 = [
  ["path", { d: "M12 18v4", key: "jadmvz" }],
  ["path", { d: "m17 18 1.956-11.468", key: "l5n2ro" }],
  ["path", { d: "m3 8 7.82-5.615a2 2 0 0 1 2.36 0L21 8", key: "1sy6n7" }],
  ["path", { d: "M4 18h16", key: "19g7jn" }],
  ["path", { d: "M7 18 5.044 6.532", key: "1uqdf2" }],
  ["circle", { cx: "12", cy: "10", r: "2", key: "1yojzk" }]
];
const Birdhouse = createLucideIcon("birdhouse", __iconNode$n9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n8 = [
  [
    "path",
    {
      d: "M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",
      key: "yr8idg"
    }
  ]
];
const Bitcoin = createLucideIcon("bitcoin", __iconNode$n8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n7 = [
  ["circle", { cx: "9", cy: "9", r: "7", key: "p2h5vp" }],
  ["circle", { cx: "15", cy: "15", r: "7", key: "19ennj" }]
];
const Blend = createLucideIcon("blend", __iconNode$n7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n6 = [
  ["path", { d: "M3 3h18", key: "o7r712" }],
  ["path", { d: "M20 7H8", key: "gd2fo2" }],
  ["path", { d: "M20 11H8", key: "1ynp89" }],
  ["path", { d: "M10 19h10", key: "19hjk5" }],
  ["path", { d: "M8 15h12", key: "1yqzne" }],
  ["path", { d: "M4 3v14", key: "fggqzn" }],
  ["circle", { cx: "4", cy: "19", r: "2", key: "p3m9r0" }]
];
const Blinds = createLucideIcon("blinds", __iconNode$n6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n5 = [
  [
    "path",
    {
      d: "M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",
      key: "1ah6g2"
    }
  ],
  ["rect", { x: "14", y: "2", width: "8", height: "8", rx: "1", key: "88lufb" }]
];
const Blocks = createLucideIcon("blocks", __iconNode$n5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n4 = [
  ["path", { d: "m7 7 10 10-5 5V2l5 5L7 17", key: "1q5490" }],
  ["line", { x1: "18", x2: "21", y1: "12", y2: "12", key: "1rsjjs" }],
  ["line", { x1: "3", x2: "6", y1: "12", y2: "12", key: "11yl8c" }]
];
const BluetoothConnected = createLucideIcon("bluetooth-connected", __iconNode$n4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n3 = [
  ["path", { d: "m17 17-5 5V12l-5 5", key: "v5aci6" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M14.5 9.5 17 7l-5-5v4.5", key: "1kddfz" }]
];
const BluetoothOff = createLucideIcon("bluetooth-off", __iconNode$n3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n2 = [
  ["path", { d: "m7 7 10 10-5 5V2l5 5L7 17", key: "1q5490" }],
  ["path", { d: "M20.83 14.83a4 4 0 0 0 0-5.66", key: "k8tn1j" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }]
];
const BluetoothSearching = createLucideIcon("bluetooth-searching", __iconNode$n2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n1 = [["path", { d: "m7 7 10 10-5 5V2l5 5L7 17", key: "1q5490" }]];
const Bluetooth = createLucideIcon("bluetooth", __iconNode$n1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n0 = [
  [
    "path",
    { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
  ]
];
const Bold = createLucideIcon("bold", __iconNode$n0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m$ = [
  [
    "path",
    {
      d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",
      key: "yt0hxn"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
];
const Bolt = createLucideIcon("bolt", __iconNode$m$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m_ = [
  ["circle", { cx: "11", cy: "13", r: "9", key: "hd149" }],
  [
    "path",
    {
      d: "M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95",
      key: "jp4j1b"
    }
  ],
  ["path", { d: "m22 2-1.5 1.5", key: "ay92ug" }]
];
const Bomb = createLucideIcon("bomb", __iconNode$m_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mZ = [
  [
    "path",
    {
      d: "M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",
      key: "w610uw"
    }
  ]
];
const Bone = createLucideIcon("bone", __iconNode$mZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mY = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "m8 13 4-7 4 7", key: "4rari8" }],
  ["path", { d: "M9.1 11h5.7", key: "1gkovt" }]
];
const BookA = createLucideIcon("book-a", __iconNode$mY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mX = [
  ["path", { d: "M12 13h.01", key: "y0uutt" }],
  ["path", { d: "M12 6v3", key: "1m4b9j" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ]
];
const BookAlert = createLucideIcon("book-alert", __iconNode$mX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mW = [
  ["path", { d: "M12 6v7", key: "1f6ttz" }],
  ["path", { d: "M16 8v3", key: "gejaml" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "M8 8v3", key: "1qzp49" }]
];
const BookAudio = createLucideIcon("book-audio", __iconNode$mW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mV = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "m9 9.5 2 2 4-4", key: "1dth82" }]
];
const BookCheck = createLucideIcon("book-check", __iconNode$mV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mU = [
  ["path", { d: "M5 7a2 2 0 0 0-2 2v11", key: "1yhqjt" }],
  ["path", { d: "M5.803 18H5a2 2 0 0 0 0 4h9.5a.5.5 0 0 0 .5-.5V21", key: "edzzo5" }],
  [
    "path",
    {
      d: "M9 15V4a2 2 0 0 1 2-2h9.5a.5.5 0 0 1 .5.5v14a.5.5 0 0 1-.5.5H11a2 2 0 0 1 0-4h10",
      key: "1nwzrg"
    }
  ]
];
const BookCopy = createLucideIcon("book-copy", __iconNode$mU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mT = [
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "m9 10 3 3 3-3", key: "zt5b4y" }]
];
const BookDown = createLucideIcon("book-down", __iconNode$mT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mS = [
  ["path", { d: "M12 17h1.5", key: "1gkc67" }],
  ["path", { d: "M12 22h1.5", key: "1my7sn" }],
  ["path", { d: "M12 2h1.5", key: "19tvb7" }],
  ["path", { d: "M17.5 22H19a1 1 0 0 0 1-1", key: "10akbh" }],
  ["path", { d: "M17.5 2H19a1 1 0 0 1 1 1v1.5", key: "1vrfjs" }],
  ["path", { d: "M20 14v3h-2.5", key: "1naeju" }],
  ["path", { d: "M20 8.5V10", key: "1ctpfu" }],
  ["path", { d: "M4 10V8.5", key: "1o3zg5" }],
  ["path", { d: "M4 19.5V14", key: "ob81pf" }],
  ["path", { d: "M4 4.5A2.5 2.5 0 0 1 6.5 2H8", key: "s8vcyb" }],
  ["path", { d: "M8 22H6.5a1 1 0 0 1 0-5H8", key: "1cu73q" }]
];
const BookDashed = createLucideIcon("book-dashed", __iconNode$mS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mR = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "M8 12v-2a4 4 0 0 1 8 0v2", key: "1vsqkj" }],
  ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }]
];
const BookHeadphones = createLucideIcon("book-headphones", __iconNode$mR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mQ = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  [
    "path",
    {
      d: "M8.62 9.8A2.25 2.25 0 1 1 12 6.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z",
      key: "9v40y5"
    }
  ]
];
const BookHeart = createLucideIcon("book-heart", __iconNode$mQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mP = [
  ["path", { d: "m20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17", key: "q6ojf0" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["circle", { cx: "10", cy: "8", r: "2", key: "2qkj4p" }]
];
const BookImage = createLucideIcon("book-image", __iconNode$mP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mO = [
  ["path", { d: "m19 3 1 1", key: "ze14oc" }],
  ["path", { d: "m20 2-4.5 4.5", key: "1sppr8" }],
  ["path", { d: "M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20", key: "1xzogz" }],
  ["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844", key: "vtdg6h" }],
  ["circle", { cx: "14", cy: "8", r: "2", key: "u49eql" }]
];
const BookKey = createLucideIcon("book-key", __iconNode$mO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mN = [
  ["path", { d: "M18 6V4a2 2 0 1 0-4 0v2", key: "1aquzs" }],
  ["path", { d: "M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20", key: "1rkj32" }],
  ["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10", key: "18wgow" }],
  ["rect", { x: "12", y: "6", width: "8", height: "5", rx: "1", key: "73l30o" }]
];
const BookLock = createLucideIcon("book-lock", __iconNode$mN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mM = [
  ["path", { d: "M10 2v8l3-3 3 3V2", key: "sqw3rj" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ]
];
const BookMarked = createLucideIcon("book-marked", __iconNode$mM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mL = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "M9 10h6", key: "9gxzsh" }]
];
const BookMinus = createLucideIcon("book-minus", __iconNode$mL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mK = [
  ["path", { d: "M12 21V7", key: "gj6g52" }],
  ["path", { d: "m16 12 2 2 4-4", key: "mdajum" }],
  [
    "path",
    {
      d: "M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3",
      key: "8arnkb"
    }
  ]
];
const BookOpenCheck = createLucideIcon("book-open-check", __iconNode$mK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mJ = [
  ["path", { d: "M12 7v14", key: "1akyts" }],
  [
    "path",
    {
      d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",
      key: "ruj8y"
    }
  ]
];
const BookOpen = createLucideIcon("book-open", __iconNode$mJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mI = [
  ["path", { d: "M12 7v14", key: "1akyts" }],
  ["path", { d: "M16 12h2", key: "7q9ll5" }],
  ["path", { d: "M16 8h2", key: "msurwy" }],
  [
    "path",
    {
      d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",
      key: "ruj8y"
    }
  ],
  ["path", { d: "M6 12h2", key: "32wvfc" }],
  ["path", { d: "M6 8h2", key: "30oboj" }]
];
const BookOpenText = createLucideIcon("book-open-text", __iconNode$mI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mH = [
  ["path", { d: "M12 7v6", key: "lw1j43" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "M9 10h6", key: "9gxzsh" }]
];
const BookPlus = createLucideIcon("book-plus", __iconNode$mH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mG = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "M8 11h8", key: "vwpz6n" }],
  ["path", { d: "M8 7h6", key: "1f0q6e" }]
];
const BookText = createLucideIcon("book-text", __iconNode$mG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mF = [
  ["path", { d: "M10 13h4", key: "ytezjc" }],
  ["path", { d: "M12 6v7", key: "1f6ttz" }],
  ["path", { d: "M16 8V6H8v2", key: "x8j6u4" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ]
];
const BookType = createLucideIcon("book-type", __iconNode$mF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mE = [
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  ["path", { d: "M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20", key: "161d7n" }],
  ["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2", key: "1lorq7" }],
  ["path", { d: "m9 10 3-3 3 3", key: "11gsxs" }],
  ["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
];
const BookUp2 = createLucideIcon("book-up-2", __iconNode$mE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mD = [
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "m9 10 3-3 3 3", key: "11gsxs" }]
];
const BookUp = createLucideIcon("book-up", __iconNode$mD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mC = [
  ["path", { d: "M15 13a3 3 0 1 0-6 0", key: "10j68g" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["circle", { cx: "12", cy: "8", r: "2", key: "1822b1" }]
];
const BookUser = createLucideIcon("book-user", __iconNode$mC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mB = [
  ["path", { d: "m14.5 7-5 5", key: "dy991v" }],
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ],
  ["path", { d: "m9.5 7 5 5", key: "s45iea" }]
];
const BookX = createLucideIcon("book-x", __iconNode$mB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mA = [
  [
    "path",
    {
      d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",
      key: "k3hazp"
    }
  ]
];
const Book = createLucideIcon("book", __iconNode$mA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mz = [
  ["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z", key: "169p4p" }],
  ["path", { d: "m9 10 2 2 4-4", key: "1gnqz4" }]
];
const BookmarkCheck = createLucideIcon("bookmark-check", __iconNode$mz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$my = [
  ["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z", key: "1fy3hk" }],
  ["line", { x1: "15", x2: "9", y1: "10", y2: "10", key: "1gty7f" }]
];
const BookmarkMinus = createLucideIcon("bookmark-minus", __iconNode$my);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mx = [
  ["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z", key: "1fy3hk" }],
  ["line", { x1: "12", x2: "12", y1: "7", y2: "13", key: "1cppfj" }],
  ["line", { x1: "15", x2: "9", y1: "10", y2: "10", key: "1gty7f" }]
];
const BookmarkPlus = createLucideIcon("bookmark-plus", __iconNode$mx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mw = [
  ["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z", key: "169p4p" }],
  ["path", { d: "m14.5 7.5-5 5", key: "3lb6iw" }],
  ["path", { d: "m9.5 7.5 5 5", key: "ko136h" }]
];
const BookmarkX = createLucideIcon("bookmark-x", __iconNode$mw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mv = [
  ["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z", key: "1fy3hk" }]
];
const Bookmark = createLucideIcon("bookmark", __iconNode$mv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mu = [
  ["path", { d: "M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4", key: "vvzvr1" }],
  ["path", { d: "M8 8v1", key: "xcqmfk" }],
  ["path", { d: "M12 8v1", key: "1rj8u4" }],
  ["path", { d: "M16 8v1", key: "1q12zr" }],
  ["rect", { width: "20", height: "12", x: "2", y: "9", rx: "2", key: "igpb89" }],
  ["circle", { cx: "8", cy: "15", r: "2", key: "fa4a8s" }],
  ["circle", { cx: "16", cy: "15", r: "2", key: "14c3ya" }]
];
const BoomBox = createLucideIcon("boom-box", __iconNode$mu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mt = [
  ["path", { d: "M12 6V2H8", key: "1155em" }],
  ["path", { d: "M15 11v2", key: "i11awn" }],
  ["path", { d: "M2 12h2", key: "1t8f8n" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }],
  [
    "path",
    {
      d: "M20 16a2 2 0 0 1-2 2H8.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 4 20.286V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2z",
      key: "11gyqh"
    }
  ],
  ["path", { d: "M9 11v2", key: "1ueba0" }]
];
const BotMessageSquare = createLucideIcon("bot-message-square", __iconNode$mt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ms = [
  ["path", { d: "M13.67 8H18a2 2 0 0 1 2 2v4.33", key: "7az073" }],
  ["path", { d: "M2 14h2", key: "vft8re" }],
  ["path", { d: "M20 14h2", key: "4cs60a" }],
  ["path", { d: "M22 22 2 2", key: "1r8tn9" }],
  ["path", { d: "M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586", key: "s09a7a" }],
  ["path", { d: "M9 13v2", key: "rq6x2g" }],
  ["path", { d: "M9.67 4H12v2.33", key: "110xot" }]
];
const BotOff = createLucideIcon("bot-off", __iconNode$ms);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mr = [
  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
  ["path", { d: "M2 14h2", key: "vft8re" }],
  ["path", { d: "M20 14h2", key: "4cs60a" }],
  ["path", { d: "M15 13v2", key: "1xurst" }],
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
];
const Bot = createLucideIcon("bot", __iconNode$mr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mq = [
  ["path", { d: "M17 3h4v4", key: "19p9u1" }],
  [
    "path",
    { d: "M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17", key: "12t3w9" }
  ],
  ["path", { d: "M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05", key: "ogng5l" }],
  [
    "path",
    {
      d: "M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z",
      key: "8v3fy2"
    }
  ],
  ["path", { d: "M9.707 14.293 21 3", key: "ydm3bn" }]
];
const BowArrow = createLucideIcon("bow-arrow", __iconNode$mq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mp = [
  [
    "path",
    {
      d: "M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z",
      key: "blqgoc"
    }
  ],
  ["path", { d: "M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4", key: "43jbee" }]
];
const BottleWine = createLucideIcon("bottle-wine", __iconNode$mp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mo = [
  [
    "path",
    {
      d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
      key: "hh9hay"
    }
  ],
  ["path", { d: "m3.3 7 8.7 5 8.7-5", key: "g66t2b" }],
  ["path", { d: "M12 22V12", key: "d0xqtd" }]
];
const Box = createLucideIcon("box", __iconNode$mo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mn = [
  [
    "path",
    {
      d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",
      key: "lc1i9w"
    }
  ],
  ["path", { d: "m7 16.5-4.74-2.85", key: "1o9zyk" }],
  ["path", { d: "m7 16.5 5-3", key: "va8pkn" }],
  ["path", { d: "M7 16.5v5.17", key: "jnp8gn" }],
  [
    "path",
    {
      d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",
      key: "8zsnat"
    }
  ],
  ["path", { d: "m17 16.5-5-3", key: "8arw3v" }],
  ["path", { d: "m17 16.5 4.74-2.85", key: "8rfmw" }],
  ["path", { d: "M17 16.5v5.17", key: "k6z78m" }],
  [
    "path",
    {
      d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",
      key: "1xygjf"
    }
  ],
  ["path", { d: "M12 8 7.26 5.15", key: "1vbdud" }],
  ["path", { d: "m12 8 4.74-2.85", key: "3rx089" }],
  ["path", { d: "M12 13.5V8", key: "1io7kd" }]
];
const Boxes = createLucideIcon("boxes", __iconNode$mn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mm = [
  [
    "path",
    { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1", key: "ezmyqa" }
  ],
  [
    "path",
    {
      d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",
      key: "e1hn23"
    }
  ]
];
const Braces = createLucideIcon("braces", __iconNode$mm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ml = [
  ["path", { d: "M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3", key: "1kt8lf" }],
  ["path", { d: "M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3", key: "gduv9" }]
];
const Brackets = createLucideIcon("brackets", __iconNode$ml);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mk = [
  [
    "path",
    {
      d: "M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",
      key: "l5xja"
    }
  ],
  ["path", { d: "M9 13a4.5 4.5 0 0 0 3-4", key: "10igwf" }],
  ["path", { d: "M6.003 5.125A3 3 0 0 0 6.401 6.5", key: "105sqy" }],
  ["path", { d: "M3.477 10.896a4 4 0 0 1 .585-.396", key: "ql3yin" }],
  ["path", { d: "M6 18a4 4 0 0 1-1.967-.516", key: "2e4loj" }],
  ["path", { d: "M12 13h4", key: "1ku699" }],
  ["path", { d: "M12 18h6a2 2 0 0 1 2 2v1", key: "105ag5" }],
  ["path", { d: "M12 8h8", key: "1lhi5i" }],
  ["path", { d: "M16 8V5a2 2 0 0 1 2-2", key: "u6izg6" }],
  ["circle", { cx: "16", cy: "13", r: ".5", key: "ry7gng" }],
  ["circle", { cx: "18", cy: "3", r: ".5", key: "1aiba7" }],
  ["circle", { cx: "20", cy: "21", r: ".5", key: "yhc1fs" }],
  ["circle", { cx: "20", cy: "8", r: ".5", key: "1e43v0" }]
];
const BrainCircuit = createLucideIcon("brain-circuit", __iconNode$mk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mj = [
  ["path", { d: "m10.852 14.772-.383.923", key: "11vil6" }],
  ["path", { d: "m10.852 9.228-.383-.923", key: "1fjppe" }],
  ["path", { d: "m13.148 14.772.382.924", key: "je3va1" }],
  ["path", { d: "m13.531 8.305-.383.923", key: "18epck" }],
  ["path", { d: "m14.772 10.852.923-.383", key: "k9m8cz" }],
  ["path", { d: "m14.772 13.148.923.383", key: "1xvhww" }],
  [
    "path",
    {
      d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771",
      key: "jcbbz1"
    }
  ],
  ["path", { d: "M17.998 5.125a4 4 0 0 1 2.525 5.771", key: "1kkn7e" }],
  ["path", { d: "M19.505 10.294a4 4 0 0 1-1.5 7.706", key: "18bmuc" }],
  [
    "path",
    {
      d: "M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516",
      key: "uozx0d"
    }
  ],
  ["path", { d: "M4.5 10.291A4 4 0 0 0 6 18", key: "whdemb" }],
  ["path", { d: "M6.002 5.125a3 3 0 0 0 .4 1.375", key: "1kqy2g" }],
  ["path", { d: "m9.228 10.852-.923-.383", key: "1wtb30" }],
  ["path", { d: "m9.228 13.148-.923.383", key: "1a830x" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
];
const BrainCog = createLucideIcon("brain-cog", __iconNode$mj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mi = [
  ["path", { d: "M16 3v2.107", key: "gq8xun" }],
  [
    "path",
    {
      d: "M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9",
      key: "1l2pih"
    }
  ],
  [
    "path",
    { d: "M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938", key: "jrnqjp" }
  ],
  ["path", { d: "M3 15h5.253", key: "xqg7rb" }],
  ["path", { d: "M3 9h8.228", key: "1ppb70" }],
  ["path", { d: "M8 15v6", key: "1stoo3" }],
  ["path", { d: "M8 3v6", key: "vlvjmk" }]
];
const BrickWallFire = createLucideIcon("brick-wall-fire", __iconNode$mi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mh = [
  ["path", { d: "M12 18V5", key: "adv99a" }],
  ["path", { d: "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", key: "1e3is1" }],
  ["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", key: "1gqd8o" }],
  ["path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77", key: "iwvgf7" }],
  ["path", { d: "M18 18a4 4 0 0 0 2-7.464", key: "efp6ie" }],
  ["path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517", key: "1gq6am" }],
  ["path", { d: "M6 18a4 4 0 0 1-2-7.464", key: "k1g0md" }],
  ["path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77", key: "q97ue3" }]
];
const Brain = createLucideIcon("brain", __iconNode$mh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mg = [
  ["path", { d: "M12 9v1.258", key: "iwpddn" }],
  ["path", { d: "M16 3v5.46", key: "d7ew98" }],
  ["path", { d: "M21 9.118V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5.75", key: "137t5x" }],
  [
    "path",
    {
      d: "M22 17.5c0 2.499-1.75 3.749-3.83 4.474a.5.5 0 0 1-.335-.005c-2.085-.72-3.835-1.97-3.835-4.47V14a.5.5 0 0 1 .5-.499c1 0 2.25-.6 3.12-1.36a.6.6 0 0 1 .76-.001c.875.765 2.12 1.36 3.12 1.36a.5.5 0 0 1 .5.5z",
      key: "16j3tf"
    }
  ],
  ["path", { d: "M3 15h7", key: "1qldh6" }],
  ["path", { d: "M3 9h12.142", key: "1yjd6m" }],
  ["path", { d: "M8 15v6", key: "1stoo3" }],
  ["path", { d: "M8 3v6", key: "vlvjmk" }]
];
const BrickWallShield = createLucideIcon("brick-wall-shield", __iconNode$mg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mf = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M12 9v6", key: "199k2o" }],
  ["path", { d: "M16 15v6", key: "8rj2es" }],
  ["path", { d: "M16 3v6", key: "1j6rpj" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "M8 15v6", key: "1stoo3" }],
  ["path", { d: "M8 3v6", key: "vlvjmk" }]
];
const BrickWall = createLucideIcon("brick-wall", __iconNode$mf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$me = [
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2", key: "1ksdt3" }],
  ["path", { d: "M22 13a18.15 18.15 0 0 1-20 0", key: "12hx5q" }],
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
];
const BriefcaseBusiness = createLucideIcon("briefcase-business", __iconNode$me);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$md = [
  ["path", { d: "M10 20v2", key: "1n8e1g" }],
  ["path", { d: "M14 20v2", key: "1lq872" }],
  ["path", { d: "M18 20v2", key: "10uadw" }],
  ["path", { d: "M21 20H3", key: "kdqkdp" }],
  ["path", { d: "M6 20v2", key: "a9bc87" }],
  ["path", { d: "M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12", key: "17n9tx" }],
  ["rect", { x: "4", y: "6", width: "16", height: "10", rx: "2", key: "1097i5" }]
];
const BriefcaseConveyorBelt = createLucideIcon("briefcase-conveyor-belt", __iconNode$md);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mc = [
  ["path", { d: "M12 11v4", key: "a6ujw6" }],
  ["path", { d: "M14 13h-4", key: "1pl8zg" }],
  ["path", { d: "M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2", key: "1ksdt3" }],
  ["path", { d: "M18 6v14", key: "1mu4gy" }],
  ["path", { d: "M6 6v14", key: "1s15cj" }],
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
];
const BriefcaseMedical = createLucideIcon("briefcase-medical", __iconNode$mc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$mb = [
  ["rect", { x: "8", y: "8", width: "8", height: "8", rx: "2", key: "yj20xf" }],
  ["path", { d: "M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2", key: "1ltk23" }],
  ["path", { d: "M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2", key: "1q24h9" }]
];
const BringToFront = createLucideIcon("bring-to-front", __iconNode$mb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ma = [
  ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
];
const Briefcase = createLucideIcon("briefcase", __iconNode$ma);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m9 = [
  ["path", { d: "m16 22-1-4", key: "1ow2iv" }],
  [
    "path",
    {
      d: "M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1",
      key: "iw8jdu"
    }
  ],
  ["path", { d: "M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z", key: "1soew8" }],
  ["path", { d: "m8 22 1-4", key: "s3unb" }]
];
const BrushCleaning = createLucideIcon("brush-cleaning", __iconNode$m9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m8 = [
  ["path", { d: "m11 10 3 3", key: "fzmg1i" }],
  [
    "path",
    { d: "M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z", key: "p4q2r7" }
  ],
  ["path", { d: "M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031", key: "wy6l02" }]
];
const Brush = createLucideIcon("brush", __iconNode$m8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m7 = [
  ["path", { d: "M7.2 14.8a2 2 0 0 1 2 2", key: "1tw9gg" }],
  ["circle", { cx: "18.5", cy: "8.5", r: "3.5", key: "1wadoa" }],
  ["circle", { cx: "7.5", cy: "16.5", r: "5.5", key: "6mdt3g" }],
  ["circle", { cx: "7.5", cy: "4.5", r: "2.5", key: "637s54" }]
];
const Bubbles = createLucideIcon("bubbles", __iconNode$m7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m6 = [
  ["path", { d: "M12 20v-8", key: "i3yub9" }],
  ["path", { d: "M14.12 3.88 16 2", key: "qol33r" }],
  ["path", { d: "M15 7.13V6a3 3 0 0 0-5.14-2.1L8 2", key: "vl8zik" }],
  ["path", { d: "M18 12.34V11a4 4 0 0 0-4-4h-1.3", key: "sz915m" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M21 5a4 4 0 0 1-3.55 3.97", key: "5cxbf6" }],
  ["path", { d: "M22 13h-3.34", key: "1y15gv" }],
  ["path", { d: "M3 21a4 4 0 0 1 3.81-4", key: "1fjd4g" }],
  ["path", { d: "M6 13H2", key: "82j7cp" }],
  ["path", { d: "M7.7 7.7A4 4 0 0 0 6 11v3a6 6 0 0 0 11.13 3.13", key: "1njkjs" }]
];
const BugOff = createLucideIcon("bug-off", __iconNode$m6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m5 = [
  ["path", { d: "M10 19.655A6 6 0 0 1 6 14v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 3.97", key: "1gnv52" }],
  [
    "path",
    {
      d: "M14 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z",
      key: "1weqy9"
    }
  ],
  ["path", { d: "M14.12 3.88 16 2", key: "qol33r" }],
  ["path", { d: "M21 5a4 4 0 0 1-3.55 3.97", key: "5cxbf6" }],
  ["path", { d: "M3 21a4 4 0 0 1 3.81-4", key: "1fjd4g" }],
  ["path", { d: "M3 5a4 4 0 0 0 3.55 3.97", key: "1d7oge" }],
  ["path", { d: "M6 13H2", key: "82j7cp" }],
  ["path", { d: "m8 2 1.88 1.88", key: "fmnt4t" }],
  ["path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13", key: "1vgav8" }]
];
const BugPlay = createLucideIcon("bug-play", __iconNode$m5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m4 = [
  ["path", { d: "M12 20v-9", key: "1qisl0" }],
  ["path", { d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z", key: "uouzyp" }],
  ["path", { d: "M14.12 3.88 16 2", key: "qol33r" }],
  ["path", { d: "M21 21a4 4 0 0 0-3.81-4", key: "1b0z45" }],
  ["path", { d: "M21 5a4 4 0 0 1-3.55 3.97", key: "5cxbf6" }],
  ["path", { d: "M22 13h-4", key: "1jl80f" }],
  ["path", { d: "M3 21a4 4 0 0 1 3.81-4", key: "1fjd4g" }],
  ["path", { d: "M3 5a4 4 0 0 0 3.55 3.97", key: "1d7oge" }],
  ["path", { d: "M6 13H2", key: "82j7cp" }],
  ["path", { d: "m8 2 1.88 1.88", key: "fmnt4t" }],
  ["path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13", key: "1vgav8" }]
];
const Bug = createLucideIcon("bug", __iconNode$m4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m3 = [
  ["path", { d: "M10 12h4", key: "a56b0p" }],
  ["path", { d: "M10 8h4", key: "1sr2af" }],
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
  [
    "path",
    {
      d: "M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",
      key: "secmi2"
    }
  ],
  ["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
];
const Building2 = createLucideIcon("building-2", __iconNode$m3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m2 = [
  ["path", { d: "M12 10h.01", key: "1nrarc" }],
  ["path", { d: "M12 14h.01", key: "1etili" }],
  ["path", { d: "M12 6h.01", key: "1vi96p" }],
  ["path", { d: "M16 10h.01", key: "1m94wz" }],
  ["path", { d: "M16 14h.01", key: "1gbofw" }],
  ["path", { d: "M16 6h.01", key: "1x0f13" }],
  ["path", { d: "M8 10h.01", key: "19clt8" }],
  ["path", { d: "M8 14h.01", key: "6423bh" }],
  ["path", { d: "M8 6h.01", key: "1dz90k" }],
  ["path", { d: "M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3", key: "cabbwy" }],
  ["rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", key: "1uxh74" }]
];
const Building = createLucideIcon("building", __iconNode$m2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m1 = [
  ["path", { d: "M4 6 2 7", key: "1mqr15" }],
  ["path", { d: "M10 6h4", key: "1itunk" }],
  ["path", { d: "m22 7-2-1", key: "1umjhc" }],
  ["rect", { width: "16", height: "16", x: "4", y: "3", rx: "2", key: "1wxw4b" }],
  ["path", { d: "M4 11h16", key: "mpoxn0" }],
  ["path", { d: "M8 15h.01", key: "a7atzg" }],
  ["path", { d: "M16 15h.01", key: "rnfrdf" }],
  ["path", { d: "M6 19v2", key: "1loha6" }],
  ["path", { d: "M18 21v-2", key: "sqyl04" }]
];
const BusFront = createLucideIcon("bus-front", __iconNode$m1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m0 = [
  ["path", { d: "M8 6v6", key: "18i7km" }],
  ["path", { d: "M15 6v6", key: "1sg6z9" }],
  ["path", { d: "M2 12h19.6", key: "de5uta" }],
  [
    "path",
    {
      d: "M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3",
      key: "1wwztk"
    }
  ],
  ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }],
  ["path", { d: "M9 18h5", key: "lrx6i" }],
  ["circle", { cx: "16", cy: "18", r: "2", key: "1v4tcr" }]
];
const Bus = createLucideIcon("bus", __iconNode$m0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l$ = [
  ["path", { d: "M10 3h.01", key: "lbucoy" }],
  ["path", { d: "M14 2h.01", key: "1k8aa1" }],
  ["path", { d: "m2 9 20-5", key: "1kz0j5" }],
  ["path", { d: "M12 12V6.5", key: "1vbrij" }],
  ["rect", { width: "16", height: "10", x: "4", y: "12", rx: "3", key: "if91er" }],
  ["path", { d: "M9 12v5", key: "3anwtq" }],
  ["path", { d: "M15 12v5", key: "5xh3zn" }],
  ["path", { d: "M4 17h16", key: "g4d7ey" }]
];
const CableCar = createLucideIcon("cable-car", __iconNode$l$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l_ = [
  [
    "path",
    { d: "M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z", key: "trhst0" }
  ],
  ["path", { d: "M17 21v-2", key: "ds4u3f" }],
  ["path", { d: "M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10", key: "1mo9zo" }],
  ["path", { d: "M21 21v-2", key: "eo0ou" }],
  ["path", { d: "M3 5V3", key: "1k5hjh" }],
  [
    "path",
    { d: "M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z", key: "1dd30t" }
  ],
  ["path", { d: "M7 5V3", key: "1t1388" }]
];
const Cable = createLucideIcon("cable", __iconNode$l_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lZ = [
  ["path", { d: "M16 13H3", key: "1wpj08" }],
  ["path", { d: "M16 17H3", key: "3lvfcd" }],
  [
    "path",
    {
      d: "m7.2 7.9-3.388 2.5A2 2 0 0 0 3 12.01V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-8.654c0-2-2.44-6.026-6.44-8.026a1 1 0 0 0-1.082.057L10.4 5.6",
      key: "1gmhf7"
    }
  ],
  ["circle", { cx: "9", cy: "7", r: "2", key: "1305pl" }]
];
const CakeSlice = createLucideIcon("cake-slice", __iconNode$lZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lY = [
  ["path", { d: "M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8", key: "1w3rig" }],
  ["path", { d: "M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1", key: "n2jgmb" }],
  ["path", { d: "M2 21h20", key: "1nyx9w" }],
  ["path", { d: "M7 8v3", key: "1qtyvj" }],
  ["path", { d: "M12 8v3", key: "hwp4zt" }],
  ["path", { d: "M17 8v3", key: "1i6e5u" }],
  ["path", { d: "M7 4h.01", key: "1bh4kh" }],
  ["path", { d: "M12 4h.01", key: "1ujb9j" }],
  ["path", { d: "M17 4h.01", key: "1upcoc" }]
];
const Cake = createLucideIcon("cake", __iconNode$lY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lX = [
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
  ["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
  ["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
  ["path", { d: "M16 10h.01", key: "1m94wz" }],
  ["path", { d: "M12 10h.01", key: "1nrarc" }],
  ["path", { d: "M8 10h.01", key: "19clt8" }],
  ["path", { d: "M12 14h.01", key: "1etili" }],
  ["path", { d: "M8 14h.01", key: "6423bh" }],
  ["path", { d: "M12 18h.01", key: "mhygvu" }],
  ["path", { d: "M8 18h.01", key: "lrp35t" }]
];
const Calculator = createLucideIcon("calculator", __iconNode$lX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lW = [
  ["path", { d: "M11 14h1v4", key: "fy54vd" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", key: "12vinp" }]
];
const Calendar1 = createLucideIcon("calendar-1", __iconNode$lW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lV = [
  ["path", { d: "m14 18 4 4 4-4", key: "1waygx" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M18 14v8", key: "irew45" }],
  [
    "path",
    { d: "M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343", key: "bse4f3" }
  ],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarArrowDown = createLucideIcon("calendar-arrow-down", __iconNode$lV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lU = [
  ["path", { d: "m14 18 4-4 4 4", key: "ftkppy" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M18 22v-8", key: "su0gjh" }],
  ["path", { d: "M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9", key: "1exg90" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarArrowUp = createLucideIcon("calendar-arrow-up", __iconNode$lU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lT = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8", key: "bce9hv" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "m16 20 2 2 4-4", key: "13tcca" }]
];
const CalendarCheck2 = createLucideIcon("calendar-check-2", __iconNode$lT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lS = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "m9 16 2 2 4-4", key: "19s6y9" }]
];
const CalendarCheck = createLucideIcon("calendar-check", __iconNode$lS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lR = [
  ["path", { d: "m15.228 16.852-.923-.383", key: "npixar" }],
  ["path", { d: "m15.228 19.148-.923.383", key: "51cr3n" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "m16.47 14.305.382.923", key: "obybxd" }],
  ["path", { d: "m16.852 20.772-.383.924", key: "dpfhf9" }],
  ["path", { d: "m19.148 15.228.383-.923", key: "1reyyz" }],
  ["path", { d: "m19.53 21.696-.382-.924", key: "1goivc" }],
  ["path", { d: "m20.772 16.852.924-.383", key: "htqkph" }],
  ["path", { d: "m20.772 19.148.924.383", key: "9w9pjp" }],
  ["path", { d: "M21 10.592V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6", key: "1pvbig" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const CalendarCog = createLucideIcon("calendar-cog", __iconNode$lR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lQ = [
  ["path", { d: "M16 14v2.2l1.6 1", key: "fo4ql5" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5", key: "1osxxc" }],
  ["path", { d: "M3 10h5", key: "r794hk" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["circle", { cx: "16", cy: "16", r: "6", key: "qoo3c4" }]
];
const CalendarClock = createLucideIcon("calendar-clock", __iconNode$lQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lP = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 14h.01", key: "6423bh" }],
  ["path", { d: "M12 14h.01", key: "1etili" }],
  ["path", { d: "M16 14h.01", key: "1gbofw" }],
  ["path", { d: "M8 18h.01", key: "lrp35t" }],
  ["path", { d: "M12 18h.01", key: "mhygvu" }],
  ["path", { d: "M16 18h.01", key: "kzsmim" }]
];
const CalendarDays = createLucideIcon("calendar-days", __iconNode$lP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lO = [
  [
    "path",
    {
      d: "M3 20a2 2 0 0 0 2 2h10a2.4 2.4 0 0 0 1.706-.706l3.588-3.588A2.4 2.4 0 0 0 21 16V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",
      key: "r586nh"
    }
  ],
  ["path", { d: "M15 22v-5a1 1 0 0 1 1-1h5", key: "xl3app" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M3 10h18", key: "8toen8" }]
];
const CalendarFold = createLucideIcon("calendar-fold", __iconNode$lO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lN = [
  [
    "path",
    { d: "M12.127 22H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.125", key: "vxdnp4" }
  ],
  [
    "path",
    {
      d: "M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z",
      key: "15cy7q"
    }
  ],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarHeart = createLucideIcon("calendar-heart", __iconNode$lN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lM = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M10 16h4", key: "17e571" }]
];
const CalendarMinus2 = createLucideIcon("calendar-minus-2", __iconNode$lM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lL = [
  ["path", { d: "M16 19h6", key: "xwg31i" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5", key: "1scpom" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarMinus = createLucideIcon("calendar-minus", __iconNode$lL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lK = [
  ["path", { d: "M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18", key: "16swn3" }],
  ["path", { d: "M21 15.5V6a2 2 0 0 0-2-2H9.5", key: "yhw86o" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M3 10h7", key: "1wap6i" }],
  ["path", { d: "M21 10h-5.5", key: "quycpq" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const CalendarOff = createLucideIcon("calendar-off", __iconNode$lK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lJ = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M10 16h4", key: "17e571" }],
  ["path", { d: "M12 14v4", key: "1thi36" }]
];
const CalendarPlus2 = createLucideIcon("calendar-plus-2", __iconNode$lJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lI = [
  ["path", { d: "M16 19h6", key: "xwg31i" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M19 16v6", key: "tddt3s" }],
  ["path", { d: "M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5", key: "1glfrc" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarPlus = createLucideIcon("calendar-plus", __iconNode$lI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lH = [
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M17 14h-6", key: "bkmgh3" }],
  ["path", { d: "M13 18H7", key: "bb0bb7" }],
  ["path", { d: "M7 14h.01", key: "1qa3f1" }],
  ["path", { d: "M17 18h.01", key: "1bdyru" }]
];
const CalendarRange = createLucideIcon("calendar-range", __iconNode$lH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lG = [
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25", key: "1jrsq6" }],
  ["path", { d: "m22 22-1.875-1.875", key: "13zax7" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const CalendarSearch = createLucideIcon("calendar-search", __iconNode$lG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lF = [
  ["path", { d: "M11 10v4h4", key: "172dkj" }],
  ["path", { d: "m11 14 1.535-1.605a5 5 0 0 1 8 1.5", key: "vu0qm5" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "m21 18-1.535 1.605a5 5 0 0 1-8-1.5", key: "1qgeyt" }],
  ["path", { d: "M21 22v-4h-4", key: "hrummi" }],
  ["path", { d: "M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3", key: "mctw84" }],
  ["path", { d: "M3 10h4", key: "1el30a" }],
  ["path", { d: "M8 2v4", key: "1cmpym" }]
];
const CalendarSync = createLucideIcon("calendar-sync", __iconNode$lF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lE = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8", key: "3spt84" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "m17 22 5-5", key: "1k6ppv" }],
  ["path", { d: "m17 17 5 5", key: "p7ous7" }]
];
const CalendarX2 = createLucideIcon("calendar-x-2", __iconNode$lE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lD = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }],
  ["path", { d: "m14 14-4 4", key: "rymu2i" }],
  ["path", { d: "m10 14 4 4", key: "3sz06r" }]
];
const CalendarX = createLucideIcon("calendar-x", __iconNode$lD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lC = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
  ["path", { d: "M3 10h18", key: "8toen8" }]
];
const Calendar = createLucideIcon("calendar", __iconNode$lC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lB = [
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M15.726 21.01A2 2 0 0 1 14 22H4a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2", key: "j6srht" }],
  ["path", { d: "M18 2v2", key: "1kh14s" }],
  ["path", { d: "M2 13h2", key: "13gyu8" }],
  ["path", { d: "M8 8h14", key: "12jxz2" }],
  ["rect", { x: "8", y: "3", width: "14", height: "14", rx: "2", key: "nsru6w" }]
];
const Calendars = createLucideIcon("calendars", __iconNode$lB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lA = [
  ["path", { d: "M14.564 14.558a3 3 0 1 1-4.122-4.121", key: "1rnrzw" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    { d: "M20 20H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 .819-.175", key: "1x3arw" }
  ],
  [
    "path",
    {
      d: "M9.695 4.024A2 2 0 0 1 10.004 4h3.993a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v7.344",
      key: "1i84u0"
    }
  ]
];
const CameraOff = createLucideIcon("camera-off", __iconNode$lA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lz = [
  [
    "path",
    {
      d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
      key: "18u6gg"
    }
  ],
  ["circle", { cx: "12", cy: "13", r: "3", key: "1vg3eu" }]
];
const Camera = createLucideIcon("camera", __iconNode$lz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ly = [
  [
    "path",
    {
      d: "M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z",
      key: "isaq8g"
    }
  ],
  ["path", { d: "M17.75 7 15 2.1", key: "12x7e8" }],
  ["path", { d: "M10.9 4.8 13 9", key: "100a87" }],
  ["path", { d: "m7.9 9.7 2 4.4", key: "ntfhaj" }],
  ["path", { d: "M4.9 14.7 7 18.9", key: "1x43jy" }]
];
const CandyCane = createLucideIcon("candy-cane", __iconNode$ly);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lx = [
  ["path", { d: "M10 10v7.9", key: "m8g9tt" }],
  ["path", { d: "M11.802 6.145a5 5 0 0 1 6.053 6.053", key: "dn87i3" }],
  ["path", { d: "M14 6.1v2.243", key: "1kzysn" }],
  [
    "path",
    { d: "m15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965", key: "3sxy18" }
  ],
  [
    "path",
    {
      d: "M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",
      key: "gpb6xx"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    {
      d: "M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",
      key: "qexcha"
    }
  ]
];
const CandyOff = createLucideIcon("candy-off", __iconNode$lx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lw = [
  ["path", { d: "M10 7v10.9", key: "1gynux" }],
  ["path", { d: "M14 6.1V17", key: "116kdf" }],
  [
    "path",
    {
      d: "M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4",
      key: "gpb6xx"
    }
  ],
  [
    "path",
    {
      d: "M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07",
      key: "1tsln4"
    }
  ],
  [
    "path",
    {
      d: "M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4",
      key: "qexcha"
    }
  ]
];
const Candy = createLucideIcon("candy", __iconNode$lw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lv = [
  ["path", { d: "M12 22v-4", key: "1utk9m" }],
  [
    "path",
    {
      d: "M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6",
      key: "1mezod"
    }
  ]
];
const Cannabis = createLucideIcon("cannabis", __iconNode$lv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lu = [
  ["path", { d: "M10.5 5H19a2 2 0 0 1 2 2v8.5", key: "jqtk4d" }],
  ["path", { d: "M17 11h-.5", key: "1961ue" }],
  ["path", { d: "M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2", key: "1keqsi" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M7 11h4", key: "1o1z6v" }],
  ["path", { d: "M7 15h2.5", key: "1ina1g" }]
];
const CaptionsOff = createLucideIcon("captions-off", __iconNode$lu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lt = [
  ["rect", { width: "18", height: "14", x: "3", y: "5", rx: "2", ry: "2", key: "12ruh7" }],
  ["path", { d: "M7 15h4M15 15h2M7 11h2M13 11h4", key: "1ueiar" }]
];
const Captions = createLucideIcon("captions", __iconNode$lt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ls = [
  [
    "path",
    { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8", key: "1imjwt" }
  ],
  ["path", { d: "M7 14h.01", key: "1qa3f1" }],
  ["path", { d: "M17 14h.01", key: "7oqj8z" }],
  ["rect", { width: "18", height: "8", x: "3", y: "10", rx: "2", key: "a7itu8" }],
  ["path", { d: "M5 18v2", key: "ppbyun" }],
  ["path", { d: "M19 18v2", key: "gy7782" }]
];
const CarFront = createLucideIcon("car-front", __iconNode$ls);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lr = [
  ["path", { d: "M10 2h4", key: "n1abiw" }],
  [
    "path",
    { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8", key: "1imjwt" }
  ],
  ["path", { d: "M7 14h.01", key: "1qa3f1" }],
  ["path", { d: "M17 14h.01", key: "7oqj8z" }],
  ["rect", { width: "18", height: "8", x: "3", y: "10", rx: "2", key: "a7itu8" }],
  ["path", { d: "M5 18v2", key: "ppbyun" }],
  ["path", { d: "M19 18v2", key: "gy7782" }]
];
const CarTaxiFront = createLucideIcon("car-taxi-front", __iconNode$lr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lq = [
  [
    "path",
    {
      d: "M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",
      key: "5owen"
    }
  ],
  ["circle", { cx: "7", cy: "17", r: "2", key: "u2ysq9" }],
  ["path", { d: "M9 17h6", key: "r8uit2" }],
  ["circle", { cx: "17", cy: "17", r: "2", key: "axvx0g" }]
];
const Car = createLucideIcon("car", __iconNode$lq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lp = [
  ["path", { d: "M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2", key: "19jm3t" }],
  ["path", { d: "M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2", key: "13hakp" }],
  ["path", { d: "M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9", key: "1crci8" }],
  ["circle", { cx: "8", cy: "19", r: "2", key: "t8fc5s" }]
];
const Caravan = createLucideIcon("caravan", __iconNode$lp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lo = [
  ["path", { d: "M12 14v4", key: "1thi36" }],
  [
    "path",
    {
      d: "M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z",
      key: "1o66bk"
    }
  ],
  ["path", { d: "M8 14h8", key: "1fgep2" }],
  ["rect", { x: "8", y: "10", width: "8", height: "8", rx: "1", key: "1aonk6" }]
];
const CardSim = createLucideIcon("card-sim", __iconNode$lo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ln = [
  [
    "path",
    {
      d: "M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46",
      key: "rfqxbe"
    }
  ],
  ["path", { d: "M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z", key: "6b25w4" }],
  ["path", { d: "M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z", key: "fn65lo" }]
];
const Carrot = createLucideIcon("carrot", __iconNode$ln);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lm = [
  ["path", { d: "M10 9v7", key: "ylp826" }],
  ["path", { d: "M14 6v10", key: "1jy4vg" }],
  ["circle", { cx: "17.5", cy: "12.5", r: "3.5", key: "1a9481" }],
  ["circle", { cx: "6.5", cy: "12.5", r: "3.5", key: "2jlv1r" }]
];
const CaseLower = createLucideIcon("case-lower", __iconNode$lm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ll = [
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
  ["path", { d: "M22 9v7", key: "pvm9v3" }],
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }],
  ["circle", { cx: "18.5", cy: "12.5", r: "3.5", key: "z97x68" }]
];
const CaseSensitive = createLucideIcon("case-sensitive", __iconNode$ll);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lk = [
  [
    "path",
    {
      d: "M15 11h4.5a1 1 0 0 1 0 5h-4a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h3a1 1 0 0 1 0 5",
      key: "nxs35"
    }
  ],
  ["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16", key: "d5nyq2" }],
  ["path", { d: "M3.304 13h6.392", key: "1q3zxz" }]
];
const CaseUpper = createLucideIcon("case-upper", __iconNode$lk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lj = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["circle", { cx: "8", cy: "10", r: "2", key: "1xl4ub" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["circle", { cx: "16", cy: "10", r: "2", key: "r14t7q" }],
  ["path", { d: "m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3", key: "l01ucn" }]
];
const CassetteTape = createLucideIcon("cassette-tape", __iconNode$lj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$li = [
  ["path", { d: "M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6", key: "3zrzxg" }],
  ["path", { d: "M2 12a9 9 0 0 1 8 8", key: "g6cvee" }],
  ["path", { d: "M2 16a5 5 0 0 1 4 4", key: "1y1dii" }],
  ["line", { x1: "2", x2: "2.01", y1: "20", y2: "20", key: "xu2jvo" }]
];
const Cast = createLucideIcon("cast", __iconNode$li);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lh = [
  ["path", { d: "M10 5V3", key: "1y54qe" }],
  ["path", { d: "M14 5V3", key: "m6isi" }],
  ["path", { d: "M15 21v-3a3 3 0 0 0-6 0v3", key: "lbp5hj" }],
  ["path", { d: "M18 3v8", key: "2ollhf" }],
  ["path", { d: "M18 5H6", key: "98imr9" }],
  ["path", { d: "M22 11H2", key: "1lmjae" }],
  ["path", { d: "M22 9v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9", key: "1rly83" }],
  ["path", { d: "M6 3v8", key: "csox7g" }]
];
const Castle = createLucideIcon("castle", __iconNode$lh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lg = [
  [
    "path",
    {
      d: "M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z",
      key: "x6xyqk"
    }
  ],
  ["path", { d: "M8 14v.5", key: "1nzgdb" }],
  ["path", { d: "M16 14v.5", key: "1lajdz" }],
  ["path", { d: "M11.25 16.25h1.5L12 17l-.75-.75Z", key: "12kq1m" }]
];
const Cat = createLucideIcon("cat", __iconNode$lg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lf = [
  [
    "path",
    {
      d: "M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",
      key: "ir91b5"
    }
  ],
  [
    "path",
    {
      d: "M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",
      key: "jlp8i1"
    }
  ],
  ["path", { d: "M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15", key: "19bib8" }],
  ["path", { d: "M2 21v-4", key: "l40lih" }],
  ["path", { d: "M7 9h.01", key: "19b3jx" }]
];
const Cctv = createLucideIcon("cctv", __iconNode$lf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$le = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  [
    "path",
    {
      d: "M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z",
      key: "q0gr47"
    }
  ]
];
const ChartArea = createLucideIcon("chart-area", __iconNode$le);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ld = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["rect", { x: "7", y: "13", width: "9", height: "4", rx: "1", key: "1iip1u" }],
  ["rect", { x: "7", y: "5", width: "12", height: "4", rx: "1", key: "1anskk" }]
];
const ChartBarBig = createLucideIcon("chart-bar-big", __iconNode$ld);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lc = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M7 11h8", key: "1feolt" }],
  ["path", { d: "M7 16h3", key: "ur6vzw" }],
  ["path", { d: "M7 6h12", key: "sz5b0d" }]
];
const ChartBarDecreasing = createLucideIcon("chart-bar-decreasing", __iconNode$lc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$lb = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M7 11h8", key: "1feolt" }],
  ["path", { d: "M7 16h12", key: "wsnu98" }],
  ["path", { d: "M7 6h3", key: "w9rmul" }]
];
const ChartBarIncreasing = createLucideIcon("chart-bar-increasing", __iconNode$lb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$la = [
  ["path", { d: "M11 13v4", key: "vyy2rb" }],
  ["path", { d: "M15 5v4", key: "1gx88a" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["rect", { x: "7", y: "13", width: "9", height: "4", rx: "1", key: "1iip1u" }],
  ["rect", { x: "7", y: "5", width: "12", height: "4", rx: "1", key: "1anskk" }]
];
const ChartBarStacked = createLucideIcon("chart-bar-stacked", __iconNode$la);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l9 = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M7 16h8", key: "srdodz" }],
  ["path", { d: "M7 11h12", key: "127s9w" }],
  ["path", { d: "M7 6h3", key: "w9rmul" }]
];
const ChartBar = createLucideIcon("chart-bar", __iconNode$l9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l8 = [
  ["path", { d: "M9 5v4", key: "14uxtq" }],
  ["rect", { width: "4", height: "6", x: "7", y: "9", rx: "1", key: "f4fvz0" }],
  ["path", { d: "M9 15v2", key: "r5rk32" }],
  ["path", { d: "M17 3v2", key: "1l2re6" }],
  ["rect", { width: "4", height: "8", x: "15", y: "5", rx: "1", key: "z38je5" }],
  ["path", { d: "M17 13v3", key: "5l0wba" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }]
];
const ChartCandlestick = createLucideIcon("chart-candlestick", __iconNode$l8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l7 = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["rect", { x: "15", y: "5", width: "4", height: "12", rx: "1", key: "q8uenq" }],
  ["rect", { x: "7", y: "8", width: "4", height: "9", rx: "1", key: "sr5ea" }]
];
const ChartColumnBig = createLucideIcon("chart-column-big", __iconNode$l7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l6 = [
  ["path", { d: "M13 17V9", key: "1fwyjl" }],
  ["path", { d: "M18 17v-3", key: "1sqioe" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M8 17V5", key: "1wzmnc" }]
];
const ChartColumnDecreasing = createLucideIcon("chart-column-decreasing", __iconNode$l6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l5 = [
  ["path", { d: "M13 17V9", key: "1fwyjl" }],
  ["path", { d: "M18 17V5", key: "sfb6ij" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M8 17v-3", key: "17ska0" }]
];
const ChartColumnIncreasing = createLucideIcon("chart-column-increasing", __iconNode$l5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l4 = [
  ["path", { d: "M11 13H7", key: "t0o9gq" }],
  ["path", { d: "M19 9h-4", key: "rera1j" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["rect", { x: "15", y: "5", width: "4", height: "12", rx: "1", key: "q8uenq" }],
  ["rect", { x: "7", y: "8", width: "4", height: "9", rx: "1", key: "sr5ea" }]
];
const ChartColumnStacked = createLucideIcon("chart-column-stacked", __iconNode$l4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l3 = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M18 17V9", key: "2bz60n" }],
  ["path", { d: "M13 17V5", key: "1frdt8" }],
  ["path", { d: "M8 17v-3", key: "17ska0" }]
];
const ChartColumn = createLucideIcon("chart-column", __iconNode$l3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l2 = [
  ["path", { d: "M10 6h8", key: "zvc2xc" }],
  ["path", { d: "M12 16h6", key: "yi5mkt" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M8 11h7", key: "wz2hg0" }]
];
const ChartGantt = createLucideIcon("chart-gantt", __iconNode$l2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l1 = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "m19 9-5 5-4-4-3 3", key: "2osh9i" }]
];
const ChartLine = createLucideIcon("chart-line", __iconNode$l1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l0 = [
  ["path", { d: "m13.11 7.664 1.78 2.672", key: "go2gg9" }],
  ["path", { d: "m14.162 12.788-3.324 1.424", key: "11x848" }],
  ["path", { d: "m20 4-6.06 1.515", key: "1wxxh7" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["circle", { cx: "12", cy: "6", r: "2", key: "1jj5th" }],
  ["circle", { cx: "16", cy: "12", r: "2", key: "4ma0v8" }],
  ["circle", { cx: "9", cy: "15", r: "2", key: "lf2ghp" }]
];
const ChartNetwork = createLucideIcon("chart-network", __iconNode$l0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k$ = [
  ["path", { d: "M5 21V3", key: "clc1r8" }],
  ["path", { d: "M12 21V9", key: "uvy0l4" }],
  ["path", { d: "M19 21v-6", key: "tkawy9" }]
];
const ChartNoAxesColumnDecreasing = createLucideIcon("chart-no-axes-column-decreasing", __iconNode$k$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k_ = [
  ["path", { d: "M5 21v-6", key: "1hz6c0" }],
  ["path", { d: "M12 21V9", key: "uvy0l4" }],
  ["path", { d: "M19 21V3", key: "11j9sm" }]
];
const ChartNoAxesColumnIncreasing = createLucideIcon("chart-no-axes-column-increasing", __iconNode$k_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kZ = [
  ["path", { d: "M5 21v-6", key: "1hz6c0" }],
  ["path", { d: "M12 21V3", key: "1lcnhd" }],
  ["path", { d: "M19 21V9", key: "unv183" }]
];
const ChartNoAxesColumn = createLucideIcon("chart-no-axes-column", __iconNode$kZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kY = [
  ["path", { d: "M6 5h12", key: "fvfigv" }],
  ["path", { d: "M4 12h10", key: "oujl3d" }],
  ["path", { d: "M12 19h8", key: "baeox8" }]
];
const ChartNoAxesGantt = createLucideIcon("chart-no-axes-gantt", __iconNode$kY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kX = [
  ["path", { d: "M12 16v5", key: "zza2cw" }],
  ["path", { d: "M16 14v7", key: "1g90b9" }],
  ["path", { d: "M20 10v11", key: "1iqoj0" }],
  [
    "path",
    { d: "m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15", key: "1fw8x9" }
  ],
  ["path", { d: "M4 18v3", key: "1yp0dc" }],
  ["path", { d: "M8 14v7", key: "n3cwzv" }]
];
const ChartNoAxesCombined = createLucideIcon("chart-no-axes-combined", __iconNode$kX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kW = [
  [
    "path",
    {
      d: "M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",
      key: "pzmjnu"
    }
  ],
  ["path", { d: "M21.21 15.89A10 10 0 1 1 8 2.83", key: "k2fpak" }]
];
const ChartPie = createLucideIcon("chart-pie", __iconNode$kW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kV = [
  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }],
  ["circle", { cx: "18.5", cy: "5.5", r: ".5", fill: "currentColor", key: "lysivs" }],
  ["circle", { cx: "11.5", cy: "11.5", r: ".5", fill: "currentColor", key: "byv1b8" }],
  ["circle", { cx: "7.5", cy: "16.5", r: ".5", fill: "currentColor", key: "nkw3mc" }],
  ["circle", { cx: "17.5", cy: "14.5", r: ".5", fill: "currentColor", key: "1gjh6j" }],
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }]
];
const ChartScatter = createLucideIcon("chart-scatter", __iconNode$kV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kU = [
  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
  ["path", { d: "M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7", key: "lw07rv" }]
];
const ChartSpline = createLucideIcon("chart-spline", __iconNode$kU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kT = [
  ["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
  ["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
];
const CheckCheck = createLucideIcon("check-check", __iconNode$kT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kS = [
  ["path", { d: "M20 4L9 15", key: "1qkx8z" }],
  ["path", { d: "M21 19L3 19", key: "100sma" }],
  ["path", { d: "M9 15L4 10", key: "9zxff7" }]
];
const CheckLine = createLucideIcon("check-line", __iconNode$kS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kR = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
const Check = createLucideIcon("check", __iconNode$kR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kQ = [
  [
    "path",
    {
      d: "M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z",
      key: "1qvrer"
    }
  ],
  ["path", { d: "M6 17h12", key: "1jwigz" }]
];
const ChefHat = createLucideIcon("chef-hat", __iconNode$kQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kP = [
  ["path", { d: "M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z", key: "cvxqlc" }],
  ["path", { d: "M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z", key: "1ostrc" }],
  ["path", { d: "M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12", key: "hqx58h" }],
  ["path", { d: "M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z", key: "eykp1o" }]
];
const Cherry = createLucideIcon("cherry", __iconNode$kP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kO = [
  [
    "path",
    { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z", key: "b89hwq" }
  ],
  [
    "path",
    {
      d: "M15 18c1.5-.615 3-2.461 3-4.923C18 8.769 14.5 4.462 12 2 9.5 4.462 6 8.77 6 13.077 6 15.539 7.5 17.385 9 18",
      key: "8jdkhx"
    }
  ],
  ["path", { d: "m16 7-2.5 2.5", key: "1jq90w" }],
  ["path", { d: "M9 2h6", key: "1jrp98" }]
];
const ChessBishop = createLucideIcon("chess-bishop", __iconNode$kO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kN = [
  [
    "path",
    { d: "M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z", key: "mqzwx6" }
  ],
  [
    "path",
    {
      d: "m6.7 18-1-1C4.35 15.682 3 14.09 3 12a5 5 0 0 1 4.95-5c1.584 0 2.7.455 4.05 1.818C13.35 7.455 14.466 7 16.05 7A5 5 0 0 1 21 12c0 2.082-1.359 3.673-2.7 5l-1 1",
      key: "1gdt1g"
    }
  ],
  ["path", { d: "M10 4h4", key: "1xpv9s" }],
  ["path", { d: "M12 2v6.818", key: "b17a49" }]
];
const ChessKing = createLucideIcon("chess-king", __iconNode$kN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kM = [
  [
    "path",
    { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z", key: "b89hwq" }
  ],
  ["path", { d: "m14.5 10 1.5 8", key: "cim3qy" }],
  ["path", { d: "M7 10h10", key: "1101jm" }],
  ["path", { d: "m8 18 1.5-8", key: "ja3yjd" }],
  ["circle", { cx: "12", cy: "6", r: "4", key: "1frrej" }]
];
const ChessPawn = createLucideIcon("chess-pawn", __iconNode$kM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kL = [
  [
    "path",
    { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z", key: "b89hwq" }
  ],
  [
    "path",
    {
      d: "M16.5 18c1-2 2.5-5 2.5-9a7 7 0 0 0-7-7H6.635a1 1 0 0 0-.768 1.64L7 5l-2.32 5.802a2 2 0 0 0 .95 2.526l2.87 1.456",
      key: "axbnlq"
    }
  ],
  ["path", { d: "m15 5 1.425-1.425", key: "15xz8w" }],
  ["path", { d: "m17 8 1.53-1.53", key: "15zhqh" }],
  ["path", { d: "M9.713 12.185 7 18", key: "1ocm0l" }]
];
const ChessKnight = createLucideIcon("chess-knight", __iconNode$kL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kK = [
  [
    "path",
    { d: "M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z", key: "mqzwx6" }
  ],
  ["path", { d: "m12.474 5.943 1.567 5.34a1 1 0 0 0 1.75.328l2.616-3.402", key: "1js4gl" }],
  ["path", { d: "m20 9-3 9", key: "r75r3f" }],
  ["path", { d: "m5.594 8.209 2.615 3.403a1 1 0 0 0 1.75-.329l1.567-5.34", key: "1joj19" }],
  ["path", { d: "M7 18 4 9", key: "1mfzj8" }],
  ["circle", { cx: "12", cy: "4", r: "2", key: "muu5ef" }],
  ["circle", { cx: "20", cy: "7", r: "2", key: "9w7p1x" }],
  ["circle", { cx: "4", cy: "7", r: "2", key: "1d9wy8" }]
];
const ChessQueen = createLucideIcon("chess-queen", __iconNode$kK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kJ = [
  [
    "path",
    { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z", key: "b89hwq" }
  ],
  ["path", { d: "M10 2v2", key: "7u0qdc" }],
  ["path", { d: "M14 2v2", key: "6buw04" }],
  ["path", { d: "m17 18-1-9", key: "10nd7q" }],
  ["path", { d: "M6 2v5a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2", key: "uxf4yx" }],
  ["path", { d: "M6 4h12", key: "1x2ag7" }],
  ["path", { d: "m7 18 1-9", key: "1si9vq" }]
];
const ChessRook = createLucideIcon("chess-rook", __iconNode$kJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kI = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
const ChevronDown = createLucideIcon("chevron-down", __iconNode$kI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kH = [
  ["path", { d: "m17 18-6-6 6-6", key: "1yerx2" }],
  ["path", { d: "M7 6v12", key: "1p53r6" }]
];
const ChevronFirst = createLucideIcon("chevron-first", __iconNode$kH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kG = [
  ["path", { d: "m7 18 6-6-6-6", key: "lwmzdw" }],
  ["path", { d: "M17 6v12", key: "1o0aio" }]
];
const ChevronLast = createLucideIcon("chevron-last", __iconNode$kG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kF = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
const ChevronRight = createLucideIcon("chevron-right", __iconNode$kF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kE = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$kE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kD = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
const ChevronUp = createLucideIcon("chevron-up", __iconNode$kD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kC = [
  ["path", { d: "m7 20 5-5 5 5", key: "13a0gw" }],
  ["path", { d: "m7 4 5 5 5-5", key: "1kwcof" }]
];
const ChevronsDownUp = createLucideIcon("chevrons-down-up", __iconNode$kC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kB = [
  ["path", { d: "m7 6 5 5 5-5", key: "1lc07p" }],
  ["path", { d: "m7 13 5 5 5-5", key: "1d48rs" }]
];
const ChevronsDown = createLucideIcon("chevrons-down", __iconNode$kB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kA = [
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M16 12h.01", key: "1l6xoz" }],
  ["path", { d: "m17 7 5 5-5 5", key: "1xlxn0" }],
  ["path", { d: "m7 7-5 5 5 5", key: "19njba" }],
  ["path", { d: "M8 12h.01", key: "czm47f" }]
];
const ChevronsLeftRightEllipsis = createLucideIcon("chevrons-left-right-ellipsis", __iconNode$kA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kz = [
  ["path", { d: "m9 7-5 5 5 5", key: "j5w590" }],
  ["path", { d: "m15 7 5 5-5 5", key: "1bl6da" }]
];
const ChevronsLeftRight = createLucideIcon("chevrons-left-right", __iconNode$kz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ky = [
  ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
  ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
];
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$ky);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kx = [
  ["path", { d: "m20 17-5-5 5-5", key: "30x0n2" }],
  ["path", { d: "m4 17 5-5-5-5", key: "16spf4" }]
];
const ChevronsRightLeft = createLucideIcon("chevrons-right-left", __iconNode$kx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kw = [
  ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
  ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
];
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$kw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kv = [
  ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
  ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
];
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$kv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ku = [
  ["path", { d: "m17 11-5-5-5 5", key: "e8nh98" }],
  ["path", { d: "m17 18-5-5-5 5", key: "2avn1x" }]
];
const ChevronsUp = createLucideIcon("chevrons-up", __iconNode$ku);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kt = [
  ["path", { d: "M10.88 21.94 15.46 14", key: "xkve6t" }],
  ["path", { d: "M21.17 8H12", key: "19dcdn" }],
  ["path", { d: "M3.95 6.06 8.54 14", key: "g8jz9m" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
];
const Chromium = createLucideIcon("chromium", __iconNode$kt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ks = [
  ["path", { d: "M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13", key: "1gdiyg" }],
  ["path", { d: "M18 8c0-2.5-2-2.5-2-5", key: "1il607" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866", key: "166zjj" }],
  ["path", { d: "M22 8c0-2.5-2-2.5-2-5", key: "1gah44" }],
  ["path", { d: "M7 12v4", key: "jqww69" }]
];
const CigaretteOff = createLucideIcon("cigarette-off", __iconNode$ks);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kr = [
  ["path", { d: "M10 9h4", key: "u4k05v" }],
  ["path", { d: "M12 7v5", key: "ma6bk" }],
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
  [
    "path",
    {
      d: "m18 9 3.52 2.147a1 1 0 0 1 .48.854V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6.999a1 1 0 0 1 .48-.854L6 9",
      key: "flvdwo"
    }
  ],
  [
    "path",
    {
      d: "M6 21V7a1 1 0 0 1 .376-.782l5-3.999a1 1 0 0 1 1.249.001l5 4A1 1 0 0 1 18 7v14",
      key: "a5i0n2"
    }
  ]
];
const Church = createLucideIcon("church", __iconNode$kr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kq = [
  ["path", { d: "M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14", key: "1mb5g1" }],
  ["path", { d: "M18 8c0-2.5-2-2.5-2-5", key: "1il607" }],
  ["path", { d: "M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1", key: "1yl5r7" }],
  ["path", { d: "M22 8c0-2.5-2-2.5-2-5", key: "1gah44" }],
  ["path", { d: "M7 12v4", key: "jqww69" }]
];
const Cigarette = createLucideIcon("cigarette", __iconNode$kq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kp = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
];
const CircleAlert = createLucideIcon("circle-alert", __iconNode$kp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ko = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M12 8v8", key: "napkw2" }],
  ["path", { d: "m8 12 4 4 4-4", key: "k98ssh" }]
];
const CircleArrowDown = createLucideIcon("circle-arrow-down", __iconNode$ko);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kn = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m12 8-4 4 4 4", key: "15vm53" }],
  ["path", { d: "M16 12H8", key: "1fr5h0" }]
];
const CircleArrowLeft = createLucideIcon("circle-arrow-left", __iconNode$kn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$km = [
  ["path", { d: "M2 12a10 10 0 1 1 10 10", key: "1yn6ov" }],
  ["path", { d: "m2 22 10-10", key: "28ilpk" }],
  ["path", { d: "M8 22H2v-6", key: "sulq54" }]
];
const CircleArrowOutDownLeft = createLucideIcon("circle-arrow-out-down-left", __iconNode$km);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kl = [
  ["path", { d: "M12 22a10 10 0 1 1 10-10", key: "130bv5" }],
  ["path", { d: "M22 22 12 12", key: "131aw7" }],
  ["path", { d: "M22 16v6h-6", key: "1gvm70" }]
];
const CircleArrowOutDownRight = createLucideIcon("circle-arrow-out-down-right", __iconNode$kl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kk = [
  ["path", { d: "M2 8V2h6", key: "hiwtdz" }],
  ["path", { d: "m2 2 10 10", key: "1oh8rs" }],
  ["path", { d: "M12 2A10 10 0 1 1 2 12", key: "rrk4fa" }]
];
const CircleArrowOutUpLeft = createLucideIcon("circle-arrow-out-up-left", __iconNode$kk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kj = [
  ["path", { d: "M22 12A10 10 0 1 1 12 2", key: "1fm58d" }],
  ["path", { d: "M22 2 12 12", key: "yg2myt" }],
  ["path", { d: "M16 2h6v6", key: "zan5cs" }]
];
const CircleArrowOutUpRight = createLucideIcon("circle-arrow-out-up-right", __iconNode$kj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ki = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m12 16 4-4-4-4", key: "1i9zcv" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const CircleArrowRight = createLucideIcon("circle-arrow-right", __iconNode$ki);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kh = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
  ["path", { d: "M12 16V8", key: "1sbj14" }]
];
const CircleArrowUp = createLucideIcon("circle-arrow-up", __iconNode$kh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kg = [
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
];
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$kg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kf = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
];
const CircleCheck = createLucideIcon("circle-check", __iconNode$kf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ke = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m16 10-4 4-4-4", key: "894hmk" }]
];
const CircleChevronDown = createLucideIcon("circle-chevron-down", __iconNode$ke);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kd = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m14 16-4-4 4-4", key: "ojs7w8" }]
];
const CircleChevronLeft = createLucideIcon("circle-chevron-left", __iconNode$kd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kc = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m10 8 4 4-4 4", key: "1wy4r4" }]
];
const CircleChevronRight = createLucideIcon("circle-chevron-right", __iconNode$kc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$kb = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m8 14 4-4 4 4", key: "fy2ptz" }]
];
const CircleChevronUp = createLucideIcon("circle-chevron-up", __iconNode$kb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ka = [
  ["path", { d: "M10.1 2.182a10 10 0 0 1 3.8 0", key: "5ilxe3" }],
  ["path", { d: "M13.9 21.818a10 10 0 0 1-3.8 0", key: "11zvb9" }],
  ["path", { d: "M17.609 3.721a10 10 0 0 1 2.69 2.7", key: "1iw5b2" }],
  ["path", { d: "M2.182 13.9a10 10 0 0 1 0-3.8", key: "c0bmvh" }],
  ["path", { d: "M20.279 17.609a10 10 0 0 1-2.7 2.69", key: "1ruxm7" }],
  ["path", { d: "M21.818 10.1a10 10 0 0 1 0 3.8", key: "qkgqxc" }],
  ["path", { d: "M3.721 6.391a10 10 0 0 1 2.7-2.69", key: "1mcia2" }],
  ["path", { d: "M6.391 20.279a10 10 0 0 1-2.69-2.7", key: "1fvljs" }]
];
const CircleDashed = createLucideIcon("circle-dashed", __iconNode$ka);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k9 = [
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }],
  ["line", { x1: "12", x2: "12", y1: "16", y2: "16", key: "aqc6ln" }],
  ["line", { x1: "12", x2: "12", y1: "8", y2: "8", key: "1mkcni" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CircleDivide = createLucideIcon("circle-divide", __iconNode$k9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k8 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8", key: "1h4pet" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }]
];
const CircleDollarSign = createLucideIcon("circle-dollar-sign", __iconNode$k8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k7 = [
  ["path", { d: "M10.1 2.18a9.93 9.93 0 0 1 3.8 0", key: "1qdqn0" }],
  ["path", { d: "M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7", key: "1bq7p6" }],
  ["path", { d: "M21.82 10.1a9.93 9.93 0 0 1 0 3.8", key: "1rlaqf" }],
  ["path", { d: "M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69", key: "1xk03u" }],
  ["path", { d: "M13.9 21.82a9.94 9.94 0 0 1-3.8 0", key: "l7re25" }],
  ["path", { d: "M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7", key: "1v18p6" }],
  ["path", { d: "M2.18 13.9a9.93 9.93 0 0 1 0-3.8", key: "xdo6bj" }],
  ["path", { d: "M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69", key: "1jjmaz" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
];
const CircleDotDashed = createLucideIcon("circle-dot-dashed", __iconNode$k7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k6 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
];
const CircleDot = createLucideIcon("circle-dot", __iconNode$k6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k5 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M17 12h.01", key: "1m0b6t" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M7 12h.01", key: "eqddd0" }]
];
const CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode$k5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k4 = [
  ["path", { d: "M7 10h10", key: "1101jm" }],
  ["path", { d: "M7 14h10", key: "1mhdw3" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CircleEqual = createLucideIcon("circle-equal", __iconNode$k4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k3 = [
  ["path", { d: "M12 2a10 10 0 0 1 7.38 16.75", key: "175t95" }],
  ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
  ["path", { d: "M12 16V8", key: "1sbj14" }],
  ["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3", key: "1vce0s" }],
  ["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4", key: "o3fkw4" }],
  ["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857", key: "1szpfk" }],
  ["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38", key: "9yhvd4" }]
];
const CircleFadingArrowUp = createLucideIcon("circle-fading-arrow-up", __iconNode$k3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k2 = [
  ["path", { d: "M12 2a10 10 0 0 1 7.38 16.75", key: "175t95" }],
  ["path", { d: "M12 8v8", key: "napkw2" }],
  ["path", { d: "M16 12H8", key: "1fr5h0" }],
  ["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3", key: "1vce0s" }],
  ["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4", key: "o3fkw4" }],
  ["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857", key: "1szpfk" }],
  ["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38", key: "9yhvd4" }]
];
const CircleFadingPlus = createLucideIcon("circle-fading-plus", __iconNode$k2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k1 = [
  ["path", { d: "M15.6 2.7a10 10 0 1 0 5.7 5.7", key: "1e0p6d" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["path", { d: "M13.4 10.6 19 5", key: "1kr7tw" }]
];
const CircleGauge = createLucideIcon("circle-gauge", __iconNode$k1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k0 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const CircleMinus = createLucideIcon("circle-minus", __iconNode$k0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j$ = [
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M8.35 2.69A10 10 0 0 1 21.3 15.65", key: "1pfsoa" }],
  ["path", { d: "M19.08 19.08A10 10 0 1 1 4.92 4.92", key: "1ablyi" }]
];
const CircleOff = createLucideIcon("circle-off", __iconNode$j$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j_ = [
  ["path", { d: "M12.656 7H13a3 3 0 0 1 2.984 3.307", key: "1sjx87" }],
  ["path", { d: "M13 13H9", key: "e2beee" }],
  ["path", { d: "M19.071 19.071A1 1 0 0 1 4.93 4.93", key: "1kb595" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M8.357 2.687a10 10 0 0 1 12.956 12.956", key: "5bsfdx" }],
  ["path", { d: "M9 17V9", key: "ojradj" }]
];
const CircleParkingOff = createLucideIcon("circle-parking-off", __iconNode$j_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jZ = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M9 17V7h4a3 3 0 0 1 0 6H9", key: "1dfk2c" }]
];
const CircleParking = createLucideIcon("circle-parking", __iconNode$jZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jY = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["line", { x1: "10", x2: "10", y1: "15", y2: "9", key: "c1nkhi" }],
  ["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
];
const CirclePause = createLucideIcon("circle-pause", __iconNode$jY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jX = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["path", { d: "M15 15h.01", key: "lqbp3k" }]
];
const CirclePercent = createLucideIcon("circle-percent", __iconNode$jX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jW = [
  [
    "path",
    {
      d: "M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",
      key: "kmsa83"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CirclePlay = createLucideIcon("circle-play", __iconNode$jW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jV = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "M12 8v8", key: "napkw2" }]
];
const CirclePlus = createLucideIcon("circle-plus", __iconNode$jV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jU = [
  ["path", { d: "M10 16V9.5a1 1 0 0 1 5 0", key: "1i1are" }],
  ["path", { d: "M8 12h4", key: "qz6y1c" }],
  ["path", { d: "M8 16h7", key: "sbedsn" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CirclePoundSterling = createLucideIcon("circle-pound-sterling", __iconNode$jU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jT = [
  ["path", { d: "M12 7v4", key: "xawao1" }],
  ["path", { d: "M7.998 9.003a5 5 0 1 0 8-.005", key: "1pek45" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CirclePower = createLucideIcon("circle-power", __iconNode$jT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jS = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }]
];
const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$jS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jR = [
  ["path", { d: "M22 2 2 22", key: "y4kqgn" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CircleSlash2 = createLucideIcon("circle-slash-2", __iconNode$jR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jQ = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
];
const CircleSlash = createLucideIcon("circle-slash", __iconNode$jQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jP = [["circle", { cx: "12", cy: "12", r: "6", key: "1vlfrh" }]];
const CircleSmall = createLucideIcon("circle-small", __iconNode$jP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jO = [
  [
    "path",
    {
      d: "M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z",
      key: "285bvi"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CircleStar = createLucideIcon("circle-star", __iconNode$jO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jN = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
];
const CircleStop = createLucideIcon("circle-stop", __iconNode$jN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jM = [
  ["path", { d: "M18 20a6 6 0 0 0-12 0", key: "1qehca" }],
  ["circle", { cx: "12", cy: "10", r: "4", key: "1h16sb" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const CircleUserRound = createLucideIcon("circle-user-round", __iconNode$jM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jL = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662", key: "154egf" }]
];
const CircleUser = createLucideIcon("circle-user", __iconNode$jL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jK = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
];
const CircleX = createLucideIcon("circle-x", __iconNode$jK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jJ = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
const Circle = createLucideIcon("circle", __iconNode$jJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jI = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M11 9h4a2 2 0 0 0 2-2V3", key: "1ve2rv" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
  ["path", { d: "M7 21v-4a2 2 0 0 1 2-2h4", key: "1fwkro" }],
  ["circle", { cx: "15", cy: "15", r: "2", key: "3i40o0" }]
];
const CircuitBoard = createLucideIcon("circuit-board", __iconNode$jI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jH = [
  [
    "path",
    {
      d: "M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z",
      key: "4ite01"
    }
  ],
  ["path", { d: "M19.65 15.66A8 8 0 0 1 8.35 4.34", key: "1gxipu" }],
  ["path", { d: "m14 10-5.5 5.5", key: "92pfem" }],
  ["path", { d: "M14 17.85V10H6.15", key: "xqmtsk" }]
];
const Citrus = createLucideIcon("citrus", __iconNode$jH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jG = [
  [
    "path",
    { d: "M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z", key: "1tn4o7" }
  ],
  ["path", { d: "m6.2 5.3 3.1 3.9", key: "iuk76l" }],
  ["path", { d: "m12.4 3.4 3.1 4", key: "6hsd6n" }],
  ["path", { d: "M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z", key: "ltgou9" }]
];
const Clapperboard = createLucideIcon("clapperboard", __iconNode$jG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jF = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "m9 14 2 2 4-4", key: "df797q" }]
];
const ClipboardCheck = createLucideIcon("clipboard-check", __iconNode$jF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jE = [
  ["path", { d: "M16 14v2.2l1.6 1", key: "fo4ql5" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v.832", key: "1ujtp2" }],
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2", key: "qvpao1" }],
  ["circle", { cx: "16", cy: "16", r: "6", key: "qoo3c4" }],
  ["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
];
const ClipboardClock = createLucideIcon("clipboard-clock", __iconNode$jE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jD = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2", key: "4jdomd" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v4", key: "3hqy98" }],
  ["path", { d: "M21 14H11", key: "1bme5i" }],
  ["path", { d: "m15 10-4 4 4 4", key: "5dvupr" }]
];
const ClipboardCopy = createLucideIcon("clipboard-copy", __iconNode$jD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jC = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "M12 11h4", key: "1jrz19" }],
  ["path", { d: "M12 16h4", key: "n85exb" }],
  ["path", { d: "M8 11h.01", key: "1dfujw" }],
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
];
const ClipboardList = createLucideIcon("clipboard-list", __iconNode$jC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jB = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "M9 14h6", key: "159ibu" }]
];
const ClipboardMinus = createLucideIcon("clipboard-minus", __iconNode$jB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jA = [
  ["path", { d: "M11 14h10", key: "1w8e9d" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344", key: "1e62lh" }],
  ["path", { d: "m17 18 4-4-4-4", key: "z2g111" }],
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113", key: "bjbb7m" }],
  ["rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", key: "ublpy" }]
];
const ClipboardPaste = createLucideIcon("clipboard-paste", __iconNode$jA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jz = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", key: "1oijnt" }],
  ["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5", key: "1but9f" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 1.73 1", key: "1p8n7l" }],
  ["path", { d: "M8 18h1", key: "13wk12" }],
  [
    "path",
    {
      d: "M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "2t3380"
    }
  ]
];
const ClipboardPenLine = createLucideIcon("clipboard-pen-line", __iconNode$jz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jy = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", key: "1oijnt" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5", key: "cereej" }],
  ["path", { d: "M4 13.5V6a2 2 0 0 1 2-2h2", key: "5ua5vh" }],
  [
    "path",
    {
      d: "M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1y4qbx"
    }
  ]
];
const ClipboardPen = createLucideIcon("clipboard-pen", __iconNode$jy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jx = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "M9 14h6", key: "159ibu" }],
  ["path", { d: "M12 17v-6", key: "1y8rbf" }]
];
const ClipboardPlus = createLucideIcon("clipboard-plus", __iconNode$jx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jw = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "M9 12v-1h6v1", key: "iehl6m" }],
  ["path", { d: "M11 17h2", key: "12w5me" }],
  ["path", { d: "M12 11v6", key: "1bwqyc" }]
];
const ClipboardType = createLucideIcon("clipboard-type", __iconNode$jw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jv = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ],
  ["path", { d: "m15 11-6 6", key: "1toa9n" }],
  ["path", { d: "m9 11 6 6", key: "wlibny" }]
];
const ClipboardX = createLucideIcon("clipboard-x", __iconNode$jv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ju = [
  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
  [
    "path",
    {
      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
      key: "116196"
    }
  ]
];
const Clipboard = createLucideIcon("clipboard", __iconNode$ju);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jt = [
  ["path", { d: "M12 6v6l2-4", key: "miptyd" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock1 = createLucideIcon("clock-1", __iconNode$jt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$js = [
  ["path", { d: "M12 6v6l-4-2", key: "cedpoo" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock10 = createLucideIcon("clock-10", __iconNode$js);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jr = [
  ["path", { d: "M12 6v6l-2-4", key: "ns39ag" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock11 = createLucideIcon("clock-11", __iconNode$jr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jq = [
  ["path", { d: "M12 6v6", key: "1ipuwl" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock12 = createLucideIcon("clock-12", __iconNode$jq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jp = [
  ["path", { d: "M12 6v6l4-2", key: "1r2kuh" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock2 = createLucideIcon("clock-2", __iconNode$jp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jo = [
  ["path", { d: "M12 6v6h4", key: "135r8i" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock3 = createLucideIcon("clock-3", __iconNode$jo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jn = [
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock4 = createLucideIcon("clock-4", __iconNode$jn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jm = [
  ["path", { d: "M12 6v6l2 4", key: "1287s9" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock5 = createLucideIcon("clock-5", __iconNode$jm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jl = [
  ["path", { d: "M12 6v10", key: "wf7rdh" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock6 = createLucideIcon("clock-6", __iconNode$jl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jk = [
  ["path", { d: "M12 6v6l-2 4", key: "1095bu" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock7 = createLucideIcon("clock-7", __iconNode$jk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jj = [
  ["path", { d: "M12 6v6l-4 2", key: "imc3wl" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock8 = createLucideIcon("clock-8", __iconNode$jj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ji = [
  ["path", { d: "M12 6v6H8", key: "u39vzm" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock9 = createLucideIcon("clock-9", __iconNode$ji);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jh = [
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
  ["path", { d: "M20 12v5", key: "12wsvk" }],
  ["path", { d: "M20 21h.01", key: "1p6o6n" }],
  ["path", { d: "M21.25 8.2A10 10 0 1 0 16 21.16", key: "17fp9f" }]
];
const ClockAlert = createLucideIcon("clock-alert", __iconNode$jh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jg = [
  ["path", { d: "M12 6v6l2 1", key: "19cm8n" }],
  ["path", { d: "M12.337 21.994a10 10 0 1 1 9.588-8.767", key: "28moa" }],
  ["path", { d: "m14 18 4 4 4-4", key: "1waygx" }],
  ["path", { d: "M18 14v8", key: "irew45" }]
];
const ClockArrowDown = createLucideIcon("clock-arrow-down", __iconNode$jg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jf = [
  ["path", { d: "M12 6v6l1.56.78", key: "14ed3g" }],
  ["path", { d: "M13.227 21.925a10 10 0 1 1 8.767-9.588", key: "jwkls1" }],
  ["path", { d: "m14 18 4-4 4 4", key: "ftkppy" }],
  ["path", { d: "M18 22v-8", key: "su0gjh" }]
];
const ClockArrowUp = createLucideIcon("clock-arrow-up", __iconNode$jf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$je = [
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
  ["path", { d: "M22 12a10 10 0 1 0-11 9.95", key: "17dhok" }],
  ["path", { d: "m22 16-5.5 5.5L14 19", key: "1eibut" }]
];
const ClockCheck = createLucideIcon("clock-check", __iconNode$je);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jd = [
  ["path", { d: "M12 2a10 10 0 0 1 7.38 16.75", key: "175t95" }],
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
  ["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3", key: "1vce0s" }],
  ["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4", key: "o3fkw4" }],
  ["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857", key: "1szpfk" }],
  ["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38", key: "9yhvd4" }]
];
const ClockFading = createLucideIcon("clock-fading", __iconNode$jd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jc = [
  ["path", { d: "M12 6v6l3.644 1.822", key: "1jmett" }],
  ["path", { d: "M16 19h6", key: "xwg31i" }],
  ["path", { d: "M19 16v6", key: "tddt3s" }],
  ["path", { d: "M21.92 13.267a10 10 0 1 0-8.653 8.653", key: "1u0osk" }]
];
const ClockPlus = createLucideIcon("clock-plus", __iconNode$jc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$jb = [
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Clock = createLucideIcon("clock", __iconNode$jb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ja = [
  ["path", { d: "M10 9.17a3 3 0 1 0 0 5.66", key: "h9wayk" }],
  ["path", { d: "M17 9.17a3 3 0 1 0 0 5.66", key: "1v6zke" }],
  ["rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", key: "qneu4z" }]
];
const ClosedCaption = createLucideIcon("closed-caption", __iconNode$ja);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j9 = [
  ["path", { d: "M12 12v4", key: "tww15h" }],
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M17 18h.5a1 1 0 0 0 0-9h-1.79A7 7 0 1 0 7 17.708", key: "xsb5ju" }]
];
const CloudAlert = createLucideIcon("cloud-alert", __iconNode$j9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j8 = [
  ["path", { d: "m10.852 19.772-.383.924", key: "r7sl7d" }],
  ["path", { d: "m13.148 14.228.383-.923", key: "1d5zpm" }],
  ["path", { d: "M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923", key: "1ydik7" }],
  ["path", { d: "m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544", key: "1m1vsf" }],
  ["path", { d: "m14.772 15.852.923-.383", key: "660p6e" }],
  ["path", { d: "m14.772 18.148.923.383", key: "hrcpis" }],
  [
    "path",
    {
      d: "M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2",
      key: "j2q98n"
    }
  ],
  ["path", { d: "m9.228 15.852-.923-.383", key: "1p9ong" }],
  ["path", { d: "m9.228 18.148-.923.383", key: "6558rz" }]
];
const CloudCog = createLucideIcon("cloud-cog", __iconNode$j8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j7 = [
  ["path", { d: "m17 15-5.5 5.5L9 18", key: "15q87x" }],
  ["path", { d: "M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742", key: "9ho6ki" }]
];
const CloudCheck = createLucideIcon("cloud-check", __iconNode$j7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j6 = [
  ["path", { d: "M12 13v8l-4-4", key: "1f5nwf" }],
  ["path", { d: "m12 21 4-4", key: "1lfcce" }],
  ["path", { d: "M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284", key: "ui1hmy" }]
];
const CloudDownload = createLucideIcon("cloud-download", __iconNode$j6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j5 = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "M8 19v1", key: "1dk2by" }],
  ["path", { d: "M8 14v1", key: "84yxot" }],
  ["path", { d: "M16 19v1", key: "v220m7" }],
  ["path", { d: "M16 14v1", key: "g12gj6" }],
  ["path", { d: "M12 21v1", key: "q8vafk" }],
  ["path", { d: "M12 16v1", key: "1mx6rx" }]
];
const CloudDrizzle = createLucideIcon("cloud-drizzle", __iconNode$j5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j4 = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "M16 17H7", key: "pygtm1" }],
  ["path", { d: "M17 21H9", key: "1u2q02" }]
];
const CloudFog = createLucideIcon("cloud-fog", __iconNode$j4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j3 = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "M16 14v2", key: "a1is7l" }],
  ["path", { d: "M8 14v2", key: "1e9m6t" }],
  ["path", { d: "M16 20h.01", key: "xwek51" }],
  ["path", { d: "M8 20h.01", key: "1vjney" }],
  ["path", { d: "M12 16v2", key: "z66u1j" }],
  ["path", { d: "M12 22h.01", key: "1urd7a" }]
];
const CloudHail = createLucideIcon("cloud-hail", __iconNode$j3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j2 = [
  ["path", { d: "M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973", key: "1cez44" }],
  ["path", { d: "m13 12-3 5h4l-3 5", key: "1t22er" }]
];
const CloudLightning = createLucideIcon("cloud-lightning", __iconNode$j2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j1 = [
  ["path", { d: "M11 20v2", key: "174qtz" }],
  [
    "path",
    {
      d: "M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36",
      key: "zwnc1e"
    }
  ],
  ["path", { d: "M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24", key: "1qmrp3" }],
  ["path", { d: "M7 19v2", key: "12npes" }]
];
const CloudMoonRain = createLucideIcon("cloud-moon-rain", __iconNode$j1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j0 = [
  ["path", { d: "M13 16a3 3 0 0 1 0 6H7a5 5 0 1 1 4.9-6z", key: "ie2ih4" }],
  [
    "path",
    {
      d: "M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36",
      key: "zwnc1e"
    }
  ]
];
const CloudMoon = createLucideIcon("cloud-moon", __iconNode$j0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i$ = [
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193", key: "yfwify" }],
  [
    "path",
    { d: "M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07", key: "jlfiyv" }
  ]
];
const CloudOff = createLucideIcon("cloud-off", __iconNode$i$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i_ = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "m9.2 22 3-7", key: "sb5f6j" }],
  ["path", { d: "m9 13-3 7", key: "500co5" }],
  ["path", { d: "m17 13-3 7", key: "8t2fiy" }]
];
const CloudRainWind = createLucideIcon("cloud-rain-wind", __iconNode$i_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iZ = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "M16 14v6", key: "1j4efv" }],
  ["path", { d: "M8 14v6", key: "17c4r9" }],
  ["path", { d: "M12 16v6", key: "c8a4gj" }]
];
const CloudRain = createLucideIcon("cloud-rain", __iconNode$iZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iY = [
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "M8 15h.01", key: "a7atzg" }],
  ["path", { d: "M8 19h.01", key: "puxtts" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }],
  ["path", { d: "M12 21h.01", key: "h35vbk" }],
  ["path", { d: "M16 15h.01", key: "rnfrdf" }],
  ["path", { d: "M16 19h.01", key: "1vcnzz" }]
];
const CloudSnow = createLucideIcon("cloud-snow", __iconNode$iY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iX = [
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }],
  ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }],
  ["path", { d: "M15.947 12.65a4 4 0 0 0-5.925-4.128", key: "dpwdj0" }],
  ["path", { d: "M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24", key: "1qmrp3" }],
  ["path", { d: "M11 20v2", key: "174qtz" }],
  ["path", { d: "M7 19v2", key: "12npes" }]
];
const CloudSunRain = createLucideIcon("cloud-sun-rain", __iconNode$iX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iW = [
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }],
  ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }],
  ["path", { d: "M15.947 12.65a4 4 0 0 0-5.925-4.128", key: "dpwdj0" }],
  ["path", { d: "M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z", key: "s09mg5" }]
];
const CloudSun = createLucideIcon("cloud-sun", __iconNode$iW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iV = [
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
  ["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
  ["path", { d: "m8 17 4-4 4 4", key: "1quai1" }]
];
const CloudUpload = createLucideIcon("cloud-upload", __iconNode$iV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iU = [
  ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
];
const Cloud = createLucideIcon("cloud", __iconNode$iU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iT = [
  ["path", { d: "M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "gqqjvc" }],
  ["path", { d: "M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5", key: "1p2s76" }]
];
const Cloudy = createLucideIcon("cloudy", __iconNode$iT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iS = [
  ["path", { d: "M16.17 7.83 2 22", key: "t58vo8" }],
  [
    "path",
    {
      d: "M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12",
      key: "17k36q"
    }
  ],
  ["path", { d: "m7.83 7.83 8.34 8.34", key: "1d7sxk" }]
];
const Clover = createLucideIcon("clover", __iconNode$iS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iR = [
  [
    "path",
    {
      d: "M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z",
      key: "27yuqz"
    }
  ],
  ["path", { d: "M12 17.66L12 22", key: "ogfahf" }]
];
const Club = createLucideIcon("club", __iconNode$iR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iQ = [
  ["path", { d: "m18 16 4-4-4-4", key: "1inbqp" }],
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }],
  ["path", { d: "m14.5 4-5 16", key: "e7oirm" }]
];
const CodeXml = createLucideIcon("code-xml", __iconNode$iQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iP = [
  ["path", { d: "m16 18 6-6-6-6", key: "eg8j8" }],
  ["path", { d: "m8 6-6 6 6 6", key: "ppft3o" }]
];
const Code = createLucideIcon("code", __iconNode$iP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iO = [
  ["polygon", { points: "12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2", key: "srzb37" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "15.5", key: "1t73f2" }],
  ["polyline", { points: "22 8.5 12 15.5 2 8.5", key: "ajlxae" }],
  ["polyline", { points: "2 15.5 12 8.5 22 15.5", key: "susrui" }],
  ["line", { x1: "12", x2: "12", y1: "2", y2: "8.5", key: "2cldga" }]
];
const Codepen = createLucideIcon("codepen", __iconNode$iO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iN = [
  [
    "path",
    {
      d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",
      key: "yt0hxn"
    }
  ],
  ["polyline", { points: "7.5 4.21 12 6.81 16.5 4.21", key: "fabo96" }],
  ["polyline", { points: "7.5 19.79 7.5 14.6 3 12", key: "z377f1" }],
  ["polyline", { points: "21 12 16.5 14.6 16.5 19.79", key: "9nrev1" }],
  ["polyline", { points: "3.27 6.96 12 12.01 20.73 6.96", key: "1180pa" }],
  ["line", { x1: "12", x2: "12", y1: "22.08", y2: "12", key: "3z3uq6" }]
];
const Codesandbox = createLucideIcon("codesandbox", __iconNode$iN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iM = [
  ["path", { d: "M10 2v2", key: "7u0qdc" }],
  ["path", { d: "M14 2v2", key: "6buw04" }],
  [
    "path",
    {
      d: "M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",
      key: "pwadti"
    }
  ],
  ["path", { d: "M6 2v2", key: "colzsn" }]
];
const Coffee = createLucideIcon("coffee", __iconNode$iM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iL = [
  ["circle", { cx: "8", cy: "8", r: "6", key: "3yglwk" }],
  ["path", { d: "M18.09 10.37A6 6 0 1 1 10.34 18", key: "t5s6rm" }],
  ["path", { d: "M7 6h1v4", key: "1obek4" }],
  ["path", { d: "m16.71 13.88.7.71-2.82 2.82", key: "1rbuyh" }]
];
const Coins = createLucideIcon("coins", __iconNode$iL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iK = [
  ["path", { d: "M11 10.27 7 3.34", key: "16pf9h" }],
  ["path", { d: "m11 13.73-4 6.93", key: "794ttg" }],
  ["path", { d: "M12 22v-2", key: "1osdcq" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M14 12h8", key: "4f43i9" }],
  ["path", { d: "m17 20.66-1-1.73", key: "eq3orb" }],
  ["path", { d: "m17 3.34-1 1.73", key: "2wel8s" }],
  ["path", { d: "M2 12h2", key: "1t8f8n" }],
  ["path", { d: "m20.66 17-1.73-1", key: "sg0v6f" }],
  ["path", { d: "m20.66 7-1.73 1", key: "1ow05n" }],
  ["path", { d: "m3.34 17 1.73-1", key: "nuk764" }],
  ["path", { d: "m3.34 7 1.73 1", key: "1ulond" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["circle", { cx: "12", cy: "12", r: "8", key: "46899m" }]
];
const Cog = createLucideIcon("cog", __iconNode$iK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iJ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M12 3v18", key: "108xh3" }]
];
const Columns2 = createLucideIcon("columns-2", __iconNode$iJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iI = [
  ["path", { d: "M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5", key: "1g2yzs" }],
  ["path", { d: "m14.3 19.6 1-.4", key: "11sv9r" }],
  ["path", { d: "M15 3v7.5", key: "7lm50a" }],
  ["path", { d: "m15.2 16.9-.9-.3", key: "1t7mvx" }],
  ["path", { d: "m16.6 21.7.3-.9", key: "1j67ps" }],
  ["path", { d: "m16.8 15.3-.4-1", key: "1ei7r6" }],
  ["path", { d: "m19.1 15.2.3-.9", key: "18r7jp" }],
  ["path", { d: "m19.6 21.7-.4-1", key: "z2vh2" }],
  ["path", { d: "m20.7 16.8 1-.4", key: "19m87a" }],
  ["path", { d: "m21.7 19.4-.9-.3", key: "1qgwi9" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const Columns3Cog = createLucideIcon("columns-3-cog", __iconNode$iI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iH = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }]
];
const Columns3 = createLucideIcon("columns-3", __iconNode$iH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iG = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7.5 3v18", key: "w0wo6v" }],
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["path", { d: "M16.5 3v18", key: "10tjh1" }]
];
const Columns4 = createLucideIcon("columns-4", __iconNode$iG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iF = [
  ["path", { d: "M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1", key: "1l7d7l" }],
  ["path", { d: "M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1", key: "9955pe" }],
  ["path", { d: "m7 15 3 3", key: "4hkfgk" }],
  ["path", { d: "m7 21 3-3H5a2 2 0 0 1-2-2v-2", key: "1xljwe" }],
  ["rect", { x: "14", y: "14", width: "7", height: "7", rx: "1", key: "1cdgtw" }],
  ["rect", { x: "3", y: "3", width: "7", height: "7", rx: "1", key: "zi3rio" }]
];
const Combine = createLucideIcon("combine", __iconNode$iF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iE = [
  [
    "path",
    { d: "M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3", key: "11bfej" }
  ]
];
const Command = createLucideIcon("command", __iconNode$iE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iD = [
  [
    "path",
    {
      d: "m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",
      key: "9ktpf1"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Compass = createLucideIcon("compass", __iconNode$iD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iC = [
  [
    "path",
    {
      d: "M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",
      key: "1uwlt4"
    }
  ],
  [
    "path",
    {
      d: "M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z",
      key: "10291m"
    }
  ],
  [
    "path",
    {
      d: "M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z",
      key: "1tqoq1"
    }
  ],
  [
    "path",
    {
      d: "M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z",
      key: "1x6lto"
    }
  ]
];
const Component = createLucideIcon("component", __iconNode$iC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iB = [
  ["rect", { width: "14", height: "8", x: "5", y: "2", rx: "2", key: "wc9tft" }],
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", key: "w68u3i" }],
  ["path", { d: "M6 18h2", key: "rwmk9e" }],
  ["path", { d: "M12 18h6", key: "aqd8w3" }]
];
const Computer = createLucideIcon("computer", __iconNode$iB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iA = [
  [
    "path",
    { d: "M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z", key: "1pvr1r" }
  ],
  ["path", { d: "M20 16a8 8 0 1 0-16 0", key: "1pa543" }],
  ["path", { d: "M12 4v4", key: "1bq03y" }],
  ["path", { d: "M10 4h4", key: "1xpv9s" }]
];
const ConciergeBell = createLucideIcon("concierge-bell", __iconNode$iA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iz = [
  ["path", { d: "m20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98", key: "53pte7" }],
  ["ellipse", { cx: "12", cy: "19", rx: "9", ry: "3", key: "1ji25f" }]
];
const Cone = createLucideIcon("cone", __iconNode$iz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iy = [
  ["rect", { x: "2", y: "6", width: "20", height: "8", rx: "1", key: "1estib" }],
  ["path", { d: "M17 14v7", key: "7m2elx" }],
  ["path", { d: "M7 14v7", key: "1cm7wv" }],
  ["path", { d: "M17 3v3", key: "1v4jwn" }],
  ["path", { d: "M7 3v3", key: "7o6guu" }],
  ["path", { d: "M10 14 2.3 6.3", key: "1023jk" }],
  ["path", { d: "m14 6 7.7 7.7", key: "1s8pl2" }],
  ["path", { d: "m8 6 8 8", key: "hl96qh" }]
];
const Construction = createLucideIcon("construction", __iconNode$iy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ix = [
  ["path", { d: "M16 2v2", key: "scm5qe" }],
  ["path", { d: "M17.915 22a6 6 0 0 0-12 0", key: "suqz9p" }],
  ["path", { d: "M8 2v2", key: "pbkmx" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", key: "12vinp" }]
];
const ContactRound = createLucideIcon("contact-round", __iconNode$ix);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iw = [
  ["path", { d: "M16 2v2", key: "scm5qe" }],
  ["path", { d: "M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2", key: "1waht3" }],
  ["path", { d: "M8 2v2", key: "pbkmx" }],
  ["circle", { cx: "12", cy: "11", r: "3", key: "itu57m" }],
  ["rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", key: "12vinp" }]
];
const Contact = createLucideIcon("contact", __iconNode$iw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iv = [
  [
    "path",
    {
      d: "M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",
      key: "1t2lqe"
    }
  ],
  ["path", { d: "M10 21.9V14L2.1 9.1", key: "o7czzq" }],
  ["path", { d: "m10 14 11.9-6.9", key: "zm5e20" }],
  ["path", { d: "M14 19.8v-8.1", key: "159ecu" }],
  ["path", { d: "M18 17.5V9.4", key: "11uown" }]
];
const Container = createLucideIcon("container", __iconNode$iv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iu = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M12 18a6 6 0 0 0 0-12v12z", key: "j4l70d" }]
];
const Contrast = createLucideIcon("contrast", __iconNode$iu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$it = [
  ["path", { d: "M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5", key: "laymnq" }],
  ["path", { d: "M8.5 8.5v.01", key: "ue8clq" }],
  ["path", { d: "M16 15.5v.01", key: "14dtrp" }],
  ["path", { d: "M12 12v.01", key: "u5ubse" }],
  ["path", { d: "M11 17v.01", key: "1hyl5a" }],
  ["path", { d: "M7 14v.01", key: "uct60s" }]
];
const Cookie = createLucideIcon("cookie", __iconNode$it);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$is = [
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8", key: "u0tga0" }],
  ["path", { d: "m4 8 16-4", key: "16g0ng" }],
  [
    "path",
    {
      d: "m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8",
      key: "12cejc"
    }
  ]
];
const CookingPot = createLucideIcon("cooking-pot", __iconNode$is);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ir = [
  ["path", { d: "m12 15 2 2 4-4", key: "2c609p" }],
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const CopyCheck = createLucideIcon("copy-check", __iconNode$ir);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$iq = [
  ["line", { x1: "12", x2: "18", y1: "15", y2: "15", key: "1nscbv" }],
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const CopyMinus = createLucideIcon("copy-minus", __iconNode$iq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ip = [
  ["line", { x1: "15", x2: "15", y1: "12", y2: "18", key: "1p7wdc" }],
  ["line", { x1: "12", x2: "18", y1: "15", y2: "15", key: "1nscbv" }],
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const CopyPlus = createLucideIcon("copy-plus", __iconNode$ip);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$io = [
  ["line", { x1: "12", x2: "18", y1: "18", y2: "12", key: "ebkxgr" }],
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const CopySlash = createLucideIcon("copy-slash", __iconNode$io);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$in = [
  ["line", { x1: "12", x2: "18", y1: "12", y2: "18", key: "1rg63v" }],
  ["line", { x1: "12", x2: "18", y1: "18", y2: "12", key: "ebkxgr" }],
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const CopyX = createLucideIcon("copy-x", __iconNode$in);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$im = [
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
];
const Copy = createLucideIcon("copy", __iconNode$im);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$il = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M9.17 14.83a4 4 0 1 0 0-5.66", key: "1sveal" }]
];
const Copyleft = createLucideIcon("copyleft", __iconNode$il);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ik = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M14.83 14.83a4 4 0 1 1 0-5.66", key: "1i56pz" }]
];
const Copyright = createLucideIcon("copyright", __iconNode$ik);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ij = [
  ["path", { d: "M20 4v7a4 4 0 0 1-4 4H4", key: "6o5b7l" }],
  ["path", { d: "m9 10-5 5 5 5", key: "1kshq7" }]
];
const CornerDownLeft = createLucideIcon("corner-down-left", __iconNode$ij);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ii = [
  ["path", { d: "m15 10 5 5-5 5", key: "qqa56n" }],
  ["path", { d: "M4 4v7a4 4 0 0 0 4 4h12", key: "z08zvw" }]
];
const CornerDownRight = createLucideIcon("corner-down-right", __iconNode$ii);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ih = [
  ["path", { d: "m14 15-5 5-5-5", key: "1eia93" }],
  ["path", { d: "M20 4h-7a4 4 0 0 0-4 4v12", key: "nbpdq2" }]
];
const CornerLeftDown = createLucideIcon("corner-left-down", __iconNode$ih);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ig = [
  ["path", { d: "M14 9 9 4 4 9", key: "1af5af" }],
  ["path", { d: "M20 20h-7a4 4 0 0 1-4-4V4", key: "1blwi3" }]
];
const CornerLeftUp = createLucideIcon("corner-left-up", __iconNode$ig);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$if = [
  ["path", { d: "m10 15 5 5 5-5", key: "1hpjnr" }],
  ["path", { d: "M4 4h7a4 4 0 0 1 4 4v12", key: "wcbgct" }]
];
const CornerRightDown = createLucideIcon("corner-right-down", __iconNode$if);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ie = [
  ["path", { d: "m10 9 5-5 5 5", key: "9ctzwi" }],
  ["path", { d: "M4 20h7a4 4 0 0 0 4-4V4", key: "1plgdj" }]
];
const CornerRightUp = createLucideIcon("corner-right-up", __iconNode$ie);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$id = [
  ["path", { d: "M20 20v-7a4 4 0 0 0-4-4H4", key: "1nkjon" }],
  ["path", { d: "M9 14 4 9l5-5", key: "102s5s" }]
];
const CornerUpLeft = createLucideIcon("corner-up-left", __iconNode$id);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ic = [
  ["path", { d: "m15 14 5-5-5-5", key: "12vg1m" }],
  ["path", { d: "M4 20v-7a4 4 0 0 1 4-4h12", key: "1lu4f8" }]
];
const CornerUpRight = createLucideIcon("corner-up-right", __iconNode$ic);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ib = [
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M17 20v2", key: "1rnc9c" }],
  ["path", { d: "M17 2v2", key: "11trls" }],
  ["path", { d: "M2 12h2", key: "1t8f8n" }],
  ["path", { d: "M2 17h2", key: "7oei6x" }],
  ["path", { d: "M2 7h2", key: "asdhe0" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }],
  ["path", { d: "M20 17h2", key: "1fpfkl" }],
  ["path", { d: "M20 7h2", key: "1o8tra" }],
  ["path", { d: "M7 20v2", key: "4gnj0m" }],
  ["path", { d: "M7 2v2", key: "1i4yhu" }],
  ["rect", { x: "4", y: "4", width: "16", height: "16", rx: "2", key: "1vbyd7" }],
  ["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1", key: "z9xiuo" }]
];
const Cpu = createLucideIcon("cpu", __iconNode$ib);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ia = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  [
    "path",
    { d: "M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1", key: "1ss3eq" }
  ],
  [
    "path",
    { d: "M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1", key: "1od56t" }
  ]
];
const CreativeCommons = createLucideIcon("creative-commons", __iconNode$ia);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i9 = [
  ["rect", { width: "20", height: "14", x: "2", y: "5", rx: "2", key: "ynyp8z" }],
  ["line", { x1: "2", x2: "22", y1: "10", y2: "10", key: "1b3vmo" }]
];
const CreditCard = createLucideIcon("credit-card", __iconNode$i9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i8 = [
  ["path", { d: "M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487", key: "14kkz9" }],
  ["path", { d: "M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132", key: "1g7v07" }],
  ["path", { d: "M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42", key: "ratg6b" }],
  ["path", { d: "M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14", key: "4454f0" }],
  [
    "path",
    {
      d: "M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676",
      key: "qmemie"
    }
  ]
];
const Croissant = createLucideIcon("croissant", __iconNode$i8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i7 = [
  ["path", { d: "M6 2v14a2 2 0 0 0 2 2h14", key: "ron5a4" }],
  ["path", { d: "M18 22V8a2 2 0 0 0-2-2H2", key: "7s9ehn" }]
];
const Crop = createLucideIcon("crop", __iconNode$i7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i6 = [
  [
    "path",
    {
      d: "M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z",
      key: "1xbrqy"
    }
  ]
];
const Cross = createLucideIcon("cross", __iconNode$i6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i5 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["line", { x1: "22", x2: "18", y1: "12", y2: "12", key: "l9bcsi" }],
  ["line", { x1: "6", x2: "2", y1: "12", y2: "12", key: "13hhkx" }],
  ["line", { x1: "12", x2: "12", y1: "6", y2: "2", key: "10w3f3" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "18", key: "15g9kq" }]
];
const Crosshair = createLucideIcon("crosshair", __iconNode$i5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i4 = [
  [
    "path",
    {
      d: "M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",
      key: "1vdc57"
    }
  ],
  ["path", { d: "M5 21h14", key: "11awu3" }]
];
const Crown = createLucideIcon("crown", __iconNode$i4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i3 = [
  [
    "path",
    {
      d: "m21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z",
      key: "1u2ovd"
    }
  ],
  ["path", { d: "M10 22v-8L2.25 9.15", key: "11pn4q" }],
  ["path", { d: "m10 14 11.77-6.87", key: "1kt1wh" }]
];
const Cuboid = createLucideIcon("cuboid", __iconNode$i3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i2 = [
  ["path", { d: "m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8", key: "8166m8" }],
  ["path", { d: "M5 8h14", key: "pcz4l3" }],
  ["path", { d: "M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0", key: "yjz344" }],
  ["path", { d: "m12 8 1-6h2", key: "3ybfa4" }]
];
const CupSoda = createLucideIcon("cup-soda", __iconNode$i2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i1 = [
  ["circle", { cx: "12", cy: "12", r: "8", key: "46899m" }],
  ["line", { x1: "3", x2: "6", y1: "3", y2: "6", key: "1jkytn" }],
  ["line", { x1: "21", x2: "18", y1: "3", y2: "6", key: "14zfjt" }],
  ["line", { x1: "3", x2: "6", y1: "21", y2: "18", key: "iusuec" }],
  ["line", { x1: "21", x2: "18", y1: "21", y2: "18", key: "yj2dd7" }]
];
const Currency = createLucideIcon("currency", __iconNode$i1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i0 = [
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
  ["path", { d: "M3 5v14a9 3 0 0 0 18 0V5", key: "aqi0yr" }]
];
const Cylinder = createLucideIcon("cylinder", __iconNode$i0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h$ = [
  [
    "path",
    { d: "M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1", key: "157kva" }
  ],
  ["path", { d: "M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1", key: "d7q6m6" }],
  ["path", { d: "M2 10h4", key: "l0bgd4" }],
  ["path", { d: "M2 14h4", key: "1gsvsf" }],
  ["path", { d: "M2 18h4", key: "1bu2t1" }],
  ["path", { d: "M2 6h4", key: "aawbzj" }],
  [
    "path",
    { d: "M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z", key: "pr6s65" }
  ]
];
const Dam = createLucideIcon("dam", __iconNode$h$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h_ = [
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
  ["path", { d: "M3 12a9 3 0 0 0 5 2.69", key: "1ui2ym" }],
  ["path", { d: "M21 9.3V5", key: "6k6cib" }],
  ["path", { d: "M3 5v14a9 3 0 0 0 6.47 2.88", key: "i62tjy" }],
  ["path", { d: "M12 12v4h4", key: "1bxaet" }],
  [
    "path",
    {
      d: "M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16",
      key: "1f4ei9"
    }
  ]
];
const DatabaseBackup = createLucideIcon("database-backup", __iconNode$h_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hZ = [
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
  ["path", { d: "M3 5V19A9 3 0 0 0 15 21.84", key: "14ibmq" }],
  ["path", { d: "M21 5V8", key: "1marbg" }],
  ["path", { d: "M21 12L18 17H22L19 22", key: "zafso" }],
  ["path", { d: "M3 12A9 3 0 0 0 14.59 14.87", key: "1y4wr8" }]
];
const DatabaseZap = createLucideIcon("database-zap", __iconNode$hZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hY = [
  ["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
  ["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
  ["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
];
const Database = createLucideIcon("database", __iconNode$hY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hX = [
  ["path", { d: "m13 21-3-3 3-3", key: "s3o1nf" }],
  ["path", { d: "M20 18H10", key: "14r3mt" }],
  ["path", { d: "M3 11h.01", key: "1eifu7" }],
  ["rect", { x: "6", y: "3", width: "5", height: "8", rx: "2.5", key: "v9paqo" }]
];
const DecimalsArrowLeft = createLucideIcon("decimals-arrow-left", __iconNode$hX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hW = [
  ["path", { d: "M10 18h10", key: "1y5s8o" }],
  ["path", { d: "m17 21 3-3-3-3", key: "1ammt0" }],
  ["path", { d: "M3 11h.01", key: "1eifu7" }],
  ["rect", { x: "15", y: "3", width: "5", height: "8", rx: "2.5", key: "76md6a" }],
  ["rect", { x: "6", y: "3", width: "5", height: "8", rx: "2.5", key: "v9paqo" }]
];
const DecimalsArrowRight = createLucideIcon("decimals-arrow-right", __iconNode$hW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hV = [
  [
    "path",
    {
      d: "M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z",
      key: "1yo7s0"
    }
  ],
  ["path", { d: "m12 9 6 6", key: "anjzzh" }],
  ["path", { d: "m18 9-6 6", key: "1fp51s" }]
];
const Delete = createLucideIcon("delete", __iconNode$hV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hU = [
  [
    "path",
    {
      d: "M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826",
      key: "xi88qy"
    }
  ],
  ["path", { d: "M20.804 14.869a9 9 0 0 1-17.608 0", key: "1r28rg" }],
  ["circle", { cx: "12", cy: "4", r: "2", key: "muu5ef" }]
];
const Dessert = createLucideIcon("dessert", __iconNode$hU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hT = [
  ["circle", { cx: "19", cy: "19", r: "2", key: "17f5cg" }],
  ["circle", { cx: "5", cy: "5", r: "2", key: "1gwv83" }],
  ["path", { d: "M6.48 3.66a10 10 0 0 1 13.86 13.86", key: "xr8kdq" }],
  ["path", { d: "m6.41 6.41 11.18 11.18", key: "uhpjw7" }],
  ["path", { d: "M3.66 6.48a10 10 0 0 0 13.86 13.86", key: "cldpwv" }]
];
const Diameter = createLucideIcon("diameter", __iconNode$hT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hS = [
  [
    "path",
    {
      d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",
      key: "1ey20j"
    }
  ],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const DiamondMinus = createLucideIcon("diamond-minus", __iconNode$hS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hR = [
  [
    "path",
    {
      d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z",
      key: "1tpxz2"
    }
  ],
  ["path", { d: "M9.2 9.2h.01", key: "1b7bvt" }],
  ["path", { d: "m14.5 9.5-5 5", key: "17q4r4" }],
  ["path", { d: "M14.7 14.8h.01", key: "17nsh4" }]
];
const DiamondPercent = createLucideIcon("diamond-percent", __iconNode$hR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hQ = [
  ["path", { d: "M12 8v8", key: "napkw2" }],
  [
    "path",
    {
      d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",
      key: "1ey20j"
    }
  ],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const DiamondPlus = createLucideIcon("diamond-plus", __iconNode$hQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hP = [
  [
    "path",
    {
      d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z",
      key: "1f1r0c"
    }
  ]
];
const Diamond = createLucideIcon("diamond", __iconNode$hP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hO = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }]
];
const Dice1 = createLucideIcon("dice-1", __iconNode$hO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hN = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M15 9h.01", key: "x1ddxp" }],
  ["path", { d: "M9 15h.01", key: "fzyn71" }]
];
const Dice2 = createLucideIcon("dice-2", __iconNode$hN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hM = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M16 8h.01", key: "cr5u4v" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
];
const Dice3 = createLucideIcon("dice-3", __iconNode$hM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hL = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M16 8h.01", key: "cr5u4v" }],
  ["path", { d: "M8 8h.01", key: "1e4136" }],
  ["path", { d: "M8 16h.01", key: "18s6g9" }],
  ["path", { d: "M16 16h.01", key: "1f9h7w" }]
];
const Dice4 = createLucideIcon("dice-4", __iconNode$hL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hK = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M16 8h.01", key: "cr5u4v" }],
  ["path", { d: "M8 8h.01", key: "1e4136" }],
  ["path", { d: "M8 16h.01", key: "18s6g9" }],
  ["path", { d: "M16 16h.01", key: "1f9h7w" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }]
];
const Dice5 = createLucideIcon("dice-5", __iconNode$hK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hJ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M16 8h.01", key: "cr5u4v" }],
  ["path", { d: "M16 12h.01", key: "1l6xoz" }],
  ["path", { d: "M16 16h.01", key: "1f9h7w" }],
  ["path", { d: "M8 8h.01", key: "1e4136" }],
  ["path", { d: "M8 12h.01", key: "czm47f" }],
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
];
const Dice6 = createLucideIcon("dice-6", __iconNode$hJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hI = [
  ["rect", { width: "12", height: "12", x: "2", y: "10", rx: "2", ry: "2", key: "6agr2n" }],
  [
    "path",
    { d: "m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6", key: "1o487t" }
  ],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "M10 14h.01", key: "ssrbsk" }],
  ["path", { d: "M15 6h.01", key: "cblpky" }],
  ["path", { d: "M18 9h.01", key: "2061c0" }]
];
const Dices = createLucideIcon("dices", __iconNode$hI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hH = [
  ["path", { d: "M12 3v14", key: "7cf3v8" }],
  ["path", { d: "M5 10h14", key: "elsbfy" }],
  ["path", { d: "M5 21h14", key: "11awu3" }]
];
const Diff = createLucideIcon("diff", __iconNode$hH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hG = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }]
];
const Disc2 = createLucideIcon("disc-2", __iconNode$hG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hF = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M6 12c0-1.7.7-3.2 1.8-4.2", key: "oqkarx" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["path", { d: "M18 12c0 1.7-.7 3.2-1.8 4.2", key: "1eah9h" }]
];
const Disc3 = createLucideIcon("disc-3", __iconNode$hF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hE = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["circle", { cx: "12", cy: "12", r: "5", key: "nd82uf" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }]
];
const DiscAlbum = createLucideIcon("disc-album", __iconNode$hE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hD = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const Disc = createLucideIcon("disc", __iconNode$hD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hC = [
  ["circle", { cx: "12", cy: "6", r: "1", key: "1bh7o1" }],
  ["line", { x1: "5", x2: "19", y1: "12", y2: "12", key: "13b5wn" }],
  ["circle", { cx: "12", cy: "18", r: "1", key: "lqb9t5" }]
];
const Divide = createLucideIcon("divide", __iconNode$hC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hB = [
  ["path", { d: "M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8", key: "1bivrr" }],
  ["path", { d: "m17 6-2.891-2.891", key: "xu6p2f" }],
  ["path", { d: "M2 15c3.333-3 6.667-3 10-3", key: "nxix30" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "m20 9 .891.891", key: "3xwk7g" }],
  ["path", { d: "M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1", key: "18cutr" }],
  ["path", { d: "M3.109 14.109 4 15", key: "q76aoh" }],
  ["path", { d: "m6.5 12.5 1 1", key: "cs35ky" }],
  ["path", { d: "m7 18 2.891 2.891", key: "1sisit" }],
  ["path", { d: "M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16", key: "rlvei3" }]
];
const DnaOff = createLucideIcon("dna-off", __iconNode$hB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hA = [
  ["path", { d: "m10 16 1.5 1.5", key: "11lckj" }],
  ["path", { d: "m14 8-1.5-1.5", key: "1ohn8i" }],
  ["path", { d: "M15 2c-1.798 1.998-2.518 3.995-2.807 5.993", key: "80uv8i" }],
  ["path", { d: "m16.5 10.5 1 1", key: "696xn5" }],
  ["path", { d: "m17 6-2.891-2.891", key: "xu6p2f" }],
  ["path", { d: "M2 15c6.667-6 13.333 0 20-6", key: "1pyr53" }],
  ["path", { d: "m20 9 .891.891", key: "3xwk7g" }],
  ["path", { d: "M3.109 14.109 4 15", key: "q76aoh" }],
  ["path", { d: "m6.5 12.5 1 1", key: "cs35ky" }],
  ["path", { d: "m7 18 2.891 2.891", key: "1sisit" }],
  ["path", { d: "M9 22c1.798-1.998 2.518-3.995 2.807-5.993", key: "q3hbxp" }]
];
const Dna = createLucideIcon("dna", __iconNode$hA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hz = [
  ["path", { d: "M2 8h20", key: "d11cs7" }],
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M6 16h12", key: "u522kt" }]
];
const Dock = createLucideIcon("dock", __iconNode$hz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hy = [
  ["path", { d: "M11.25 16.25h1.5L12 17z", key: "w7jh35" }],
  ["path", { d: "M16 14v.5", key: "1lajdz" }],
  [
    "path",
    {
      d: "M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309",
      key: "u7s9ue"
    }
  ],
  ["path", { d: "M8 14v.5", key: "1nzgdb" }],
  [
    "path",
    {
      d: "M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5",
      key: "v8hric"
    }
  ]
];
const Dog = createLucideIcon("dog", __iconNode$hy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hx = [
  ["line", { x1: "12", x2: "12", y1: "2", y2: "22", key: "7eqyqh" }],
  ["path", { d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6", key: "1b0p4s" }]
];
const DollarSign = createLucideIcon("dollar-sign", __iconNode$hx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hw = [
  [
    "path",
    {
      d: "M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3",
      key: "19sr3x"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
];
const Donut = createLucideIcon("donut", __iconNode$hw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hv = [
  ["path", { d: "M10 12h.01", key: "1kxr2c" }],
  ["path", { d: "M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14", key: "1bnhmg" }],
  ["path", { d: "M2 20h8", key: "10ntw1" }],
  ["path", { d: "M20 17v-2a2 2 0 1 0-4 0v2", key: "pwaxnr" }],
  ["rect", { x: "14", y: "17", width: "8", height: "5", rx: "1", key: "15pjcy" }]
];
const DoorClosedLocked = createLucideIcon("door-closed-locked", __iconNode$hv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hu = [
  ["path", { d: "M10 12h.01", key: "1kxr2c" }],
  ["path", { d: "M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14", key: "36qu9e" }],
  ["path", { d: "M2 20h20", key: "owomy5" }]
];
const DoorClosed = createLucideIcon("door-closed", __iconNode$hu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ht = [
  ["path", { d: "M11 20H2", key: "nlcfvz" }],
  [
    "path",
    {
      d: "M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z",
      key: "au4z13"
    }
  ],
  ["path", { d: "M11 4H8a2 2 0 0 0-2 2v14", key: "74r1mk" }],
  ["path", { d: "M14 12h.01", key: "1jfl7z" }],
  ["path", { d: "M22 20h-3", key: "vhrsz" }]
];
const DoorOpen = createLucideIcon("door-open", __iconNode$ht);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hs = [["circle", { cx: "12.1", cy: "12.1", r: "1", key: "18d7e5" }]];
const Dot = createLucideIcon("dot", __iconNode$hs);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hr = [
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
];
const Download = createLucideIcon("download", __iconNode$hr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hq = [
  ["path", { d: "m12.99 6.74 1.93 3.44", key: "iwagvd" }],
  ["path", { d: "M19.136 12a10 10 0 0 1-14.271 0", key: "ppmlo4" }],
  ["path", { d: "m21 21-2.16-3.84", key: "vylbct" }],
  ["path", { d: "m3 21 8.02-14.26", key: "1ssaw4" }],
  ["circle", { cx: "12", cy: "5", r: "2", key: "f1ur92" }]
];
const DraftingCompass = createLucideIcon("drafting-compass", __iconNode$hq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hp = [
  ["path", { d: "M10 11h.01", key: "d2at3l" }],
  ["path", { d: "M14 6h.01", key: "k028ub" }],
  ["path", { d: "M18 6h.01", key: "1v4wsw" }],
  ["path", { d: "M6.5 13.1h.01", key: "1748ia" }],
  ["path", { d: "M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3", key: "172yzv" }],
  ["path", { d: "M17.4 9.9c-.8.8-2 .8-2.8 0", key: "1obv0w" }],
  [
    "path",
    {
      d: "M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7",
      key: "rqjl8i"
    }
  ],
  ["path", { d: "M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4", key: "1mr6wy" }]
];
const Drama = createLucideIcon("drama", __iconNode$hp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ho = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94", key: "hpej1" }],
  ["path", { d: "M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32", key: "1tr44o" }],
  ["path", { d: "M8.56 2.75c4.37 6 6 9.42 8 17.72", key: "kbh691" }]
];
const Dribbble = createLucideIcon("dribbble", __iconNode$ho);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hn = [
  [
    "path",
    { d: "M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z", key: "ioqxb1" }
  ],
  [
    "path",
    {
      d: "M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8",
      key: "1rs59n"
    }
  ],
  ["path", { d: "M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3", key: "105ega" }],
  ["path", { d: "M18 6h4", key: "66u95g" }],
  ["path", { d: "m5 10-2 8", key: "xt2lic" }],
  ["path", { d: "m7 18 2-8", key: "1bzku2" }]
];
const Drill = createLucideIcon("drill", __iconNode$hn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hm = [
  ["path", { d: "M10 10 7 7", key: "zp14k7" }],
  ["path", { d: "m10 14-3 3", key: "1jrpxk" }],
  ["path", { d: "m14 10 3-3", key: "7tigam" }],
  ["path", { d: "m14 14 3 3", key: "vm23p3" }],
  ["path", { d: "M14.205 4.139a4 4 0 1 1 5.439 5.863", key: "1tm5p2" }],
  ["path", { d: "M19.637 14a4 4 0 1 1-5.432 5.868", key: "16egi2" }],
  ["path", { d: "M4.367 10a4 4 0 1 1 5.438-5.862", key: "1wta6a" }],
  ["path", { d: "M9.795 19.862a4 4 0 1 1-5.429-5.873", key: "q39hpv" }],
  ["rect", { x: "10", y: "8", width: "4", height: "8", rx: "1", key: "phrjt1" }]
];
const Drone = createLucideIcon("drone", __iconNode$hm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hl = [
  [
    "path",
    {
      d: "M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586",
      key: "8suz2t"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    { d: "M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208", key: "19dw9m" }
  ]
];
const DropletOff = createLucideIcon("droplet-off", __iconNode$hl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hk = [
  [
    "path",
    {
      d: "M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",
      key: "c7niix"
    }
  ]
];
const Droplet = createLucideIcon("droplet", __iconNode$hk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hj = [
  [
    "path",
    {
      d: "M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",
      key: "1ptgy4"
    }
  ],
  [
    "path",
    {
      d: "M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",
      key: "1sl1rz"
    }
  ]
];
const Droplets = createLucideIcon("droplets", __iconNode$hj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hi = [
  ["path", { d: "m2 2 8 8", key: "1v6059" }],
  ["path", { d: "m22 2-8 8", key: "173r8a" }],
  ["ellipse", { cx: "12", cy: "9", rx: "10", ry: "5", key: "liohsx" }],
  ["path", { d: "M7 13.4v7.9", key: "1yi6u9" }],
  ["path", { d: "M12 14v8", key: "1tn2tj" }],
  ["path", { d: "M17 13.4v7.9", key: "eqz2v3" }],
  ["path", { d: "M2 9v8a10 5 0 0 0 20 0V9", key: "1750ul" }]
];
const Drum = createLucideIcon("drum", __iconNode$hi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hh = [
  [
    "path",
    {
      d: "M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z",
      key: "9m4mmf"
    }
  ],
  ["path", { d: "m2.5 21.5 1.4-1.4", key: "17g3f0" }],
  ["path", { d: "m20.1 3.9 1.4-1.4", key: "1qn309" }],
  [
    "path",
    {
      d: "M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z",
      key: "1t2c92"
    }
  ],
  ["path", { d: "m9.6 14.4 4.8-4.8", key: "6umqxw" }]
];
const Dumbbell = createLucideIcon("dumbbell", __iconNode$hh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hg = [
  [
    "path",
    { d: "M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23", key: "1dtqwm" }
  ],
  [
    "path",
    {
      d: "m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59",
      key: "1oq1fw"
    }
  ]
];
const Drumstick = createLucideIcon("drumstick", __iconNode$hg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hf = [
  ["path", { d: "M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46", key: "1qngmn" }],
  ["path", { d: "M6 8.5c0-.75.13-1.47.36-2.14", key: "b06bma" }],
  ["path", { d: "M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76", key: "g10hsz" }],
  ["path", { d: "M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18", key: "ygzou7" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const EarOff = createLucideIcon("ear-off", __iconNode$hf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$he = [
  ["path", { d: "M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0", key: "1dfaln" }],
  ["path", { d: "M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4", key: "1qnva7" }]
];
const Ear = createLucideIcon("ear", __iconNode$he);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hd = [
  ["path", { d: "M7 3.34V5a3 3 0 0 0 3 3", key: "w732o8" }],
  ["path", { d: "M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05", key: "f02343" }],
  ["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54", key: "1djwo0" }],
  ["path", { d: "M12 2a10 10 0 1 0 9.54 13", key: "zjsr6q" }],
  ["path", { d: "M20 6V4a2 2 0 1 0-4 0v2", key: "1of5e8" }],
  ["rect", { width: "8", height: "5", x: "14", y: "6", rx: "1", key: "1fmf51" }]
];
const EarthLock = createLucideIcon("earth-lock", __iconNode$hd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hc = [
  ["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54", key: "1djwo0" }],
  [
    "path",
    {
      d: "M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",
      key: "1tzkfa"
    }
  ],
  ["path", { d: "M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05", key: "14pb5j" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Earth = createLucideIcon("earth", __iconNode$hc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$hb = [
  ["circle", { cx: "11.5", cy: "12.5", r: "3.5", key: "1cl1mi" }],
  [
    "path",
    {
      d: "M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z",
      key: "165ef9"
    }
  ]
];
const EggFried = createLucideIcon("egg-fried", __iconNode$hb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ha = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M12 2a7 7 0 1 0 10 10", key: "1yuj32" }]
];
const Eclipse = createLucideIcon("eclipse", __iconNode$ha);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h9 = [
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19", key: "13g2jy" }],
  ["path", { d: "M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568", key: "1581id" }]
];
const EggOff = createLucideIcon("egg-off", __iconNode$h9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h8 = [
  ["path", { d: "M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12", key: "1le142" }]
];
const Egg = createLucideIcon("egg", __iconNode$h8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h7 = [
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
];
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$h7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h6 = [
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
];
const Ellipsis = createLucideIcon("ellipsis", __iconNode$h6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h5 = [
  ["path", { d: "M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0", key: "yrdkhy" }],
  ["path", { d: "M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0", key: "gzkvyz" }]
];
const EqualApproximately = createLucideIcon("equal-approximately", __iconNode$h5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h4 = [
  ["line", { x1: "5", x2: "19", y1: "9", y2: "9", key: "1nwqeh" }],
  ["line", { x1: "5", x2: "19", y1: "15", y2: "15", key: "g8yjpy" }],
  ["line", { x1: "19", x2: "5", y1: "5", y2: "19", key: "1x9vlm" }]
];
const EqualNot = createLucideIcon("equal-not", __iconNode$h4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h3 = [
  ["line", { x1: "5", x2: "19", y1: "9", y2: "9", key: "1nwqeh" }],
  ["line", { x1: "5", x2: "19", y1: "15", y2: "15", key: "g8yjpy" }]
];
const Equal = createLucideIcon("equal", __iconNode$h3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h2 = [
  [
    "path",
    {
      d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21",
      key: "g5wo59"
    }
  ],
  ["path", { d: "m5.082 11.09 8.828 8.828", key: "1wx5vj" }]
];
const Eraser = createLucideIcon("eraser", __iconNode$h2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h1 = [
  [
    "path",
    {
      d: "m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z",
      key: "rbahqx"
    }
  ],
  ["path", { d: "M6 8v1", key: "1636ez" }],
  ["path", { d: "M10 8v1", key: "1talb4" }],
  ["path", { d: "M14 8v1", key: "1rsfgr" }],
  ["path", { d: "M18 8v1", key: "gnkwox" }]
];
const EthernetPort = createLucideIcon("ethernet-port", __iconNode$h1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h0 = [
  ["path", { d: "M4 10h12", key: "1y6xl8" }],
  ["path", { d: "M4 14h9", key: "1loblj" }],
  [
    "path",
    {
      d: "M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",
      key: "1j6lzo"
    }
  ]
];
const Euro = createLucideIcon("euro", __iconNode$h0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g$ = [
  [
    "path",
    { d: "M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5", key: "1wtuz0" }
  ],
  ["path", { d: "M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16", key: "e09ifn" }],
  ["path", { d: "M2 21h13", key: "1x0fut" }],
  ["path", { d: "M3 7h11", key: "19efrr" }],
  ["path", { d: "m9 11-2 3h3l-2 3", key: "lmzxi1" }]
];
const EvCharger = createLucideIcon("ev-charger", __iconNode$g$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g_ = [
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
];
const ExternalLink = createLucideIcon("external-link", __iconNode$g_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gZ = [
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
  ["path", { d: "M21 8V3h-5", key: "1qoq8a" }],
  ["path", { d: "M3 16v5h5", key: "1t08am" }],
  ["path", { d: "m3 21 6-6", key: "wwnumi" }],
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
];
const Expand = createLucideIcon("expand", __iconNode$gZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gY = [
  ["path", { d: "m15 18-.722-3.25", key: "1j64jw" }],
  ["path", { d: "M2 8a10.645 10.645 0 0 0 20 0", key: "1e7gxb" }],
  ["path", { d: "m20 15-1.726-2.05", key: "1cnuld" }],
  ["path", { d: "m4 15 1.726-2.05", key: "1dsqqd" }],
  ["path", { d: "m9 18 .722-3.25", key: "ypw2yx" }]
];
const EyeClosed = createLucideIcon("eye-closed", __iconNode$gY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gX = [
  [
    "path",
    {
      d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
      key: "ct8e1f"
    }
  ],
  ["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242", key: "151rxh" }],
  [
    "path",
    {
      d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
      key: "13bj9a"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const EyeOff = createLucideIcon("eye-off", __iconNode$gX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gW = [
  [
    "path",
    { d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z", key: "1jg4f8" }
  ]
];
const Facebook = createLucideIcon("facebook", __iconNode$gW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gV = [
  [
    "path",
    {
      d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
      key: "1nclc0"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
];
const Eye = createLucideIcon("eye", __iconNode$gV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gU = [
  ["path", { d: "M12 16h.01", key: "1drbdi" }],
  ["path", { d: "M16 16h.01", key: "1f9h7w" }],
  [
    "path",
    {
      d: "M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",
      key: "1iv0i2"
    }
  ],
  ["path", { d: "M8 16h.01", key: "18s6g9" }]
];
const Factory = createLucideIcon("factory", __iconNode$gU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gT = [
  [
    "path",
    {
      d: "M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z",
      key: "484a7f"
    }
  ],
  ["path", { d: "M12 12v.01", key: "u5ubse" }]
];
const Fan = createLucideIcon("fan", __iconNode$gT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gS = [
  [
    "path",
    { d: "M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z", key: "b19h5q" }
  ],
  [
    "path",
    { d: "M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z", key: "h7h5ge" }
  ]
];
const FastForward = createLucideIcon("fast-forward", __iconNode$gS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gR = [
  ["path", { d: "M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z", key: "1n2rgs" }],
  ["path", { d: "M6 8h4", key: "utf9t1" }],
  ["path", { d: "M6 18h4", key: "12yh4b" }],
  ["path", { d: "m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z", key: "3ha7mj" }],
  ["path", { d: "M14 8h4", key: "1r8wg2" }],
  ["path", { d: "M14 18h4", key: "1t3kbu" }],
  ["path", { d: "m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z", key: "dfd4e2" }]
];
const Fence = createLucideIcon("fence", __iconNode$gR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gQ = [
  [
    "path",
    {
      d: "M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z",
      key: "18jl4k"
    }
  ],
  ["path", { d: "M16 8 2 22", key: "vp34q" }],
  ["path", { d: "M17.5 15H9", key: "1oz8nu" }]
];
const Feather = createLucideIcon("feather", __iconNode$gQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gP = [
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["path", { d: "M12 2v4", key: "3427ic" }],
  ["path", { d: "m6.8 15-3.5 2", key: "hjy98k" }],
  ["path", { d: "m20.7 7-3.5 2", key: "f08gto" }],
  ["path", { d: "M6.8 9 3.3 7", key: "1aevh4" }],
  ["path", { d: "m20.7 17-3.5-2", key: "1liqo3" }],
  ["path", { d: "m9 22 3-8 3 8", key: "wees03" }],
  ["path", { d: "M8 22h8", key: "rmew8v" }],
  ["path", { d: "M18 18.7a9 9 0 1 0-12 0", key: "dhzg4g" }]
];
const FerrisWheel = createLucideIcon("ferris-wheel", __iconNode$gP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gO = [
  ["path", { d: "M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z", key: "1340ok" }],
  ["path", { d: "M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z", key: "1hz3m3" }],
  ["path", { d: "M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z", key: "1oz8n2" }],
  ["path", { d: "M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z", key: "1ff65i" }],
  ["path", { d: "M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z", key: "pdip6e" }]
];
const Figma = createLucideIcon("figma", __iconNode$gO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gN = [
  [
    "path",
    {
      d: "M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",
      key: "4pqfef"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 12v-1", key: "1ej8lb" }],
  ["path", { d: "M8 18v-2", key: "qcmpov" }],
  ["path", { d: "M8 7V6", key: "1nbb54" }],
  ["circle", { cx: "8", cy: "20", r: "2", key: "ckkr5m" }]
];
const FileArchive = createLucideIcon("file-archive", __iconNode$gN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gM = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m8 18 4-4", key: "12zab0" }],
  ["path", { d: "M8 10v8h8", key: "tlaukw" }]
];
const FileAxis3d = createLucideIcon("file-axis-3d", __iconNode$gM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gL = [
  [
    "path",
    {
      d: "M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.3",
      key: "cvl1xm"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "m7.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.879.001l-1.846.85a.5.5 0 0 1-.692-.593l1.29-4.88",
      key: "1ff7gj"
    }
  ],
  ["circle", { cx: "6", cy: "14", r: "3", key: "a1xfv6" }]
];
const FileBadge = createLucideIcon("file-badge", __iconNode$gL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gK = [
  [
    "path",
    {
      d: "M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8",
      key: "1kchwa"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M11.7 14.2 7 17l-4.7-2.8", key: "1yk8tc" }],
  [
    "path",
    {
      d: "M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z",
      key: "19flxy"
    }
  ],
  ["path", { d: "M7 17v5", key: "1yj1jh" }]
];
const FileBox = createLucideIcon("file-box", __iconNode$gK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gJ = [
  [
    "path",
    {
      d: "M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",
      key: "14cnrg"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    { d: "M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1", key: "sr0ebq" }
  ],
  [
    "path",
    { d: "M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1", key: "w793db" }
  ]
];
const FileBracesCorner = createLucideIcon("file-braces-corner", __iconNode$gJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gI = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    { d: "M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1", key: "1oajmo" }
  ],
  [
    "path",
    { d: "M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1", key: "mpwhp6" }
  ]
];
const FileBraces = createLucideIcon("file-braces", __iconNode$gI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gH = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 18v-2", key: "qcmpov" }],
  ["path", { d: "M12 18v-4", key: "q1q25u" }],
  ["path", { d: "M16 18v-6", key: "15y0np" }]
];
const FileChartColumnIncreasing = createLucideIcon("file-chart-column-increasing", __iconNode$gH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gG = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 18v-1", key: "zg0ygc" }],
  ["path", { d: "M12 18v-6", key: "17g6i2" }],
  ["path", { d: "M16 18v-3", key: "j5jt4h" }]
];
const FileChartColumn = createLucideIcon("file-chart-column", __iconNode$gG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gF = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m16 13-3.5 3.5-2-2L8 17", key: "zz7yod" }]
];
const FileChartLine = createLucideIcon("file-chart-line", __iconNode$gF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gE = [
  [
    "path",
    {
      d: "M15.941 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.512",
      key: "13hoie"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M4.017 11.512a6 6 0 1 0 8.466 8.475", key: "s6vs5t" }],
  [
    "path",
    {
      d: "M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z",
      key: "1dl6s6"
    }
  ]
];
const FileChartPie = createLucideIcon("file-chart-pie", __iconNode$gE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gD = [
  [
    "path",
    {
      d: "M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",
      key: "g5mvt7"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m14 20 2 2 4-4", key: "15kota" }]
];
const FileCheckCorner = createLucideIcon("file-check-corner", __iconNode$gD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gC = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m9 15 2 2 4-4", key: "1grp1n" }]
];
const FileCheck = createLucideIcon("file-check", __iconNode$gC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gB = [
  [
    "path",
    {
      d: "M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",
      key: "1wthlu"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m5 16-3 3 3 3", key: "331omg" }],
  ["path", { d: "m9 22 3-3-3-3", key: "lsp7cz" }]
];
const FileCodeCorner = createLucideIcon("file-code-corner", __iconNode$gB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gA = [
  [
    "path",
    {
      d: "M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85",
      key: "ryk6xj"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 14v2.2l1.6 1", key: "6m4bie" }],
  ["circle", { cx: "8", cy: "16", r: "6", key: "10v15b" }]
];
const FileClock = createLucideIcon("file-clock", __iconNode$gA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gz = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M10 12.5 8 15l2 2.5", key: "1tg20x" }],
  ["path", { d: "m14 12.5 2 2.5-2 2.5", key: "yinavb" }]
];
const FileCode = createLucideIcon("file-code", __iconNode$gz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gy = [
  [
    "path",
    {
      d: "M13.85 22H18a2 2 0 0 0 2-2V8a2 2 0 0 0-.586-1.414l-4-4A2 2 0 0 0 14 2H6a2 2 0 0 0-2 2v6.6",
      key: "1l4p50"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m3.305 19.53.923-.382", key: "ao1pio" }],
  ["path", { d: "m4.228 16.852-.924-.383", key: "1fv9zy" }],
  ["path", { d: "m5.852 15.228-.383-.923", key: "1a9hc2" }],
  ["path", { d: "m5.852 20.772-.383.924", key: "1sh9ke" }],
  ["path", { d: "m8.148 15.228.383-.923", key: "4yu6lf" }],
  ["path", { d: "m8.53 21.696-.382-.924", key: "18b0s9" }],
  ["path", { d: "m9.773 16.852.922-.383", key: "ti6xop" }],
  ["path", { d: "m9.773 19.148.922.383", key: "rws47d" }],
  ["circle", { cx: "7", cy: "18", r: "3", key: "lvkj7j" }]
];
const FileCog = createLucideIcon("file-cog", __iconNode$gy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gx = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M9 10h6", key: "9gxzsh" }],
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  ["path", { d: "M9 17h6", key: "r8uit2" }]
];
const FileDiff = createLucideIcon("file-diff", __iconNode$gx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gw = [
  [
    "path",
    {
      d: "M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2",
      key: "jrl274"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M10 16h2v6", key: "1bxocy" }],
  ["path", { d: "M10 22h4", key: "ceow96" }],
  ["rect", { x: "2", y: "16", width: "4", height: "6", rx: "2", key: "r45zd0" }]
];
const FileDigit = createLucideIcon("file-digit", __iconNode$gw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gv = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M12 18v-6", key: "17g6i2" }],
  ["path", { d: "m9 15 3 3 3-3", key: "1npd3o" }]
];
const FileDown = createLucideIcon("file-down", __iconNode$gv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gu = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M12 9v4", key: "juzpu7" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }]
];
const FileExclamationPoint = createLucideIcon("file-exclamation-point", __iconNode$gu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gt = [
  [
    "path",
    {
      d: "M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343",
      key: "1vfytu"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0",
      key: "1etmh7"
    }
  ]
];
const FileHeadphone = createLucideIcon("file-headphone", __iconNode$gt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gs = [
  [
    "path",
    {
      d: "M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v7",
      key: "oagw2b"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "M3.62 18.8A2.25 2.25 0 1 1 7 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a1 1 0 0 1-1.507 0z",
      key: "rg3psg"
    }
  ]
];
const FileHeart = createLucideIcon("file-heart", __iconNode$gs);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gr = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["circle", { cx: "10", cy: "12", r: "2", key: "737tya" }],
  ["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22", key: "wt3hpn" }]
];
const FileImage = createLucideIcon("file-image", __iconNode$gr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gq = [
  [
    "path",
    {
      d: "M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1",
      key: "1q9hii"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M2 15h10", key: "jfw4w8" }],
  ["path", { d: "m9 18 3-3-3-3", key: "112psh" }]
];
const FileInput = createLucideIcon("file-input", __iconNode$gq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gp = [
  [
    "path",
    {
      d: "M10.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.1",
      key: "1a2hbp"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m10 15 1 1", key: "1h4vmv" }],
  ["path", { d: "m11 14-4.586 4.586", key: "maylof" }],
  ["circle", { cx: "5", cy: "20", r: "2", key: "860zyv" }]
];
const FileKey = createLucideIcon("file-key", __iconNode$gp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$go = [
  [
    "path",
    {
      d: "M4 9.8V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3",
      key: "1432pc"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M9 17v-2a2 2 0 0 0-4 0v2", key: "168m41" }],
  ["rect", { width: "8", height: "5", x: "3", y: "17", rx: "1", key: "o8vfew" }]
];
const FileLock = createLucideIcon("file-lock", __iconNode$go);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gn = [
  [
    "path",
    {
      d: "M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12",
      key: "l9p8hp"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M14 18h6", key: "1m8k6r" }]
];
const FileMinusCorner = createLucideIcon("file-minus-corner", __iconNode$gn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gm = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M9 15h6", key: "cctwl0" }]
];
const FileMinus = createLucideIcon("file-minus", __iconNode$gm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gl = [
  [
    "path",
    {
      d: "M11.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.35",
      key: "5ad7z2"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 20v-7l3 1.474", key: "1ggyb9" }],
  ["circle", { cx: "6", cy: "20", r: "2", key: "j7wjp0" }]
];
const FileMusic = createLucideIcon("file-music", __iconNode$gl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gk = [
  [
    "path",
    {
      d: "M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127",
      key: "wfxp4w"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m5 11-3 3", key: "1dgrs4" }],
  ["path", { d: "m5 17-3-3h10", key: "1mvvaf" }]
];
const FileOutput = createLucideIcon("file-output", __iconNode$gk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gj = [
  [
    "path",
    {
      d: "m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351",
      key: "1k2beg"
    }
  ],
  [
    "path",
    {
      d: "M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "2t3380"
    }
  ],
  ["path", { d: "M8 18h1", key: "13wk12" }]
];
const FilePenLine = createLucideIcon("file-pen-line", __iconNode$gj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gi = [
  [
    "path",
    {
      d: "M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",
      key: "o6klzx"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",
      key: "zhnas1"
    }
  ]
];
const FilePen = createLucideIcon("file-pen", __iconNode$gi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gh = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",
      key: "1tzo1f"
    }
  ]
];
const FilePlay = createLucideIcon("file-play", __iconNode$gh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gg = [
  [
    "path",
    {
      d: "M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",
      key: "17jvcc"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M14 19h6", key: "bvotb8" }],
  ["path", { d: "M17 16v6", key: "18yu1i" }]
];
const FilePlusCorner = createLucideIcon("file-plus-corner", __iconNode$gg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gf = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M9 15h6", key: "cctwl0" }],
  ["path", { d: "M12 18v-6", key: "17g6i2" }]
];
const FilePlus = createLucideIcon("file-plus", __iconNode$gf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ge = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M12 17h.01", key: "p32p05" }],
  ["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
];
const FileQuestionMark = createLucideIcon("file-question-mark", __iconNode$ge);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gd = [
  [
    "path",
    {
      d: "M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35",
      key: "1cdjst"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M16 14a2 2 0 0 0-2 2", key: "ceaadl" }],
  ["path", { d: "M16 22a2 2 0 0 1-2-2", key: "1wqh5n" }],
  ["path", { d: "M20 14a2 2 0 0 1 2 2", key: "1ny6zw" }],
  ["path", { d: "M20 22a2 2 0 0 0 2-2", key: "1l9q4k" }]
];
const FileScan = createLucideIcon("file-scan", __iconNode$gd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gc = [
  [
    "path",
    {
      d: "M11.1 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.589 3.588A2.4 2.4 0 0 1 20 8v3.25",
      key: "uh4ikj"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m21 22-2.88-2.88", key: "9dd25w" }],
  ["circle", { cx: "16", cy: "17", r: "3", key: "11br10" }]
];
const FileSearchCorner = createLucideIcon("file-search-corner", __iconNode$gc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$gb = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["circle", { cx: "11.5", cy: "14.5", r: "2.5", key: "1bq0ko" }],
  ["path", { d: "M13.3 16.3 15 18", key: "2quom7" }]
];
const FileSearch = createLucideIcon("file-search", __iconNode$gb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ga = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "M10 11v2", key: "1s651w" }],
  ["path", { d: "M8 17h8", key: "wh5c61" }],
  ["path", { d: "M14 16v2", key: "12fp5e" }]
];
const FileSliders = createLucideIcon("file-sliders", __iconNode$ga);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g9 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 15h.01", key: "a7atzg" }],
  ["path", { d: "M11.5 13.5a2.5 2.5 0 0 1 0 3", key: "1fccat" }],
  ["path", { d: "M15 12a5 5 0 0 1 0 6", key: "ps46cm" }]
];
const FileSignal = createLucideIcon("file-signal", __iconNode$g9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g8 = [
  ["path", { d: "M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1", key: "likhh7" }],
  ["path", { d: "M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1", key: "17ky3x" }],
  [
    "path",
    {
      d: "M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z",
      key: "1hyeo0"
    }
  ]
];
const FileStack = createLucideIcon("file-stack", __iconNode$g8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g7 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M8 13h2", key: "yr2amv" }],
  ["path", { d: "M14 13h2", key: "un5t4a" }],
  ["path", { d: "M8 17h2", key: "2yhykz" }],
  ["path", { d: "M14 17h2", key: "10kma7" }]
];
const FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode$g7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g6 = [
  [
    "path",
    {
      d: "M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",
      key: "huwfnr"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m10 18 3-3-3-3", key: "18f6ys" }]
];
const FileSymlink = createLucideIcon("file-symlink", __iconNode$g6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g5 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
  ["path", { d: "M16 13H8", key: "t4e002" }],
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
];
const FileText = createLucideIcon("file-text", __iconNode$g5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g4 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m8 16 2-2-2-2", key: "10vzyd" }],
  ["path", { d: "M12 18h4", key: "1wd2n7" }]
];
const FileTerminal = createLucideIcon("file-terminal", __iconNode$g4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g3 = [
  [
    "path",
    {
      d: "M12 22h6a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",
      key: "15usau"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M3 16v-1.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5V16", key: "s1gz5" }],
  ["path", { d: "M6 22h2", key: "194x9m" }],
  ["path", { d: "M7 14v8", key: "11ixej" }]
];
const FileTypeCorner = createLucideIcon("file-type-corner", __iconNode$g3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g2 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M11 18h2", key: "12mj7e" }],
  ["path", { d: "M12 12v6", key: "3ahymv" }],
  ["path", { d: "M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5", key: "qbrxap" }]
];
const FileType = createLucideIcon("file-type", __iconNode$g2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g1 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M12 12v6", key: "3ahymv" }],
  ["path", { d: "m15 15-3-3-3 3", key: "15xj92" }]
];
const FileUp = createLucideIcon("file-up", __iconNode$g1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g0 = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M16 22a4 4 0 0 0-8 0", key: "7a83pg" }],
  ["circle", { cx: "12", cy: "15", r: "3", key: "g36mzq" }]
];
const FileUser = createLucideIcon("file-user", __iconNode$g0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f$ = [
  [
    "path",
    {
      d: "M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2",
      key: "jrl274"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  [
    "path",
    {
      d: "m10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157",
      key: "17aeo9"
    }
  ],
  ["rect", { width: "7", height: "6", x: "3", y: "16", rx: "1", key: "s27ndx" }]
];
const FileVideoCamera = createLucideIcon("file-video-camera", __iconNode$f$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f_ = [
  [
    "path",
    {
      d: "M4 11.55V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-1.95",
      key: "44gpjv"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M12 15a5 5 0 0 1 0 6", key: "oxg87a" }],
  [
    "path",
    {
      d: "M8 14.502a.5.5 0 0 0-.826-.381l-1.893 1.631a1 1 0 0 1-.651.243H3.5a.5.5 0 0 0-.5.501v3.006a.5.5 0 0 0 .5.501h1.129a1 1 0 0 1 .652.243l1.893 1.633a.5.5 0 0 0 .826-.38z",
      key: "8rtoi1"
    }
  ]
];
const FileVolume = createLucideIcon("file-volume", __iconNode$f_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fZ = [
  [
    "path",
    {
      d: "M11 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5",
      key: "1jo35a"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m15 17 5 5", key: "36xl1x" }],
  ["path", { d: "m20 17-5 5", key: "vdz27y" }]
];
const FileXCorner = createLucideIcon("file-x-corner", __iconNode$fZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fY = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "m14.5 12.5-5 5", key: "b62r18" }],
  ["path", { d: "m9.5 12.5 5 5", key: "1rk7el" }]
];
const FileX = createLucideIcon("file-x", __iconNode$fY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fX = [
  [
    "path",
    {
      d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
      key: "1oefj6"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
];
const File = createLucideIcon("file", __iconNode$fX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fW = [
  ["path", { d: "M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8", key: "14sh0y" }],
  [
    "path",
    {
      d: "M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",
      key: "1970lx"
    }
  ],
  ["path", { d: "M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1", key: "l4dndm" }]
];
const Files = createLucideIcon("files", __iconNode$fW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fV = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 3v18", key: "bbkbws" }],
  ["path", { d: "M3 7.5h4", key: "zfgn84" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }],
  ["path", { d: "M3 16.5h4", key: "1230mu" }],
  ["path", { d: "M17 3v18", key: "in4fa5" }],
  ["path", { d: "M17 7.5h4", key: "myr1c1" }],
  ["path", { d: "M17 16.5h4", key: "go4c1d" }]
];
const Film = createLucideIcon("film", __iconNode$fV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fU = [
  ["path", { d: "M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4", key: "1nerag" }],
  ["path", { d: "M14 13.12c0 2.38 0 6.38-1 8.88", key: "o46ks0" }],
  ["path", { d: "M17.29 21.02c.12-.6.43-2.3.5-3.02", key: "ptglia" }],
  ["path", { d: "M2 12a10 10 0 0 1 18-6", key: "ydlgp0" }],
  ["path", { d: "M2 16h.01", key: "1gqxmh" }],
  ["path", { d: "M21.8 16c.2-2 .131-5.354 0-6", key: "drycrb" }],
  ["path", { d: "M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2", key: "1tidbn" }],
  ["path", { d: "M8.65 22c.21-.66.45-1.32.57-2", key: "13wd9y" }],
  ["path", { d: "M9 6.8a6 6 0 0 1 9 5.2v2", key: "1fr1j5" }]
];
const FingerprintPattern = createLucideIcon("fingerprint-pattern", __iconNode$fU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fT = [
  ["path", { d: "M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5", key: "sqyvz" }],
  ["path", { d: "M9 18h8", key: "i7pszb" }],
  ["path", { d: "M18 3h-3", key: "7idoqj" }],
  ["path", { d: "M11 3a6 6 0 0 0-6 6v11", key: "1v5je3" }],
  ["path", { d: "M5 13h4", key: "svpcxo" }],
  ["path", { d: "M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z", key: "vsjego" }]
];
const FireExtinguisher = createLucideIcon("fire-extinguisher", __iconNode$fT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fS = [
  [
    "path",
    {
      d: "M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058",
      key: "1j1hse"
    }
  ],
  [
    "path",
    {
      d: "M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618",
      key: "1q46z8"
    }
  ],
  [
    "path",
    {
      d: "m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20",
      key: "1407gh"
    }
  ]
];
const FishOff = createLucideIcon("fish-off", __iconNode$fS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fR = [
  ["path", { d: "M2 16s9-15 20-4C11 23 2 8 2 8", key: "h4oh4o" }]
];
const FishSymbol = createLucideIcon("fish-symbol", __iconNode$fR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fQ = [
  [
    "path",
    {
      d: "M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z",
      key: "15baut"
    }
  ],
  ["path", { d: "M18 12v.5", key: "18hhni" }],
  ["path", { d: "M16 17.93a9.77 9.77 0 0 1 0-11.86", key: "16dt7o" }],
  [
    "path",
    {
      d: "M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33",
      key: "l9di03"
    }
  ],
  [
    "path",
    { d: "M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4", key: "1kjonw" }
  ],
  [
    "path",
    { d: "m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98", key: "1zlm23" }
  ]
];
const Fish = createLucideIcon("fish", __iconNode$fQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fP = [
  ["path", { d: "M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528", key: "1q158e" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M4 22V4", key: "1plyxx" }],
  ["path", { d: "M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347", key: "xj1b71" }]
];
const FlagOff = createLucideIcon("flag-off", __iconNode$fP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fO = [
  [
    "path",
    { d: "M18 22V2.8a.8.8 0 0 0-1.17-.71L5.45 7.78a.8.8 0 0 0 0 1.44L18 15.5", key: "rbbtmw" }
  ]
];
const FlagTriangleLeft = createLucideIcon("flag-triangle-left", __iconNode$fO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fN = [
  [
    "path",
    { d: "M6 22V2.8a.8.8 0 0 1 1.17-.71l11.38 5.69a.8.8 0 0 1 0 1.44L6 15.5", key: "kfjsu0" }
  ]
];
const FlagTriangleRight = createLucideIcon("flag-triangle-right", __iconNode$fN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fM = [
  [
    "path",
    {
      d: "M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",
      key: "1jaruq"
    }
  ]
];
const Flag = createLucideIcon("flag", __iconNode$fM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fL = [
  [
    "path",
    {
      d: "M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z",
      key: "1ir223"
    }
  ],
  ["path", { d: "m5 22 14-4", key: "1brv4h" }],
  ["path", { d: "m5 18 14 4", key: "lgyyje" }]
];
const FlameKindling = createLucideIcon("flame-kindling", __iconNode$fL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fK = [
  ["path", { d: "M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4", key: "1r120k" }],
  ["path", { d: "M7 2h11v4c0 2-2 2-2 4v1", key: "dz1920" }],
  ["line", { x1: "11", x2: "18", y1: "6", y2: "6", key: "bi1vpe" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const FlashlightOff = createLucideIcon("flashlight-off", __iconNode$fK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fJ = [
  [
    "path",
    {
      d: "M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4",
      key: "1slcih"
    }
  ]
];
const Flame = createLucideIcon("flame", __iconNode$fJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fI = [
  [
    "path",
    {
      d: "M18 6c0 2-2 2-2 4v10a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V10c0-2-2-2-2-4V2h12z",
      key: "1orkel"
    }
  ],
  ["line", { x1: "6", x2: "18", y1: "6", y2: "6", key: "1z11jq" }],
  ["line", { x1: "12", x2: "12", y1: "12", y2: "12", key: "1f4yc1" }]
];
const Flashlight = createLucideIcon("flashlight", __iconNode$fI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fH = [
  ["path", { d: "M10 2v2.343", key: "15t272" }],
  ["path", { d: "M14 2v6.343", key: "sxr80q" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563", key: "k0duyd" }],
  ["path", { d: "M6.453 15H15", key: "1f0z33" }],
  ["path", { d: "M8.5 2h7", key: "csnxdl" }]
];
const FlaskConicalOff = createLucideIcon("flask-conical-off", __iconNode$fH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fG = [
  [
    "path",
    {
      d: "M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",
      key: "18mbvz"
    }
  ],
  ["path", { d: "M6.453 15h11.094", key: "3shlmq" }],
  ["path", { d: "M8.5 2h7", key: "csnxdl" }]
];
const FlaskConical = createLucideIcon("flask-conical", __iconNode$fG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fF = [
  ["path", { d: "M10 2v6.292a7 7 0 1 0 4 0V2", key: "1s42pc" }],
  ["path", { d: "M5 15h14", key: "m0yey3" }],
  ["path", { d: "M8.5 2h7", key: "csnxdl" }]
];
const FlaskRound = createLucideIcon("flask-round", __iconNode$fF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fE = [
  ["path", { d: "m3 7 5 5-5 5V7", key: "couhi7" }],
  ["path", { d: "m21 7-5 5 5 5V7", key: "6ouia7" }],
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "M12 14v2", key: "8jcxud" }],
  ["path", { d: "M12 8v2", key: "1woqiv" }],
  ["path", { d: "M12 2v2", key: "tus03m" }]
];
const FlipHorizontal2 = createLucideIcon("flip-horizontal-2", __iconNode$fE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fD = [
  ["path", { d: "M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3", key: "1i73f7" }],
  ["path", { d: "M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3", key: "saxlbk" }],
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "M12 14v2", key: "8jcxud" }],
  ["path", { d: "M12 8v2", key: "1woqiv" }],
  ["path", { d: "M12 2v2", key: "tus03m" }]
];
const FlipHorizontal = createLucideIcon("flip-horizontal", __iconNode$fD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fC = [
  ["path", { d: "m17 3-5 5-5-5h10", key: "1ftt6x" }],
  ["path", { d: "m17 21-5-5-5 5h10", key: "1m0wmu" }],
  ["path", { d: "M4 12H2", key: "rhcxmi" }],
  ["path", { d: "M10 12H8", key: "s88cx1" }],
  ["path", { d: "M16 12h-2", key: "10asgb" }],
  ["path", { d: "M22 12h-2", key: "14jgyd" }]
];
const FlipVertical2 = createLucideIcon("flip-vertical-2", __iconNode$fC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fB = [
  ["path", { d: "M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3", key: "14bfxa" }],
  ["path", { d: "M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3", key: "14rx03" }],
  ["path", { d: "M4 12H2", key: "rhcxmi" }],
  ["path", { d: "M10 12H8", key: "s88cx1" }],
  ["path", { d: "M16 12h-2", key: "10asgb" }],
  ["path", { d: "M22 12h-2", key: "14jgyd" }]
];
const FlipVertical = createLucideIcon("flip-vertical", __iconNode$fB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fA = [
  [
    "path",
    {
      d: "M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1",
      key: "3pnvol"
    }
  ],
  ["circle", { cx: "12", cy: "8", r: "2", key: "1822b1" }],
  ["path", { d: "M12 10v12", key: "6ubwww" }],
  ["path", { d: "M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z", key: "9hd38g" }],
  ["path", { d: "M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z", key: "ufn41s" }]
];
const Flower2 = createLucideIcon("flower-2", __iconNode$fA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fz = [
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  [
    "path",
    {
      d: "M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5",
      key: "14wa3c"
    }
  ],
  ["path", { d: "M12 7.5V9", key: "1oy5b0" }],
  ["path", { d: "M7.5 12H9", key: "eltsq1" }],
  ["path", { d: "M16.5 12H15", key: "vk5kw4" }],
  ["path", { d: "M12 16.5V15", key: "k7eayi" }],
  ["path", { d: "m8 8 1.88 1.88", key: "nxy4qf" }],
  ["path", { d: "M14.12 9.88 16 8", key: "1lst6k" }],
  ["path", { d: "m8 16 1.88-1.88", key: "h2eex1" }],
  ["path", { d: "M14.12 14.12 16 16", key: "uqkrx3" }]
];
const Flower = createLucideIcon("flower", __iconNode$fz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fy = [
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }]
];
const Focus = createLucideIcon("focus", __iconNode$fy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fx = [
  ["path", { d: "M2 12h6", key: "1wqiqv" }],
  ["path", { d: "M22 12h-6", key: "1eg9hc" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M12 8v2", key: "1woqiv" }],
  ["path", { d: "M12 14v2", key: "8jcxud" }],
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "m19 9-3 3 3 3", key: "12ol22" }],
  ["path", { d: "m5 15 3-3-3-3", key: "1kdhjc" }]
];
const FoldHorizontal = createLucideIcon("fold-horizontal", __iconNode$fx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fw = [
  ["path", { d: "M12 22v-6", key: "6o8u61" }],
  ["path", { d: "M12 8V2", key: "1wkif3" }],
  ["path", { d: "M4 12H2", key: "rhcxmi" }],
  ["path", { d: "M10 12H8", key: "s88cx1" }],
  ["path", { d: "M16 12h-2", key: "10asgb" }],
  ["path", { d: "M22 12h-2", key: "14jgyd" }],
  ["path", { d: "m15 19-3-3-3 3", key: "e37ymu" }],
  ["path", { d: "m15 5-3 3-3-3", key: "19d6lf" }]
];
const FoldVertical = createLucideIcon("fold-vertical", __iconNode$fw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fv = [
  ["circle", { cx: "15", cy: "19", r: "2", key: "u2pros" }],
  [
    "path",
    {
      d: "M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1",
      key: "1jj40k"
    }
  ],
  ["path", { d: "M15 11v-1", key: "cntcp" }],
  ["path", { d: "M15 17v-2", key: "1279jj" }]
];
const FolderArchive = createLucideIcon("folder-archive", __iconNode$fv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fu = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "m9 13 2 2 4-4", key: "6343dt" }]
];
const FolderCheck = createLucideIcon("folder-check", __iconNode$fu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ft = [
  ["path", { d: "M16 14v2.2l1.6 1", key: "fo4ql5" }],
  [
    "path",
    {
      d: "M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2",
      key: "1urifu"
    }
  ],
  ["circle", { cx: "16", cy: "16", r: "6", key: "qoo3c4" }]
];
const FolderClock = createLucideIcon("folder-clock", __iconNode$ft);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fs = [
  ["path", { d: "M10 10.5 8 13l2 2.5", key: "m4t9c1" }],
  ["path", { d: "m14 10.5 2 2.5-2 2.5", key: "14w2eb" }],
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z",
      key: "1u1bxd"
    }
  ]
];
const FolderCode = createLucideIcon("folder-code", __iconNode$fs);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fr = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "M2 10h20", key: "1ir3d8" }]
];
const FolderClosed = createLucideIcon("folder-closed", __iconNode$fr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fq = [
  [
    "path",
    {
      d: "M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",
      key: "128dxu"
    }
  ],
  ["path", { d: "m14.305 19.53.923-.382", key: "3m78fa" }],
  ["path", { d: "m15.228 16.852-.923-.383", key: "npixar" }],
  ["path", { d: "m16.852 15.228-.383-.923", key: "5xggr7" }],
  ["path", { d: "m16.852 20.772-.383.924", key: "dpfhf9" }],
  ["path", { d: "m19.148 15.228.383-.923", key: "1reyyz" }],
  ["path", { d: "m19.53 21.696-.382-.924", key: "1goivc" }],
  ["path", { d: "m20.772 16.852.924-.383", key: "htqkph" }],
  ["path", { d: "m20.772 19.148.924.383", key: "9w9pjp" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const FolderCog = createLucideIcon("folder-cog", __iconNode$fq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fp = [
  [
    "path",
    {
      d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",
      key: "1fr9dc"
    }
  ],
  ["circle", { cx: "12", cy: "13", r: "1", key: "49l61u" }]
];
const FolderDot = createLucideIcon("folder-dot", __iconNode$fp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fo = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "M12 10v6", key: "1bos4e" }],
  ["path", { d: "m15 13-3 3-3-3", key: "6j2sf0" }]
];
const FolderDown = createLucideIcon("folder-down", __iconNode$fo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fn = [
  ["path", { d: "M18 19a5 5 0 0 1-5-5v8", key: "sz5oeg" }],
  [
    "path",
    {
      d: "M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",
      key: "1w6njk"
    }
  ],
  ["circle", { cx: "13", cy: "12", r: "2", key: "1j92g6" }],
  ["circle", { cx: "20", cy: "19", r: "2", key: "1obnsp" }]
];
const FolderGit2 = createLucideIcon("folder-git-2", __iconNode$fn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fm = [
  ["circle", { cx: "12", cy: "13", r: "2", key: "1c1ljs" }],
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "M14 13h3", key: "1dgedf" }],
  ["path", { d: "M7 13h3", key: "1pygq7" }]
];
const FolderGit = createLucideIcon("folder-git", __iconNode$fm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fl = [
  [
    "path",
    {
      d: "M10.638 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v3.417",
      key: "10r6g4"
    }
  ],
  [
    "path",
    {
      d: "M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z",
      key: "15cy7q"
    }
  ]
];
const FolderHeart = createLucideIcon("folder-heart", __iconNode$fl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fk = [
  [
    "path",
    {
      d: "M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",
      key: "fm4g5t"
    }
  ],
  ["path", { d: "M2 13h10", key: "pgb2dq" }],
  ["path", { d: "m9 16 3-3-3-3", key: "6m91ic" }]
];
const FolderInput = createLucideIcon("folder-input", __iconNode$fk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fj = [
  [
    "path",
    {
      d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",
      key: "1fr9dc"
    }
  ],
  ["path", { d: "M8 10v4", key: "tgpxqk" }],
  ["path", { d: "M12 10v2", key: "hh53o1" }],
  ["path", { d: "M16 10v6", key: "1d6xys" }]
];
const FolderKanban = createLucideIcon("folder-kanban", __iconNode$fj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fi = [
  ["circle", { cx: "16", cy: "20", r: "2", key: "1vifvg" }],
  [
    "path",
    {
      d: "M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2",
      key: "3hgo9p"
    }
  ],
  ["path", { d: "m22 14-4.5 4.5", key: "1ef6z8" }],
  ["path", { d: "m21 15 1 1", key: "1ejcpy" }]
];
const FolderKey = createLucideIcon("folder-key", __iconNode$fi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fh = [
  ["rect", { width: "8", height: "5", x: "14", y: "17", rx: "1", key: "19aais" }],
  [
    "path",
    {
      d: "M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5",
      key: "1w6v7t"
    }
  ],
  ["path", { d: "M20 17v-2a2 2 0 1 0-4 0v2", key: "pwaxnr" }]
];
const FolderLock = createLucideIcon("folder-lock", __iconNode$fh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fg = [
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ]
];
const FolderMinus = createLucideIcon("folder-minus", __iconNode$fg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ff = [
  [
    "path",
    {
      d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",
      key: "usdka0"
    }
  ]
];
const FolderOpen = createLucideIcon("folder-open", __iconNode$ff);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fe = [
  [
    "path",
    {
      d: "m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2",
      key: "1nmvlm"
    }
  ],
  ["circle", { cx: "14", cy: "15", r: "1", key: "1gm4qj" }]
];
const FolderOpenDot = createLucideIcon("folder-open-dot", __iconNode$fe);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fd = [
  [
    "path",
    {
      d: "M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5",
      key: "1yk7aj"
    }
  ],
  ["path", { d: "M2 13h10", key: "pgb2dq" }],
  ["path", { d: "m5 10-3 3 3 3", key: "1r8ie0" }]
];
const FolderOutput = createLucideIcon("folder-output", __iconNode$fd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fc = [
  [
    "path",
    {
      d: "M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5",
      key: "a8xqs0"
    }
  ],
  [
    "path",
    {
      d: "M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1saktj"
    }
  ]
];
const FolderPen = createLucideIcon("folder-pen", __iconNode$fc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fb = [
  ["path", { d: "M12 10v6", key: "1bos4e" }],
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ]
];
const FolderPlus = createLucideIcon("folder-plus", __iconNode$fb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$fa = [
  [
    "path",
    {
      d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",
      key: "1fr9dc"
    }
  ],
  ["circle", { cx: "12", cy: "13", r: "2", key: "1c1ljs" }],
  ["path", { d: "M12 15v5", key: "11xva1" }]
];
const FolderRoot = createLucideIcon("folder-root", __iconNode$fa);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f9 = [
  ["circle", { cx: "11.5", cy: "12.5", r: "2.5", key: "1ea5ju" }],
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "M13.3 14.3 15 16", key: "1y4v1n" }]
];
const FolderSearch2 = createLucideIcon("folder-search-2", __iconNode$f9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f8 = [
  [
    "path",
    {
      d: "M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",
      key: "1bw5m7"
    }
  ],
  ["path", { d: "m21 21-1.9-1.9", key: "1g2n9r" }],
  ["circle", { cx: "17", cy: "17", r: "3", key: "18b49y" }]
];
const FolderSearch = createLucideIcon("folder-search", __iconNode$f8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f7 = [
  [
    "path",
    {
      d: "M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",
      key: "y8kt7d"
    }
  ],
  ["path", { d: "m8 16 3-3-3-3", key: "rlqrt1" }]
];
const FolderSymlink = createLucideIcon("folder-symlink", __iconNode$f7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f6 = [
  [
    "path",
    {
      d: "M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5",
      key: "1dkoa9"
    }
  ],
  ["path", { d: "M12 10v4h4", key: "1czhmt" }],
  ["path", { d: "m12 14 1.535-1.605a5 5 0 0 1 8 1.5", key: "lvuxfi" }],
  ["path", { d: "M22 22v-4h-4", key: "1ewp4q" }],
  ["path", { d: "m22 18-1.535 1.605a5 5 0 0 1-8-1.5", key: "14ync0" }]
];
const FolderSync = createLucideIcon("folder-sync", __iconNode$f6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f5 = [
  [
    "path",
    {
      d: "M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",
      key: "hod4my"
    }
  ],
  [
    "path",
    {
      d: "M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",
      key: "w4yl2u"
    }
  ],
  ["path", { d: "M3 5a2 2 0 0 0 2 2h3", key: "f2jnh7" }],
  ["path", { d: "M3 3v13a2 2 0 0 0 2 2h3", key: "k8epm1" }]
];
const FolderTree = createLucideIcon("folder-tree", __iconNode$f5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f4 = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "M12 10v6", key: "1bos4e" }],
  ["path", { d: "m9 13 3-3 3 3", key: "1pxg3c" }]
];
const FolderUp = createLucideIcon("folder-up", __iconNode$f4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f3 = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ],
  ["path", { d: "m9.5 10.5 5 5", key: "ra9qjz" }],
  ["path", { d: "m14.5 10.5-5 5", key: "l2rkpq" }]
];
const FolderX = createLucideIcon("folder-x", __iconNode$f3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f2 = [
  [
    "path",
    {
      d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
      key: "1kt360"
    }
  ]
];
const Folder = createLucideIcon("folder", __iconNode$f2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f1 = [
  [
    "path",
    {
      d: "M20 5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2.5a1.5 1.5 0 0 1 1.2.6l.6.8a1.5 1.5 0 0 0 1.2.6z",
      key: "a4852j"
    }
  ],
  [
    "path",
    { d: "M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1", key: "yxbcw3" }
  ]
];
const Folders = createLucideIcon("folders", __iconNode$f1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f0 = [
  [
    "path",
    {
      d: "M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z",
      key: "1dudjm"
    }
  ],
  [
    "path",
    {
      d: "M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z",
      key: "l2t8xc"
    }
  ],
  ["path", { d: "M16 17h4", key: "1dejxt" }],
  ["path", { d: "M4 13h4", key: "1bwh8b" }]
];
const Footprints = createLucideIcon("footprints", __iconNode$f0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e$ = [
  ["path", { d: "M12 12H5a2 2 0 0 0-2 2v5", key: "7zsz91" }],
  ["circle", { cx: "13", cy: "19", r: "2", key: "wjnkru" }],
  ["circle", { cx: "5", cy: "19", r: "2", key: "v8kfzx" }],
  ["path", { d: "M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5", key: "13bk1p" }]
];
const Forklift = createLucideIcon("forklift", __iconNode$e$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e_ = [
  ["path", { d: "M4 14h6", key: "77gv2w" }],
  ["path", { d: "M4 2h10", key: "a2b314" }],
  ["rect", { x: "4", y: "18", width: "16", height: "4", rx: "1", key: "sybzq6" }],
  ["rect", { x: "4", y: "6", width: "16", height: "4", rx: "1", key: "1osc9e" }]
];
const Form = createLucideIcon("form", __iconNode$e_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eZ = [
  ["path", { d: "m15 17 5-5-5-5", key: "nf172w" }],
  ["path", { d: "M4 18v-2a4 4 0 0 1 4-4h12", key: "jmiej9" }]
];
const Forward = createLucideIcon("forward", __iconNode$eZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eY = [
  ["line", { x1: "22", x2: "2", y1: "6", y2: "6", key: "15w7dq" }],
  ["line", { x1: "22", x2: "2", y1: "18", y2: "18", key: "1ip48p" }],
  ["line", { x1: "6", x2: "6", y1: "2", y2: "22", key: "a2lnyx" }],
  ["line", { x1: "18", x2: "18", y1: "2", y2: "22", key: "8vb6jd" }]
];
const Frame = createLucideIcon("frame", __iconNode$eY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eX = [
  ["path", { d: "M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7", key: "1a2nng" }]
];
const Framer = createLucideIcon("framer", __iconNode$eX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eW = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M16 16s-1.5-2-4-2-4 2-4 2", key: "epbg0q" }],
  ["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
  ["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
];
const Frown = createLucideIcon("frown", __iconNode$eW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eV = [
  [
    "path",
    { d: "M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5", key: "1wtuz0" }
  ],
  ["path", { d: "M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16", key: "e09ifn" }],
  ["path", { d: "M2 21h13", key: "1x0fut" }],
  ["path", { d: "M3 9h11", key: "1p7c0w" }]
];
const Fuel = createLucideIcon("fuel", __iconNode$eV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eU = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["rect", { width: "10", height: "8", x: "7", y: "8", rx: "1", key: "vys8me" }]
];
const Fullscreen = createLucideIcon("fullscreen", __iconNode$eU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eT = [
  [
    "path",
    {
      d: "M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473",
      key: "ol2ft2"
    }
  ],
  ["path", { d: "m16.5 3.5 5 5", key: "15e6fa" }],
  ["path", { d: "m21.5 3.5-5 5", key: "m0lwru" }]
];
const FunnelX = createLucideIcon("funnel-x", __iconNode$eT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eS = [
  [
    "path",
    {
      d: "M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348",
      key: "8mvsmf"
    }
  ],
  ["path", { d: "M16 6h6", key: "1dogtp" }],
  ["path", { d: "M19 3v6", key: "1ytpjt" }]
];
const FunnelPlus = createLucideIcon("funnel-plus", __iconNode$eS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eR = [
  [
    "path",
    {
      d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
      key: "sc7q7i"
    }
  ]
];
const Funnel = createLucideIcon("funnel", __iconNode$eR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eQ = [
  ["path", { d: "M2 3v18", key: "pzttux" }],
  ["rect", { width: "12", height: "18", x: "6", y: "3", rx: "2", key: "btr8bg" }],
  ["path", { d: "M22 3v18", key: "6jf3v" }]
];
const GalleryHorizontal = createLucideIcon("gallery-horizontal", __iconNode$eQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eP = [
  ["path", { d: "M2 7v10", key: "a2pl2d" }],
  ["path", { d: "M6 5v14", key: "1kq3d7" }],
  ["rect", { width: "12", height: "18", x: "10", y: "3", rx: "2", key: "13i7bc" }]
];
const GalleryHorizontalEnd = createLucideIcon("gallery-horizontal-end", __iconNode$eP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eO = [
  ["rect", { width: "18", height: "14", x: "3", y: "3", rx: "2", key: "74y24f" }],
  ["path", { d: "M4 21h1", key: "16zlid" }],
  ["path", { d: "M9 21h1", key: "15o7lz" }],
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "M19 21h1", key: "edywat" }]
];
const GalleryThumbnails = createLucideIcon("gallery-thumbnails", __iconNode$eO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eN = [
  ["path", { d: "M7 2h10", key: "nczekb" }],
  ["path", { d: "M5 6h14", key: "u2x4p" }],
  ["rect", { width: "18", height: "12", x: "3", y: "10", rx: "2", key: "l0tzu3" }]
];
const GalleryVerticalEnd = createLucideIcon("gallery-vertical-end", __iconNode$eN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eM = [
  ["path", { d: "M3 2h18", key: "15qxfx" }],
  ["rect", { width: "18", height: "12", x: "3", y: "6", rx: "2", key: "1439r6" }],
  ["path", { d: "M3 22h18", key: "8prr45" }]
];
const GalleryVertical = createLucideIcon("gallery-vertical", __iconNode$eM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eL = [
  ["line", { x1: "6", x2: "10", y1: "11", y2: "11", key: "1gktln" }],
  ["line", { x1: "8", x2: "8", y1: "9", y2: "13", key: "qnk9ow" }],
  ["line", { x1: "15", x2: "15.01", y1: "12", y2: "12", key: "krot7o" }],
  ["line", { x1: "18", x2: "18.01", y1: "10", y2: "10", key: "1lcuu1" }],
  [
    "path",
    {
      d: "M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",
      key: "mfqc10"
    }
  ]
];
const Gamepad2 = createLucideIcon("gamepad-2", __iconNode$eL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eK = [
  [
    "path",
    {
      d: "M11.146 15.854a1.207 1.207 0 0 1 1.708 0l1.56 1.56A2 2 0 0 1 15 18.828V21a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2.172a2 2 0 0 1 .586-1.414z",
      key: "1re2og"
    }
  ],
  [
    "path",
    {
      d: "M18.828 15a2 2 0 0 1-1.414-.586l-1.56-1.56a1.207 1.207 0 0 1 0-1.708l1.56-1.56A2 2 0 0 1 18.828 9H21a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1z",
      key: "1pchrj"
    }
  ],
  [
    "path",
    {
      d: "M6.586 14.414A2 2 0 0 1 5.172 15H3a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2.172a2 2 0 0 1 1.414.586l1.56 1.56a1.207 1.207 0 0 1 0 1.708z",
      key: "16mt4c"
    }
  ],
  [
    "path",
    {
      d: "M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2.172a2 2 0 0 1-.586 1.414l-1.56 1.56a1.207 1.207 0 0 1-1.708 0l-1.56-1.56A2 2 0 0 1 9 5.172z",
      key: "19ox6c"
    }
  ]
];
const GamepadDirectional = createLucideIcon("gamepad-directional", __iconNode$eK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eJ = [
  ["line", { x1: "6", x2: "10", y1: "12", y2: "12", key: "161bw2" }],
  ["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
  ["line", { x1: "15", x2: "15.01", y1: "13", y2: "13", key: "dqpgro" }],
  ["line", { x1: "18", x2: "18.01", y1: "11", y2: "11", key: "meh2c" }],
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }]
];
const Gamepad = createLucideIcon("gamepad", __iconNode$eJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eI = [
  ["path", { d: "m12 14 4-4", key: "9kzdfg" }],
  ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0", key: "19p75a" }]
];
const Gauge = createLucideIcon("gauge", __iconNode$eI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eH = [
  ["path", { d: "m14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381", key: "pgg06f" }],
  ["path", { d: "m16 16 6-6", key: "vzrcl6" }],
  ["path", { d: "m21.5 10.5-8-8", key: "a17d9x" }],
  ["path", { d: "m8 8 6-6", key: "18bi4p" }],
  ["path", { d: "m8.5 7.5 8 8", key: "1oyaui" }]
];
const Gavel = createLucideIcon("gavel", __iconNode$eH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eG = [
  ["path", { d: "M10.5 3 8 9l4 13 4-13-2.5-6", key: "b3dvk1" }],
  [
    "path",
    {
      d: "M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z",
      key: "7w4byz"
    }
  ],
  ["path", { d: "M2 9h20", key: "16fsjt" }]
];
const Gem = createLucideIcon("gem", __iconNode$eG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eF = [
  ["path", { d: "M11.5 21a7.5 7.5 0 1 1 7.35-9", key: "1gyj8k" }],
  ["path", { d: "M13 12V3", key: "18om2a" }],
  ["path", { d: "M4 21h16", key: "1h09gz" }],
  ["path", { d: "M9 12V3", key: "geutu0" }]
];
const GeorgianLari = createLucideIcon("georgian-lari", __iconNode$eF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eE = [
  ["path", { d: "M9 10h.01", key: "qbtxuw" }],
  ["path", { d: "M15 10h.01", key: "1qmjsl" }],
  [
    "path",
    {
      d: "M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z",
      key: "uwwb07"
    }
  ]
];
const Ghost = createLucideIcon("ghost", __iconNode$eE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eD = [
  ["path", { d: "M15 6a9 9 0 0 0-9 9V3", key: "1cii5b" }],
  ["path", { d: "M21 18h-6", key: "139f0c" }],
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }]
];
const GitBranchMinus = createLucideIcon("git-branch-minus", __iconNode$eD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eC = [
  ["rect", { x: "3", y: "8", width: "18", height: "4", rx: "1", key: "bkv52" }],
  ["path", { d: "M12 8v13", key: "1c76mn" }],
  ["path", { d: "M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7", key: "6wjy6b" }],
  [
    "path",
    {
      d: "M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",
      key: "1ihvrl"
    }
  ]
];
const Gift = createLucideIcon("gift", __iconNode$eC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eB = [
  ["path", { d: "M6 3v12", key: "qpgusn" }],
  ["path", { d: "M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z", key: "1d02ji" }],
  ["path", { d: "M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z", key: "chk6ph" }],
  ["path", { d: "M15 6a9 9 0 0 0-9 9", key: "or332x" }],
  ["path", { d: "M18 15v6", key: "9wciyi" }],
  ["path", { d: "M21 18h-6", key: "139f0c" }]
];
const GitBranchPlus = createLucideIcon("git-branch-plus", __iconNode$eB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eA = [
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
];
const GitBranch = createLucideIcon("git-branch", __iconNode$eA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ez = [
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["line", { x1: "3", x2: "9", y1: "12", y2: "12", key: "1dyftd" }],
  ["line", { x1: "15", x2: "21", y1: "12", y2: "12", key: "oup4p8" }]
];
const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$ez);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ey = [
  ["path", { d: "M12 3v6", key: "1holv5" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["path", { d: "M12 15v6", key: "a9ows0" }]
];
const GitCommitVertical = createLucideIcon("git-commit-vertical", __iconNode$ey);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ex = [
  ["circle", { cx: "5", cy: "6", r: "3", key: "1qnov2" }],
  ["path", { d: "M12 6h5a2 2 0 0 1 2 2v7", key: "1yj91y" }],
  ["path", { d: "m15 9-3-3 3-3", key: "1lwv8l" }],
  ["circle", { cx: "19", cy: "18", r: "3", key: "1qljk2" }],
  ["path", { d: "M12 18H7a2 2 0 0 1-2-2V9", key: "16sdep" }],
  ["path", { d: "m9 15 3 3-3 3", key: "1m3kbl" }]
];
const GitCompareArrows = createLucideIcon("git-compare-arrows", __iconNode$ex);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ew = [
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
  ["path", { d: "M11 18H8a2 2 0 0 1-2-2V9", key: "19pyzm" }]
];
const GitCompare = createLucideIcon("git-compare", __iconNode$ew);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ev = [
  ["circle", { cx: "12", cy: "18", r: "3", key: "1mpf1b" }],
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
  ["path", { d: "M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9", key: "1uq4wg" }],
  ["path", { d: "M12 12v3", key: "158kv8" }]
];
const GitFork = createLucideIcon("git-fork", __iconNode$ev);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eu = [
  ["circle", { cx: "5", cy: "6", r: "3", key: "1qnov2" }],
  ["path", { d: "M5 9v6", key: "158jrl" }],
  ["circle", { cx: "5", cy: "18", r: "3", key: "104gr9" }],
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["circle", { cx: "19", cy: "6", r: "3", key: "108a5v" }],
  ["path", { d: "M16 15.7A9 9 0 0 0 19 9", key: "1e3vqb" }]
];
const GitGraph = createLucideIcon("git-graph", __iconNode$eu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$et = [
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M6 21V9a9 9 0 0 0 9 9", key: "7kw0sc" }]
];
const GitMerge = createLucideIcon("git-merge", __iconNode$et);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$es = [
  ["circle", { cx: "5", cy: "6", r: "3", key: "1qnov2" }],
  ["path", { d: "M5 9v12", key: "ih889a" }],
  ["circle", { cx: "19", cy: "18", r: "3", key: "1qljk2" }],
  ["path", { d: "m15 9-3-3 3-3", key: "1lwv8l" }],
  ["path", { d: "M12 6h5a2 2 0 0 1 2 2v7", key: "1yj91y" }]
];
const GitPullRequestArrow = createLucideIcon("git-pull-request-arrow", __iconNode$es);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$er = [
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M6 9v12", key: "1sc30k" }],
  ["path", { d: "m21 3-6 6", key: "16nqsk" }],
  ["path", { d: "m21 9-6-6", key: "9j17rh" }],
  ["path", { d: "M18 11.5V15", key: "65xf6f" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const GitPullRequestClosed = createLucideIcon("git-pull-request-closed", __iconNode$er);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eq = [
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M6 9v12", key: "1sc30k" }],
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v3", key: "1jb6z3" }],
  ["path", { d: "M18 15v6", key: "9wciyi" }],
  ["path", { d: "M21 18h-6", key: "139f0c" }]
];
const GitPullRequestCreate = createLucideIcon("git-pull-request-create", __iconNode$eq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ep = [
  ["circle", { cx: "5", cy: "6", r: "3", key: "1qnov2" }],
  ["path", { d: "M5 9v12", key: "ih889a" }],
  ["path", { d: "m15 9-3-3 3-3", key: "1lwv8l" }],
  ["path", { d: "M12 6h5a2 2 0 0 1 2 2v3", key: "1rbwk6" }],
  ["path", { d: "M19 15v6", key: "10aioa" }],
  ["path", { d: "M22 18h-6", key: "1d5gi5" }]
];
const GitPullRequestCreateArrow = createLucideIcon("git-pull-request-create-arrow", __iconNode$ep);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eo = [
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M18 6V5", key: "1oao2s" }],
  ["path", { d: "M18 11v-1", key: "11c8tz" }],
  ["line", { x1: "6", x2: "6", y1: "9", y2: "21", key: "rroup" }]
];
const GitPullRequestDraft = createLucideIcon("git-pull-request-draft", __iconNode$eo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$en = [
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
  ["line", { x1: "6", x2: "6", y1: "9", y2: "21", key: "rroup" }]
];
const GitPullRequest = createLucideIcon("git-pull-request", __iconNode$en);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$em = [
  [
    "path",
    {
      d: "m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z",
      key: "148pdi"
    }
  ]
];
const Gitlab = createLucideIcon("gitlab", __iconNode$em);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$el = [
  [
    "path",
    {
      d: "M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",
      key: "tonef"
    }
  ],
  ["path", { d: "M9 18c-4.51 2-5-2-7-2", key: "9comsn" }]
];
const Github = createLucideIcon("github", __iconNode$el);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ek = [
  ["circle", { cx: "6", cy: "15", r: "4", key: "vux9w4" }],
  ["circle", { cx: "18", cy: "15", r: "4", key: "18o8ve" }],
  ["path", { d: "M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2", key: "1ag4bs" }],
  ["path", { d: "M2.5 13 5 7c.7-1.3 1.4-2 3-2", key: "1hm1gs" }],
  ["path", { d: "M21.5 13 19 7c-.7-1.3-1.5-2-3-2", key: "1r31ai" }]
];
const Glasses = createLucideIcon("glasses", __iconNode$ek);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ej = [
  [
    "path",
    {
      d: "M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z",
      key: "p55z4y"
    }
  ],
  ["path", { d: "M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0", key: "mjntcy" }]
];
const GlassWater = createLucideIcon("glass-water", __iconNode$ej);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ei = [
  [
    "path",
    {
      d: "M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13",
      key: "qkt0x6"
    }
  ],
  ["path", { d: "M2 12h8.5", key: "ovaggd" }],
  ["path", { d: "M20 6V4a2 2 0 1 0-4 0v2", key: "1of5e8" }],
  ["rect", { width: "8", height: "5", x: "14", y: "6", rx: "1", key: "1fmf51" }]
];
const GlobeLock = createLucideIcon("globe-lock", __iconNode$ei);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eh = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
];
const Globe = createLucideIcon("globe", __iconNode$eh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eg = [
  ["path", { d: "M12 13V2l8 4-8 4", key: "5wlwwj" }],
  ["path", { d: "M20.561 10.222a9 9 0 1 1-12.55-5.29", key: "1c0wjv" }],
  ["path", { d: "M8.002 9.997a5 5 0 1 0 8.9 2.02", key: "gb1g7m" }]
];
const Goal = createLucideIcon("goal", __iconNode$eg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ef = [
  ["path", { d: "M2 21V3", key: "1bzk4w" }],
  ["path", { d: "M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26", key: "1d64pi" }],
  ["path", { d: "M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3", key: "5hbqbf" }],
  ["circle", { cx: "16", cy: "11", r: "2", key: "qt15rb" }],
  ["circle", { cx: "8", cy: "11", r: "2", key: "ssideg" }]
];
const Gpu = createLucideIcon("gpu", __iconNode$ef);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ee = [
  [
    "path",
    {
      d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
      key: "j76jl0"
    }
  ],
  ["path", { d: "M22 10v6", key: "1lu8f3" }],
  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
];
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$ee);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ed = [
  ["path", { d: "M22 5V2l-5.89 5.89", key: "1eenpo" }],
  ["circle", { cx: "16.6", cy: "15.89", r: "3", key: "xjtalx" }],
  ["circle", { cx: "8.11", cy: "7.4", r: "3", key: "u2fv6i" }],
  ["circle", { cx: "12.35", cy: "11.65", r: "3", key: "i6i8g7" }],
  ["circle", { cx: "13.91", cy: "5.85", r: "3", key: "6ye0dv" }],
  ["circle", { cx: "18.15", cy: "10.09", r: "3", key: "snx9no" }],
  ["circle", { cx: "6.56", cy: "13.2", r: "3", key: "17x4xg" }],
  ["circle", { cx: "10.8", cy: "17.44", r: "3", key: "1hogw9" }],
  ["circle", { cx: "5", cy: "19", r: "3", key: "1sn6vo" }]
];
const Grape = createLucideIcon("grape", __iconNode$ed);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ec = [
  [
    "path",
    {
      d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",
      key: "11za1p"
    }
  ],
  ["path", { d: "m16 19 2 2 4-4", key: "1b14m6" }]
];
const Grid2x2Check = createLucideIcon("grid-2x2-check", __iconNode$ec);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$eb = [
  [
    "path",
    {
      d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",
      key: "11za1p"
    }
  ],
  ["path", { d: "M16 19h6", key: "xwg31i" }],
  ["path", { d: "M19 22v-6", key: "qhmiwi" }]
];
const Grid2x2Plus = createLucideIcon("grid-2x2-plus", __iconNode$eb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ea = [
  [
    "path",
    {
      d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3",
      key: "11za1p"
    }
  ],
  ["path", { d: "m16 16 5 5", key: "8tpb07" }],
  ["path", { d: "m16 21 5-5", key: "193jll" }]
];
const Grid2x2X = createLucideIcon("grid-2x2-x", __iconNode$ea);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e9 = [
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const Grid2x2 = createLucideIcon("grid-2x2", __iconNode$e9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e8 = [
  ["path", { d: "M15 3v18", key: "14nvp0" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const Grid3x2 = createLucideIcon("grid-3x2", __iconNode$e8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e7 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }]
];
const Grid3x3 = createLucideIcon("grid-3x3", __iconNode$e7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e6 = [
  ["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
  ["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
  ["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
  ["circle", { cx: "12", cy: "15", r: "1", key: "1e56xg" }],
  ["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
  ["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
];
const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$e6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e5 = [
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
  ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
  ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
  ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
  ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
  ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
];
const GripVertical = createLucideIcon("grip-vertical", __iconNode$e5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e4 = [
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
  ["circle", { cx: "19", cy: "5", r: "1", key: "w8mnmm" }],
  ["circle", { cx: "5", cy: "5", r: "1", key: "lttvr7" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }],
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }],
  ["circle", { cx: "19", cy: "19", r: "1", key: "shf9b7" }],
  ["circle", { cx: "5", cy: "19", r: "1", key: "bfqh0e" }]
];
const Grip = createLucideIcon("grip", __iconNode$e4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e3 = [
  ["path", { d: "M3 7V5c0-1.1.9-2 2-2h2", key: "adw53z" }],
  ["path", { d: "M17 3h2c1.1 0 2 .9 2 2v2", key: "an4l38" }],
  ["path", { d: "M21 17v2c0 1.1-.9 2-2 2h-2", key: "144t0e" }],
  ["path", { d: "M7 21H5c-1.1 0-2-.9-2-2v-2", key: "rtnfgi" }],
  ["rect", { width: "7", height: "5", x: "7", y: "7", rx: "1", key: "1eyiv7" }],
  ["rect", { width: "7", height: "5", x: "10", y: "12", rx: "1", key: "1qlmkx" }]
];
const Group = createLucideIcon("group", __iconNode$e3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e2 = [
  ["path", { d: "m11.9 12.1 4.514-4.514", key: "109xqo" }],
  [
    "path",
    {
      d: "M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z",
      key: "txyc8t"
    }
  ],
  ["path", { d: "m6 16 2 2", key: "16qmzd" }],
  [
    "path",
    {
      d: "M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z",
      key: "1de1vg"
    }
  ]
];
const Guitar = createLucideIcon("guitar", __iconNode$e2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e1 = [
  ["path", { d: "M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856", key: "1k1t7q" }],
  [
    "path",
    {
      d: "M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288",
      key: "153t1g"
    }
  ],
  [
    "path",
    {
      d: "M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025",
      key: "gzrt0n"
    }
  ],
  ["path", { d: "m8.5 16.5-1-1", key: "otr954" }]
];
const Ham = createLucideIcon("ham", __iconNode$e1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e0 = [
  ["path", { d: "M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25", key: "5dloqd" }],
  ["path", { d: "M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2", key: "1vl3my" }],
  [
    "path",
    {
      d: "M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0",
      key: "1us75o"
    }
  ],
  ["path", { d: "m6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2", key: "qqzweh" }]
];
const Hamburger = createLucideIcon("hamburger", __iconNode$e0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d$ = [
  ["path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9", key: "1hayfq" }],
  ["path", { d: "m18 15 4-4", key: "16gjal" }],
  [
    "path",
    {
      d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",
      key: "15ts47"
    }
  ]
];
const Hammer = createLucideIcon("hammer", __iconNode$d$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d_ = [
  [
    "path",
    {
      d: "M12.035 17.012a3 3 0 0 0-3-3l-.311-.002a.72.72 0 0 1-.505-1.229l1.195-1.195A2 2 0 0 1 10.828 11H12a2 2 0 0 0 0-4H9.243a3 3 0 0 0-2.122.879l-2.707 2.707A4.83 4.83 0 0 0 3 14a8 8 0 0 0 8 8h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0",
      key: "1ff7rl"
    }
  ],
  ["path", { d: "M13.888 9.662A2 2 0 0 0 17 8V5A2 2 0 1 0 13 5", key: "1xmd21" }],
  ["path", { d: "M9 5A2 2 0 1 0 5 5V10", key: "f3wfjw" }],
  ["path", { d: "M9 7V4A2 2 0 1 1 13 4V7.268", key: "eaoucv" }]
];
const HandFist = createLucideIcon("hand-fist", __iconNode$d_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dZ = [
  ["path", { d: "M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17", key: "geh8rc" }],
  [
    "path",
    {
      d: "m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",
      key: "1fto5m"
    }
  ],
  ["path", { d: "m2 16 6 6", key: "1pfhp9" }],
  ["circle", { cx: "16", cy: "9", r: "2.9", key: "1n0dlu" }],
  ["circle", { cx: "6", cy: "5", r: "3", key: "151irh" }]
];
const HandCoins = createLucideIcon("hand-coins", __iconNode$dZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dY = [
  ["path", { d: "M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4", key: "edstyy" }],
  ["path", { d: "M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2", key: "19wdwo" }],
  ["path", { d: "M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5", key: "1lugqo" }],
  ["path", { d: "M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2", key: "1hbeus" }],
  [
    "path",
    { d: "M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0", key: "1etffm" }
  ]
];
const HandGrab = createLucideIcon("hand-grab", __iconNode$dY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dX = [
  ["path", { d: "M11 14h2a2 2 0 0 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16", key: "1v1a37" }],
  [
    "path",
    {
      d: "m14.45 13.39 5.05-4.694C20.196 8 21 6.85 21 5.75a2.75 2.75 0 0 0-4.797-1.837.276.276 0 0 1-.406 0A2.75 2.75 0 0 0 11 5.75c0 1.2.802 2.248 1.5 2.946L16 11.95",
      key: "fhfbnt"
    }
  ],
  ["path", { d: "m2 15 6 6", key: "10dquu" }],
  [
    "path",
    {
      d: "m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a1 1 0 0 0-2.75-2.91",
      key: "1x6kdw"
    }
  ]
];
const HandHeart = createLucideIcon("hand-heart", __iconNode$dX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dW = [
  ["path", { d: "M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14", key: "1j4xps" }],
  [
    "path",
    {
      d: "m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",
      key: "uospg8"
    }
  ],
  ["path", { d: "m2 13 6 6", key: "16e5sb" }]
];
const HandHelping = createLucideIcon("hand-helping", __iconNode$dW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dV = [
  ["path", { d: "M12 3V2", key: "ar7q03" }],
  [
    "path",
    {
      d: "m15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5",
      key: "n2g93r"
    }
  ],
  ["path", { d: "M2 14h12a2 2 0 0 1 0 4h-2", key: "1o2jem" }],
  ["path", { d: "M4 10h16", key: "img6z1" }],
  ["path", { d: "M5 10a7 7 0 0 1 14 0", key: "1ega1o" }],
  ["path", { d: "M5 14v6a1 1 0 0 1-1 1H2", key: "1hescx" }]
];
const HandPlatter = createLucideIcon("hand-platter", __iconNode$dV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dU = [
  ["path", { d: "M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2", key: "1fvzgz" }],
  ["path", { d: "M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2", key: "1kc0my" }],
  ["path", { d: "M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8", key: "10h0bg" }],
  [
    "path",
    {
      d: "M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",
      key: "1s1gnw"
    }
  ]
];
const Hand = createLucideIcon("hand", __iconNode$dU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dT = [
  ["path", { d: "M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4", key: "wc6myp" }],
  ["path", { d: "M14 11V9a2 2 0 1 0-4 0v2", key: "94qvcw" }],
  ["path", { d: "M10 10.5V5a2 2 0 1 0-4 0v9", key: "m1ah89" }],
  [
    "path",
    {
      d: "m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5",
      key: "t1skq1"
    }
  ]
];
const HandMetal = createLucideIcon("hand-metal", __iconNode$dT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dS = [
  ["path", { d: "m11 17 2 2a1 1 0 1 0 3-3", key: "efffak" }],
  [
    "path",
    {
      d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",
      key: "9pr0kb"
    }
  ],
  ["path", { d: "m21 3 1 11h-2", key: "1tisrp" }],
  ["path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3", key: "1uvwmv" }],
  ["path", { d: "M3 4h8", key: "1ep09j" }]
];
const Handshake = createLucideIcon("handshake", __iconNode$dS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dR = [
  [
    "path",
    {
      d: "M2.048 18.566A2 2 0 0 0 4 21h16a2 2 0 0 0 1.952-2.434l-2-9A2 2 0 0 0 18 8H6a2 2 0 0 0-1.952 1.566z",
      key: "1qbui5"
    }
  ],
  ["path", { d: "M8 11V6a4 4 0 0 1 8 0v5", key: "tcht90" }]
];
const Handbag = createLucideIcon("handbag", __iconNode$dR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dQ = [
  ["path", { d: "M12 2v8", key: "1q4o3n" }],
  ["path", { d: "m16 6-4 4-4-4", key: "6wukr" }],
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", key: "w68u3i" }],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "M10 18h.01", key: "h775k" }]
];
const HardDriveDownload = createLucideIcon("hard-drive-download", __iconNode$dQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dP = [
  ["path", { d: "m16 6-4-4-4 4", key: "13yo43" }],
  ["path", { d: "M12 2v8", key: "1q4o3n" }],
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", key: "w68u3i" }],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "M10 18h.01", key: "h775k" }]
];
const HardDriveUpload = createLucideIcon("hard-drive-upload", __iconNode$dP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dO = [
  ["line", { x1: "22", x2: "2", y1: "12", y2: "12", key: "1y58io" }],
  [
    "path",
    {
      d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",
      key: "oot6mr"
    }
  ],
  ["line", { x1: "6", x2: "6.01", y1: "16", y2: "16", key: "sgf278" }],
  ["line", { x1: "10", x2: "10.01", y1: "16", y2: "16", key: "1l4acy" }]
];
const HardDrive = createLucideIcon("hard-drive", __iconNode$dO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dN = [
  ["path", { d: "M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5", key: "1p9q5i" }],
  ["path", { d: "M14 6a6 6 0 0 1 6 6v3", key: "1hnv84" }],
  ["path", { d: "M4 15v-3a6 6 0 0 1 6-6", key: "9ciidu" }],
  ["rect", { x: "2", y: "15", width: "20", height: "4", rx: "1", key: "g3x8cw" }]
];
const HardHat = createLucideIcon("hard-hat", __iconNode$dN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dM = [
  ["line", { x1: "4", x2: "20", y1: "9", y2: "9", key: "4lhtct" }],
  ["line", { x1: "4", x2: "20", y1: "15", y2: "15", key: "vyu0kd" }],
  ["line", { x1: "10", x2: "8", y1: "3", y2: "21", key: "1ggp8o" }],
  ["line", { x1: "16", x2: "14", y1: "3", y2: "21", key: "weycgp" }]
];
const Hash = createLucideIcon("hash", __iconNode$dM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dL = [
  ["path", { d: "M14 18a2 2 0 0 0-4 0", key: "1v8fkw" }],
  [
    "path",
    {
      d: "m19 11-2.11-6.657a2 2 0 0 0-2.752-1.148l-1.276.61A2 2 0 0 1 12 4H8.5a2 2 0 0 0-1.925 1.456L5 11",
      key: "1fkr7p"
    }
  ],
  ["path", { d: "M2 11h20", key: "3eubbj" }],
  ["circle", { cx: "17", cy: "18", r: "3", key: "82mm0e" }],
  ["circle", { cx: "7", cy: "18", r: "3", key: "lvkj7j" }]
];
const HatGlasses = createLucideIcon("hat-glasses", __iconNode$dL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dK = [
  ["path", { d: "m5.2 6.2 1.4 1.4", key: "17imol" }],
  ["path", { d: "M2 13h2", key: "13gyu8" }],
  ["path", { d: "M20 13h2", key: "16rner" }],
  ["path", { d: "m17.4 7.6 1.4-1.4", key: "t4xlah" }],
  ["path", { d: "M22 17H2", key: "1gtaj3" }],
  ["path", { d: "M22 21H2", key: "1gy6en" }],
  ["path", { d: "M16 13a4 4 0 0 0-8 0", key: "1dyczq" }],
  ["path", { d: "M12 5V2.5", key: "1vytko" }]
];
const Haze = createLucideIcon("haze", __iconNode$dK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dJ = [
  [
    "path",
    {
      d: "M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z",
      key: "2128wb"
    }
  ],
  ["path", { d: "M7.5 12h9", key: "1t0ckc" }]
];
const HdmiPort = createLucideIcon("hdmi-port", __iconNode$dJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dI = [
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
];
const Heading1 = createLucideIcon("heading-1", __iconNode$dI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dH = [
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", key: "9jr5yi" }]
];
const Heading2 = createLucideIcon("heading-2", __iconNode$dH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dG = [
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["path", { d: "M17 10v3a1 1 0 0 0 1 1h3", key: "tj5zdr" }],
  ["path", { d: "M21 10v8", key: "1kdml4" }],
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }]
];
const Heading4 = createLucideIcon("heading-4", __iconNode$dG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dF = [
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", key: "68ncm8" }],
  ["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", key: "1ejuhz" }]
];
const Heading3 = createLucideIcon("heading-3", __iconNode$dF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dE = [
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["path", { d: "M17 13v-3h4", key: "1nvgqp" }],
  [
    "path",
    { d: "M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17", key: "2nebdn" }
  ]
];
const Heading5 = createLucideIcon("heading-5", __iconNode$dE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dD = [
  ["path", { d: "M4 12h8", key: "17cfdx" }],
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
  ["circle", { cx: "19", cy: "16", r: "2", key: "15mx69" }],
  ["path", { d: "M20 10c-2 2-3 3.5-3 6", key: "f35dl0" }]
];
const Heading6 = createLucideIcon("heading-6", __iconNode$dD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dC = [
  ["path", { d: "M6 12h12", key: "8npq4p" }],
  ["path", { d: "M6 20V4", key: "1w1bmo" }],
  ["path", { d: "M18 20V4", key: "o2hl4u" }]
];
const Heading = createLucideIcon("heading", __iconNode$dC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dB = [
  ["path", { d: "M21 14h-1.343", key: "1jdnxi" }],
  ["path", { d: "M9.128 3.47A9 9 0 0 1 21 12v3.343", key: "6kipu2" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3", key: "9x50f4" }],
  [
    "path",
    {
      d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364",
      key: "1bkxnm"
    }
  ]
];
const HeadphoneOff = createLucideIcon("headphone-off", __iconNode$dB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dA = [
  [
    "path",
    {
      d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",
      key: "1xhozi"
    }
  ]
];
const Headphones = createLucideIcon("headphones", __iconNode$dA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dz = [
  [
    "path",
    {
      d: "M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",
      key: "12oyoe"
    }
  ],
  ["path", { d: "M21 16v2a4 4 0 0 1-4 4h-5", key: "1x7m43" }]
];
const Headset = createLucideIcon("headset", __iconNode$dz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dy = [
  [
    "path",
    {
      d: "M12.409 5.824c-.702.792-1.15 1.496-1.415 2.166l2.153 2.156a.5.5 0 0 1 0 .707l-2.293 2.293a.5.5 0 0 0 0 .707L12 15",
      key: "idzbju"
    }
  ],
  [
    "path",
    {
      d: "M13.508 20.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.677.6.6 0 0 0 .818.001A5.5 5.5 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5z",
      key: "1su70f"
    }
  ]
];
const HeartCrack = createLucideIcon("heart-crack", __iconNode$dy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dx = [
  [
    "path",
    {
      d: "M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2 0 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762",
      key: "17lmqv"
    }
  ]
];
const HeartHandshake = createLucideIcon("heart-handshake", __iconNode$dx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dw = [
  [
    "path",
    {
      d: "m14.876 18.99-1.368 1.323a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.244 1.572",
      key: "15yztm"
    }
  ],
  ["path", { d: "M15 15h6", key: "1u4692" }]
];
const HeartMinus = createLucideIcon("heart-minus", __iconNode$dw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dv = [
  [
    "path",
    {
      d: "M10.5 4.893a5.5 5.5 0 0 1 1.091.931.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 1.872-1.002 3.356-2.187 4.655",
      key: "1inpfl"
    }
  ],
  [
    "path",
    {
      d: "m16.967 16.967-3.459 3.346a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 2.747-4.761",
      key: "vbc6x7"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const HeartOff = createLucideIcon("heart-off", __iconNode$dv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$du = [
  [
    "path",
    {
      d: "m14.479 19.374-.971.939a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.219 1.49",
      key: "wg5jx"
    }
  ],
  ["path", { d: "M15 15h6", key: "1u4692" }],
  ["path", { d: "M18 12v6", key: "1houu1" }]
];
const HeartPlus = createLucideIcon("heart-plus", __iconNode$du);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dt = [
  [
    "path",
    {
      d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",
      key: "mvr1a0"
    }
  ],
  ["path", { d: "M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27", key: "auskq0" }]
];
const HeartPulse = createLucideIcon("heart-pulse", __iconNode$dt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ds = [
  [
    "path",
    {
      d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",
      key: "mvr1a0"
    }
  ]
];
const Heart = createLucideIcon("heart", __iconNode$ds);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dr = [
  ["path", { d: "M11 8c2-3-2-3 0-6", key: "1ldv5m" }],
  ["path", { d: "M15.5 8c2-3-2-3 0-6", key: "1otqoz" }],
  ["path", { d: "M6 10h.01", key: "1lbq93" }],
  ["path", { d: "M6 14h.01", key: "zudwn7" }],
  ["path", { d: "M10 16v-4", key: "1c25yv" }],
  ["path", { d: "M14 16v-4", key: "1dkbt8" }],
  ["path", { d: "M18 16v-4", key: "1yg9me" }],
  [
    "path",
    { d: "M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3", key: "1ubg90" }
  ],
  ["path", { d: "M5 20v2", key: "1abpe8" }],
  ["path", { d: "M19 20v2", key: "kqn6ft" }]
];
const Heater = createLucideIcon("heater", __iconNode$dr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dq = [
  ["path", { d: "M11 17v4", key: "14wq8k" }],
  ["path", { d: "M14 3v8a2 2 0 0 0 2 2h5.865", key: "12oo5h" }],
  ["path", { d: "M17 17v4", key: "hdt4hh" }],
  [
    "path",
    { d: "M18 17a4 4 0 0 0 4-4 8 6 0 0 0-8-6 6 5 0 0 0-6 5v3a2 2 0 0 0 2 2z", key: "yynif" }
  ],
  ["path", { d: "M2 10v5", key: "sa5akn" }],
  ["path", { d: "M6 3h16", key: "27qw71" }],
  ["path", { d: "M7 21h14", key: "1ugz0u" }],
  ["path", { d: "M8 13H2", key: "1thz1o" }]
];
const Helicopter = createLucideIcon("helicopter", __iconNode$dq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dp = [
  [
    "path",
    {
      d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",
      key: "yt0hxn"
    }
  ]
];
const Hexagon = createLucideIcon("hexagon", __iconNode$dp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$do = [
  ["path", { d: "m9 11-6 6v3h9l3-3", key: "1a3l36" }],
  ["path", { d: "m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4", key: "14a9rk" }]
];
const Highlighter = createLucideIcon("highlighter", __iconNode$do);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dn = [
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
];
const History = createLucideIcon("history", __iconNode$dn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dm = [
  ["path", { d: "M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27", key: "qyzcap" }],
  [
    "path",
    {
      d: "M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28",
      key: "y078lb"
    }
  ],
  ["path", { d: "M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26", key: "1utre3" }],
  [
    "path",
    {
      d: "M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25",
      key: "17o9hm"
    }
  ],
  ["path", { d: "M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75", key: "1d1n4p" }],
  [
    "path",
    {
      d: "M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24",
      key: "9uv3tt"
    }
  ],
  [
    "path",
    {
      d: "M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28",
      key: "1292wz"
    }
  ],
  [
    "path",
    {
      d: "M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05",
      key: "7ozu9p"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const HopOff = createLucideIcon("hop-off", __iconNode$dm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dl = [
  [
    "path",
    {
      d: "M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18",
      key: "18lxf1"
    }
  ],
  [
    "path",
    {
      d: "M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88",
      key: "vtfxrw"
    }
  ],
  [
    "path",
    {
      d: "M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36",
      key: "13hl71"
    }
  ],
  [
    "path",
    {
      d: "M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87",
      key: "1sl8oj"
    }
  ],
  [
    "path",
    {
      d: "M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08",
      key: "19c6kt"
    }
  ],
  [
    "path",
    {
      d: "M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57",
      key: "85ghs3"
    }
  ],
  ["path", { d: "M4.93 4.93 3 3a.7.7 0 0 1 0-1", key: "x087yj" }],
  [
    "path",
    {
      d: "M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15",
      key: "11xdqo"
    }
  ]
];
const Hop = createLucideIcon("hop", __iconNode$dl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dk = [
  ["path", { d: "M12 7v4", key: "xawao1" }],
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
  ["path", { d: "M14 9h-4", key: "1w2s2s" }],
  [
    "path",
    {
      d: "M18 11h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2",
      key: "1tthqt"
    }
  ],
  ["path", { d: "M18 21V5a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16", key: "dw4p4i" }]
];
const Hospital = createLucideIcon("hospital", __iconNode$dk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dj = [
  ["path", { d: "M10 22v-6.57", key: "1wmca3" }],
  ["path", { d: "M12 11h.01", key: "z322tv" }],
  ["path", { d: "M12 7h.01", key: "1ivr5q" }],
  ["path", { d: "M14 15.43V22", key: "1q2vjd" }],
  ["path", { d: "M15 16a5 5 0 0 0-6 0", key: "o9wqvi" }],
  ["path", { d: "M16 11h.01", key: "xkw8gn" }],
  ["path", { d: "M16 7h.01", key: "1kdx03" }],
  ["path", { d: "M8 11h.01", key: "1dfujw" }],
  ["path", { d: "M8 7h.01", key: "1vti4s" }],
  ["rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", key: "1uxh74" }]
];
const Hotel = createLucideIcon("hotel", __iconNode$dj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$di = [
  ["path", { d: "M5 22h14", key: "ehvnwv" }],
  ["path", { d: "M5 2h14", key: "pdyrp9" }],
  [
    "path",
    {
      d: "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",
      key: "1d314k"
    }
  ],
  [
    "path",
    { d: "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2", key: "1vvvr6" }
  ]
];
const Hourglass = createLucideIcon("hourglass", __iconNode$di);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dh = [
  [
    "path",
    {
      d: "M8.62 13.8A2.25 2.25 0 1 1 12 10.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z",
      key: "n9s7kx"
    }
  ],
  [
    "path",
    {
      d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
      key: "r6nss1"
    }
  ]
];
const HouseHeart = createLucideIcon("house-heart", __iconNode$dh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dg = [
  ["path", { d: "M10 12V8.964", key: "1vll13" }],
  ["path", { d: "M14 12V8.964", key: "1x3qvg" }],
  [
    "path",
    { d: "M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z", key: "ppykja" }
  ],
  [
    "path",
    {
      d: "M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2",
      key: "365xoy"
    }
  ]
];
const HousePlug = createLucideIcon("house-plug", __iconNode$dg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$df = [
  [
    "path",
    {
      d: "M12.35 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .71-1.53l7-6a2 2 0 0 1 2.58 0l7 6A2 2 0 0 1 21 10v2.35",
      key: "8ek5ge"
    }
  ],
  ["path", { d: "M14.8 12.4A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8", key: "1rbg29" }],
  ["path", { d: "M15 18h6", key: "3b3c90" }],
  ["path", { d: "M18 15v6", key: "9wciyi" }]
];
const HousePlus = createLucideIcon("house-plus", __iconNode$df);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$de = [
  ["path", { d: "M9.5 13.866a4 4 0 0 1 5 .01", key: "1wy54i" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }],
  [
    "path",
    {
      d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
      key: "r6nss1"
    }
  ],
  ["path", { d: "M7 10.754a8 8 0 0 1 10 0", key: "exoy2g" }]
];
const HouseWifi = createLucideIcon("house-wifi", __iconNode$de);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dd = [
  ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
  [
    "path",
    {
      d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
      key: "r6nss1"
    }
  ]
];
const House = createLucideIcon("house", __iconNode$dd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$dc = [
  [
    "path",
    {
      d: "M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0",
      key: "1uxfcu"
    }
  ],
  ["path", { d: "M12.14 11a3.5 3.5 0 1 1 6.71 0", key: "4k3m1s" }],
  ["path", { d: "M15.5 6.5a3.5 3.5 0 1 0-7 0", key: "zmuahr" }]
];
const IceCreamBowl = createLucideIcon("ice-cream-bowl", __iconNode$dc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$db = [
  ["path", { d: "m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11", key: "1v6356" }],
  ["path", { d: "M17 7A5 5 0 0 0 7 7", key: "151p3v" }],
  ["path", { d: "M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4", key: "1sdaij" }]
];
const IceCreamCone = createLucideIcon("ice-cream-cone", __iconNode$db);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$da = [
  ["path", { d: "M13.5 8h-3", key: "xvov4w" }],
  [
    "path",
    {
      d: "m15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3",
      key: "16uttc"
    }
  ],
  ["path", { d: "M16.899 22A5 5 0 0 0 7.1 22", key: "1d0ppr" }],
  ["path", { d: "m9 2 3 6", key: "1o7bd9" }],
  ["circle", { cx: "12", cy: "15", r: "3", key: "g36mzq" }]
];
const IdCardLanyard = createLucideIcon("id-card-lanyard", __iconNode$da);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d9 = [
  ["path", { d: "M16 10h2", key: "8sgtl7" }],
  ["path", { d: "M16 14h2", key: "epxaof" }],
  ["path", { d: "M6.17 15a3 3 0 0 1 5.66 0", key: "n6f512" }],
  ["circle", { cx: "9", cy: "11", r: "2", key: "yxgjnd" }],
  ["rect", { x: "2", y: "5", width: "20", height: "14", rx: "2", key: "qneu4z" }]
];
const IdCard = createLucideIcon("id-card", __iconNode$d9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d8 = [
  [
    "path",
    {
      d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",
      key: "9csbqa"
    }
  ],
  ["path", { d: "m14 19 3 3v-5.5", key: "9ldu5r" }],
  ["path", { d: "m17 22 3-3", key: "1nkfve" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }]
];
const ImageDown = createLucideIcon("image-down", __iconNode$d8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d7 = [
  ["path", { d: "M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7", key: "m87ecr" }],
  ["line", { x1: "16", x2: "22", y1: "5", y2: "5", key: "ez7e4s" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
];
const ImageMinus = createLucideIcon("image-minus", __iconNode$d7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d6 = [
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }],
  ["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83", key: "1bzlo9" }],
  ["line", { x1: "13.5", x2: "6", y1: "13.5", y2: "21", key: "1q0aeu" }],
  ["line", { x1: "18", x2: "21", y1: "12", y2: "15", key: "5mozeu" }],
  [
    "path",
    {
      d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",
      key: "mmje98"
    }
  ],
  ["path", { d: "M21 15V5a2 2 0 0 0-2-2H9", key: "43el77" }]
];
const ImageOff = createLucideIcon("image-off", __iconNode$d6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d5 = [
  [
    "path",
    {
      d: "M15 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z",
      key: "nrt1m3"
    }
  ],
  ["path", { d: "M21 12.17V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6", key: "99hgts" }],
  ["path", { d: "m6 21 5-5", key: "1wyjai" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }]
];
const ImagePlay = createLucideIcon("image-play", __iconNode$d5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d4 = [
  ["path", { d: "M16 5h6", key: "1vod17" }],
  ["path", { d: "M19 2v6", key: "4bpg5p" }],
  ["path", { d: "M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5", key: "1ue2ih" }],
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }]
];
const ImagePlus = createLucideIcon("image-plus", __iconNode$d4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d3 = [
  [
    "path",
    {
      d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",
      key: "9csbqa"
    }
  ],
  ["path", { d: "m14 19.5 3-3 3 3", key: "9vmjn0" }],
  ["path", { d: "M17 22v-5.5", key: "1aa6fl" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }]
];
const ImageUp = createLucideIcon("image-up", __iconNode$d3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d2 = [
  ["path", { d: "M16 3h5v5", key: "1806ms" }],
  ["path", { d: "M17 21h2a2 2 0 0 0 2-2", key: "130fy9" }],
  ["path", { d: "M21 12v3", key: "1wzk3p" }],
  ["path", { d: "m21 3-5 5", key: "1g5oa7" }],
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2", key: "kk3yz1" }],
  ["path", { d: "m5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19", key: "fyekpt" }],
  ["path", { d: "M9 3h3", key: "d52fa" }],
  ["rect", { x: "3", y: "11", width: "10", height: "10", rx: "1", key: "1wpmix" }]
];
const ImageUpscale = createLucideIcon("image-upscale", __iconNode$d2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d1 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
];
const Image = createLucideIcon("image", __iconNode$d1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d0 = [
  ["path", { d: "m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16", key: "9kzy35" }],
  ["path", { d: "M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2", key: "1t0f0t" }],
  ["circle", { cx: "13", cy: "7", r: "1", fill: "currentColor", key: "1obus6" }],
  ["rect", { x: "8", y: "2", width: "14", height: "14", rx: "2", key: "1gvhby" }]
];
const Images = createLucideIcon("images", __iconNode$d0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c$ = [
  ["path", { d: "M12 3v12", key: "1x0j5s" }],
  ["path", { d: "m8 11 4 4 4-4", key: "1dohi6" }],
  [
    "path",
    {
      d: "M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4",
      key: "1ywtjm"
    }
  ]
];
const Import = createLucideIcon("import", __iconNode$c$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c_ = [
  ["polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12", key: "o97t9d" }],
  [
    "path",
    {
      d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",
      key: "oot6mr"
    }
  ]
];
const Inbox = createLucideIcon("inbox", __iconNode$c_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cZ = [
  ["path", { d: "M6 3h12", key: "ggurg9" }],
  ["path", { d: "M6 8h12", key: "6g4wlu" }],
  ["path", { d: "m6 13 8.5 8", key: "u1kupk" }],
  ["path", { d: "M6 13h3", key: "wdp6ag" }],
  ["path", { d: "M9 13c6.667 0 6.667-10 0-10", key: "1nkvk2" }]
];
const IndianRupee = createLucideIcon("indian-rupee", __iconNode$cZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cY = [
  ["path", { d: "M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8", key: "18ogeb" }]
];
const Infinity$1 = createLucideIcon("infinity", __iconNode$cY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cX = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
];
const Info = createLucideIcon("info", __iconNode$cX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cW = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 7h.01", key: "7u93v4" }],
  ["path", { d: "M17 7h.01", key: "14a9sn" }],
  ["path", { d: "M7 17h.01", key: "19xn7k" }],
  ["path", { d: "M17 17h.01", key: "1sd3ek" }]
];
const InspectionPanel = createLucideIcon("inspection-panel", __iconNode$cW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cV = [
  ["rect", { width: "20", height: "20", x: "2", y: "2", rx: "5", ry: "5", key: "2e1cvw" }],
  ["path", { d: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z", key: "9exkf1" }],
  ["line", { x1: "17.5", x2: "17.51", y1: "6.5", y2: "6.5", key: "r4j83e" }]
];
const Instagram = createLucideIcon("instagram", __iconNode$cV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cU = [
  ["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
  ["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
  ["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
];
const Italic = createLucideIcon("italic", __iconNode$cU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cT = [
  ["path", { d: "m16 14 4 4-4 4", key: "hkso8o" }],
  ["path", { d: "M20 10a8 8 0 1 0-8 8h8", key: "1bik7b" }]
];
const IterationCcw = createLucideIcon("iteration-ccw", __iconNode$cT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cS = [
  ["path", { d: "M4 10a8 8 0 1 1 8 8H4", key: "svv66n" }],
  ["path", { d: "m8 22-4-4 4-4", key: "6g7gki" }]
];
const IterationCw = createLucideIcon("iteration-cw", __iconNode$cS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cR = [
  ["path", { d: "M12 9.5V21m0-11.5L6 3m6 6.5L18 3", key: "2ej80x" }],
  ["path", { d: "M6 15h12", key: "1hwgt5" }],
  ["path", { d: "M6 11h12", key: "wf4gp6" }]
];
const JapaneseYen = createLucideIcon("japanese-yen", __iconNode$cR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cQ = [
  [
    "path",
    {
      d: "M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z",
      key: "jg2n2t"
    }
  ],
  ["path", { d: "M6 15v-2", key: "gd6mvg" }],
  ["path", { d: "M12 15V9", key: "8c7uyn" }],
  ["circle", { cx: "12", cy: "6", r: "3", key: "1gm2ql" }]
];
const Joystick = createLucideIcon("joystick", __iconNode$cQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cP = [
  ["path", { d: "M5 3v14", key: "9nsxs2" }],
  ["path", { d: "M12 3v8", key: "1h2ygw" }],
  ["path", { d: "M19 3v18", key: "1sk56x" }]
];
const Kanban = createLucideIcon("kanban", __iconNode$cP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cO = [
  ["path", { d: "M18 17a1 1 0 0 0-1 1v1a2 2 0 1 0 2-2z", key: "skzb1g" }],
  [
    "path",
    {
      d: "M20.97 3.61a.45.45 0 0 0-.58-.58C10.2 6.6 6.6 10.2 3.03 20.39a.45.45 0 0 0 .58.58C13.8 17.4 17.4 13.8 20.97 3.61",
      key: "cv9jm7"
    }
  ],
  ["path", { d: "m6.707 6.707 10.586 10.586", key: "d2l993" }],
  ["path", { d: "M7 5a2 2 0 1 0-2 2h1a1 1 0 0 0 1-1z", key: "i0et4n" }]
];
const Kayak = createLucideIcon("kayak", __iconNode$cO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cN = [
  [
    "path",
    {
      d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",
      key: "1s6t7t"
    }
  ],
  ["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
];
const KeyRound = createLucideIcon("key-round", __iconNode$cN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cM = [
  [
    "path",
    {
      d: "M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z",
      key: "165ttr"
    }
  ],
  ["path", { d: "m14 7 3 3", key: "1r5n42" }],
  [
    "path",
    {
      d: "m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814",
      key: "1ubxi2"
    }
  ]
];
const KeySquare = createLucideIcon("key-square", __iconNode$cM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cL = [
  ["path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4", key: "g0fldk" }],
  ["path", { d: "m21 2-9.6 9.6", key: "1j0ho8" }],
  ["circle", { cx: "7.5", cy: "15.5", r: "5.5", key: "yqb3hr" }]
];
const Key = createLucideIcon("key", __iconNode$cL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cK = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M6 8h4", key: "utf9t1" }],
  ["path", { d: "M14 8h.01", key: "1primd" }],
  ["path", { d: "M18 8h.01", key: "emo2bl" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "M6 12v4", key: "dy92yo" }],
  ["path", { d: "M10 12v4", key: "1fxnav" }],
  ["path", { d: "M14 12v4", key: "1hft58" }],
  ["path", { d: "M18 12v4", key: "tjjnbz" }]
];
const KeyboardMusic = createLucideIcon("keyboard-music", __iconNode$cK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cJ = [
  ["path", { d: "M 20 4 A2 2 0 0 1 22 6", key: "1g1fkt" }],
  ["path", { d: "M 22 6 L 22 16.41", key: "1qjg3w" }],
  ["path", { d: "M 7 16 L 16 16", key: "n0yqwb" }],
  ["path", { d: "M 9.69 4 L 20 4", key: "kbpcgx" }],
  ["path", { d: "M14 8h.01", key: "1primd" }],
  ["path", { d: "M18 8h.01", key: "emo2bl" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2", key: "s23sx2" }],
  ["path", { d: "M6 8h.01", key: "x9i8wu" }],
  ["path", { d: "M8 12h.01", key: "czm47f" }]
];
const KeyboardOff = createLucideIcon("keyboard-off", __iconNode$cJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cI = [
  ["path", { d: "M10 8h.01", key: "1r9ogq" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M14 8h.01", key: "1primd" }],
  ["path", { d: "M16 12h.01", key: "1l6xoz" }],
  ["path", { d: "M18 8h.01", key: "emo2bl" }],
  ["path", { d: "M6 8h.01", key: "x9i8wu" }],
  ["path", { d: "M7 16h10", key: "wp8him" }],
  ["path", { d: "M8 12h.01", key: "czm47f" }],
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }]
];
const Keyboard = createLucideIcon("keyboard", __iconNode$cI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cH = [
  ["path", { d: "M12 2v5", key: "nd4vlx" }],
  ["path", { d: "M14.829 15.998a3 3 0 1 1-5.658 0", key: "1pybiy" }],
  [
    "path",
    {
      d: "M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z",
      key: "ma1wor"
    }
  ]
];
const LampCeiling = createLucideIcon("lamp-ceiling", __iconNode$cH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cG = [
  [
    "path",
    {
      d: "M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z",
      key: "sb8slu"
    }
  ],
  ["path", { d: "m14.207 4.793-3.414 3.414", key: "m2x3oj" }],
  [
    "path",
    { d: "M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z", key: "8b3myj" }
  ],
  ["path", { d: "m9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18", key: "43s6cu" }]
];
const LampDesk = createLucideIcon("lamp-desk", __iconNode$cG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cF = [
  ["path", { d: "M12 10v12", key: "6ubwww" }],
  [
    "path",
    {
      d: "M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z",
      key: "1o95gh"
    }
  ],
  ["path", { d: "M9 22h6", key: "1rlq3v" }]
];
const LampFloor = createLucideIcon("lamp-floor", __iconNode$cF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cE = [
  [
    "path",
    {
      d: "M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z",
      key: "u4w2d7"
    }
  ],
  [
    "path",
    { d: "M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z", key: "15356w" }
  ],
  ["path", { d: "M8 6h4a2 2 0 0 1 2 2v5", key: "1m6m7x" }]
];
const LampWallDown = createLucideIcon("lamp-wall-down", __iconNode$cE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cD = [
  [
    "path",
    {
      d: "M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z",
      key: "1uvrbf"
    }
  ],
  [
    "path",
    { d: "M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z", key: "154r2a" }
  ],
  ["path", { d: "M8 18h4a2 2 0 0 0 2-2v-5", key: "z9mbu0" }]
];
const LampWallUp = createLucideIcon("lamp-wall-up", __iconNode$cD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cC = [
  ["path", { d: "M12 12v6", key: "3ahymv" }],
  [
    "path",
    {
      d: "M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z",
      key: "1l7kg2"
    }
  ],
  [
    "path",
    { d: "M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z", key: "1mmzpi" }
  ]
];
const Lamp = createLucideIcon("lamp", __iconNode$cC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cB = [
  ["path", { d: "m12 8 6-3-6-3v10", key: "mvpnpy" }],
  [
    "path",
    {
      d: "m8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12",
      key: "ek95tt"
    }
  ],
  ["path", { d: "m6.49 12.85 11.02 6.3", key: "1kt42w" }],
  ["path", { d: "M17.51 12.85 6.5 19.15", key: "v55bdg" }]
];
const LandPlot = createLucideIcon("land-plot", __iconNode$cB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cA = [
  ["path", { d: "M10 18v-7", key: "wt116b" }],
  [
    "path",
    {
      d: "M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",
      key: "1m329m"
    }
  ],
  ["path", { d: "M14 18v-7", key: "vav6t3" }],
  ["path", { d: "M18 18v-7", key: "aexdmj" }],
  ["path", { d: "M3 22h18", key: "8prr45" }],
  ["path", { d: "M6 18v-7", key: "1ivflk" }]
];
const Landmark = createLucideIcon("landmark", __iconNode$cA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cz = [
  ["path", { d: "m5 8 6 6", key: "1wu5hv" }],
  ["path", { d: "m4 14 6-6 2-3", key: "1k1g8d" }],
  ["path", { d: "M2 5h12", key: "or177f" }],
  ["path", { d: "M7 2h1", key: "1t2jsx" }],
  ["path", { d: "m22 22-5-10-5 10", key: "don7ne" }],
  ["path", { d: "M14 18h6", key: "1m8k6r" }]
];
const Languages = createLucideIcon("languages", __iconNode$cz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cy = [
  ["path", { d: "M2 20h20", key: "owomy5" }],
  ["path", { d: "m9 10 2 2 4-4", key: "1gnqz4" }],
  ["rect", { x: "3", y: "4", width: "18", height: "12", rx: "2", key: "8ur36m" }]
];
const LaptopMinimalCheck = createLucideIcon("laptop-minimal-check", __iconNode$cy);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cx = [
  ["rect", { width: "18", height: "12", x: "3", y: "4", rx: "2", ry: "2", key: "1qhy41" }],
  ["line", { x1: "2", x2: "22", y1: "20", y2: "20", key: "ni3hll" }]
];
const LaptopMinimal = createLucideIcon("laptop-minimal", __iconNode$cx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cw = [
  [
    "path",
    {
      d: "M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",
      key: "1pdavp"
    }
  ],
  ["path", { d: "M20.054 15.987H3.946", key: "14rxg9" }]
];
const Laptop = createLucideIcon("laptop", __iconNode$cw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cv = [
  ["path", { d: "M7 22a5 5 0 0 1-2-4", key: "umushi" }],
  ["path", { d: "M7 16.93c.96.43 1.96.74 2.99.91", key: "ybbtv3" }],
  [
    "path",
    {
      d: "M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2",
      key: "gt5e1w"
    }
  ],
  ["path", { d: "M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z", key: "bq3ynw" }],
  [
    "path",
    {
      d: "M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z",
      key: "72q637"
    }
  ]
];
const LassoSelect = createLucideIcon("lasso-select", __iconNode$cv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cu = [
  [
    "path",
    {
      d: "M3.704 14.467A10 8 0 0 1 2 10a10 8 0 0 1 20 0 10 8 0 0 1-10 8 10 8 0 0 1-5.181-1.158",
      key: "1yant3"
    }
  ],
  ["path", { d: "M7 22a5 5 0 0 1-2-3.994", key: "1xp6a4" }],
  ["circle", { cx: "5", cy: "16", r: "2", key: "18csp3" }]
];
const Lasso = createLucideIcon("lasso", __iconNode$cu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ct = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z", key: "b2q4dd" }],
  ["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
  ["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
];
const Laugh = createLucideIcon("laugh", __iconNode$ct);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cs = [
  [
    "path",
    {
      d: "M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z",
      key: "15q6uc"
    }
  ],
  [
    "path",
    {
      d: "m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845",
      key: "byia6g"
    }
  ]
];
const Layers2 = createLucideIcon("layers-2", __iconNode$cs);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cr = [
  [
    "path",
    {
      d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
      key: "zw3jo"
    }
  ],
  [
    "path",
    {
      d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
      key: "1wduqc"
    }
  ],
  [
    "path",
    {
      d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
      key: "kqbvx6"
    }
  ]
];
const Layers = createLucideIcon("layers", __iconNode$cr);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cq = [
  ["rect", { width: "7", height: "9", x: "3", y: "3", rx: "1", key: "10lvy0" }],
  ["rect", { width: "7", height: "5", x: "14", y: "3", rx: "1", key: "16une8" }],
  ["rect", { width: "7", height: "9", x: "14", y: "12", rx: "1", key: "1hutg5" }],
  ["rect", { width: "7", height: "5", x: "3", y: "16", rx: "1", key: "ldoo1y" }]
];
const LayoutDashboard = createLucideIcon("layout-dashboard", __iconNode$cq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cp = [
  ["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
  ["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
];
const LayoutGrid = createLucideIcon("layout-grid", __iconNode$cp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$co = [
  ["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }],
  ["path", { d: "M14 4h7", key: "3xa0d5" }],
  ["path", { d: "M14 9h7", key: "1icrd9" }],
  ["path", { d: "M14 15h7", key: "1mj8o2" }],
  ["path", { d: "M14 20h7", key: "11slyb" }]
];
const LayoutList = createLucideIcon("layout-list", __iconNode$co);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cn = [
  ["rect", { width: "7", height: "18", x: "3", y: "3", rx: "1", key: "2obqm" }],
  ["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }]
];
const LayoutPanelLeft = createLucideIcon("layout-panel-left", __iconNode$cn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cm = [
  ["rect", { width: "18", height: "7", x: "3", y: "3", rx: "1", key: "f1a2em" }],
  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }],
  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }]
];
const LayoutPanelTop = createLucideIcon("layout-panel-top", __iconNode$cm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cl = [
  ["rect", { width: "18", height: "7", x: "3", y: "3", rx: "1", key: "f1a2em" }],
  ["rect", { width: "9", height: "7", x: "3", y: "14", rx: "1", key: "jqznyg" }],
  ["rect", { width: "5", height: "7", x: "16", y: "14", rx: "1", key: "q5h2i8" }]
];
const LayoutTemplate = createLucideIcon("layout-template", __iconNode$cl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ck = [
  [
    "path",
    {
      d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",
      key: "nnexq3"
    }
  ],
  ["path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12", key: "mt58a7" }]
];
const Leaf = createLucideIcon("leaf", __iconNode$ck);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cj = [
  [
    "path",
    {
      d: "M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22",
      key: "1134nt"
    }
  ],
  ["path", { d: "M2 22 17 7", key: "1q7jp2" }]
];
const LeafyGreen = createLucideIcon("leafy-green", __iconNode$cj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ci = [
  [
    "path",
    {
      d: "M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3",
      key: "13jjxg"
    }
  ],
  ["path", { d: "M18 6V3a1 1 0 0 0-1-1h-3", key: "1550fe" }],
  ["rect", { width: "8", height: "12", x: "8", y: "10", rx: "1", key: "qmu8b6" }]
];
const Lectern = createLucideIcon("lectern", __iconNode$ci);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ch = [
  ["rect", { width: "8", height: "18", x: "3", y: "3", rx: "1", key: "oynpb5" }],
  ["path", { d: "M7 3v18", key: "bbkbws" }],
  [
    "path",
    {
      d: "M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",
      key: "1qboyk"
    }
  ]
];
const LibraryBig = createLucideIcon("library-big", __iconNode$ch);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cg = [
  ["path", { d: "m16 6 4 14", key: "ji33uf" }],
  ["path", { d: "M12 6v14", key: "1n7gus" }],
  ["path", { d: "M8 8v12", key: "1gg7y9" }],
  ["path", { d: "M4 4v16", key: "6qkkli" }]
];
const Library = createLucideIcon("library", __iconNode$cg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cf = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "m4.93 4.93 4.24 4.24", key: "1ymg45" }],
  ["path", { d: "m14.83 9.17 4.24-4.24", key: "1cb5xl" }],
  ["path", { d: "m14.83 14.83 4.24 4.24", key: "q42g0n" }],
  ["path", { d: "m9.17 14.83-4.24 4.24", key: "bqpfvv" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
];
const LifeBuoy = createLucideIcon("life-buoy", __iconNode$cf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ce = [
  ["path", { d: "M14 12h2v8", key: "c1fccl" }],
  ["path", { d: "M14 20h4", key: "lzx1xo" }],
  ["path", { d: "M6 12h4", key: "a4o3ry" }],
  ["path", { d: "M6 20h4", key: "1i6q5t" }],
  ["path", { d: "M8 20V8a4 4 0 0 1 7.464-2", key: "wk9t6r" }]
];
const Ligature = createLucideIcon("ligature", __iconNode$ce);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cd = [
  [
    "path",
    {
      d: "M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",
      key: "1gvzjb"
    }
  ],
  ["path", { d: "M9 18h6", key: "x1upvd" }],
  ["path", { d: "M10 22h4", key: "ceow96" }]
];
const Lightbulb = createLucideIcon("lightbulb", __iconNode$cd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cc = [
  ["path", { d: "M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5", key: "1fkcox" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5", key: "10m8kw" }],
  ["path", { d: "M9 18h6", key: "x1upvd" }],
  ["path", { d: "M10 22h4", key: "ceow96" }]
];
const LightbulbOff = createLucideIcon("lightbulb-off", __iconNode$cc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$cb = [
  [
    "path",
    {
      d: "M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2",
      key: "1lrphd"
    }
  ]
];
const LineSquiggle = createLucideIcon("line-squiggle", __iconNode$cb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ca = [
  ["path", { d: "M9 17H7A5 5 0 0 1 7 7", key: "10o201" }],
  ["path", { d: "M15 7h2a5 5 0 0 1 4 8", key: "1d3206" }],
  ["line", { x1: "8", x2: "12", y1: "12", y2: "12", key: "rvw6j4" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const Link2Off = createLucideIcon("link-2-off", __iconNode$ca);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c9 = [
  ["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
  ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
];
const Link2 = createLucideIcon("link-2", __iconNode$c9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c8 = [
  ["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
  ["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
];
const Link = createLucideIcon("link", __iconNode$c8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c7 = [
  [
    "path",
    {
      d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",
      key: "c2jq9f"
    }
  ],
  ["rect", { width: "4", height: "12", x: "2", y: "9", key: "mk3on5" }],
  ["circle", { cx: "4", cy: "4", r: "2", key: "bt5ra8" }]
];
const Linkedin = createLucideIcon("linkedin", __iconNode$c7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c6 = [
  ["path", { d: "M13 5h8", key: "a7qcls" }],
  ["path", { d: "M13 12h8", key: "h98zly" }],
  ["path", { d: "M13 19h8", key: "c3s6r1" }],
  ["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
  ["path", { d: "m3 7 2 2 4-4", key: "1obspn" }]
];
const ListChecks = createLucideIcon("list-checks", __iconNode$c6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c5 = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M16 12H3", key: "1a2rj7" }],
  ["path", { d: "M11 19H3", key: "zflm78" }],
  ["path", { d: "m15 18 2 2 4-4", key: "1szwhi" }]
];
const ListCheck = createLucideIcon("list-check", __iconNode$c5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c4 = [
  ["path", { d: "M3 5h8", key: "18g2rq" }],
  ["path", { d: "M3 12h8", key: "1xfjp6" }],
  ["path", { d: "M3 19h8", key: "fpbke4" }],
  ["path", { d: "m15 8 3-3 3 3", key: "bc4io6" }],
  ["path", { d: "m15 16 3 3 3-3", key: "9wmg1l" }]
];
const ListChevronsUpDown = createLucideIcon("list-chevrons-up-down", __iconNode$c4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c3 = [
  ["path", { d: "M3 5h8", key: "18g2rq" }],
  ["path", { d: "M3 12h8", key: "1xfjp6" }],
  ["path", { d: "M3 19h8", key: "fpbke4" }],
  ["path", { d: "m15 5 3 3 3-3", key: "1t4thf" }],
  ["path", { d: "m15 19 3-3 3 3", key: "y4ckd2" }]
];
const ListChevronsDownUp = createLucideIcon("list-chevrons-down-up", __iconNode$c3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c2 = [
  ["path", { d: "M10 5h11", key: "1hkqpe" }],
  ["path", { d: "M10 12h11", key: "6m4ad9" }],
  ["path", { d: "M10 19h11", key: "14g2nv" }],
  ["path", { d: "m3 10 3-3-3-3", key: "i7pm08" }],
  ["path", { d: "m3 20 3-3-3-3", key: "20gx1n" }]
];
const ListCollapse = createLucideIcon("list-collapse", __iconNode$c2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c1 = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M16 12H3", key: "1a2rj7" }],
  ["path", { d: "M9 19H3", key: "s61nz1" }],
  ["path", { d: "m16 16-3 3 3 3", key: "117b85" }],
  ["path", { d: "M21 5v12a2 2 0 0 1-2 2h-6", key: "hey24a" }]
];
const ListEnd = createLucideIcon("list-end", __iconNode$c1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c0 = [
  ["path", { d: "M12 5H2", key: "1o22fu" }],
  ["path", { d: "M6 12h12", key: "8npq4p" }],
  ["path", { d: "M9 19h6", key: "456am0" }],
  ["path", { d: "M16 5h6", key: "1vod17" }],
  ["path", { d: "M19 8V2", key: "1wcffq" }]
];
const ListFilterPlus = createLucideIcon("list-filter-plus", __iconNode$c0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b$ = [
  ["path", { d: "M2 5h20", key: "1fs1ex" }],
  ["path", { d: "M6 12h12", key: "8npq4p" }],
  ["path", { d: "M9 19h6", key: "456am0" }]
];
const ListFilter = createLucideIcon("list-filter", __iconNode$b$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b_ = [
  ["path", { d: "M21 5H11", key: "us1j55" }],
  ["path", { d: "M21 12H11", key: "wd7e0v" }],
  ["path", { d: "M21 19H11", key: "saa85w" }],
  ["path", { d: "m7 8-4 4 4 4", key: "o5hrat" }]
];
const ListIndentDecrease = createLucideIcon("list-indent-decrease", __iconNode$b_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bZ = [
  ["path", { d: "M21 5H11", key: "us1j55" }],
  ["path", { d: "M21 12H11", key: "wd7e0v" }],
  ["path", { d: "M21 19H11", key: "saa85w" }],
  ["path", { d: "m3 8 4 4-4 4", key: "1a3j6y" }]
];
const ListIndentIncrease = createLucideIcon("list-indent-increase", __iconNode$bZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bY = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M11 12H3", key: "51ecnj" }],
  ["path", { d: "M11 19H3", key: "zflm78" }],
  ["path", { d: "M21 16V5", key: "yxg4q8" }],
  ["circle", { cx: "18", cy: "16", r: "3", key: "1hluhg" }]
];
const ListMusic = createLucideIcon("list-music", __iconNode$bY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bX = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M11 12H3", key: "51ecnj" }],
  ["path", { d: "M16 19H3", key: "zzsher" }],
  ["path", { d: "M21 12h-6", key: "bt1uis" }]
];
const ListMinus = createLucideIcon("list-minus", __iconNode$bX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bW = [
  ["path", { d: "M11 5h10", key: "1cz7ny" }],
  ["path", { d: "M11 12h10", key: "1438ji" }],
  ["path", { d: "M11 19h10", key: "11t30w" }],
  ["path", { d: "M4 4h1v5", key: "10yrso" }],
  ["path", { d: "M4 9h2", key: "r1h2o0" }],
  ["path", { d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02", key: "xtkcd5" }]
];
const ListOrdered = createLucideIcon("list-ordered", __iconNode$bW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bV = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M11 12H3", key: "51ecnj" }],
  ["path", { d: "M16 19H3", key: "zzsher" }],
  ["path", { d: "M18 9v6", key: "1twb98" }],
  ["path", { d: "M21 12h-6", key: "bt1uis" }]
];
const ListPlus = createLucideIcon("list-plus", __iconNode$bV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bU = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M7 12H3", key: "13ou7f" }],
  ["path", { d: "M7 19H3", key: "wbqt3n" }],
  [
    "path",
    {
      d: "M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14",
      key: "qth677"
    }
  ],
  ["path", { d: "M11 10v4h4", key: "172dkj" }]
];
const ListRestart = createLucideIcon("list-restart", __iconNode$bU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bT = [
  ["path", { d: "M3 5h6", key: "1ltk0q" }],
  ["path", { d: "M3 12h13", key: "ppymz1" }],
  ["path", { d: "M3 19h13", key: "bpdczq" }],
  ["path", { d: "m16 8-3-3 3-3", key: "1pjpp6" }],
  ["path", { d: "M21 19V7a2 2 0 0 0-2-2h-6", key: "4zzq67" }]
];
const ListStart = createLucideIcon("list-start", __iconNode$bT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bS = [
  ["path", { d: "M13 5h8", key: "a7qcls" }],
  ["path", { d: "M13 12h8", key: "h98zly" }],
  ["path", { d: "M13 19h8", key: "c3s6r1" }],
  ["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
  ["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
];
const ListTodo = createLucideIcon("list-todo", __iconNode$bS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bR = [
  ["path", { d: "M8 5h13", key: "1pao27" }],
  ["path", { d: "M13 12h8", key: "h98zly" }],
  ["path", { d: "M13 19h8", key: "c3s6r1" }],
  ["path", { d: "M3 10a2 2 0 0 0 2 2h3", key: "1npucw" }],
  ["path", { d: "M3 5v12a2 2 0 0 0 2 2h3", key: "x1gjn2" }]
];
const ListTree = createLucideIcon("list-tree", __iconNode$bR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bQ = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M10 12H3", key: "1ulcyk" }],
  ["path", { d: "M10 19H3", key: "108z41" }],
  [
    "path",
    {
      d: "M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z",
      key: "ms4nik"
    }
  ]
];
const ListVideo = createLucideIcon("list-video", __iconNode$bQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bP = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M11 12H3", key: "51ecnj" }],
  ["path", { d: "M16 19H3", key: "zzsher" }],
  ["path", { d: "m15.5 9.5 5 5", key: "ytk86i" }],
  ["path", { d: "m20.5 9.5-5 5", key: "17o44f" }]
];
const ListX = createLucideIcon("list-x", __iconNode$bP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bO = [
  ["path", { d: "M3 5h.01", key: "18ugdj" }],
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
  ["path", { d: "M3 19h.01", key: "noohij" }],
  ["path", { d: "M8 5h13", key: "1pao27" }],
  ["path", { d: "M8 12h13", key: "1za7za" }],
  ["path", { d: "M8 19h13", key: "m83p4d" }]
];
const List = createLucideIcon("list", __iconNode$bO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bN = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$bN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bM = [
  ["path", { d: "M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0", key: "1lzz15" }],
  ["path", { d: "M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6", key: "1gnrpi" }],
  ["path", { d: "M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6", key: "u9yy5q" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const LoaderPinwheel = createLucideIcon("loader-pinwheel", __iconNode$bM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bL = [
  ["path", { d: "M12 2v4", key: "3427ic" }],
  ["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
  ["path", { d: "M18 12h4", key: "wj9ykh" }],
  ["path", { d: "m16.2 16.2 2.9 2.9", key: "1bxg5t" }],
  ["path", { d: "M12 18v4", key: "jadmvz" }],
  ["path", { d: "m4.9 19.1 2.9-2.9", key: "bwix9q" }],
  ["path", { d: "M2 12h4", key: "j09sii" }],
  ["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
];
const Loader = createLucideIcon("loader", __iconNode$bL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bK = [
  ["line", { x1: "2", x2: "5", y1: "12", y2: "12", key: "bvdh0s" }],
  ["line", { x1: "19", x2: "22", y1: "12", y2: "12", key: "1tbv5k" }],
  ["line", { x1: "12", x2: "12", y1: "2", y2: "5", key: "11lu5j" }],
  ["line", { x1: "12", x2: "12", y1: "19", y2: "22", key: "x3vr5v" }],
  ["circle", { cx: "12", cy: "12", r: "7", key: "fim9np" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
];
const LocateFixed = createLucideIcon("locate-fixed", __iconNode$bK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bJ = [
  ["line", { x1: "2", x2: "5", y1: "12", y2: "12", key: "bvdh0s" }],
  ["line", { x1: "19", x2: "22", y1: "12", y2: "12", key: "1tbv5k" }],
  ["line", { x1: "12", x2: "12", y1: "2", y2: "5", key: "11lu5j" }],
  ["line", { x1: "12", x2: "12", y1: "19", y2: "22", key: "x3vr5v" }],
  ["circle", { cx: "12", cy: "12", r: "7", key: "fim9np" }]
];
const Locate = createLucideIcon("locate", __iconNode$bJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bI = [
  ["path", { d: "M12 19v3", key: "npa21l" }],
  ["path", { d: "M12 2v3", key: "qbqxhf" }],
  ["path", { d: "M18.89 13.24a7 7 0 0 0-8.13-8.13", key: "1v9jrh" }],
  ["path", { d: "M19 12h3", key: "osuazr" }],
  ["path", { d: "M2 12h3", key: "1wrr53" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M7.05 7.05a7 7 0 0 0 9.9 9.9", key: "rc5l2e" }]
];
const LocateOff = createLucideIcon("locate-off", __iconNode$bI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bH = [
  ["circle", { cx: "12", cy: "16", r: "1", key: "1au0dj" }],
  ["rect", { width: "18", height: "12", x: "3", y: "10", rx: "2", key: "l0tzu3" }],
  ["path", { d: "M7 10V7a5 5 0 0 1 9.33-2.5", key: "car5b7" }]
];
const LockKeyholeOpen = createLucideIcon("lock-keyhole-open", __iconNode$bH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bG = [
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
  ["path", { d: "M7 11V7a5 5 0 0 1 9.9-1", key: "1mm8w8" }]
];
const LockOpen = createLucideIcon("lock-open", __iconNode$bG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bF = [
  ["circle", { cx: "12", cy: "16", r: "1", key: "1au0dj" }],
  ["rect", { x: "3", y: "10", width: "18", height: "12", rx: "2", key: "6s8ecr" }],
  ["path", { d: "M7 10V7a5 5 0 0 1 10 0v3", key: "1pqi11" }]
];
const LockKeyhole = createLucideIcon("lock-keyhole", __iconNode$bF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bE = [
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
];
const Lock = createLucideIcon("lock", __iconNode$bE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bD = [
  ["path", { d: "m10 17 5-5-5-5", key: "1bsop3" }],
  ["path", { d: "M15 12H3", key: "6jk70r" }],
  ["path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4", key: "u53s6r" }]
];
const LogIn = createLucideIcon("log-in", __iconNode$bD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bC = [
  ["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
  ["path", { d: "M21 12H9", key: "dn1m92" }],
  ["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
];
const LogOut = createLucideIcon("log-out", __iconNode$bC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bB = [
  ["path", { d: "M3 5h1", key: "1mv5vm" }],
  ["path", { d: "M3 12h1", key: "lp3yf2" }],
  ["path", { d: "M3 19h1", key: "w6f3n9" }],
  ["path", { d: "M8 5h1", key: "1nxr5w" }],
  ["path", { d: "M8 12h1", key: "1con00" }],
  ["path", { d: "M8 19h1", key: "k7p10e" }],
  ["path", { d: "M13 5h8", key: "a7qcls" }],
  ["path", { d: "M13 12h8", key: "h98zly" }],
  ["path", { d: "M13 19h8", key: "c3s6r1" }]
];
const Logs = createLucideIcon("logs", __iconNode$bB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bA = [
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }],
  ["path", { d: "M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0", key: "107gwy" }]
];
const Lollipop = createLucideIcon("lollipop", __iconNode$bA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bz = [
  [
    "path",
    { d: "M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2", key: "1m57jg" }
  ],
  ["path", { d: "M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14", key: "1l99gc" }],
  ["path", { d: "M10 20h4", key: "ni2waw" }],
  ["circle", { cx: "16", cy: "20", r: "2", key: "1vifvg" }],
  ["circle", { cx: "8", cy: "20", r: "2", key: "ckkr5m" }]
];
const Luggage = createLucideIcon("luggage", __iconNode$bz);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$by = [
  ["path", { d: "m12 15 4 4", key: "lnac28" }],
  [
    "path",
    {
      d: "M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z",
      key: "nlhkjb"
    }
  ],
  ["path", { d: "m5 8 4 4", key: "j6kj7e" }]
];
const Magnet = createLucideIcon("magnet", __iconNode$by);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bx = [
  ["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8", key: "12jkf8" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "m16 19 2 2 4-4", key: "1b14m6" }]
];
const MailCheck = createLucideIcon("mail-check", __iconNode$bx);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bw = [
  ["path", { d: "M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8", key: "fuxbkv" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "M16 19h6", key: "xwg31i" }]
];
const MailMinus = createLucideIcon("mail-minus", __iconNode$bw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bv = [
  [
    "path",
    {
      d: "M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",
      key: "1jhwl8"
    }
  ],
  ["path", { d: "m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10", key: "1qfld7" }]
];
const MailOpen = createLucideIcon("mail-open", __iconNode$bv);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bu = [
  ["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8", key: "12jkf8" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "M19 16v6", key: "tddt3s" }],
  ["path", { d: "M16 19h6", key: "xwg31i" }]
];
const MailPlus = createLucideIcon("mail-plus", __iconNode$bu);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bt = [
  ["path", { d: "M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5", key: "e61zoh" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  [
    "path",
    {
      d: "M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2",
      key: "7z9rxb"
    }
  ],
  ["path", { d: "M20 22v.01", key: "12bgn6" }]
];
const MailQuestionMark = createLucideIcon("mail-question-mark", __iconNode$bt);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bs = [
  ["path", { d: "M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5", key: "w80f2v" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z", key: "8lzu5m" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["path", { d: "m22 22-1.5-1.5", key: "1x83k4" }]
];
const MailSearch = createLucideIcon("mail-search", __iconNode$bs);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$br = [
  ["path", { d: "M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5", key: "e61zoh" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "M20 14v4", key: "1hm744" }],
  ["path", { d: "M20 22v.01", key: "12bgn6" }]
];
const MailWarning = createLucideIcon("mail-warning", __iconNode$br);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bq = [
  ["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9", key: "1j9vog" }],
  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }],
  ["path", { d: "m17 17 4 4", key: "1b3523" }],
  ["path", { d: "m21 17-4 4", key: "uinynz" }]
];
const MailX = createLucideIcon("mail-x", __iconNode$bq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bp = [
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
];
const Mail = createLucideIcon("mail", __iconNode$bp);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bo = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z",
      key: "1lbycx"
    }
  ],
  ["polyline", { points: "15,9 18,9 18,11", key: "1pm9c0" }],
  ["path", { d: "M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2", key: "15i455" }],
  ["line", { x1: "6", x2: "7", y1: "10", y2: "10", key: "1e2scm" }]
];
const Mailbox = createLucideIcon("mailbox", __iconNode$bo);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bn = [
  ["path", { d: "M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732", key: "1vyzll" }],
  ["path", { d: "m22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5", key: "k7ramc" }],
  ["rect", { x: "7", y: "3", width: "15", height: "12", rx: "2", key: "17196g" }]
];
const Mails = createLucideIcon("mails", __iconNode$bn);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bm = [
  [
    "path",
    {
      d: "m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V14",
      key: "40pylx"
    }
  ],
  ["path", { d: "M15 5.764V14", key: "1bab71" }],
  ["path", { d: "M21 18h-6", key: "139f0c" }],
  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
];
const MapMinus = createLucideIcon("map-minus", __iconNode$bm);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bl = [
  [
    "path",
    {
      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
      key: "1r0f0z"
    }
  ],
  ["path", { d: "m9 10 2 2 4-4", key: "1gnqz4" }]
];
const MapPinCheckInside = createLucideIcon("map-pin-check-inside", __iconNode$bl);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bk = [
  [
    "path",
    {
      d: "M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728",
      key: "1dq61d"
    }
  ],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "m16 18 2 2 4-4", key: "1mkfmb" }]
];
const MapPinCheck = createLucideIcon("map-pin-check", __iconNode$bk);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bj = [
  [
    "path",
    {
      d: "M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z",
      key: "1p1rcz"
    }
  ],
  [
    "path",
    {
      d: "M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2",
      key: "mcbcs9"
    }
  ],
  ["path", { d: "M18 22v-3", key: "1t1ugv" }],
  ["circle", { cx: "10", cy: "10", r: "3", key: "1ns7v1" }]
];
const MapPinHouse = createLucideIcon("map-pin-house", __iconNode$bj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bi = [
  [
    "path",
    {
      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
      key: "1r0f0z"
    }
  ],
  ["path", { d: "M9 10h6", key: "9gxzsh" }]
];
const MapPinMinusInside = createLucideIcon("map-pin-minus-inside", __iconNode$bi);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bh = [
  [
    "path",
    {
      d: "M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",
      key: "11uxia"
    }
  ],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "M16 18h6", key: "987eiv" }]
];
const MapPinMinus = createLucideIcon("map-pin-minus", __iconNode$bh);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bg = [
  ["path", { d: "M12.75 7.09a3 3 0 0 1 2.16 2.16", key: "1d4wjd" }],
  [
    "path",
    {
      d: "M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568",
      key: "12yil7"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533", key: "lhrkcz" }],
  ["path", { d: "M9.13 9.13a3 3 0 0 0 3.74 3.74", key: "13wojd" }]
];
const MapPinOff = createLucideIcon("map-pin-off", __iconNode$bg);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bf = [
  ["path", { d: "M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468", key: "1fahp3" }],
  [
    "path",
    {
      d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1817ys"
    }
  ],
  ["circle", { cx: "10", cy: "10", r: "3", key: "1ns7v1" }]
];
const MapPinPen = createLucideIcon("map-pin-pen", __iconNode$bf);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$be = [
  [
    "path",
    {
      d: "M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738",
      key: "fcdtly"
    }
  ],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "M16 18h6", key: "987eiv" }],
  ["path", { d: "M19 15v6", key: "10aioa" }]
];
const MapPinPlus = createLucideIcon("map-pin-plus", __iconNode$be);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bd = [
  [
    "path",
    {
      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
      key: "1r0f0z"
    }
  ],
  ["path", { d: "M12 7v6", key: "lw1j43" }],
  ["path", { d: "M9 10h6", key: "9gxzsh" }]
];
const MapPinPlusInside = createLucideIcon("map-pin-plus-inside", __iconNode$bd);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bc = [
  [
    "path",
    {
      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
      key: "1r0f0z"
    }
  ],
  ["path", { d: "m14.5 7.5-5 5", key: "3lb6iw" }],
  ["path", { d: "m9.5 7.5 5 5", key: "ko136h" }]
];
const MapPinXInside = createLucideIcon("map-pin-x-inside", __iconNode$bc);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$bb = [
  [
    "path",
    {
      d: "M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077",
      key: "y0ewhp"
    }
  ],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "m21.5 15.5-5 5", key: "11iqnx" }],
  ["path", { d: "m21.5 20.5-5-5", key: "1bylgx" }]
];
const MapPinX = createLucideIcon("map-pin-x", __iconNode$bb);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ba = [
  [
    "path",
    {
      d: "m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12",
      key: "svfegj"
    }
  ],
  ["path", { d: "M15 5.764V12", key: "1ocw4k" }],
  ["path", { d: "M18 15v6", key: "9wciyi" }],
  ["path", { d: "M21 18h-6", key: "139f0c" }],
  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
];
const MapPlus = createLucideIcon("map-plus", __iconNode$ba);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b9 = [
  [
    "path",
    {
      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
      key: "1r0f0z"
    }
  ],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
];
const MapPin = createLucideIcon("map-pin", __iconNode$b9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b8 = [
  [
    "path",
    {
      d: "M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",
      key: "11u0oz"
    }
  ],
  ["circle", { cx: "12", cy: "8", r: "2", key: "1822b1" }],
  [
    "path",
    {
      d: "M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",
      key: "q8zwxj"
    }
  ]
];
const MapPinned = createLucideIcon("map-pinned", __iconNode$b8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b7 = [
  [
    "path",
    {
      d: "M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",
      key: "169xi5"
    }
  ],
  ["path", { d: "M15 5.764v15", key: "1pn4in" }],
  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
];
const Map$1 = createLucideIcon("map", __iconNode$b7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b6 = [
  ["path", { d: "m14 6 4 4", key: "1q72g9" }],
  ["path", { d: "M17 3h4v4", key: "19p9u1" }],
  ["path", { d: "m21 3-7.75 7.75", key: "1cjbfd" }],
  ["circle", { cx: "9", cy: "15", r: "6", key: "bx5svt" }]
];
const MarsStroke = createLucideIcon("mars-stroke", __iconNode$b6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b5 = [
  ["path", { d: "M16 3h5v5", key: "1806ms" }],
  ["path", { d: "m21 3-6.75 6.75", key: "pv0uzu" }],
  ["circle", { cx: "10", cy: "14", r: "6", key: "1qwbdc" }]
];
const Mars = createLucideIcon("mars", __iconNode$b5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b4 = [
  ["path", { d: "M8 22h8", key: "rmew8v" }],
  ["path", { d: "M12 11v11", key: "ur9y6a" }],
  ["path", { d: "m19 3-7 8-7-8Z", key: "1sgpiw" }]
];
const Martini = createLucideIcon("martini", __iconNode$b4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b3 = [
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
  ["path", { d: "m21 3-7 7", key: "1l2asr" }],
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
  ["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
];
const Maximize2 = createLucideIcon("maximize-2", __iconNode$b3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b2 = [
  ["path", { d: "M8 3H5a2 2 0 0 0-2 2v3", key: "1dcmit" }],
  ["path", { d: "M21 8V5a2 2 0 0 0-2-2h-3", key: "1e4gt3" }],
  ["path", { d: "M3 16v3a2 2 0 0 0 2 2h3", key: "wsl5sc" }],
  ["path", { d: "M16 21h3a2 2 0 0 0 2-2v-3", key: "18trek" }]
];
const Maximize = createLucideIcon("maximize", __iconNode$b2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b1 = [
  [
    "path",
    {
      d: "M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",
      key: "143lza"
    }
  ],
  ["path", { d: "M11 12 5.12 2.2", key: "qhuxz6" }],
  ["path", { d: "m13 12 5.88-9.8", key: "hbye0f" }],
  ["path", { d: "M8 7h8", key: "i86dvs" }],
  ["circle", { cx: "12", cy: "17", r: "5", key: "qbz8iq" }],
  ["path", { d: "M12 18v-2h-.5", key: "fawc4q" }]
];
const Medal = createLucideIcon("medal", __iconNode$b1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b0 = [
  ["path", { d: "M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344", key: "bycexp" }],
  [
    "path",
    { d: "M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1", key: "1t17s6" }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
  ["path", { d: "M8 8v6", key: "aieo6v" }]
];
const MegaphoneOff = createLucideIcon("megaphone-off", __iconNode$b0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a$ = [
  [
    "path",
    {
      d: "M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",
      key: "q8bfy3"
    }
  ],
  ["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
  ["path", { d: "M8 6v8", key: "15ugcq" }]
];
const Megaphone = createLucideIcon("megaphone", __iconNode$a$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a_ = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["line", { x1: "8", x2: "16", y1: "15", y2: "15", key: "1xb1d9" }],
  ["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
  ["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
];
const Meh = createLucideIcon("meh", __iconNode$a_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aZ = [
  ["path", { d: "M6 19v-3", key: "1nvgqn" }],
  ["path", { d: "M10 19v-3", key: "iu8nkm" }],
  ["path", { d: "M14 19v-3", key: "kcehxu" }],
  ["path", { d: "M18 19v-3", key: "1vh91z" }],
  ["path", { d: "M8 11V9", key: "63erz4" }],
  ["path", { d: "M16 11V9", key: "fru6f3" }],
  ["path", { d: "M12 11V9", key: "ha00sb" }],
  ["path", { d: "M2 15h20", key: "16ne18" }],
  [
    "path",
    {
      d: "M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",
      key: "lhddv3"
    }
  ]
];
const MemoryStick = createLucideIcon("memory-stick", __iconNode$aZ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aY = [
  ["path", { d: "M4 5h16", key: "1tepv9" }],
  ["path", { d: "M4 12h16", key: "1lakjw" }],
  ["path", { d: "M4 19h16", key: "1djgab" }]
];
const Menu = createLucideIcon("menu", __iconNode$aY);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aX = [
  ["path", { d: "m8 6 4-4 4 4", key: "ybng9g" }],
  ["path", { d: "M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22", key: "1hyw0i" }],
  ["path", { d: "m20 22-5-5", key: "1m27yz" }]
];
const Merge = createLucideIcon("merge", __iconNode$aX);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aW = [
  ["path", { d: "m10 9-3 3 3 3", key: "1oro0q" }],
  ["path", { d: "m14 15 3-3-3-3", key: "bz13h7" }],
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ]
];
const MessageCircleCode = createLucideIcon("message-circle-code", __iconNode$aW);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aV = [
  ["path", { d: "M10.1 2.182a10 10 0 0 1 3.8 0", key: "5ilxe3" }],
  ["path", { d: "M13.9 21.818a10 10 0 0 1-3.8 0", key: "11zvb9" }],
  ["path", { d: "M17.609 3.72a10 10 0 0 1 2.69 2.7", key: "jiglxs" }],
  ["path", { d: "M2.182 13.9a10 10 0 0 1 0-3.8", key: "c0bmvh" }],
  ["path", { d: "M20.28 17.61a10 10 0 0 1-2.7 2.69", key: "elg7ff" }],
  ["path", { d: "M21.818 10.1a10 10 0 0 1 0 3.8", key: "qkgqxc" }],
  ["path", { d: "M3.721 6.391a10 10 0 0 1 2.7-2.69", key: "1mcia2" }],
  ["path", { d: "m6.163 21.117-2.906.85a1 1 0 0 1-1.236-1.169l.965-2.98", key: "1qsu07" }]
];
const MessageCircleDashed = createLucideIcon("message-circle-dashed", __iconNode$aV);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aU = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  [
    "path",
    {
      d: "M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 5.004 2.224 3 3 0 0 1-.832 2.083l-3.447 3.62a1 1 0 0 1-1.45-.001z",
      key: "hoo97p"
    }
  ]
];
const MessageCircleHeart = createLucideIcon("message-circle-heart", __iconNode$aU);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aT = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "M8 12h.01", key: "czm47f" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M16 12h.01", key: "1l6xoz" }]
];
const MessageCircleMore = createLucideIcon("message-circle-more", __iconNode$aT);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aS = [
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    {
      d: "M4.93 4.929a10 10 0 0 0-1.938 11.412 2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 0 0 11.302-1.989",
      key: "7il5tn"
    }
  ],
  ["path", { d: "M8.35 2.69A10 10 0 0 1 21.3 15.65", key: "1pfsoa" }]
];
const MessageCircleOff = createLucideIcon("message-circle-off", __iconNode$aS);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aR = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "M12 8v8", key: "napkw2" }]
];
const MessageCirclePlus = createLucideIcon("message-circle-plus", __iconNode$aR);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aQ = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }]
];
const MessageCircleQuestionMark = createLucideIcon("message-circle-question-mark", __iconNode$aQ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aP = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }],
  ["path", { d: "M7 12h8a2 2 0 0 1 2 2v1", key: "89sh1g" }]
];
const MessageCircleReply = createLucideIcon("message-circle-reply", __iconNode$aP);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aO = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "M12 8v4", key: "1got3b" }],
  ["path", { d: "M12 16h.01", key: "1drbdi" }]
];
const MessageCircleWarning = createLucideIcon("message-circle-warning", __iconNode$aO);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aN = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
];
const MessageCircleX = createLucideIcon("message-circle-x", __iconNode$aN);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aM = [
  [
    "path",
    {
      d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
      key: "1sd12s"
    }
  ]
];
const MessageCircle = createLucideIcon("message-circle", __iconNode$aM);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aL = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "m10 8-3 3 3 3", key: "fp6dz7" }],
  ["path", { d: "m14 14 3-3-3-3", key: "1yrceu" }]
];
const MessageSquareCode = createLucideIcon("message-square-code", __iconNode$aL);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aK = [
  ["path", { d: "M12 19h.01", key: "1wutuc" }],
  ["path", { d: "M12 3h.01", key: "n36tog" }],
  ["path", { d: "M16 19h.01", key: "1vcnzz" }],
  ["path", { d: "M16 3h.01", key: "ll0zb8" }],
  ["path", { d: "M2 13h.01", key: "1aptou" }],
  [
    "path",
    { d: "M2 17v4.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H8", key: "4cp7zq" }
  ],
  ["path", { d: "M2 5a2 2 0 0 1 2-2", key: "1iztiu" }],
  ["path", { d: "M2 9h.01", key: "1nzd1v" }],
  ["path", { d: "M20 3a2 2 0 0 1 2 2", key: "m48m3a" }],
  ["path", { d: "M22 13h.01", key: "ke7esy" }],
  ["path", { d: "M22 17a2 2 0 0 1-2 2", key: "17q5fo" }],
  ["path", { d: "M22 9h.01", key: "npkp49" }],
  ["path", { d: "M8 3h.01", key: "133hau" }]
];
const MessageSquareDashed = createLucideIcon("message-square-dashed", __iconNode$aK);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aJ = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M10 15h4", key: "192ueg" }],
  ["path", { d: "M10 9h4", key: "u4k05v" }],
  ["path", { d: "M12 7v4", key: "xawao1" }]
];
const MessageSquareDiff = createLucideIcon("message-square-diff", __iconNode$aJ);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aI = [
  [
    "path",
    {
      d: "M12.7 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4.7",
      key: "wjb7ig"
    }
  ],
  ["circle", { cx: "19", cy: "6", r: "3", key: "108a5v" }]
];
const MessageSquareDot = createLucideIcon("message-square-dot", __iconNode$aI);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aH = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  [
    "path",
    {
      d: "M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5",
      key: "1faxuh"
    }
  ]
];
const MessageSquareHeart = createLucideIcon("message-square-heart", __iconNode$aH);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aG = [
  [
    "path",
    {
      d: "M22 8.5V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H10",
      key: "fu6chl"
    }
  ],
  ["path", { d: "M20 15v-2a2 2 0 0 0-4 0v2", key: "vl8a78" }],
  ["rect", { x: "14", y: "15", width: "8", height: "5", rx: "1", key: "37aafw" }]
];
const MessageSquareLock = createLucideIcon("message-square-lock", __iconNode$aG);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aF = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M12 11h.01", key: "z322tv" }],
  ["path", { d: "M16 11h.01", key: "xkw8gn" }],
  ["path", { d: "M8 11h.01", key: "1dfujw" }]
];
const MessageSquareMore = createLucideIcon("message-square-more", __iconNode$aF);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aE = [
  [
    "path",
    {
      d: "M19 19H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.7.7 0 0 1 2 21.286V5a2 2 0 0 1 1.184-1.826",
      key: "1wyg69"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M8.656 3H20a2 2 0 0 1 2 2v11.344", key: "mhl4k6" }]
];
const MessageSquareOff = createLucideIcon("message-square-off", __iconNode$aE);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aD = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M12 8v6", key: "1ib9pf" }],
  ["path", { d: "M9 11h6", key: "1fldmi" }]
];
const MessageSquarePlus = createLucideIcon("message-square-plus", __iconNode$aD);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aC = [
  ["path", { d: "M14 14a2 2 0 0 0 2-2V8h-2", key: "1r06pg" }],
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M8 14a2 2 0 0 0 2-2V8H8", key: "1jzu5j" }]
];
const MessageSquareQuote = createLucideIcon("message-square-quote", __iconNode$aC);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aB = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "m10 8-3 3 3 3", key: "fp6dz7" }],
  ["path", { d: "M17 14v-1a2 2 0 0 0-2-2H7", key: "1tkjnz" }]
];
const MessageSquareReply = createLucideIcon("message-square-reply", __iconNode$aB);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aA = [
  [
    "path",
    {
      d: "M12 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4",
      key: "11da1y"
    }
  ],
  ["path", { d: "M16 3h6v6", key: "1bx56c" }],
  ["path", { d: "m16 9 6-6", key: "m4dnic" }]
];
const MessageSquareShare = createLucideIcon("message-square-share", __iconNode$aA);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$az = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M7 11h10", key: "1twpyw" }],
  ["path", { d: "M7 15h6", key: "d9of3u" }],
  ["path", { d: "M7 7h8", key: "af5zfr" }]
];
const MessageSquareText = createLucideIcon("message-square-text", __iconNode$az);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ay = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "M12 15h.01", key: "q59x07" }],
  ["path", { d: "M12 7v4", key: "xawao1" }]
];
const MessageSquareWarning = createLucideIcon("message-square-warning", __iconNode$ay);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ax = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ],
  ["path", { d: "m14.5 8.5-5 5", key: "19tnj2" }],
  ["path", { d: "m9.5 8.5 5 5", key: "1oa8ql" }]
];
const MessageSquareX = createLucideIcon("message-square-x", __iconNode$ax);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aw = [
  [
    "path",
    {
      d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
      key: "18887p"
    }
  ]
];
const MessageSquare = createLucideIcon("message-square", __iconNode$aw);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$av = [
  [
    "path",
    {
      d: "M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",
      key: "1n2ejm"
    }
  ],
  [
    "path",
    {
      d: "M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",
      key: "1qfcsi"
    }
  ]
];
const MessagesSquare = createLucideIcon("messages-square", __iconNode$av);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$au = [
  ["path", { d: "M12 19v3", key: "npa21l" }],
  ["path", { d: "M15 9.34V5a3 3 0 0 0-5.68-1.33", key: "1gzdoj" }],
  ["path", { d: "M16.95 16.95A7 7 0 0 1 5 12v-2", key: "cqa7eg" }],
  ["path", { d: "M18.89 13.23A7 7 0 0 0 19 12v-2", key: "16hl24" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M9 9v3a3 3 0 0 0 5.12 2.12", key: "r2i35w" }]
];
const MicOff = createLucideIcon("mic-off", __iconNode$au);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$at = [
  [
    "path",
    {
      d: "m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12",
      key: "80a601"
    }
  ],
  [
    "path",
    {
      d: "M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5",
      key: "j0ngtp"
    }
  ],
  ["circle", { cx: "16", cy: "7", r: "5", key: "d08jfb" }]
];
const MicVocal = createLucideIcon("mic-vocal", __iconNode$at);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$as = [
  ["path", { d: "M12 19v3", key: "npa21l" }],
  ["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
  ["rect", { x: "9", y: "2", width: "6", height: "13", rx: "3", key: "s6n7sd" }]
];
const Mic = createLucideIcon("mic", __iconNode$as);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ar = [
  ["path", { d: "M18 12h2", key: "quuxs7" }],
  ["path", { d: "M18 16h2", key: "zsn3lv" }],
  ["path", { d: "M18 20h2", key: "9x5y9y" }],
  ["path", { d: "M18 4h2", key: "1luxfb" }],
  ["path", { d: "M18 8h2", key: "nxqzg" }],
  ["path", { d: "M4 12h2", key: "1ltxp0" }],
  ["path", { d: "M4 16h2", key: "8a5zha" }],
  ["path", { d: "M4 20h2", key: "27dk57" }],
  ["path", { d: "M4 4h2", key: "10groj" }],
  ["path", { d: "M4 8h2", key: "18vq6w" }],
  [
    "path",
    {
      d: "M8 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-1.5c-.276 0-.494.227-.562.495a2 2 0 0 1-3.876 0C9.994 2.227 9.776 2 9.5 2z",
      key: "1681fp"
    }
  ]
];
const Microchip = createLucideIcon("microchip", __iconNode$ar);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aq = [
  ["path", { d: "M6 18h8", key: "1borvv" }],
  ["path", { d: "M3 22h18", key: "8prr45" }],
  ["path", { d: "M14 22a7 7 0 1 0 0-14h-1", key: "1jwaiy" }],
  ["path", { d: "M9 14h2", key: "197e7h" }],
  ["path", { d: "M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z", key: "1bmzmy" }],
  ["path", { d: "M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3", key: "1drr47" }]
];
const Microscope = createLucideIcon("microscope", __iconNode$aq);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ap = [
  ["rect", { width: "20", height: "15", x: "2", y: "4", rx: "2", key: "2no95f" }],
  ["rect", { width: "8", height: "7", x: "6", y: "8", rx: "1", key: "zh9wx" }],
  ["path", { d: "M18 8v7", key: "o5zi4n" }],
  ["path", { d: "M6 19v2", key: "1loha6" }],
  ["path", { d: "M18 19v2", key: "1dawf0" }]
];
const Microwave = createLucideIcon("microwave", __iconNode$ap);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ao = [
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
  ["path", { d: "M12 3v3", key: "1n5kay" }],
  [
    "path",
    {
      d: "M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z",
      key: "1btarq"
    }
  ]
];
const Milestone = createLucideIcon("milestone", __iconNode$ao);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$an = [
  ["path", { d: "M8 2h8", key: "1ssgc1" }],
  [
    "path",
    {
      d: "M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2",
      key: "qtp12x"
    }
  ],
  ["path", { d: "M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0", key: "ygeh44" }]
];
const Milk = createLucideIcon("milk", __iconNode$an);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$am = [
  ["path", { d: "M8 2h8", key: "1ssgc1" }],
  [
    "path",
    {
      d: "M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3",
      key: "y0ejgx"
    }
  ],
  ["path", { d: "M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435", key: "iaxqsy" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const MilkOff = createLucideIcon("milk-off", __iconNode$am);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$al = [
  ["path", { d: "m14 10 7-7", key: "oa77jy" }],
  ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
  ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
];
const Minimize2 = createLucideIcon("minimize-2", __iconNode$al);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ak = [
  ["path", { d: "M8 3v3a2 2 0 0 1-2 2H3", key: "hohbtr" }],
  ["path", { d: "M21 8h-3a2 2 0 0 1-2-2V3", key: "5jw1f3" }],
  ["path", { d: "M3 16h3a2 2 0 0 1 2 2v3", key: "198tvr" }],
  ["path", { d: "M16 21v-3a2 2 0 0 1 2-2h3", key: "ph8mxp" }]
];
const Minimize = createLucideIcon("minimize", __iconNode$ak);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aj = [["path", { d: "M5 12h14", key: "1ays0h" }]];
const Minus = createLucideIcon("minus", __iconNode$aj);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ai = [
  ["path", { d: "m9 10 2 2 4-4", key: "1gnqz4" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }]
];
const MonitorCheck = createLucideIcon("monitor-check", __iconNode$ai);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ah = [
  ["path", { d: "M11 13a3 3 0 1 1 2.83-4H14a2 2 0 0 1 0 4z", key: "1da4q6" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", key: "x3v2xh" }]
];
const MonitorCloud = createLucideIcon("monitor-cloud", __iconNode$ah);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ag = [
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "m14.305 7.53.923-.382", key: "1mlnsw" }],
  ["path", { d: "m15.228 4.852-.923-.383", key: "82mpwg" }],
  ["path", { d: "m16.852 3.228-.383-.924", key: "ln4sir" }],
  ["path", { d: "m16.852 8.772-.383.923", key: "1dejw0" }],
  ["path", { d: "m19.148 3.228.383-.924", key: "192kgf" }],
  ["path", { d: "m19.53 9.696-.382-.924", key: "fiavlr" }],
  ["path", { d: "m20.772 4.852.924-.383", key: "1j8mgp" }],
  ["path", { d: "m20.772 7.148.924.383", key: "zix9be" }],
  ["path", { d: "M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7", key: "1tnzv8" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }]
];
const MonitorCog = createLucideIcon("monitor-cog", __iconNode$ag);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$af = [
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  [
    "path",
    { d: "M22 12.307V15a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8.693", key: "1dx6ho" }
  ],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["circle", { cx: "19", cy: "6", r: "3", key: "108a5v" }]
];
const MonitorDot = createLucideIcon("monitor-dot", __iconNode$af);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ae = [
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  ["path", { d: "m15 10-3 3-3-3", key: "lzhmyn" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }]
];
const MonitorDown = createLucideIcon("monitor-down", __iconNode$ae);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ad = [
  ["path", { d: "M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2", key: "k0q8oc" }],
  ["path", { d: "M22 15V5a2 2 0 0 0-2-2H9", key: "cp1ac0" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const MonitorOff = createLucideIcon("monitor-off", __iconNode$ad);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ac = [
  [
    "path",
    {
      d: "M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",
      key: "vbtd3f"
    }
  ],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", key: "x3v2xh" }]
];
const MonitorPlay = createLucideIcon("monitor-play", __iconNode$ac);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$ab = [
  ["path", { d: "M10 13V7", key: "1u13u9" }],
  ["path", { d: "M14 13V7", key: "1vj9om" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }]
];
const MonitorPause = createLucideIcon("monitor-pause", __iconNode$ab);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$aa = [
  ["path", { d: "M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8", key: "10dyio" }],
  ["path", { d: "M10 19v-3.96 3.15", key: "1irgej" }],
  ["path", { d: "M7 19h5", key: "qswx4l" }],
  ["rect", { width: "6", height: "10", x: "16", y: "12", rx: "2", key: "1egngj" }]
];
const MonitorSmartphone = createLucideIcon("monitor-smartphone", __iconNode$aa);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a9 = [
  ["path", { d: "M5.5 20H8", key: "1k40s5" }],
  ["path", { d: "M17 9h.01", key: "1j24nn" }],
  ["rect", { width: "10", height: "16", x: "12", y: "4", rx: "2", key: "ixliua" }],
  ["path", { d: "M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4", key: "1mp6e1" }],
  ["circle", { cx: "17", cy: "15", r: "1", key: "tqvash" }]
];
const MonitorSpeaker = createLucideIcon("monitor-speaker", __iconNode$a9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a8 = [
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", key: "x3v2xh" }],
  ["rect", { x: "9", y: "7", width: "6", height: "6", rx: "1", key: "5m2oou" }]
];
const MonitorStop = createLucideIcon("monitor-stop", __iconNode$a8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a7 = [
  ["path", { d: "m9 10 3-3 3 3", key: "11gsxs" }],
  ["path", { d: "M12 13V7", key: "h0r20n" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }]
];
const MonitorUp = createLucideIcon("monitor-up", __iconNode$a7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a6 = [
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
];
const Monitor = createLucideIcon("monitor", __iconNode$a6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a5 = [
  ["path", { d: "m14.5 12.5-5-5", key: "1jahn5" }],
  ["path", { d: "m9.5 12.5 5-5", key: "1k2t7b" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }]
];
const MonitorX = createLucideIcon("monitor-x", __iconNode$a5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a4 = [
  ["path", { d: "M18 5h4", key: "1lhgn2" }],
  ["path", { d: "M20 3v4", key: "1olli1" }],
  [
    "path",
    {
      d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
      key: "kfwtm"
    }
  ]
];
const MoonStar = createLucideIcon("moon-star", __iconNode$a4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a3 = [
  ["path", { d: "m18 14-1-3", key: "bdajw9" }],
  ["path", { d: "m3 9 6 2a2 2 0 0 1 2-2h2a2 2 0 0 1 1.99 1.81", key: "f5fotj" }],
  [
    "path",
    { d: "M8 17h3a1 1 0 0 0 1-1 6 6 0 0 1 6-6 1 1 0 0 0 1-1v-.75A5 5 0 0 0 17 5", key: "3i90e2" }
  ],
  ["circle", { cx: "19", cy: "17", r: "3", key: "1otbdv" }],
  ["circle", { cx: "5", cy: "17", r: "3", key: "1d8p0c" }]
];
const Motorbike = createLucideIcon("motorbike", __iconNode$a3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a2 = [
  [
    "path",
    {
      d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
      key: "kfwtm"
    }
  ]
];
const Moon = createLucideIcon("moon", __iconNode$a2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a1 = [
  ["path", { d: "m8 3 4 8 5-5 5 15H2L8 3z", key: "otkl63" }],
  [
    "path",
    { d: "M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19", key: "1pvmmp" }
  ]
];
const MountainSnow = createLucideIcon("mountain-snow", __iconNode$a1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a0 = [["path", { d: "m8 3 4 8 5-5 5 15H2L8 3z", key: "otkl63" }]];
const Mountain = createLucideIcon("mountain", __iconNode$a0);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9$ = [
  ["path", { d: "M12 6v.343", key: "1gyhex" }],
  ["path", { d: "M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218", key: "ukzz01" }],
  ["path", { d: "M19 13.343V9A7 7 0 0 0 8.56 2.902", key: "104jy9" }],
  ["path", { d: "M22 22 2 2", key: "1r8tn9" }]
];
const MouseOff = createLucideIcon("mouse-off", __iconNode$9$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9_ = [
  [
    "path",
    {
      d: "m15.55 8.45 5.138 2.087a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063L8.45 15.551",
      key: "1qoshx"
    }
  ],
  ["path", { d: "M22 2 2 22", key: "y4kqgn" }],
  ["path", { d: "m6.816 11.528-2.779-6.84a.495.495 0 0 1 .651-.651l6.84 2.779", key: "mymuvk" }]
];
const MousePointer2Off = createLucideIcon("mouse-pointer-2-off", __iconNode$9_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9Z = [
  [
    "path",
    {
      d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",
      key: "edeuup"
    }
  ]
];
const MousePointer2 = createLucideIcon("mouse-pointer-2", __iconNode$9Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9Y = [
  [
    "path",
    {
      d: "M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z",
      key: "11pp1i"
    }
  ],
  ["circle", { cx: "16", cy: "16", r: "6", key: "qoo3c4" }],
  ["path", { d: "m11.8 11.8 8.4 8.4", key: "oogvdj" }]
];
const MousePointerBan = createLucideIcon("mouse-pointer-ban", __iconNode$9Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9X = [
  ["path", { d: "M14 4.1 12 6", key: "ita8i4" }],
  ["path", { d: "m5.1 8-2.9-.8", key: "1go3kf" }],
  ["path", { d: "m6 12-1.9 2", key: "mnht97" }],
  ["path", { d: "M7.2 2.2 8 5.1", key: "1cfko1" }],
  [
    "path",
    {
      d: "M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",
      key: "s0h3yz"
    }
  ]
];
const MousePointerClick = createLucideIcon("mouse-pointer-click", __iconNode$9X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9W = [
  ["path", { d: "M12.586 12.586 19 19", key: "ea5xo7" }],
  [
    "path",
    {
      d: "M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",
      key: "277e5u"
    }
  ]
];
const MousePointer = createLucideIcon("mouse-pointer", __iconNode$9W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9V = [
  ["rect", { x: "5", y: "2", width: "14", height: "20", rx: "7", key: "11ol66" }],
  ["path", { d: "M12 6v4", key: "16clxf" }]
];
const Mouse = createLucideIcon("mouse", __iconNode$9V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9U = [
  ["path", { d: "M5 3v16h16", key: "1mqmf9" }],
  ["path", { d: "m5 19 6-6", key: "jh6hbb" }],
  ["path", { d: "m2 6 3-3 3 3", key: "tkyvxa" }],
  ["path", { d: "m18 16 3 3-3 3", key: "1d4glt" }]
];
const Move3d = createLucideIcon("move-3d", __iconNode$9U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9T = [
  ["path", { d: "M19 13v6h-6", key: "1hxl6d" }],
  ["path", { d: "M5 11V5h6", key: "12e2xe" }],
  ["path", { d: "m5 5 14 14", key: "11anup" }]
];
const MoveDiagonal2 = createLucideIcon("move-diagonal-2", __iconNode$9T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9S = [
  ["path", { d: "M11 19H5v-6", key: "8awifj" }],
  ["path", { d: "M13 5h6v6", key: "7voy1q" }],
  ["path", { d: "M19 5 5 19", key: "wwaj1z" }]
];
const MoveDiagonal = createLucideIcon("move-diagonal", __iconNode$9S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9R = [
  ["path", { d: "M11 19H5V13", key: "1akmht" }],
  ["path", { d: "M19 5L5 19", key: "72u4yj" }]
];
const MoveDownLeft = createLucideIcon("move-down-left", __iconNode$9R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9Q = [
  ["path", { d: "M19 13V19H13", key: "10vkzq" }],
  ["path", { d: "M5 5L19 19", key: "5zm2fv" }]
];
const MoveDownRight = createLucideIcon("move-down-right", __iconNode$9Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9P = [
  ["path", { d: "M8 18L12 22L16 18", key: "cskvfv" }],
  ["path", { d: "M12 2V22", key: "r89rzk" }]
];
const MoveDown = createLucideIcon("move-down", __iconNode$9P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9O = [
  ["path", { d: "M6 8L2 12L6 16", key: "kyvwex" }],
  ["path", { d: "M2 12H22", key: "1m8cig" }]
];
const MoveLeft = createLucideIcon("move-left", __iconNode$9O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9N = [
  ["path", { d: "m18 8 4 4-4 4", key: "1ak13k" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "m6 8-4 4 4 4", key: "15zrgr" }]
];
const MoveHorizontal = createLucideIcon("move-horizontal", __iconNode$9N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9M = [
  ["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
  ["path", { d: "M2 12H22", key: "1m8cig" }]
];
const MoveRight = createLucideIcon("move-right", __iconNode$9M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9L = [
  ["path", { d: "M5 11V5H11", key: "3q78g9" }],
  ["path", { d: "M5 5L19 19", key: "5zm2fv" }]
];
const MoveUpLeft = createLucideIcon("move-up-left", __iconNode$9L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9K = [
  ["path", { d: "M13 5H19V11", key: "1n1gyv" }],
  ["path", { d: "M19 5L5 19", key: "72u4yj" }]
];
const MoveUpRight = createLucideIcon("move-up-right", __iconNode$9K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9J = [
  ["path", { d: "M8 6L12 2L16 6", key: "1yvkyx" }],
  ["path", { d: "M12 2V22", key: "r89rzk" }]
];
const MoveUp = createLucideIcon("move-up", __iconNode$9J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9I = [
  ["path", { d: "M12 2v20", key: "t6zp3m" }],
  ["path", { d: "m8 18 4 4 4-4", key: "bh5tu3" }],
  ["path", { d: "m8 6 4-4 4 4", key: "ybng9g" }]
];
const MoveVertical = createLucideIcon("move-vertical", __iconNode$9I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9H = [
  ["path", { d: "M12 2v20", key: "t6zp3m" }],
  ["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
  ["path", { d: "m19 9 3 3-3 3", key: "1mg7y2" }],
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "m5 9-3 3 3 3", key: "j64kie" }],
  ["path", { d: "m9 5 3-3 3 3", key: "l8vdw6" }]
];
const Move = createLucideIcon("move", __iconNode$9H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9G = [
  ["circle", { cx: "8", cy: "18", r: "4", key: "1fc0mg" }],
  ["path", { d: "M12 18V2l7 4", key: "g04rme" }]
];
const Music2 = createLucideIcon("music-2", __iconNode$9G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9F = [
  ["circle", { cx: "12", cy: "18", r: "4", key: "m3r9ws" }],
  ["path", { d: "M16 18V2", key: "40x2m5" }]
];
const Music3 = createLucideIcon("music-3", __iconNode$9F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9E = [
  ["path", { d: "M9 18V5l12-2v13", key: "1jmyc2" }],
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
  ["circle", { cx: "18", cy: "16", r: "3", key: "1hluhg" }]
];
const Music = createLucideIcon("music", __iconNode$9E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9D = [
  ["path", { d: "M9 18V5l12-2v13", key: "1jmyc2" }],
  ["path", { d: "m9 9 12-2", key: "1e64n2" }],
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
  ["circle", { cx: "18", cy: "16", r: "3", key: "1hluhg" }]
];
const Music4 = createLucideIcon("music-4", __iconNode$9D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9C = [
  ["polygon", { points: "12 2 19 21 12 17 5 21 12 2", key: "x8c0qg" }]
];
const Navigation2 = createLucideIcon("navigation-2", __iconNode$9C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9B = [
  ["path", { d: "M9.31 9.31 5 21l7-4 7 4-1.17-3.17", key: "qoq2o2" }],
  ["path", { d: "M14.53 8.88 12 2l-1.17 3.17", key: "k3sjzy" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const Navigation2Off = createLucideIcon("navigation-2-off", __iconNode$9B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9A = [
  ["path", { d: "M8.43 8.43 3 11l8 2 2 8 2.57-5.43", key: "1vdtb7" }],
  ["path", { d: "M17.39 11.73 22 2l-9.73 4.61", key: "tya3r6" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const NavigationOff = createLucideIcon("navigation-off", __iconNode$9A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9z = [
  ["polygon", { points: "3 11 22 2 13 21 11 13 3 11", key: "1ltx0t" }]
];
const Navigation = createLucideIcon("navigation", __iconNode$9z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9y = [
  ["rect", { x: "16", y: "16", width: "6", height: "6", rx: "1", key: "4q2zg0" }],
  ["rect", { x: "2", y: "16", width: "6", height: "6", rx: "1", key: "8cvhb9" }],
  ["rect", { x: "9", y: "2", width: "6", height: "6", rx: "1", key: "1egb70" }],
  ["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3", key: "1jsf9p" }],
  ["path", { d: "M12 12V8", key: "2874zd" }]
];
const Network = createLucideIcon("network", __iconNode$9y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9x = [
  ["path", { d: "M15 18h-5", key: "95g1m2" }],
  ["path", { d: "M18 14h-8", key: "sponae" }],
  [
    "path",
    {
      d: "M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2",
      key: "39pd36"
    }
  ],
  ["rect", { width: "8", height: "4", x: "10", y: "6", rx: "1", key: "aywv1n" }]
];
const Newspaper = createLucideIcon("newspaper", __iconNode$9x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9w = [
  ["path", { d: "M6 8.32a7.43 7.43 0 0 1 0 7.36", key: "9iaqei" }],
  ["path", { d: "M9.46 6.21a11.76 11.76 0 0 1 0 11.58", key: "1yha7l" }],
  ["path", { d: "M12.91 4.1a15.91 15.91 0 0 1 .01 15.8", key: "4iu2gk" }],
  ["path", { d: "M16.37 2a20.16 20.16 0 0 1 0 20", key: "sap9u2" }]
];
const Nfc = createLucideIcon("nfc", __iconNode$9w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9v = [
  ["path", { d: "M12 2v10", key: "mnfbl" }],
  ["path", { d: "m8.5 4 7 4", key: "m1xjk3" }],
  ["path", { d: "m8.5 8 7-4", key: "t0m5j6" }],
  ["circle", { cx: "12", cy: "17", r: "5", key: "qbz8iq" }]
];
const NonBinary = createLucideIcon("non-binary", __iconNode$9v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9u = [
  ["path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4", key: "re6nr2" }],
  ["path", { d: "M2 6h4", key: "aawbzj" }],
  ["path", { d: "M2 10h4", key: "l0bgd4" }],
  ["path", { d: "M2 14h4", key: "1gsvsf" }],
  ["path", { d: "M2 18h4", key: "1bu2t1" }],
  [
    "path",
    {
      d: "M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "pqwjuv"
    }
  ]
];
const NotebookPen = createLucideIcon("notebook-pen", __iconNode$9u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9t = [
  ["path", { d: "M2 6h4", key: "aawbzj" }],
  ["path", { d: "M2 10h4", key: "l0bgd4" }],
  ["path", { d: "M2 14h4", key: "1gsvsf" }],
  ["path", { d: "M2 18h4", key: "1bu2t1" }],
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
  ["path", { d: "M15 2v20", key: "dcj49h" }],
  ["path", { d: "M15 7h5", key: "1xj5lc" }],
  ["path", { d: "M15 12h5", key: "w5shd9" }],
  ["path", { d: "M15 17h5", key: "1qaofu" }]
];
const NotebookTabs = createLucideIcon("notebook-tabs", __iconNode$9t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9s = [
  ["path", { d: "M2 6h4", key: "aawbzj" }],
  ["path", { d: "M2 10h4", key: "l0bgd4" }],
  ["path", { d: "M2 14h4", key: "1gsvsf" }],
  ["path", { d: "M2 18h4", key: "1bu2t1" }],
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
  ["path", { d: "M9.5 8h5", key: "11mslq" }],
  ["path", { d: "M9.5 12H16", key: "ktog6x" }],
  ["path", { d: "M9.5 16H14", key: "p1seyn" }]
];
const NotebookText = createLucideIcon("notebook-text", __iconNode$9s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9r = [
  ["path", { d: "M2 6h4", key: "aawbzj" }],
  ["path", { d: "M2 10h4", key: "l0bgd4" }],
  ["path", { d: "M2 14h4", key: "1gsvsf" }],
  ["path", { d: "M2 18h4", key: "1bu2t1" }],
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
  ["path", { d: "M16 2v20", key: "rotuqe" }]
];
const Notebook = createLucideIcon("notebook", __iconNode$9r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9q = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M12 2v4", key: "3427ic" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["path", { d: "M16 4h2a2 2 0 0 1 2 2v2", key: "j91f56" }],
  ["path", { d: "M20 12v2", key: "w8o0tu" }],
  ["path", { d: "M20 18v2a2 2 0 0 1-2 2h-1", key: "1c9ggx" }],
  ["path", { d: "M13 22h-2", key: "191ugt" }],
  ["path", { d: "M7 22H6a2 2 0 0 1-2-2v-2", key: "1rt9px" }],
  ["path", { d: "M4 14v-2", key: "1v0sqh" }],
  ["path", { d: "M4 8V6a2 2 0 0 1 2-2h2", key: "1mwabg" }],
  ["path", { d: "M8 10h6", key: "3oa6kw" }],
  ["path", { d: "M8 14h8", key: "1fgep2" }],
  ["path", { d: "M8 18h5", key: "17enja" }]
];
const NotepadTextDashed = createLucideIcon("notepad-text-dashed", __iconNode$9q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9p = [
  ["path", { d: "M8 2v4", key: "1cmpym" }],
  ["path", { d: "M12 2v4", key: "3427ic" }],
  ["path", { d: "M16 2v4", key: "4m81vk" }],
  ["rect", { width: "16", height: "18", x: "4", y: "4", rx: "2", key: "1u9h20" }],
  ["path", { d: "M8 10h6", key: "3oa6kw" }],
  ["path", { d: "M8 14h8", key: "1fgep2" }],
  ["path", { d: "M8 18h5", key: "17enja" }]
];
const NotepadText = createLucideIcon("notepad-text", __iconNode$9p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9o = [
  ["path", { d: "M12 4V2", key: "1k5q1u" }],
  [
    "path",
    {
      d: "M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939",
      key: "1xcvy9"
    }
  ],
  ["path", { d: "M19 10v3.343", key: "163tfc" }],
  [
    "path",
    {
      d: "M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192",
      key: "17914v"
    }
  ],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const NutOff = createLucideIcon("nut-off", __iconNode$9o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9n = [
  ["path", { d: "M12 4V2", key: "1k5q1u" }],
  [
    "path",
    {
      d: "M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4",
      key: "1tgyif"
    }
  ],
  [
    "path",
    {
      d: "M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z",
      key: "tnsqj"
    }
  ]
];
const Nut = createLucideIcon("nut", __iconNode$9n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9m = [
  ["path", { d: "M12 16h.01", key: "1drbdi" }],
  ["path", { d: "M12 8v4", key: "1got3b" }],
  [
    "path",
    {
      d: "M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",
      key: "1fd625"
    }
  ]
];
const OctagonAlert = createLucideIcon("octagon-alert", __iconNode$9m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9l = [
  [
    "path",
    {
      d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
      key: "2d38gg"
    }
  ],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const OctagonMinus = createLucideIcon("octagon-minus", __iconNode$9l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9k = [
  ["path", { d: "M10 15V9", key: "1lckn7" }],
  ["path", { d: "M14 15V9", key: "1muqhk" }],
  [
    "path",
    {
      d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
      key: "2d38gg"
    }
  ]
];
const OctagonPause = createLucideIcon("octagon-pause", __iconNode$9k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9j = [
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  [
    "path",
    {
      d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
      key: "2d38gg"
    }
  ],
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
];
const OctagonX = createLucideIcon("octagon-x", __iconNode$9j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9i = [
  [
    "path",
    {
      d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
      key: "2d38gg"
    }
  ]
];
const Octagon = createLucideIcon("octagon", __iconNode$9i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9h = [
  ["path", { d: "M3 3h6l6 18h6", key: "ph9rgk" }],
  ["path", { d: "M14 3h7", key: "16f0ms" }]
];
const Option = createLucideIcon("option", __iconNode$9h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9g = [
  [
    "path",
    {
      d: "M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21",
      key: "1x94xo"
    }
  ]
];
const Omega = createLucideIcon("omega", __iconNode$9g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9f = [
  ["path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85", key: "1enhxb" }],
  ["path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152", key: "1crzgf" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["circle", { cx: "19", cy: "5", r: "2", key: "mhkx31" }],
  ["circle", { cx: "5", cy: "19", r: "2", key: "v8kfzx" }]
];
const Orbit = createLucideIcon("orbit", __iconNode$9f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9e = [
  ["path", { d: "M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025", key: "1bx4vc" }],
  [
    "path",
    {
      d: "m12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009",
      key: "1h3km6"
    }
  ],
  [
    "path",
    {
      d: "m12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027",
      key: "1hj4wg"
    }
  ]
];
const Origami = createLucideIcon("origami", __iconNode$9e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9d = [
  ["path", { d: "M12 3v6", key: "1holv5" }],
  [
    "path",
    {
      d: "M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",
      key: "187q7i"
    }
  ],
  ["path", { d: "M3.054 9.013h17.893", key: "grwhos" }]
];
const Package2 = createLucideIcon("package-2", __iconNode$9d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9c = [
  ["path", { d: "m16 16 2 2 4-4", key: "gfu2re" }],
  [
    "path",
    {
      d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",
      key: "e7tb2h"
    }
  ],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "12", key: "a4e8g8" }]
];
const PackageCheck = createLucideIcon("package-check", __iconNode$9c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9b = [
  ["path", { d: "M16 16h6", key: "100bgy" }],
  [
    "path",
    {
      d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",
      key: "e7tb2h"
    }
  ],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "12", key: "a4e8g8" }]
];
const PackageMinus = createLucideIcon("package-minus", __iconNode$9b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9a = [
  ["path", { d: "M12 22v-9", key: "x3hkom" }],
  [
    "path",
    {
      d: "M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z",
      key: "2ntwy6"
    }
  ],
  [
    "path",
    {
      d: "M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13",
      key: "1pmm1c"
    }
  ],
  [
    "path",
    {
      d: "M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z",
      key: "12ttoo"
    }
  ]
];
const PackageOpen = createLucideIcon("package-open", __iconNode$9a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$99 = [
  ["path", { d: "M16 16h6", key: "100bgy" }],
  ["path", { d: "M19 13v6", key: "85cyf1" }],
  [
    "path",
    {
      d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",
      key: "e7tb2h"
    }
  ],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "12", key: "a4e8g8" }]
];
const PackagePlus = createLucideIcon("package-plus", __iconNode$99);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$98 = [
  [
    "path",
    {
      d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",
      key: "e7tb2h"
    }
  ],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "12", key: "a4e8g8" }],
  ["circle", { cx: "18.5", cy: "15.5", r: "2.5", key: "b5zd12" }],
  ["path", { d: "M20.27 17.27 22 19", key: "1l4muz" }]
];
const PackageSearch = createLucideIcon("package-search", __iconNode$98);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$97 = [
  [
    "path",
    {
      d: "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",
      key: "1a0edw"
    }
  ],
  ["path", { d: "M12 22V12", key: "d0xqtd" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }]
];
const Package = createLucideIcon("package", __iconNode$97);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$96 = [
  [
    "path",
    {
      d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",
      key: "e7tb2h"
    }
  ],
  ["path", { d: "m7.5 4.27 9 5.15", key: "1c824w" }],
  ["polyline", { points: "3.29 7 12 12 20.71 7", key: "ousv84" }],
  ["line", { x1: "12", x2: "12", y1: "22", y2: "12", key: "a4e8g8" }],
  ["path", { d: "m17 13 5 5m-5 0 5-5", key: "im3w4b" }]
];
const PackageX = createLucideIcon("package-x", __iconNode$96);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$95 = [
  [
    "path",
    { d: "m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z", key: "irua1i" }
  ],
  ["path", { d: "m5 2 5 5", key: "1lls2c" }],
  ["path", { d: "M2 13h15", key: "1hkzvu" }],
  ["path", { d: "M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z", key: "xk76lq" }]
];
const PaintBucket = createLucideIcon("paint-bucket", __iconNode$95);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$94 = [
  ["rect", { width: "16", height: "6", x: "2", y: "2", rx: "2", key: "jcyz7m" }],
  ["path", { d: "M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2", key: "1b9h7c" }],
  ["rect", { width: "4", height: "6", x: "8", y: "16", rx: "1", key: "d6e7yl" }]
];
const PaintRoller = createLucideIcon("paint-roller", __iconNode$94);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$93 = [
  ["path", { d: "M10 2v2", key: "7u0qdc" }],
  ["path", { d: "M14 2v4", key: "qmzblu" }],
  ["path", { d: "M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z", key: "ycvu00" }],
  [
    "path",
    {
      d: "M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1",
      key: "iw4wnp"
    }
  ]
];
const PaintbrushVertical = createLucideIcon("paintbrush-vertical", __iconNode$93);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$92 = [
  ["path", { d: "m14.622 17.897-10.68-2.913", key: "vj2p1u" }],
  [
    "path",
    {
      d: "M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z",
      key: "18tc5c"
    }
  ],
  [
    "path",
    {
      d: "M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15",
      key: "ytzfxy"
    }
  ]
];
const Paintbrush = createLucideIcon("paintbrush", __iconNode$92);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$91 = [
  [
    "path",
    {
      d: "M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",
      key: "e79jfc"
    }
  ],
  ["circle", { cx: "13.5", cy: "6.5", r: ".5", fill: "currentColor", key: "1okk4w" }],
  ["circle", { cx: "17.5", cy: "10.5", r: ".5", fill: "currentColor", key: "f64h9f" }],
  ["circle", { cx: "6.5", cy: "12.5", r: ".5", fill: "currentColor", key: "qy21gx" }],
  ["circle", { cx: "8.5", cy: "7.5", r: ".5", fill: "currentColor", key: "fotxhn" }]
];
const Palette = createLucideIcon("palette", __iconNode$91);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$90 = [
  ["path", { d: "M11.25 17.25h1.5L12 18z", key: "1wmwwj" }],
  ["path", { d: "m15 12 2 2", key: "k60wz4" }],
  ["path", { d: "M18 6.5a.5.5 0 0 0-.5-.5", key: "1ch4h4" }],
  [
    "path",
    {
      d: "M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83",
      key: "1c660l"
    }
  ],
  ["path", { d: "M6 6.5a.495.495 0 0 1 .5-.5", key: "eviuep" }],
  ["path", { d: "m9 12-2 2", key: "326nkw" }]
];
const Panda = createLucideIcon("panda", __iconNode$90);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8$ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "m15 8-3 3-3-3", key: "1oxy1z" }]
];
const PanelBottomClose = createLucideIcon("panel-bottom-close", __iconNode$8$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8_ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M14 15h1", key: "171nev" }],
  ["path", { d: "M19 15h2", key: "1vnucp" }],
  ["path", { d: "M3 15h2", key: "8bym0q" }],
  ["path", { d: "M9 15h1", key: "1tg3ks" }]
];
const PanelBottomDashed = createLucideIcon("panel-bottom-dashed", __iconNode$8_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8Z = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "m9 10 3-3 3 3", key: "11gsxs" }]
];
const PanelBottomOpen = createLucideIcon("panel-bottom-open", __iconNode$8Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8Y = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 15h18", key: "5xshup" }]
];
const PanelBottom = createLucideIcon("panel-bottom", __iconNode$8Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8X = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 14v1", key: "askpd8" }],
  ["path", { d: "M9 19v2", key: "16tejx" }],
  ["path", { d: "M9 3v2", key: "1noubl" }],
  ["path", { d: "M9 9v1", key: "19ebxg" }]
];
const PanelLeftDashed = createLucideIcon("panel-left-dashed", __iconNode$8X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8W = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["path", { d: "m14 9 3 3-3 3", key: "8010ee" }]
];
const PanelLeftOpen = createLucideIcon("panel-left-open", __iconNode$8W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8V = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
];
const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$8V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8U = [
  ["path", { d: "M15 10V9", key: "4dkmfx" }],
  ["path", { d: "M15 15v-1", key: "6a4afx" }],
  ["path", { d: "M15 21v-2", key: "1qshmc" }],
  ["path", { d: "M15 5V3", key: "1fk0mb" }],
  ["path", { d: "M9 10V9", key: "1lazqi" }],
  ["path", { d: "M9 15v-1", key: "9lx740" }],
  ["path", { d: "M9 21v-2", key: "1fwk0n" }],
  ["path", { d: "M9 5V3", key: "2q8zi6" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const PanelLeftRightDashed = createLucideIcon("panel-left-right-dashed", __iconNode$8U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8T = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }]
];
const PanelLeft = createLucideIcon("panel-left", __iconNode$8T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8S = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M15 14v1", key: "ilsfch" }],
  ["path", { d: "M15 19v2", key: "1fst2f" }],
  ["path", { d: "M15 3v2", key: "z204g4" }],
  ["path", { d: "M15 9v1", key: "z2a8b1" }]
];
const PanelRightDashed = createLucideIcon("panel-right-dashed", __iconNode$8S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8R = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }],
  ["path", { d: "m8 9 3 3-3 3", key: "12hl5m" }]
];
const PanelRightClose = createLucideIcon("panel-right-close", __iconNode$8R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8Q = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }],
  ["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }]
];
const PanelRightOpen = createLucideIcon("panel-right-open", __iconNode$8Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8P = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }]
];
const PanelRight = createLucideIcon("panel-right", __iconNode$8P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8O = [
  ["path", { d: "M14 15h1", key: "171nev" }],
  ["path", { d: "M14 9h1", key: "l0svgy" }],
  ["path", { d: "M19 15h2", key: "1vnucp" }],
  ["path", { d: "M19 9h2", key: "te2zfg" }],
  ["path", { d: "M3 15h2", key: "8bym0q" }],
  ["path", { d: "M3 9h2", key: "1h4ldw" }],
  ["path", { d: "M9 15h1", key: "1tg3ks" }],
  ["path", { d: "M9 9h1", key: "15jzuz" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const PanelTopBottomDashed = createLucideIcon("panel-top-bottom-dashed", __iconNode$8O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8N = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "m9 16 3-3 3 3", key: "1idcnm" }]
];
const PanelTopClose = createLucideIcon("panel-top-close", __iconNode$8N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8M = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M14 9h1", key: "l0svgy" }],
  ["path", { d: "M19 9h2", key: "te2zfg" }],
  ["path", { d: "M3 9h2", key: "1h4ldw" }],
  ["path", { d: "M9 9h1", key: "15jzuz" }]
];
const PanelTopDashed = createLucideIcon("panel-top-dashed", __iconNode$8M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8L = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "m15 14-3 3-3-3", key: "g215vf" }]
];
const PanelTopOpen = createLucideIcon("panel-top-open", __iconNode$8L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8K = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }]
];
const PanelTop = createLucideIcon("panel-top", __iconNode$8K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8J = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
  ["path", { d: "M9 15h12", key: "5ijen5" }]
];
const PanelsLeftBottom = createLucideIcon("panels-left-bottom", __iconNode$8J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8I = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 15h12", key: "1wkqb3" }],
  ["path", { d: "M15 3v18", key: "14nvp0" }]
];
const PanelsRightBottom = createLucideIcon("panels-right-bottom", __iconNode$8I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8H = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "M9 21V9", key: "1oto5p" }]
];
const PanelsTopLeft = createLucideIcon("panels-top-left", __iconNode$8H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8G = [
  [
    "path",
    {
      d: "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",
      key: "1miecu"
    }
  ]
];
const Paperclip = createLucideIcon("paperclip", __iconNode$8G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8F = [
  ["path", { d: "M8 21s-4-3-4-9 4-9 4-9", key: "uto9ud" }],
  ["path", { d: "M16 3s4 3 4 9-4 9-4 9", key: "4w2vsq" }]
];
const Parentheses = createLucideIcon("parentheses", __iconNode$8F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8E = [
  ["path", { d: "M11 15h2", key: "199qp6" }],
  ["path", { d: "M12 12v3", key: "158kv8" }],
  ["path", { d: "M12 19v3", key: "npa21l" }],
  [
    "path",
    {
      d: "M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z",
      key: "1jofit"
    }
  ],
  ["path", { d: "M9 9a3 3 0 1 1 6 0", key: "jdoeu8" }]
];
const ParkingMeter = createLucideIcon("parking-meter", __iconNode$8E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8D = [
  ["path", { d: "M5.8 11.3 2 22l10.7-3.79", key: "gwxi1d" }],
  ["path", { d: "M4 3h.01", key: "1vcuye" }],
  ["path", { d: "M22 8h.01", key: "1mrtc2" }],
  ["path", { d: "M15 2h.01", key: "1cjtqr" }],
  ["path", { d: "M22 20h.01", key: "1mrys2" }],
  [
    "path",
    {
      d: "m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10",
      key: "hbicv8"
    }
  ],
  [
    "path",
    { d: "m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17", key: "1i94pl" }
  ],
  ["path", { d: "m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7", key: "1cofks" }],
  [
    "path",
    {
      d: "M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z",
      key: "4kbmks"
    }
  ]
];
const PartyPopper = createLucideIcon("party-popper", __iconNode$8D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8C = [
  ["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
  ["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
];
const Pause = createLucideIcon("pause", __iconNode$8C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8B = [
  ["circle", { cx: "11", cy: "4", r: "2", key: "vol9p0" }],
  ["circle", { cx: "18", cy: "8", r: "2", key: "17gozi" }],
  ["circle", { cx: "20", cy: "16", r: "2", key: "1v9bxh" }],
  [
    "path",
    {
      d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z",
      key: "1ydw1z"
    }
  ]
];
const PawPrint = createLucideIcon("paw-print", __iconNode$8B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8A = [
  ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", key: "1uq1d7" }],
  ["path", { d: "M15 14h.01", key: "1kp3bh" }],
  ["path", { d: "M9 6h6", key: "dgm16u" }],
  ["path", { d: "M9 10h6", key: "9gxzsh" }]
];
const PcCase = createLucideIcon("pc-case", __iconNode$8A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8z = [
  ["path", { d: "M13 21h8", key: "1jsn5i" }],
  [
    "path",
    {
      d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
      key: "1a8usu"
    }
  ]
];
const PenLine = createLucideIcon("pen-line", __iconNode$8z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8y = [
  [
    "path",
    {
      d: "m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",
      key: "bjo8r8"
    }
  ],
  ["path", { d: "m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353", key: "16h5ne" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const PenOff = createLucideIcon("pen-off", __iconNode$8y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8x = [
  [
    "path",
    {
      d: "M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",
      key: "nt11vn"
    }
  ],
  [
    "path",
    {
      d: "m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",
      key: "15qc1e"
    }
  ],
  ["path", { d: "m2.3 2.3 7.286 7.286", key: "1wuzzi" }],
  ["circle", { cx: "11", cy: "11", r: "2", key: "xmgehs" }]
];
const PenTool = createLucideIcon("pen-tool", __iconNode$8x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8w = [
  [
    "path",
    {
      d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
      key: "1a8usu"
    }
  ]
];
const Pen = createLucideIcon("pen", __iconNode$8w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8v = [
  ["path", { d: "M13 21h8", key: "1jsn5i" }],
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }],
  [
    "path",
    {
      d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
      key: "1a8usu"
    }
  ]
];
const PencilLine = createLucideIcon("pencil-line", __iconNode$8v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8u = [
  [
    "path",
    {
      d: "m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982",
      key: "bjo8r8"
    }
  ],
  ["path", { d: "m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353", key: "16h5ne" }],
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const PencilOff = createLucideIcon("pencil-off", __iconNode$8u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8t = [
  [
    "path",
    { d: "M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13", key: "orapub" }
  ],
  ["path", { d: "m8 6 2-2", key: "115y1s" }],
  ["path", { d: "m18 16 2-2", key: "ee94s4" }],
  [
    "path",
    {
      d: "m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",
      key: "cfq27r"
    }
  ],
  [
    "path",
    {
      d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
      key: "1a8usu"
    }
  ],
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
];
const PencilRuler = createLucideIcon("pencil-ruler", __iconNode$8t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8s = [
  [
    "path",
    {
      d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
      key: "1a8usu"
    }
  ],
  ["path", { d: "m15 5 4 4", key: "1mk7zo" }]
];
const Pencil = createLucideIcon("pencil", __iconNode$8s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8r = [
  [
    "path",
    {
      d: "M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z",
      key: "2hea0t"
    }
  ]
];
const Pentagon = createLucideIcon("pentagon", __iconNode$8r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8q = [
  ["line", { x1: "19", x2: "5", y1: "5", y2: "19", key: "1x9vlm" }],
  ["circle", { cx: "6.5", cy: "6.5", r: "2.5", key: "4mh3h7" }],
  ["circle", { cx: "17.5", cy: "17.5", r: "2.5", key: "1mdrzq" }]
];
const Percent = createLucideIcon("percent", __iconNode$8q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8p = [
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
  ["path", { d: "m9 20 3-6 3 6", key: "se2kox" }],
  ["path", { d: "m6 8 6 2 6-2", key: "4o3us4" }],
  ["path", { d: "M12 10v4", key: "1kjpxc" }]
];
const PersonStanding = createLucideIcon("person-standing", __iconNode$8p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8o = [
  ["path", { d: "M20 11H4", key: "6ut86h" }],
  ["path", { d: "M20 7H4", key: "zbl0bi" }],
  ["path", { d: "M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7", key: "1ana5r" }]
];
const PhilippinePeso = createLucideIcon("philippine-peso", __iconNode$8o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8n = [
  ["path", { d: "M13 2a9 9 0 0 1 9 9", key: "1itnx2" }],
  ["path", { d: "M13 6a5 5 0 0 1 5 5", key: "11nki7" }],
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const PhoneCall = createLucideIcon("phone-call", __iconNode$8n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8m = [
  ["path", { d: "M14 6h8", key: "yd68k4" }],
  ["path", { d: "m18 2 4 4-4 4", key: "pucp1d" }],
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const PhoneForwarded = createLucideIcon("phone-forwarded", __iconNode$8m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8l = [
  ["path", { d: "M16 2v6h6", key: "1mfrl5" }],
  ["path", { d: "m22 2-6 6", key: "6f0sa0" }],
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const PhoneIncoming = createLucideIcon("phone-incoming", __iconNode$8l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8k = [
  ["path", { d: "m16 2 6 6", key: "1gw87d" }],
  ["path", { d: "m22 2-6 6", key: "6f0sa0" }],
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const PhoneMissed = createLucideIcon("phone-missed", __iconNode$8k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8j = [
  [
    "path",
    {
      d: "M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272",
      key: "1wngk7"
    }
  ],
  ["path", { d: "M22 2 2 22", key: "y4kqgn" }],
  [
    "path",
    {
      d: "M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473",
      key: "10hv5p"
    }
  ]
];
const PhoneOff = createLucideIcon("phone-off", __iconNode$8j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8i = [
  ["path", { d: "m16 8 6-6", key: "oawc05" }],
  ["path", { d: "M22 8V2h-6", key: "oqy2zc" }],
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const PhoneOutgoing = createLucideIcon("phone-outgoing", __iconNode$8i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8h = [
  [
    "path",
    {
      d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
      key: "9njp5v"
    }
  ]
];
const Phone = createLucideIcon("phone", __iconNode$8h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8g = [
  ["line", { x1: "9", x2: "9", y1: "4", y2: "20", key: "ovs5a5" }],
  ["path", { d: "M4 7c0-1.7 1.3-3 3-3h13", key: "10pag4" }],
  ["path", { d: "M18 20c-1.7 0-3-1.3-3-3V4", key: "1gaosr" }]
];
const Pi = createLucideIcon("pi", __iconNode$8g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8f = [
  [
    "path",
    {
      d: "M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8",
      key: "lag0yf"
    }
  ],
  ["path", { d: "M2 14h20", key: "myj16y" }],
  ["path", { d: "M6 14v4", key: "9ng0ue" }],
  ["path", { d: "M10 14v4", key: "1v8uk5" }],
  ["path", { d: "M14 14v4", key: "1tqops" }],
  ["path", { d: "M18 14v4", key: "18uqwm" }]
];
const Piano = createLucideIcon("piano", __iconNode$8f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8e = [
  ["path", { d: "m14 13-8.381 8.38a1 1 0 0 1-3.001-3L11 9.999", key: "1lw9ds" }],
  [
    "path",
    {
      d: "M15.973 4.027A13 13 0 0 0 5.902 2.373c-1.398.342-1.092 2.158.277 2.601a19.9 19.9 0 0 1 5.822 3.024",
      key: "ffj4ej"
    }
  ],
  [
    "path",
    {
      d: "M16.001 11.999a19.9 19.9 0 0 1 3.024 5.824c.444 1.369 2.26 1.676 2.603.278A13 13 0 0 0 20 8.069",
      key: "8tj4zw"
    }
  ],
  [
    "path",
    {
      d: "M18.352 3.352a1.205 1.205 0 0 0-1.704 0l-5.296 5.296a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l5.296-5.296a1.205 1.205 0 0 0 0-1.704z",
      key: "hh6h97"
    }
  ]
];
const Pickaxe = createLucideIcon("pickaxe", __iconNode$8e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8d = [
  ["path", { d: "M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4", key: "daa4of" }],
  ["rect", { width: "10", height: "7", x: "12", y: "13", rx: "2", key: "1nb8gs" }]
];
const PictureInPicture2 = createLucideIcon("picture-in-picture-2", __iconNode$8d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8c = [
  ["path", { d: "M2 10h6V4", key: "zwrco" }],
  ["path", { d: "m2 4 6 6", key: "ug085t" }],
  ["path", { d: "M21 10V7a2 2 0 0 0-2-2h-7", key: "git5jr" }],
  ["path", { d: "M3 14v2a2 2 0 0 0 2 2h3", key: "1f7fh3" }],
  ["rect", { x: "12", y: "14", width: "10", height: "7", rx: "1", key: "1wjs3o" }]
];
const PictureInPicture = createLucideIcon("picture-in-picture", __iconNode$8c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8b = [
  [
    "path",
    {
      d: "M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z",
      key: "1piglc"
    }
  ],
  ["path", { d: "M16 10h.01", key: "1m94wz" }],
  ["path", { d: "M2 8v1a2 2 0 0 0 2 2h1", key: "1env43" }]
];
const PiggyBank = createLucideIcon("piggy-bank", __iconNode$8b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8a = [
  ["path", { d: "M14 3v11", key: "mlfb7b" }],
  ["path", { d: "M14 9h-3a3 3 0 0 1 0-6h9", key: "1ulc19" }],
  ["path", { d: "M18 3v11", key: "1phi0r" }],
  ["path", { d: "M22 18H2l4-4", key: "yt65j9" }],
  ["path", { d: "m6 22-4-4", key: "6jgyf5" }]
];
const PilcrowLeft = createLucideIcon("pilcrow-left", __iconNode$8a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$89 = [
  ["path", { d: "M10 3v11", key: "o3l5kj" }],
  ["path", { d: "M10 9H7a1 1 0 0 1 0-6h8", key: "1wb1nc" }],
  ["path", { d: "M14 3v11", key: "mlfb7b" }],
  ["path", { d: "m18 14 4 4H2", key: "4r8io1" }],
  ["path", { d: "m22 18-4 4", key: "1hjjrd" }]
];
const PilcrowRight = createLucideIcon("pilcrow-right", __iconNode$89);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$88 = [
  ["path", { d: "M13 4v16", key: "8vvj80" }],
  ["path", { d: "M17 4v16", key: "7dpous" }],
  ["path", { d: "M19 4H9.5a4.5 4.5 0 0 0 0 9H13", key: "sh4n9v" }]
];
const Pilcrow = createLucideIcon("pilcrow", __iconNode$88);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$87 = [
  ["path", { d: "M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4", key: "17ldeb" }],
  ["path", { d: "M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7", key: "nc37y6" }],
  ["rect", { width: "16", height: "5", x: "4", y: "2", rx: "1", key: "3jeezo" }]
];
const PillBottle = createLucideIcon("pill-bottle", __iconNode$87);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$86 = [
  [
    "path",
    { d: "m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z", key: "wa1lgi" }
  ],
  ["path", { d: "m8.5 8.5 7 7", key: "rvfmvr" }]
];
const Pill = createLucideIcon("pill", __iconNode$86);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$85 = [
  ["path", { d: "M12 17v5", key: "bb1du9" }],
  ["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89", key: "znwnzq" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    {
      d: "M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",
      key: "c9qhm2"
    }
  ]
];
const PinOff = createLucideIcon("pin-off", __iconNode$85);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$84 = [
  [
    "path",
    {
      d: "m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12",
      key: "1y3wsu"
    }
  ],
  [
    "path",
    {
      d: "m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z",
      key: "110lr1"
    }
  ],
  ["path", { d: "m2 22 .414-.414", key: "jhxm08" }]
];
const Pipette = createLucideIcon("pipette", __iconNode$84);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$83 = [
  ["path", { d: "M12 17v5", key: "bb1du9" }],
  [
    "path",
    {
      d: "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",
      key: "1nkz8b"
    }
  ]
];
const Pin = createLucideIcon("pin", __iconNode$83);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$82 = [
  ["path", { d: "m12 14-1 1", key: "11onhr" }],
  ["path", { d: "m13.75 18.25-1.25 1.42", key: "1yisr3" }],
  ["path", { d: "M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12", key: "1qtqk6" }],
  ["path", { d: "M18.8 9.3a1 1 0 0 0 2.1 7.7", key: "fbbbr2" }],
  [
    "path",
    {
      d: "M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z",
      key: "1hyfdd"
    }
  ]
];
const Pizza = createLucideIcon("pizza", __iconNode$82);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$81 = [
  ["path", { d: "M2 22h20", key: "272qi7" }],
  [
    "path",
    {
      d: "M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z",
      key: "1ma21e"
    }
  ]
];
const PlaneLanding = createLucideIcon("plane-landing", __iconNode$81);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$80 = [
  ["path", { d: "M2 22h20", key: "272qi7" }],
  [
    "path",
    {
      d: "M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z",
      key: "fkigj9"
    }
  ]
];
const PlaneTakeoff = createLucideIcon("plane-takeoff", __iconNode$80);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7$ = [
  [
    "path",
    {
      d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",
      key: "1v9wt8"
    }
  ]
];
const Plane = createLucideIcon("plane", __iconNode$7$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7_ = [
  [
    "path",
    {
      d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
      key: "10ikf1"
    }
  ]
];
const Play = createLucideIcon("play", __iconNode$7_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7Z = [
  [
    "path",
    { d: "M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z", key: "goz73y" }
  ],
  ["path", { d: "m2 22 3-3", key: "19mgm9" }],
  ["path", { d: "M7.5 13.5 10 11", key: "7xgeeb" }],
  ["path", { d: "M10.5 16.5 13 14", key: "10btkg" }],
  ["path", { d: "m18 3-4 4h6l-4 4", key: "16psg9" }]
];
const PlugZap = createLucideIcon("plug-zap", __iconNode$7Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7Y = [
  ["path", { d: "M9 2v6", key: "17ngun" }],
  ["path", { d: "M15 2v6", key: "s7yy2p" }],
  ["path", { d: "M12 17v5", key: "bb1du9" }],
  ["path", { d: "M5 8h14", key: "pcz4l3" }],
  ["path", { d: "M6 11V8h12v3a6 6 0 1 1-12 0Z", key: "wtfw2c" }]
];
const Plug2 = createLucideIcon("plug-2", __iconNode$7Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7X = [
  ["path", { d: "M12 22v-5", key: "1ega77" }],
  ["path", { d: "M9 8V2", key: "14iosj" }],
  ["path", { d: "M15 8V2", key: "18g5xt" }],
  ["path", { d: "M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z", key: "osxo6l" }]
];
const Plug = createLucideIcon("plug", __iconNode$7X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7W = [
  ["path", { d: "M5 12h14", key: "1ays0h" }],
  ["path", { d: "M12 5v14", key: "s699le" }]
];
const Plus = createLucideIcon("plus", __iconNode$7W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7V = [
  ["path", { d: "M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2", key: "19w3oe" }],
  ["path", { d: "M18 6h.01", key: "1v4wsw" }],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z", key: "6fykxj" }],
  ["path", { d: "M18 11.66V22a4 4 0 0 0 4-4V6", key: "1utzek" }]
];
const PocketKnife = createLucideIcon("pocket-knife", __iconNode$7V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7U = [
  ["path", { d: "M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z", key: "1uodqw" }],
  ["path", { d: "m8 10 4 4 4-4", key: "1mxd5q" }]
];
const Pocket = createLucideIcon("pocket", __iconNode$7U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7T = [
  [
    "path",
    { d: "M13 17a1 1 0 1 0-2 0l.5 4.5a0.5 0.5 0 0 0 1 0z", fill: "currentColor", key: "x1mxqr" }
  ],
  ["path", { d: "M16.85 18.58a9 9 0 1 0-9.7 0", key: "d71mpg" }],
  ["path", { d: "M8 14a5 5 0 1 1 8 0", key: "fc81rn" }],
  ["circle", { cx: "12", cy: "11", r: "1", fill: "currentColor", key: "vqiwd" }]
];
const Podcast = createLucideIcon("podcast", __iconNode$7T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7S = [
  ["path", { d: "M10 4.5V4a2 2 0 0 0-2.41-1.957", key: "jsi14n" }],
  ["path", { d: "M13.9 8.4a2 2 0 0 0-1.26-1.295", key: "hirc7f" }],
  [
    "path",
    { d: "M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158", key: "1jxb2e" }
  ],
  [
    "path",
    {
      d: "m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343",
      key: "10r7hm"
    }
  ],
  ["path", { d: "M6 6v8", key: "tv5xkp" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const PointerOff = createLucideIcon("pointer-off", __iconNode$7S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7R = [
  ["path", { d: "M22 14a8 8 0 0 1-8 8", key: "56vcr3" }],
  ["path", { d: "M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2", key: "1agjmk" }],
  ["path", { d: "M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1", key: "wdbh2u" }],
  ["path", { d: "M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10", key: "1ibuk9" }],
  [
    "path",
    {
      d: "M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",
      key: "g6ys72"
    }
  ]
];
const Pointer = createLucideIcon("pointer", __iconNode$7R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7Q = [
  [
    "path",
    {
      d: "M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4",
      key: "10td1f"
    }
  ],
  ["path", { d: "M10 22 9 8", key: "yjptiv" }],
  ["path", { d: "m14 22 1-14", key: "8jwc8b" }],
  [
    "path",
    {
      d: "M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z",
      key: "1qo33t"
    }
  ]
];
const Popcorn = createLucideIcon("popcorn", __iconNode$7Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7P = [
  [
    "path",
    {
      d: "M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z",
      key: "1o68ps"
    }
  ],
  ["path", { d: "m22 22-5.5-5.5", key: "17o70y" }]
];
const Popsicle = createLucideIcon("popsicle", __iconNode$7P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7O = [
  ["path", { d: "M18 7c0-5.333-8-5.333-8 0", key: "1prm2n" }],
  ["path", { d: "M10 7v14", key: "18tmcs" }],
  ["path", { d: "M6 21h12", key: "4dkmi1" }],
  ["path", { d: "M6 13h10", key: "ybwr4a" }]
];
const PoundSterling = createLucideIcon("pound-sterling", __iconNode$7O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7N = [
  ["path", { d: "M18.36 6.64A9 9 0 0 1 20.77 15", key: "dxknvb" }],
  ["path", { d: "M6.16 6.16a9 9 0 1 0 12.68 12.68", key: "1x7qb5" }],
  ["path", { d: "M12 2v4", key: "3427ic" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const PowerOff = createLucideIcon("power-off", __iconNode$7N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7M = [
  ["path", { d: "M12 2v10", key: "mnfbl" }],
  ["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04", key: "obofu9" }]
];
const Power = createLucideIcon("power", __iconNode$7M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7L = [
  ["path", { d: "M2 3h20", key: "91anmk" }],
  ["path", { d: "M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3", key: "2k9sn8" }],
  ["path", { d: "m7 21 5-5 5 5", key: "bip4we" }]
];
const Presentation = createLucideIcon("presentation", __iconNode$7L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7K = [
  ["path", { d: "M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5", key: "qeb09x" }],
  ["path", { d: "m16 19 2 2 4-4", key: "1b14m6" }],
  ["path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2", key: "1md90i" }],
  ["path", { d: "M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6", key: "1itne7" }]
];
const PrinterCheck = createLucideIcon("printer-check", __iconNode$7K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7J = [
  [
    "path",
    {
      d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",
      key: "143wyd"
    }
  ],
  ["path", { d: "M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6", key: "1itne7" }],
  ["rect", { x: "6", y: "14", width: "12", height: "8", rx: "1", key: "1ue0tg" }]
];
const Printer = createLucideIcon("printer", __iconNode$7J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7I = [
  ["path", { d: "M5 7 3 5", key: "1yys58" }],
  ["path", { d: "M9 6V3", key: "1ptz9u" }],
  ["path", { d: "m13 7 2-2", key: "1w3vmq" }],
  ["circle", { cx: "9", cy: "13", r: "3", key: "1mma13" }],
  [
    "path",
    {
      d: "M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17",
      key: "2frwzc"
    }
  ],
  ["path", { d: "M16 16h2", key: "dnq2od" }]
];
const Projector = createLucideIcon("projector", __iconNode$7I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7H = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M12 9v11", key: "1fnkrn" }],
  ["path", { d: "M2 9h13a2 2 0 0 1 2 2v9", key: "11z3ex" }]
];
const Proportions = createLucideIcon("proportions", __iconNode$7H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7G = [
  [
    "path",
    {
      d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",
      key: "w46dr5"
    }
  ]
];
const Puzzle = createLucideIcon("puzzle", __iconNode$7G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7F = [
  [
    "path",
    {
      d: "M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z",
      key: "aenxs0"
    }
  ],
  ["path", { d: "M12 2v20", key: "t6zp3m" }]
];
const Pyramid = createLucideIcon("pyramid", __iconNode$7F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7E = [
  ["rect", { width: "5", height: "5", x: "3", y: "3", rx: "1", key: "1tu5fj" }],
  ["rect", { width: "5", height: "5", x: "16", y: "3", rx: "1", key: "1v8r4q" }],
  ["rect", { width: "5", height: "5", x: "3", y: "16", rx: "1", key: "1x03jg" }],
  ["path", { d: "M21 16h-3a2 2 0 0 0-2 2v3", key: "177gqh" }],
  ["path", { d: "M21 21v.01", key: "ents32" }],
  ["path", { d: "M12 7v3a2 2 0 0 1-2 2H7", key: "8crl2c" }],
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
  ["path", { d: "M12 3h.01", key: "n36tog" }],
  ["path", { d: "M12 16v.01", key: "133mhm" }],
  ["path", { d: "M16 12h1", key: "1slzba" }],
  ["path", { d: "M21 12v.01", key: "1lwtk9" }],
  ["path", { d: "M12 21v-1", key: "1880an" }]
];
const QrCode = createLucideIcon("qr-code", __iconNode$7E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7D = [
  [
    "path",
    {
      d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
      key: "rib7q0"
    }
  ],
  [
    "path",
    {
      d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
      key: "1ymkrd"
    }
  ]
];
const Quote = createLucideIcon("quote", __iconNode$7D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7C = [
  ["path", { d: "M13 16a3 3 0 0 1 2.24 5", key: "1epib5" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }],
  [
    "path",
    {
      d: "M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3",
      key: "ue9ozu"
    }
  ],
  ["path", { d: "M20 8.54V4a2 2 0 1 0-4 0v3", key: "49iql8" }],
  ["path", { d: "M7.612 12.524a3 3 0 1 0-1.6 4.3", key: "1e33i0" }]
];
const Rabbit = createLucideIcon("rabbit", __iconNode$7C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7B = [
  ["path", { d: "M19.07 4.93A10 10 0 0 0 6.99 3.34", key: "z3du51" }],
  ["path", { d: "M4 6h.01", key: "oypzma" }],
  ["path", { d: "M2.29 9.62A10 10 0 1 0 21.31 8.35", key: "qzzz0" }],
  ["path", { d: "M16.24 7.76A6 6 0 1 0 8.23 16.67", key: "1yjesh" }],
  ["path", { d: "M12 18h.01", key: "mhygvu" }],
  ["path", { d: "M17.99 11.66A6 6 0 0 1 15.77 16.67", key: "1u2y91" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
  ["path", { d: "m13.41 10.59 5.66-5.66", key: "mhq4k0" }]
];
const Radar = createLucideIcon("radar", __iconNode$7B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7A = [
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  [
    "path",
    {
      d: "M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z",
      key: "1y4lzb"
    }
  ],
  [
    "path",
    {
      d: "M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z",
      key: "163ggk"
    }
  ],
  [
    "path",
    {
      d: "M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z",
      key: "1l9i0b"
    }
  ]
];
const Radiation = createLucideIcon("radiation", __iconNode$7A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7z = [
  [
    "path",
    {
      d: "M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21",
      key: "1mqj8i"
    }
  ]
];
const Radical = createLucideIcon("radical", __iconNode$7z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7y = [
  ["path", { d: "M5 16v2", key: "g5qcv5" }],
  ["path", { d: "M19 16v2", key: "1gbaio" }],
  ["rect", { width: "20", height: "8", x: "2", y: "8", rx: "2", key: "vjsjur" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }]
];
const RadioReceiver = createLucideIcon("radio-receiver", __iconNode$7y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7x = [
  ["path", { d: "M4.9 16.1C1 12.2 1 5.8 4.9 1.9", key: "s0qx1y" }],
  ["path", { d: "M7.8 4.7a6.14 6.14 0 0 0-.8 7.5", key: "1idnkw" }],
  ["circle", { cx: "12", cy: "9", r: "2", key: "1092wv" }],
  ["path", { d: "M16.2 4.8c2 2 2.26 5.11.8 7.47", key: "ojru2q" }],
  ["path", { d: "M19.1 1.9a9.96 9.96 0 0 1 0 14.1", key: "rhi7fg" }],
  ["path", { d: "M9.5 18h5", key: "mfy3pd" }],
  ["path", { d: "m8 22 4-11 4 11", key: "25yftu" }]
];
const RadioTower = createLucideIcon("radio-tower", __iconNode$7x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7w = [
  ["path", { d: "M16.247 7.761a6 6 0 0 1 0 8.478", key: "1fwjs5" }],
  ["path", { d: "M19.075 4.933a10 10 0 0 1 0 14.134", key: "ehdyv1" }],
  ["path", { d: "M4.925 19.067a10 10 0 0 1 0-14.134", key: "1q22gi" }],
  ["path", { d: "M7.753 16.239a6 6 0 0 1 0-8.478", key: "r2q7qm" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const Radio = createLucideIcon("radio", __iconNode$7w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7v = [
  ["path", { d: "M20.34 17.52a10 10 0 1 0-2.82 2.82", key: "fydyku" }],
  ["circle", { cx: "19", cy: "19", r: "2", key: "17f5cg" }],
  ["path", { d: "m13.41 13.41 4.18 4.18", key: "1gqbwc" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const Radius = createLucideIcon("radius", __iconNode$7v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7u = [
  ["path", { d: "M5 15h14", key: "m0yey3" }],
  ["path", { d: "M5 9h14", key: "7tsvo6" }],
  ["path", { d: "m14 20-5-5 6-6-5-5", key: "1jo42i" }]
];
const RailSymbol = createLucideIcon("rail-symbol", __iconNode$7u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7t = [
  ["path", { d: "M22 17a10 10 0 0 0-20 0", key: "ozegv" }],
  ["path", { d: "M6 17a6 6 0 0 1 12 0", key: "5giftw" }],
  ["path", { d: "M10 17a2 2 0 0 1 4 0", key: "gnsikk" }]
];
const Rainbow = createLucideIcon("rainbow", __iconNode$7t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7s = [
  ["path", { d: "M13 22H4a2 2 0 0 1 0-4h12", key: "bt3f23" }],
  ["path", { d: "M13.236 18a3 3 0 0 0-2.2-5", key: "1tbvmo" }],
  ["path", { d: "M16 9h.01", key: "1bdo4e" }],
  [
    "path",
    {
      d: "M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3",
      key: "9ch7kn"
    }
  ],
  ["path", { d: "M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18", key: "3s7e9i" }]
];
const Rat = createLucideIcon("rat", __iconNode$7s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7r = [
  ["rect", { width: "12", height: "20", x: "6", y: "2", rx: "2", key: "1oxtiu" }],
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }]
];
const Ratio = createLucideIcon("ratio", __iconNode$7r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7q = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M12 6.5v11", key: "ecfhkf" }],
  ["path", { d: "M15 9.4a4 4 0 1 0 0 5.2", key: "1makmb" }]
];
const ReceiptCent = createLucideIcon("receipt-cent", __iconNode$7q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7p = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M8 12h5", key: "1g6qi8" }],
  ["path", { d: "M16 9.5a4 4 0 1 0 0 5.2", key: "b2px4r" }]
];
const ReceiptEuro = createLucideIcon("receipt-euro", __iconNode$7p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7o = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M8 7h8", key: "i86dvs" }],
  ["path", { d: "M12 17.5 8 15h1a4 4 0 0 0 0-8", key: "grpkl4" }],
  ["path", { d: "M8 11h8", key: "vwpz6n" }]
];
const ReceiptIndianRupee = createLucideIcon("receipt-indian-rupee", __iconNode$7o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7n = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "m12 10 3-3", key: "1mc12w" }],
  ["path", { d: "m9 7 3 3v7.5", key: "39i0xv" }],
  ["path", { d: "M9 11h6", key: "1fldmi" }],
  ["path", { d: "M9 15h6", key: "cctwl0" }]
];
const ReceiptJapaneseYen = createLucideIcon("receipt-japanese-yen", __iconNode$7n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7m = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M8 13h5", key: "1k9z8w" }],
  ["path", { d: "M10 17V9.5a2.5 2.5 0 0 1 5 0", key: "1dzgp0" }],
  ["path", { d: "M8 17h7", key: "8mjdqu" }]
];
const ReceiptPoundSterling = createLucideIcon("receipt-pound-sterling", __iconNode$7m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7l = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M8 15h5", key: "vxg57a" }],
  ["path", { d: "M8 11h5a2 2 0 1 0 0-4h-3v10", key: "1usi5u" }]
];
const ReceiptRussianRuble = createLucideIcon("receipt-russian-ruble", __iconNode$7l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7k = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M10 17V7h5", key: "k7jq18" }],
  ["path", { d: "M10 11h4", key: "1i0mka" }],
  ["path", { d: "M8 15h5", key: "vxg57a" }]
];
const ReceiptSwissFranc = createLucideIcon("receipt-swiss-franc", __iconNode$7k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7j = [
  ["path", { d: "M13 16H8", key: "wsln4y" }],
  ["path", { d: "M14 8H8", key: "1l3xfs" }],
  ["path", { d: "M16 12H8", key: "1fr5h0" }],
  [
    "path",
    {
      d: "M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z",
      key: "ycz6yz"
    }
  ]
];
const ReceiptText = createLucideIcon("receipt-text", __iconNode$7j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7i = [
  ["path", { d: "M10 6.5v11a5.5 5.5 0 0 0 5.5-5.5", key: "nw10mp" }],
  ["path", { d: "m14 8-6 3", key: "2tb98i" }],
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1z", key: "io9ry0" }
  ]
];
const ReceiptTurkishLira = createLucideIcon("receipt-turkish-lira", __iconNode$7i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7h = [
  [
    "path",
    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
  ],
  ["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8", key: "1h4pet" }],
  ["path", { d: "M12 17.5v-11", key: "1jc1ny" }]
];
const Receipt = createLucideIcon("receipt", __iconNode$7h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7g = [
  ["path", { d: "M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z", key: "1m5n7q" }],
  ["circle", { cx: "14", cy: "12", r: "8", key: "1pag6k" }]
];
const RectangleCircle = createLucideIcon("rectangle-circle", __iconNode$7g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7f = [
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M17 12h.01", key: "1m0b6t" }],
  ["path", { d: "M7 12h.01", key: "eqddd0" }]
];
const RectangleEllipsis = createLucideIcon("rectangle-ellipsis", __iconNode$7f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7e = [
  [
    "path",
    {
      d: "M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",
      key: "d5y1f"
    }
  ]
];
const RectangleGoggles = createLucideIcon("rectangle-goggles", __iconNode$7e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7d = [
  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }]
];
const RectangleHorizontal = createLucideIcon("rectangle-horizontal", __iconNode$7d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7c = [
  ["rect", { width: "12", height: "20", x: "6", y: "2", rx: "2", key: "1oxtiu" }]
];
const RectangleVertical = createLucideIcon("rectangle-vertical", __iconNode$7c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7b = [
  [
    "path",
    {
      d: "M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5",
      key: "x6z5xu"
    }
  ],
  [
    "path",
    {
      d: "M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12",
      key: "1x4zh5"
    }
  ],
  ["path", { d: "m14 16-3 3 3 3", key: "f6jyew" }],
  ["path", { d: "M8.293 13.596 7.196 9.5 3.1 10.598", key: "wf1obh" }],
  [
    "path",
    {
      d: "m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843",
      key: "9tzpgr"
    }
  ],
  ["path", { d: "m13.378 9.633 4.096 1.098 1.097-4.096", key: "1oe83g" }]
];
const Recycle = createLucideIcon("recycle", __iconNode$7b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7a = [
  ["path", { d: "m15 14 5-5-5-5", key: "12vg1m" }],
  ["path", { d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13", key: "6uklza" }]
];
const Redo2 = createLucideIcon("redo-2", __iconNode$7a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$79 = [
  ["circle", { cx: "12", cy: "17", r: "1", key: "1ixnty" }],
  ["path", { d: "M21 7v6h-6", key: "3ptur4" }],
  ["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7", key: "1kgawr" }]
];
const RedoDot = createLucideIcon("redo-dot", __iconNode$79);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$78 = [
  ["path", { d: "M21 7v6h-6", key: "3ptur4" }],
  ["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7", key: "1kgawr" }]
];
const Redo = createLucideIcon("redo", __iconNode$78);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$77 = [
  ["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "14sxne" }],
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
  ["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16", key: "1hlbsb" }],
  ["path", { d: "M16 16h5v5", key: "ccwih5" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
];
const RefreshCcwDot = createLucideIcon("refresh-ccw-dot", __iconNode$77);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$76 = [
  ["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "14sxne" }],
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
  ["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16", key: "1hlbsb" }],
  ["path", { d: "M16 16h5v5", key: "ccwih5" }]
];
const RefreshCcw = createLucideIcon("refresh-ccw", __iconNode$76);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$75 = [
  ["path", { d: "M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47", key: "1krf6h" }],
  ["path", { d: "M8 16H3v5", key: "1cv678" }],
  ["path", { d: "M3 12C3 9.51 4 7.26 5.64 5.64", key: "ruvoct" }],
  ["path", { d: "m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64", key: "19q130" }],
  ["path", { d: "M21 12c0 1-.16 1.97-.47 2.87", key: "4w8emr" }],
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
  ["path", { d: "M22 22 2 2", key: "1r8tn9" }]
];
const RefreshCwOff = createLucideIcon("refresh-cw-off", __iconNode$75);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$74 = [
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
];
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$74);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$73 = [
  [
    "path",
    { d: "M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z", key: "fpq118" }
  ],
  ["path", { d: "M5 10h14", key: "elsbfy" }],
  ["path", { d: "M15 7v6", key: "1nx30x" }]
];
const Refrigerator = createLucideIcon("refrigerator", __iconNode$73);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$72 = [
  ["path", { d: "M17 3v10", key: "15fgeh" }],
  ["path", { d: "m12.67 5.5 8.66 5", key: "1gpheq" }],
  ["path", { d: "m12.67 10.5 8.66-5", key: "1dkfa6" }],
  [
    "path",
    { d: "M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z", key: "swwfx4" }
  ]
];
const Regex = createLucideIcon("regex", __iconNode$72);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$71 = [
  ["path", { d: "M4 7V4h16v3", key: "9msm58" }],
  ["path", { d: "M5 20h6", key: "1h6pxn" }],
  ["path", { d: "M13 4 8 20", key: "kqq6aj" }],
  ["path", { d: "m15 15 5 5", key: "me55sn" }],
  ["path", { d: "m20 15-5 5", key: "11p7ol" }]
];
const RemoveFormatting = createLucideIcon("remove-formatting", __iconNode$71);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$70 = [
  ["path", { d: "m17 2 4 4-4 4", key: "nntrym" }],
  ["path", { d: "M3 11v-1a4 4 0 0 1 4-4h14", key: "84bu3i" }],
  ["path", { d: "m7 22-4-4 4-4", key: "1wqhfi" }],
  ["path", { d: "M21 13v1a4 4 0 0 1-4 4H3", key: "1rx37r" }],
  ["path", { d: "M11 10h1v4", key: "70cz1p" }]
];
const Repeat1 = createLucideIcon("repeat-1", __iconNode$70);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6$ = [
  ["path", { d: "m2 9 3-3 3 3", key: "1ltn5i" }],
  ["path", { d: "M13 18H7a2 2 0 0 1-2-2V6", key: "1r6tfw" }],
  ["path", { d: "m22 15-3 3-3-3", key: "4rnwn2" }],
  ["path", { d: "M11 6h6a2 2 0 0 1 2 2v10", key: "2f72bc" }]
];
const Repeat2 = createLucideIcon("repeat-2", __iconNode$6$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6_ = [
  ["path", { d: "m17 2 4 4-4 4", key: "nntrym" }],
  ["path", { d: "M3 11v-1a4 4 0 0 1 4-4h14", key: "84bu3i" }],
  ["path", { d: "m7 22-4-4 4-4", key: "1wqhfi" }],
  ["path", { d: "M21 13v1a4 4 0 0 1-4 4H3", key: "1rx37r" }]
];
const Repeat = createLucideIcon("repeat", __iconNode$6_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6Z = [
  ["path", { d: "M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1", key: "zg1ipl" }],
  ["path", { d: "M14 4a1 1 0 0 1 1-1", key: "dhj8ez" }],
  ["path", { d: "M15 10a1 1 0 0 1-1-1", key: "1mnyi5" }],
  ["path", { d: "M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1", key: "txt6k4" }],
  ["path", { d: "M21 4a1 1 0 0 0-1-1", key: "sfs9ap" }],
  ["path", { d: "M21 9a1 1 0 0 1-1 1", key: "mp6qeo" }],
  ["path", { d: "m3 7 3 3 3-3", key: "x25e72" }],
  ["path", { d: "M6 10V5a2 2 0 0 1 2-2h2", key: "15xut4" }],
  ["rect", { x: "3", y: "14", width: "7", height: "7", rx: "1", key: "1bkyp8" }]
];
const ReplaceAll = createLucideIcon("replace-all", __iconNode$6Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6Y = [
  ["path", { d: "M14 4a1 1 0 0 1 1-1", key: "dhj8ez" }],
  ["path", { d: "M15 10a1 1 0 0 1-1-1", key: "1mnyi5" }],
  ["path", { d: "M21 4a1 1 0 0 0-1-1", key: "sfs9ap" }],
  ["path", { d: "M21 9a1 1 0 0 1-1 1", key: "mp6qeo" }],
  ["path", { d: "m3 7 3 3 3-3", key: "x25e72" }],
  ["path", { d: "M6 10V5a2 2 0 0 1 2-2h2", key: "15xut4" }],
  ["rect", { x: "3", y: "14", width: "7", height: "7", rx: "1", key: "1bkyp8" }]
];
const Replace = createLucideIcon("replace", __iconNode$6Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6X = [
  ["path", { d: "m12 17-5-5 5-5", key: "1s3y5u" }],
  ["path", { d: "M22 18v-2a4 4 0 0 0-4-4H7", key: "1fcyog" }],
  ["path", { d: "m7 17-5-5 5-5", key: "1ed8i2" }]
];
const ReplyAll = createLucideIcon("reply-all", __iconNode$6X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6W = [
  [
    "path",
    { d: "M12 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 12 18z", key: "2a1g8i" }
  ],
  [
    "path",
    { d: "M22 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 22 18z", key: "rg3s36" }
  ]
];
const Rewind = createLucideIcon("rewind", __iconNode$6W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6V = [
  ["path", { d: "M20 18v-2a4 4 0 0 0-4-4H4", key: "5vmcpk" }],
  ["path", { d: "m9 17-5-5 5-5", key: "nvlc11" }]
];
const Reply = createLucideIcon("reply", __iconNode$6V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6U = [
  [
    "path",
    { d: "M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22", key: "1rnhq3" }
  ],
  ["path", { d: "m12 18 2.57-3.5", key: "116vt7" }],
  ["path", { d: "M6.243 9.016a7 7 0 0 1 11.507-.009", key: "10dq0b" }],
  ["path", { d: "M9.35 14.53 12 11.22", key: "tdsyp2" }],
  [
    "path",
    {
      d: "M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z",
      key: "nmifey"
    }
  ]
];
const Ribbon = createLucideIcon("ribbon", __iconNode$6U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6T = [
  [
    "path",
    {
      d: "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",
      key: "m3kijz"
    }
  ],
  [
    "path",
    {
      d: "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",
      key: "1fmvmk"
    }
  ],
  ["path", { d: "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0", key: "1f8sc4" }],
  ["path", { d: "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5", key: "qeys4" }]
];
const Rocket = createLucideIcon("rocket", __iconNode$6T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6S = [
  ["polyline", { points: "3.5 2 6.5 12.5 18 12.5", key: "y3iy52" }],
  ["line", { x1: "9.5", x2: "5.5", y1: "12.5", y2: "20", key: "19vg5i" }],
  ["line", { x1: "15", x2: "18.5", y1: "12.5", y2: "20", key: "1inpmv" }],
  ["path", { d: "M2.75 18a13 13 0 0 0 18.5 0", key: "1nquas" }]
];
const RockingChair = createLucideIcon("rocking-chair", __iconNode$6S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6R = [
  ["path", { d: "M6 19V5", key: "1r845m" }],
  ["path", { d: "M10 19V6.8", key: "9j2tfs" }],
  ["path", { d: "M14 19v-7.8", key: "10s8qv" }],
  ["path", { d: "M18 5v4", key: "1tajlv" }],
  ["path", { d: "M18 19v-6", key: "ielfq3" }],
  ["path", { d: "M22 19V9", key: "158nzp" }],
  ["path", { d: "M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65", key: "1930oh" }]
];
const RollerCoaster = createLucideIcon("roller-coaster", __iconNode$6R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6Q = [
  ["path", { d: "M17 10h-1a4 4 0 1 1 4-4v.534", key: "7qf5zm" }],
  [
    "path",
    { d: "M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31", key: "1et29u" }
  ],
  [
    "path",
    {
      d: "M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2",
      key: "kiv2lz"
    }
  ],
  ["path", { d: "M9.77 12C4 15 2 22 2 22", key: "h28rw0" }],
  ["circle", { cx: "17", cy: "8", r: "2", key: "1330xn" }]
];
const Rose = createLucideIcon("rose", __iconNode$6Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6P = [
  [
    "path",
    {
      d: "M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2",
      key: "10n0gc"
    }
  ],
  ["path", { d: "m15.194 13.707 3.814 1.86-1.86 3.814", key: "16shm9" }],
  [
    "path",
    {
      d: "M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4",
      key: "1lxi77"
    }
  ]
];
const Rotate3d = createLucideIcon("rotate-3d", __iconNode$6P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6O = [
  ["path", { d: "m14.5 9.5 1 1", key: "159eiq" }],
  ["path", { d: "m15.5 8.5-4 4", key: "iirg3q" }],
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8", key: "g2jlw" }],
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
  ["circle", { cx: "10", cy: "14", r: "2", key: "1239so" }]
];
const RotateCcwKey = createLucideIcon("rotate-ccw-key", __iconNode$6O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6N = [
  ["path", { d: "M20 9V7a2 2 0 0 0-2-2h-6", key: "19z8uc" }],
  ["path", { d: "m15 2-3 3 3 3", key: "177bxs" }],
  ["path", { d: "M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2", key: "d36hnl" }]
];
const RotateCcwSquare = createLucideIcon("rotate-ccw-square", __iconNode$6N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6M = [
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
];
const RotateCcw = createLucideIcon("rotate-ccw", __iconNode$6M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6L = [
  ["path", { d: "M12 5H6a2 2 0 0 0-2 2v3", key: "l96uqu" }],
  ["path", { d: "m9 8 3-3-3-3", key: "1gzgc3" }],
  ["path", { d: "M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2", key: "1w2k5h" }]
];
const RotateCwSquare = createLucideIcon("rotate-cw-square", __iconNode$6L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6K = [
  ["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }]
];
const RotateCw = createLucideIcon("rotate-cw", __iconNode$6K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6J = [
  ["circle", { cx: "6", cy: "19", r: "3", key: "1kj8tv" }],
  ["path", { d: "M9 19h8.5c.4 0 .9-.1 1.3-.2", key: "1effex" }],
  ["path", { d: "M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12", key: "k9y2ds" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M21 15.3a3.5 3.5 0 0 0-3.3-3.3", key: "11nlu2" }],
  ["path", { d: "M15 5h-4.3", key: "6537je" }],
  ["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }]
];
const RouteOff = createLucideIcon("route-off", __iconNode$6J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6I = [
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", key: "w68u3i" }],
  ["path", { d: "M6.01 18H6", key: "19vcac" }],
  ["path", { d: "M10.01 18H10", key: "uamcmx" }],
  ["path", { d: "M15 10v4", key: "qjz1xs" }],
  ["path", { d: "M17.84 7.17a4 4 0 0 0-5.66 0", key: "1rif40" }],
  ["path", { d: "M20.66 4.34a8 8 0 0 0-11.31 0", key: "6a5xfq" }]
];
const Router = createLucideIcon("router", __iconNode$6I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6H = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }]
];
const Rows2 = createLucideIcon("rows-2", __iconNode$6H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6G = [
  ["circle", { cx: "6", cy: "19", r: "3", key: "1kj8tv" }],
  ["path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15", key: "1d8sl" }],
  ["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }]
];
const Route = createLucideIcon("route", __iconNode$6G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6F = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M21 9H3", key: "1338ky" }],
  ["path", { d: "M21 15H3", key: "9uk58r" }]
];
const Rows3 = createLucideIcon("rows-3", __iconNode$6F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6E = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M21 7.5H3", key: "1hm9pq" }],
  ["path", { d: "M21 12H3", key: "2avoz0" }],
  ["path", { d: "M21 16.5H3", key: "n7jzkj" }]
];
const Rows4 = createLucideIcon("rows-4", __iconNode$6E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6D = [
  ["path", { d: "M4 11a9 9 0 0 1 9 9", key: "pv89mb" }],
  ["path", { d: "M4 4a16 16 0 0 1 16 16", key: "k0647b" }],
  ["circle", { cx: "5", cy: "19", r: "1", key: "bfqh0e" }]
];
const Rss = createLucideIcon("rss", __iconNode$6D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6C = [
  ["path", { d: "M10 15v-3", key: "1pjskw" }],
  ["path", { d: "M14 15v-3", key: "1o1mqj" }],
  ["path", { d: "M18 15v-3", key: "cws6he" }],
  ["path", { d: "M2 8V4", key: "3jv1jz" }],
  ["path", { d: "M22 6H2", key: "1iqbfk" }],
  ["path", { d: "M22 8V4", key: "16f4ou" }],
  ["path", { d: "M6 15v-3", key: "1ij1qe" }],
  ["rect", { x: "2", y: "12", width: "20", height: "8", rx: "2", key: "1tqiko" }]
];
const RulerDimensionLine = createLucideIcon("ruler-dimension-line", __iconNode$6C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6B = [
  [
    "path",
    {
      d: "M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",
      key: "icamh8"
    }
  ],
  ["path", { d: "m14.5 12.5 2-2", key: "inckbg" }],
  ["path", { d: "m11.5 9.5 2-2", key: "fmmyf7" }],
  ["path", { d: "m8.5 6.5 2-2", key: "vc6u1g" }],
  ["path", { d: "m17.5 15.5 2-2", key: "wo5hmg" }]
];
const Ruler = createLucideIcon("ruler", __iconNode$6B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6A = [
  ["path", { d: "M6 11h8a4 4 0 0 0 0-8H9v18", key: "18ai8t" }],
  ["path", { d: "M6 15h8", key: "1y8f6l" }]
];
const RussianRuble = createLucideIcon("russian-ruble", __iconNode$6A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6z = [
  ["path", { d: "M10 2v15", key: "1qf71f" }],
  [
    "path",
    { d: "M7 22a4 4 0 0 1-4-4 1 1 0 0 1 1-1h16a1 1 0 0 1 1 1 4 4 0 0 1-4 4z", key: "1pxcvx" }
  ],
  [
    "path",
    {
      d: "M9.159 2.46a1 1 0 0 1 1.521-.193l9.977 8.98A1 1 0 0 1 20 13H4a1 1 0 0 1-.824-1.567z",
      key: "5oog16"
    }
  ]
];
const Sailboat = createLucideIcon("sailboat", __iconNode$6z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6y = [
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
  ["path", { d: "M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z", key: "4rw317" }],
  [
    "path",
    {
      d: "M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1",
      key: "10xrj0"
    }
  ],
  ["path", { d: "m13 12 4-4", key: "1hckqy" }],
  ["path", { d: "M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2", key: "1p4srx" }]
];
const Salad = createLucideIcon("salad", __iconNode$6y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6x = [
  ["path", { d: "m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777", key: "f1wd0e" }],
  ["path", { d: "M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25", key: "1pfu07" }],
  ["path", { d: "M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9", key: "1oq9qw" }],
  ["path", { d: "m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2", key: "1fnwu5" }],
  ["rect", { width: "20", height: "4", x: "2", y: "11", rx: "1", key: "itshg" }]
];
const Sandwich = createLucideIcon("sandwich", __iconNode$6x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6w = [
  ["path", { d: "M4 10a7.31 7.31 0 0 0 10 10Z", key: "1fzpp3" }],
  ["path", { d: "m9 15 3-3", key: "88sc13" }],
  ["path", { d: "M17 13a6 6 0 0 0-6-6", key: "15cc6u" }],
  ["path", { d: "M21 13A10 10 0 0 0 11 3", key: "11nf8s" }]
];
const SatelliteDish = createLucideIcon("satellite-dish", __iconNode$6w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6v = [
  [
    "path",
    {
      d: "m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5",
      key: "dzhfyz"
    }
  ],
  ["path", { d: "M16.5 7.5 19 5", key: "1ltcjm" }],
  [
    "path",
    {
      d: "m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5",
      key: "nfoymv"
    }
  ],
  ["path", { d: "M9 21a6 6 0 0 0-6-6", key: "1iajcf" }],
  [
    "path",
    {
      d: "M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z",
      key: "nv9zqy"
    }
  ]
];
const Satellite = createLucideIcon("satellite", __iconNode$6v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6u = [
  ["path", { d: "m20 19.5-5.5 1.2", key: "1aenhr" }],
  ["path", { d: "M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2", key: "2rtezt" }],
  ["path", { d: "m2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2", key: "1kbm92" }],
  ["path", { d: "M20 10 4 13.5", key: "8nums9" }]
];
const SaudiRiyal = createLucideIcon("saudi-riyal", __iconNode$6u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6t = [
  ["path", { d: "M10 2v3a1 1 0 0 0 1 1h5", key: "1xspal" }],
  ["path", { d: "M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6", key: "1ra60u" }],
  ["path", { d: "M18 22H4a2 2 0 0 1-2-2V6", key: "pblm9e" }],
  [
    "path",
    {
      d: "M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z",
      key: "1yve0x"
    }
  ]
];
const SaveAll = createLucideIcon("save-all", __iconNode$6t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6s = [
  ["path", { d: "M13 13H8a1 1 0 0 0-1 1v7", key: "h8g396" }],
  ["path", { d: "M14 8h1", key: "1lfen6" }],
  ["path", { d: "M17 21v-4", key: "1yknxs" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    { d: "M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41", key: "1t4vdl" }
  ],
  ["path", { d: "M29.5 11.5s5 5 4 5", key: "zzn4i6" }],
  ["path", { d: "M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15", key: "24cby9" }]
];
const SaveOff = createLucideIcon("save-off", __iconNode$6s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6r = [
  [
    "path",
    {
      d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
      key: "1c8476"
    }
  ],
  ["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7", key: "1ydtos" }],
  ["path", { d: "M7 3v4a1 1 0 0 0 1 1h7", key: "t51u73" }]
];
const Save = createLucideIcon("save", __iconNode$6r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6q = [
  ["path", { d: "M5 7v11a1 1 0 0 0 1 1h11", key: "13dt1j" }],
  ["path", { d: "M5.293 18.707 11 13", key: "ezgbsx" }],
  ["circle", { cx: "19", cy: "19", r: "2", key: "17f5cg" }],
  ["circle", { cx: "5", cy: "5", r: "2", key: "1gwv83" }]
];
const Scale3d = createLucideIcon("scale-3d", __iconNode$6q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6p = [
  ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
  ["path", { d: "M14 15H9v-5", key: "pi4jk9" }],
  ["path", { d: "M16 3h5v5", key: "1806ms" }],
  ["path", { d: "M21 3 9 15", key: "15kdhq" }]
];
const Scaling = createLucideIcon("scaling", __iconNode$6p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6o = [
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["path", { d: "m19 8 3 8a5 5 0 0 1-6 0zV7", key: "zcdpyk" }],
  ["path", { d: "M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1", key: "1yorad" }],
  ["path", { d: "m5 8 3 8a5 5 0 0 1-6 0zV7", key: "eua70x" }],
  ["path", { d: "M7 21h10", key: "1b0cd5" }]
];
const Scale = createLucideIcon("scale", __iconNode$6o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6n = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["path", { d: "M8 7v10", key: "23sfjj" }],
  ["path", { d: "M12 7v10", key: "jspqdw" }],
  ["path", { d: "M17 7v10", key: "578dap" }]
];
const ScanBarcode = createLucideIcon("scan-barcode", __iconNode$6n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6m = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  [
    "path",
    {
      d: "M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",
      key: "11ak4c"
    }
  ]
];
const ScanEye = createLucideIcon("scan-eye", __iconNode$6m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6l = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["path", { d: "M15 9h.01", key: "x1ddxp" }]
];
const ScanFace = createLucideIcon("scan-face", __iconNode$6l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6k = [
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  [
    "path",
    {
      d: "M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 4.172 4.306l-3.447 3.62a1 1 0 0 1-1.449 0z",
      key: "1ak1ef"
    }
  ]
];
const ScanHeart = createLucideIcon("scan-heart", __iconNode$6k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6j = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["path", { d: "M7 12h10", key: "b7w52i" }]
];
const ScanLine = createLucideIcon("scan-line", __iconNode$6j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6i = [
  ["path", { d: "M17 12v4a1 1 0 0 1-1 1h-4", key: "uk4fdo" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M17 8V7", key: "q2g9wo" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M7 17h.01", key: "19xn7k" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["rect", { x: "7", y: "7", width: "5", height: "5", rx: "1", key: "m9kyts" }]
];
const ScanQrCode = createLucideIcon("scan-qr-code", __iconNode$6i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6h = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["path", { d: "m16 16-1.9-1.9", key: "1dq9hf" }]
];
const ScanSearch = createLucideIcon("scan-search", __iconNode$6h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6g = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
  ["path", { d: "M7 8h8", key: "1jbsf9" }],
  ["path", { d: "M7 12h10", key: "b7w52i" }],
  ["path", { d: "M7 16h6", key: "1vyc9m" }]
];
const ScanText = createLucideIcon("scan-text", __iconNode$6g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6f = [
  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }]
];
const Scan = createLucideIcon("scan", __iconNode$6f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6e = [
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
  ["path", { d: "M18 5v16", key: "1ethyx" }],
  ["path", { d: "m4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6", key: "zywc2d" }],
  [
    "path",
    {
      d: "m6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11",
      key: "1d4ql0"
    }
  ],
  ["path", { d: "M6 5v16", key: "1sn0nx" }],
  ["circle", { cx: "12", cy: "9", r: "2", key: "1092wv" }]
];
const School = createLucideIcon("school", __iconNode$6e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6d = [
  ["path", { d: "M5.42 9.42 8 12", key: "12pkuq" }],
  ["circle", { cx: "4", cy: "8", r: "2", key: "107mxr" }],
  ["path", { d: "m14 6-8.58 8.58", key: "gvzu5l" }],
  ["circle", { cx: "4", cy: "16", r: "2", key: "1ehqvc" }],
  ["path", { d: "M10.8 14.8 14 18", key: "ax7m9r" }],
  ["path", { d: "M16 12h-2", key: "10asgb" }],
  ["path", { d: "M22 12h-2", key: "14jgyd" }]
];
const ScissorsLineDashed = createLucideIcon("scissors-line-dashed", __iconNode$6d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6c = [
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
  ["path", { d: "M8.12 8.12 12 12", key: "1alkpv" }],
  ["path", { d: "M20 4 8.12 15.88", key: "xgtan2" }],
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
  ["path", { d: "M14.8 14.8 20 20", key: "ptml3r" }]
];
const Scissors = createLucideIcon("scissors", __iconNode$6c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6b = [
  ["path", { d: "M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3", key: "i8wdob" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "m22 3-5 5", key: "12jva0" }],
  ["path", { d: "m17 3 5 5", key: "k36vhe" }]
];
const ScreenShareOff = createLucideIcon("screen-share-off", __iconNode$6b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6a = [
  ["path", { d: "M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3", key: "i8wdob" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "m17 8 5-5", key: "fqif7o" }],
  ["path", { d: "M17 3h5v5", key: "1o3tu8" }]
];
const ScreenShare = createLucideIcon("screen-share", __iconNode$6a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$69 = [
  ["path", { d: "M15 12h-5", key: "r7krc0" }],
  ["path", { d: "M15 8h-5", key: "1khuty" }],
  ["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
  [
    "path",
    {
      d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",
      key: "1ph1d7"
    }
  ]
];
const ScrollText = createLucideIcon("scroll-text", __iconNode$69);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$68 = [
  ["path", { d: "M19 17V5a2 2 0 0 0-2-2H4", key: "zz82l3" }],
  [
    "path",
    {
      d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",
      key: "1ph1d7"
    }
  ]
];
const Scroll = createLucideIcon("scroll", __iconNode$68);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$67 = [
  ["path", { d: "m8 11 2 2 4-4", key: "1sed1v" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
];
const SearchCheck = createLucideIcon("search-check", __iconNode$67);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$66 = [
  ["path", { d: "m13 13.5 2-2.5-2-2.5", key: "1rvxrh" }],
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }],
  ["path", { d: "M9 8.5 7 11l2 2.5", key: "6ffwbx" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
];
const SearchCode = createLucideIcon("search-code", __iconNode$66);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$65 = [
  ["path", { d: "m13.5 8.5-5 5", key: "1cs55j" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
];
const SearchSlash = createLucideIcon("search-slash", __iconNode$65);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$64 = [
  ["path", { d: "m13.5 8.5-5 5", key: "1cs55j" }],
  ["path", { d: "m8.5 8.5 5 5", key: "a8mexj" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
];
const SearchX = createLucideIcon("search-x", __iconNode$64);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$63 = [
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
];
const Search = createLucideIcon("search", __iconNode$63);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$62 = [
  ["path", { d: "M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0", key: "vqan6v" }],
  ["path", { d: "M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0", key: "wdjd8o" }]
];
const Section = createLucideIcon("section", __iconNode$62);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$61 = [
  [
    "path",
    {
      d: "M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",
      key: "117uat"
    }
  ],
  ["path", { d: "M6 12h16", key: "s4cdu5" }]
];
const SendHorizontal = createLucideIcon("send-horizontal", __iconNode$61);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$60 = [
  ["rect", { x: "14", y: "14", width: "8", height: "8", rx: "2", key: "1b0bso" }],
  ["rect", { x: "2", y: "2", width: "8", height: "8", rx: "2", key: "1x09vl" }],
  ["path", { d: "M7 14v1a2 2 0 0 0 2 2h1", key: "pao6x6" }],
  ["path", { d: "M14 7h1a2 2 0 0 1 2 2v1", key: "19tdru" }]
];
const SendToBack = createLucideIcon("send-to-back", __iconNode$60);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5$ = [
  [
    "path",
    {
      d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
      key: "1ffxy3"
    }
  ],
  ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
];
const Send = createLucideIcon("send", __iconNode$5$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5_ = [
  ["path", { d: "m16 16-4 4-4-4", key: "3dv8je" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }],
  ["path", { d: "m8 8 4-4 4 4", key: "2bscm2" }]
];
const SeparatorHorizontal = createLucideIcon("separator-horizontal", __iconNode$5_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5Z = [
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["path", { d: "m16 16 4-4-4-4", key: "1js579" }],
  ["path", { d: "m8 8-4 4 4 4", key: "1whems" }]
];
const SeparatorVertical = createLucideIcon("separator-vertical", __iconNode$5Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5Y = [
  ["path", { d: "m10.852 14.772-.383.923", key: "11vil6" }],
  ["path", { d: "M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923", key: "1v3clb" }],
  ["path", { d: "m13.148 9.228.383-.923", key: "t2zzyc" }],
  ["path", { d: "m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544", key: "1bxfiv" }],
  ["path", { d: "m14.772 10.852.923-.383", key: "k9m8cz" }],
  ["path", { d: "m14.772 13.148.923.383", key: "1xvhww" }],
  [
    "path",
    {
      d: "M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",
      key: "tn8das"
    }
  ],
  [
    "path",
    {
      d: "M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",
      key: "1g2pve"
    }
  ],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "M6 6h.01", key: "1utrut" }],
  ["path", { d: "m9.228 10.852-.923-.383", key: "1wtb30" }],
  ["path", { d: "m9.228 13.148-.923.383", key: "1a830x" }]
];
const ServerCog = createLucideIcon("server-cog", __iconNode$5Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5X = [
  [
    "path",
    {
      d: "M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2",
      key: "4b9dqc"
    }
  ],
  [
    "path",
    {
      d: "M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2",
      key: "22nnkd"
    }
  ],
  ["path", { d: "M6 6h.01", key: "1utrut" }],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "m13 6-4 6h6l-4 6", key: "14hqih" }]
];
const ServerCrash = createLucideIcon("server-crash", __iconNode$5X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5W = [
  ["path", { d: "M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5", key: "bt2siv" }],
  ["path", { d: "M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z", key: "1hjrv1" }],
  ["path", { d: "M22 17v-1a2 2 0 0 0-2-2h-1", key: "1iynyr" }],
  ["path", { d: "M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z", key: "161ggg" }],
  ["path", { d: "M6 18h.01", key: "uhywen" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const ServerOff = createLucideIcon("server-off", __iconNode$5W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5V = [
  ["rect", { width: "20", height: "8", x: "2", y: "2", rx: "2", ry: "2", key: "ngkwjq" }],
  ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", ry: "2", key: "iecqi9" }],
  ["line", { x1: "6", x2: "6.01", y1: "6", y2: "6", key: "16zg32" }],
  ["line", { x1: "6", x2: "6.01", y1: "18", y2: "18", key: "nzw8ys" }]
];
const Server = createLucideIcon("server", __iconNode$5V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5U = [
  ["path", { d: "M14 17H5", key: "gfn3mx" }],
  ["path", { d: "M19 7h-9", key: "6i9tg" }],
  ["circle", { cx: "17", cy: "17", r: "3", key: "18b49y" }],
  ["circle", { cx: "7", cy: "7", r: "3", key: "dfmy0x" }]
];
const Settings2 = createLucideIcon("settings-2", __iconNode$5U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5T = [
  [
    "path",
    {
      d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
      key: "1i5ecw"
    }
  ],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
];
const Settings = createLucideIcon("settings", __iconNode$5T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5S = [
  [
    "path",
    {
      d: "M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",
      key: "1bo67w"
    }
  ],
  ["rect", { x: "3", y: "14", width: "7", height: "7", rx: "1", key: "1bkyp8" }],
  ["circle", { cx: "17.5", cy: "17.5", r: "3.5", key: "w3z12y" }]
];
const Shapes = createLucideIcon("shapes", __iconNode$5S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5R = [
  ["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
  ["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
  ["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
  ["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
  ["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
];
const Share2 = createLucideIcon("share-2", __iconNode$5R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5Q = [
  ["path", { d: "M12 2v13", key: "1km8f5" }],
  ["path", { d: "m16 6-4-4-4 4", key: "13yo43" }],
  ["path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8", key: "1b2hhj" }]
];
const Share = createLucideIcon("share", __iconNode$5Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5P = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["line", { x1: "3", x2: "21", y1: "9", y2: "9", key: "1vqk6q" }],
  ["line", { x1: "3", x2: "21", y1: "15", y2: "15", key: "o2sbyz" }],
  ["line", { x1: "9", x2: "9", y1: "9", y2: "21", key: "1ib60c" }],
  ["line", { x1: "15", x2: "15", y1: "9", y2: "21", key: "1n26ft" }]
];
const Sheet = createLucideIcon("sheet", __iconNode$5P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5O = [
  [
    "path",
    {
      d: "M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44",
      key: "1cn552"
    }
  ]
];
const Shell = createLucideIcon("shell", __iconNode$5O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5N = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M12 8v4", key: "1got3b" }],
  ["path", { d: "M12 16h.01", key: "1drbdi" }]
];
const ShieldAlert = createLucideIcon("shield-alert", __iconNode$5N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5M = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "m4.243 5.21 14.39 12.472", key: "1c9a7c" }]
];
const ShieldBan = createLucideIcon("shield-ban", __iconNode$5M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5L = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
];
const ShieldCheck = createLucideIcon("shield-check", __iconNode$5L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5K = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M8 12h.01", key: "czm47f" }],
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
  ["path", { d: "M16 12h.01", key: "1l6xoz" }]
];
const ShieldEllipsis = createLucideIcon("shield-ellipsis", __iconNode$5K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5J = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M12 22V2", key: "zs6s6o" }]
];
const ShieldHalf = createLucideIcon("shield-half", __iconNode$5J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5I = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M9 12h6", key: "1c52cq" }]
];
const ShieldMinus = createLucideIcon("shield-minus", __iconNode$5I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5H = [
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    {
      d: "M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",
      key: "1jlk70"
    }
  ],
  [
    "path",
    {
      d: "M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",
      key: "18rp1v"
    }
  ]
];
const ShieldOff = createLucideIcon("shield-off", __iconNode$5H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5G = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M9 12h6", key: "1c52cq" }],
  ["path", { d: "M12 9v6", key: "199k2o" }]
];
const ShieldPlus = createLucideIcon("shield-plus", __iconNode$5G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5F = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }]
];
const ShieldQuestionMark = createLucideIcon("shield-question-mark", __iconNode$5F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5E = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "m14.5 9.5-5 5", key: "17q4r4" }],
  ["path", { d: "m9.5 9.5 5 5", key: "18nt4w" }]
];
const ShieldX = createLucideIcon("shield-x", __iconNode$5E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5D = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ],
  ["path", { d: "M6.376 18.91a6 6 0 0 1 11.249.003", key: "hnjrf2" }],
  ["circle", { cx: "12", cy: "11", r: "4", key: "1gt34v" }]
];
const ShieldUser = createLucideIcon("shield-user", __iconNode$5D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5C = [
  [
    "path",
    {
      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
      key: "oel41y"
    }
  ]
];
const Shield = createLucideIcon("shield", __iconNode$5C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5B = [
  ["circle", { cx: "12", cy: "12", r: "8", key: "46899m" }],
  ["path", { d: "M12 2v7.5", key: "1e5rl5" }],
  ["path", { d: "m19 5-5.23 5.23", key: "1ezxxf" }],
  ["path", { d: "M22 12h-7.5", key: "le1719" }],
  ["path", { d: "m19 19-5.23-5.23", key: "p3fmgn" }],
  ["path", { d: "M12 14.5V22", key: "dgcmos" }],
  ["path", { d: "M10.23 13.77 5 19", key: "qwopd4" }],
  ["path", { d: "M9.5 12H2", key: "r7bup8" }],
  ["path", { d: "M10.23 10.23 5 5", key: "k2y7lj" }],
  ["circle", { cx: "12", cy: "12", r: "2.5", key: "ix0uyj" }]
];
const ShipWheel = createLucideIcon("ship-wheel", __iconNode$5B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5A = [
  ["path", { d: "M12 10.189V14", key: "1p8cqu" }],
  ["path", { d: "M12 2v3", key: "qbqxhf" }],
  ["path", { d: "M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6", key: "qpkstq" }],
  [
    "path",
    {
      d: "M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76",
      key: "7tigtc"
    }
  ],
  [
    "path",
    {
      d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "1924j5"
    }
  ]
];
const Ship = createLucideIcon("ship", __iconNode$5A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5z = [
  [
    "path",
    {
      d: "M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z",
      key: "1wgbhj"
    }
  ]
];
const Shirt = createLucideIcon("shirt", __iconNode$5z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5y = [
  ["path", { d: "M16 10a4 4 0 0 1-8 0", key: "1ltviw" }],
  ["path", { d: "M3.103 6.034h17.794", key: "awc11p" }],
  [
    "path",
    {
      d: "M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",
      key: "o988cm"
    }
  ]
];
const ShoppingBag = createLucideIcon("shopping-bag", __iconNode$5y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5x = [
  ["path", { d: "m15 11-1 9", key: "5wnq3a" }],
  ["path", { d: "m19 11-4-7", key: "cnml18" }],
  ["path", { d: "M2 11h20", key: "3eubbj" }],
  ["path", { d: "m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4", key: "yiazzp" }],
  ["path", { d: "M4.5 15.5h15", key: "13mye1" }],
  ["path", { d: "m5 11 4-7", key: "116ra9" }],
  ["path", { d: "m9 11 1 9", key: "1ojof7" }]
];
const ShoppingBasket = createLucideIcon("shopping-basket", __iconNode$5x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5w = [
  [
    "path",
    {
      d: "M21.56 4.56a1.5 1.5 0 0 1 0 2.122l-.47.47a3 3 0 0 1-4.212-.03 3 3 0 0 1 0-4.243l.44-.44a1.5 1.5 0 0 1 2.121 0z",
      key: "1gcedi"
    }
  ],
  [
    "path",
    {
      d: "M3 22a1 1 0 0 1-1-1v-3.586a1 1 0 0 1 .293-.707l3.355-3.355a1.205 1.205 0 0 1 1.704 0l3.296 3.296a1.205 1.205 0 0 1 0 1.704l-3.355 3.355a1 1 0 0 1-.707.293z",
      key: "pg9kv3"
    }
  ],
  ["path", { d: "m9 15 7.879-7.878", key: "1o1zgh" }]
];
const Shovel = createLucideIcon("shovel", __iconNode$5w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5v = [
  ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
  ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
  [
    "path",
    {
      d: "M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",
      key: "9zh506"
    }
  ]
];
const ShoppingCart = createLucideIcon("shopping-cart", __iconNode$5v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5u = [
  ["path", { d: "m4 4 2.5 2.5", key: "uv2vmf" }],
  ["path", { d: "M13.5 6.5a4.95 4.95 0 0 0-7 7", key: "frdkwv" }],
  ["path", { d: "M15 5 5 15", key: "1ag8rq" }],
  ["path", { d: "M14 17v.01", key: "eokfpp" }],
  ["path", { d: "M10 16v.01", key: "14uyyl" }],
  ["path", { d: "M13 13v.01", key: "1v1k97" }],
  ["path", { d: "M16 10v.01", key: "5169yg" }],
  ["path", { d: "M11 20v.01", key: "cj92p8" }],
  ["path", { d: "M17 14v.01", key: "11cswd" }],
  ["path", { d: "M20 11v.01", key: "19e0od" }]
];
const ShowerHead = createLucideIcon("shower-head", __iconNode$5u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5t = [
  [
    "path",
    {
      d: "M4 13V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5",
      key: "1eob4r"
    }
  ],
  ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
  ["path", { d: "M10 22v-5", key: "sfixh4" }],
  ["path", { d: "M14 19v-2", key: "pdve8j" }],
  ["path", { d: "M18 20v-3", key: "uox2gk" }],
  ["path", { d: "M2 13h20", key: "5evz65" }],
  ["path", { d: "M6 20v-3", key: "c6pdcb" }]
];
const Shredder = createLucideIcon("shredder", __iconNode$5t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5s = [
  ["path", { d: "M11 12h.01", key: "1lr4k6" }],
  ["path", { d: "M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1", key: "fatpdi" }],
  [
    "path",
    {
      d: "M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8",
      key: "kehrqe"
    }
  ],
  ["path", { d: "M14 8a8.5 8.5 0 0 1 0 8", key: "1imjx2" }],
  ["path", { d: "M16 16c2 0 4.5-4 4-6", key: "z0nejz" }]
];
const Shrimp = createLucideIcon("shrimp", __iconNode$5s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5r = [
  ["path", { d: "m15 15 6 6m-6-6v4.8m0-4.8h4.8", key: "17vawe" }],
  ["path", { d: "M9 19.8V15m0 0H4.2M9 15l-6 6", key: "chjx8e" }],
  ["path", { d: "M15 4.2V9m0 0h4.8M15 9l6-6", key: "lav6yq" }],
  ["path", { d: "M9 4.2V9m0 0H4.2M9 9 3 3", key: "1pxi2q" }]
];
const Shrink = createLucideIcon("shrink", __iconNode$5r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5q = [
  ["path", { d: "M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5", key: "1p17fm" }],
  ["path", { d: "M14.5 14.5 12 17", key: "dy5w4y" }],
  ["path", { d: "M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z", key: "6z7b3o" }]
];
const Shrub = createLucideIcon("shrub", __iconNode$5q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5p = [
  ["path", { d: "m18 14 4 4-4 4", key: "10pe0f" }],
  ["path", { d: "m18 2 4 4-4 4", key: "pucp1d" }],
  ["path", { d: "M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22", key: "1ailkh" }],
  ["path", { d: "M2 6h1.972a4 4 0 0 1 3.6 2.2", key: "km57vx" }],
  ["path", { d: "M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45", key: "os18l9" }]
];
const Shuffle = createLucideIcon("shuffle", __iconNode$5p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5o = [
  [
    "path",
    {
      d: "M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",
      key: "wuwx1p"
    }
  ]
];
const Sigma = createLucideIcon("sigma", __iconNode$5o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5n = [
  ["path", { d: "M2 20h.01", key: "4haj6o" }],
  ["path", { d: "M7 20v-4", key: "j294jx" }],
  ["path", { d: "M12 20v-8", key: "i3yub9" }],
  ["path", { d: "M17 20V8", key: "1tkaf5" }]
];
const SignalHigh = createLucideIcon("signal-high", __iconNode$5n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5m = [
  ["path", { d: "M2 20h.01", key: "4haj6o" }],
  ["path", { d: "M7 20v-4", key: "j294jx" }]
];
const SignalLow = createLucideIcon("signal-low", __iconNode$5m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5l = [
  ["path", { d: "M2 20h.01", key: "4haj6o" }],
  ["path", { d: "M7 20v-4", key: "j294jx" }],
  ["path", { d: "M12 20v-8", key: "i3yub9" }]
];
const SignalMedium = createLucideIcon("signal-medium", __iconNode$5l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5k = [
  ["path", { d: "M2 20h.01", key: "4haj6o" }],
  ["path", { d: "M7 20v-4", key: "j294jx" }],
  ["path", { d: "M12 20v-8", key: "i3yub9" }],
  ["path", { d: "M17 20V8", key: "1tkaf5" }],
  ["path", { d: "M22 4v16", key: "sih9yq" }]
];
const Signal = createLucideIcon("signal", __iconNode$5k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5j = [
  [
    "path",
    {
      d: "m21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284",
      key: "y32ogt"
    }
  ],
  ["path", { d: "M3 21h18", key: "itz85i" }]
];
const Signature = createLucideIcon("signature", __iconNode$5j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5i = [["path", { d: "M2 20h.01", key: "4haj6o" }]];
const SignalZero = createLucideIcon("signal-zero", __iconNode$5i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5h = [
  ["path", { d: "M10 9H4L2 7l2-2h6", key: "1hq7x2" }],
  ["path", { d: "M14 5h6l2 2-2 2h-6", key: "bv62ej" }],
  ["path", { d: "M10 22V4a2 2 0 1 1 4 0v18", key: "eqpcf2" }],
  ["path", { d: "M8 22h8", key: "rmew8v" }]
];
const SignpostBig = createLucideIcon("signpost-big", __iconNode$5h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5g = [
  ["path", { d: "M7 18v-6a5 5 0 1 1 10 0v6", key: "pcx96s" }],
  [
    "path",
    { d: "M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z", key: "1b4s83" }
  ],
  ["path", { d: "M21 12h1", key: "jtio3y" }],
  ["path", { d: "M18.5 4.5 18 5", key: "g5sp9y" }],
  ["path", { d: "M2 12h1", key: "1uaihz" }],
  ["path", { d: "M12 2v1", key: "11qlp1" }],
  ["path", { d: "m4.929 4.929.707.707", key: "1i51kw" }],
  ["path", { d: "M12 12v6", key: "3ahymv" }]
];
const Siren = createLucideIcon("siren", __iconNode$5g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5f = [
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
  ["path", { d: "M12 3v3", key: "1n5kay" }],
  [
    "path",
    {
      d: "M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z",
      key: "gqqp9m"
    }
  ]
];
const Signpost = createLucideIcon("signpost", __iconNode$5f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5e = [
  [
    "path",
    {
      d: "M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",
      key: "15892j"
    }
  ],
  ["path", { d: "M3 20V4", key: "1ptbpl" }]
];
const SkipBack = createLucideIcon("skip-back", __iconNode$5e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5d = [
  ["path", { d: "M21 4v16", key: "7j8fe9" }],
  [
    "path",
    {
      d: "M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",
      key: "zs4d6"
    }
  ]
];
const SkipForward = createLucideIcon("skip-forward", __iconNode$5d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5c = [
  ["path", { d: "m12.5 17-.5-1-.5 1h1z", key: "3me087" }],
  [
    "path",
    {
      d: "M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",
      key: "1o5pge"
    }
  ],
  ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }]
];
const Skull = createLucideIcon("skull", __iconNode$5c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5b = [
  ["rect", { width: "3", height: "8", x: "13", y: "2", rx: "1.5", key: "diqz80" }],
  ["path", { d: "M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5", key: "183iwg" }],
  ["rect", { width: "3", height: "8", x: "8", y: "14", rx: "1.5", key: "hqg7r1" }],
  ["path", { d: "M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5", key: "76g71w" }],
  ["rect", { width: "8", height: "3", x: "14", y: "13", rx: "1.5", key: "1kmz0a" }],
  ["path", { d: "M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5", key: "jc4sz0" }],
  ["rect", { width: "8", height: "3", x: "2", y: "8", rx: "1.5", key: "1omvl4" }],
  ["path", { d: "M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5", key: "16f3cl" }]
];
const Slack = createLucideIcon("slack", __iconNode$5b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5a = [["path", { d: "M22 2 2 22", key: "y4kqgn" }]];
const Slash = createLucideIcon("slash", __iconNode$5a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$59 = [
  [
    "path",
    {
      d: "M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14",
      key: "1sllp5"
    }
  ]
];
const Slice = createLucideIcon("slice", __iconNode$59);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$58 = [
  ["path", { d: "M10 5H3", key: "1qgfaw" }],
  ["path", { d: "M12 19H3", key: "yhmn1j" }],
  ["path", { d: "M14 3v4", key: "1sua03" }],
  ["path", { d: "M16 17v4", key: "1q0r14" }],
  ["path", { d: "M21 12h-9", key: "1o4lsq" }],
  ["path", { d: "M21 19h-5", key: "1rlt1p" }],
  ["path", { d: "M21 5h-7", key: "1oszz2" }],
  ["path", { d: "M8 10v4", key: "tgpxqk" }],
  ["path", { d: "M8 12H3", key: "a7s4jb" }]
];
const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$58);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$57 = [
  ["path", { d: "M10 8h4", key: "1sr2af" }],
  ["path", { d: "M12 21v-9", key: "17s77i" }],
  ["path", { d: "M12 8V3", key: "13r4qs" }],
  ["path", { d: "M17 16h4", key: "h1uq16" }],
  ["path", { d: "M19 12V3", key: "o1uvq1" }],
  ["path", { d: "M19 21v-5", key: "qua636" }],
  ["path", { d: "M3 14h4", key: "bcjad9" }],
  ["path", { d: "M5 10V3", key: "cb8scm" }],
  ["path", { d: "M5 21v-7", key: "1w1uti" }]
];
const SlidersVertical = createLucideIcon("sliders-vertical", __iconNode$57);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$56 = [
  ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
  ["path", { d: "M12.667 8 10 12h4l-2.667 4", key: "h9lk2d" }]
];
const SmartphoneCharging = createLucideIcon("smartphone-charging", __iconNode$56);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$55 = [
  ["rect", { width: "7", height: "12", x: "2", y: "6", rx: "1", key: "5nje8w" }],
  ["path", { d: "M13 8.32a7.43 7.43 0 0 1 0 7.36", key: "1g306n" }],
  ["path", { d: "M16.46 6.21a11.76 11.76 0 0 1 0 11.58", key: "uqvjvo" }],
  ["path", { d: "M19.91 4.1a15.91 15.91 0 0 1 .01 15.8", key: "ujntz3" }]
];
const SmartphoneNfc = createLucideIcon("smartphone-nfc", __iconNode$55);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$54 = [
  ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
  ["path", { d: "M12 18h.01", key: "mhygvu" }]
];
const Smartphone = createLucideIcon("smartphone", __iconNode$54);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$53 = [
  ["path", { d: "M22 11v1a10 10 0 1 1-9-10", key: "ew0xw9" }],
  ["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
  ["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
  ["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }],
  ["path", { d: "M16 5h6", key: "1vod17" }],
  ["path", { d: "M19 2v6", key: "4bpg5p" }]
];
const SmilePlus = createLucideIcon("smile-plus", __iconNode$53);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$52 = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
  ["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
  ["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
];
const Smile = createLucideIcon("smile", __iconNode$52);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$51 = [
  ["path", { d: "M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0", key: "hneq2s" }],
  ["circle", { cx: "10", cy: "13", r: "8", key: "194lz3" }],
  ["path", { d: "M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6", key: "ixqyt7" }],
  ["path", { d: "M18 3 19.1 5.2", key: "9tjm43" }],
  ["path", { d: "M22 3 20.9 5.2", key: "j3odrs" }]
];
const Snail = createLucideIcon("snail", __iconNode$51);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$50 = [
  ["path", { d: "m10 20-1.25-2.5L6 18", key: "18frcb" }],
  ["path", { d: "M10 4 8.75 6.5 6 6", key: "7mghy3" }],
  ["path", { d: "m14 20 1.25-2.5L18 18", key: "1chtki" }],
  ["path", { d: "m14 4 1.25 2.5L18 6", key: "1b4wsy" }],
  ["path", { d: "m17 21-3-6h-4", key: "15hhxa" }],
  ["path", { d: "m17 3-3 6 1.5 3", key: "11697g" }],
  ["path", { d: "M2 12h6.5L10 9", key: "kv9z4n" }],
  ["path", { d: "m20 10-1.5 2 1.5 2", key: "1swlpi" }],
  ["path", { d: "M22 12h-6.5L14 15", key: "1mxi28" }],
  ["path", { d: "m4 10 1.5 2L4 14", key: "k9enpj" }],
  ["path", { d: "m7 21 3-6-1.5-3", key: "j8hb9u" }],
  ["path", { d: "m7 3 3 6h4", key: "1otusx" }]
];
const Snowflake = createLucideIcon("snowflake", __iconNode$50);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4$ = [
  ["path", { d: "M10.5 2v4", key: "1xt6in" }],
  ["path", { d: "M14 2H7a2 2 0 0 0-2 2", key: "e6xig3" }],
  [
    "path",
    {
      d: "M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19",
      key: "adq7uc"
    }
  ],
  [
    "path",
    {
      d: "M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",
      key: "t9hm96"
    }
  ]
];
const SoapDispenserDroplet = createLucideIcon("soap-dispenser-droplet", __iconNode$4$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4_ = [
  ["path", { d: "M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3", key: "1dgpiv" }],
  [
    "path",
    {
      d: "M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",
      key: "xacw8m"
    }
  ],
  ["path", { d: "M4 18v2", key: "jwo5n2" }],
  ["path", { d: "M20 18v2", key: "1ar1qi" }],
  ["path", { d: "M12 4v9", key: "oqhhn3" }]
];
const Sofa = createLucideIcon("sofa", __iconNode$4_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4Z = [
  ["path", { d: "M11 2h2", key: "isr7bz" }],
  ["path", { d: "m14.28 14-4.56 8", key: "4anwcf" }],
  ["path", { d: "m21 22-1.558-4H4.558", key: "enk13h" }],
  ["path", { d: "M3 10v2", key: "w8mti9" }],
  [
    "path",
    {
      d: "M6.245 15.04A2 2 0 0 1 8 14h12a1 1 0 0 1 .864 1.505l-3.11 5.457A2 2 0 0 1 16 22H4a1 1 0 0 1-.863-1.506z",
      key: "pouggg"
    }
  ],
  ["path", { d: "M7 2a4 4 0 0 1-4 4", key: "78s8of" }],
  ["path", { d: "m8.66 7.66 1.41 1.41", key: "1vaqj8" }]
];
const SolarPanel = createLucideIcon("solar-panel", __iconNode$4Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4Y = [
  ["path", { d: "M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z", key: "4rw317" }],
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
  ["path", { d: "M19.5 12 22 6", key: "shfsr5" }],
  [
    "path",
    {
      d: "M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62",
      key: "rpc6vp"
    }
  ],
  [
    "path",
    {
      d: "M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62",
      key: "1lf63m"
    }
  ],
  [
    "path",
    { d: "M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62", key: "97tijn" }
  ]
];
const Soup = createLucideIcon("soup", __iconNode$4Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4X = [
  ["path", { d: "M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1", key: "lt2kga" }]
];
const Space = createLucideIcon("space", __iconNode$4X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4W = [
  ["path", { d: "M12 18v4", key: "jadmvz" }],
  [
    "path",
    {
      d: "M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5",
      key: "1aw2pz"
    }
  ]
];
const Spade = createLucideIcon("spade", __iconNode$4W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4V = [
  [
    "path",
    {
      d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
      key: "1s2grr"
    }
  ]
];
const Sparkle = createLucideIcon("sparkle", __iconNode$4V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4U = [
  [
    "path",
    {
      d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
      key: "1s2grr"
    }
  ],
  ["path", { d: "M20 2v4", key: "1rf3ol" }],
  ["path", { d: "M22 4h-4", key: "gwowj6" }],
  ["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
];
const Sparkles = createLucideIcon("sparkles", __iconNode$4U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4T = [
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
  ["path", { d: "M12 6h.01", key: "1vi96p" }],
  ["circle", { cx: "12", cy: "14", r: "4", key: "1jruaj" }],
  ["path", { d: "M12 14h.01", key: "1etili" }]
];
const Speaker = createLucideIcon("speaker", __iconNode$4T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4S = [
  [
    "path",
    {
      d: "M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20",
      key: "11atix"
    }
  ],
  ["path", { d: "M19.8 17.8a7.5 7.5 0 0 0 .003-10.603", key: "yol142" }],
  ["path", { d: "M17 15a3.5 3.5 0 0 0-.025-4.975", key: "ssbmkc" }]
];
const Speech = createLucideIcon("speech", __iconNode$4S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4R = [
  ["path", { d: "m6 16 6-12 6 12", key: "1b4byz" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  [
    "path",
    {
      d: "M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1",
      key: "8mdmtu"
    }
  ]
];
const SpellCheck2 = createLucideIcon("spell-check-2", __iconNode$4R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4Q = [
  ["path", { d: "m6 16 6-12 6 12", key: "1b4byz" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "m16 20 2 2 4-4", key: "13tcca" }]
];
const SpellCheck = createLucideIcon("spell-check", __iconNode$4Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4P = [
  [
    "path",
    {
      d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",
      key: "xwnzip"
    }
  ],
  ["path", { d: "M5 17A12 12 0 0 1 17 5", key: "1okkup" }],
  ["circle", { cx: "19", cy: "5", r: "2", key: "mhkx31" }],
  ["circle", { cx: "5", cy: "19", r: "2", key: "v8kfzx" }]
];
const SplinePointer = createLucideIcon("spline-pointer", __iconNode$4P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4O = [
  ["circle", { cx: "19", cy: "5", r: "2", key: "mhkx31" }],
  ["circle", { cx: "5", cy: "19", r: "2", key: "v8kfzx" }],
  ["path", { d: "M5 17A12 12 0 0 1 17 5", key: "1okkup" }]
];
const Spline = createLucideIcon("spline", __iconNode$4O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4N = [
  ["path", { d: "M16 3h5v5", key: "1806ms" }],
  ["path", { d: "M8 3H3v5", key: "15dfkv" }],
  ["path", { d: "M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3", key: "1qrqzj" }],
  ["path", { d: "m15 9 6-6", key: "ko1vev" }]
];
const Split = createLucideIcon("split", __iconNode$4N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4M = [
  [
    "path",
    {
      d: "M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66",
      key: "13vns8"
    }
  ],
  [
    "path",
    {
      d: "m7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178",
      key: "s8x3u0"
    }
  ]
];
const Spool = createLucideIcon("spool", __iconNode$4M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4L = [
  ["path", { d: "M15.295 19.562 16 22", key: "31jsb7" }],
  ["path", { d: "m17 16 3.758 2.098", key: "121ar7" }],
  ["path", { d: "m19 12.5 3.026-.598", key: "19ukd3" }],
  [
    "path",
    {
      d: "M7.61 6.3a3 3 0 0 0-3.92 1.3l-1.38 2.79a3 3 0 0 0 1.3 3.91l6.89 3.597a1 1 0 0 0 1.342-.447l3.106-6.211a1 1 0 0 0-.447-1.341z",
      key: "lwb9l9"
    }
  ],
  ["path", { d: "M8 9V2", key: "1xa0v7" }]
];
const Spotlight = createLucideIcon("spotlight", __iconNode$4L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4K = [
  ["path", { d: "M3 3h.01", key: "159qn6" }],
  ["path", { d: "M7 5h.01", key: "1hq22a" }],
  ["path", { d: "M11 7h.01", key: "1osv80" }],
  ["path", { d: "M3 7h.01", key: "1xzrh3" }],
  ["path", { d: "M7 9h.01", key: "19b3jx" }],
  ["path", { d: "M3 11h.01", key: "1eifu7" }],
  ["rect", { width: "4", height: "4", x: "15", y: "5", key: "mri9e4" }],
  ["path", { d: "m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2", key: "aib6hk" }],
  ["path", { d: "m13 14 8-2", key: "1d7bmk" }],
  ["path", { d: "m13 19 8-2", key: "1y2vml" }]
];
const SprayCan = createLucideIcon("spray-can", __iconNode$4K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4J = [
  [
    "path",
    {
      d: "M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3",
      key: "139s4v"
    }
  ],
  ["path", { d: "M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4", key: "1dlkgp" }],
  ["path", { d: "M5 21h14", key: "11awu3" }]
];
const Sprout = createLucideIcon("sprout", __iconNode$4J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4I = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M17 12h-2l-2 5-2-10-2 5H7", key: "15hlnc" }]
];
const SquareActivity = createLucideIcon("square-activity", __iconNode$4I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4H = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m16 8-8 8", key: "166keh" }],
  ["path", { d: "M16 16H8V8", key: "1w2ppm" }]
];
const SquareArrowDownLeft = createLucideIcon("square-arrow-down-left", __iconNode$4H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4G = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m8 8 8 8", key: "1imecy" }],
  ["path", { d: "M16 8v8H8", key: "1lbpgo" }]
];
const SquareArrowDownRight = createLucideIcon("square-arrow-down-right", __iconNode$4G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4F = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M12 8v8", key: "napkw2" }],
  ["path", { d: "m8 12 4 4 4-4", key: "k98ssh" }]
];
const SquareArrowDown = createLucideIcon("square-arrow-down", __iconNode$4F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4E = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m12 8-4 4 4 4", key: "15vm53" }],
  ["path", { d: "M16 12H8", key: "1fr5h0" }]
];
const SquareArrowLeft = createLucideIcon("square-arrow-left", __iconNode$4E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4D = [
  ["path", { d: "M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6", key: "14qz4y" }],
  ["path", { d: "m3 21 9-9", key: "1jfql5" }],
  ["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
];
const SquareArrowOutDownLeft = createLucideIcon("square-arrow-out-down-left", __iconNode$4D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4C = [
  ["path", { d: "M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6", key: "14rsvq" }],
  ["path", { d: "m21 21-9-9", key: "1et2py" }],
  ["path", { d: "M21 15v6h-6", key: "1jko0i" }]
];
const SquareArrowOutDownRight = createLucideIcon("square-arrow-out-down-right", __iconNode$4C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4B = [
  ["path", { d: "M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6", key: "14mv1t" }],
  ["path", { d: "m3 3 9 9", key: "rks13r" }],
  ["path", { d: "M3 9V3h6", key: "ira0h2" }]
];
const SquareArrowOutUpLeft = createLucideIcon("square-arrow-out-up-left", __iconNode$4B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4A = [
  ["path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6", key: "y09zxi" }],
  ["path", { d: "m21 3-9 9", key: "mpx6sq" }],
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }]
];
const SquareArrowOutUpRight = createLucideIcon("square-arrow-out-up-right", __iconNode$4A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4z = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "m12 16 4-4-4-4", key: "1i9zcv" }]
];
const SquareArrowRight = createLucideIcon("square-arrow-right", __iconNode$4z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4y = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 16V8h8", key: "19xb1h" }],
  ["path", { d: "M16 16 8 8", key: "1qdy8n" }]
];
const SquareArrowUpLeft = createLucideIcon("square-arrow-up-left", __iconNode$4y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4x = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 8h8v8", key: "b65dnt" }],
  ["path", { d: "m8 16 8-8", key: "13b9ih" }]
];
const SquareArrowUpRight = createLucideIcon("square-arrow-up-right", __iconNode$4x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4w = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
  ["path", { d: "M12 16V8", key: "1sbj14" }]
];
const SquareArrowUp = createLucideIcon("square-arrow-up", __iconNode$4w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4v = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M12 8v8", key: "napkw2" }],
  ["path", { d: "m8.5 14 7-4", key: "12hpby" }],
  ["path", { d: "m8.5 10 7 4", key: "wwy2dy" }]
];
const SquareAsterisk = createLucideIcon("square-asterisk", __iconNode$4v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4u = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 8h7", key: "kbo1nt" }],
  ["path", { d: "M8 12h6", key: "ikassy" }],
  ["path", { d: "M11 16h5", key: "oq65wt" }]
];
const SquareChartGantt = createLucideIcon("square-chart-gantt", __iconNode$4u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4t = [
  [
    "path",
    { d: "M4 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2", key: "1vzg26" }
  ],
  ["path", { d: "M10 22H8", key: "euku7a" }],
  ["path", { d: "M16 22h-2", key: "18d249" }],
  ["circle", { cx: "8", cy: "8", r: "2", key: "14cg06" }],
  ["path", { d: "M9.414 9.414 12 12", key: "qz4lzr" }],
  ["path", { d: "M14.8 14.8 18 18", key: "11flf1" }],
  ["circle", { cx: "8", cy: "16", r: "2", key: "1acxsx" }],
  ["path", { d: "m18 6-8.586 8.586", key: "11kzk1" }]
];
const SquareBottomDashedScissors = createLucideIcon("square-bottom-dashed-scissors", __iconNode$4t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4s = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
];
const SquareCheck = createLucideIcon("square-check", __iconNode$4s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4r = [
  [
    "path",
    { d: "M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344", key: "2acyp4" }
  ],
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
];
const SquareCheckBig = createLucideIcon("square-check-big", __iconNode$4r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4q = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m14 16-4-4 4-4", key: "ojs7w8" }]
];
const SquareChevronLeft = createLucideIcon("square-chevron-left", __iconNode$4q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4p = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m16 10-4 4-4-4", key: "894hmk" }]
];
const SquareChevronDown = createLucideIcon("square-chevron-down", __iconNode$4p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4o = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m10 8 4 4-4 4", key: "1wy4r4" }]
];
const SquareChevronRight = createLucideIcon("square-chevron-right", __iconNode$4o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4n = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m8 14 4-4 4 4", key: "fy2ptz" }]
];
const SquareChevronUp = createLucideIcon("square-chevron-up", __iconNode$4n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4m = [
  ["path", { d: "m10 9-3 3 3 3", key: "1oro0q" }],
  ["path", { d: "m14 15 3-3-3-3", key: "bz13h7" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const SquareCode = createLucideIcon("square-code", __iconNode$4m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4l = [
  ["path", { d: "M10 9.5 8 12l2 2.5", key: "3mjy60" }],
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "m14 9.5 2 2.5-2 2.5", key: "1bir2l" }],
  [
    "path",
    { d: "M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2", key: "as5y1o" }
  ],
  ["path", { d: "M9 21h1", key: "15o7lz" }]
];
const SquareDashedBottomCode = createLucideIcon("square-dashed-bottom-code", __iconNode$4l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4k = [
  [
    "path",
    { d: "M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2", key: "as5y1o" }
  ],
  ["path", { d: "M9 21h1", key: "15o7lz" }],
  ["path", { d: "M14 21h1", key: "v9vybs" }]
];
const SquareDashedBottom = createLucideIcon("square-dashed-bottom", __iconNode$4k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4j = [
  ["path", { d: "M8 7v7", key: "1x2jlm" }],
  ["path", { d: "M12 7v4", key: "xawao1" }],
  ["path", { d: "M16 7v9", key: "1hp2iy" }],
  ["path", { d: "M5 3a2 2 0 0 0-2 2", key: "y57alp" }],
  ["path", { d: "M9 3h1", key: "1yesri" }],
  ["path", { d: "M14 3h1", key: "1ec4yj" }],
  ["path", { d: "M19 3a2 2 0 0 1 2 2", key: "18rm91" }],
  ["path", { d: "M21 9v1", key: "mxsmne" }],
  ["path", { d: "M21 14v1", key: "169vum" }],
  ["path", { d: "M21 19a2 2 0 0 1-2 2", key: "1j7049" }],
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "M9 21h1", key: "15o7lz" }],
  ["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
  ["path", { d: "M3 14v1", key: "vnatye" }],
  ["path", { d: "M3 9v1", key: "1r0deq" }]
];
const SquareDashedKanban = createLucideIcon("square-dashed-kanban", __iconNode$4j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4i = [
  [
    "path",
    {
      d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",
      key: "xwnzip"
    }
  ],
  ["path", { d: "M5 3a2 2 0 0 0-2 2", key: "y57alp" }],
  ["path", { d: "M19 3a2 2 0 0 1 2 2", key: "18rm91" }],
  ["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
  ["path", { d: "M9 3h1", key: "1yesri" }],
  ["path", { d: "M9 21h2", key: "1qve2z" }],
  ["path", { d: "M14 3h1", key: "1ec4yj" }],
  ["path", { d: "M3 9v1", key: "1r0deq" }],
  ["path", { d: "M21 9v2", key: "p14lih" }],
  ["path", { d: "M3 14v1", key: "vnatye" }]
];
const SquareDashedMousePointer = createLucideIcon("square-dashed-mouse-pointer", __iconNode$4i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4h = [
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "M21 14v1", key: "169vum" }],
  ["path", { d: "M21 19a2 2 0 0 1-2 2", key: "1j7049" }],
  ["path", { d: "M21 9v1", key: "mxsmne" }],
  ["path", { d: "M3 14v1", key: "vnatye" }],
  ["path", { d: "M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2", key: "89voep" }],
  ["path", { d: "M3 9v1", key: "1r0deq" }],
  ["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
  ["path", { d: "M9 21h1", key: "15o7lz" }]
];
const SquareDashedTopSolid = createLucideIcon("square-dashed-top-solid", __iconNode$4h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4g = [
  ["path", { d: "M5 3a2 2 0 0 0-2 2", key: "y57alp" }],
  ["path", { d: "M19 3a2 2 0 0 1 2 2", key: "18rm91" }],
  ["path", { d: "M21 19a2 2 0 0 1-2 2", key: "1j7049" }],
  ["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
  ["path", { d: "M9 3h1", key: "1yesri" }],
  ["path", { d: "M9 21h1", key: "15o7lz" }],
  ["path", { d: "M14 3h1", key: "1ec4yj" }],
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "M3 9v1", key: "1r0deq" }],
  ["path", { d: "M21 9v1", key: "mxsmne" }],
  ["path", { d: "M3 14v1", key: "vnatye" }],
  ["path", { d: "M21 14v1", key: "169vum" }]
];
const SquareDashed = createLucideIcon("square-dashed", __iconNode$4g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4f = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }],
  ["line", { x1: "12", x2: "12", y1: "16", y2: "16", key: "aqc6ln" }],
  ["line", { x1: "12", x2: "12", y1: "8", y2: "8", key: "1mkcni" }]
];
const SquareDivide = createLucideIcon("square-divide", __iconNode$4f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4e = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
];
const SquareDot = createLucideIcon("square-dot", __iconNode$4e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4d = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 10h10", key: "1101jm" }],
  ["path", { d: "M7 14h10", key: "1mhdw3" }]
];
const SquareEqual = createLucideIcon("square-equal", __iconNode$4d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4c = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3", key: "m1af9g" }],
  ["path", { d: "M9 11.2h5.7", key: "3zgcl2" }]
];
const SquareFunction = createLucideIcon("square-function", __iconNode$4c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4b = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 7v7", key: "1x2jlm" }],
  ["path", { d: "M12 7v4", key: "xawao1" }],
  ["path", { d: "M16 7v9", key: "1hp2iy" }]
];
const SquareKanban = createLucideIcon("square-kanban", __iconNode$4b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4a = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 7v10", key: "d5nglc" }],
  ["path", { d: "M11 7v10", key: "pptsnr" }],
  ["path", { d: "m15 7 2 10", key: "1m7qm5" }]
];
const SquareLibrary = createLucideIcon("square-library", __iconNode$4a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$49 = [
  [
    "path",
    {
      d: "M8 16V8.5a.5.5 0 0 1 .9-.3l2.7 3.599a.5.5 0 0 0 .8 0l2.7-3.6a.5.5 0 0 1 .9.3V16",
      key: "1ywlsj"
    }
  ],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const SquareM = createLucideIcon("square-m", __iconNode$49);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$48 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 8h10", key: "1jw688" }],
  ["path", { d: "M7 12h10", key: "b7w52i" }],
  ["path", { d: "M7 16h10", key: "wp8him" }]
];
const SquareMenu = createLucideIcon("square-menu", __iconNode$48);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$47 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }]
];
const SquareMinus = createLucideIcon("square-minus", __iconNode$47);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$46 = [
  [
    "path",
    {
      d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z",
      key: "xwnzip"
    }
  ],
  ["path", { d: "M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6", key: "14rsvq" }]
];
const SquareMousePointer = createLucideIcon("square-mouse-pointer", __iconNode$46);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$45 = [
  ["path", { d: "M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41", key: "9l1ft6" }],
  ["path", { d: "M3 8.7V19a2 2 0 0 0 2 2h10.3", key: "17knke" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M13 13a3 3 0 1 0 0-6H9v2", key: "uoagbd" }],
  ["path", { d: "M9 17v-2.3", key: "1jxgo2" }]
];
const SquareParkingOff = createLucideIcon("square-parking-off", __iconNode$45);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$44 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M9 17V7h4a3 3 0 0 1 0 6H9", key: "1dfk2c" }]
];
const SquareParking = createLucideIcon("square-parking", __iconNode$44);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$43 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["line", { x1: "10", x2: "10", y1: "15", y2: "9", key: "c1nkhi" }],
  ["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
];
const SquarePause = createLucideIcon("square-pause", __iconNode$43);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$42 = [
  ["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", key: "1m0v6g" }],
  [
    "path",
    {
      d: "M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",
      key: "ohrbg2"
    }
  ]
];
const SquarePen = createLucideIcon("square-pen", __iconNode$42);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$41 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["path", { d: "M15 15h.01", key: "lqbp3k" }]
];
const SquarePercent = createLucideIcon("square-percent", __iconNode$41);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$40 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M7 7h10", key: "udp07y" }],
  ["path", { d: "M10 7v10", key: "i1d9ee" }],
  ["path", { d: "M16 17a2 2 0 0 1-2-2V7", key: "ftwdc7" }]
];
const SquarePi = createLucideIcon("square-pi", __iconNode$40);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3$ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M12 12H9.5a2.5 2.5 0 0 1 0-5H17", key: "1l9586" }],
  ["path", { d: "M12 7v10", key: "jspqdw" }],
  ["path", { d: "M16 7v10", key: "lavkr4" }]
];
const SquarePilcrow = createLucideIcon("square-pilcrow", __iconNode$3$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3_ = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["path", { d: "M12 8v8", key: "napkw2" }]
];
const SquarePlus = createLucideIcon("square-plus", __iconNode$3_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3Z = [
  ["path", { d: "M12 7v4", key: "xawao1" }],
  ["path", { d: "M7.998 9.003a5 5 0 1 0 8-.005", key: "1pek45" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const SquarePower = createLucideIcon("square-power", __iconNode$3Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3Y = [
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }],
  [
    "path",
    {
      d: "M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",
      key: "kmsa83"
    }
  ]
];
const SquarePlay = createLucideIcon("square-play", __iconNode$3Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3X = [
  ["path", { d: "M7 12h2l2 5 2-10h4", key: "1fxv6h" }],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const SquareRadical = createLucideIcon("square-radical", __iconNode$3X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3W = [
  ["path", { d: "M21 11a8 8 0 0 0-8-8", key: "1lxwo5" }],
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1dv2y5" }]
];
const SquareRoundCorner = createLucideIcon("square-round-corner", __iconNode$3W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3V = [
  ["rect", { width: "20", height: "20", x: "2", y: "2", rx: "2", key: "1btzen" }],
  ["circle", { cx: "8", cy: "8", r: "2", key: "14cg06" }],
  ["path", { d: "M9.414 9.414 12 12", key: "qz4lzr" }],
  ["path", { d: "M14.8 14.8 18 18", key: "11flf1" }],
  ["circle", { cx: "8", cy: "16", r: "2", key: "1acxsx" }],
  ["path", { d: "m18 6-8.586 8.586", key: "11kzk1" }]
];
const SquareScissors = createLucideIcon("square-scissors", __iconNode$3V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3U = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M16 8.9V7H8l4 5-4 5h8v-1.9", key: "9nih0i" }]
];
const SquareSigma = createLucideIcon("square-sigma", __iconNode$3U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3T = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["line", { x1: "9", x2: "15", y1: "15", y2: "9", key: "1dfufj" }]
];
const SquareSlash = createLucideIcon("square-slash", __iconNode$3T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3S = [
  ["path", { d: "M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3", key: "lubmu8" }],
  ["path", { d: "M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3", key: "1ag34g" }],
  ["line", { x1: "12", x2: "12", y1: "4", y2: "20", key: "1tx1rr" }]
];
const SquareSplitHorizontal = createLucideIcon("square-split-horizontal", __iconNode$3S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3R = [
  ["path", { d: "M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3", key: "1pi83i" }],
  ["path", { d: "M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3", key: "ido5k7" }],
  ["line", { x1: "4", x2: "20", y1: "12", y2: "12", key: "1e0a9i" }]
];
const SquareSplitVertical = createLucideIcon("square-split-vertical", __iconNode$3R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3Q = [
  ["path", { d: "M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2", key: "4i38lg" }],
  ["path", { d: "M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2", key: "mlte4a" }],
  ["rect", { width: "8", height: "8", x: "14", y: "14", rx: "2", key: "1fa9i4" }]
];
const SquareStack = createLucideIcon("square-stack", __iconNode$3Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3P = [
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }],
  ["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1", key: "z9xiuo" }]
];
const SquareSquare = createLucideIcon("square-square", __iconNode$3P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3O = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["rect", { x: "9", y: "9", width: "6", height: "6", rx: "1", key: "1ssd4o" }]
];
const SquareStop = createLucideIcon("square-stop", __iconNode$3O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3N = [
  [
    "path",
    {
      d: "M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z",
      key: "13edca"
    }
  ],
  ["rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", key: "h1oib" }]
];
const SquareStar = createLucideIcon("square-star", __iconNode$3N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3M = [
  ["path", { d: "m7 11 2-2-2-2", key: "1lz0vl" }],
  ["path", { d: "M11 13h4", key: "1p7l4v" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }]
];
const SquareTerminal = createLucideIcon("square-terminal", __iconNode$3M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3L = [
  ["path", { d: "M18 21a6 6 0 0 0-12 0", key: "kaz2du" }],
  ["circle", { cx: "12", cy: "11", r: "4", key: "1gt34v" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
];
const SquareUserRound = createLucideIcon("square-user-round", __iconNode$3L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3K = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2", key: "1m6ac2" }]
];
const SquareUser = createLucideIcon("square-user", __iconNode$3K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3J = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
];
const SquareX = createLucideIcon("square-x", __iconNode$3J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3I = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
];
const Square = createLucideIcon("square", __iconNode$3I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3H = [
  [
    "path",
    {
      d: "M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0",
      key: "1mcohs"
    }
  ],
  [
    "path",
    {
      d: "M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2",
      key: "1r1efp"
    }
  ]
];
const SquaresExclude = createLucideIcon("squares-exclude", __iconNode$3H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3G = [
  ["path", { d: "M10 22a2 2 0 0 1-2-2", key: "i7yj1i" }],
  ["path", { d: "M14 2a2 2 0 0 1 2 2", key: "170a0m" }],
  ["path", { d: "M16 22h-2", key: "18d249" }],
  ["path", { d: "M2 10V8", key: "7yj4fe" }],
  ["path", { d: "M2 4a2 2 0 0 1 2-2", key: "ddgnws" }],
  ["path", { d: "M20 8a2 2 0 0 1 2 2", key: "1770vt" }],
  ["path", { d: "M22 14v2", key: "iot8ja" }],
  ["path", { d: "M22 20a2 2 0 0 1-2 2", key: "qj8q6g" }],
  ["path", { d: "M4 16a2 2 0 0 1-2-2", key: "1dnafg" }],
  [
    "path",
    { d: "M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z", key: "ci6f0b" }
  ],
  ["path", { d: "M8 2h2", key: "1gmkwm" }]
];
const SquaresIntersect = createLucideIcon("squares-intersect", __iconNode$3G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3F = [
  ["path", { d: "M10 22a2 2 0 0 1-2-2", key: "i7yj1i" }],
  ["path", { d: "M16 22h-2", key: "18d249" }],
  [
    "path",
    {
      d: "M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z",
      key: "1njgbb"
    }
  ],
  ["path", { d: "M20 8a2 2 0 0 1 2 2", key: "1770vt" }],
  ["path", { d: "M22 14v2", key: "iot8ja" }],
  ["path", { d: "M22 20a2 2 0 0 1-2 2", key: "qj8q6g" }]
];
const SquaresSubtract = createLucideIcon("squares-subtract", __iconNode$3F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3E = [
  [
    "path",
    {
      d: "M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z",
      key: "17jnth"
    }
  ]
];
const SquaresUnite = createLucideIcon("squares-unite", __iconNode$3E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3D = [
  ["path", { d: "M13.77 3.043a34 34 0 0 0-3.54 0", key: "1oaobr" }],
  ["path", { d: "M13.771 20.956a33 33 0 0 1-3.541.001", key: "95iq0j" }],
  ["path", { d: "M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44", key: "1u6qty" }],
  ["path", { d: "M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438", key: "1ew6g6" }],
  ["path", { d: "M20.957 10.23a33 33 0 0 1 0 3.54", key: "1l9npr" }],
  ["path", { d: "M3.043 10.23a34 34 0 0 0 .001 3.541", key: "1it6jm" }],
  ["path", { d: "M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438", key: "14uchd" }],
  ["path", { d: "M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44", key: "8k4agb" }]
];
const SquircleDashed = createLucideIcon("squircle-dashed", __iconNode$3D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3C = [
  ["path", { d: "M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9", key: "garfkc" }]
];
const Squircle = createLucideIcon("squircle", __iconNode$3C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3B = [
  ["path", { d: "M15.236 22a3 3 0 0 0-2.2-5", key: "21bitc" }],
  ["path", { d: "M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4", key: "oh0fg0" }],
  ["path", { d: "M18 13h.01", key: "9veqaj" }],
  [
    "path",
    {
      d: "M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10",
      key: "980v8a"
    }
  ]
];
const Squirrel = createLucideIcon("squirrel", __iconNode$3B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3A = [
  ["path", { d: "M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13", key: "i9gjdv" }],
  [
    "path",
    {
      d: "M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z",
      key: "1vzg3v"
    }
  ],
  ["path", { d: "M5 22h14", key: "ehvnwv" }]
];
const Stamp = createLucideIcon("stamp", __iconNode$3A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3z = [
  [
    "path",
    {
      d: "M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2",
      key: "2ksp49"
    }
  ]
];
const StarHalf = createLucideIcon("star-half", __iconNode$3z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3y = [
  ["path", { d: "M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43", key: "16m0ql" }],
  ["path", { d: "M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91", key: "1vt8nq" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const StarOff = createLucideIcon("star-off", __iconNode$3y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3x = [
  [
    "path",
    {
      d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",
      key: "r04s7s"
    }
  ]
];
const Star = createLucideIcon("star", __iconNode$3x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3w = [
  [
    "path",
    {
      d: "M13.971 4.285A2 2 0 0 1 17 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",
      key: "19qhus"
    }
  ],
  ["path", { d: "M21 20V4", key: "cb8qj8" }]
];
const StepBack = createLucideIcon("step-back", __iconNode$3w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3v = [
  [
    "path",
    {
      d: "M10.029 4.285A2 2 0 0 0 7 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",
      key: "1ystz2"
    }
  ],
  ["path", { d: "M3 4v16", key: "1ph11n" }]
];
const StepForward = createLucideIcon("step-forward", __iconNode$3v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3u = [
  ["path", { d: "M11 2v2", key: "1539x4" }],
  ["path", { d: "M5 2v2", key: "1yf1q8" }],
  ["path", { d: "M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1", key: "rb5t3r" }],
  ["path", { d: "M8 15a6 6 0 0 0 12 0v-3", key: "x18d4x" }],
  ["circle", { cx: "20", cy: "10", r: "2", key: "ts1r5v" }]
];
const Stethoscope = createLucideIcon("stethoscope", __iconNode$3u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3t = [
  [
    "path",
    {
      d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",
      key: "1dfntj"
    }
  ],
  ["path", { d: "M15 3v5a1 1 0 0 0 1 1h5", key: "6s6qgf" }],
  ["path", { d: "M8 13h.01", key: "1sbv64" }],
  ["path", { d: "M16 13h.01", key: "wip0gl" }],
  ["path", { d: "M10 16s.8 1 2 1c1.3 0 2-1 2-1", key: "1vvgv3" }]
];
const Sticker = createLucideIcon("sticker", __iconNode$3t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3s = [
  [
    "path",
    {
      d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",
      key: "1dfntj"
    }
  ],
  ["path", { d: "M15 3v5a1 1 0 0 0 1 1h5", key: "6s6qgf" }]
];
const StickyNote = createLucideIcon("sticky-note", __iconNode$3s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3r = [
  ["path", { d: "M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5", key: "slp6dd" }],
  [
    "path",
    {
      d: "M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",
      key: "o0xfot"
    }
  ],
  ["path", { d: "M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05", key: "wn3emo" }]
];
const Store = createLucideIcon("store", __iconNode$3r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3q = [
  ["rect", { width: "20", height: "6", x: "2", y: "4", rx: "2", key: "qdearl" }],
  ["rect", { width: "20", height: "6", x: "2", y: "14", rx: "2", key: "1xrn6j" }]
];
const StretchHorizontal = createLucideIcon("stretch-horizontal", __iconNode$3q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3p = [
  ["rect", { width: "6", height: "20", x: "4", y: "2", rx: "2", key: "19qu7m" }],
  ["rect", { width: "6", height: "20", x: "14", y: "2", rx: "2", key: "24v0nk" }]
];
const StretchVertical = createLucideIcon("stretch-vertical", __iconNode$3p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3o = [
  ["path", { d: "M16 4H9a3 3 0 0 0-2.83 4", key: "43sutm" }],
  ["path", { d: "M14 12a4 4 0 0 1 0 8H6", key: "nlfj13" }],
  ["line", { x1: "4", x2: "20", y1: "12", y2: "12", key: "1e0a9i" }]
];
const Strikethrough = createLucideIcon("strikethrough", __iconNode$3o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3n = [
  ["path", { d: "m4 5 8 8", key: "1eunvl" }],
  ["path", { d: "m12 5-8 8", key: "1ah0jp" }],
  [
    "path",
    {
      d: "M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07",
      key: "e8ta8j"
    }
  ]
];
const Subscript = createLucideIcon("subscript", __iconNode$3n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3m = [
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["path", { d: "M12 4h.01", key: "1ujb9j" }],
  ["path", { d: "M20 12h.01", key: "1ykeid" }],
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M4 12h.01", key: "158zrr" }],
  ["path", { d: "M17.657 6.343h.01", key: "31pqzk" }],
  ["path", { d: "M17.657 17.657h.01", key: "jehnf4" }],
  ["path", { d: "M6.343 17.657h.01", key: "gdk6ow" }],
  ["path", { d: "M6.343 6.343h.01", key: "1uurf0" }]
];
const SunDim = createLucideIcon("sun-dim", __iconNode$3m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3l = [
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["path", { d: "M12 3v1", key: "1asbbs" }],
  ["path", { d: "M12 20v1", key: "1wcdkc" }],
  ["path", { d: "M3 12h1", key: "lp3yf2" }],
  ["path", { d: "M20 12h1", key: "1vloll" }],
  ["path", { d: "m18.364 5.636-.707.707", key: "1hakh0" }],
  ["path", { d: "m6.343 17.657-.707.707", key: "18m9nf" }],
  ["path", { d: "m5.636 5.636.707.707", key: "1xv1c5" }],
  ["path", { d: "m17.657 17.657.707.707", key: "vl76zb" }]
];
const SunMedium = createLucideIcon("sun-medium", __iconNode$3l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3k = [
  ["path", { d: "M12 2v2", key: "tus03m" }],
  [
    "path",
    {
      d: "M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715",
      key: "xlf6rm"
    }
  ],
  ["path", { d: "M16 12a4 4 0 0 0-4-4", key: "6vsxu" }],
  ["path", { d: "m19 5-1.256 1.256", key: "1yg6a6" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }]
];
const SunMoon = createLucideIcon("sun-moon", __iconNode$3k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3j = [
  ["path", { d: "M10 21v-1", key: "1u8rkd" }],
  ["path", { d: "M10 4V3", key: "pkzwkn" }],
  ["path", { d: "M10 9a3 3 0 0 0 0 6", key: "gv75dk" }],
  ["path", { d: "m14 20 1.25-2.5L18 18", key: "1chtki" }],
  ["path", { d: "m14 4 1.25 2.5L18 6", key: "1b4wsy" }],
  ["path", { d: "m17 21-3-6 1.5-3H22", key: "o5qa3v" }],
  ["path", { d: "m17 3-3 6 1.5 3", key: "11697g" }],
  ["path", { d: "M2 12h1", key: "1uaihz" }],
  ["path", { d: "m20 10-1.5 2 1.5 2", key: "1swlpi" }],
  ["path", { d: "m3.64 18.36.7-.7", key: "105rm9" }],
  ["path", { d: "m4.34 6.34-.7-.7", key: "d3unjp" }]
];
const SunSnow = createLucideIcon("sun-snow", __iconNode$3j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3i = [
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
  ["path", { d: "m17.66 17.66 1.41 1.41", key: "ptbguv" }],
  ["path", { d: "M2 12h2", key: "1t8f8n" }],
  ["path", { d: "M20 12h2", key: "1q8mjw" }],
  ["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
  ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
];
const Sun = createLucideIcon("sun", __iconNode$3i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3h = [
  ["path", { d: "M12 2v8", key: "1q4o3n" }],
  ["path", { d: "m4.93 10.93 1.41 1.41", key: "2a7f42" }],
  ["path", { d: "M2 18h2", key: "j10viu" }],
  ["path", { d: "M20 18h2", key: "wocana" }],
  ["path", { d: "m19.07 10.93-1.41 1.41", key: "15zs5n" }],
  ["path", { d: "M22 22H2", key: "19qnx5" }],
  ["path", { d: "m8 6 4-4 4 4", key: "ybng9g" }],
  ["path", { d: "M16 18a4 4 0 0 0-8 0", key: "1lzouq" }]
];
const Sunrise = createLucideIcon("sunrise", __iconNode$3h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3g = [
  ["path", { d: "M12 10V2", key: "16sf7g" }],
  ["path", { d: "m4.93 10.93 1.41 1.41", key: "2a7f42" }],
  ["path", { d: "M2 18h2", key: "j10viu" }],
  ["path", { d: "M20 18h2", key: "wocana" }],
  ["path", { d: "m19.07 10.93-1.41 1.41", key: "15zs5n" }],
  ["path", { d: "M22 22H2", key: "19qnx5" }],
  ["path", { d: "m16 6-4 4-4-4", key: "6wukr" }],
  ["path", { d: "M16 18a4 4 0 0 0-8 0", key: "1lzouq" }]
];
const Sunset = createLucideIcon("sunset", __iconNode$3g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3f = [
  ["path", { d: "m4 19 8-8", key: "hr47gm" }],
  ["path", { d: "m12 19-8-8", key: "1dhhmo" }],
  [
    "path",
    {
      d: "M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06",
      key: "1dfcux"
    }
  ]
];
const Superscript = createLucideIcon("superscript", __iconNode$3f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3e = [
  ["path", { d: "M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z", key: "1ldrpk" }],
  ["path", { d: "M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7", key: "11i5po" }],
  ["path", { d: "M 7 17h.01", key: "1euzgo" }],
  [
    "path",
    {
      d: "m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8",
      key: "o2gii7"
    }
  ]
];
const SwatchBook = createLucideIcon("swatch-book", __iconNode$3e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3d = [
  ["path", { d: "M10 21V3h8", key: "br2l0g" }],
  ["path", { d: "M6 16h9", key: "2py0wn" }],
  ["path", { d: "M10 9.5h7", key: "13dmhz" }]
];
const SwissFranc = createLucideIcon("swiss-franc", __iconNode$3d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3c = [
  ["path", { d: "M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5", key: "mtk2lu" }],
  ["path", { d: "M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5", key: "120jsl" }],
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
  ["path", { d: "m18 22-3-3 3-3", key: "kgdoj7" }],
  ["path", { d: "m6 2 3 3-3 3", key: "1fnbkv" }]
];
const SwitchCamera = createLucideIcon("switch-camera", __iconNode$3c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3b = [
  ["path", { d: "m11 19-6-6", key: "s7kpr" }],
  ["path", { d: "m5 21-2-2", key: "1kw20b" }],
  ["path", { d: "m8 16-4 4", key: "1oqv8h" }],
  ["path", { d: "M9.5 17.5 21 6V3h-3L6.5 14.5", key: "pkxemp" }]
];
const Sword = createLucideIcon("sword", __iconNode$3b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3a = [
  ["polyline", { points: "14.5 17.5 3 6 3 3 6 3 17.5 14.5", key: "1hfsw2" }],
  ["line", { x1: "13", x2: "19", y1: "19", y2: "13", key: "1vrmhu" }],
  ["line", { x1: "16", x2: "20", y1: "16", y2: "20", key: "1bron3" }],
  ["line", { x1: "19", x2: "21", y1: "21", y2: "19", key: "13pww6" }],
  ["polyline", { points: "14.5 6.5 18 3 21 3 21 6 17.5 9.5", key: "hbey2j" }],
  ["line", { x1: "5", x2: "9", y1: "14", y2: "18", key: "1hf58s" }],
  ["line", { x1: "7", x2: "4", y1: "17", y2: "20", key: "pidxm4" }],
  ["line", { x1: "3", x2: "5", y1: "19", y2: "21", key: "1pehsh" }]
];
const Swords = createLucideIcon("swords", __iconNode$3a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$39 = [
  ["path", { d: "m18 2 4 4", key: "22kx64" }],
  ["path", { d: "m17 7 3-3", key: "1w1zoj" }],
  ["path", { d: "M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5", key: "1exhtz" }],
  ["path", { d: "m9 11 4 4", key: "rovt3i" }],
  ["path", { d: "m5 19-3 3", key: "59f2uf" }],
  ["path", { d: "m14 4 6 6", key: "yqp9t2" }]
];
const Syringe = createLucideIcon("syringe", __iconNode$39);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$38 = [
  ["path", { d: "M12 21v-6", key: "lihzve" }],
  ["path", { d: "M12 9V3", key: "da5inc" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
];
const TableCellsMerge = createLucideIcon("table-cells-merge", __iconNode$38);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$37 = [
  [
    "path",
    {
      d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",
      key: "gugj83"
    }
  ]
];
const Table2 = createLucideIcon("table-2", __iconNode$37);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$36 = [
  ["path", { d: "M12 15V9", key: "8c7uyn" }],
  ["path", { d: "M3 15h18", key: "5xshup" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
];
const TableCellsSplit = createLucideIcon("table-cells-split", __iconNode$36);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$35 = [
  ["path", { d: "M14 14v2", key: "w2a1xv" }],
  ["path", { d: "M14 20v2", key: "1lq872" }],
  ["path", { d: "M14 2v2", key: "6buw04" }],
  ["path", { d: "M14 8v2", key: "i67w9a" }],
  ["path", { d: "M2 15h8", key: "82wtch" }],
  ["path", { d: "M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2", key: "up0l64" }],
  ["path", { d: "M2 9h8", key: "yelfik" }],
  ["path", { d: "M22 15h-4", key: "1es58f" }],
  ["path", { d: "M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2", key: "pdjoqf" }],
  ["path", { d: "M22 9h-4", key: "1luja7" }],
  ["path", { d: "M5 3v18", key: "14hmio" }]
];
const TableColumnsSplit = createLucideIcon("table-columns-split", __iconNode$35);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$34 = [
  ["path", { d: "M16 5H3", key: "m91uny" }],
  ["path", { d: "M16 12H3", key: "1a2rj7" }],
  ["path", { d: "M16 19H3", key: "zzsher" }],
  ["path", { d: "M21 5h.01", key: "wa75ra" }],
  ["path", { d: "M21 12h.01", key: "msek7k" }],
  ["path", { d: "M21 19h.01", key: "qvbq2j" }]
];
const TableOfContents = createLucideIcon("table-of-contents", __iconNode$34);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$33 = [
  ["path", { d: "M15 3v18", key: "14nvp0" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M21 9H3", key: "1338ky" }],
  ["path", { d: "M21 15H3", key: "9uk58r" }]
];
const TableProperties = createLucideIcon("table-properties", __iconNode$33);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$32 = [
  ["path", { d: "M14 10h2", key: "1lstlu" }],
  ["path", { d: "M15 22v-8", key: "1fwwgm" }],
  ["path", { d: "M15 2v4", key: "1044rn" }],
  ["path", { d: "M2 10h2", key: "1r8dkt" }],
  ["path", { d: "M20 10h2", key: "1ug425" }],
  ["path", { d: "M3 19h18", key: "awlh7x" }],
  ["path", { d: "M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6", key: "ibqhof" }],
  ["path", { d: "M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2", key: "1uenja" }],
  ["path", { d: "M8 10h2", key: "66od0" }],
  ["path", { d: "M9 22v-8", key: "fmnu31" }],
  ["path", { d: "M9 2v4", key: "j1yeou" }]
];
const TableRowsSplit = createLucideIcon("table-rows-split", __iconNode$32);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$31 = [
  ["path", { d: "M12 3v18", key: "108xh3" }],
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9h18", key: "1pudct" }],
  ["path", { d: "M3 15h18", key: "5xshup" }]
];
const Table = createLucideIcon("table", __iconNode$31);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$30 = [
  ["rect", { width: "10", height: "14", x: "3", y: "8", rx: "2", key: "1vrsiq" }],
  ["path", { d: "M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4", key: "1j4zmg" }],
  ["path", { d: "M8 18h.01", key: "lrp35t" }]
];
const TabletSmartphone = createLucideIcon("tablet-smartphone", __iconNode$30);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2$ = [
  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
  ["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
];
const Tablet = createLucideIcon("tablet", __iconNode$2$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2_ = [
  ["circle", { cx: "7", cy: "7", r: "5", key: "x29byf" }],
  ["circle", { cx: "17", cy: "17", r: "5", key: "1op1d2" }],
  ["path", { d: "M12 17h10", key: "ls21zv" }],
  ["path", { d: "m3.46 10.54 7.08-7.08", key: "1rehiu" }]
];
const Tablets = createLucideIcon("tablets", __iconNode$2_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2Z = [
  [
    "path",
    {
      d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
      key: "vktsd0"
    }
  ],
  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
];
const Tag = createLucideIcon("tag", __iconNode$2Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2Y = [
  [
    "path",
    {
      d: "M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",
      key: "16rjxf"
    }
  ],
  [
    "path",
    { d: "M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193", key: "178nd4" }
  ],
  ["circle", { cx: "10.5", cy: "6.5", r: ".5", fill: "currentColor", key: "12ikhr" }]
];
const Tags = createLucideIcon("tags", __iconNode$2Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2X = [["path", { d: "M4 4v16", key: "6qkkli" }]];
const Tally1 = createLucideIcon("tally-1", __iconNode$2X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2W = [
  ["path", { d: "M4 4v16", key: "6qkkli" }],
  ["path", { d: "M9 4v16", key: "81ygyz" }]
];
const Tally2 = createLucideIcon("tally-2", __iconNode$2W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2V = [
  ["path", { d: "M4 4v16", key: "6qkkli" }],
  ["path", { d: "M9 4v16", key: "81ygyz" }],
  ["path", { d: "M14 4v16", key: "12vmem" }]
];
const Tally3 = createLucideIcon("tally-3", __iconNode$2V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2U = [
  ["path", { d: "M4 4v16", key: "6qkkli" }],
  ["path", { d: "M9 4v16", key: "81ygyz" }],
  ["path", { d: "M14 4v16", key: "12vmem" }],
  ["path", { d: "M19 4v16", key: "8ij5ei" }]
];
const Tally4 = createLucideIcon("tally-4", __iconNode$2U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2T = [
  ["path", { d: "M4 4v16", key: "6qkkli" }],
  ["path", { d: "M9 4v16", key: "81ygyz" }],
  ["path", { d: "M14 4v16", key: "12vmem" }],
  ["path", { d: "M19 4v16", key: "8ij5ei" }],
  ["path", { d: "M22 6 2 18", key: "h9moai" }]
];
const Tally5 = createLucideIcon("tally-5", __iconNode$2T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2S = [
  ["circle", { cx: "17", cy: "4", r: "2", key: "y5j2s2" }],
  ["path", { d: "M15.59 5.41 5.41 15.59", key: "l0vprr" }],
  ["circle", { cx: "4", cy: "17", r: "2", key: "9p4efm" }],
  ["path", { d: "M12 22s-4-9-1.5-11.5S22 12 22 12", key: "1twk4o" }]
];
const Tangent = createLucideIcon("tangent", __iconNode$2S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2R = [
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
  ["circle", { cx: "12", cy: "12", r: "6", key: "1vlfrh" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const Target = createLucideIcon("target", __iconNode$2R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2Q = [
  [
    "path",
    {
      d: "m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",
      key: "k4qptu"
    }
  ],
  ["path", { d: "m13.56 11.747 4.332-.924", key: "19l80z" }],
  ["path", { d: "m16 21-3.105-6.21", key: "7oh9d" }],
  [
    "path",
    {
      d: "M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",
      key: "m7xp4m"
    }
  ],
  ["path", { d: "m6.158 8.633 1.114 4.456", key: "74o979" }],
  ["path", { d: "m8 21 3.105-6.21", key: "1fvxut" }],
  ["circle", { cx: "12", cy: "13", r: "2", key: "1c1ljs" }]
];
const Telescope = createLucideIcon("telescope", __iconNode$2Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2P = [
  ["circle", { cx: "4", cy: "4", r: "2", key: "bt5ra8" }],
  ["path", { d: "m14 5 3-3 3 3", key: "1sorif" }],
  ["path", { d: "m14 10 3-3 3 3", key: "1jyi9h" }],
  ["path", { d: "M17 14V2", key: "8ymqnk" }],
  ["path", { d: "M17 14H7l-5 8h20Z", key: "13ar7p" }],
  ["path", { d: "M8 14v8", key: "1ghmqk" }],
  ["path", { d: "m9 14 5 8", key: "13pgi6" }]
];
const TentTree = createLucideIcon("tent-tree", __iconNode$2P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2O = [
  ["path", { d: "M3.5 21 14 3", key: "1szst5" }],
  ["path", { d: "M20.5 21 10 3", key: "1310c3" }],
  ["path", { d: "M15.5 21 12 15l-3.5 6", key: "1ddtfw" }],
  ["path", { d: "M2 21h20", key: "1nyx9w" }]
];
const Tent = createLucideIcon("tent", __iconNode$2O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2N = [
  [
    "path",
    { d: "M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3", key: "1ub6xw" }
  ],
  ["path", { d: "m16 2 6 6", key: "1gw87d" }],
  ["path", { d: "M12 16H4", key: "1cjfip" }]
];
const TestTubeDiagonal = createLucideIcon("test-tube-diagonal", __iconNode$2N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2M = [
  ["path", { d: "M12 19h8", key: "baeox8" }],
  ["path", { d: "m4 17 6-6-6-6", key: "1yngyt" }]
];
const Terminal = createLucideIcon("terminal", __iconNode$2M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2L = [
  ["path", { d: "M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2", key: "125lnx" }],
  ["path", { d: "M8.5 2h7", key: "csnxdl" }],
  ["path", { d: "M14.5 16h-5", key: "1ox875" }]
];
const TestTube = createLucideIcon("test-tube", __iconNode$2L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2K = [
  ["path", { d: "M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2", key: "1hjrqt" }],
  ["path", { d: "M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2", key: "16lc8n" }],
  ["path", { d: "M3 2h7", key: "7s29d5" }],
  ["path", { d: "M14 2h7", key: "7sicin" }],
  ["path", { d: "M9 16H4", key: "1bfye3" }],
  ["path", { d: "M20 16h-5", key: "ddnjpe" }]
];
const TestTubes = createLucideIcon("test-tubes", __iconNode$2K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2J = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M17 12H7", key: "16if0g" }],
  ["path", { d: "M19 19H5", key: "vjpgq2" }]
];
const TextAlignCenter = createLucideIcon("text-align-center", __iconNode$2J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2I = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M21 12H9", key: "dn1m92" }],
  ["path", { d: "M21 19H7", key: "4cu937" }]
];
const TextAlignEnd = createLucideIcon("text-align-end", __iconNode$2I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2H = [
  ["path", { d: "M3 5h18", key: "1u36vt" }],
  ["path", { d: "M3 12h18", key: "1i2n21" }],
  ["path", { d: "M3 19h18", key: "awlh7x" }]
];
const TextAlignJustify = createLucideIcon("text-align-justify", __iconNode$2H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2G = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M15 12H3", key: "6jk70r" }],
  ["path", { d: "M17 19H3", key: "z6ezky" }]
];
const TextAlignStart = createLucideIcon("text-align-start", __iconNode$2G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2F = [
  ["path", { d: "M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6", key: "1528k5" }],
  ["path", { d: "M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7", key: "13ksps" }],
  ["path", { d: "M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1", key: "1n9rhb" }],
  ["path", { d: "M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1", key: "1mj8rg" }],
  ["path", { d: "M9 6v12", key: "velyjx" }]
];
const TextCursorInput = createLucideIcon("text-cursor-input", __iconNode$2F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2E = [
  ["path", { d: "M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1", key: "uvaxm9" }],
  ["path", { d: "M7 22h1a4 4 0 0 0 4-4v-1", key: "11xy8d" }],
  ["path", { d: "M7 2h1a4 4 0 0 1 4 4v1", key: "1uw06m" }]
];
const TextCursor = createLucideIcon("text-cursor", __iconNode$2E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2D = [
  ["path", { d: "M15 5h6", key: "1pr8yx" }],
  ["path", { d: "M15 12h6", key: "upa0zy" }],
  ["path", { d: "M3 19h18", key: "awlh7x" }],
  ["path", { d: "m3 12 3.553-7.724a.5.5 0 0 1 .894 0L11 12", key: "6lvno8" }],
  ["path", { d: "M3.92 10h6.16", key: "1tl8ex" }]
];
const TextInitial = createLucideIcon("text-initial", __iconNode$2D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2C = [
  ["path", { d: "M17 5H3", key: "1cn7zz" }],
  ["path", { d: "M21 12H8", key: "scolzb" }],
  ["path", { d: "M21 19H8", key: "13qgcb" }],
  ["path", { d: "M3 12v7", key: "1ri8j3" }]
];
const TextQuote = createLucideIcon("text-quote", __iconNode$2C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2B = [
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
  ["path", { d: "M10 12H3", key: "1ulcyk" }],
  ["path", { d: "M10 19H3", key: "108z41" }],
  ["circle", { cx: "17", cy: "15", r: "3", key: "1upz2a" }],
  ["path", { d: "m21 19-1.9-1.9", key: "dwi7p8" }]
];
const TextSearch = createLucideIcon("text-search", __iconNode$2B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2A = [
  ["path", { d: "M14 21h1", key: "v9vybs" }],
  ["path", { d: "M14 3h1", key: "1ec4yj" }],
  ["path", { d: "M19 3a2 2 0 0 1 2 2", key: "18rm91" }],
  ["path", { d: "M21 14v1", key: "169vum" }],
  ["path", { d: "M21 19a2 2 0 0 1-2 2", key: "1j7049" }],
  ["path", { d: "M21 9v1", key: "mxsmne" }],
  ["path", { d: "M3 14v1", key: "vnatye" }],
  ["path", { d: "M3 9v1", key: "1r0deq" }],
  ["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
  ["path", { d: "M5 3a2 2 0 0 0-2 2", key: "y57alp" }],
  ["path", { d: "M7 12h10", key: "b7w52i" }],
  ["path", { d: "M7 16h6", key: "1vyc9m" }],
  ["path", { d: "M7 8h8", key: "1jbsf9" }],
  ["path", { d: "M9 21h1", key: "15o7lz" }],
  ["path", { d: "M9 3h1", key: "1yesri" }]
];
const TextSelect = createLucideIcon("text-select", __iconNode$2A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2z = [
  ["path", { d: "M2 10s3-3 3-8", key: "3xiif0" }],
  ["path", { d: "M22 10s-3-3-3-8", key: "ioaa5q" }],
  ["path", { d: "M10 2c0 4.4-3.6 8-8 8", key: "16fkpi" }],
  ["path", { d: "M14 2c0 4.4 3.6 8 8 8", key: "b9eulq" }],
  ["path", { d: "M2 10s2 2 2 5", key: "1au1lb" }],
  ["path", { d: "M22 10s-2 2-2 5", key: "qi2y5e" }],
  ["path", { d: "M8 15h8", key: "45n4r" }],
  ["path", { d: "M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1", key: "1vsc2m" }],
  ["path", { d: "M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1", key: "hrha4u" }]
];
const Theater = createLucideIcon("theater", __iconNode$2z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2y = [
  ["path", { d: "m16 16-3 3 3 3", key: "117b85" }],
  ["path", { d: "M3 12h14.5a1 1 0 0 1 0 7H13", key: "18xa6z" }],
  ["path", { d: "M3 19h6", key: "1ygdsz" }],
  ["path", { d: "M3 5h18", key: "1u36vt" }]
];
const TextWrap = createLucideIcon("text-wrap", __iconNode$2y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2x = [
  ["path", { d: "m10 20-1.25-2.5L6 18", key: "18frcb" }],
  ["path", { d: "M10 4 8.75 6.5 6 6", key: "7mghy3" }],
  ["path", { d: "M10.585 15H10", key: "4nqulp" }],
  ["path", { d: "M2 12h6.5L10 9", key: "kv9z4n" }],
  ["path", { d: "M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z", key: "yu0u2z" }],
  ["path", { d: "m4 10 1.5 2L4 14", key: "k9enpj" }],
  ["path", { d: "m7 21 3-6-1.5-3", key: "j8hb9u" }],
  ["path", { d: "m7 3 3 6h2", key: "1bbqgq" }]
];
const ThermometerSnowflake = createLucideIcon("thermometer-snowflake", __iconNode$2x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2w = [
  ["path", { d: "M12 9a4 4 0 0 0-2 7.5", key: "1jvsq6" }],
  ["path", { d: "M12 3v2", key: "1w22ol" }],
  ["path", { d: "m6.6 18.4-1.4 1.4", key: "w2yidj" }],
  ["path", { d: "M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z", key: "iof6y5" }],
  ["path", { d: "M4 13H2", key: "118le4" }],
  ["path", { d: "M6.34 7.34 4.93 5.93", key: "1brd51" }]
];
const ThermometerSun = createLucideIcon("thermometer-sun", __iconNode$2w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2v = [
  ["path", { d: "M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z", key: "17jzev" }]
];
const Thermometer = createLucideIcon("thermometer", __iconNode$2v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2u = [
  ["path", { d: "M17 14V2", key: "8ymqnk" }],
  [
    "path",
    {
      d: "M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",
      key: "m61m77"
    }
  ]
];
const ThumbsDown = createLucideIcon("thumbs-down", __iconNode$2u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2t = [
  ["path", { d: "M7 10v12", key: "1qc93n" }],
  [
    "path",
    {
      d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",
      key: "emmmcr"
    }
  ]
];
const ThumbsUp = createLucideIcon("thumbs-up", __iconNode$2t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2s = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "M9 12h6", key: "1c52cq" }]
];
const TicketMinus = createLucideIcon("ticket-minus", __iconNode$2s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2r = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
];
const TicketCheck = createLucideIcon("ticket-check", __iconNode$2r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2q = [
  [
    "path",
    {
      d: "M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "1l48ns"
    }
  ],
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
  ["path", { d: "M15 15h.01", key: "lqbp3k" }]
];
const TicketPercent = createLucideIcon("ticket-percent", __iconNode$2q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2p = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "M9 12h6", key: "1c52cq" }],
  ["path", { d: "M12 9v6", key: "199k2o" }]
];
const TicketPlus = createLucideIcon("ticket-plus", __iconNode$2p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2o = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "m9.5 14.5 5-5", key: "qviqfa" }]
];
const TicketSlash = createLucideIcon("ticket-slash", __iconNode$2o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2n = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "m9.5 14.5 5-5", key: "qviqfa" }],
  ["path", { d: "m9.5 9.5 5 5", key: "18nt4w" }]
];
const TicketX = createLucideIcon("ticket-x", __iconNode$2n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2m = [
  [
    "path",
    {
      d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",
      key: "qn84l0"
    }
  ],
  ["path", { d: "M13 5v2", key: "dyzc3o" }],
  ["path", { d: "M13 17v2", key: "1ont0d" }],
  ["path", { d: "M13 11v2", key: "1wjjxi" }]
];
const Ticket = createLucideIcon("ticket", __iconNode$2m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2l = [
  ["path", { d: "m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8", key: "12lg5p" }],
  ["path", { d: "M6 10V8", key: "1y41hn" }],
  ["path", { d: "M6 14v1", key: "cao2tf" }],
  ["path", { d: "M6 19v2", key: "1loha6" }],
  ["rect", { x: "2", y: "8", width: "20", height: "13", rx: "2", key: "p3bz5l" }]
];
const Tickets = createLucideIcon("tickets", __iconNode$2l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2k = [
  ["path", { d: "M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12", key: "16muxl" }],
  ["path", { d: "m12 13.5 3.75.5", key: "1i9qhk" }],
  ["path", { d: "m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8", key: "12lg5p" }],
  ["path", { d: "M6 10V8", key: "1y41hn" }],
  ["path", { d: "M6 14v1", key: "cao2tf" }],
  ["path", { d: "M6 19v2", key: "1loha6" }],
  ["rect", { x: "2", y: "8", width: "20", height: "13", rx: "2", key: "p3bz5l" }]
];
const TicketsPlane = createLucideIcon("tickets-plane", __iconNode$2k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2j = [
  ["path", { d: "M10 2h4", key: "n1abiw" }],
  ["path", { d: "M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7", key: "10he05" }],
  ["path", { d: "M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2", key: "15f7sh" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M12 12v-2", key: "fwoke6" }]
];
const TimerOff = createLucideIcon("timer-off", __iconNode$2j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2i = [
  ["path", { d: "M10 2h4", key: "n1abiw" }],
  ["path", { d: "M12 14v-4", key: "1evpnu" }],
  ["path", { d: "M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6", key: "1ts96g" }],
  ["path", { d: "M9 17H4v5", key: "8t5av" }]
];
const TimerReset = createLucideIcon("timer-reset", __iconNode$2i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2h = [
  ["line", { x1: "10", x2: "14", y1: "2", y2: "2", key: "14vaq8" }],
  ["line", { x1: "12", x2: "15", y1: "14", y2: "11", key: "17fdiu" }],
  ["circle", { cx: "12", cy: "14", r: "8", key: "1e1u0o" }]
];
const Timer = createLucideIcon("timer", __iconNode$2h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2g = [
  ["circle", { cx: "9", cy: "12", r: "3", key: "u3jwor" }],
  ["rect", { width: "20", height: "14", x: "2", y: "5", rx: "7", key: "g7kal2" }]
];
const ToggleLeft = createLucideIcon("toggle-left", __iconNode$2g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2f = [
  ["circle", { cx: "15", cy: "12", r: "3", key: "1afu0r" }],
  ["rect", { width: "20", height: "14", x: "2", y: "5", rx: "7", key: "g7kal2" }]
];
const ToggleRight = createLucideIcon("toggle-right", __iconNode$2f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2e = [
  [
    "path",
    {
      d: "M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18",
      key: "kc4kqr"
    }
  ],
  ["path", { d: "M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8", key: "1tqs57" }]
];
const Toilet = createLucideIcon("toilet", __iconNode$2e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2d = [
  ["path", { d: "M10 15h4", key: "192ueg" }],
  [
    "path",
    {
      d: "m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",
      key: "xbnumr"
    }
  ],
  [
    "path",
    {
      d: "m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",
      key: "eaw7gc"
    }
  ],
  [
    "path",
    {
      d: "M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",
      key: "1vaooh"
    }
  ]
];
const ToolCase = createLucideIcon("tool-case", __iconNode$2d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2c = [
  ["path", { d: "M21 4H3", key: "1hwok0" }],
  ["path", { d: "M18 8H6", key: "41n648" }],
  ["path", { d: "M19 12H9", key: "1g4lpz" }],
  ["path", { d: "M16 16h-6", key: "1j5d54" }],
  ["path", { d: "M11 20H9", key: "39obr8" }]
];
const Tornado = createLucideIcon("tornado", __iconNode$2c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2b = [
  ["ellipse", { cx: "12", cy: "11", rx: "3", ry: "2", key: "1b2qxu" }],
  ["ellipse", { cx: "12", cy: "12.5", rx: "10", ry: "8.5", key: "h8emeu" }]
];
const Torus = createLucideIcon("torus", __iconNode$2b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2a = [
  ["path", { d: "M12 20v-6", key: "1rm09r" }],
  ["path", { d: "M19.656 14H22", key: "170xzr" }],
  ["path", { d: "M2 14h12", key: "d8icqz" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2", key: "s23sx2" }],
  ["path", { d: "M9.656 4H20a2 2 0 0 1 2 2v10.344", key: "ovjcvl" }]
];
const TouchpadOff = createLucideIcon("touchpad-off", __iconNode$2a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$29 = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M2 14h20", key: "myj16y" }],
  ["path", { d: "M12 20v-6", key: "1rm09r" }]
];
const Touchpad = createLucideIcon("touchpad", __iconNode$29);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$28 = [
  [
    "path",
    { d: "M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z", key: "1pledb" }
  ],
  ["path", { d: "M8 13v9", key: "hmv0ci" }],
  ["path", { d: "M16 22v-9", key: "ylnf1u" }],
  ["path", { d: "m9 6 1 7", key: "dpdgam" }],
  ["path", { d: "m15 6-1 7", key: "ls7zgu" }],
  ["path", { d: "M12 6V2", key: "1pj48d" }],
  ["path", { d: "M13 2h-2", key: "mj6ths" }]
];
const TowerControl = createLucideIcon("tower-control", __iconNode$28);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$27 = [
  ["rect", { width: "18", height: "12", x: "3", y: "8", rx: "1", key: "158fvp" }],
  ["path", { d: "M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3", key: "s0042v" }],
  ["path", { d: "M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3", key: "9wmeh2" }]
];
const ToyBrick = createLucideIcon("toy-brick", __iconNode$27);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$26 = [
  ["path", { d: "m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20", key: "she1j9" }],
  ["path", { d: "M16 18h-5", key: "bq60fd" }],
  ["path", { d: "M18 5a1 1 0 0 0-1 1v5.573", key: "1kv8ia" }],
  ["path", { d: "M3 4h8.129a1 1 0 0 1 .99.863L13 11.246", key: "1q1ert" }],
  ["path", { d: "M4 11V4", key: "9ft8pt" }],
  ["path", { d: "M7 15h.01", key: "k5ht0j" }],
  ["path", { d: "M8 10.1V4", key: "1jgyzo" }],
  ["circle", { cx: "18", cy: "18", r: "2", key: "1emm8v" }],
  ["circle", { cx: "7", cy: "15", r: "5", key: "ddtuc" }]
];
const Tractor = createLucideIcon("tractor", __iconNode$26);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$25 = [
  ["path", { d: "M2 22V12a10 10 0 1 1 20 0v10", key: "o0fyp0" }],
  ["path", { d: "M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8", key: "m8q3n9" }],
  ["path", { d: "M10 15h.01", key: "44in9x" }],
  ["path", { d: "M14 15h.01", key: "5mohn5" }],
  ["path", { d: "M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z", key: "hckbmu" }],
  ["path", { d: "m9 19-2 3", key: "iij7hm" }],
  ["path", { d: "m15 19 2 3", key: "npx8sa" }]
];
const TrainFrontTunnel = createLucideIcon("train-front-tunnel", __iconNode$25);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$24 = [
  ["path", { d: "M16.05 10.966a5 2.5 0 0 1-8.1 0", key: "m5jpwb" }],
  [
    "path",
    {
      d: "m16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04",
      key: "rbg3g8"
    }
  ],
  ["path", { d: "M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z", key: "vap8c8" }],
  ["path", { d: "M9.194 6.57a5 2.5 0 0 0 5.61 0", key: "15hn5c" }]
];
const TrafficCone = createLucideIcon("traffic-cone", __iconNode$24);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$23 = [
  ["path", { d: "M8 3.1V7a4 4 0 0 0 8 0V3.1", key: "1v71zp" }],
  ["path", { d: "m9 15-1-1", key: "1yrq24" }],
  ["path", { d: "m15 15 1-1", key: "1t0d6s" }],
  ["path", { d: "M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z", key: "1p0hjs" }],
  ["path", { d: "m8 19-2 3", key: "13i0xs" }],
  ["path", { d: "m16 19 2 3", key: "xo31yx" }]
];
const TrainFront = createLucideIcon("train-front", __iconNode$23);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$22 = [
  ["path", { d: "M2 17 17 2", key: "18b09t" }],
  ["path", { d: "m2 14 8 8", key: "1gv9hu" }],
  ["path", { d: "m5 11 8 8", key: "189pqp" }],
  ["path", { d: "m8 8 8 8", key: "1imecy" }],
  ["path", { d: "m11 5 8 8", key: "ummqn6" }],
  ["path", { d: "m14 2 8 8", key: "1vk7dn" }],
  ["path", { d: "M7 22 22 7", key: "15mb1i" }]
];
const TrainTrack = createLucideIcon("train-track", __iconNode$22);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$21 = [
  ["path", { d: "M12 16v6", key: "c8a4gj" }],
  ["path", { d: "M14 20h-4", key: "m8m19d" }],
  ["path", { d: "M18 2h4v4", key: "1341mj" }],
  ["path", { d: "m2 2 7.17 7.17", key: "13q8l2" }],
  ["path", { d: "M2 5.355V2h3.357", key: "18136r" }],
  ["path", { d: "m22 2-7.17 7.17", key: "1epvy4" }],
  ["path", { d: "M8 5 5 8", key: "mgbjhz" }],
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }]
];
const Transgender = createLucideIcon("transgender", __iconNode$21);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$20 = [
  ["rect", { width: "16", height: "16", x: "4", y: "3", rx: "2", key: "1wxw4b" }],
  ["path", { d: "M4 11h16", key: "mpoxn0" }],
  ["path", { d: "M12 3v8", key: "1h2ygw" }],
  ["path", { d: "m8 19-2 3", key: "13i0xs" }],
  ["path", { d: "m18 22-2-3", key: "1p0ohu" }],
  ["path", { d: "M8 15h.01", key: "a7atzg" }],
  ["path", { d: "M16 15h.01", key: "rnfrdf" }]
];
const TramFront = createLucideIcon("tram-front", __iconNode$20);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1$ = [
  ["path", { d: "M10 11v6", key: "nco0om" }],
  ["path", { d: "M14 11v6", key: "outv1u" }],
  ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
  ["path", { d: "M3 6h18", key: "d0wm0j" }],
  ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
];
const Trash2 = createLucideIcon("trash-2", __iconNode$1$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1_ = [
  ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
  ["path", { d: "M3 6h18", key: "d0wm0j" }],
  ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
];
const Trash = createLucideIcon("trash", __iconNode$1_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1Z = [
  [
    "path",
    {
      d: "M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z",
      key: "oadzkq"
    }
  ],
  ["path", { d: "M12 19v3", key: "npa21l" }]
];
const TreeDeciduous = createLucideIcon("tree-deciduous", __iconNode$1Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1Y = [
  [
    "path",
    {
      d: "m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z",
      key: "cpyugq"
    }
  ],
  ["path", { d: "M12 22v-3", key: "kmzjlo" }]
];
const TreePine = createLucideIcon("tree-pine", __iconNode$1Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1X = [
  ["path", { d: "M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4", key: "foxbe7" }],
  [
    "path",
    { d: "M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3", key: "18arnh" }
  ],
  [
    "path",
    {
      d: "M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35",
      key: "ywahnh"
    }
  ],
  ["path", { d: "M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14", key: "ft0feo" }]
];
const TreePalm = createLucideIcon("tree-palm", __iconNode$1X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1W = [
  ["path", { d: "M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z", key: "1l6gj6" }],
  ["path", { d: "M7 16v6", key: "1a82de" }],
  ["path", { d: "M13 19v3", key: "13sx9i" }],
  [
    "path",
    {
      d: "M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5",
      key: "1sj9kv"
    }
  ]
];
const Trees = createLucideIcon("trees", __iconNode$1W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1V = [
  ["path", { d: "M16 17h6v-6", key: "t6n2it" }],
  ["path", { d: "m22 17-8.5-8.5-5 5L2 7", key: "x473p" }]
];
const TrendingDown = createLucideIcon("trending-down", __iconNode$1V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1U = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["rect", { width: "3", height: "9", x: "7", y: "7", key: "14n3xi" }],
  ["rect", { width: "3", height: "5", x: "14", y: "7", key: "s4azjd" }]
];
const Trello = createLucideIcon("trello", __iconNode$1U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1T = [
  ["path", { d: "M14.828 14.828 21 21", key: "ar5fw7" }],
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
  ["path", { d: "m21 3-9 9-4-4-6 6", key: "1h02xo" }],
  ["path", { d: "M21 8V3h-5", key: "1qoq8a" }]
];
const TrendingUpDown = createLucideIcon("trending-up-down", __iconNode$1T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1S = [
  ["path", { d: "M16 7h6v6", key: "box55l" }],
  ["path", { d: "m22 7-8.5 8.5-5-5L2 17", key: "1t1m79" }]
];
const TrendingUp = createLucideIcon("trending-up", __iconNode$1S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1R = [
  [
    "path",
    {
      d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
      key: "wmoenq"
    }
  ],
  ["path", { d: "M12 9v4", key: "juzpu7" }],
  ["path", { d: "M12 17h.01", key: "p32p05" }]
];
const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$1R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1Q = [
  ["path", { d: "M10.17 4.193a2 2 0 0 1 3.666.013", key: "pltmmw" }],
  ["path", { d: "M14 21h2", key: "v4qezv" }],
  ["path", { d: "m15.874 7.743 1 1.732", key: "10m0iw" }],
  ["path", { d: "m18.849 12.952 1 1.732", key: "zadnam" }],
  ["path", { d: "M21.824 18.18a2 2 0 0 1-1.835 2.824", key: "fvwuk4" }],
  ["path", { d: "M4.024 21a2 2 0 0 1-1.839-2.839", key: "1e1kah" }],
  ["path", { d: "m5.136 12.952-1 1.732", key: "1u4ldi" }],
  ["path", { d: "M8 21h2", key: "i9zjee" }],
  ["path", { d: "m8.102 7.743-1 1.732", key: "1zzo4u" }]
];
const TriangleDashed = createLucideIcon("triangle-dashed", __iconNode$1Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1P = [
  [
    "path",
    {
      d: "M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z",
      key: "183wce"
    }
  ]
];
const TriangleRight = createLucideIcon("triangle-right", __iconNode$1P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1O = [
  [
    "path",
    { d: "M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z", key: "14u9p9" }
  ]
];
const Triangle = createLucideIcon("triangle", __iconNode$1O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1N = [
  ["path", { d: "M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978", key: "1n3hpd" }],
  ["path", { d: "M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978", key: "rfe1zi" }],
  ["path", { d: "M18 9h1.5a1 1 0 0 0 0-5H18", key: "7xy6bh" }],
  ["path", { d: "M4 22h16", key: "57wxv0" }],
  ["path", { d: "M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z", key: "1mhfuq" }],
  ["path", { d: "M6 9H4.5a1 1 0 0 1 0-5H6", key: "tex48p" }]
];
const Trophy = createLucideIcon("trophy", __iconNode$1N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1M = [
  ["path", { d: "M14 19V7a2 2 0 0 0-2-2H9", key: "15peso" }],
  ["path", { d: "M15 19H9", key: "18q6dt" }],
  [
    "path",
    {
      d: "M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14",
      key: "1dkp3j"
    }
  ],
  ["path", { d: "M2 13v5a1 1 0 0 0 1 1h2", key: "pkmmzz" }],
  [
    "path",
    { d: "M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02", key: "1n26pd" }
  ],
  ["circle", { cx: "17", cy: "19", r: "2", key: "1nxcgd" }],
  ["circle", { cx: "7", cy: "19", r: "2", key: "gzo7y7" }]
];
const TruckElectric = createLucideIcon("truck-electric", __iconNode$1M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1L = [
  ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
  ["path", { d: "M15 18H9", key: "1lyqi6" }],
  [
    "path",
    {
      d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
      key: "lysw3i"
    }
  ],
  ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
  ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
];
const Truck = createLucideIcon("truck", __iconNode$1L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1K = [
  ["path", { d: "M15 4 5 9", key: "14bkc9" }],
  ["path", { d: "m15 8.5-10 5", key: "1grtsx" }],
  ["path", { d: "M18 12a9 9 0 0 1-9 9V3", key: "1sst7f" }]
];
const TurkishLira = createLucideIcon("turkish-lira", __iconNode$1K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1J = [
  [
    "path",
    {
      d: "m12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z",
      key: "1lbbv7"
    }
  ],
  ["path", { d: "M4.82 7.9 8 10", key: "m9wose" }],
  ["path", { d: "M15.18 7.9 12 10", key: "p8dp2u" }],
  ["path", { d: "M16.93 10H20a2 2 0 0 1 0 4H2", key: "12nsm7" }]
];
const Turtle = createLucideIcon("turtle", __iconNode$1J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1I = [
  ["path", { d: "M10 12.01h.01", key: "7rp0yl" }],
  ["path", { d: "M18 8v4a8 8 0 0 1-1.07 4", key: "1st48v" }],
  ["circle", { cx: "10", cy: "12", r: "4", key: "19levz" }],
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
];
const Turntable = createLucideIcon("turntable", __iconNode$1I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1H = [
  [
    "path",
    {
      d: "M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",
      key: "vbtd3f"
    }
  ],
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }]
];
const TvMinimalPlay = createLucideIcon("tv-minimal-play", __iconNode$1H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1G = [
  ["path", { d: "M7 21h10", key: "1b0cd5" }],
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }]
];
const TvMinimal = createLucideIcon("tv-minimal", __iconNode$1G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1F = [
  ["path", { d: "m17 2-5 5-5-5", key: "16satq" }],
  ["rect", { width: "20", height: "15", x: "2", y: "7", rx: "2", key: "1e6viu" }]
];
const Tv = createLucideIcon("tv", __iconNode$1F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1E = [
  ["path", { d: "M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7", key: "c0yzno" }]
];
const Twitch = createLucideIcon("twitch", __iconNode$1E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1D = [
  [
    "path",
    {
      d: "M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",
      key: "pff0z6"
    }
  ]
];
const Twitter = createLucideIcon("twitter", __iconNode$1D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1C = [
  [
    "path",
    {
      d: "M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z",
      key: "1reda3"
    }
  ]
];
const TypeOutline = createLucideIcon("type-outline", __iconNode$1C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1B = [
  ["path", { d: "M12 4v16", key: "1654pz" }],
  ["path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2", key: "e0r10z" }],
  ["path", { d: "M9 20h6", key: "s66wpe" }]
];
const Type = createLucideIcon("type", __iconNode$1B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1A = [
  ["path", { d: "M12 13v7a2 2 0 0 0 4 0", key: "rpgb42" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  [
    "path",
    { d: "M18.656 13h2.336a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-12.07-7.51", key: "yawknk" }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  ["path", { d: "M5.961 5.957a10.28 10.28 0 0 0-3.922 5.769A1 1 0 0 0 3 13h10", key: "5sfalc" }]
];
const UmbrellaOff = createLucideIcon("umbrella-off", __iconNode$1A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1z = [
  ["path", { d: "M12 13v7a2 2 0 0 0 4 0", key: "rpgb42" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  [
    "path",
    {
      d: "M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z",
      key: "124nyo"
    }
  ]
];
const Umbrella = createLucideIcon("umbrella", __iconNode$1z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1y = [
  ["path", { d: "M6 4v6a6 6 0 0 0 12 0V4", key: "9kb039" }],
  ["line", { x1: "4", x2: "20", y1: "20", y2: "20", key: "nun2al" }]
];
const Underline = createLucideIcon("underline", __iconNode$1y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1x = [
  ["path", { d: "M21 17a9 9 0 0 0-15-6.7L3 13", key: "8mp6z9" }],
  ["path", { d: "M3 7v6h6", key: "1v2h90" }],
  ["circle", { cx: "12", cy: "17", r: "1", key: "1ixnty" }]
];
const UndoDot = createLucideIcon("undo-dot", __iconNode$1x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1w = [
  ["path", { d: "M3 7v6h6", key: "1v2h90" }],
  ["path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13", key: "1r6uu6" }]
];
const Undo = createLucideIcon("undo", __iconNode$1w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1v = [
  ["path", { d: "M9 14 4 9l5-5", key: "102s5s" }],
  ["path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11", key: "f3b9sd" }]
];
const Undo2 = createLucideIcon("undo-2", __iconNode$1v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1u = [
  ["path", { d: "M16 12h6", key: "15xry1" }],
  ["path", { d: "M8 12H2", key: "1jqql6" }],
  ["path", { d: "M12 2v2", key: "tus03m" }],
  ["path", { d: "M12 8v2", key: "1woqiv" }],
  ["path", { d: "M12 14v2", key: "8jcxud" }],
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
  ["path", { d: "m19 15 3-3-3-3", key: "wjy7rq" }],
  ["path", { d: "m5 9-3 3 3 3", key: "j64kie" }]
];
const UnfoldHorizontal = createLucideIcon("unfold-horizontal", __iconNode$1u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1t = [
  ["path", { d: "M12 22v-6", key: "6o8u61" }],
  ["path", { d: "M12 8V2", key: "1wkif3" }],
  ["path", { d: "M4 12H2", key: "rhcxmi" }],
  ["path", { d: "M10 12H8", key: "s88cx1" }],
  ["path", { d: "M16 12h-2", key: "10asgb" }],
  ["path", { d: "M22 12h-2", key: "14jgyd" }],
  ["path", { d: "m15 19-3 3-3-3", key: "11eu04" }],
  ["path", { d: "m15 5-3-3-3 3", key: "itvq4r" }]
];
const UnfoldVertical = createLucideIcon("unfold-vertical", __iconNode$1t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1s = [
  ["rect", { width: "8", height: "6", x: "5", y: "4", rx: "1", key: "nzclkv" }],
  ["rect", { width: "8", height: "6", x: "11", y: "14", rx: "1", key: "4tytwb" }]
];
const Ungroup = createLucideIcon("ungroup", __iconNode$1s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1r = [
  ["path", { d: "M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2", key: "1re2ne" }]
];
const Unlink2 = createLucideIcon("unlink-2", __iconNode$1r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1q = [
  ["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
  ["path", { d: "M18 12h.01", key: "yjnet6" }],
  ["path", { d: "M18 16h.01", key: "plv8zi" }],
  [
    "path",
    {
      d: "M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z",
      key: "1ogmi3"
    }
  ],
  ["path", { d: "M6 12h.01", key: "c2rlol" }],
  ["path", { d: "M6 16h.01", key: "1pmjb7" }],
  ["circle", { cx: "12", cy: "10", r: "2", key: "1yojzk" }]
];
const University = createLucideIcon("university", __iconNode$1q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1p = [
  [
    "path",
    {
      d: "m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",
      key: "yqzxt4"
    }
  ],
  [
    "path",
    {
      d: "m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",
      key: "4qinb0"
    }
  ],
  ["line", { x1: "8", x2: "8", y1: "2", y2: "5", key: "1041cp" }],
  ["line", { x1: "2", x2: "5", y1: "8", y2: "8", key: "14m1p5" }],
  ["line", { x1: "16", x2: "16", y1: "19", y2: "22", key: "rzdirn" }],
  ["line", { x1: "19", x2: "22", y1: "16", y2: "16", key: "ox905f" }]
];
const Unlink = createLucideIcon("unlink", __iconNode$1p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1o = [
  ["path", { d: "m19 5 3-3", key: "yk6iyv" }],
  ["path", { d: "m2 22 3-3", key: "19mgm9" }],
  [
    "path",
    { d: "M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z", key: "goz73y" }
  ],
  ["path", { d: "M7.5 13.5 10 11", key: "7xgeeb" }],
  ["path", { d: "M10.5 16.5 13 14", key: "10btkg" }],
  [
    "path",
    { d: "m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z", key: "1snsnr" }
  ]
];
const Unplug = createLucideIcon("unplug", __iconNode$1o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1n = [
  ["path", { d: "M12 3v12", key: "1x0j5s" }],
  ["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
];
const Upload = createLucideIcon("upload", __iconNode$1n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1m = [
  ["circle", { cx: "10", cy: "7", r: "1", key: "dypaad" }],
  ["circle", { cx: "4", cy: "20", r: "1", key: "22iqad" }],
  ["path", { d: "M4.7 19.3 19 5", key: "1enqfc" }],
  ["path", { d: "m21 3-3 1 2 2Z", key: "d3ov82" }],
  ["path", { d: "M9.26 7.68 5 12l2 5", key: "1esawj" }],
  ["path", { d: "m10 14 5 2 3.5-3.5", key: "v8oal5" }],
  ["path", { d: "m18 12 1-1 1 1-1 1Z", key: "1bh22v" }]
];
const Usb = createLucideIcon("usb", __iconNode$1m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1l = [
  ["path", { d: "m16 11 2 2 4-4", key: "9rsbq5" }],
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
];
const UserCheck = createLucideIcon("user-check", __iconNode$1l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1k = [
  ["path", { d: "M10 15H6a4 4 0 0 0-4 4v2", key: "1nfge6" }],
  ["path", { d: "m14.305 16.53.923-.382", key: "1itpsq" }],
  ["path", { d: "m15.228 13.852-.923-.383", key: "eplpkm" }],
  ["path", { d: "m16.852 12.228-.383-.923", key: "13v3q0" }],
  ["path", { d: "m16.852 17.772-.383.924", key: "1i8mnm" }],
  ["path", { d: "m19.148 12.228.383-.923", key: "1q8j1v" }],
  ["path", { d: "m19.53 18.696-.382-.924", key: "vk1qj3" }],
  ["path", { d: "m20.772 13.852.924-.383", key: "n880s0" }],
  ["path", { d: "m20.772 16.148.924.383", key: "1g6xey" }],
  ["circle", { cx: "18", cy: "15", r: "3", key: "gjjjvw" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
];
const UserCog = createLucideIcon("user-cog", __iconNode$1k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1j = [
  ["circle", { cx: "10", cy: "7", r: "4", key: "e45bow" }],
  ["path", { d: "M10.3 15H7a4 4 0 0 0-4 4v2", key: "3bnktk" }],
  ["path", { d: "M15 15.5V14a2 2 0 0 1 4 0v1.5", key: "12ym5i" }],
  ["rect", { width: "8", height: "5", x: "13", y: "16", rx: ".899", key: "4p176n" }]
];
const UserLock = createLucideIcon("user-lock", __iconNode$1j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1i = [
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
  ["line", { x1: "22", x2: "16", y1: "11", y2: "11", key: "1shjgl" }]
];
const UserMinus = createLucideIcon("user-minus", __iconNode$1i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1h = [
  ["path", { d: "M11.5 15H7a4 4 0 0 0-4 4v2", key: "15lzij" }],
  [
    "path",
    {
      d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1817ys"
    }
  ],
  ["circle", { cx: "10", cy: "7", r: "4", key: "e45bow" }]
];
const UserPen = createLucideIcon("user-pen", __iconNode$1h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1g = [
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
  ["line", { x1: "19", x2: "19", y1: "8", y2: "14", key: "1bvyxn" }],
  ["line", { x1: "22", x2: "16", y1: "11", y2: "11", key: "1shjgl" }]
];
const UserPlus = createLucideIcon("user-plus", __iconNode$1g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1f = [
  ["path", { d: "M2 21a8 8 0 0 1 13.292-6", key: "bjp14o" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "m16 19 2 2 4-4", key: "1b14m6" }]
];
const UserRoundCheck = createLucideIcon("user-round-check", __iconNode$1f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1e = [
  ["path", { d: "m14.305 19.53.923-.382", key: "3m78fa" }],
  ["path", { d: "m15.228 16.852-.923-.383", key: "npixar" }],
  ["path", { d: "m16.852 15.228-.383-.923", key: "5xggr7" }],
  ["path", { d: "m16.852 20.772-.383.924", key: "dpfhf9" }],
  ["path", { d: "m19.148 15.228.383-.923", key: "1reyyz" }],
  ["path", { d: "m19.53 21.696-.382-.924", key: "1goivc" }],
  ["path", { d: "M2 21a8 8 0 0 1 10.434-7.62", key: "1yezr2" }],
  ["path", { d: "m20.772 16.852.924-.383", key: "htqkph" }],
  ["path", { d: "m20.772 19.148.924.383", key: "9w9pjp" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const UserRoundCog = createLucideIcon("user-round-cog", __iconNode$1e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1d = [
  ["path", { d: "M2 21a8 8 0 0 1 13.292-6", key: "bjp14o" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "M22 19h-6", key: "vcuq98" }]
];
const UserRoundMinus = createLucideIcon("user-round-minus", __iconNode$1d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1c = [
  ["path", { d: "M2 21a8 8 0 0 1 10.821-7.487", key: "1c8h7z" }],
  [
    "path",
    {
      d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1817ys"
    }
  ],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }]
];
const UserRoundPen = createLucideIcon("user-round-pen", __iconNode$1c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1b = [
  ["path", { d: "M2 21a8 8 0 0 1 13.292-6", key: "bjp14o" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "M19 16v6", key: "tddt3s" }],
  ["path", { d: "M22 19h-6", key: "vcuq98" }]
];
const UserRoundPlus = createLucideIcon("user-round-plus", __iconNode$1b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1a = [
  ["path", { d: "M2 21a8 8 0 0 1 11.873-7", key: "74fkxq" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "m17 17 5 5", key: "p7ous7" }],
  ["path", { d: "m22 17-5 5", key: "gqnmv0" }]
];
const UserRoundX = createLucideIcon("user-round-x", __iconNode$1a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$19 = [
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "M2 21a8 8 0 0 1 10.434-7.62", key: "1yezr2" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
  ["path", { d: "m22 22-1.9-1.9", key: "1e5ubv" }]
];
const UserRoundSearch = createLucideIcon("user-round-search", __iconNode$19);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$18 = [
  ["circle", { cx: "12", cy: "8", r: "5", key: "1hypcn" }],
  ["path", { d: "M20 21a8 8 0 0 0-16 0", key: "rfgkzh" }]
];
const UserRound = createLucideIcon("user-round", __iconNode$18);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$17 = [
  ["circle", { cx: "10", cy: "7", r: "4", key: "e45bow" }],
  ["path", { d: "M10.3 15H7a4 4 0 0 0-4 4v2", key: "3bnktk" }],
  ["circle", { cx: "17", cy: "17", r: "3", key: "18b49y" }],
  ["path", { d: "m21 21-1.9-1.9", key: "1g2n9r" }]
];
const UserSearch = createLucideIcon("user-search", __iconNode$17);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$16 = [
  [
    "path",
    {
      d: "M16.051 12.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z",
      key: "1m8t9f"
    }
  ],
  ["path", { d: "M8 15H7a4 4 0 0 0-4 4v2", key: "l9tmp8" }],
  ["circle", { cx: "10", cy: "7", r: "4", key: "e45bow" }]
];
const UserStar = createLucideIcon("user-star", __iconNode$16);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$15 = [
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
  ["line", { x1: "17", x2: "22", y1: "8", y2: "13", key: "3nzzx3" }],
  ["line", { x1: "22", x2: "17", y1: "8", y2: "13", key: "1swrse" }]
];
const UserX = createLucideIcon("user-x", __iconNode$15);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$14 = [
  ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
  ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
];
const User = createLucideIcon("user", __iconNode$14);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$13 = [
  ["path", { d: "M18 21a8 8 0 0 0-16 0", key: "3ypg7q" }],
  ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }],
  ["path", { d: "M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3", key: "10s06x" }]
];
const UsersRound = createLucideIcon("users-round", __iconNode$13);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$12 = [
  ["path", { d: "m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8", key: "n7qcjb" }],
  [
    "path",
    { d: "M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7", key: "d0u48b" }
  ],
  ["path", { d: "m2.1 21.8 6.4-6.3", key: "yn04lh" }],
  ["path", { d: "m19 5-7 7", key: "194lzd" }]
];
const UtensilsCrossed = createLucideIcon("utensils-crossed", __iconNode$12);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$11 = [
  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
  ["path", { d: "M16 3.128a4 4 0 0 1 0 7.744", key: "16gr8j" }],
  ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }]
];
const Users = createLucideIcon("users", __iconNode$11);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$10 = [
  ["path", { d: "M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2", key: "cjf0a3" }],
  ["path", { d: "M7 2v20", key: "1473qp" }],
  ["path", { d: "M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7", key: "j28e5" }]
];
const Utensils = createLucideIcon("utensils", __iconNode$10);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$$ = [
  ["path", { d: "M12 2v20", key: "t6zp3m" }],
  ["path", { d: "M2 5h20", key: "1fs1ex" }],
  ["path", { d: "M3 3v2", key: "9imdir" }],
  ["path", { d: "M7 3v2", key: "n0os7" }],
  ["path", { d: "M17 3v2", key: "1l2re6" }],
  ["path", { d: "M21 3v2", key: "1duuac" }],
  ["path", { d: "m19 5-7 7-7-7", key: "133zxf" }]
];
const UtilityPole = createLucideIcon("utility-pole", __iconNode$$);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$_ = [
  ["path", { d: "M8 21s-4-3-4-9 4-9 4-9", key: "uto9ud" }],
  ["path", { d: "M16 3s4 3 4 9-4 9-4 9", key: "4w2vsq" }],
  ["line", { x1: "15", x2: "9", y1: "9", y2: "15", key: "f7djnv" }],
  ["line", { x1: "9", x2: "15", y1: "9", y2: "15", key: "1shsy8" }]
];
const Variable = createLucideIcon("variable", __iconNode$_);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$Z = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }],
  ["path", { d: "m7.9 7.9 2.7 2.7", key: "hpeyl3" }],
  ["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }],
  ["path", { d: "m13.4 10.6 2.7-2.7", key: "264c1n" }],
  ["circle", { cx: "7.5", cy: "16.5", r: ".5", fill: "currentColor", key: "nkw3mc" }],
  ["path", { d: "m7.9 16.1 2.7-2.7", key: "p81g5e" }],
  ["circle", { cx: "16.5", cy: "16.5", r: ".5", fill: "currentColor", key: "fubopw" }],
  ["path", { d: "m13.4 13.4 2.7 2.7", key: "abhel3" }],
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
];
const Vault = createLucideIcon("vault", __iconNode$Z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$Y = [
  ["path", { d: "M19.5 7a24 24 0 0 1 0 10", key: "8n60xe" }],
  ["path", { d: "M4.5 7a24 24 0 0 0 0 10", key: "2lmadr" }],
  ["path", { d: "M7 19.5a24 24 0 0 0 10 0", key: "1q94o2" }],
  ["path", { d: "M7 4.5a24 24 0 0 1 10 0", key: "2z8ypa" }],
  ["rect", { x: "17", y: "17", width: "5", height: "5", rx: "1", key: "1ac74s" }],
  ["rect", { x: "17", y: "2", width: "5", height: "5", rx: "1", key: "1e7h5j" }],
  ["rect", { x: "2", y: "17", width: "5", height: "5", rx: "1", key: "1t4eah" }],
  ["rect", { x: "2", y: "2", width: "5", height: "5", rx: "1", key: "940dhs" }]
];
const VectorSquare = createLucideIcon("vector-square", __iconNode$Y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$X = [
  ["path", { d: "M16 8q6 0 6-6-6 0-6 6", key: "qsyyc4" }],
  ["path", { d: "M17.41 3.59a10 10 0 1 0 3 3", key: "41m9h7" }],
  ["path", { d: "M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14", key: "qiv7li" }]
];
const Vegan = createLucideIcon("vegan", __iconNode$X);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$W = [
  ["path", { d: "M18 11c-1.5 0-2.5.5-3 2", key: "1fod00" }],
  [
    "path",
    {
      d: "M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z",
      key: "d70hit"
    }
  ],
  ["path", { d: "M6 11c1.5 0 2.5.5 3 2", key: "136fht" }]
];
const VenetianMask = createLucideIcon("venetian-mask", __iconNode$W);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$V = [
  ["path", { d: "M10 20h4", key: "ni2waw" }],
  ["path", { d: "M12 16v6", key: "c8a4gj" }],
  ["path", { d: "M17 2h4v4", key: "vhe59" }],
  ["path", { d: "m21 2-5.46 5.46", key: "19kypf" }],
  ["circle", { cx: "12", cy: "11", r: "5", key: "16gxyc" }]
];
const VenusAndMars = createLucideIcon("venus-and-mars", __iconNode$V);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$U = [
  ["path", { d: "M12 15v7", key: "t2xh3l" }],
  ["path", { d: "M9 19h6", key: "456am0" }],
  ["circle", { cx: "12", cy: "9", r: "6", key: "1nw4tq" }]
];
const Venus = createLucideIcon("venus", __iconNode$U);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$T = [
  ["path", { d: "m2 8 2 2-2 2 2 2-2 2", key: "sv1b1" }],
  ["path", { d: "m22 8-2 2 2 2-2 2 2 2", key: "101i4y" }],
  ["path", { d: "M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2", key: "1hbad5" }],
  ["path", { d: "M16 10.34V6c0-.55-.45-1-1-1h-4.34", key: "1x5tf0" }],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const VibrateOff = createLucideIcon("vibrate-off", __iconNode$T);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$S = [
  ["path", { d: "m2 8 2 2-2 2 2 2-2 2", key: "sv1b1" }],
  ["path", { d: "m22 8-2 2 2 2-2 2 2 2", key: "101i4y" }],
  ["rect", { width: "8", height: "14", x: "8", y: "5", rx: "1", key: "1oyrl4" }]
];
const Vibrate = createLucideIcon("vibrate", __iconNode$S);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$R = [
  [
    "path",
    { d: "M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196", key: "w8jjjt" }
  ],
  ["path", { d: "M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2", key: "1xawa7" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const VideoOff = createLucideIcon("video-off", __iconNode$R);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$Q = [
  [
    "path",
    {
      d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
      key: "ftymec"
    }
  ],
  ["rect", { x: "2", y: "6", width: "14", height: "12", rx: "2", key: "158x01" }]
];
const Video = createLucideIcon("video", __iconNode$Q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$P = [
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
  ["path", { d: "M2 8h20", key: "d11cs7" }],
  ["circle", { cx: "8", cy: "14", r: "2", key: "1k2qr5" }],
  ["path", { d: "M8 12h8", key: "1wcyev" }],
  ["circle", { cx: "16", cy: "14", r: "2", key: "14k7lr" }]
];
const Videotape = createLucideIcon("videotape", __iconNode$P);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$O = [
  ["path", { d: "M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2", key: "mrq65r" }],
  ["path", { d: "M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2", key: "be3xqs" }],
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
  [
    "path",
    {
      d: "M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",
      key: "11ak4c"
    }
  ]
];
const View = createLucideIcon("view", __iconNode$O);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$N = [
  ["circle", { cx: "6", cy: "12", r: "4", key: "1ehtga" }],
  ["circle", { cx: "18", cy: "12", r: "4", key: "4vafl8" }],
  ["line", { x1: "6", x2: "18", y1: "16", y2: "16", key: "pmt8us" }]
];
const Voicemail = createLucideIcon("voicemail", __iconNode$N);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$M = [
  ["path", { d: "M11.1 7.1a16.55 16.55 0 0 1 10.9 4", key: "2880wi" }],
  ["path", { d: "M12 12a12.6 12.6 0 0 1-8.7 5", key: "113sja" }],
  ["path", { d: "M16.8 13.6a16.55 16.55 0 0 1-9 7.5", key: "1qmsgl" }],
  ["path", { d: "M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10", key: "1bmeqp" }],
  ["path", { d: "M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5", key: "iekzv9" }],
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
];
const Volleyball = createLucideIcon("volleyball", __iconNode$M);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$L = [
  [
    "path",
    {
      d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
      key: "uqj9uw"
    }
  ],
  ["path", { d: "M16 9a5 5 0 0 1 0 6", key: "1q6k2b" }]
];
const Volume1 = createLucideIcon("volume-1", __iconNode$L);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$K = [
  [
    "path",
    {
      d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
      key: "uqj9uw"
    }
  ],
  ["path", { d: "M16 9a5 5 0 0 1 0 6", key: "1q6k2b" }],
  ["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728", key: "ijwkga" }]
];
const Volume2 = createLucideIcon("volume-2", __iconNode$K);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$J = [
  ["path", { d: "M16 9a5 5 0 0 1 .95 2.293", key: "1fgyg8" }],
  ["path", { d: "M19.364 5.636a9 9 0 0 1 1.889 9.96", key: "l3zxae" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
  [
    "path",
    {
      d: "m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",
      key: "1gbwow"
    }
  ],
  ["path", { d: "M9.828 4.172A.686.686 0 0 1 11 4.657v.686", key: "s2je0y" }]
];
const VolumeOff = createLucideIcon("volume-off", __iconNode$J);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$I = [
  [
    "path",
    {
      d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
      key: "uqj9uw"
    }
  ],
  ["line", { x1: "22", x2: "16", y1: "9", y2: "15", key: "1ewh16" }],
  ["line", { x1: "16", x2: "22", y1: "9", y2: "15", key: "5ykzw1" }]
];
const VolumeX = createLucideIcon("volume-x", __iconNode$I);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$H = [
  [
    "path",
    {
      d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
      key: "uqj9uw"
    }
  ]
];
const Volume = createLucideIcon("volume", __iconNode$H);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$G = [
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }],
  ["path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z", key: "1ezoue" }],
  ["path", { d: "M22 19H2", key: "nuriw5" }]
];
const Vote = createLucideIcon("vote", __iconNode$G);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$F = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
  ["path", { d: "M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2", key: "4125el" }],
  [
    "path",
    {
      d: "M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21",
      key: "1dpki6"
    }
  ]
];
const WalletCards = createLucideIcon("wallet-cards", __iconNode$F);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$E = [
  ["path", { d: "M17 14h.01", key: "7oqj8z" }],
  [
    "path",
    {
      d: "M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14",
      key: "u1rqew"
    }
  ]
];
const WalletMinimal = createLucideIcon("wallet-minimal", __iconNode$E);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$D = [
  [
    "path",
    {
      d: "M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",
      key: "18etb6"
    }
  ],
  ["path", { d: "M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4", key: "xoc0q4" }]
];
const Wallet = createLucideIcon("wallet", __iconNode$D);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$C = [
  ["path", { d: "M12 17v4", key: "1riwvh" }],
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
  ["path", { d: "m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15", key: "1sl52q" }],
  ["circle", { cx: "8", cy: "9", r: "2", key: "gjzl9d" }],
  ["rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", key: "x3v2xh" }]
];
const Wallpaper = createLucideIcon("wallpaper", __iconNode$C);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$B = [
  ["path", { d: "M15 4V2", key: "z1p9b7" }],
  ["path", { d: "M15 16v-2", key: "px0unx" }],
  ["path", { d: "M8 9h2", key: "1g203m" }],
  ["path", { d: "M20 9h2", key: "19tzq7" }],
  ["path", { d: "M17.8 11.8 19 13", key: "yihg8r" }],
  ["path", { d: "M15 9h.01", key: "x1ddxp" }],
  ["path", { d: "M17.8 6.2 19 5", key: "fd4us0" }],
  ["path", { d: "m3 21 9-9", key: "1jfql5" }],
  ["path", { d: "M12.2 6.2 11 5", key: "i3da3b" }]
];
const Wand = createLucideIcon("wand", __iconNode$B);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$A = [
  [
    "path",
    {
      d: "m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",
      key: "ul74o6"
    }
  ],
  ["path", { d: "m14 7 3 3", key: "1r5n42" }],
  ["path", { d: "M5 6v4", key: "ilb8ba" }],
  ["path", { d: "M19 14v4", key: "blhpug" }],
  ["path", { d: "M10 2v2", key: "7u0qdc" }],
  ["path", { d: "M7 8H3", key: "zfb6yr" }],
  ["path", { d: "M21 16h-4", key: "1cnmox" }],
  ["path", { d: "M11 3H9", key: "1obp7u" }]
];
const WandSparkles = createLucideIcon("wand-sparkles", __iconNode$A);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$z = [
  ["path", { d: "M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11", key: "pb2vm6" }],
  [
    "path",
    {
      d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z",
      key: "doq5xv"
    }
  ],
  ["path", { d: "M6 13h12", key: "yf64js" }],
  ["path", { d: "M6 17h12", key: "1jwigz" }]
];
const Warehouse = createLucideIcon("warehouse", __iconNode$z);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$y = [
  ["path", { d: "M3 6h3", key: "155dbl" }],
  ["path", { d: "M17 6h.01", key: "e2y6kg" }],
  ["rect", { width: "18", height: "20", x: "3", y: "2", rx: "2", key: "od3kk9" }],
  ["circle", { cx: "12", cy: "13", r: "5", key: "nlbqau" }],
  ["path", { d: "M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5", key: "17lach" }]
];
const WashingMachine = createLucideIcon("washing-machine", __iconNode$y);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$x = [
  ["path", { d: "M12 10v2.2l1.6 1", key: "n3r21l" }],
  [
    "path",
    { d: "m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05", key: "18k57s" }
  ],
  ["path", { d: "m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05", key: "16ny36" }],
  ["circle", { cx: "12", cy: "12", r: "6", key: "1vlfrh" }]
];
const Watch = createLucideIcon("watch", __iconNode$x);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$w = [
  ["path", { d: "M12 10L12 2", key: "jvb0aw" }],
  ["path", { d: "M16 6L12 10L8 6", key: "9j6vje" }],
  [
    "path",
    {
      d: "M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15",
      key: "s2zepw"
    }
  ],
  [
    "path",
    {
      d: "M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21",
      key: "u68omc"
    }
  ]
];
const WavesArrowDown = createLucideIcon("waves-arrow-down", __iconNode$w);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$v = [
  ["path", { d: "M12 2v8", key: "1q4o3n" }],
  [
    "path",
    {
      d: "M2 15c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "1p9f19"
    }
  ],
  [
    "path",
    {
      d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "vbxynw"
    }
  ],
  ["path", { d: "m8 6 4-4 4 4", key: "ybng9g" }]
];
const WavesArrowUp = createLucideIcon("waves-arrow-up", __iconNode$v);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$u = [
  ["path", { d: "M19 5a2 2 0 0 0-2 2v11", key: "s41o68" }],
  [
    "path",
    {
      d: "M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "rd2r6e"
    }
  ],
  ["path", { d: "M7 13h10", key: "1rwob1" }],
  ["path", { d: "M7 9h10", key: "12czzb" }],
  ["path", { d: "M9 5a2 2 0 0 0-2 2v11", key: "x0q4gh" }]
];
const WavesLadder = createLucideIcon("waves-ladder", __iconNode$u);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$t = [
  [
    "path",
    {
      d: "M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "knzxuh"
    }
  ],
  [
    "path",
    {
      d: "M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "2jd2cc"
    }
  ],
  [
    "path",
    {
      d: "M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
      key: "rd2r6e"
    }
  ]
];
const Waves = createLucideIcon("waves", __iconNode$t);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$s = [
  ["circle", { cx: "12", cy: "4.5", r: "2.5", key: "r5ysbb" }],
  ["path", { d: "m10.2 6.3-3.9 3.9", key: "1nzqf6" }],
  ["circle", { cx: "4.5", cy: "12", r: "2.5", key: "jydg6v" }],
  ["path", { d: "M7 12h10", key: "b7w52i" }],
  ["circle", { cx: "19.5", cy: "12", r: "2.5", key: "1piiel" }],
  ["path", { d: "m13.8 17.7 3.9-3.9", key: "1wyg1y" }],
  ["circle", { cx: "12", cy: "19.5", r: "2.5", key: "13o1pw" }]
];
const Waypoints = createLucideIcon("waypoints", __iconNode$s);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$r = [
  ["circle", { cx: "12", cy: "10", r: "8", key: "1gshiw" }],
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
  ["path", { d: "M7 22h10", key: "10w4w3" }],
  ["path", { d: "M12 22v-4", key: "1utk9m" }]
];
const Webcam = createLucideIcon("webcam", __iconNode$r);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$q = [
  ["path", { d: "M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15", key: "1tvl6x" }],
  ["path", { d: "M9 3.4a4 4 0 0 1 6.52.66", key: "q04jfq" }],
  ["path", { d: "m6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05", key: "azowf0" }],
  ["path", { d: "M20.3 20.3a4 4 0 0 1-2.3.7", key: "5joiws" }],
  ["path", { d: "M18.6 13a4 4 0 0 1 3.357 3.414", key: "cangb8" }],
  ["path", { d: "m12 6 .6 1", key: "tpjl1n" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const WebhookOff = createLucideIcon("webhook-off", __iconNode$q);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$p = [
  [
    "path",
    {
      d: "M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",
      key: "q3hayz"
    }
  ],
  ["path", { d: "m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06", key: "1go1hn" }],
  ["path", { d: "m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8", key: "qlwsc0" }]
];
const Webhook = createLucideIcon("webhook", __iconNode$p);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$o = [
  ["circle", { cx: "12", cy: "5", r: "3", key: "rqqgnr" }],
  [
    "path",
    {
      d: "M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z",
      key: "56o5sh"
    }
  ]
];
const Weight = createLucideIcon("weight", __iconNode$o);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$n = [
  ["path", { d: "m2 22 10-10", key: "28ilpk" }],
  ["path", { d: "m16 8-1.17 1.17", key: "1qqm82" }],
  [
    "path",
    {
      d: "M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",
      key: "1rdhi6"
    }
  ],
  [
    "path",
    { d: "m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97", key: "4wz8re" }
  ],
  [
    "path",
    { d: "M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62", key: "rves66" }
  ],
  ["path", { d: "M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z", key: "19rau1" }],
  [
    "path",
    {
      d: "M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",
      key: "tc8ph9"
    }
  ],
  [
    "path",
    {
      d: "m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98",
      key: "ak46r"
    }
  ],
  [
    "path",
    {
      d: "M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28",
      key: "1tw520"
    }
  ],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const WheatOff = createLucideIcon("wheat-off", __iconNode$n);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$m = [
  ["path", { d: "M2 22 16 8", key: "60hf96" }],
  [
    "path",
    {
      d: "M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",
      key: "1rdhi6"
    }
  ],
  [
    "path",
    {
      d: "M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",
      key: "1sdzmb"
    }
  ],
  [
    "path",
    {
      d: "M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z",
      key: "eoatbi"
    }
  ],
  ["path", { d: "M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z", key: "19rau1" }],
  [
    "path",
    {
      d: "M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",
      key: "tc8ph9"
    }
  ],
  [
    "path",
    {
      d: "M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",
      key: "2m8kc5"
    }
  ],
  [
    "path",
    {
      d: "M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z",
      key: "vex3ng"
    }
  ]
];
const Wheat = createLucideIcon("wheat", __iconNode$m);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$l = [
  ["circle", { cx: "7", cy: "12", r: "3", key: "12clwm" }],
  ["path", { d: "M10 9v6", key: "17i7lo" }],
  ["circle", { cx: "17", cy: "12", r: "3", key: "gl7c2s" }],
  ["path", { d: "M14 7v8", key: "dl84cr" }],
  ["path", { d: "M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1", key: "lt2kga" }]
];
const WholeWord = createLucideIcon("whole-word", __iconNode$l);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$k = [
  ["path", { d: "m14.305 19.53.923-.382", key: "3m78fa" }],
  ["path", { d: "m15.228 16.852-.923-.383", key: "npixar" }],
  ["path", { d: "m16.852 15.228-.383-.923", key: "5xggr7" }],
  ["path", { d: "m16.852 20.772-.383.924", key: "dpfhf9" }],
  ["path", { d: "m19.148 15.228.383-.923", key: "1reyyz" }],
  ["path", { d: "m19.53 21.696-.382-.924", key: "1goivc" }],
  ["path", { d: "M2 7.82a15 15 0 0 1 20 0", key: "1ovjuk" }],
  ["path", { d: "m20.772 16.852.924-.383", key: "htqkph" }],
  ["path", { d: "m20.772 19.148.924.383", key: "9w9pjp" }],
  ["path", { d: "M5 11.858a10 10 0 0 1 11.5-1.785", key: "3sn16i" }],
  ["path", { d: "M8.5 15.429a5 5 0 0 1 2.413-1.31", key: "1pxovh" }],
  ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }]
];
const WifiCog = createLucideIcon("wifi-cog", __iconNode$k);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$j = [
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M5 12.859a10 10 0 0 1 14 0", key: "1x1e6c" }],
  ["path", { d: "M8.5 16.429a5 5 0 0 1 7 0", key: "1bycff" }]
];
const WifiHigh = createLucideIcon("wifi-high", __iconNode$j);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$i = [
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M8.5 16.429a5 5 0 0 1 7 0", key: "1bycff" }]
];
const WifiLow = createLucideIcon("wifi-low", __iconNode$i);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$h = [
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M8.5 16.429a5 5 0 0 1 7 0", key: "1bycff" }],
  ["path", { d: "M5 12.859a10 10 0 0 1 5.17-2.69", key: "1dl1wf" }],
  ["path", { d: "M19 12.859a10 10 0 0 0-2.007-1.523", key: "4k23kn" }],
  ["path", { d: "M2 8.82a15 15 0 0 1 4.177-2.643", key: "1grhjp" }],
  ["path", { d: "M22 8.82a15 15 0 0 0-11.288-3.764", key: "z3jwby" }],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const WifiOff = createLucideIcon("wifi-off", __iconNode$h);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$g = [
  ["path", { d: "M2 8.82a15 15 0 0 1 20 0", key: "dnpr2z" }],
  [
    "path",
    {
      d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",
      key: "1817ys"
    }
  ],
  ["path", { d: "M5 12.859a10 10 0 0 1 10.5-2.222", key: "rpb7oy" }],
  ["path", { d: "M8.5 16.429a5 5 0 0 1 3-1.406", key: "r8bmzl" }]
];
const WifiPen = createLucideIcon("wifi-pen", __iconNode$g);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$f = [
  ["path", { d: "M11.965 10.105v4L13.5 12.5a5 5 0 0 1 8 1.5", key: "1immaq" }],
  ["path", { d: "M11.965 14.105h4", key: "uejny8" }],
  ["path", { d: "M17.965 18.105h4L20.43 19.71a5 5 0 0 1-8-1.5", key: "1i3a7e" }],
  ["path", { d: "M2 8.82a15 15 0 0 1 20 0", key: "dnpr2z" }],
  ["path", { d: "M21.965 22.105v-4", key: "1ku6vx" }],
  ["path", { d: "M5 12.86a10 10 0 0 1 3-2.032", key: "pemdtu" }],
  ["path", { d: "M8.5 16.429h.01", key: "2bm739" }]
];
const WifiSync = createLucideIcon("wifi-sync", __iconNode$f);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$e = [["path", { d: "M12 20h.01", key: "zekei9" }]];
const WifiZero = createLucideIcon("wifi-zero", __iconNode$e);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$d = [
  ["path", { d: "M10 2v8", key: "d4bbey" }],
  ["path", { d: "M12.8 21.6A2 2 0 1 0 14 18H2", key: "19kp1d" }],
  ["path", { d: "M17.5 10a2.5 2.5 0 1 1 2 4H2", key: "19kpjc" }],
  ["path", { d: "m6 6 4 4 4-4", key: "k13n16" }]
];
const WindArrowDown = createLucideIcon("wind-arrow-down", __iconNode$d);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$c = [
  ["path", { d: "M12 20h.01", key: "zekei9" }],
  ["path", { d: "M2 8.82a15 15 0 0 1 20 0", key: "dnpr2z" }],
  ["path", { d: "M5 12.859a10 10 0 0 1 14 0", key: "1x1e6c" }],
  ["path", { d: "M8.5 16.429a5 5 0 0 1 7 0", key: "1bycff" }]
];
const Wifi = createLucideIcon("wifi", __iconNode$c);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$b = [
  ["path", { d: "M12.8 19.6A2 2 0 1 0 14 16H2", key: "148xed" }],
  ["path", { d: "M17.5 8a2.5 2.5 0 1 1 2 4H2", key: "1u4tom" }],
  ["path", { d: "M9.8 4.4A2 2 0 1 1 11 8H2", key: "75valh" }]
];
const Wind = createLucideIcon("wind", __iconNode$b);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$a = [
  ["path", { d: "M8 22h8", key: "rmew8v" }],
  ["path", { d: "M7 10h10", key: "1101jm" }],
  ["path", { d: "M12 15v7", key: "t2xh3l" }],
  [
    "path",
    { d: "M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z", key: "10ffi3" }
  ]
];
const Wine = createLucideIcon("wine", __iconNode$a);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$9 = [
  ["path", { d: "M8 22h8", key: "rmew8v" }],
  ["path", { d: "M7 10h3m7 0h-1.343", key: "v48bem" }],
  ["path", { d: "M12 15v7", key: "t2xh3l" }],
  [
    "path",
    {
      d: "M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198",
      key: "1ymjlu"
    }
  ],
  ["line", { x1: "2", x2: "22", y1: "2", y2: "22", key: "a6p6uj" }]
];
const WineOff = createLucideIcon("wine-off", __iconNode$9);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$8 = [
  ["rect", { width: "8", height: "8", x: "3", y: "3", rx: "2", key: "by2w9f" }],
  ["path", { d: "M7 11v4a2 2 0 0 0 2 2h4", key: "xkn7yn" }],
  ["rect", { width: "8", height: "8", x: "13", y: "13", rx: "2", key: "1cgmvn" }]
];
const Workflow = createLucideIcon("workflow", __iconNode$8);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$7 = [
  ["path", { d: "m19 12-1.5 3", key: "9bcu4o" }],
  ["path", { d: "M19.63 18.81 22 20", key: "121v98" }],
  [
    "path",
    {
      d: "M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z",
      key: "1tij6q"
    }
  ]
];
const Worm = createLucideIcon("worm", __iconNode$7);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$6 = [
  [
    "path",
    {
      d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",
      key: "1ngwbx"
    }
  ]
];
const Wrench = createLucideIcon("wrench", __iconNode$6);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$5 = [
  [
    "path",
    {
      d: "M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",
      key: "1q2vi4"
    }
  ],
  ["path", { d: "m10 15 5-3-5-3z", key: "1jp15x" }]
];
const Youtube = createLucideIcon("youtube", __iconNode$5);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$4 = [
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
];
const X = createLucideIcon("x", __iconNode$4);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$3 = [
  ["path", { d: "M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317", key: "193nxd" }],
  ["path", { d: "M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773", key: "27a7lr" }],
  [
    "path",
    {
      d: "M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",
      key: "1e0qe9"
    }
  ],
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
];
const ZapOff = createLucideIcon("zap-off", __iconNode$3);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$2 = [
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
  ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
  ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
];
const ZoomIn = createLucideIcon("zoom-in", __iconNode$2);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode$1 = [
  [
    "path",
    {
      d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
      key: "1xq2db"
    }
  ]
];
const Zap = createLucideIcon("zap", __iconNode$1);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const __iconNode = [
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
  ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
  ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
];
const ZoomOut = createLucideIcon("zoom-out", __iconNode);
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AArrowDown,
  AArrowUp,
  ALargeSmall,
  Accessibility,
  Activity,
  AirVent,
  Airplay,
  AlarmClock,
  AlarmClockCheck,
  AlarmClockMinus,
  AlarmClockOff,
  AlarmClockPlus,
  AlarmSmoke,
  Album,
  AlignCenterHorizontal,
  AlignCenterVertical,
  AlignEndHorizontal,
  AlignEndVertical,
  AlignHorizontalDistributeCenter,
  AlignHorizontalDistributeEnd,
  AlignHorizontalDistributeStart,
  AlignHorizontalJustifyCenter,
  AlignHorizontalJustifyEnd,
  AlignHorizontalJustifyStart,
  AlignHorizontalSpaceAround,
  AlignHorizontalSpaceBetween,
  AlignStartHorizontal,
  AlignStartVertical,
  AlignVerticalDistributeCenter,
  AlignVerticalDistributeEnd,
  AlignVerticalDistributeStart,
  AlignVerticalJustifyCenter,
  AlignVerticalJustifyEnd,
  AlignVerticalJustifyStart,
  AlignVerticalSpaceAround,
  AlignVerticalSpaceBetween,
  Ambulance,
  Ampersand,
  Ampersands,
  Amphora,
  Anchor,
  Angry,
  Annoyed,
  Antenna,
  Anvil,
  Aperture,
  AppWindow,
  AppWindowMac,
  Apple,
  Archive,
  ArchiveRestore,
  ArchiveX,
  Armchair,
  ArrowBigDown,
  ArrowBigDownDash,
  ArrowBigLeft,
  ArrowBigLeftDash,
  ArrowBigRight,
  ArrowBigRightDash,
  ArrowBigUp,
  ArrowBigUpDash,
  ArrowDown,
  ArrowDown01,
  ArrowDown10,
  ArrowDownAZ,
  ArrowDownFromLine,
  ArrowDownLeft,
  ArrowDownNarrowWide,
  ArrowDownRight,
  ArrowDownToDot,
  ArrowDownToLine,
  ArrowDownUp,
  ArrowDownWideNarrow,
  ArrowDownZA,
  ArrowLeft,
  ArrowLeftFromLine,
  ArrowLeftRight,
  ArrowLeftToLine,
  ArrowRight,
  ArrowRightFromLine,
  ArrowRightLeft,
  ArrowRightToLine,
  ArrowUp,
  ArrowUp01,
  ArrowUp10,
  ArrowUpAZ,
  ArrowUpDown,
  ArrowUpFromDot,
  ArrowUpFromLine,
  ArrowUpLeft,
  ArrowUpNarrowWide,
  ArrowUpRight,
  ArrowUpToLine,
  ArrowUpWideNarrow,
  ArrowUpZA,
  ArrowsUpFromLine,
  Asterisk,
  AtSign,
  Atom,
  AudioLines,
  AudioWaveform,
  Award,
  Axe,
  Axis3d,
  Baby,
  Backpack,
  Badge,
  BadgeAlert,
  BadgeCent,
  BadgeCheck,
  BadgeDollarSign,
  BadgeEuro,
  BadgeIndianRupee,
  BadgeInfo,
  BadgeJapaneseYen,
  BadgeMinus,
  BadgePercent,
  BadgePlus,
  BadgePoundSterling,
  BadgeQuestionMark,
  BadgeRussianRuble,
  BadgeSwissFranc,
  BadgeTurkishLira,
  BadgeX,
  BaggageClaim,
  Ban,
  Banana,
  Bandage,
  Banknote,
  BanknoteArrowDown,
  BanknoteArrowUp,
  BanknoteX,
  Barcode,
  Barrel,
  Baseline,
  Bath,
  Battery,
  BatteryCharging,
  BatteryFull,
  BatteryLow,
  BatteryMedium,
  BatteryPlus,
  BatteryWarning,
  Beaker,
  Bean,
  BeanOff,
  Bed,
  BedDouble,
  BedSingle,
  Beef,
  Beer,
  BeerOff,
  Bell,
  BellDot,
  BellElectric,
  BellMinus,
  BellOff,
  BellPlus,
  BellRing,
  BetweenHorizontalEnd,
  BetweenHorizontalStart,
  BetweenVerticalEnd,
  BetweenVerticalStart,
  BicepsFlexed,
  Bike,
  Binary,
  Binoculars,
  Biohazard,
  Bird,
  Birdhouse,
  Bitcoin,
  Blend,
  Blinds,
  Blocks,
  Bluetooth,
  BluetoothConnected,
  BluetoothOff,
  BluetoothSearching,
  Bold,
  Bolt,
  Bomb,
  Bone,
  Book,
  BookA,
  BookAlert,
  BookAudio,
  BookCheck,
  BookCopy,
  BookDashed,
  BookDown,
  BookHeadphones,
  BookHeart,
  BookImage,
  BookKey,
  BookLock,
  BookMarked,
  BookMinus,
  BookOpen,
  BookOpenCheck,
  BookOpenText,
  BookPlus,
  BookText,
  BookType,
  BookUp,
  BookUp2,
  BookUser,
  BookX,
  Bookmark,
  BookmarkCheck,
  BookmarkMinus,
  BookmarkPlus,
  BookmarkX,
  BoomBox,
  Bot,
  BotMessageSquare,
  BotOff,
  BottleWine,
  BowArrow,
  Box,
  Boxes,
  Braces,
  Brackets,
  Brain,
  BrainCircuit,
  BrainCog,
  BrickWall,
  BrickWallFire,
  BrickWallShield,
  Briefcase,
  BriefcaseBusiness,
  BriefcaseConveyorBelt,
  BriefcaseMedical,
  BringToFront,
  Brush,
  BrushCleaning,
  Bubbles,
  Bug,
  BugOff,
  BugPlay,
  Building,
  Building2,
  Bus,
  BusFront,
  Cable,
  CableCar,
  Cake,
  CakeSlice,
  Calculator,
  Calendar,
  Calendar1,
  CalendarArrowDown,
  CalendarArrowUp,
  CalendarCheck,
  CalendarCheck2,
  CalendarClock,
  CalendarCog,
  CalendarDays,
  CalendarFold,
  CalendarHeart,
  CalendarMinus,
  CalendarMinus2,
  CalendarOff,
  CalendarPlus,
  CalendarPlus2,
  CalendarRange,
  CalendarSearch,
  CalendarSync,
  CalendarX,
  CalendarX2,
  Calendars,
  Camera,
  CameraOff,
  Candy,
  CandyCane,
  CandyOff,
  Cannabis,
  Captions,
  CaptionsOff,
  Car,
  CarFront,
  CarTaxiFront,
  Caravan,
  CardSim,
  Carrot,
  CaseLower,
  CaseSensitive,
  CaseUpper,
  CassetteTape,
  Cast,
  Castle,
  Cat,
  Cctv,
  ChartArea,
  ChartBar,
  ChartBarBig,
  ChartBarDecreasing,
  ChartBarIncreasing,
  ChartBarStacked,
  ChartCandlestick,
  ChartColumn,
  ChartColumnBig,
  ChartColumnDecreasing,
  ChartColumnIncreasing,
  ChartColumnStacked,
  ChartGantt,
  ChartLine,
  ChartNetwork,
  ChartNoAxesColumn,
  ChartNoAxesColumnDecreasing,
  ChartNoAxesColumnIncreasing,
  ChartNoAxesCombined,
  ChartNoAxesGantt,
  ChartPie,
  ChartScatter,
  ChartSpline,
  Check,
  CheckCheck,
  CheckLine,
  ChefHat,
  Cherry,
  ChessBishop,
  ChessKing,
  ChessKnight,
  ChessPawn,
  ChessQueen,
  ChessRook,
  ChevronDown,
  ChevronFirst,
  ChevronLast,
  ChevronLeft,
  ChevronRight,
  ChevronUp,
  ChevronsDown,
  ChevronsDownUp,
  ChevronsLeft,
  ChevronsLeftRight,
  ChevronsLeftRightEllipsis,
  ChevronsRight,
  ChevronsRightLeft,
  ChevronsUp,
  ChevronsUpDown,
  Chromium,
  Church,
  Cigarette,
  CigaretteOff,
  Circle,
  CircleAlert,
  CircleArrowDown,
  CircleArrowLeft,
  CircleArrowOutDownLeft,
  CircleArrowOutDownRight,
  CircleArrowOutUpLeft,
  CircleArrowOutUpRight,
  CircleArrowRight,
  CircleArrowUp,
  CircleCheck,
  CircleCheckBig,
  CircleChevronDown,
  CircleChevronLeft,
  CircleChevronRight,
  CircleChevronUp,
  CircleDashed,
  CircleDivide,
  CircleDollarSign,
  CircleDot,
  CircleDotDashed,
  CircleEllipsis,
  CircleEqual,
  CircleFadingArrowUp,
  CircleFadingPlus,
  CircleGauge,
  CircleMinus,
  CircleOff,
  CircleParking,
  CircleParkingOff,
  CirclePause,
  CirclePercent,
  CirclePlay,
  CirclePlus,
  CirclePoundSterling,
  CirclePower,
  CircleQuestionMark,
  CircleSlash,
  CircleSlash2,
  CircleSmall,
  CircleStar,
  CircleStop,
  CircleUser,
  CircleUserRound,
  CircleX,
  CircuitBoard,
  Citrus,
  Clapperboard,
  Clipboard,
  ClipboardCheck,
  ClipboardClock,
  ClipboardCopy,
  ClipboardList,
  ClipboardMinus,
  ClipboardPaste,
  ClipboardPen,
  ClipboardPenLine,
  ClipboardPlus,
  ClipboardType,
  ClipboardX,
  Clock,
  Clock1,
  Clock10,
  Clock11,
  Clock12,
  Clock2,
  Clock3,
  Clock4,
  Clock5,
  Clock6,
  Clock7,
  Clock8,
  Clock9,
  ClockAlert,
  ClockArrowDown,
  ClockArrowUp,
  ClockCheck,
  ClockFading,
  ClockPlus,
  ClosedCaption,
  Cloud,
  CloudAlert,
  CloudCheck,
  CloudCog,
  CloudDownload,
  CloudDrizzle,
  CloudFog,
  CloudHail,
  CloudLightning,
  CloudMoon,
  CloudMoonRain,
  CloudOff,
  CloudRain,
  CloudRainWind,
  CloudSnow,
  CloudSun,
  CloudSunRain,
  CloudUpload,
  Cloudy,
  Clover,
  Club,
  Code,
  CodeXml,
  Codepen,
  Codesandbox,
  Coffee,
  Cog,
  Coins,
  Columns2,
  Columns3,
  Columns3Cog,
  Columns4,
  Combine,
  Command,
  Compass,
  Component,
  Computer,
  ConciergeBell,
  Cone,
  Construction,
  Contact,
  ContactRound,
  Container,
  Contrast,
  Cookie,
  CookingPot,
  Copy,
  CopyCheck,
  CopyMinus,
  CopyPlus,
  CopySlash,
  CopyX,
  Copyleft,
  Copyright,
  CornerDownLeft,
  CornerDownRight,
  CornerLeftDown,
  CornerLeftUp,
  CornerRightDown,
  CornerRightUp,
  CornerUpLeft,
  CornerUpRight,
  Cpu,
  CreativeCommons,
  CreditCard,
  Croissant,
  Crop,
  Cross,
  Crosshair,
  Crown,
  Cuboid,
  CupSoda,
  Currency,
  Cylinder,
  Dam,
  Database,
  DatabaseBackup,
  DatabaseZap,
  DecimalsArrowLeft,
  DecimalsArrowRight,
  Delete,
  Dessert,
  Diameter,
  Diamond,
  DiamondMinus,
  DiamondPercent,
  DiamondPlus,
  Dice1,
  Dice2,
  Dice3,
  Dice4,
  Dice5,
  Dice6,
  Dices,
  Diff,
  Disc,
  Disc2,
  Disc3,
  DiscAlbum,
  Divide,
  Dna,
  DnaOff,
  Dock,
  Dog,
  DollarSign,
  Donut,
  DoorClosed,
  DoorClosedLocked,
  DoorOpen,
  Dot,
  Download,
  DraftingCompass,
  Drama,
  Dribbble,
  Drill,
  Drone,
  Droplet,
  DropletOff,
  Droplets,
  Drum,
  Drumstick,
  Dumbbell,
  Ear,
  EarOff,
  Earth,
  EarthLock,
  Eclipse,
  Egg,
  EggFried,
  EggOff,
  Ellipsis,
  EllipsisVertical,
  Equal,
  EqualApproximately,
  EqualNot,
  Eraser,
  EthernetPort,
  Euro,
  EvCharger,
  Expand,
  ExternalLink,
  Eye,
  EyeClosed,
  EyeOff,
  Facebook,
  Factory,
  Fan,
  FastForward,
  Feather,
  Fence,
  FerrisWheel,
  Figma,
  File,
  FileArchive,
  FileAxis3d,
  FileBadge,
  FileBox,
  FileBraces,
  FileBracesCorner,
  FileChartColumn,
  FileChartColumnIncreasing,
  FileChartLine,
  FileChartPie,
  FileCheck,
  FileCheckCorner,
  FileClock,
  FileCode,
  FileCodeCorner,
  FileCog,
  FileDiff,
  FileDigit,
  FileDown,
  FileExclamationPoint,
  FileHeadphone,
  FileHeart,
  FileImage,
  FileInput,
  FileKey,
  FileLock,
  FileMinus,
  FileMinusCorner,
  FileMusic,
  FileOutput,
  FilePen,
  FilePenLine,
  FilePlay,
  FilePlus,
  FilePlusCorner,
  FileQuestionMark,
  FileScan,
  FileSearch,
  FileSearchCorner,
  FileSignal,
  FileSliders,
  FileSpreadsheet,
  FileStack,
  FileSymlink,
  FileTerminal,
  FileText,
  FileType,
  FileTypeCorner,
  FileUp,
  FileUser,
  FileVideoCamera,
  FileVolume,
  FileX,
  FileXCorner,
  Files,
  Film,
  FingerprintPattern,
  FireExtinguisher,
  Fish,
  FishOff,
  FishSymbol,
  Flag,
  FlagOff,
  FlagTriangleLeft,
  FlagTriangleRight,
  Flame,
  FlameKindling,
  Flashlight,
  FlashlightOff,
  FlaskConical,
  FlaskConicalOff,
  FlaskRound,
  FlipHorizontal,
  FlipHorizontal2,
  FlipVertical,
  FlipVertical2,
  Flower,
  Flower2,
  Focus,
  FoldHorizontal,
  FoldVertical,
  Folder,
  FolderArchive,
  FolderCheck,
  FolderClock,
  FolderClosed,
  FolderCode,
  FolderCog,
  FolderDot,
  FolderDown,
  FolderGit,
  FolderGit2,
  FolderHeart,
  FolderInput,
  FolderKanban,
  FolderKey,
  FolderLock,
  FolderMinus,
  FolderOpen,
  FolderOpenDot,
  FolderOutput,
  FolderPen,
  FolderPlus,
  FolderRoot,
  FolderSearch,
  FolderSearch2,
  FolderSymlink,
  FolderSync,
  FolderTree,
  FolderUp,
  FolderX,
  Folders,
  Footprints,
  Forklift,
  Form,
  Forward,
  Frame,
  Framer,
  Frown,
  Fuel,
  Fullscreen,
  Funnel,
  FunnelPlus,
  FunnelX,
  GalleryHorizontal,
  GalleryHorizontalEnd,
  GalleryThumbnails,
  GalleryVertical,
  GalleryVerticalEnd,
  Gamepad,
  Gamepad2,
  GamepadDirectional,
  Gauge,
  Gavel,
  Gem,
  GeorgianLari,
  Ghost,
  Gift,
  GitBranch,
  GitBranchMinus,
  GitBranchPlus,
  GitCommitHorizontal,
  GitCommitVertical,
  GitCompare,
  GitCompareArrows,
  GitFork,
  GitGraph,
  GitMerge,
  GitPullRequest,
  GitPullRequestArrow,
  GitPullRequestClosed,
  GitPullRequestCreate,
  GitPullRequestCreateArrow,
  GitPullRequestDraft,
  Github,
  Gitlab,
  GlassWater,
  Glasses,
  Globe,
  GlobeLock,
  Goal,
  Gpu,
  GraduationCap,
  Grape,
  Grid2x2,
  Grid2x2Check,
  Grid2x2Plus,
  Grid2x2X,
  Grid3x2,
  Grid3x3,
  Grip,
  GripHorizontal,
  GripVertical,
  Group,
  Guitar,
  Ham,
  Hamburger,
  Hammer,
  Hand,
  HandCoins,
  HandFist,
  HandGrab,
  HandHeart,
  HandHelping,
  HandMetal,
  HandPlatter,
  Handbag,
  Handshake,
  HardDrive,
  HardDriveDownload,
  HardDriveUpload,
  HardHat,
  Hash,
  HatGlasses,
  Haze,
  HdmiPort,
  Heading,
  Heading1,
  Heading2,
  Heading3,
  Heading4,
  Heading5,
  Heading6,
  HeadphoneOff,
  Headphones,
  Headset,
  Heart,
  HeartCrack,
  HeartHandshake,
  HeartMinus,
  HeartOff,
  HeartPlus,
  HeartPulse,
  Heater,
  Helicopter,
  Hexagon,
  Highlighter,
  History,
  Hop,
  HopOff,
  Hospital,
  Hotel,
  Hourglass,
  House,
  HouseHeart,
  HousePlug,
  HousePlus,
  HouseWifi,
  IceCreamBowl,
  IceCreamCone,
  IdCard,
  IdCardLanyard,
  Image,
  ImageDown,
  ImageMinus,
  ImageOff,
  ImagePlay,
  ImagePlus,
  ImageUp,
  ImageUpscale,
  Images,
  Import,
  Inbox,
  IndianRupee,
  Infinity: Infinity$1,
  Info,
  InspectionPanel,
  Instagram,
  Italic,
  IterationCcw,
  IterationCw,
  JapaneseYen,
  Joystick,
  Kanban,
  Kayak,
  Key,
  KeyRound,
  KeySquare,
  Keyboard,
  KeyboardMusic,
  KeyboardOff,
  Lamp,
  LampCeiling,
  LampDesk,
  LampFloor,
  LampWallDown,
  LampWallUp,
  LandPlot,
  Landmark,
  Languages,
  Laptop,
  LaptopMinimal,
  LaptopMinimalCheck,
  Lasso,
  LassoSelect,
  Laugh,
  Layers,
  Layers2,
  LayoutDashboard,
  LayoutGrid,
  LayoutList,
  LayoutPanelLeft,
  LayoutPanelTop,
  LayoutTemplate,
  Leaf,
  LeafyGreen,
  Lectern,
  Library,
  LibraryBig,
  LifeBuoy,
  Ligature,
  Lightbulb,
  LightbulbOff,
  LineSquiggle,
  Link,
  Link2,
  Link2Off,
  Linkedin,
  List,
  ListCheck,
  ListChecks,
  ListChevronsDownUp,
  ListChevronsUpDown,
  ListCollapse,
  ListEnd,
  ListFilter,
  ListFilterPlus,
  ListIndentDecrease,
  ListIndentIncrease,
  ListMinus,
  ListMusic,
  ListOrdered,
  ListPlus,
  ListRestart,
  ListStart,
  ListTodo,
  ListTree,
  ListVideo,
  ListX,
  Loader,
  LoaderCircle,
  LoaderPinwheel,
  Locate,
  LocateFixed,
  LocateOff,
  Lock,
  LockKeyhole,
  LockKeyholeOpen,
  LockOpen,
  LogIn,
  LogOut,
  Logs,
  Lollipop,
  Luggage,
  Magnet,
  Mail,
  MailCheck,
  MailMinus,
  MailOpen,
  MailPlus,
  MailQuestionMark,
  MailSearch,
  MailWarning,
  MailX,
  Mailbox,
  Mails,
  Map: Map$1,
  MapMinus,
  MapPin,
  MapPinCheck,
  MapPinCheckInside,
  MapPinHouse,
  MapPinMinus,
  MapPinMinusInside,
  MapPinOff,
  MapPinPen,
  MapPinPlus,
  MapPinPlusInside,
  MapPinX,
  MapPinXInside,
  MapPinned,
  MapPlus,
  Mars,
  MarsStroke,
  Martini,
  Maximize,
  Maximize2,
  Medal,
  Megaphone,
  MegaphoneOff,
  Meh,
  MemoryStick,
  Menu,
  Merge,
  MessageCircle,
  MessageCircleCode,
  MessageCircleDashed,
  MessageCircleHeart,
  MessageCircleMore,
  MessageCircleOff,
  MessageCirclePlus,
  MessageCircleQuestionMark,
  MessageCircleReply,
  MessageCircleWarning,
  MessageCircleX,
  MessageSquare,
  MessageSquareCode,
  MessageSquareDashed,
  MessageSquareDiff,
  MessageSquareDot,
  MessageSquareHeart,
  MessageSquareLock,
  MessageSquareMore,
  MessageSquareOff,
  MessageSquarePlus,
  MessageSquareQuote,
  MessageSquareReply,
  MessageSquareShare,
  MessageSquareText,
  MessageSquareWarning,
  MessageSquareX,
  MessagesSquare,
  Mic,
  MicOff,
  MicVocal,
  Microchip,
  Microscope,
  Microwave,
  Milestone,
  Milk,
  MilkOff,
  Minimize,
  Minimize2,
  Minus,
  Monitor,
  MonitorCheck,
  MonitorCloud,
  MonitorCog,
  MonitorDot,
  MonitorDown,
  MonitorOff,
  MonitorPause,
  MonitorPlay,
  MonitorSmartphone,
  MonitorSpeaker,
  MonitorStop,
  MonitorUp,
  MonitorX,
  Moon,
  MoonStar,
  Motorbike,
  Mountain,
  MountainSnow,
  Mouse,
  MouseOff,
  MousePointer,
  MousePointer2,
  MousePointer2Off,
  MousePointerBan,
  MousePointerClick,
  Move,
  Move3d,
  MoveDiagonal,
  MoveDiagonal2,
  MoveDown,
  MoveDownLeft,
  MoveDownRight,
  MoveHorizontal,
  MoveLeft,
  MoveRight,
  MoveUp,
  MoveUpLeft,
  MoveUpRight,
  MoveVertical,
  Music,
  Music2,
  Music3,
  Music4,
  Navigation,
  Navigation2,
  Navigation2Off,
  NavigationOff,
  Network,
  Newspaper,
  Nfc,
  NonBinary,
  Notebook,
  NotebookPen,
  NotebookTabs,
  NotebookText,
  NotepadText,
  NotepadTextDashed,
  Nut,
  NutOff,
  Octagon,
  OctagonAlert,
  OctagonMinus,
  OctagonPause,
  OctagonX,
  Omega,
  Option,
  Orbit,
  Origami,
  Package,
  Package2,
  PackageCheck,
  PackageMinus,
  PackageOpen,
  PackagePlus,
  PackageSearch,
  PackageX,
  PaintBucket,
  PaintRoller,
  Paintbrush,
  PaintbrushVertical,
  Palette,
  Panda,
  PanelBottom,
  PanelBottomClose,
  PanelBottomDashed,
  PanelBottomOpen,
  PanelLeft,
  PanelLeftClose,
  PanelLeftDashed,
  PanelLeftOpen,
  PanelLeftRightDashed,
  PanelRight,
  PanelRightClose,
  PanelRightDashed,
  PanelRightOpen,
  PanelTop,
  PanelTopBottomDashed,
  PanelTopClose,
  PanelTopDashed,
  PanelTopOpen,
  PanelsLeftBottom,
  PanelsRightBottom,
  PanelsTopLeft,
  Paperclip,
  Parentheses,
  ParkingMeter,
  PartyPopper,
  Pause,
  PawPrint,
  PcCase,
  Pen,
  PenLine,
  PenOff,
  PenTool,
  Pencil,
  PencilLine,
  PencilOff,
  PencilRuler,
  Pentagon,
  Percent,
  PersonStanding,
  PhilippinePeso,
  Phone,
  PhoneCall,
  PhoneForwarded,
  PhoneIncoming,
  PhoneMissed,
  PhoneOff,
  PhoneOutgoing,
  Pi,
  Piano,
  Pickaxe,
  PictureInPicture,
  PictureInPicture2,
  PiggyBank,
  Pilcrow,
  PilcrowLeft,
  PilcrowRight,
  Pill,
  PillBottle,
  Pin,
  PinOff,
  Pipette,
  Pizza,
  Plane,
  PlaneLanding,
  PlaneTakeoff,
  Play,
  Plug,
  Plug2,
  PlugZap,
  Plus,
  Pocket,
  PocketKnife,
  Podcast,
  Pointer,
  PointerOff,
  Popcorn,
  Popsicle,
  PoundSterling,
  Power,
  PowerOff,
  Presentation,
  Printer,
  PrinterCheck,
  Projector,
  Proportions,
  Puzzle,
  Pyramid,
  QrCode,
  Quote,
  Rabbit,
  Radar,
  Radiation,
  Radical,
  Radio,
  RadioReceiver,
  RadioTower,
  Radius,
  RailSymbol,
  Rainbow,
  Rat,
  Ratio,
  Receipt,
  ReceiptCent,
  ReceiptEuro,
  ReceiptIndianRupee,
  ReceiptJapaneseYen,
  ReceiptPoundSterling,
  ReceiptRussianRuble,
  ReceiptSwissFranc,
  ReceiptText,
  ReceiptTurkishLira,
  RectangleCircle,
  RectangleEllipsis,
  RectangleGoggles,
  RectangleHorizontal,
  RectangleVertical,
  Recycle,
  Redo,
  Redo2,
  RedoDot,
  RefreshCcw,
  RefreshCcwDot,
  RefreshCw,
  RefreshCwOff,
  Refrigerator,
  Regex,
  RemoveFormatting,
  Repeat,
  Repeat1,
  Repeat2,
  Replace,
  ReplaceAll,
  Reply,
  ReplyAll,
  Rewind,
  Ribbon,
  Rocket,
  RockingChair,
  RollerCoaster,
  Rose,
  Rotate3d,
  RotateCcw,
  RotateCcwKey,
  RotateCcwSquare,
  RotateCw,
  RotateCwSquare,
  Route,
  RouteOff,
  Router,
  Rows2,
  Rows3,
  Rows4,
  Rss,
  Ruler,
  RulerDimensionLine,
  RussianRuble,
  Sailboat,
  Salad,
  Sandwich,
  Satellite,
  SatelliteDish,
  SaudiRiyal,
  Save,
  SaveAll,
  SaveOff,
  Scale,
  Scale3d,
  Scaling,
  Scan,
  ScanBarcode,
  ScanEye,
  ScanFace,
  ScanHeart,
  ScanLine,
  ScanQrCode,
  ScanSearch,
  ScanText,
  School,
  Scissors,
  ScissorsLineDashed,
  ScreenShare,
  ScreenShareOff,
  Scroll,
  ScrollText,
  Search,
  SearchCheck,
  SearchCode,
  SearchSlash,
  SearchX,
  Section,
  Send,
  SendHorizontal,
  SendToBack,
  SeparatorHorizontal,
  SeparatorVertical,
  Server,
  ServerCog,
  ServerCrash,
  ServerOff,
  Settings,
  Settings2,
  Shapes,
  Share,
  Share2,
  Sheet,
  Shell,
  Shield,
  ShieldAlert,
  ShieldBan,
  ShieldCheck,
  ShieldEllipsis,
  ShieldHalf,
  ShieldMinus,
  ShieldOff,
  ShieldPlus,
  ShieldQuestionMark,
  ShieldUser,
  ShieldX,
  Ship,
  ShipWheel,
  Shirt,
  ShoppingBag,
  ShoppingBasket,
  ShoppingCart,
  Shovel,
  ShowerHead,
  Shredder,
  Shrimp,
  Shrink,
  Shrub,
  Shuffle,
  Sigma,
  Signal,
  SignalHigh,
  SignalLow,
  SignalMedium,
  SignalZero,
  Signature,
  Signpost,
  SignpostBig,
  Siren,
  SkipBack,
  SkipForward,
  Skull,
  Slack,
  Slash,
  Slice,
  SlidersHorizontal,
  SlidersVertical,
  Smartphone,
  SmartphoneCharging,
  SmartphoneNfc,
  Smile,
  SmilePlus,
  Snail,
  Snowflake,
  SoapDispenserDroplet,
  Sofa,
  SolarPanel,
  Soup,
  Space,
  Spade,
  Sparkle,
  Sparkles,
  Speaker,
  Speech,
  SpellCheck,
  SpellCheck2,
  Spline,
  SplinePointer,
  Split,
  Spool,
  Spotlight,
  SprayCan,
  Sprout,
  Square,
  SquareActivity,
  SquareArrowDown,
  SquareArrowDownLeft,
  SquareArrowDownRight,
  SquareArrowLeft,
  SquareArrowOutDownLeft,
  SquareArrowOutDownRight,
  SquareArrowOutUpLeft,
  SquareArrowOutUpRight,
  SquareArrowRight,
  SquareArrowUp,
  SquareArrowUpLeft,
  SquareArrowUpRight,
  SquareAsterisk,
  SquareBottomDashedScissors,
  SquareChartGantt,
  SquareCheck,
  SquareCheckBig,
  SquareChevronDown,
  SquareChevronLeft,
  SquareChevronRight,
  SquareChevronUp,
  SquareCode,
  SquareDashed,
  SquareDashedBottom,
  SquareDashedBottomCode,
  SquareDashedKanban,
  SquareDashedMousePointer,
  SquareDashedTopSolid,
  SquareDivide,
  SquareDot,
  SquareEqual,
  SquareFunction,
  SquareKanban,
  SquareLibrary,
  SquareM,
  SquareMenu,
  SquareMinus,
  SquareMousePointer,
  SquareParking,
  SquareParkingOff,
  SquarePause,
  SquarePen,
  SquarePercent,
  SquarePi,
  SquarePilcrow,
  SquarePlay,
  SquarePlus,
  SquarePower,
  SquareRadical,
  SquareRoundCorner,
  SquareScissors,
  SquareSigma,
  SquareSlash,
  SquareSplitHorizontal,
  SquareSplitVertical,
  SquareSquare,
  SquareStack,
  SquareStar,
  SquareStop,
  SquareTerminal,
  SquareUser,
  SquareUserRound,
  SquareX,
  SquaresExclude,
  SquaresIntersect,
  SquaresSubtract,
  SquaresUnite,
  Squircle,
  SquircleDashed,
  Squirrel,
  Stamp,
  Star,
  StarHalf,
  StarOff,
  StepBack,
  StepForward,
  Stethoscope,
  Sticker,
  StickyNote,
  Store,
  StretchHorizontal,
  StretchVertical,
  Strikethrough,
  Subscript,
  Sun,
  SunDim,
  SunMedium,
  SunMoon,
  SunSnow,
  Sunrise,
  Sunset,
  Superscript,
  SwatchBook,
  SwissFranc,
  SwitchCamera,
  Sword,
  Swords,
  Syringe,
  Table,
  Table2,
  TableCellsMerge,
  TableCellsSplit,
  TableColumnsSplit,
  TableOfContents,
  TableProperties,
  TableRowsSplit,
  Tablet,
  TabletSmartphone,
  Tablets,
  Tag,
  Tags,
  Tally1,
  Tally2,
  Tally3,
  Tally4,
  Tally5,
  Tangent,
  Target,
  Telescope,
  Tent,
  TentTree,
  Terminal,
  TestTube,
  TestTubeDiagonal,
  TestTubes,
  TextAlignCenter,
  TextAlignEnd,
  TextAlignJustify,
  TextAlignStart,
  TextCursor,
  TextCursorInput,
  TextInitial,
  TextQuote,
  TextSearch,
  TextSelect,
  TextWrap,
  Theater,
  Thermometer,
  ThermometerSnowflake,
  ThermometerSun,
  ThumbsDown,
  ThumbsUp,
  Ticket,
  TicketCheck,
  TicketMinus,
  TicketPercent,
  TicketPlus,
  TicketSlash,
  TicketX,
  Tickets,
  TicketsPlane,
  Timer,
  TimerOff,
  TimerReset,
  ToggleLeft,
  ToggleRight,
  Toilet,
  ToolCase,
  Tornado,
  Torus,
  Touchpad,
  TouchpadOff,
  TowerControl,
  ToyBrick,
  Tractor,
  TrafficCone,
  TrainFront,
  TrainFrontTunnel,
  TrainTrack,
  TramFront,
  Transgender,
  Trash,
  Trash2,
  TreeDeciduous,
  TreePalm,
  TreePine,
  Trees,
  Trello,
  TrendingDown,
  TrendingUp,
  TrendingUpDown,
  Triangle,
  TriangleAlert,
  TriangleDashed,
  TriangleRight,
  Trophy,
  Truck,
  TruckElectric,
  TurkishLira,
  Turntable,
  Turtle,
  Tv,
  TvMinimal,
  TvMinimalPlay,
  Twitch,
  Twitter,
  Type,
  TypeOutline,
  Umbrella,
  UmbrellaOff,
  Underline,
  Undo,
  Undo2,
  UndoDot,
  UnfoldHorizontal,
  UnfoldVertical,
  Ungroup,
  University,
  Unlink,
  Unlink2,
  Unplug,
  Upload,
  Usb,
  User,
  UserCheck,
  UserCog,
  UserLock,
  UserMinus,
  UserPen,
  UserPlus,
  UserRound,
  UserRoundCheck,
  UserRoundCog,
  UserRoundMinus,
  UserRoundPen,
  UserRoundPlus,
  UserRoundSearch,
  UserRoundX,
  UserSearch,
  UserStar,
  UserX,
  Users,
  UsersRound,
  Utensils,
  UtensilsCrossed,
  UtilityPole,
  Variable,
  Vault,
  VectorSquare,
  Vegan,
  VenetianMask,
  Venus,
  VenusAndMars,
  Vibrate,
  VibrateOff,
  Video,
  VideoOff,
  Videotape,
  View,
  Voicemail,
  Volleyball,
  Volume,
  Volume1,
  Volume2,
  VolumeOff,
  VolumeX,
  Vote,
  Wallet,
  WalletCards,
  WalletMinimal,
  Wallpaper,
  Wand,
  WandSparkles,
  Warehouse,
  WashingMachine,
  Watch,
  Waves,
  WavesArrowDown,
  WavesArrowUp,
  WavesLadder,
  Waypoints,
  Webcam,
  Webhook,
  WebhookOff,
  Weight,
  Wheat,
  WheatOff,
  WholeWord,
  Wifi,
  WifiCog,
  WifiHigh,
  WifiLow,
  WifiOff,
  WifiPen,
  WifiSync,
  WifiZero,
  Wind,
  WindArrowDown,
  Wine,
  WineOff,
  Workflow,
  Worm,
  Wrench,
  X,
  Youtube,
  Zap,
  ZapOff,
  ZoomIn,
  ZoomOut
}, Symbol.toStringTag, { value: "Module" }));
/**
 * @license lucide-react v0.555.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */
const AllIcons = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AArrowDown,
  AArrowDownIcon: AArrowDown,
  AArrowUp,
  AArrowUpIcon: AArrowUp,
  ALargeSmall,
  ALargeSmallIcon: ALargeSmall,
  Accessibility,
  AccessibilityIcon: Accessibility,
  Activity,
  ActivityIcon: Activity,
  ActivitySquare: SquareActivity,
  ActivitySquareIcon: SquareActivity,
  AirVent,
  AirVentIcon: AirVent,
  Airplay,
  AirplayIcon: Airplay,
  AlarmCheck: AlarmClockCheck,
  AlarmCheckIcon: AlarmClockCheck,
  AlarmClock,
  AlarmClockCheck,
  AlarmClockCheckIcon: AlarmClockCheck,
  AlarmClockIcon: AlarmClock,
  AlarmClockMinus,
  AlarmClockMinusIcon: AlarmClockMinus,
  AlarmClockOff,
  AlarmClockOffIcon: AlarmClockOff,
  AlarmClockPlus,
  AlarmClockPlusIcon: AlarmClockPlus,
  AlarmMinus: AlarmClockMinus,
  AlarmMinusIcon: AlarmClockMinus,
  AlarmPlus: AlarmClockPlus,
  AlarmPlusIcon: AlarmClockPlus,
  AlarmSmoke,
  AlarmSmokeIcon: AlarmSmoke,
  Album,
  AlbumIcon: Album,
  AlertCircle: CircleAlert,
  AlertCircleIcon: CircleAlert,
  AlertOctagon: OctagonAlert,
  AlertOctagonIcon: OctagonAlert,
  AlertTriangle: TriangleAlert,
  AlertTriangleIcon: TriangleAlert,
  AlignCenter: TextAlignCenter,
  AlignCenterHorizontal,
  AlignCenterHorizontalIcon: AlignCenterHorizontal,
  AlignCenterIcon: TextAlignCenter,
  AlignCenterVertical,
  AlignCenterVerticalIcon: AlignCenterVertical,
  AlignEndHorizontal,
  AlignEndHorizontalIcon: AlignEndHorizontal,
  AlignEndVertical,
  AlignEndVerticalIcon: AlignEndVertical,
  AlignHorizontalDistributeCenter,
  AlignHorizontalDistributeCenterIcon: AlignHorizontalDistributeCenter,
  AlignHorizontalDistributeEnd,
  AlignHorizontalDistributeEndIcon: AlignHorizontalDistributeEnd,
  AlignHorizontalDistributeStart,
  AlignHorizontalDistributeStartIcon: AlignHorizontalDistributeStart,
  AlignHorizontalJustifyCenter,
  AlignHorizontalJustifyCenterIcon: AlignHorizontalJustifyCenter,
  AlignHorizontalJustifyEnd,
  AlignHorizontalJustifyEndIcon: AlignHorizontalJustifyEnd,
  AlignHorizontalJustifyStart,
  AlignHorizontalJustifyStartIcon: AlignHorizontalJustifyStart,
  AlignHorizontalSpaceAround,
  AlignHorizontalSpaceAroundIcon: AlignHorizontalSpaceAround,
  AlignHorizontalSpaceBetween,
  AlignHorizontalSpaceBetweenIcon: AlignHorizontalSpaceBetween,
  AlignJustify: TextAlignJustify,
  AlignJustifyIcon: TextAlignJustify,
  AlignLeft: TextAlignStart,
  AlignLeftIcon: TextAlignStart,
  AlignRight: TextAlignEnd,
  AlignRightIcon: TextAlignEnd,
  AlignStartHorizontal,
  AlignStartHorizontalIcon: AlignStartHorizontal,
  AlignStartVertical,
  AlignStartVerticalIcon: AlignStartVertical,
  AlignVerticalDistributeCenter,
  AlignVerticalDistributeCenterIcon: AlignVerticalDistributeCenter,
  AlignVerticalDistributeEnd,
  AlignVerticalDistributeEndIcon: AlignVerticalDistributeEnd,
  AlignVerticalDistributeStart,
  AlignVerticalDistributeStartIcon: AlignVerticalDistributeStart,
  AlignVerticalJustifyCenter,
  AlignVerticalJustifyCenterIcon: AlignVerticalJustifyCenter,
  AlignVerticalJustifyEnd,
  AlignVerticalJustifyEndIcon: AlignVerticalJustifyEnd,
  AlignVerticalJustifyStart,
  AlignVerticalJustifyStartIcon: AlignVerticalJustifyStart,
  AlignVerticalSpaceAround,
  AlignVerticalSpaceAroundIcon: AlignVerticalSpaceAround,
  AlignVerticalSpaceBetween,
  AlignVerticalSpaceBetweenIcon: AlignVerticalSpaceBetween,
  Ambulance,
  AmbulanceIcon: Ambulance,
  Ampersand,
  AmpersandIcon: Ampersand,
  Ampersands,
  AmpersandsIcon: Ampersands,
  Amphora,
  AmphoraIcon: Amphora,
  Anchor,
  AnchorIcon: Anchor,
  Angry,
  AngryIcon: Angry,
  Annoyed,
  AnnoyedIcon: Annoyed,
  Antenna,
  AntennaIcon: Antenna,
  Anvil,
  AnvilIcon: Anvil,
  Aperture,
  ApertureIcon: Aperture,
  AppWindow,
  AppWindowIcon: AppWindow,
  AppWindowMac,
  AppWindowMacIcon: AppWindowMac,
  Apple,
  AppleIcon: Apple,
  Archive,
  ArchiveIcon: Archive,
  ArchiveRestore,
  ArchiveRestoreIcon: ArchiveRestore,
  ArchiveX,
  ArchiveXIcon: ArchiveX,
  AreaChart: ChartArea,
  AreaChartIcon: ChartArea,
  Armchair,
  ArmchairIcon: Armchair,
  ArrowBigDown,
  ArrowBigDownDash,
  ArrowBigDownDashIcon: ArrowBigDownDash,
  ArrowBigDownIcon: ArrowBigDown,
  ArrowBigLeft,
  ArrowBigLeftDash,
  ArrowBigLeftDashIcon: ArrowBigLeftDash,
  ArrowBigLeftIcon: ArrowBigLeft,
  ArrowBigRight,
  ArrowBigRightDash,
  ArrowBigRightDashIcon: ArrowBigRightDash,
  ArrowBigRightIcon: ArrowBigRight,
  ArrowBigUp,
  ArrowBigUpDash,
  ArrowBigUpDashIcon: ArrowBigUpDash,
  ArrowBigUpIcon: ArrowBigUp,
  ArrowDown,
  ArrowDown01,
  ArrowDown01Icon: ArrowDown01,
  ArrowDown10,
  ArrowDown10Icon: ArrowDown10,
  ArrowDownAZ,
  ArrowDownAZIcon: ArrowDownAZ,
  ArrowDownAz: ArrowDownAZ,
  ArrowDownAzIcon: ArrowDownAZ,
  ArrowDownCircle: CircleArrowDown,
  ArrowDownCircleIcon: CircleArrowDown,
  ArrowDownFromLine,
  ArrowDownFromLineIcon: ArrowDownFromLine,
  ArrowDownIcon: ArrowDown,
  ArrowDownLeft,
  ArrowDownLeftFromCircle: CircleArrowOutDownLeft,
  ArrowDownLeftFromCircleIcon: CircleArrowOutDownLeft,
  ArrowDownLeftFromSquare: SquareArrowOutDownLeft,
  ArrowDownLeftFromSquareIcon: SquareArrowOutDownLeft,
  ArrowDownLeftIcon: ArrowDownLeft,
  ArrowDownLeftSquare: SquareArrowDownLeft,
  ArrowDownLeftSquareIcon: SquareArrowDownLeft,
  ArrowDownNarrowWide,
  ArrowDownNarrowWideIcon: ArrowDownNarrowWide,
  ArrowDownRight,
  ArrowDownRightFromCircle: CircleArrowOutDownRight,
  ArrowDownRightFromCircleIcon: CircleArrowOutDownRight,
  ArrowDownRightFromSquare: SquareArrowOutDownRight,
  ArrowDownRightFromSquareIcon: SquareArrowOutDownRight,
  ArrowDownRightIcon: ArrowDownRight,
  ArrowDownRightSquare: SquareArrowDownRight,
  ArrowDownRightSquareIcon: SquareArrowDownRight,
  ArrowDownSquare: SquareArrowDown,
  ArrowDownSquareIcon: SquareArrowDown,
  ArrowDownToDot,
  ArrowDownToDotIcon: ArrowDownToDot,
  ArrowDownToLine,
  ArrowDownToLineIcon: ArrowDownToLine,
  ArrowDownUp,
  ArrowDownUpIcon: ArrowDownUp,
  ArrowDownWideNarrow,
  ArrowDownWideNarrowIcon: ArrowDownWideNarrow,
  ArrowDownZA,
  ArrowDownZAIcon: ArrowDownZA,
  ArrowDownZa: ArrowDownZA,
  ArrowDownZaIcon: ArrowDownZA,
  ArrowLeft,
  ArrowLeftCircle: CircleArrowLeft,
  ArrowLeftCircleIcon: CircleArrowLeft,
  ArrowLeftFromLine,
  ArrowLeftFromLineIcon: ArrowLeftFromLine,
  ArrowLeftIcon: ArrowLeft,
  ArrowLeftRight,
  ArrowLeftRightIcon: ArrowLeftRight,
  ArrowLeftSquare: SquareArrowLeft,
  ArrowLeftSquareIcon: SquareArrowLeft,
  ArrowLeftToLine,
  ArrowLeftToLineIcon: ArrowLeftToLine,
  ArrowRight,
  ArrowRightCircle: CircleArrowRight,
  ArrowRightCircleIcon: CircleArrowRight,
  ArrowRightFromLine,
  ArrowRightFromLineIcon: ArrowRightFromLine,
  ArrowRightIcon: ArrowRight,
  ArrowRightLeft,
  ArrowRightLeftIcon: ArrowRightLeft,
  ArrowRightSquare: SquareArrowRight,
  ArrowRightSquareIcon: SquareArrowRight,
  ArrowRightToLine,
  ArrowRightToLineIcon: ArrowRightToLine,
  ArrowUp,
  ArrowUp01,
  ArrowUp01Icon: ArrowUp01,
  ArrowUp10,
  ArrowUp10Icon: ArrowUp10,
  ArrowUpAZ,
  ArrowUpAZIcon: ArrowUpAZ,
  ArrowUpAz: ArrowUpAZ,
  ArrowUpAzIcon: ArrowUpAZ,
  ArrowUpCircle: CircleArrowUp,
  ArrowUpCircleIcon: CircleArrowUp,
  ArrowUpDown,
  ArrowUpDownIcon: ArrowUpDown,
  ArrowUpFromDot,
  ArrowUpFromDotIcon: ArrowUpFromDot,
  ArrowUpFromLine,
  ArrowUpFromLineIcon: ArrowUpFromLine,
  ArrowUpIcon: ArrowUp,
  ArrowUpLeft,
  ArrowUpLeftFromCircle: CircleArrowOutUpLeft,
  ArrowUpLeftFromCircleIcon: CircleArrowOutUpLeft,
  ArrowUpLeftFromSquare: SquareArrowOutUpLeft,
  ArrowUpLeftFromSquareIcon: SquareArrowOutUpLeft,
  ArrowUpLeftIcon: ArrowUpLeft,
  ArrowUpLeftSquare: SquareArrowUpLeft,
  ArrowUpLeftSquareIcon: SquareArrowUpLeft,
  ArrowUpNarrowWide,
  ArrowUpNarrowWideIcon: ArrowUpNarrowWide,
  ArrowUpRight,
  ArrowUpRightFromCircle: CircleArrowOutUpRight,
  ArrowUpRightFromCircleIcon: CircleArrowOutUpRight,
  ArrowUpRightFromSquare: SquareArrowOutUpRight,
  ArrowUpRightFromSquareIcon: SquareArrowOutUpRight,
  ArrowUpRightIcon: ArrowUpRight,
  ArrowUpRightSquare: SquareArrowUpRight,
  ArrowUpRightSquareIcon: SquareArrowUpRight,
  ArrowUpSquare: SquareArrowUp,
  ArrowUpSquareIcon: SquareArrowUp,
  ArrowUpToLine,
  ArrowUpToLineIcon: ArrowUpToLine,
  ArrowUpWideNarrow,
  ArrowUpWideNarrowIcon: ArrowUpWideNarrow,
  ArrowUpZA,
  ArrowUpZAIcon: ArrowUpZA,
  ArrowUpZa: ArrowUpZA,
  ArrowUpZaIcon: ArrowUpZA,
  ArrowsUpFromLine,
  ArrowsUpFromLineIcon: ArrowsUpFromLine,
  Asterisk,
  AsteriskIcon: Asterisk,
  AsteriskSquare: SquareAsterisk,
  AsteriskSquareIcon: SquareAsterisk,
  AtSign,
  AtSignIcon: AtSign,
  Atom,
  AtomIcon: Atom,
  AudioLines,
  AudioLinesIcon: AudioLines,
  AudioWaveform,
  AudioWaveformIcon: AudioWaveform,
  Award,
  AwardIcon: Award,
  Axe,
  AxeIcon: Axe,
  Axis3D: Axis3d,
  Axis3DIcon: Axis3d,
  Axis3d,
  Axis3dIcon: Axis3d,
  Baby,
  BabyIcon: Baby,
  Backpack,
  BackpackIcon: Backpack,
  Badge,
  BadgeAlert,
  BadgeAlertIcon: BadgeAlert,
  BadgeCent,
  BadgeCentIcon: BadgeCent,
  BadgeCheck,
  BadgeCheckIcon: BadgeCheck,
  BadgeDollarSign,
  BadgeDollarSignIcon: BadgeDollarSign,
  BadgeEuro,
  BadgeEuroIcon: BadgeEuro,
  BadgeHelp: BadgeQuestionMark,
  BadgeHelpIcon: BadgeQuestionMark,
  BadgeIcon: Badge,
  BadgeIndianRupee,
  BadgeIndianRupeeIcon: BadgeIndianRupee,
  BadgeInfo,
  BadgeInfoIcon: BadgeInfo,
  BadgeJapaneseYen,
  BadgeJapaneseYenIcon: BadgeJapaneseYen,
  BadgeMinus,
  BadgeMinusIcon: BadgeMinus,
  BadgePercent,
  BadgePercentIcon: BadgePercent,
  BadgePlus,
  BadgePlusIcon: BadgePlus,
  BadgePoundSterling,
  BadgePoundSterlingIcon: BadgePoundSterling,
  BadgeQuestionMark,
  BadgeQuestionMarkIcon: BadgeQuestionMark,
  BadgeRussianRuble,
  BadgeRussianRubleIcon: BadgeRussianRuble,
  BadgeSwissFranc,
  BadgeSwissFrancIcon: BadgeSwissFranc,
  BadgeTurkishLira,
  BadgeTurkishLiraIcon: BadgeTurkishLira,
  BadgeX,
  BadgeXIcon: BadgeX,
  BaggageClaim,
  BaggageClaimIcon: BaggageClaim,
  Ban,
  BanIcon: Ban,
  Banana,
  BananaIcon: Banana,
  Bandage,
  BandageIcon: Bandage,
  Banknote,
  BanknoteArrowDown,
  BanknoteArrowDownIcon: BanknoteArrowDown,
  BanknoteArrowUp,
  BanknoteArrowUpIcon: BanknoteArrowUp,
  BanknoteIcon: Banknote,
  BanknoteX,
  BanknoteXIcon: BanknoteX,
  BarChart: ChartNoAxesColumnIncreasing,
  BarChart2: ChartNoAxesColumn,
  BarChart2Icon: ChartNoAxesColumn,
  BarChart3: ChartColumn,
  BarChart3Icon: ChartColumn,
  BarChart4: ChartColumnIncreasing,
  BarChart4Icon: ChartColumnIncreasing,
  BarChartBig: ChartColumnBig,
  BarChartBigIcon: ChartColumnBig,
  BarChartHorizontal: ChartBar,
  BarChartHorizontalBig: ChartBarBig,
  BarChartHorizontalBigIcon: ChartBarBig,
  BarChartHorizontalIcon: ChartBar,
  BarChartIcon: ChartNoAxesColumnIncreasing,
  Barcode,
  BarcodeIcon: Barcode,
  Barrel,
  BarrelIcon: Barrel,
  Baseline,
  BaselineIcon: Baseline,
  Bath,
  BathIcon: Bath,
  Battery,
  BatteryCharging,
  BatteryChargingIcon: BatteryCharging,
  BatteryFull,
  BatteryFullIcon: BatteryFull,
  BatteryIcon: Battery,
  BatteryLow,
  BatteryLowIcon: BatteryLow,
  BatteryMedium,
  BatteryMediumIcon: BatteryMedium,
  BatteryPlus,
  BatteryPlusIcon: BatteryPlus,
  BatteryWarning,
  BatteryWarningIcon: BatteryWarning,
  Beaker,
  BeakerIcon: Beaker,
  Bean,
  BeanIcon: Bean,
  BeanOff,
  BeanOffIcon: BeanOff,
  Bed,
  BedDouble,
  BedDoubleIcon: BedDouble,
  BedIcon: Bed,
  BedSingle,
  BedSingleIcon: BedSingle,
  Beef,
  BeefIcon: Beef,
  Beer,
  BeerIcon: Beer,
  BeerOff,
  BeerOffIcon: BeerOff,
  Bell,
  BellDot,
  BellDotIcon: BellDot,
  BellElectric,
  BellElectricIcon: BellElectric,
  BellIcon: Bell,
  BellMinus,
  BellMinusIcon: BellMinus,
  BellOff,
  BellOffIcon: BellOff,
  BellPlus,
  BellPlusIcon: BellPlus,
  BellRing,
  BellRingIcon: BellRing,
  BetweenHorizonalEnd: BetweenHorizontalEnd,
  BetweenHorizonalEndIcon: BetweenHorizontalEnd,
  BetweenHorizonalStart: BetweenHorizontalStart,
  BetweenHorizonalStartIcon: BetweenHorizontalStart,
  BetweenHorizontalEnd,
  BetweenHorizontalEndIcon: BetweenHorizontalEnd,
  BetweenHorizontalStart,
  BetweenHorizontalStartIcon: BetweenHorizontalStart,
  BetweenVerticalEnd,
  BetweenVerticalEndIcon: BetweenVerticalEnd,
  BetweenVerticalStart,
  BetweenVerticalStartIcon: BetweenVerticalStart,
  BicepsFlexed,
  BicepsFlexedIcon: BicepsFlexed,
  Bike,
  BikeIcon: Bike,
  Binary,
  BinaryIcon: Binary,
  Binoculars,
  BinocularsIcon: Binoculars,
  Biohazard,
  BiohazardIcon: Biohazard,
  Bird,
  BirdIcon: Bird,
  Birdhouse,
  BirdhouseIcon: Birdhouse,
  Bitcoin,
  BitcoinIcon: Bitcoin,
  Blend,
  BlendIcon: Blend,
  Blinds,
  BlindsIcon: Blinds,
  Blocks,
  BlocksIcon: Blocks,
  Bluetooth,
  BluetoothConnected,
  BluetoothConnectedIcon: BluetoothConnected,
  BluetoothIcon: Bluetooth,
  BluetoothOff,
  BluetoothOffIcon: BluetoothOff,
  BluetoothSearching,
  BluetoothSearchingIcon: BluetoothSearching,
  Bold,
  BoldIcon: Bold,
  Bolt,
  BoltIcon: Bolt,
  Bomb,
  BombIcon: Bomb,
  Bone,
  BoneIcon: Bone,
  Book,
  BookA,
  BookAIcon: BookA,
  BookAlert,
  BookAlertIcon: BookAlert,
  BookAudio,
  BookAudioIcon: BookAudio,
  BookCheck,
  BookCheckIcon: BookCheck,
  BookCopy,
  BookCopyIcon: BookCopy,
  BookDashed,
  BookDashedIcon: BookDashed,
  BookDown,
  BookDownIcon: BookDown,
  BookHeadphones,
  BookHeadphonesIcon: BookHeadphones,
  BookHeart,
  BookHeartIcon: BookHeart,
  BookIcon: Book,
  BookImage,
  BookImageIcon: BookImage,
  BookKey,
  BookKeyIcon: BookKey,
  BookLock,
  BookLockIcon: BookLock,
  BookMarked,
  BookMarkedIcon: BookMarked,
  BookMinus,
  BookMinusIcon: BookMinus,
  BookOpen,
  BookOpenCheck,
  BookOpenCheckIcon: BookOpenCheck,
  BookOpenIcon: BookOpen,
  BookOpenText,
  BookOpenTextIcon: BookOpenText,
  BookPlus,
  BookPlusIcon: BookPlus,
  BookTemplate: BookDashed,
  BookTemplateIcon: BookDashed,
  BookText,
  BookTextIcon: BookText,
  BookType,
  BookTypeIcon: BookType,
  BookUp,
  BookUp2,
  BookUp2Icon: BookUp2,
  BookUpIcon: BookUp,
  BookUser,
  BookUserIcon: BookUser,
  BookX,
  BookXIcon: BookX,
  Bookmark,
  BookmarkCheck,
  BookmarkCheckIcon: BookmarkCheck,
  BookmarkIcon: Bookmark,
  BookmarkMinus,
  BookmarkMinusIcon: BookmarkMinus,
  BookmarkPlus,
  BookmarkPlusIcon: BookmarkPlus,
  BookmarkX,
  BookmarkXIcon: BookmarkX,
  BoomBox,
  BoomBoxIcon: BoomBox,
  Bot,
  BotIcon: Bot,
  BotMessageSquare,
  BotMessageSquareIcon: BotMessageSquare,
  BotOff,
  BotOffIcon: BotOff,
  BottleWine,
  BottleWineIcon: BottleWine,
  BowArrow,
  BowArrowIcon: BowArrow,
  Box,
  BoxIcon: Box,
  BoxSelect: SquareDashed,
  BoxSelectIcon: SquareDashed,
  Boxes,
  BoxesIcon: Boxes,
  Braces,
  BracesIcon: Braces,
  Brackets,
  BracketsIcon: Brackets,
  Brain,
  BrainCircuit,
  BrainCircuitIcon: BrainCircuit,
  BrainCog,
  BrainCogIcon: BrainCog,
  BrainIcon: Brain,
  BrickWall,
  BrickWallFire,
  BrickWallFireIcon: BrickWallFire,
  BrickWallIcon: BrickWall,
  BrickWallShield,
  BrickWallShieldIcon: BrickWallShield,
  Briefcase,
  BriefcaseBusiness,
  BriefcaseBusinessIcon: BriefcaseBusiness,
  BriefcaseConveyorBelt,
  BriefcaseConveyorBeltIcon: BriefcaseConveyorBelt,
  BriefcaseIcon: Briefcase,
  BriefcaseMedical,
  BriefcaseMedicalIcon: BriefcaseMedical,
  BringToFront,
  BringToFrontIcon: BringToFront,
  Brush,
  BrushCleaning,
  BrushCleaningIcon: BrushCleaning,
  BrushIcon: Brush,
  Bubbles,
  BubblesIcon: Bubbles,
  Bug,
  BugIcon: Bug,
  BugOff,
  BugOffIcon: BugOff,
  BugPlay,
  BugPlayIcon: BugPlay,
  Building,
  Building2,
  Building2Icon: Building2,
  BuildingIcon: Building,
  Bus,
  BusFront,
  BusFrontIcon: BusFront,
  BusIcon: Bus,
  Cable,
  CableCar,
  CableCarIcon: CableCar,
  CableIcon: Cable,
  Cake,
  CakeIcon: Cake,
  CakeSlice,
  CakeSliceIcon: CakeSlice,
  Calculator,
  CalculatorIcon: Calculator,
  Calendar,
  Calendar1,
  Calendar1Icon: Calendar1,
  CalendarArrowDown,
  CalendarArrowDownIcon: CalendarArrowDown,
  CalendarArrowUp,
  CalendarArrowUpIcon: CalendarArrowUp,
  CalendarCheck,
  CalendarCheck2,
  CalendarCheck2Icon: CalendarCheck2,
  CalendarCheckIcon: CalendarCheck,
  CalendarClock,
  CalendarClockIcon: CalendarClock,
  CalendarCog,
  CalendarCogIcon: CalendarCog,
  CalendarDays,
  CalendarDaysIcon: CalendarDays,
  CalendarFold,
  CalendarFoldIcon: CalendarFold,
  CalendarHeart,
  CalendarHeartIcon: CalendarHeart,
  CalendarIcon: Calendar,
  CalendarMinus,
  CalendarMinus2,
  CalendarMinus2Icon: CalendarMinus2,
  CalendarMinusIcon: CalendarMinus,
  CalendarOff,
  CalendarOffIcon: CalendarOff,
  CalendarPlus,
  CalendarPlus2,
  CalendarPlus2Icon: CalendarPlus2,
  CalendarPlusIcon: CalendarPlus,
  CalendarRange,
  CalendarRangeIcon: CalendarRange,
  CalendarSearch,
  CalendarSearchIcon: CalendarSearch,
  CalendarSync,
  CalendarSyncIcon: CalendarSync,
  CalendarX,
  CalendarX2,
  CalendarX2Icon: CalendarX2,
  CalendarXIcon: CalendarX,
  Calendars,
  CalendarsIcon: Calendars,
  Camera,
  CameraIcon: Camera,
  CameraOff,
  CameraOffIcon: CameraOff,
  CandlestickChart: ChartCandlestick,
  CandlestickChartIcon: ChartCandlestick,
  Candy,
  CandyCane,
  CandyCaneIcon: CandyCane,
  CandyIcon: Candy,
  CandyOff,
  CandyOffIcon: CandyOff,
  Cannabis,
  CannabisIcon: Cannabis,
  Captions,
  CaptionsIcon: Captions,
  CaptionsOff,
  CaptionsOffIcon: CaptionsOff,
  Car,
  CarFront,
  CarFrontIcon: CarFront,
  CarIcon: Car,
  CarTaxiFront,
  CarTaxiFrontIcon: CarTaxiFront,
  Caravan,
  CaravanIcon: Caravan,
  CardSim,
  CardSimIcon: CardSim,
  Carrot,
  CarrotIcon: Carrot,
  CaseLower,
  CaseLowerIcon: CaseLower,
  CaseSensitive,
  CaseSensitiveIcon: CaseSensitive,
  CaseUpper,
  CaseUpperIcon: CaseUpper,
  CassetteTape,
  CassetteTapeIcon: CassetteTape,
  Cast,
  CastIcon: Cast,
  Castle,
  CastleIcon: Castle,
  Cat,
  CatIcon: Cat,
  Cctv,
  CctvIcon: Cctv,
  ChartArea,
  ChartAreaIcon: ChartArea,
  ChartBar,
  ChartBarBig,
  ChartBarBigIcon: ChartBarBig,
  ChartBarDecreasing,
  ChartBarDecreasingIcon: ChartBarDecreasing,
  ChartBarIcon: ChartBar,
  ChartBarIncreasing,
  ChartBarIncreasingIcon: ChartBarIncreasing,
  ChartBarStacked,
  ChartBarStackedIcon: ChartBarStacked,
  ChartCandlestick,
  ChartCandlestickIcon: ChartCandlestick,
  ChartColumn,
  ChartColumnBig,
  ChartColumnBigIcon: ChartColumnBig,
  ChartColumnDecreasing,
  ChartColumnDecreasingIcon: ChartColumnDecreasing,
  ChartColumnIcon: ChartColumn,
  ChartColumnIncreasing,
  ChartColumnIncreasingIcon: ChartColumnIncreasing,
  ChartColumnStacked,
  ChartColumnStackedIcon: ChartColumnStacked,
  ChartGantt,
  ChartGanttIcon: ChartGantt,
  ChartLine,
  ChartLineIcon: ChartLine,
  ChartNetwork,
  ChartNetworkIcon: ChartNetwork,
  ChartNoAxesColumn,
  ChartNoAxesColumnDecreasing,
  ChartNoAxesColumnDecreasingIcon: ChartNoAxesColumnDecreasing,
  ChartNoAxesColumnIcon: ChartNoAxesColumn,
  ChartNoAxesColumnIncreasing,
  ChartNoAxesColumnIncreasingIcon: ChartNoAxesColumnIncreasing,
  ChartNoAxesCombined,
  ChartNoAxesCombinedIcon: ChartNoAxesCombined,
  ChartNoAxesGantt,
  ChartNoAxesGanttIcon: ChartNoAxesGantt,
  ChartPie,
  ChartPieIcon: ChartPie,
  ChartScatter,
  ChartScatterIcon: ChartScatter,
  ChartSpline,
  ChartSplineIcon: ChartSpline,
  Check,
  CheckCheck,
  CheckCheckIcon: CheckCheck,
  CheckCircle: CircleCheckBig,
  CheckCircle2: CircleCheck,
  CheckCircle2Icon: CircleCheck,
  CheckCircleIcon: CircleCheckBig,
  CheckIcon: Check,
  CheckLine,
  CheckLineIcon: CheckLine,
  CheckSquare: SquareCheckBig,
  CheckSquare2: SquareCheck,
  CheckSquare2Icon: SquareCheck,
  CheckSquareIcon: SquareCheckBig,
  ChefHat,
  ChefHatIcon: ChefHat,
  Cherry,
  CherryIcon: Cherry,
  ChessBishop,
  ChessBishopIcon: ChessBishop,
  ChessKing,
  ChessKingIcon: ChessKing,
  ChessKnight,
  ChessKnightIcon: ChessKnight,
  ChessPawn,
  ChessPawnIcon: ChessPawn,
  ChessQueen,
  ChessQueenIcon: ChessQueen,
  ChessRook,
  ChessRookIcon: ChessRook,
  ChevronDown,
  ChevronDownCircle: CircleChevronDown,
  ChevronDownCircleIcon: CircleChevronDown,
  ChevronDownIcon: ChevronDown,
  ChevronDownSquare: SquareChevronDown,
  ChevronDownSquareIcon: SquareChevronDown,
  ChevronFirst,
  ChevronFirstIcon: ChevronFirst,
  ChevronLast,
  ChevronLastIcon: ChevronLast,
  ChevronLeft,
  ChevronLeftCircle: CircleChevronLeft,
  ChevronLeftCircleIcon: CircleChevronLeft,
  ChevronLeftIcon: ChevronLeft,
  ChevronLeftSquare: SquareChevronLeft,
  ChevronLeftSquareIcon: SquareChevronLeft,
  ChevronRight,
  ChevronRightCircle: CircleChevronRight,
  ChevronRightCircleIcon: CircleChevronRight,
  ChevronRightIcon: ChevronRight,
  ChevronRightSquare: SquareChevronRight,
  ChevronRightSquareIcon: SquareChevronRight,
  ChevronUp,
  ChevronUpCircle: CircleChevronUp,
  ChevronUpCircleIcon: CircleChevronUp,
  ChevronUpIcon: ChevronUp,
  ChevronUpSquare: SquareChevronUp,
  ChevronUpSquareIcon: SquareChevronUp,
  ChevronsDown,
  ChevronsDownIcon: ChevronsDown,
  ChevronsDownUp,
  ChevronsDownUpIcon: ChevronsDownUp,
  ChevronsLeft,
  ChevronsLeftIcon: ChevronsLeft,
  ChevronsLeftRight,
  ChevronsLeftRightEllipsis,
  ChevronsLeftRightEllipsisIcon: ChevronsLeftRightEllipsis,
  ChevronsLeftRightIcon: ChevronsLeftRight,
  ChevronsRight,
  ChevronsRightIcon: ChevronsRight,
  ChevronsRightLeft,
  ChevronsRightLeftIcon: ChevronsRightLeft,
  ChevronsUp,
  ChevronsUpDown,
  ChevronsUpDownIcon: ChevronsUpDown,
  ChevronsUpIcon: ChevronsUp,
  Chrome: Chromium,
  ChromeIcon: Chromium,
  Chromium,
  ChromiumIcon: Chromium,
  Church,
  ChurchIcon: Church,
  Cigarette,
  CigaretteIcon: Cigarette,
  CigaretteOff,
  CigaretteOffIcon: CigaretteOff,
  Circle,
  CircleAlert,
  CircleAlertIcon: CircleAlert,
  CircleArrowDown,
  CircleArrowDownIcon: CircleArrowDown,
  CircleArrowLeft,
  CircleArrowLeftIcon: CircleArrowLeft,
  CircleArrowOutDownLeft,
  CircleArrowOutDownLeftIcon: CircleArrowOutDownLeft,
  CircleArrowOutDownRight,
  CircleArrowOutDownRightIcon: CircleArrowOutDownRight,
  CircleArrowOutUpLeft,
  CircleArrowOutUpLeftIcon: CircleArrowOutUpLeft,
  CircleArrowOutUpRight,
  CircleArrowOutUpRightIcon: CircleArrowOutUpRight,
  CircleArrowRight,
  CircleArrowRightIcon: CircleArrowRight,
  CircleArrowUp,
  CircleArrowUpIcon: CircleArrowUp,
  CircleCheck,
  CircleCheckBig,
  CircleCheckBigIcon: CircleCheckBig,
  CircleCheckIcon: CircleCheck,
  CircleChevronDown,
  CircleChevronDownIcon: CircleChevronDown,
  CircleChevronLeft,
  CircleChevronLeftIcon: CircleChevronLeft,
  CircleChevronRight,
  CircleChevronRightIcon: CircleChevronRight,
  CircleChevronUp,
  CircleChevronUpIcon: CircleChevronUp,
  CircleDashed,
  CircleDashedIcon: CircleDashed,
  CircleDivide,
  CircleDivideIcon: CircleDivide,
  CircleDollarSign,
  CircleDollarSignIcon: CircleDollarSign,
  CircleDot,
  CircleDotDashed,
  CircleDotDashedIcon: CircleDotDashed,
  CircleDotIcon: CircleDot,
  CircleEllipsis,
  CircleEllipsisIcon: CircleEllipsis,
  CircleEqual,
  CircleEqualIcon: CircleEqual,
  CircleFadingArrowUp,
  CircleFadingArrowUpIcon: CircleFadingArrowUp,
  CircleFadingPlus,
  CircleFadingPlusIcon: CircleFadingPlus,
  CircleGauge,
  CircleGaugeIcon: CircleGauge,
  CircleHelp: CircleQuestionMark,
  CircleHelpIcon: CircleQuestionMark,
  CircleIcon: Circle,
  CircleMinus,
  CircleMinusIcon: CircleMinus,
  CircleOff,
  CircleOffIcon: CircleOff,
  CircleParking,
  CircleParkingIcon: CircleParking,
  CircleParkingOff,
  CircleParkingOffIcon: CircleParkingOff,
  CirclePause,
  CirclePauseIcon: CirclePause,
  CirclePercent,
  CirclePercentIcon: CirclePercent,
  CirclePlay,
  CirclePlayIcon: CirclePlay,
  CirclePlus,
  CirclePlusIcon: CirclePlus,
  CirclePoundSterling,
  CirclePoundSterlingIcon: CirclePoundSterling,
  CirclePower,
  CirclePowerIcon: CirclePower,
  CircleQuestionMark,
  CircleQuestionMarkIcon: CircleQuestionMark,
  CircleSlash,
  CircleSlash2,
  CircleSlash2Icon: CircleSlash2,
  CircleSlashIcon: CircleSlash,
  CircleSlashed: CircleSlash2,
  CircleSlashedIcon: CircleSlash2,
  CircleSmall,
  CircleSmallIcon: CircleSmall,
  CircleStar,
  CircleStarIcon: CircleStar,
  CircleStop,
  CircleStopIcon: CircleStop,
  CircleUser,
  CircleUserIcon: CircleUser,
  CircleUserRound,
  CircleUserRoundIcon: CircleUserRound,
  CircleX,
  CircleXIcon: CircleX,
  CircuitBoard,
  CircuitBoardIcon: CircuitBoard,
  Citrus,
  CitrusIcon: Citrus,
  Clapperboard,
  ClapperboardIcon: Clapperboard,
  Clipboard,
  ClipboardCheck,
  ClipboardCheckIcon: ClipboardCheck,
  ClipboardClock,
  ClipboardClockIcon: ClipboardClock,
  ClipboardCopy,
  ClipboardCopyIcon: ClipboardCopy,
  ClipboardEdit: ClipboardPen,
  ClipboardEditIcon: ClipboardPen,
  ClipboardIcon: Clipboard,
  ClipboardList,
  ClipboardListIcon: ClipboardList,
  ClipboardMinus,
  ClipboardMinusIcon: ClipboardMinus,
  ClipboardPaste,
  ClipboardPasteIcon: ClipboardPaste,
  ClipboardPen,
  ClipboardPenIcon: ClipboardPen,
  ClipboardPenLine,
  ClipboardPenLineIcon: ClipboardPenLine,
  ClipboardPlus,
  ClipboardPlusIcon: ClipboardPlus,
  ClipboardSignature: ClipboardPenLine,
  ClipboardSignatureIcon: ClipboardPenLine,
  ClipboardType,
  ClipboardTypeIcon: ClipboardType,
  ClipboardX,
  ClipboardXIcon: ClipboardX,
  Clock,
  Clock1,
  Clock10,
  Clock10Icon: Clock10,
  Clock11,
  Clock11Icon: Clock11,
  Clock12,
  Clock12Icon: Clock12,
  Clock1Icon: Clock1,
  Clock2,
  Clock2Icon: Clock2,
  Clock3,
  Clock3Icon: Clock3,
  Clock4,
  Clock4Icon: Clock4,
  Clock5,
  Clock5Icon: Clock5,
  Clock6,
  Clock6Icon: Clock6,
  Clock7,
  Clock7Icon: Clock7,
  Clock8,
  Clock8Icon: Clock8,
  Clock9,
  Clock9Icon: Clock9,
  ClockAlert,
  ClockAlertIcon: ClockAlert,
  ClockArrowDown,
  ClockArrowDownIcon: ClockArrowDown,
  ClockArrowUp,
  ClockArrowUpIcon: ClockArrowUp,
  ClockCheck,
  ClockCheckIcon: ClockCheck,
  ClockFading,
  ClockFadingIcon: ClockFading,
  ClockIcon: Clock,
  ClockPlus,
  ClockPlusIcon: ClockPlus,
  ClosedCaption,
  ClosedCaptionIcon: ClosedCaption,
  Cloud,
  CloudAlert,
  CloudAlertIcon: CloudAlert,
  CloudCheck,
  CloudCheckIcon: CloudCheck,
  CloudCog,
  CloudCogIcon: CloudCog,
  CloudDownload,
  CloudDownloadIcon: CloudDownload,
  CloudDrizzle,
  CloudDrizzleIcon: CloudDrizzle,
  CloudFog,
  CloudFogIcon: CloudFog,
  CloudHail,
  CloudHailIcon: CloudHail,
  CloudIcon: Cloud,
  CloudLightning,
  CloudLightningIcon: CloudLightning,
  CloudMoon,
  CloudMoonIcon: CloudMoon,
  CloudMoonRain,
  CloudMoonRainIcon: CloudMoonRain,
  CloudOff,
  CloudOffIcon: CloudOff,
  CloudRain,
  CloudRainIcon: CloudRain,
  CloudRainWind,
  CloudRainWindIcon: CloudRainWind,
  CloudSnow,
  CloudSnowIcon: CloudSnow,
  CloudSun,
  CloudSunIcon: CloudSun,
  CloudSunRain,
  CloudSunRainIcon: CloudSunRain,
  CloudUpload,
  CloudUploadIcon: CloudUpload,
  Cloudy,
  CloudyIcon: Cloudy,
  Clover,
  CloverIcon: Clover,
  Club,
  ClubIcon: Club,
  Code,
  Code2: CodeXml,
  Code2Icon: CodeXml,
  CodeIcon: Code,
  CodeSquare: SquareCode,
  CodeSquareIcon: SquareCode,
  CodeXml,
  CodeXmlIcon: CodeXml,
  Codepen,
  CodepenIcon: Codepen,
  Codesandbox,
  CodesandboxIcon: Codesandbox,
  Coffee,
  CoffeeIcon: Coffee,
  Cog,
  CogIcon: Cog,
  Coins,
  CoinsIcon: Coins,
  Columns: Columns2,
  Columns2,
  Columns2Icon: Columns2,
  Columns3,
  Columns3Cog,
  Columns3CogIcon: Columns3Cog,
  Columns3Icon: Columns3,
  Columns4,
  Columns4Icon: Columns4,
  ColumnsIcon: Columns2,
  ColumnsSettings: Columns3Cog,
  ColumnsSettingsIcon: Columns3Cog,
  Combine,
  CombineIcon: Combine,
  Command,
  CommandIcon: Command,
  Compass,
  CompassIcon: Compass,
  Component,
  ComponentIcon: Component,
  Computer,
  ComputerIcon: Computer,
  ConciergeBell,
  ConciergeBellIcon: ConciergeBell,
  Cone,
  ConeIcon: Cone,
  Construction,
  ConstructionIcon: Construction,
  Contact,
  Contact2: ContactRound,
  Contact2Icon: ContactRound,
  ContactIcon: Contact,
  ContactRound,
  ContactRoundIcon: ContactRound,
  Container,
  ContainerIcon: Container,
  Contrast,
  ContrastIcon: Contrast,
  Cookie,
  CookieIcon: Cookie,
  CookingPot,
  CookingPotIcon: CookingPot,
  Copy,
  CopyCheck,
  CopyCheckIcon: CopyCheck,
  CopyIcon: Copy,
  CopyMinus,
  CopyMinusIcon: CopyMinus,
  CopyPlus,
  CopyPlusIcon: CopyPlus,
  CopySlash,
  CopySlashIcon: CopySlash,
  CopyX,
  CopyXIcon: CopyX,
  Copyleft,
  CopyleftIcon: Copyleft,
  Copyright,
  CopyrightIcon: Copyright,
  CornerDownLeft,
  CornerDownLeftIcon: CornerDownLeft,
  CornerDownRight,
  CornerDownRightIcon: CornerDownRight,
  CornerLeftDown,
  CornerLeftDownIcon: CornerLeftDown,
  CornerLeftUp,
  CornerLeftUpIcon: CornerLeftUp,
  CornerRightDown,
  CornerRightDownIcon: CornerRightDown,
  CornerRightUp,
  CornerRightUpIcon: CornerRightUp,
  CornerUpLeft,
  CornerUpLeftIcon: CornerUpLeft,
  CornerUpRight,
  CornerUpRightIcon: CornerUpRight,
  Cpu,
  CpuIcon: Cpu,
  CreativeCommons,
  CreativeCommonsIcon: CreativeCommons,
  CreditCard,
  CreditCardIcon: CreditCard,
  Croissant,
  CroissantIcon: Croissant,
  Crop,
  CropIcon: Crop,
  Cross,
  CrossIcon: Cross,
  Crosshair,
  CrosshairIcon: Crosshair,
  Crown,
  CrownIcon: Crown,
  Cuboid,
  CuboidIcon: Cuboid,
  CupSoda,
  CupSodaIcon: CupSoda,
  CurlyBraces: Braces,
  CurlyBracesIcon: Braces,
  Currency,
  CurrencyIcon: Currency,
  Cylinder,
  CylinderIcon: Cylinder,
  Dam,
  DamIcon: Dam,
  Database,
  DatabaseBackup,
  DatabaseBackupIcon: DatabaseBackup,
  DatabaseIcon: Database,
  DatabaseZap,
  DatabaseZapIcon: DatabaseZap,
  DecimalsArrowLeft,
  DecimalsArrowLeftIcon: DecimalsArrowLeft,
  DecimalsArrowRight,
  DecimalsArrowRightIcon: DecimalsArrowRight,
  Delete,
  DeleteIcon: Delete,
  Dessert,
  DessertIcon: Dessert,
  Diameter,
  DiameterIcon: Diameter,
  Diamond,
  DiamondIcon: Diamond,
  DiamondMinus,
  DiamondMinusIcon: DiamondMinus,
  DiamondPercent,
  DiamondPercentIcon: DiamondPercent,
  DiamondPlus,
  DiamondPlusIcon: DiamondPlus,
  Dice1,
  Dice1Icon: Dice1,
  Dice2,
  Dice2Icon: Dice2,
  Dice3,
  Dice3Icon: Dice3,
  Dice4,
  Dice4Icon: Dice4,
  Dice5,
  Dice5Icon: Dice5,
  Dice6,
  Dice6Icon: Dice6,
  Dices,
  DicesIcon: Dices,
  Diff,
  DiffIcon: Diff,
  Disc,
  Disc2,
  Disc2Icon: Disc2,
  Disc3,
  Disc3Icon: Disc3,
  DiscAlbum,
  DiscAlbumIcon: DiscAlbum,
  DiscIcon: Disc,
  Divide,
  DivideCircle: CircleDivide,
  DivideCircleIcon: CircleDivide,
  DivideIcon: Divide,
  DivideSquare: SquareDivide,
  DivideSquareIcon: SquareDivide,
  Dna,
  DnaIcon: Dna,
  DnaOff,
  DnaOffIcon: DnaOff,
  Dock,
  DockIcon: Dock,
  Dog,
  DogIcon: Dog,
  DollarSign,
  DollarSignIcon: DollarSign,
  Donut,
  DonutIcon: Donut,
  DoorClosed,
  DoorClosedIcon: DoorClosed,
  DoorClosedLocked,
  DoorClosedLockedIcon: DoorClosedLocked,
  DoorOpen,
  DoorOpenIcon: DoorOpen,
  Dot,
  DotIcon: Dot,
  DotSquare: SquareDot,
  DotSquareIcon: SquareDot,
  Download,
  DownloadCloud: CloudDownload,
  DownloadCloudIcon: CloudDownload,
  DownloadIcon: Download,
  DraftingCompass,
  DraftingCompassIcon: DraftingCompass,
  Drama,
  DramaIcon: Drama,
  Dribbble,
  DribbbleIcon: Dribbble,
  Drill,
  DrillIcon: Drill,
  Drone,
  DroneIcon: Drone,
  Droplet,
  DropletIcon: Droplet,
  DropletOff,
  DropletOffIcon: DropletOff,
  Droplets,
  DropletsIcon: Droplets,
  Drum,
  DrumIcon: Drum,
  Drumstick,
  DrumstickIcon: Drumstick,
  Dumbbell,
  DumbbellIcon: Dumbbell,
  Ear,
  EarIcon: Ear,
  EarOff,
  EarOffIcon: EarOff,
  Earth,
  EarthIcon: Earth,
  EarthLock,
  EarthLockIcon: EarthLock,
  Eclipse,
  EclipseIcon: Eclipse,
  Edit: SquarePen,
  Edit2: Pen,
  Edit2Icon: Pen,
  Edit3: PenLine,
  Edit3Icon: PenLine,
  EditIcon: SquarePen,
  Egg,
  EggFried,
  EggFriedIcon: EggFried,
  EggIcon: Egg,
  EggOff,
  EggOffIcon: EggOff,
  Ellipsis,
  EllipsisIcon: Ellipsis,
  EllipsisVertical,
  EllipsisVerticalIcon: EllipsisVertical,
  Equal,
  EqualApproximately,
  EqualApproximatelyIcon: EqualApproximately,
  EqualIcon: Equal,
  EqualNot,
  EqualNotIcon: EqualNot,
  EqualSquare: SquareEqual,
  EqualSquareIcon: SquareEqual,
  Eraser,
  EraserIcon: Eraser,
  EthernetPort,
  EthernetPortIcon: EthernetPort,
  Euro,
  EuroIcon: Euro,
  EvCharger,
  EvChargerIcon: EvCharger,
  Expand,
  ExpandIcon: Expand,
  ExternalLink,
  ExternalLinkIcon: ExternalLink,
  Eye,
  EyeClosed,
  EyeClosedIcon: EyeClosed,
  EyeIcon: Eye,
  EyeOff,
  EyeOffIcon: EyeOff,
  Facebook,
  FacebookIcon: Facebook,
  Factory,
  FactoryIcon: Factory,
  Fan,
  FanIcon: Fan,
  FastForward,
  FastForwardIcon: FastForward,
  Feather,
  FeatherIcon: Feather,
  Fence,
  FenceIcon: Fence,
  FerrisWheel,
  FerrisWheelIcon: FerrisWheel,
  Figma,
  FigmaIcon: Figma,
  File,
  FileArchive,
  FileArchiveIcon: FileArchive,
  FileAudio: FileHeadphone,
  FileAudio2: FileHeadphone,
  FileAudio2Icon: FileHeadphone,
  FileAudioIcon: FileHeadphone,
  FileAxis3D: FileAxis3d,
  FileAxis3DIcon: FileAxis3d,
  FileAxis3d,
  FileAxis3dIcon: FileAxis3d,
  FileBadge,
  FileBadge2: FileBadge,
  FileBadge2Icon: FileBadge,
  FileBadgeIcon: FileBadge,
  FileBarChart: FileChartColumnIncreasing,
  FileBarChart2: FileChartColumn,
  FileBarChart2Icon: FileChartColumn,
  FileBarChartIcon: FileChartColumnIncreasing,
  FileBox,
  FileBoxIcon: FileBox,
  FileBraces,
  FileBracesCorner,
  FileBracesCornerIcon: FileBracesCorner,
  FileBracesIcon: FileBraces,
  FileChartColumn,
  FileChartColumnIcon: FileChartColumn,
  FileChartColumnIncreasing,
  FileChartColumnIncreasingIcon: FileChartColumnIncreasing,
  FileChartLine,
  FileChartLineIcon: FileChartLine,
  FileChartPie,
  FileChartPieIcon: FileChartPie,
  FileCheck,
  FileCheck2: FileCheckCorner,
  FileCheck2Icon: FileCheckCorner,
  FileCheckCorner,
  FileCheckCornerIcon: FileCheckCorner,
  FileCheckIcon: FileCheck,
  FileClock,
  FileClockIcon: FileClock,
  FileCode,
  FileCode2: FileCodeCorner,
  FileCode2Icon: FileCodeCorner,
  FileCodeCorner,
  FileCodeCornerIcon: FileCodeCorner,
  FileCodeIcon: FileCode,
  FileCog,
  FileCog2: FileCog,
  FileCog2Icon: FileCog,
  FileCogIcon: FileCog,
  FileDiff,
  FileDiffIcon: FileDiff,
  FileDigit,
  FileDigitIcon: FileDigit,
  FileDown,
  FileDownIcon: FileDown,
  FileEdit: FilePen,
  FileEditIcon: FilePen,
  FileExclamationPoint,
  FileExclamationPointIcon: FileExclamationPoint,
  FileHeadphone,
  FileHeadphoneIcon: FileHeadphone,
  FileHeart,
  FileHeartIcon: FileHeart,
  FileIcon: File,
  FileImage,
  FileImageIcon: FileImage,
  FileInput,
  FileInputIcon: FileInput,
  FileJson: FileBraces,
  FileJson2: FileBracesCorner,
  FileJson2Icon: FileBracesCorner,
  FileJsonIcon: FileBraces,
  FileKey,
  FileKey2: FileKey,
  FileKey2Icon: FileKey,
  FileKeyIcon: FileKey,
  FileLineChart: FileChartLine,
  FileLineChartIcon: FileChartLine,
  FileLock,
  FileLock2: FileLock,
  FileLock2Icon: FileLock,
  FileLockIcon: FileLock,
  FileMinus,
  FileMinus2: FileMinusCorner,
  FileMinus2Icon: FileMinusCorner,
  FileMinusCorner,
  FileMinusCornerIcon: FileMinusCorner,
  FileMinusIcon: FileMinus,
  FileMusic,
  FileMusicIcon: FileMusic,
  FileOutput,
  FileOutputIcon: FileOutput,
  FilePen,
  FilePenIcon: FilePen,
  FilePenLine,
  FilePenLineIcon: FilePenLine,
  FilePieChart: FileChartPie,
  FilePieChartIcon: FileChartPie,
  FilePlay,
  FilePlayIcon: FilePlay,
  FilePlus,
  FilePlus2: FilePlusCorner,
  FilePlus2Icon: FilePlusCorner,
  FilePlusCorner,
  FilePlusCornerIcon: FilePlusCorner,
  FilePlusIcon: FilePlus,
  FileQuestion: FileQuestionMark,
  FileQuestionIcon: FileQuestionMark,
  FileQuestionMark,
  FileQuestionMarkIcon: FileQuestionMark,
  FileScan,
  FileScanIcon: FileScan,
  FileSearch,
  FileSearch2: FileSearchCorner,
  FileSearch2Icon: FileSearchCorner,
  FileSearchCorner,
  FileSearchCornerIcon: FileSearchCorner,
  FileSearchIcon: FileSearch,
  FileSignal,
  FileSignalIcon: FileSignal,
  FileSignature: FilePenLine,
  FileSignatureIcon: FilePenLine,
  FileSliders,
  FileSlidersIcon: FileSliders,
  FileSpreadsheet,
  FileSpreadsheetIcon: FileSpreadsheet,
  FileStack,
  FileStackIcon: FileStack,
  FileSymlink,
  FileSymlinkIcon: FileSymlink,
  FileTerminal,
  FileTerminalIcon: FileTerminal,
  FileText,
  FileTextIcon: FileText,
  FileType,
  FileType2: FileTypeCorner,
  FileType2Icon: FileTypeCorner,
  FileTypeCorner,
  FileTypeCornerIcon: FileTypeCorner,
  FileTypeIcon: FileType,
  FileUp,
  FileUpIcon: FileUp,
  FileUser,
  FileUserIcon: FileUser,
  FileVideo: FilePlay,
  FileVideo2: FileVideoCamera,
  FileVideo2Icon: FileVideoCamera,
  FileVideoCamera,
  FileVideoCameraIcon: FileVideoCamera,
  FileVideoIcon: FilePlay,
  FileVolume,
  FileVolume2: FileSignal,
  FileVolume2Icon: FileSignal,
  FileVolumeIcon: FileVolume,
  FileWarning: FileExclamationPoint,
  FileWarningIcon: FileExclamationPoint,
  FileX,
  FileX2: FileXCorner,
  FileX2Icon: FileXCorner,
  FileXCorner,
  FileXCornerIcon: FileXCorner,
  FileXIcon: FileX,
  Files,
  FilesIcon: Files,
  Film,
  FilmIcon: Film,
  Filter: Funnel,
  FilterIcon: Funnel,
  FilterX: FunnelX,
  FilterXIcon: FunnelX,
  Fingerprint: FingerprintPattern,
  FingerprintIcon: FingerprintPattern,
  FingerprintPattern,
  FingerprintPatternIcon: FingerprintPattern,
  FireExtinguisher,
  FireExtinguisherIcon: FireExtinguisher,
  Fish,
  FishIcon: Fish,
  FishOff,
  FishOffIcon: FishOff,
  FishSymbol,
  FishSymbolIcon: FishSymbol,
  Flag,
  FlagIcon: Flag,
  FlagOff,
  FlagOffIcon: FlagOff,
  FlagTriangleLeft,
  FlagTriangleLeftIcon: FlagTriangleLeft,
  FlagTriangleRight,
  FlagTriangleRightIcon: FlagTriangleRight,
  Flame,
  FlameIcon: Flame,
  FlameKindling,
  FlameKindlingIcon: FlameKindling,
  Flashlight,
  FlashlightIcon: Flashlight,
  FlashlightOff,
  FlashlightOffIcon: FlashlightOff,
  FlaskConical,
  FlaskConicalIcon: FlaskConical,
  FlaskConicalOff,
  FlaskConicalOffIcon: FlaskConicalOff,
  FlaskRound,
  FlaskRoundIcon: FlaskRound,
  FlipHorizontal,
  FlipHorizontal2,
  FlipHorizontal2Icon: FlipHorizontal2,
  FlipHorizontalIcon: FlipHorizontal,
  FlipVertical,
  FlipVertical2,
  FlipVertical2Icon: FlipVertical2,
  FlipVerticalIcon: FlipVertical,
  Flower,
  Flower2,
  Flower2Icon: Flower2,
  FlowerIcon: Flower,
  Focus,
  FocusIcon: Focus,
  FoldHorizontal,
  FoldHorizontalIcon: FoldHorizontal,
  FoldVertical,
  FoldVerticalIcon: FoldVertical,
  Folder,
  FolderArchive,
  FolderArchiveIcon: FolderArchive,
  FolderCheck,
  FolderCheckIcon: FolderCheck,
  FolderClock,
  FolderClockIcon: FolderClock,
  FolderClosed,
  FolderClosedIcon: FolderClosed,
  FolderCode,
  FolderCodeIcon: FolderCode,
  FolderCog,
  FolderCog2: FolderCog,
  FolderCog2Icon: FolderCog,
  FolderCogIcon: FolderCog,
  FolderDot,
  FolderDotIcon: FolderDot,
  FolderDown,
  FolderDownIcon: FolderDown,
  FolderEdit: FolderPen,
  FolderEditIcon: FolderPen,
  FolderGit,
  FolderGit2,
  FolderGit2Icon: FolderGit2,
  FolderGitIcon: FolderGit,
  FolderHeart,
  FolderHeartIcon: FolderHeart,
  FolderIcon: Folder,
  FolderInput,
  FolderInputIcon: FolderInput,
  FolderKanban,
  FolderKanbanIcon: FolderKanban,
  FolderKey,
  FolderKeyIcon: FolderKey,
  FolderLock,
  FolderLockIcon: FolderLock,
  FolderMinus,
  FolderMinusIcon: FolderMinus,
  FolderOpen,
  FolderOpenDot,
  FolderOpenDotIcon: FolderOpenDot,
  FolderOpenIcon: FolderOpen,
  FolderOutput,
  FolderOutputIcon: FolderOutput,
  FolderPen,
  FolderPenIcon: FolderPen,
  FolderPlus,
  FolderPlusIcon: FolderPlus,
  FolderRoot,
  FolderRootIcon: FolderRoot,
  FolderSearch,
  FolderSearch2,
  FolderSearch2Icon: FolderSearch2,
  FolderSearchIcon: FolderSearch,
  FolderSymlink,
  FolderSymlinkIcon: FolderSymlink,
  FolderSync,
  FolderSyncIcon: FolderSync,
  FolderTree,
  FolderTreeIcon: FolderTree,
  FolderUp,
  FolderUpIcon: FolderUp,
  FolderX,
  FolderXIcon: FolderX,
  Folders,
  FoldersIcon: Folders,
  Footprints,
  FootprintsIcon: Footprints,
  ForkKnife: Utensils,
  ForkKnifeCrossed: UtensilsCrossed,
  ForkKnifeCrossedIcon: UtensilsCrossed,
  ForkKnifeIcon: Utensils,
  Forklift,
  ForkliftIcon: Forklift,
  Form,
  FormIcon: Form,
  FormInput: RectangleEllipsis,
  FormInputIcon: RectangleEllipsis,
  Forward,
  ForwardIcon: Forward,
  Frame,
  FrameIcon: Frame,
  Framer,
  FramerIcon: Framer,
  Frown,
  FrownIcon: Frown,
  Fuel,
  FuelIcon: Fuel,
  Fullscreen,
  FullscreenIcon: Fullscreen,
  FunctionSquare: SquareFunction,
  FunctionSquareIcon: SquareFunction,
  Funnel,
  FunnelIcon: Funnel,
  FunnelPlus,
  FunnelPlusIcon: FunnelPlus,
  FunnelX,
  FunnelXIcon: FunnelX,
  GalleryHorizontal,
  GalleryHorizontalEnd,
  GalleryHorizontalEndIcon: GalleryHorizontalEnd,
  GalleryHorizontalIcon: GalleryHorizontal,
  GalleryThumbnails,
  GalleryThumbnailsIcon: GalleryThumbnails,
  GalleryVertical,
  GalleryVerticalEnd,
  GalleryVerticalEndIcon: GalleryVerticalEnd,
  GalleryVerticalIcon: GalleryVertical,
  Gamepad,
  Gamepad2,
  Gamepad2Icon: Gamepad2,
  GamepadDirectional,
  GamepadDirectionalIcon: GamepadDirectional,
  GamepadIcon: Gamepad,
  GanttChart: ChartNoAxesGantt,
  GanttChartIcon: ChartNoAxesGantt,
  GanttChartSquare: SquareChartGantt,
  GanttChartSquareIcon: SquareChartGantt,
  Gauge,
  GaugeCircle: CircleGauge,
  GaugeCircleIcon: CircleGauge,
  GaugeIcon: Gauge,
  Gavel,
  GavelIcon: Gavel,
  Gem,
  GemIcon: Gem,
  GeorgianLari,
  GeorgianLariIcon: GeorgianLari,
  Ghost,
  GhostIcon: Ghost,
  Gift,
  GiftIcon: Gift,
  GitBranch,
  GitBranchIcon: GitBranch,
  GitBranchMinus,
  GitBranchMinusIcon: GitBranchMinus,
  GitBranchPlus,
  GitBranchPlusIcon: GitBranchPlus,
  GitCommit: GitCommitHorizontal,
  GitCommitHorizontal,
  GitCommitHorizontalIcon: GitCommitHorizontal,
  GitCommitIcon: GitCommitHorizontal,
  GitCommitVertical,
  GitCommitVerticalIcon: GitCommitVertical,
  GitCompare,
  GitCompareArrows,
  GitCompareArrowsIcon: GitCompareArrows,
  GitCompareIcon: GitCompare,
  GitFork,
  GitForkIcon: GitFork,
  GitGraph,
  GitGraphIcon: GitGraph,
  GitMerge,
  GitMergeIcon: GitMerge,
  GitPullRequest,
  GitPullRequestArrow,
  GitPullRequestArrowIcon: GitPullRequestArrow,
  GitPullRequestClosed,
  GitPullRequestClosedIcon: GitPullRequestClosed,
  GitPullRequestCreate,
  GitPullRequestCreateArrow,
  GitPullRequestCreateArrowIcon: GitPullRequestCreateArrow,
  GitPullRequestCreateIcon: GitPullRequestCreate,
  GitPullRequestDraft,
  GitPullRequestDraftIcon: GitPullRequestDraft,
  GitPullRequestIcon: GitPullRequest,
  Github,
  GithubIcon: Github,
  Gitlab,
  GitlabIcon: Gitlab,
  GlassWater,
  GlassWaterIcon: GlassWater,
  Glasses,
  GlassesIcon: Glasses,
  Globe,
  Globe2: Earth,
  Globe2Icon: Earth,
  GlobeIcon: Globe,
  GlobeLock,
  GlobeLockIcon: GlobeLock,
  Goal,
  GoalIcon: Goal,
  Gpu,
  GpuIcon: Gpu,
  Grab: HandGrab,
  GrabIcon: HandGrab,
  GraduationCap,
  GraduationCapIcon: GraduationCap,
  Grape,
  GrapeIcon: Grape,
  Grid: Grid3x3,
  Grid2X2: Grid2x2,
  Grid2X2Check: Grid2x2Check,
  Grid2X2CheckIcon: Grid2x2Check,
  Grid2X2Icon: Grid2x2,
  Grid2X2Plus: Grid2x2Plus,
  Grid2X2PlusIcon: Grid2x2Plus,
  Grid2X2X: Grid2x2X,
  Grid2X2XIcon: Grid2x2X,
  Grid2x2,
  Grid2x2Check,
  Grid2x2CheckIcon: Grid2x2Check,
  Grid2x2Icon: Grid2x2,
  Grid2x2Plus,
  Grid2x2PlusIcon: Grid2x2Plus,
  Grid2x2X,
  Grid2x2XIcon: Grid2x2X,
  Grid3X3: Grid3x3,
  Grid3X3Icon: Grid3x3,
  Grid3x2,
  Grid3x2Icon: Grid3x2,
  Grid3x3,
  Grid3x3Icon: Grid3x3,
  GridIcon: Grid3x3,
  Grip,
  GripHorizontal,
  GripHorizontalIcon: GripHorizontal,
  GripIcon: Grip,
  GripVertical,
  GripVerticalIcon: GripVertical,
  Group,
  GroupIcon: Group,
  Guitar,
  GuitarIcon: Guitar,
  Ham,
  HamIcon: Ham,
  Hamburger,
  HamburgerIcon: Hamburger,
  Hammer,
  HammerIcon: Hammer,
  Hand,
  HandCoins,
  HandCoinsIcon: HandCoins,
  HandFist,
  HandFistIcon: HandFist,
  HandGrab,
  HandGrabIcon: HandGrab,
  HandHeart,
  HandHeartIcon: HandHeart,
  HandHelping,
  HandHelpingIcon: HandHelping,
  HandIcon: Hand,
  HandMetal,
  HandMetalIcon: HandMetal,
  HandPlatter,
  HandPlatterIcon: HandPlatter,
  Handbag,
  HandbagIcon: Handbag,
  Handshake,
  HandshakeIcon: Handshake,
  HardDrive,
  HardDriveDownload,
  HardDriveDownloadIcon: HardDriveDownload,
  HardDriveIcon: HardDrive,
  HardDriveUpload,
  HardDriveUploadIcon: HardDriveUpload,
  HardHat,
  HardHatIcon: HardHat,
  Hash,
  HashIcon: Hash,
  HatGlasses,
  HatGlassesIcon: HatGlasses,
  Haze,
  HazeIcon: Haze,
  HdmiPort,
  HdmiPortIcon: HdmiPort,
  Heading,
  Heading1,
  Heading1Icon: Heading1,
  Heading2,
  Heading2Icon: Heading2,
  Heading3,
  Heading3Icon: Heading3,
  Heading4,
  Heading4Icon: Heading4,
  Heading5,
  Heading5Icon: Heading5,
  Heading6,
  Heading6Icon: Heading6,
  HeadingIcon: Heading,
  HeadphoneOff,
  HeadphoneOffIcon: HeadphoneOff,
  Headphones,
  HeadphonesIcon: Headphones,
  Headset,
  HeadsetIcon: Headset,
  Heart,
  HeartCrack,
  HeartCrackIcon: HeartCrack,
  HeartHandshake,
  HeartHandshakeIcon: HeartHandshake,
  HeartIcon: Heart,
  HeartMinus,
  HeartMinusIcon: HeartMinus,
  HeartOff,
  HeartOffIcon: HeartOff,
  HeartPlus,
  HeartPlusIcon: HeartPlus,
  HeartPulse,
  HeartPulseIcon: HeartPulse,
  Heater,
  HeaterIcon: Heater,
  Helicopter,
  HelicopterIcon: Helicopter,
  HelpCircle: CircleQuestionMark,
  HelpCircleIcon: CircleQuestionMark,
  HelpingHand: HandHelping,
  HelpingHandIcon: HandHelping,
  Hexagon,
  HexagonIcon: Hexagon,
  Highlighter,
  HighlighterIcon: Highlighter,
  History,
  HistoryIcon: History,
  Home: House,
  HomeIcon: House,
  Hop,
  HopIcon: Hop,
  HopOff,
  HopOffIcon: HopOff,
  Hospital,
  HospitalIcon: Hospital,
  Hotel,
  HotelIcon: Hotel,
  Hourglass,
  HourglassIcon: Hourglass,
  House,
  HouseHeart,
  HouseHeartIcon: HouseHeart,
  HouseIcon: House,
  HousePlug,
  HousePlugIcon: HousePlug,
  HousePlus,
  HousePlusIcon: HousePlus,
  HouseWifi,
  HouseWifiIcon: HouseWifi,
  IceCream: IceCreamCone,
  IceCream2: IceCreamBowl,
  IceCream2Icon: IceCreamBowl,
  IceCreamBowl,
  IceCreamBowlIcon: IceCreamBowl,
  IceCreamCone,
  IceCreamConeIcon: IceCreamCone,
  IceCreamIcon: IceCreamCone,
  Icon,
  IdCard,
  IdCardIcon: IdCard,
  IdCardLanyard,
  IdCardLanyardIcon: IdCardLanyard,
  Image,
  ImageDown,
  ImageDownIcon: ImageDown,
  ImageIcon: Image,
  ImageMinus,
  ImageMinusIcon: ImageMinus,
  ImageOff,
  ImageOffIcon: ImageOff,
  ImagePlay,
  ImagePlayIcon: ImagePlay,
  ImagePlus,
  ImagePlusIcon: ImagePlus,
  ImageUp,
  ImageUpIcon: ImageUp,
  ImageUpscale,
  ImageUpscaleIcon: ImageUpscale,
  Images,
  ImagesIcon: Images,
  Import,
  ImportIcon: Import,
  Inbox,
  InboxIcon: Inbox,
  Indent: ListIndentIncrease,
  IndentDecrease: ListIndentDecrease,
  IndentDecreaseIcon: ListIndentDecrease,
  IndentIcon: ListIndentIncrease,
  IndentIncrease: ListIndentIncrease,
  IndentIncreaseIcon: ListIndentIncrease,
  IndianRupee,
  IndianRupeeIcon: IndianRupee,
  Infinity: Infinity$1,
  InfinityIcon: Infinity$1,
  Info,
  InfoIcon: Info,
  Inspect: SquareMousePointer,
  InspectIcon: SquareMousePointer,
  InspectionPanel,
  InspectionPanelIcon: InspectionPanel,
  Instagram,
  InstagramIcon: Instagram,
  Italic,
  ItalicIcon: Italic,
  IterationCcw,
  IterationCcwIcon: IterationCcw,
  IterationCw,
  IterationCwIcon: IterationCw,
  JapaneseYen,
  JapaneseYenIcon: JapaneseYen,
  Joystick,
  JoystickIcon: Joystick,
  Kanban,
  KanbanIcon: Kanban,
  KanbanSquare: SquareKanban,
  KanbanSquareDashed: SquareDashedKanban,
  KanbanSquareDashedIcon: SquareDashedKanban,
  KanbanSquareIcon: SquareKanban,
  Kayak,
  KayakIcon: Kayak,
  Key,
  KeyIcon: Key,
  KeyRound,
  KeyRoundIcon: KeyRound,
  KeySquare,
  KeySquareIcon: KeySquare,
  Keyboard,
  KeyboardIcon: Keyboard,
  KeyboardMusic,
  KeyboardMusicIcon: KeyboardMusic,
  KeyboardOff,
  KeyboardOffIcon: KeyboardOff,
  Lamp,
  LampCeiling,
  LampCeilingIcon: LampCeiling,
  LampDesk,
  LampDeskIcon: LampDesk,
  LampFloor,
  LampFloorIcon: LampFloor,
  LampIcon: Lamp,
  LampWallDown,
  LampWallDownIcon: LampWallDown,
  LampWallUp,
  LampWallUpIcon: LampWallUp,
  LandPlot,
  LandPlotIcon: LandPlot,
  Landmark,
  LandmarkIcon: Landmark,
  Languages,
  LanguagesIcon: Languages,
  Laptop,
  Laptop2: LaptopMinimal,
  Laptop2Icon: LaptopMinimal,
  LaptopIcon: Laptop,
  LaptopMinimal,
  LaptopMinimalCheck,
  LaptopMinimalCheckIcon: LaptopMinimalCheck,
  LaptopMinimalIcon: LaptopMinimal,
  Lasso,
  LassoIcon: Lasso,
  LassoSelect,
  LassoSelectIcon: LassoSelect,
  Laugh,
  LaughIcon: Laugh,
  Layers,
  Layers2,
  Layers2Icon: Layers2,
  Layers3: Layers,
  Layers3Icon: Layers,
  LayersIcon: Layers,
  Layout: PanelsTopLeft,
  LayoutDashboard,
  LayoutDashboardIcon: LayoutDashboard,
  LayoutGrid,
  LayoutGridIcon: LayoutGrid,
  LayoutIcon: PanelsTopLeft,
  LayoutList,
  LayoutListIcon: LayoutList,
  LayoutPanelLeft,
  LayoutPanelLeftIcon: LayoutPanelLeft,
  LayoutPanelTop,
  LayoutPanelTopIcon: LayoutPanelTop,
  LayoutTemplate,
  LayoutTemplateIcon: LayoutTemplate,
  Leaf,
  LeafIcon: Leaf,
  LeafyGreen,
  LeafyGreenIcon: LeafyGreen,
  Lectern,
  LecternIcon: Lectern,
  LetterText: TextInitial,
  LetterTextIcon: TextInitial,
  Library,
  LibraryBig,
  LibraryBigIcon: LibraryBig,
  LibraryIcon: Library,
  LibrarySquare: SquareLibrary,
  LibrarySquareIcon: SquareLibrary,
  LifeBuoy,
  LifeBuoyIcon: LifeBuoy,
  Ligature,
  LigatureIcon: Ligature,
  Lightbulb,
  LightbulbIcon: Lightbulb,
  LightbulbOff,
  LightbulbOffIcon: LightbulbOff,
  LineChart: ChartLine,
  LineChartIcon: ChartLine,
  LineSquiggle,
  LineSquiggleIcon: LineSquiggle,
  Link,
  Link2,
  Link2Icon: Link2,
  Link2Off,
  Link2OffIcon: Link2Off,
  LinkIcon: Link,
  Linkedin,
  LinkedinIcon: Linkedin,
  List,
  ListCheck,
  ListCheckIcon: ListCheck,
  ListChecks,
  ListChecksIcon: ListChecks,
  ListChevronsDownUp,
  ListChevronsDownUpIcon: ListChevronsDownUp,
  ListChevronsUpDown,
  ListChevronsUpDownIcon: ListChevronsUpDown,
  ListCollapse,
  ListCollapseIcon: ListCollapse,
  ListEnd,
  ListEndIcon: ListEnd,
  ListFilter,
  ListFilterIcon: ListFilter,
  ListFilterPlus,
  ListFilterPlusIcon: ListFilterPlus,
  ListIcon: List,
  ListIndentDecrease,
  ListIndentDecreaseIcon: ListIndentDecrease,
  ListIndentIncrease,
  ListIndentIncreaseIcon: ListIndentIncrease,
  ListMinus,
  ListMinusIcon: ListMinus,
  ListMusic,
  ListMusicIcon: ListMusic,
  ListOrdered,
  ListOrderedIcon: ListOrdered,
  ListPlus,
  ListPlusIcon: ListPlus,
  ListRestart,
  ListRestartIcon: ListRestart,
  ListStart,
  ListStartIcon: ListStart,
  ListTodo,
  ListTodoIcon: ListTodo,
  ListTree,
  ListTreeIcon: ListTree,
  ListVideo,
  ListVideoIcon: ListVideo,
  ListX,
  ListXIcon: ListX,
  Loader,
  Loader2: LoaderCircle,
  Loader2Icon: LoaderCircle,
  LoaderCircle,
  LoaderCircleIcon: LoaderCircle,
  LoaderIcon: Loader,
  LoaderPinwheel,
  LoaderPinwheelIcon: LoaderPinwheel,
  Locate,
  LocateFixed,
  LocateFixedIcon: LocateFixed,
  LocateIcon: Locate,
  LocateOff,
  LocateOffIcon: LocateOff,
  LocationEdit: MapPinPen,
  LocationEditIcon: MapPinPen,
  Lock,
  LockIcon: Lock,
  LockKeyhole,
  LockKeyholeIcon: LockKeyhole,
  LockKeyholeOpen,
  LockKeyholeOpenIcon: LockKeyholeOpen,
  LockOpen,
  LockOpenIcon: LockOpen,
  LogIn,
  LogInIcon: LogIn,
  LogOut,
  LogOutIcon: LogOut,
  Logs,
  LogsIcon: Logs,
  Lollipop,
  LollipopIcon: Lollipop,
  LucideAArrowDown: AArrowDown,
  LucideAArrowUp: AArrowUp,
  LucideALargeSmall: ALargeSmall,
  LucideAccessibility: Accessibility,
  LucideActivity: Activity,
  LucideActivitySquare: SquareActivity,
  LucideAirVent: AirVent,
  LucideAirplay: Airplay,
  LucideAlarmCheck: AlarmClockCheck,
  LucideAlarmClock: AlarmClock,
  LucideAlarmClockCheck: AlarmClockCheck,
  LucideAlarmClockMinus: AlarmClockMinus,
  LucideAlarmClockOff: AlarmClockOff,
  LucideAlarmClockPlus: AlarmClockPlus,
  LucideAlarmMinus: AlarmClockMinus,
  LucideAlarmPlus: AlarmClockPlus,
  LucideAlarmSmoke: AlarmSmoke,
  LucideAlbum: Album,
  LucideAlertCircle: CircleAlert,
  LucideAlertOctagon: OctagonAlert,
  LucideAlertTriangle: TriangleAlert,
  LucideAlignCenter: TextAlignCenter,
  LucideAlignCenterHorizontal: AlignCenterHorizontal,
  LucideAlignCenterVertical: AlignCenterVertical,
  LucideAlignEndHorizontal: AlignEndHorizontal,
  LucideAlignEndVertical: AlignEndVertical,
  LucideAlignHorizontalDistributeCenter: AlignHorizontalDistributeCenter,
  LucideAlignHorizontalDistributeEnd: AlignHorizontalDistributeEnd,
  LucideAlignHorizontalDistributeStart: AlignHorizontalDistributeStart,
  LucideAlignHorizontalJustifyCenter: AlignHorizontalJustifyCenter,
  LucideAlignHorizontalJustifyEnd: AlignHorizontalJustifyEnd,
  LucideAlignHorizontalJustifyStart: AlignHorizontalJustifyStart,
  LucideAlignHorizontalSpaceAround: AlignHorizontalSpaceAround,
  LucideAlignHorizontalSpaceBetween: AlignHorizontalSpaceBetween,
  LucideAlignJustify: TextAlignJustify,
  LucideAlignLeft: TextAlignStart,
  LucideAlignRight: TextAlignEnd,
  LucideAlignStartHorizontal: AlignStartHorizontal,
  LucideAlignStartVertical: AlignStartVertical,
  LucideAlignVerticalDistributeCenter: AlignVerticalDistributeCenter,
  LucideAlignVerticalDistributeEnd: AlignVerticalDistributeEnd,
  LucideAlignVerticalDistributeStart: AlignVerticalDistributeStart,
  LucideAlignVerticalJustifyCenter: AlignVerticalJustifyCenter,
  LucideAlignVerticalJustifyEnd: AlignVerticalJustifyEnd,
  LucideAlignVerticalJustifyStart: AlignVerticalJustifyStart,
  LucideAlignVerticalSpaceAround: AlignVerticalSpaceAround,
  LucideAlignVerticalSpaceBetween: AlignVerticalSpaceBetween,
  LucideAmbulance: Ambulance,
  LucideAmpersand: Ampersand,
  LucideAmpersands: Ampersands,
  LucideAmphora: Amphora,
  LucideAnchor: Anchor,
  LucideAngry: Angry,
  LucideAnnoyed: Annoyed,
  LucideAntenna: Antenna,
  LucideAnvil: Anvil,
  LucideAperture: Aperture,
  LucideAppWindow: AppWindow,
  LucideAppWindowMac: AppWindowMac,
  LucideApple: Apple,
  LucideArchive: Archive,
  LucideArchiveRestore: ArchiveRestore,
  LucideArchiveX: ArchiveX,
  LucideAreaChart: ChartArea,
  LucideArmchair: Armchair,
  LucideArrowBigDown: ArrowBigDown,
  LucideArrowBigDownDash: ArrowBigDownDash,
  LucideArrowBigLeft: ArrowBigLeft,
  LucideArrowBigLeftDash: ArrowBigLeftDash,
  LucideArrowBigRight: ArrowBigRight,
  LucideArrowBigRightDash: ArrowBigRightDash,
  LucideArrowBigUp: ArrowBigUp,
  LucideArrowBigUpDash: ArrowBigUpDash,
  LucideArrowDown: ArrowDown,
  LucideArrowDown01: ArrowDown01,
  LucideArrowDown10: ArrowDown10,
  LucideArrowDownAZ: ArrowDownAZ,
  LucideArrowDownAz: ArrowDownAZ,
  LucideArrowDownCircle: CircleArrowDown,
  LucideArrowDownFromLine: ArrowDownFromLine,
  LucideArrowDownLeft: ArrowDownLeft,
  LucideArrowDownLeftFromCircle: CircleArrowOutDownLeft,
  LucideArrowDownLeftFromSquare: SquareArrowOutDownLeft,
  LucideArrowDownLeftSquare: SquareArrowDownLeft,
  LucideArrowDownNarrowWide: ArrowDownNarrowWide,
  LucideArrowDownRight: ArrowDownRight,
  LucideArrowDownRightFromCircle: CircleArrowOutDownRight,
  LucideArrowDownRightFromSquare: SquareArrowOutDownRight,
  LucideArrowDownRightSquare: SquareArrowDownRight,
  LucideArrowDownSquare: SquareArrowDown,
  LucideArrowDownToDot: ArrowDownToDot,
  LucideArrowDownToLine: ArrowDownToLine,
  LucideArrowDownUp: ArrowDownUp,
  LucideArrowDownWideNarrow: ArrowDownWideNarrow,
  LucideArrowDownZA: ArrowDownZA,
  LucideArrowDownZa: ArrowDownZA,
  LucideArrowLeft: ArrowLeft,
  LucideArrowLeftCircle: CircleArrowLeft,
  LucideArrowLeftFromLine: ArrowLeftFromLine,
  LucideArrowLeftRight: ArrowLeftRight,
  LucideArrowLeftSquare: SquareArrowLeft,
  LucideArrowLeftToLine: ArrowLeftToLine,
  LucideArrowRight: ArrowRight,
  LucideArrowRightCircle: CircleArrowRight,
  LucideArrowRightFromLine: ArrowRightFromLine,
  LucideArrowRightLeft: ArrowRightLeft,
  LucideArrowRightSquare: SquareArrowRight,
  LucideArrowRightToLine: ArrowRightToLine,
  LucideArrowUp: ArrowUp,
  LucideArrowUp01: ArrowUp01,
  LucideArrowUp10: ArrowUp10,
  LucideArrowUpAZ: ArrowUpAZ,
  LucideArrowUpAz: ArrowUpAZ,
  LucideArrowUpCircle: CircleArrowUp,
  LucideArrowUpDown: ArrowUpDown,
  LucideArrowUpFromDot: ArrowUpFromDot,
  LucideArrowUpFromLine: ArrowUpFromLine,
  LucideArrowUpLeft: ArrowUpLeft,
  LucideArrowUpLeftFromCircle: CircleArrowOutUpLeft,
  LucideArrowUpLeftFromSquare: SquareArrowOutUpLeft,
  LucideArrowUpLeftSquare: SquareArrowUpLeft,
  LucideArrowUpNarrowWide: ArrowUpNarrowWide,
  LucideArrowUpRight: ArrowUpRight,
  LucideArrowUpRightFromCircle: CircleArrowOutUpRight,
  LucideArrowUpRightFromSquare: SquareArrowOutUpRight,
  LucideArrowUpRightSquare: SquareArrowUpRight,
  LucideArrowUpSquare: SquareArrowUp,
  LucideArrowUpToLine: ArrowUpToLine,
  LucideArrowUpWideNarrow: ArrowUpWideNarrow,
  LucideArrowUpZA: ArrowUpZA,
  LucideArrowUpZa: ArrowUpZA,
  LucideArrowsUpFromLine: ArrowsUpFromLine,
  LucideAsterisk: Asterisk,
  LucideAsteriskSquare: SquareAsterisk,
  LucideAtSign: AtSign,
  LucideAtom: Atom,
  LucideAudioLines: AudioLines,
  LucideAudioWaveform: AudioWaveform,
  LucideAward: Award,
  LucideAxe: Axe,
  LucideAxis3D: Axis3d,
  LucideAxis3d: Axis3d,
  LucideBaby: Baby,
  LucideBackpack: Backpack,
  LucideBadge: Badge,
  LucideBadgeAlert: BadgeAlert,
  LucideBadgeCent: BadgeCent,
  LucideBadgeCheck: BadgeCheck,
  LucideBadgeDollarSign: BadgeDollarSign,
  LucideBadgeEuro: BadgeEuro,
  LucideBadgeHelp: BadgeQuestionMark,
  LucideBadgeIndianRupee: BadgeIndianRupee,
  LucideBadgeInfo: BadgeInfo,
  LucideBadgeJapaneseYen: BadgeJapaneseYen,
  LucideBadgeMinus: BadgeMinus,
  LucideBadgePercent: BadgePercent,
  LucideBadgePlus: BadgePlus,
  LucideBadgePoundSterling: BadgePoundSterling,
  LucideBadgeQuestionMark: BadgeQuestionMark,
  LucideBadgeRussianRuble: BadgeRussianRuble,
  LucideBadgeSwissFranc: BadgeSwissFranc,
  LucideBadgeTurkishLira: BadgeTurkishLira,
  LucideBadgeX: BadgeX,
  LucideBaggageClaim: BaggageClaim,
  LucideBan: Ban,
  LucideBanana: Banana,
  LucideBandage: Bandage,
  LucideBanknote: Banknote,
  LucideBanknoteArrowDown: BanknoteArrowDown,
  LucideBanknoteArrowUp: BanknoteArrowUp,
  LucideBanknoteX: BanknoteX,
  LucideBarChart: ChartNoAxesColumnIncreasing,
  LucideBarChart2: ChartNoAxesColumn,
  LucideBarChart3: ChartColumn,
  LucideBarChart4: ChartColumnIncreasing,
  LucideBarChartBig: ChartColumnBig,
  LucideBarChartHorizontal: ChartBar,
  LucideBarChartHorizontalBig: ChartBarBig,
  LucideBarcode: Barcode,
  LucideBarrel: Barrel,
  LucideBaseline: Baseline,
  LucideBath: Bath,
  LucideBattery: Battery,
  LucideBatteryCharging: BatteryCharging,
  LucideBatteryFull: BatteryFull,
  LucideBatteryLow: BatteryLow,
  LucideBatteryMedium: BatteryMedium,
  LucideBatteryPlus: BatteryPlus,
  LucideBatteryWarning: BatteryWarning,
  LucideBeaker: Beaker,
  LucideBean: Bean,
  LucideBeanOff: BeanOff,
  LucideBed: Bed,
  LucideBedDouble: BedDouble,
  LucideBedSingle: BedSingle,
  LucideBeef: Beef,
  LucideBeer: Beer,
  LucideBeerOff: BeerOff,
  LucideBell: Bell,
  LucideBellDot: BellDot,
  LucideBellElectric: BellElectric,
  LucideBellMinus: BellMinus,
  LucideBellOff: BellOff,
  LucideBellPlus: BellPlus,
  LucideBellRing: BellRing,
  LucideBetweenHorizonalEnd: BetweenHorizontalEnd,
  LucideBetweenHorizonalStart: BetweenHorizontalStart,
  LucideBetweenHorizontalEnd: BetweenHorizontalEnd,
  LucideBetweenHorizontalStart: BetweenHorizontalStart,
  LucideBetweenVerticalEnd: BetweenVerticalEnd,
  LucideBetweenVerticalStart: BetweenVerticalStart,
  LucideBicepsFlexed: BicepsFlexed,
  LucideBike: Bike,
  LucideBinary: Binary,
  LucideBinoculars: Binoculars,
  LucideBiohazard: Biohazard,
  LucideBird: Bird,
  LucideBirdhouse: Birdhouse,
  LucideBitcoin: Bitcoin,
  LucideBlend: Blend,
  LucideBlinds: Blinds,
  LucideBlocks: Blocks,
  LucideBluetooth: Bluetooth,
  LucideBluetoothConnected: BluetoothConnected,
  LucideBluetoothOff: BluetoothOff,
  LucideBluetoothSearching: BluetoothSearching,
  LucideBold: Bold,
  LucideBolt: Bolt,
  LucideBomb: Bomb,
  LucideBone: Bone,
  LucideBook: Book,
  LucideBookA: BookA,
  LucideBookAlert: BookAlert,
  LucideBookAudio: BookAudio,
  LucideBookCheck: BookCheck,
  LucideBookCopy: BookCopy,
  LucideBookDashed: BookDashed,
  LucideBookDown: BookDown,
  LucideBookHeadphones: BookHeadphones,
  LucideBookHeart: BookHeart,
  LucideBookImage: BookImage,
  LucideBookKey: BookKey,
  LucideBookLock: BookLock,
  LucideBookMarked: BookMarked,
  LucideBookMinus: BookMinus,
  LucideBookOpen: BookOpen,
  LucideBookOpenCheck: BookOpenCheck,
  LucideBookOpenText: BookOpenText,
  LucideBookPlus: BookPlus,
  LucideBookTemplate: BookDashed,
  LucideBookText: BookText,
  LucideBookType: BookType,
  LucideBookUp: BookUp,
  LucideBookUp2: BookUp2,
  LucideBookUser: BookUser,
  LucideBookX: BookX,
  LucideBookmark: Bookmark,
  LucideBookmarkCheck: BookmarkCheck,
  LucideBookmarkMinus: BookmarkMinus,
  LucideBookmarkPlus: BookmarkPlus,
  LucideBookmarkX: BookmarkX,
  LucideBoomBox: BoomBox,
  LucideBot: Bot,
  LucideBotMessageSquare: BotMessageSquare,
  LucideBotOff: BotOff,
  LucideBottleWine: BottleWine,
  LucideBowArrow: BowArrow,
  LucideBox: Box,
  LucideBoxSelect: SquareDashed,
  LucideBoxes: Boxes,
  LucideBraces: Braces,
  LucideBrackets: Brackets,
  LucideBrain: Brain,
  LucideBrainCircuit: BrainCircuit,
  LucideBrainCog: BrainCog,
  LucideBrickWall: BrickWall,
  LucideBrickWallFire: BrickWallFire,
  LucideBrickWallShield: BrickWallShield,
  LucideBriefcase: Briefcase,
  LucideBriefcaseBusiness: BriefcaseBusiness,
  LucideBriefcaseConveyorBelt: BriefcaseConveyorBelt,
  LucideBriefcaseMedical: BriefcaseMedical,
  LucideBringToFront: BringToFront,
  LucideBrush: Brush,
  LucideBrushCleaning: BrushCleaning,
  LucideBubbles: Bubbles,
  LucideBug: Bug,
  LucideBugOff: BugOff,
  LucideBugPlay: BugPlay,
  LucideBuilding: Building,
  LucideBuilding2: Building2,
  LucideBus: Bus,
  LucideBusFront: BusFront,
  LucideCable: Cable,
  LucideCableCar: CableCar,
  LucideCake: Cake,
  LucideCakeSlice: CakeSlice,
  LucideCalculator: Calculator,
  LucideCalendar: Calendar,
  LucideCalendar1: Calendar1,
  LucideCalendarArrowDown: CalendarArrowDown,
  LucideCalendarArrowUp: CalendarArrowUp,
  LucideCalendarCheck: CalendarCheck,
  LucideCalendarCheck2: CalendarCheck2,
  LucideCalendarClock: CalendarClock,
  LucideCalendarCog: CalendarCog,
  LucideCalendarDays: CalendarDays,
  LucideCalendarFold: CalendarFold,
  LucideCalendarHeart: CalendarHeart,
  LucideCalendarMinus: CalendarMinus,
  LucideCalendarMinus2: CalendarMinus2,
  LucideCalendarOff: CalendarOff,
  LucideCalendarPlus: CalendarPlus,
  LucideCalendarPlus2: CalendarPlus2,
  LucideCalendarRange: CalendarRange,
  LucideCalendarSearch: CalendarSearch,
  LucideCalendarSync: CalendarSync,
  LucideCalendarX: CalendarX,
  LucideCalendarX2: CalendarX2,
  LucideCalendars: Calendars,
  LucideCamera: Camera,
  LucideCameraOff: CameraOff,
  LucideCandlestickChart: ChartCandlestick,
  LucideCandy: Candy,
  LucideCandyCane: CandyCane,
  LucideCandyOff: CandyOff,
  LucideCannabis: Cannabis,
  LucideCaptions: Captions,
  LucideCaptionsOff: CaptionsOff,
  LucideCar: Car,
  LucideCarFront: CarFront,
  LucideCarTaxiFront: CarTaxiFront,
  LucideCaravan: Caravan,
  LucideCardSim: CardSim,
  LucideCarrot: Carrot,
  LucideCaseLower: CaseLower,
  LucideCaseSensitive: CaseSensitive,
  LucideCaseUpper: CaseUpper,
  LucideCassetteTape: CassetteTape,
  LucideCast: Cast,
  LucideCastle: Castle,
  LucideCat: Cat,
  LucideCctv: Cctv,
  LucideChartArea: ChartArea,
  LucideChartBar: ChartBar,
  LucideChartBarBig: ChartBarBig,
  LucideChartBarDecreasing: ChartBarDecreasing,
  LucideChartBarIncreasing: ChartBarIncreasing,
  LucideChartBarStacked: ChartBarStacked,
  LucideChartCandlestick: ChartCandlestick,
  LucideChartColumn: ChartColumn,
  LucideChartColumnBig: ChartColumnBig,
  LucideChartColumnDecreasing: ChartColumnDecreasing,
  LucideChartColumnIncreasing: ChartColumnIncreasing,
  LucideChartColumnStacked: ChartColumnStacked,
  LucideChartGantt: ChartGantt,
  LucideChartLine: ChartLine,
  LucideChartNetwork: ChartNetwork,
  LucideChartNoAxesColumn: ChartNoAxesColumn,
  LucideChartNoAxesColumnDecreasing: ChartNoAxesColumnDecreasing,
  LucideChartNoAxesColumnIncreasing: ChartNoAxesColumnIncreasing,
  LucideChartNoAxesCombined: ChartNoAxesCombined,
  LucideChartNoAxesGantt: ChartNoAxesGantt,
  LucideChartPie: ChartPie,
  LucideChartScatter: ChartScatter,
  LucideChartSpline: ChartSpline,
  LucideCheck: Check,
  LucideCheckCheck: CheckCheck,
  LucideCheckCircle: CircleCheckBig,
  LucideCheckCircle2: CircleCheck,
  LucideCheckLine: CheckLine,
  LucideCheckSquare: SquareCheckBig,
  LucideCheckSquare2: SquareCheck,
  LucideChefHat: ChefHat,
  LucideCherry: Cherry,
  LucideChessBishop: ChessBishop,
  LucideChessKing: ChessKing,
  LucideChessKnight: ChessKnight,
  LucideChessPawn: ChessPawn,
  LucideChessQueen: ChessQueen,
  LucideChessRook: ChessRook,
  LucideChevronDown: ChevronDown,
  LucideChevronDownCircle: CircleChevronDown,
  LucideChevronDownSquare: SquareChevronDown,
  LucideChevronFirst: ChevronFirst,
  LucideChevronLast: ChevronLast,
  LucideChevronLeft: ChevronLeft,
  LucideChevronLeftCircle: CircleChevronLeft,
  LucideChevronLeftSquare: SquareChevronLeft,
  LucideChevronRight: ChevronRight,
  LucideChevronRightCircle: CircleChevronRight,
  LucideChevronRightSquare: SquareChevronRight,
  LucideChevronUp: ChevronUp,
  LucideChevronUpCircle: CircleChevronUp,
  LucideChevronUpSquare: SquareChevronUp,
  LucideChevronsDown: ChevronsDown,
  LucideChevronsDownUp: ChevronsDownUp,
  LucideChevronsLeft: ChevronsLeft,
  LucideChevronsLeftRight: ChevronsLeftRight,
  LucideChevronsLeftRightEllipsis: ChevronsLeftRightEllipsis,
  LucideChevronsRight: ChevronsRight,
  LucideChevronsRightLeft: ChevronsRightLeft,
  LucideChevronsUp: ChevronsUp,
  LucideChevronsUpDown: ChevronsUpDown,
  LucideChrome: Chromium,
  LucideChromium: Chromium,
  LucideChurch: Church,
  LucideCigarette: Cigarette,
  LucideCigaretteOff: CigaretteOff,
  LucideCircle: Circle,
  LucideCircleAlert: CircleAlert,
  LucideCircleArrowDown: CircleArrowDown,
  LucideCircleArrowLeft: CircleArrowLeft,
  LucideCircleArrowOutDownLeft: CircleArrowOutDownLeft,
  LucideCircleArrowOutDownRight: CircleArrowOutDownRight,
  LucideCircleArrowOutUpLeft: CircleArrowOutUpLeft,
  LucideCircleArrowOutUpRight: CircleArrowOutUpRight,
  LucideCircleArrowRight: CircleArrowRight,
  LucideCircleArrowUp: CircleArrowUp,
  LucideCircleCheck: CircleCheck,
  LucideCircleCheckBig: CircleCheckBig,
  LucideCircleChevronDown: CircleChevronDown,
  LucideCircleChevronLeft: CircleChevronLeft,
  LucideCircleChevronRight: CircleChevronRight,
  LucideCircleChevronUp: CircleChevronUp,
  LucideCircleDashed: CircleDashed,
  LucideCircleDivide: CircleDivide,
  LucideCircleDollarSign: CircleDollarSign,
  LucideCircleDot: CircleDot,
  LucideCircleDotDashed: CircleDotDashed,
  LucideCircleEllipsis: CircleEllipsis,
  LucideCircleEqual: CircleEqual,
  LucideCircleFadingArrowUp: CircleFadingArrowUp,
  LucideCircleFadingPlus: CircleFadingPlus,
  LucideCircleGauge: CircleGauge,
  LucideCircleHelp: CircleQuestionMark,
  LucideCircleMinus: CircleMinus,
  LucideCircleOff: CircleOff,
  LucideCircleParking: CircleParking,
  LucideCircleParkingOff: CircleParkingOff,
  LucideCirclePause: CirclePause,
  LucideCirclePercent: CirclePercent,
  LucideCirclePlay: CirclePlay,
  LucideCirclePlus: CirclePlus,
  LucideCirclePoundSterling: CirclePoundSterling,
  LucideCirclePower: CirclePower,
  LucideCircleQuestionMark: CircleQuestionMark,
  LucideCircleSlash: CircleSlash,
  LucideCircleSlash2: CircleSlash2,
  LucideCircleSlashed: CircleSlash2,
  LucideCircleSmall: CircleSmall,
  LucideCircleStar: CircleStar,
  LucideCircleStop: CircleStop,
  LucideCircleUser: CircleUser,
  LucideCircleUserRound: CircleUserRound,
  LucideCircleX: CircleX,
  LucideCircuitBoard: CircuitBoard,
  LucideCitrus: Citrus,
  LucideClapperboard: Clapperboard,
  LucideClipboard: Clipboard,
  LucideClipboardCheck: ClipboardCheck,
  LucideClipboardClock: ClipboardClock,
  LucideClipboardCopy: ClipboardCopy,
  LucideClipboardEdit: ClipboardPen,
  LucideClipboardList: ClipboardList,
  LucideClipboardMinus: ClipboardMinus,
  LucideClipboardPaste: ClipboardPaste,
  LucideClipboardPen: ClipboardPen,
  LucideClipboardPenLine: ClipboardPenLine,
  LucideClipboardPlus: ClipboardPlus,
  LucideClipboardSignature: ClipboardPenLine,
  LucideClipboardType: ClipboardType,
  LucideClipboardX: ClipboardX,
  LucideClock: Clock,
  LucideClock1: Clock1,
  LucideClock10: Clock10,
  LucideClock11: Clock11,
  LucideClock12: Clock12,
  LucideClock2: Clock2,
  LucideClock3: Clock3,
  LucideClock4: Clock4,
  LucideClock5: Clock5,
  LucideClock6: Clock6,
  LucideClock7: Clock7,
  LucideClock8: Clock8,
  LucideClock9: Clock9,
  LucideClockAlert: ClockAlert,
  LucideClockArrowDown: ClockArrowDown,
  LucideClockArrowUp: ClockArrowUp,
  LucideClockCheck: ClockCheck,
  LucideClockFading: ClockFading,
  LucideClockPlus: ClockPlus,
  LucideClosedCaption: ClosedCaption,
  LucideCloud: Cloud,
  LucideCloudAlert: CloudAlert,
  LucideCloudCheck: CloudCheck,
  LucideCloudCog: CloudCog,
  LucideCloudDownload: CloudDownload,
  LucideCloudDrizzle: CloudDrizzle,
  LucideCloudFog: CloudFog,
  LucideCloudHail: CloudHail,
  LucideCloudLightning: CloudLightning,
  LucideCloudMoon: CloudMoon,
  LucideCloudMoonRain: CloudMoonRain,
  LucideCloudOff: CloudOff,
  LucideCloudRain: CloudRain,
  LucideCloudRainWind: CloudRainWind,
  LucideCloudSnow: CloudSnow,
  LucideCloudSun: CloudSun,
  LucideCloudSunRain: CloudSunRain,
  LucideCloudUpload: CloudUpload,
  LucideCloudy: Cloudy,
  LucideClover: Clover,
  LucideClub: Club,
  LucideCode: Code,
  LucideCode2: CodeXml,
  LucideCodeSquare: SquareCode,
  LucideCodeXml: CodeXml,
  LucideCodepen: Codepen,
  LucideCodesandbox: Codesandbox,
  LucideCoffee: Coffee,
  LucideCog: Cog,
  LucideCoins: Coins,
  LucideColumns: Columns2,
  LucideColumns2: Columns2,
  LucideColumns3: Columns3,
  LucideColumns3Cog: Columns3Cog,
  LucideColumns4: Columns4,
  LucideColumnsSettings: Columns3Cog,
  LucideCombine: Combine,
  LucideCommand: Command,
  LucideCompass: Compass,
  LucideComponent: Component,
  LucideComputer: Computer,
  LucideConciergeBell: ConciergeBell,
  LucideCone: Cone,
  LucideConstruction: Construction,
  LucideContact: Contact,
  LucideContact2: ContactRound,
  LucideContactRound: ContactRound,
  LucideContainer: Container,
  LucideContrast: Contrast,
  LucideCookie: Cookie,
  LucideCookingPot: CookingPot,
  LucideCopy: Copy,
  LucideCopyCheck: CopyCheck,
  LucideCopyMinus: CopyMinus,
  LucideCopyPlus: CopyPlus,
  LucideCopySlash: CopySlash,
  LucideCopyX: CopyX,
  LucideCopyleft: Copyleft,
  LucideCopyright: Copyright,
  LucideCornerDownLeft: CornerDownLeft,
  LucideCornerDownRight: CornerDownRight,
  LucideCornerLeftDown: CornerLeftDown,
  LucideCornerLeftUp: CornerLeftUp,
  LucideCornerRightDown: CornerRightDown,
  LucideCornerRightUp: CornerRightUp,
  LucideCornerUpLeft: CornerUpLeft,
  LucideCornerUpRight: CornerUpRight,
  LucideCpu: Cpu,
  LucideCreativeCommons: CreativeCommons,
  LucideCreditCard: CreditCard,
  LucideCroissant: Croissant,
  LucideCrop: Crop,
  LucideCross: Cross,
  LucideCrosshair: Crosshair,
  LucideCrown: Crown,
  LucideCuboid: Cuboid,
  LucideCupSoda: CupSoda,
  LucideCurlyBraces: Braces,
  LucideCurrency: Currency,
  LucideCylinder: Cylinder,
  LucideDam: Dam,
  LucideDatabase: Database,
  LucideDatabaseBackup: DatabaseBackup,
  LucideDatabaseZap: DatabaseZap,
  LucideDecimalsArrowLeft: DecimalsArrowLeft,
  LucideDecimalsArrowRight: DecimalsArrowRight,
  LucideDelete: Delete,
  LucideDessert: Dessert,
  LucideDiameter: Diameter,
  LucideDiamond: Diamond,
  LucideDiamondMinus: DiamondMinus,
  LucideDiamondPercent: DiamondPercent,
  LucideDiamondPlus: DiamondPlus,
  LucideDice1: Dice1,
  LucideDice2: Dice2,
  LucideDice3: Dice3,
  LucideDice4: Dice4,
  LucideDice5: Dice5,
  LucideDice6: Dice6,
  LucideDices: Dices,
  LucideDiff: Diff,
  LucideDisc: Disc,
  LucideDisc2: Disc2,
  LucideDisc3: Disc3,
  LucideDiscAlbum: DiscAlbum,
  LucideDivide: Divide,
  LucideDivideCircle: CircleDivide,
  LucideDivideSquare: SquareDivide,
  LucideDna: Dna,
  LucideDnaOff: DnaOff,
  LucideDock: Dock,
  LucideDog: Dog,
  LucideDollarSign: DollarSign,
  LucideDonut: Donut,
  LucideDoorClosed: DoorClosed,
  LucideDoorClosedLocked: DoorClosedLocked,
  LucideDoorOpen: DoorOpen,
  LucideDot: Dot,
  LucideDotSquare: SquareDot,
  LucideDownload: Download,
  LucideDownloadCloud: CloudDownload,
  LucideDraftingCompass: DraftingCompass,
  LucideDrama: Drama,
  LucideDribbble: Dribbble,
  LucideDrill: Drill,
  LucideDrone: Drone,
  LucideDroplet: Droplet,
  LucideDropletOff: DropletOff,
  LucideDroplets: Droplets,
  LucideDrum: Drum,
  LucideDrumstick: Drumstick,
  LucideDumbbell: Dumbbell,
  LucideEar: Ear,
  LucideEarOff: EarOff,
  LucideEarth: Earth,
  LucideEarthLock: EarthLock,
  LucideEclipse: Eclipse,
  LucideEdit: SquarePen,
  LucideEdit2: Pen,
  LucideEdit3: PenLine,
  LucideEgg: Egg,
  LucideEggFried: EggFried,
  LucideEggOff: EggOff,
  LucideEllipsis: Ellipsis,
  LucideEllipsisVertical: EllipsisVertical,
  LucideEqual: Equal,
  LucideEqualApproximately: EqualApproximately,
  LucideEqualNot: EqualNot,
  LucideEqualSquare: SquareEqual,
  LucideEraser: Eraser,
  LucideEthernetPort: EthernetPort,
  LucideEuro: Euro,
  LucideEvCharger: EvCharger,
  LucideExpand: Expand,
  LucideExternalLink: ExternalLink,
  LucideEye: Eye,
  LucideEyeClosed: EyeClosed,
  LucideEyeOff: EyeOff,
  LucideFacebook: Facebook,
  LucideFactory: Factory,
  LucideFan: Fan,
  LucideFastForward: FastForward,
  LucideFeather: Feather,
  LucideFence: Fence,
  LucideFerrisWheel: FerrisWheel,
  LucideFigma: Figma,
  LucideFile: File,
  LucideFileArchive: FileArchive,
  LucideFileAudio: FileHeadphone,
  LucideFileAudio2: FileHeadphone,
  LucideFileAxis3D: FileAxis3d,
  LucideFileAxis3d: FileAxis3d,
  LucideFileBadge: FileBadge,
  LucideFileBadge2: FileBadge,
  LucideFileBarChart: FileChartColumnIncreasing,
  LucideFileBarChart2: FileChartColumn,
  LucideFileBox: FileBox,
  LucideFileBraces: FileBraces,
  LucideFileBracesCorner: FileBracesCorner,
  LucideFileChartColumn: FileChartColumn,
  LucideFileChartColumnIncreasing: FileChartColumnIncreasing,
  LucideFileChartLine: FileChartLine,
  LucideFileChartPie: FileChartPie,
  LucideFileCheck: FileCheck,
  LucideFileCheck2: FileCheckCorner,
  LucideFileCheckCorner: FileCheckCorner,
  LucideFileClock: FileClock,
  LucideFileCode: FileCode,
  LucideFileCode2: FileCodeCorner,
  LucideFileCodeCorner: FileCodeCorner,
  LucideFileCog: FileCog,
  LucideFileCog2: FileCog,
  LucideFileDiff: FileDiff,
  LucideFileDigit: FileDigit,
  LucideFileDown: FileDown,
  LucideFileEdit: FilePen,
  LucideFileExclamationPoint: FileExclamationPoint,
  LucideFileHeadphone: FileHeadphone,
  LucideFileHeart: FileHeart,
  LucideFileImage: FileImage,
  LucideFileInput: FileInput,
  LucideFileJson: FileBraces,
  LucideFileJson2: FileBracesCorner,
  LucideFileKey: FileKey,
  LucideFileKey2: FileKey,
  LucideFileLineChart: FileChartLine,
  LucideFileLock: FileLock,
  LucideFileLock2: FileLock,
  LucideFileMinus: FileMinus,
  LucideFileMinus2: FileMinusCorner,
  LucideFileMinusCorner: FileMinusCorner,
  LucideFileMusic: FileMusic,
  LucideFileOutput: FileOutput,
  LucideFilePen: FilePen,
  LucideFilePenLine: FilePenLine,
  LucideFilePieChart: FileChartPie,
  LucideFilePlay: FilePlay,
  LucideFilePlus: FilePlus,
  LucideFilePlus2: FilePlusCorner,
  LucideFilePlusCorner: FilePlusCorner,
  LucideFileQuestion: FileQuestionMark,
  LucideFileQuestionMark: FileQuestionMark,
  LucideFileScan: FileScan,
  LucideFileSearch: FileSearch,
  LucideFileSearch2: FileSearchCorner,
  LucideFileSearchCorner: FileSearchCorner,
  LucideFileSignal: FileSignal,
  LucideFileSignature: FilePenLine,
  LucideFileSliders: FileSliders,
  LucideFileSpreadsheet: FileSpreadsheet,
  LucideFileStack: FileStack,
  LucideFileSymlink: FileSymlink,
  LucideFileTerminal: FileTerminal,
  LucideFileText: FileText,
  LucideFileType: FileType,
  LucideFileType2: FileTypeCorner,
  LucideFileTypeCorner: FileTypeCorner,
  LucideFileUp: FileUp,
  LucideFileUser: FileUser,
  LucideFileVideo: FilePlay,
  LucideFileVideo2: FileVideoCamera,
  LucideFileVideoCamera: FileVideoCamera,
  LucideFileVolume: FileVolume,
  LucideFileVolume2: FileSignal,
  LucideFileWarning: FileExclamationPoint,
  LucideFileX: FileX,
  LucideFileX2: FileXCorner,
  LucideFileXCorner: FileXCorner,
  LucideFiles: Files,
  LucideFilm: Film,
  LucideFilter: Funnel,
  LucideFilterX: FunnelX,
  LucideFingerprint: FingerprintPattern,
  LucideFingerprintPattern: FingerprintPattern,
  LucideFireExtinguisher: FireExtinguisher,
  LucideFish: Fish,
  LucideFishOff: FishOff,
  LucideFishSymbol: FishSymbol,
  LucideFlag: Flag,
  LucideFlagOff: FlagOff,
  LucideFlagTriangleLeft: FlagTriangleLeft,
  LucideFlagTriangleRight: FlagTriangleRight,
  LucideFlame: Flame,
  LucideFlameKindling: FlameKindling,
  LucideFlashlight: Flashlight,
  LucideFlashlightOff: FlashlightOff,
  LucideFlaskConical: FlaskConical,
  LucideFlaskConicalOff: FlaskConicalOff,
  LucideFlaskRound: FlaskRound,
  LucideFlipHorizontal: FlipHorizontal,
  LucideFlipHorizontal2: FlipHorizontal2,
  LucideFlipVertical: FlipVertical,
  LucideFlipVertical2: FlipVertical2,
  LucideFlower: Flower,
  LucideFlower2: Flower2,
  LucideFocus: Focus,
  LucideFoldHorizontal: FoldHorizontal,
  LucideFoldVertical: FoldVertical,
  LucideFolder: Folder,
  LucideFolderArchive: FolderArchive,
  LucideFolderCheck: FolderCheck,
  LucideFolderClock: FolderClock,
  LucideFolderClosed: FolderClosed,
  LucideFolderCode: FolderCode,
  LucideFolderCog: FolderCog,
  LucideFolderCog2: FolderCog,
  LucideFolderDot: FolderDot,
  LucideFolderDown: FolderDown,
  LucideFolderEdit: FolderPen,
  LucideFolderGit: FolderGit,
  LucideFolderGit2: FolderGit2,
  LucideFolderHeart: FolderHeart,
  LucideFolderInput: FolderInput,
  LucideFolderKanban: FolderKanban,
  LucideFolderKey: FolderKey,
  LucideFolderLock: FolderLock,
  LucideFolderMinus: FolderMinus,
  LucideFolderOpen: FolderOpen,
  LucideFolderOpenDot: FolderOpenDot,
  LucideFolderOutput: FolderOutput,
  LucideFolderPen: FolderPen,
  LucideFolderPlus: FolderPlus,
  LucideFolderRoot: FolderRoot,
  LucideFolderSearch: FolderSearch,
  LucideFolderSearch2: FolderSearch2,
  LucideFolderSymlink: FolderSymlink,
  LucideFolderSync: FolderSync,
  LucideFolderTree: FolderTree,
  LucideFolderUp: FolderUp,
  LucideFolderX: FolderX,
  LucideFolders: Folders,
  LucideFootprints: Footprints,
  LucideForkKnife: Utensils,
  LucideForkKnifeCrossed: UtensilsCrossed,
  LucideForklift: Forklift,
  LucideForm: Form,
  LucideFormInput: RectangleEllipsis,
  LucideForward: Forward,
  LucideFrame: Frame,
  LucideFramer: Framer,
  LucideFrown: Frown,
  LucideFuel: Fuel,
  LucideFullscreen: Fullscreen,
  LucideFunctionSquare: SquareFunction,
  LucideFunnel: Funnel,
  LucideFunnelPlus: FunnelPlus,
  LucideFunnelX: FunnelX,
  LucideGalleryHorizontal: GalleryHorizontal,
  LucideGalleryHorizontalEnd: GalleryHorizontalEnd,
  LucideGalleryThumbnails: GalleryThumbnails,
  LucideGalleryVertical: GalleryVertical,
  LucideGalleryVerticalEnd: GalleryVerticalEnd,
  LucideGamepad: Gamepad,
  LucideGamepad2: Gamepad2,
  LucideGamepadDirectional: GamepadDirectional,
  LucideGanttChart: ChartNoAxesGantt,
  LucideGanttChartSquare: SquareChartGantt,
  LucideGauge: Gauge,
  LucideGaugeCircle: CircleGauge,
  LucideGavel: Gavel,
  LucideGem: Gem,
  LucideGeorgianLari: GeorgianLari,
  LucideGhost: Ghost,
  LucideGift: Gift,
  LucideGitBranch: GitBranch,
  LucideGitBranchMinus: GitBranchMinus,
  LucideGitBranchPlus: GitBranchPlus,
  LucideGitCommit: GitCommitHorizontal,
  LucideGitCommitHorizontal: GitCommitHorizontal,
  LucideGitCommitVertical: GitCommitVertical,
  LucideGitCompare: GitCompare,
  LucideGitCompareArrows: GitCompareArrows,
  LucideGitFork: GitFork,
  LucideGitGraph: GitGraph,
  LucideGitMerge: GitMerge,
  LucideGitPullRequest: GitPullRequest,
  LucideGitPullRequestArrow: GitPullRequestArrow,
  LucideGitPullRequestClosed: GitPullRequestClosed,
  LucideGitPullRequestCreate: GitPullRequestCreate,
  LucideGitPullRequestCreateArrow: GitPullRequestCreateArrow,
  LucideGitPullRequestDraft: GitPullRequestDraft,
  LucideGithub: Github,
  LucideGitlab: Gitlab,
  LucideGlassWater: GlassWater,
  LucideGlasses: Glasses,
  LucideGlobe: Globe,
  LucideGlobe2: Earth,
  LucideGlobeLock: GlobeLock,
  LucideGoal: Goal,
  LucideGpu: Gpu,
  LucideGrab: HandGrab,
  LucideGraduationCap: GraduationCap,
  LucideGrape: Grape,
  LucideGrid: Grid3x3,
  LucideGrid2X2: Grid2x2,
  LucideGrid2X2Check: Grid2x2Check,
  LucideGrid2X2Plus: Grid2x2Plus,
  LucideGrid2X2X: Grid2x2X,
  LucideGrid2x2: Grid2x2,
  LucideGrid2x2Check: Grid2x2Check,
  LucideGrid2x2Plus: Grid2x2Plus,
  LucideGrid2x2X: Grid2x2X,
  LucideGrid3X3: Grid3x3,
  LucideGrid3x2: Grid3x2,
  LucideGrid3x3: Grid3x3,
  LucideGrip: Grip,
  LucideGripHorizontal: GripHorizontal,
  LucideGripVertical: GripVertical,
  LucideGroup: Group,
  LucideGuitar: Guitar,
  LucideHam: Ham,
  LucideHamburger: Hamburger,
  LucideHammer: Hammer,
  LucideHand: Hand,
  LucideHandCoins: HandCoins,
  LucideHandFist: HandFist,
  LucideHandGrab: HandGrab,
  LucideHandHeart: HandHeart,
  LucideHandHelping: HandHelping,
  LucideHandMetal: HandMetal,
  LucideHandPlatter: HandPlatter,
  LucideHandbag: Handbag,
  LucideHandshake: Handshake,
  LucideHardDrive: HardDrive,
  LucideHardDriveDownload: HardDriveDownload,
  LucideHardDriveUpload: HardDriveUpload,
  LucideHardHat: HardHat,
  LucideHash: Hash,
  LucideHatGlasses: HatGlasses,
  LucideHaze: Haze,
  LucideHdmiPort: HdmiPort,
  LucideHeading: Heading,
  LucideHeading1: Heading1,
  LucideHeading2: Heading2,
  LucideHeading3: Heading3,
  LucideHeading4: Heading4,
  LucideHeading5: Heading5,
  LucideHeading6: Heading6,
  LucideHeadphoneOff: HeadphoneOff,
  LucideHeadphones: Headphones,
  LucideHeadset: Headset,
  LucideHeart: Heart,
  LucideHeartCrack: HeartCrack,
  LucideHeartHandshake: HeartHandshake,
  LucideHeartMinus: HeartMinus,
  LucideHeartOff: HeartOff,
  LucideHeartPlus: HeartPlus,
  LucideHeartPulse: HeartPulse,
  LucideHeater: Heater,
  LucideHelicopter: Helicopter,
  LucideHelpCircle: CircleQuestionMark,
  LucideHelpingHand: HandHelping,
  LucideHexagon: Hexagon,
  LucideHighlighter: Highlighter,
  LucideHistory: History,
  LucideHome: House,
  LucideHop: Hop,
  LucideHopOff: HopOff,
  LucideHospital: Hospital,
  LucideHotel: Hotel,
  LucideHourglass: Hourglass,
  LucideHouse: House,
  LucideHouseHeart: HouseHeart,
  LucideHousePlug: HousePlug,
  LucideHousePlus: HousePlus,
  LucideHouseWifi: HouseWifi,
  LucideIceCream: IceCreamCone,
  LucideIceCream2: IceCreamBowl,
  LucideIceCreamBowl: IceCreamBowl,
  LucideIceCreamCone: IceCreamCone,
  LucideIdCard: IdCard,
  LucideIdCardLanyard: IdCardLanyard,
  LucideImage: Image,
  LucideImageDown: ImageDown,
  LucideImageMinus: ImageMinus,
  LucideImageOff: ImageOff,
  LucideImagePlay: ImagePlay,
  LucideImagePlus: ImagePlus,
  LucideImageUp: ImageUp,
  LucideImageUpscale: ImageUpscale,
  LucideImages: Images,
  LucideImport: Import,
  LucideInbox: Inbox,
  LucideIndent: ListIndentIncrease,
  LucideIndentDecrease: ListIndentDecrease,
  LucideIndentIncrease: ListIndentIncrease,
  LucideIndianRupee: IndianRupee,
  LucideInfinity: Infinity$1,
  LucideInfo: Info,
  LucideInspect: SquareMousePointer,
  LucideInspectionPanel: InspectionPanel,
  LucideInstagram: Instagram,
  LucideItalic: Italic,
  LucideIterationCcw: IterationCcw,
  LucideIterationCw: IterationCw,
  LucideJapaneseYen: JapaneseYen,
  LucideJoystick: Joystick,
  LucideKanban: Kanban,
  LucideKanbanSquare: SquareKanban,
  LucideKanbanSquareDashed: SquareDashedKanban,
  LucideKayak: Kayak,
  LucideKey: Key,
  LucideKeyRound: KeyRound,
  LucideKeySquare: KeySquare,
  LucideKeyboard: Keyboard,
  LucideKeyboardMusic: KeyboardMusic,
  LucideKeyboardOff: KeyboardOff,
  LucideLamp: Lamp,
  LucideLampCeiling: LampCeiling,
  LucideLampDesk: LampDesk,
  LucideLampFloor: LampFloor,
  LucideLampWallDown: LampWallDown,
  LucideLampWallUp: LampWallUp,
  LucideLandPlot: LandPlot,
  LucideLandmark: Landmark,
  LucideLanguages: Languages,
  LucideLaptop: Laptop,
  LucideLaptop2: LaptopMinimal,
  LucideLaptopMinimal: LaptopMinimal,
  LucideLaptopMinimalCheck: LaptopMinimalCheck,
  LucideLasso: Lasso,
  LucideLassoSelect: LassoSelect,
  LucideLaugh: Laugh,
  LucideLayers: Layers,
  LucideLayers2: Layers2,
  LucideLayers3: Layers,
  LucideLayout: PanelsTopLeft,
  LucideLayoutDashboard: LayoutDashboard,
  LucideLayoutGrid: LayoutGrid,
  LucideLayoutList: LayoutList,
  LucideLayoutPanelLeft: LayoutPanelLeft,
  LucideLayoutPanelTop: LayoutPanelTop,
  LucideLayoutTemplate: LayoutTemplate,
  LucideLeaf: Leaf,
  LucideLeafyGreen: LeafyGreen,
  LucideLectern: Lectern,
  LucideLetterText: TextInitial,
  LucideLibrary: Library,
  LucideLibraryBig: LibraryBig,
  LucideLibrarySquare: SquareLibrary,
  LucideLifeBuoy: LifeBuoy,
  LucideLigature: Ligature,
  LucideLightbulb: Lightbulb,
  LucideLightbulbOff: LightbulbOff,
  LucideLineChart: ChartLine,
  LucideLineSquiggle: LineSquiggle,
  LucideLink: Link,
  LucideLink2: Link2,
  LucideLink2Off: Link2Off,
  LucideLinkedin: Linkedin,
  LucideList: List,
  LucideListCheck: ListCheck,
  LucideListChecks: ListChecks,
  LucideListChevronsDownUp: ListChevronsDownUp,
  LucideListChevronsUpDown: ListChevronsUpDown,
  LucideListCollapse: ListCollapse,
  LucideListEnd: ListEnd,
  LucideListFilter: ListFilter,
  LucideListFilterPlus: ListFilterPlus,
  LucideListIndentDecrease: ListIndentDecrease,
  LucideListIndentIncrease: ListIndentIncrease,
  LucideListMinus: ListMinus,
  LucideListMusic: ListMusic,
  LucideListOrdered: ListOrdered,
  LucideListPlus: ListPlus,
  LucideListRestart: ListRestart,
  LucideListStart: ListStart,
  LucideListTodo: ListTodo,
  LucideListTree: ListTree,
  LucideListVideo: ListVideo,
  LucideListX: ListX,
  LucideLoader: Loader,
  LucideLoader2: LoaderCircle,
  LucideLoaderCircle: LoaderCircle,
  LucideLoaderPinwheel: LoaderPinwheel,
  LucideLocate: Locate,
  LucideLocateFixed: LocateFixed,
  LucideLocateOff: LocateOff,
  LucideLocationEdit: MapPinPen,
  LucideLock: Lock,
  LucideLockKeyhole: LockKeyhole,
  LucideLockKeyholeOpen: LockKeyholeOpen,
  LucideLockOpen: LockOpen,
  LucideLogIn: LogIn,
  LucideLogOut: LogOut,
  LucideLogs: Logs,
  LucideLollipop: Lollipop,
  LucideLuggage: Luggage,
  LucideMSquare: SquareM,
  LucideMagnet: Magnet,
  LucideMail: Mail,
  LucideMailCheck: MailCheck,
  LucideMailMinus: MailMinus,
  LucideMailOpen: MailOpen,
  LucideMailPlus: MailPlus,
  LucideMailQuestion: MailQuestionMark,
  LucideMailQuestionMark: MailQuestionMark,
  LucideMailSearch: MailSearch,
  LucideMailWarning: MailWarning,
  LucideMailX: MailX,
  LucideMailbox: Mailbox,
  LucideMails: Mails,
  LucideMap: Map$1,
  LucideMapMinus: MapMinus,
  LucideMapPin: MapPin,
  LucideMapPinCheck: MapPinCheck,
  LucideMapPinCheckInside: MapPinCheckInside,
  LucideMapPinHouse: MapPinHouse,
  LucideMapPinMinus: MapPinMinus,
  LucideMapPinMinusInside: MapPinMinusInside,
  LucideMapPinOff: MapPinOff,
  LucideMapPinPen: MapPinPen,
  LucideMapPinPlus: MapPinPlus,
  LucideMapPinPlusInside: MapPinPlusInside,
  LucideMapPinX: MapPinX,
  LucideMapPinXInside: MapPinXInside,
  LucideMapPinned: MapPinned,
  LucideMapPlus: MapPlus,
  LucideMars: Mars,
  LucideMarsStroke: MarsStroke,
  LucideMartini: Martini,
  LucideMaximize: Maximize,
  LucideMaximize2: Maximize2,
  LucideMedal: Medal,
  LucideMegaphone: Megaphone,
  LucideMegaphoneOff: MegaphoneOff,
  LucideMeh: Meh,
  LucideMemoryStick: MemoryStick,
  LucideMenu: Menu,
  LucideMenuSquare: SquareMenu,
  LucideMerge: Merge,
  LucideMessageCircle: MessageCircle,
  LucideMessageCircleCode: MessageCircleCode,
  LucideMessageCircleDashed: MessageCircleDashed,
  LucideMessageCircleHeart: MessageCircleHeart,
  LucideMessageCircleMore: MessageCircleMore,
  LucideMessageCircleOff: MessageCircleOff,
  LucideMessageCirclePlus: MessageCirclePlus,
  LucideMessageCircleQuestion: MessageCircleQuestionMark,
  LucideMessageCircleQuestionMark: MessageCircleQuestionMark,
  LucideMessageCircleReply: MessageCircleReply,
  LucideMessageCircleWarning: MessageCircleWarning,
  LucideMessageCircleX: MessageCircleX,
  LucideMessageSquare: MessageSquare,
  LucideMessageSquareCode: MessageSquareCode,
  LucideMessageSquareDashed: MessageSquareDashed,
  LucideMessageSquareDiff: MessageSquareDiff,
  LucideMessageSquareDot: MessageSquareDot,
  LucideMessageSquareHeart: MessageSquareHeart,
  LucideMessageSquareLock: MessageSquareLock,
  LucideMessageSquareMore: MessageSquareMore,
  LucideMessageSquareOff: MessageSquareOff,
  LucideMessageSquarePlus: MessageSquarePlus,
  LucideMessageSquareQuote: MessageSquareQuote,
  LucideMessageSquareReply: MessageSquareReply,
  LucideMessageSquareShare: MessageSquareShare,
  LucideMessageSquareText: MessageSquareText,
  LucideMessageSquareWarning: MessageSquareWarning,
  LucideMessageSquareX: MessageSquareX,
  LucideMessagesSquare: MessagesSquare,
  LucideMic: Mic,
  LucideMic2: MicVocal,
  LucideMicOff: MicOff,
  LucideMicVocal: MicVocal,
  LucideMicrochip: Microchip,
  LucideMicroscope: Microscope,
  LucideMicrowave: Microwave,
  LucideMilestone: Milestone,
  LucideMilk: Milk,
  LucideMilkOff: MilkOff,
  LucideMinimize: Minimize,
  LucideMinimize2: Minimize2,
  LucideMinus: Minus,
  LucideMinusCircle: CircleMinus,
  LucideMinusSquare: SquareMinus,
  LucideMonitor: Monitor,
  LucideMonitorCheck: MonitorCheck,
  LucideMonitorCloud: MonitorCloud,
  LucideMonitorCog: MonitorCog,
  LucideMonitorDot: MonitorDot,
  LucideMonitorDown: MonitorDown,
  LucideMonitorOff: MonitorOff,
  LucideMonitorPause: MonitorPause,
  LucideMonitorPlay: MonitorPlay,
  LucideMonitorSmartphone: MonitorSmartphone,
  LucideMonitorSpeaker: MonitorSpeaker,
  LucideMonitorStop: MonitorStop,
  LucideMonitorUp: MonitorUp,
  LucideMonitorX: MonitorX,
  LucideMoon: Moon,
  LucideMoonStar: MoonStar,
  LucideMoreHorizontal: Ellipsis,
  LucideMoreVertical: EllipsisVertical,
  LucideMotorbike: Motorbike,
  LucideMountain: Mountain,
  LucideMountainSnow: MountainSnow,
  LucideMouse: Mouse,
  LucideMouseOff: MouseOff,
  LucideMousePointer: MousePointer,
  LucideMousePointer2: MousePointer2,
  LucideMousePointer2Off: MousePointer2Off,
  LucideMousePointerBan: MousePointerBan,
  LucideMousePointerClick: MousePointerClick,
  LucideMousePointerSquareDashed: SquareDashedMousePointer,
  LucideMove: Move,
  LucideMove3D: Move3d,
  LucideMove3d: Move3d,
  LucideMoveDiagonal: MoveDiagonal,
  LucideMoveDiagonal2: MoveDiagonal2,
  LucideMoveDown: MoveDown,
  LucideMoveDownLeft: MoveDownLeft,
  LucideMoveDownRight: MoveDownRight,
  LucideMoveHorizontal: MoveHorizontal,
  LucideMoveLeft: MoveLeft,
  LucideMoveRight: MoveRight,
  LucideMoveUp: MoveUp,
  LucideMoveUpLeft: MoveUpLeft,
  LucideMoveUpRight: MoveUpRight,
  LucideMoveVertical: MoveVertical,
  LucideMusic: Music,
  LucideMusic2: Music2,
  LucideMusic3: Music3,
  LucideMusic4: Music4,
  LucideNavigation: Navigation,
  LucideNavigation2: Navigation2,
  LucideNavigation2Off: Navigation2Off,
  LucideNavigationOff: NavigationOff,
  LucideNetwork: Network,
  LucideNewspaper: Newspaper,
  LucideNfc: Nfc,
  LucideNonBinary: NonBinary,
  LucideNotebook: Notebook,
  LucideNotebookPen: NotebookPen,
  LucideNotebookTabs: NotebookTabs,
  LucideNotebookText: NotebookText,
  LucideNotepadText: NotepadText,
  LucideNotepadTextDashed: NotepadTextDashed,
  LucideNut: Nut,
  LucideNutOff: NutOff,
  LucideOctagon: Octagon,
  LucideOctagonAlert: OctagonAlert,
  LucideOctagonMinus: OctagonMinus,
  LucideOctagonPause: OctagonPause,
  LucideOctagonX: OctagonX,
  LucideOmega: Omega,
  LucideOption: Option,
  LucideOrbit: Orbit,
  LucideOrigami: Origami,
  LucideOutdent: ListIndentDecrease,
  LucidePackage: Package,
  LucidePackage2: Package2,
  LucidePackageCheck: PackageCheck,
  LucidePackageMinus: PackageMinus,
  LucidePackageOpen: PackageOpen,
  LucidePackagePlus: PackagePlus,
  LucidePackageSearch: PackageSearch,
  LucidePackageX: PackageX,
  LucidePaintBucket: PaintBucket,
  LucidePaintRoller: PaintRoller,
  LucidePaintbrush: Paintbrush,
  LucidePaintbrush2: PaintbrushVertical,
  LucidePaintbrushVertical: PaintbrushVertical,
  LucidePalette: Palette,
  LucidePalmtree: TreePalm,
  LucidePanda: Panda,
  LucidePanelBottom: PanelBottom,
  LucidePanelBottomClose: PanelBottomClose,
  LucidePanelBottomDashed: PanelBottomDashed,
  LucidePanelBottomInactive: PanelBottomDashed,
  LucidePanelBottomOpen: PanelBottomOpen,
  LucidePanelLeft: PanelLeft,
  LucidePanelLeftClose: PanelLeftClose,
  LucidePanelLeftDashed: PanelLeftDashed,
  LucidePanelLeftInactive: PanelLeftDashed,
  LucidePanelLeftOpen: PanelLeftOpen,
  LucidePanelLeftRightDashed: PanelLeftRightDashed,
  LucidePanelRight: PanelRight,
  LucidePanelRightClose: PanelRightClose,
  LucidePanelRightDashed: PanelRightDashed,
  LucidePanelRightInactive: PanelRightDashed,
  LucidePanelRightOpen: PanelRightOpen,
  LucidePanelTop: PanelTop,
  LucidePanelTopBottomDashed: PanelTopBottomDashed,
  LucidePanelTopClose: PanelTopClose,
  LucidePanelTopDashed: PanelTopDashed,
  LucidePanelTopInactive: PanelTopDashed,
  LucidePanelTopOpen: PanelTopOpen,
  LucidePanelsLeftBottom: PanelsLeftBottom,
  LucidePanelsLeftRight: Columns3,
  LucidePanelsRightBottom: PanelsRightBottom,
  LucidePanelsTopBottom: Rows3,
  LucidePanelsTopLeft: PanelsTopLeft,
  LucidePaperclip: Paperclip,
  LucideParentheses: Parentheses,
  LucideParkingCircle: CircleParking,
  LucideParkingCircleOff: CircleParkingOff,
  LucideParkingMeter: ParkingMeter,
  LucideParkingSquare: SquareParking,
  LucideParkingSquareOff: SquareParkingOff,
  LucidePartyPopper: PartyPopper,
  LucidePause: Pause,
  LucidePauseCircle: CirclePause,
  LucidePauseOctagon: OctagonPause,
  LucidePawPrint: PawPrint,
  LucidePcCase: PcCase,
  LucidePen: Pen,
  LucidePenBox: SquarePen,
  LucidePenLine: PenLine,
  LucidePenOff: PenOff,
  LucidePenSquare: SquarePen,
  LucidePenTool: PenTool,
  LucidePencil: Pencil,
  LucidePencilLine: PencilLine,
  LucidePencilOff: PencilOff,
  LucidePencilRuler: PencilRuler,
  LucidePentagon: Pentagon,
  LucidePercent: Percent,
  LucidePercentCircle: CirclePercent,
  LucidePercentDiamond: DiamondPercent,
  LucidePercentSquare: SquarePercent,
  LucidePersonStanding: PersonStanding,
  LucidePhilippinePeso: PhilippinePeso,
  LucidePhone: Phone,
  LucidePhoneCall: PhoneCall,
  LucidePhoneForwarded: PhoneForwarded,
  LucidePhoneIncoming: PhoneIncoming,
  LucidePhoneMissed: PhoneMissed,
  LucidePhoneOff: PhoneOff,
  LucidePhoneOutgoing: PhoneOutgoing,
  LucidePi: Pi,
  LucidePiSquare: SquarePi,
  LucidePiano: Piano,
  LucidePickaxe: Pickaxe,
  LucidePictureInPicture: PictureInPicture,
  LucidePictureInPicture2: PictureInPicture2,
  LucidePieChart: ChartPie,
  LucidePiggyBank: PiggyBank,
  LucidePilcrow: Pilcrow,
  LucidePilcrowLeft: PilcrowLeft,
  LucidePilcrowRight: PilcrowRight,
  LucidePilcrowSquare: SquarePilcrow,
  LucidePill: Pill,
  LucidePillBottle: PillBottle,
  LucidePin: Pin,
  LucidePinOff: PinOff,
  LucidePipette: Pipette,
  LucidePizza: Pizza,
  LucidePlane: Plane,
  LucidePlaneLanding: PlaneLanding,
  LucidePlaneTakeoff: PlaneTakeoff,
  LucidePlay: Play,
  LucidePlayCircle: CirclePlay,
  LucidePlaySquare: SquarePlay,
  LucidePlug: Plug,
  LucidePlug2: Plug2,
  LucidePlugZap: PlugZap,
  LucidePlugZap2: PlugZap,
  LucidePlus: Plus,
  LucidePlusCircle: CirclePlus,
  LucidePlusSquare: SquarePlus,
  LucidePocket: Pocket,
  LucidePocketKnife: PocketKnife,
  LucidePodcast: Podcast,
  LucidePointer: Pointer,
  LucidePointerOff: PointerOff,
  LucidePopcorn: Popcorn,
  LucidePopsicle: Popsicle,
  LucidePoundSterling: PoundSterling,
  LucidePower: Power,
  LucidePowerCircle: CirclePower,
  LucidePowerOff: PowerOff,
  LucidePowerSquare: SquarePower,
  LucidePresentation: Presentation,
  LucidePrinter: Printer,
  LucidePrinterCheck: PrinterCheck,
  LucideProjector: Projector,
  LucideProportions: Proportions,
  LucidePuzzle: Puzzle,
  LucidePyramid: Pyramid,
  LucideQrCode: QrCode,
  LucideQuote: Quote,
  LucideRabbit: Rabbit,
  LucideRadar: Radar,
  LucideRadiation: Radiation,
  LucideRadical: Radical,
  LucideRadio: Radio,
  LucideRadioReceiver: RadioReceiver,
  LucideRadioTower: RadioTower,
  LucideRadius: Radius,
  LucideRailSymbol: RailSymbol,
  LucideRainbow: Rainbow,
  LucideRat: Rat,
  LucideRatio: Ratio,
  LucideReceipt: Receipt,
  LucideReceiptCent: ReceiptCent,
  LucideReceiptEuro: ReceiptEuro,
  LucideReceiptIndianRupee: ReceiptIndianRupee,
  LucideReceiptJapaneseYen: ReceiptJapaneseYen,
  LucideReceiptPoundSterling: ReceiptPoundSterling,
  LucideReceiptRussianRuble: ReceiptRussianRuble,
  LucideReceiptSwissFranc: ReceiptSwissFranc,
  LucideReceiptText: ReceiptText,
  LucideReceiptTurkishLira: ReceiptTurkishLira,
  LucideRectangleCircle: RectangleCircle,
  LucideRectangleEllipsis: RectangleEllipsis,
  LucideRectangleGoggles: RectangleGoggles,
  LucideRectangleHorizontal: RectangleHorizontal,
  LucideRectangleVertical: RectangleVertical,
  LucideRecycle: Recycle,
  LucideRedo: Redo,
  LucideRedo2: Redo2,
  LucideRedoDot: RedoDot,
  LucideRefreshCcw: RefreshCcw,
  LucideRefreshCcwDot: RefreshCcwDot,
  LucideRefreshCw: RefreshCw,
  LucideRefreshCwOff: RefreshCwOff,
  LucideRefrigerator: Refrigerator,
  LucideRegex: Regex,
  LucideRemoveFormatting: RemoveFormatting,
  LucideRepeat: Repeat,
  LucideRepeat1: Repeat1,
  LucideRepeat2: Repeat2,
  LucideReplace: Replace,
  LucideReplaceAll: ReplaceAll,
  LucideReply: Reply,
  LucideReplyAll: ReplyAll,
  LucideRewind: Rewind,
  LucideRibbon: Ribbon,
  LucideRocket: Rocket,
  LucideRockingChair: RockingChair,
  LucideRollerCoaster: RollerCoaster,
  LucideRose: Rose,
  LucideRotate3D: Rotate3d,
  LucideRotate3d: Rotate3d,
  LucideRotateCcw: RotateCcw,
  LucideRotateCcwKey: RotateCcwKey,
  LucideRotateCcwSquare: RotateCcwSquare,
  LucideRotateCw: RotateCw,
  LucideRotateCwSquare: RotateCwSquare,
  LucideRoute: Route,
  LucideRouteOff: RouteOff,
  LucideRouter: Router,
  LucideRows: Rows2,
  LucideRows2: Rows2,
  LucideRows3: Rows3,
  LucideRows4: Rows4,
  LucideRss: Rss,
  LucideRuler: Ruler,
  LucideRulerDimensionLine: RulerDimensionLine,
  LucideRussianRuble: RussianRuble,
  LucideSailboat: Sailboat,
  LucideSalad: Salad,
  LucideSandwich: Sandwich,
  LucideSatellite: Satellite,
  LucideSatelliteDish: SatelliteDish,
  LucideSaudiRiyal: SaudiRiyal,
  LucideSave: Save,
  LucideSaveAll: SaveAll,
  LucideSaveOff: SaveOff,
  LucideScale: Scale,
  LucideScale3D: Scale3d,
  LucideScale3d: Scale3d,
  LucideScaling: Scaling,
  LucideScan: Scan,
  LucideScanBarcode: ScanBarcode,
  LucideScanEye: ScanEye,
  LucideScanFace: ScanFace,
  LucideScanHeart: ScanHeart,
  LucideScanLine: ScanLine,
  LucideScanQrCode: ScanQrCode,
  LucideScanSearch: ScanSearch,
  LucideScanText: ScanText,
  LucideScatterChart: ChartScatter,
  LucideSchool: School,
  LucideSchool2: University,
  LucideScissors: Scissors,
  LucideScissorsLineDashed: ScissorsLineDashed,
  LucideScissorsSquare: SquareScissors,
  LucideScissorsSquareDashedBottom: SquareBottomDashedScissors,
  LucideScreenShare: ScreenShare,
  LucideScreenShareOff: ScreenShareOff,
  LucideScroll: Scroll,
  LucideScrollText: ScrollText,
  LucideSearch: Search,
  LucideSearchCheck: SearchCheck,
  LucideSearchCode: SearchCode,
  LucideSearchSlash: SearchSlash,
  LucideSearchX: SearchX,
  LucideSection: Section,
  LucideSend: Send,
  LucideSendHorizonal: SendHorizontal,
  LucideSendHorizontal: SendHorizontal,
  LucideSendToBack: SendToBack,
  LucideSeparatorHorizontal: SeparatorHorizontal,
  LucideSeparatorVertical: SeparatorVertical,
  LucideServer: Server,
  LucideServerCog: ServerCog,
  LucideServerCrash: ServerCrash,
  LucideServerOff: ServerOff,
  LucideSettings: Settings,
  LucideSettings2: Settings2,
  LucideShapes: Shapes,
  LucideShare: Share,
  LucideShare2: Share2,
  LucideSheet: Sheet,
  LucideShell: Shell,
  LucideShield: Shield,
  LucideShieldAlert: ShieldAlert,
  LucideShieldBan: ShieldBan,
  LucideShieldCheck: ShieldCheck,
  LucideShieldClose: ShieldX,
  LucideShieldEllipsis: ShieldEllipsis,
  LucideShieldHalf: ShieldHalf,
  LucideShieldMinus: ShieldMinus,
  LucideShieldOff: ShieldOff,
  LucideShieldPlus: ShieldPlus,
  LucideShieldQuestion: ShieldQuestionMark,
  LucideShieldQuestionMark: ShieldQuestionMark,
  LucideShieldUser: ShieldUser,
  LucideShieldX: ShieldX,
  LucideShip: Ship,
  LucideShipWheel: ShipWheel,
  LucideShirt: Shirt,
  LucideShoppingBag: ShoppingBag,
  LucideShoppingBasket: ShoppingBasket,
  LucideShoppingCart: ShoppingCart,
  LucideShovel: Shovel,
  LucideShowerHead: ShowerHead,
  LucideShredder: Shredder,
  LucideShrimp: Shrimp,
  LucideShrink: Shrink,
  LucideShrub: Shrub,
  LucideShuffle: Shuffle,
  LucideSidebar: PanelLeft,
  LucideSidebarClose: PanelLeftClose,
  LucideSidebarOpen: PanelLeftOpen,
  LucideSigma: Sigma,
  LucideSigmaSquare: SquareSigma,
  LucideSignal: Signal,
  LucideSignalHigh: SignalHigh,
  LucideSignalLow: SignalLow,
  LucideSignalMedium: SignalMedium,
  LucideSignalZero: SignalZero,
  LucideSignature: Signature,
  LucideSignpost: Signpost,
  LucideSignpostBig: SignpostBig,
  LucideSiren: Siren,
  LucideSkipBack: SkipBack,
  LucideSkipForward: SkipForward,
  LucideSkull: Skull,
  LucideSlack: Slack,
  LucideSlash: Slash,
  LucideSlashSquare: SquareSlash,
  LucideSlice: Slice,
  LucideSliders: SlidersVertical,
  LucideSlidersHorizontal: SlidersHorizontal,
  LucideSlidersVertical: SlidersVertical,
  LucideSmartphone: Smartphone,
  LucideSmartphoneCharging: SmartphoneCharging,
  LucideSmartphoneNfc: SmartphoneNfc,
  LucideSmile: Smile,
  LucideSmilePlus: SmilePlus,
  LucideSnail: Snail,
  LucideSnowflake: Snowflake,
  LucideSoapDispenserDroplet: SoapDispenserDroplet,
  LucideSofa: Sofa,
  LucideSolarPanel: SolarPanel,
  LucideSortAsc: ArrowUpNarrowWide,
  LucideSortDesc: ArrowDownWideNarrow,
  LucideSoup: Soup,
  LucideSpace: Space,
  LucideSpade: Spade,
  LucideSparkle: Sparkle,
  LucideSparkles: Sparkles,
  LucideSpeaker: Speaker,
  LucideSpeech: Speech,
  LucideSpellCheck: SpellCheck,
  LucideSpellCheck2: SpellCheck2,
  LucideSpline: Spline,
  LucideSplinePointer: SplinePointer,
  LucideSplit: Split,
  LucideSplitSquareHorizontal: SquareSplitHorizontal,
  LucideSplitSquareVertical: SquareSplitVertical,
  LucideSpool: Spool,
  LucideSpotlight: Spotlight,
  LucideSprayCan: SprayCan,
  LucideSprout: Sprout,
  LucideSquare: Square,
  LucideSquareActivity: SquareActivity,
  LucideSquareArrowDown: SquareArrowDown,
  LucideSquareArrowDownLeft: SquareArrowDownLeft,
  LucideSquareArrowDownRight: SquareArrowDownRight,
  LucideSquareArrowLeft: SquareArrowLeft,
  LucideSquareArrowOutDownLeft: SquareArrowOutDownLeft,
  LucideSquareArrowOutDownRight: SquareArrowOutDownRight,
  LucideSquareArrowOutUpLeft: SquareArrowOutUpLeft,
  LucideSquareArrowOutUpRight: SquareArrowOutUpRight,
  LucideSquareArrowRight: SquareArrowRight,
  LucideSquareArrowUp: SquareArrowUp,
  LucideSquareArrowUpLeft: SquareArrowUpLeft,
  LucideSquareArrowUpRight: SquareArrowUpRight,
  LucideSquareAsterisk: SquareAsterisk,
  LucideSquareBottomDashedScissors: SquareBottomDashedScissors,
  LucideSquareChartGantt: SquareChartGantt,
  LucideSquareCheck: SquareCheck,
  LucideSquareCheckBig: SquareCheckBig,
  LucideSquareChevronDown: SquareChevronDown,
  LucideSquareChevronLeft: SquareChevronLeft,
  LucideSquareChevronRight: SquareChevronRight,
  LucideSquareChevronUp: SquareChevronUp,
  LucideSquareCode: SquareCode,
  LucideSquareDashed: SquareDashed,
  LucideSquareDashedBottom: SquareDashedBottom,
  LucideSquareDashedBottomCode: SquareDashedBottomCode,
  LucideSquareDashedKanban: SquareDashedKanban,
  LucideSquareDashedMousePointer: SquareDashedMousePointer,
  LucideSquareDashedTopSolid: SquareDashedTopSolid,
  LucideSquareDivide: SquareDivide,
  LucideSquareDot: SquareDot,
  LucideSquareEqual: SquareEqual,
  LucideSquareFunction: SquareFunction,
  LucideSquareGanttChart: SquareChartGantt,
  LucideSquareKanban: SquareKanban,
  LucideSquareLibrary: SquareLibrary,
  LucideSquareM: SquareM,
  LucideSquareMenu: SquareMenu,
  LucideSquareMinus: SquareMinus,
  LucideSquareMousePointer: SquareMousePointer,
  LucideSquareParking: SquareParking,
  LucideSquareParkingOff: SquareParkingOff,
  LucideSquarePause: SquarePause,
  LucideSquarePen: SquarePen,
  LucideSquarePercent: SquarePercent,
  LucideSquarePi: SquarePi,
  LucideSquarePilcrow: SquarePilcrow,
  LucideSquarePlay: SquarePlay,
  LucideSquarePlus: SquarePlus,
  LucideSquarePower: SquarePower,
  LucideSquareRadical: SquareRadical,
  LucideSquareRoundCorner: SquareRoundCorner,
  LucideSquareScissors: SquareScissors,
  LucideSquareSigma: SquareSigma,
  LucideSquareSlash: SquareSlash,
  LucideSquareSplitHorizontal: SquareSplitHorizontal,
  LucideSquareSplitVertical: SquareSplitVertical,
  LucideSquareSquare: SquareSquare,
  LucideSquareStack: SquareStack,
  LucideSquareStar: SquareStar,
  LucideSquareStop: SquareStop,
  LucideSquareTerminal: SquareTerminal,
  LucideSquareUser: SquareUser,
  LucideSquareUserRound: SquareUserRound,
  LucideSquareX: SquareX,
  LucideSquaresExclude: SquaresExclude,
  LucideSquaresIntersect: SquaresIntersect,
  LucideSquaresSubtract: SquaresSubtract,
  LucideSquaresUnite: SquaresUnite,
  LucideSquircle: Squircle,
  LucideSquircleDashed: SquircleDashed,
  LucideSquirrel: Squirrel,
  LucideStamp: Stamp,
  LucideStar: Star,
  LucideStarHalf: StarHalf,
  LucideStarOff: StarOff,
  LucideStars: Sparkles,
  LucideStepBack: StepBack,
  LucideStepForward: StepForward,
  LucideStethoscope: Stethoscope,
  LucideSticker: Sticker,
  LucideStickyNote: StickyNote,
  LucideStopCircle: CircleStop,
  LucideStore: Store,
  LucideStretchHorizontal: StretchHorizontal,
  LucideStretchVertical: StretchVertical,
  LucideStrikethrough: Strikethrough,
  LucideSubscript: Subscript,
  LucideSubtitles: Captions,
  LucideSun: Sun,
  LucideSunDim: SunDim,
  LucideSunMedium: SunMedium,
  LucideSunMoon: SunMoon,
  LucideSunSnow: SunSnow,
  LucideSunrise: Sunrise,
  LucideSunset: Sunset,
  LucideSuperscript: Superscript,
  LucideSwatchBook: SwatchBook,
  LucideSwissFranc: SwissFranc,
  LucideSwitchCamera: SwitchCamera,
  LucideSword: Sword,
  LucideSwords: Swords,
  LucideSyringe: Syringe,
  LucideTable: Table,
  LucideTable2: Table2,
  LucideTableCellsMerge: TableCellsMerge,
  LucideTableCellsSplit: TableCellsSplit,
  LucideTableColumnsSplit: TableColumnsSplit,
  LucideTableConfig: Columns3Cog,
  LucideTableOfContents: TableOfContents,
  LucideTableProperties: TableProperties,
  LucideTableRowsSplit: TableRowsSplit,
  LucideTablet: Tablet,
  LucideTabletSmartphone: TabletSmartphone,
  LucideTablets: Tablets,
  LucideTag: Tag,
  LucideTags: Tags,
  LucideTally1: Tally1,
  LucideTally2: Tally2,
  LucideTally3: Tally3,
  LucideTally4: Tally4,
  LucideTally5: Tally5,
  LucideTangent: Tangent,
  LucideTarget: Target,
  LucideTelescope: Telescope,
  LucideTent: Tent,
  LucideTentTree: TentTree,
  LucideTerminal: Terminal,
  LucideTerminalSquare: SquareTerminal,
  LucideTestTube: TestTube,
  LucideTestTube2: TestTubeDiagonal,
  LucideTestTubeDiagonal: TestTubeDiagonal,
  LucideTestTubes: TestTubes,
  LucideText: TextAlignStart,
  LucideTextAlignCenter: TextAlignCenter,
  LucideTextAlignEnd: TextAlignEnd,
  LucideTextAlignJustify: TextAlignJustify,
  LucideTextAlignStart: TextAlignStart,
  LucideTextCursor: TextCursor,
  LucideTextCursorInput: TextCursorInput,
  LucideTextInitial: TextInitial,
  LucideTextQuote: TextQuote,
  LucideTextSearch: TextSearch,
  LucideTextSelect: TextSelect,
  LucideTextSelection: TextSelect,
  LucideTextWrap: TextWrap,
  LucideTheater: Theater,
  LucideThermometer: Thermometer,
  LucideThermometerSnowflake: ThermometerSnowflake,
  LucideThermometerSun: ThermometerSun,
  LucideThumbsDown: ThumbsDown,
  LucideThumbsUp: ThumbsUp,
  LucideTicket: Ticket,
  LucideTicketCheck: TicketCheck,
  LucideTicketMinus: TicketMinus,
  LucideTicketPercent: TicketPercent,
  LucideTicketPlus: TicketPlus,
  LucideTicketSlash: TicketSlash,
  LucideTicketX: TicketX,
  LucideTickets: Tickets,
  LucideTicketsPlane: TicketsPlane,
  LucideTimer: Timer,
  LucideTimerOff: TimerOff,
  LucideTimerReset: TimerReset,
  LucideToggleLeft: ToggleLeft,
  LucideToggleRight: ToggleRight,
  LucideToilet: Toilet,
  LucideToolCase: ToolCase,
  LucideTornado: Tornado,
  LucideTorus: Torus,
  LucideTouchpad: Touchpad,
  LucideTouchpadOff: TouchpadOff,
  LucideTowerControl: TowerControl,
  LucideToyBrick: ToyBrick,
  LucideTractor: Tractor,
  LucideTrafficCone: TrafficCone,
  LucideTrain: TramFront,
  LucideTrainFront: TrainFront,
  LucideTrainFrontTunnel: TrainFrontTunnel,
  LucideTrainTrack: TrainTrack,
  LucideTramFront: TramFront,
  LucideTransgender: Transgender,
  LucideTrash: Trash,
  LucideTrash2: Trash2,
  LucideTreeDeciduous: TreeDeciduous,
  LucideTreePalm: TreePalm,
  LucideTreePine: TreePine,
  LucideTrees: Trees,
  LucideTrello: Trello,
  LucideTrendingDown: TrendingDown,
  LucideTrendingUp: TrendingUp,
  LucideTrendingUpDown: TrendingUpDown,
  LucideTriangle: Triangle,
  LucideTriangleAlert: TriangleAlert,
  LucideTriangleDashed: TriangleDashed,
  LucideTriangleRight: TriangleRight,
  LucideTrophy: Trophy,
  LucideTruck: Truck,
  LucideTruckElectric: TruckElectric,
  LucideTurkishLira: TurkishLira,
  LucideTurntable: Turntable,
  LucideTurtle: Turtle,
  LucideTv: Tv,
  LucideTv2: TvMinimal,
  LucideTvMinimal: TvMinimal,
  LucideTvMinimalPlay: TvMinimalPlay,
  LucideTwitch: Twitch,
  LucideTwitter: Twitter,
  LucideType: Type,
  LucideTypeOutline: TypeOutline,
  LucideUmbrella: Umbrella,
  LucideUmbrellaOff: UmbrellaOff,
  LucideUnderline: Underline,
  LucideUndo: Undo,
  LucideUndo2: Undo2,
  LucideUndoDot: UndoDot,
  LucideUnfoldHorizontal: UnfoldHorizontal,
  LucideUnfoldVertical: UnfoldVertical,
  LucideUngroup: Ungroup,
  LucideUniversity: University,
  LucideUnlink: Unlink,
  LucideUnlink2: Unlink2,
  LucideUnlock: LockOpen,
  LucideUnlockKeyhole: LockKeyholeOpen,
  LucideUnplug: Unplug,
  LucideUpload: Upload,
  LucideUploadCloud: CloudUpload,
  LucideUsb: Usb,
  LucideUser: User,
  LucideUser2: UserRound,
  LucideUserCheck: UserCheck,
  LucideUserCheck2: UserRoundCheck,
  LucideUserCircle: CircleUser,
  LucideUserCircle2: CircleUserRound,
  LucideUserCog: UserCog,
  LucideUserCog2: UserRoundCog,
  LucideUserLock: UserLock,
  LucideUserMinus: UserMinus,
  LucideUserMinus2: UserRoundMinus,
  LucideUserPen: UserPen,
  LucideUserPlus: UserPlus,
  LucideUserPlus2: UserRoundPlus,
  LucideUserRound: UserRound,
  LucideUserRoundCheck: UserRoundCheck,
  LucideUserRoundCog: UserRoundCog,
  LucideUserRoundMinus: UserRoundMinus,
  LucideUserRoundPen: UserRoundPen,
  LucideUserRoundPlus: UserRoundPlus,
  LucideUserRoundSearch: UserRoundSearch,
  LucideUserRoundX: UserRoundX,
  LucideUserSearch: UserSearch,
  LucideUserSquare: SquareUser,
  LucideUserSquare2: SquareUserRound,
  LucideUserStar: UserStar,
  LucideUserX: UserX,
  LucideUserX2: UserRoundX,
  LucideUsers: Users,
  LucideUsers2: UsersRound,
  LucideUsersRound: UsersRound,
  LucideUtensils: Utensils,
  LucideUtensilsCrossed: UtensilsCrossed,
  LucideUtilityPole: UtilityPole,
  LucideVariable: Variable,
  LucideVault: Vault,
  LucideVectorSquare: VectorSquare,
  LucideVegan: Vegan,
  LucideVenetianMask: VenetianMask,
  LucideVenus: Venus,
  LucideVenusAndMars: VenusAndMars,
  LucideVerified: BadgeCheck,
  LucideVibrate: Vibrate,
  LucideVibrateOff: VibrateOff,
  LucideVideo: Video,
  LucideVideoOff: VideoOff,
  LucideVideotape: Videotape,
  LucideView: View,
  LucideVoicemail: Voicemail,
  LucideVolleyball: Volleyball,
  LucideVolume: Volume,
  LucideVolume1: Volume1,
  LucideVolume2: Volume2,
  LucideVolumeOff: VolumeOff,
  LucideVolumeX: VolumeX,
  LucideVote: Vote,
  LucideWallet: Wallet,
  LucideWallet2: WalletMinimal,
  LucideWalletCards: WalletCards,
  LucideWalletMinimal: WalletMinimal,
  LucideWallpaper: Wallpaper,
  LucideWand: Wand,
  LucideWand2: WandSparkles,
  LucideWandSparkles: WandSparkles,
  LucideWarehouse: Warehouse,
  LucideWashingMachine: WashingMachine,
  LucideWatch: Watch,
  LucideWaves: Waves,
  LucideWavesArrowDown: WavesArrowDown,
  LucideWavesArrowUp: WavesArrowUp,
  LucideWavesLadder: WavesLadder,
  LucideWaypoints: Waypoints,
  LucideWebcam: Webcam,
  LucideWebhook: Webhook,
  LucideWebhookOff: WebhookOff,
  LucideWeight: Weight,
  LucideWheat: Wheat,
  LucideWheatOff: WheatOff,
  LucideWholeWord: WholeWord,
  LucideWifi: Wifi,
  LucideWifiCog: WifiCog,
  LucideWifiHigh: WifiHigh,
  LucideWifiLow: WifiLow,
  LucideWifiOff: WifiOff,
  LucideWifiPen: WifiPen,
  LucideWifiSync: WifiSync,
  LucideWifiZero: WifiZero,
  LucideWind: Wind,
  LucideWindArrowDown: WindArrowDown,
  LucideWine: Wine,
  LucideWineOff: WineOff,
  LucideWorkflow: Workflow,
  LucideWorm: Worm,
  LucideWrapText: TextWrap,
  LucideWrench: Wrench,
  LucideX: X,
  LucideXCircle: CircleX,
  LucideXOctagon: OctagonX,
  LucideXSquare: SquareX,
  LucideYoutube: Youtube,
  LucideZap: Zap,
  LucideZapOff: ZapOff,
  LucideZoomIn: ZoomIn,
  LucideZoomOut: ZoomOut,
  Luggage,
  LuggageIcon: Luggage,
  MSquare: SquareM,
  MSquareIcon: SquareM,
  Magnet,
  MagnetIcon: Magnet,
  Mail,
  MailCheck,
  MailCheckIcon: MailCheck,
  MailIcon: Mail,
  MailMinus,
  MailMinusIcon: MailMinus,
  MailOpen,
  MailOpenIcon: MailOpen,
  MailPlus,
  MailPlusIcon: MailPlus,
  MailQuestion: MailQuestionMark,
  MailQuestionIcon: MailQuestionMark,
  MailQuestionMark,
  MailQuestionMarkIcon: MailQuestionMark,
  MailSearch,
  MailSearchIcon: MailSearch,
  MailWarning,
  MailWarningIcon: MailWarning,
  MailX,
  MailXIcon: MailX,
  Mailbox,
  MailboxIcon: Mailbox,
  Mails,
  MailsIcon: Mails,
  Map: Map$1,
  MapIcon: Map$1,
  MapMinus,
  MapMinusIcon: MapMinus,
  MapPin,
  MapPinCheck,
  MapPinCheckIcon: MapPinCheck,
  MapPinCheckInside,
  MapPinCheckInsideIcon: MapPinCheckInside,
  MapPinHouse,
  MapPinHouseIcon: MapPinHouse,
  MapPinIcon: MapPin,
  MapPinMinus,
  MapPinMinusIcon: MapPinMinus,
  MapPinMinusInside,
  MapPinMinusInsideIcon: MapPinMinusInside,
  MapPinOff,
  MapPinOffIcon: MapPinOff,
  MapPinPen,
  MapPinPenIcon: MapPinPen,
  MapPinPlus,
  MapPinPlusIcon: MapPinPlus,
  MapPinPlusInside,
  MapPinPlusInsideIcon: MapPinPlusInside,
  MapPinX,
  MapPinXIcon: MapPinX,
  MapPinXInside,
  MapPinXInsideIcon: MapPinXInside,
  MapPinned,
  MapPinnedIcon: MapPinned,
  MapPlus,
  MapPlusIcon: MapPlus,
  Mars,
  MarsIcon: Mars,
  MarsStroke,
  MarsStrokeIcon: MarsStroke,
  Martini,
  MartiniIcon: Martini,
  Maximize,
  Maximize2,
  Maximize2Icon: Maximize2,
  MaximizeIcon: Maximize,
  Medal,
  MedalIcon: Medal,
  Megaphone,
  MegaphoneIcon: Megaphone,
  MegaphoneOff,
  MegaphoneOffIcon: MegaphoneOff,
  Meh,
  MehIcon: Meh,
  MemoryStick,
  MemoryStickIcon: MemoryStick,
  Menu,
  MenuIcon: Menu,
  MenuSquare: SquareMenu,
  MenuSquareIcon: SquareMenu,
  Merge,
  MergeIcon: Merge,
  MessageCircle,
  MessageCircleCode,
  MessageCircleCodeIcon: MessageCircleCode,
  MessageCircleDashed,
  MessageCircleDashedIcon: MessageCircleDashed,
  MessageCircleHeart,
  MessageCircleHeartIcon: MessageCircleHeart,
  MessageCircleIcon: MessageCircle,
  MessageCircleMore,
  MessageCircleMoreIcon: MessageCircleMore,
  MessageCircleOff,
  MessageCircleOffIcon: MessageCircleOff,
  MessageCirclePlus,
  MessageCirclePlusIcon: MessageCirclePlus,
  MessageCircleQuestion: MessageCircleQuestionMark,
  MessageCircleQuestionIcon: MessageCircleQuestionMark,
  MessageCircleQuestionMark,
  MessageCircleQuestionMarkIcon: MessageCircleQuestionMark,
  MessageCircleReply,
  MessageCircleReplyIcon: MessageCircleReply,
  MessageCircleWarning,
  MessageCircleWarningIcon: MessageCircleWarning,
  MessageCircleX,
  MessageCircleXIcon: MessageCircleX,
  MessageSquare,
  MessageSquareCode,
  MessageSquareCodeIcon: MessageSquareCode,
  MessageSquareDashed,
  MessageSquareDashedIcon: MessageSquareDashed,
  MessageSquareDiff,
  MessageSquareDiffIcon: MessageSquareDiff,
  MessageSquareDot,
  MessageSquareDotIcon: MessageSquareDot,
  MessageSquareHeart,
  MessageSquareHeartIcon: MessageSquareHeart,
  MessageSquareIcon: MessageSquare,
  MessageSquareLock,
  MessageSquareLockIcon: MessageSquareLock,
  MessageSquareMore,
  MessageSquareMoreIcon: MessageSquareMore,
  MessageSquareOff,
  MessageSquareOffIcon: MessageSquareOff,
  MessageSquarePlus,
  MessageSquarePlusIcon: MessageSquarePlus,
  MessageSquareQuote,
  MessageSquareQuoteIcon: MessageSquareQuote,
  MessageSquareReply,
  MessageSquareReplyIcon: MessageSquareReply,
  MessageSquareShare,
  MessageSquareShareIcon: MessageSquareShare,
  MessageSquareText,
  MessageSquareTextIcon: MessageSquareText,
  MessageSquareWarning,
  MessageSquareWarningIcon: MessageSquareWarning,
  MessageSquareX,
  MessageSquareXIcon: MessageSquareX,
  MessagesSquare,
  MessagesSquareIcon: MessagesSquare,
  Mic,
  Mic2: MicVocal,
  Mic2Icon: MicVocal,
  MicIcon: Mic,
  MicOff,
  MicOffIcon: MicOff,
  MicVocal,
  MicVocalIcon: MicVocal,
  Microchip,
  MicrochipIcon: Microchip,
  Microscope,
  MicroscopeIcon: Microscope,
  Microwave,
  MicrowaveIcon: Microwave,
  Milestone,
  MilestoneIcon: Milestone,
  Milk,
  MilkIcon: Milk,
  MilkOff,
  MilkOffIcon: MilkOff,
  Minimize,
  Minimize2,
  Minimize2Icon: Minimize2,
  MinimizeIcon: Minimize,
  Minus,
  MinusCircle: CircleMinus,
  MinusCircleIcon: CircleMinus,
  MinusIcon: Minus,
  MinusSquare: SquareMinus,
  MinusSquareIcon: SquareMinus,
  Monitor,
  MonitorCheck,
  MonitorCheckIcon: MonitorCheck,
  MonitorCloud,
  MonitorCloudIcon: MonitorCloud,
  MonitorCog,
  MonitorCogIcon: MonitorCog,
  MonitorDot,
  MonitorDotIcon: MonitorDot,
  MonitorDown,
  MonitorDownIcon: MonitorDown,
  MonitorIcon: Monitor,
  MonitorOff,
  MonitorOffIcon: MonitorOff,
  MonitorPause,
  MonitorPauseIcon: MonitorPause,
  MonitorPlay,
  MonitorPlayIcon: MonitorPlay,
  MonitorSmartphone,
  MonitorSmartphoneIcon: MonitorSmartphone,
  MonitorSpeaker,
  MonitorSpeakerIcon: MonitorSpeaker,
  MonitorStop,
  MonitorStopIcon: MonitorStop,
  MonitorUp,
  MonitorUpIcon: MonitorUp,
  MonitorX,
  MonitorXIcon: MonitorX,
  Moon,
  MoonIcon: Moon,
  MoonStar,
  MoonStarIcon: MoonStar,
  MoreHorizontal: Ellipsis,
  MoreHorizontalIcon: Ellipsis,
  MoreVertical: EllipsisVertical,
  MoreVerticalIcon: EllipsisVertical,
  Motorbike,
  MotorbikeIcon: Motorbike,
  Mountain,
  MountainIcon: Mountain,
  MountainSnow,
  MountainSnowIcon: MountainSnow,
  Mouse,
  MouseIcon: Mouse,
  MouseOff,
  MouseOffIcon: MouseOff,
  MousePointer,
  MousePointer2,
  MousePointer2Icon: MousePointer2,
  MousePointer2Off,
  MousePointer2OffIcon: MousePointer2Off,
  MousePointerBan,
  MousePointerBanIcon: MousePointerBan,
  MousePointerClick,
  MousePointerClickIcon: MousePointerClick,
  MousePointerIcon: MousePointer,
  MousePointerSquareDashed: SquareDashedMousePointer,
  MousePointerSquareDashedIcon: SquareDashedMousePointer,
  Move,
  Move3D: Move3d,
  Move3DIcon: Move3d,
  Move3d,
  Move3dIcon: Move3d,
  MoveDiagonal,
  MoveDiagonal2,
  MoveDiagonal2Icon: MoveDiagonal2,
  MoveDiagonalIcon: MoveDiagonal,
  MoveDown,
  MoveDownIcon: MoveDown,
  MoveDownLeft,
  MoveDownLeftIcon: MoveDownLeft,
  MoveDownRight,
  MoveDownRightIcon: MoveDownRight,
  MoveHorizontal,
  MoveHorizontalIcon: MoveHorizontal,
  MoveIcon: Move,
  MoveLeft,
  MoveLeftIcon: MoveLeft,
  MoveRight,
  MoveRightIcon: MoveRight,
  MoveUp,
  MoveUpIcon: MoveUp,
  MoveUpLeft,
  MoveUpLeftIcon: MoveUpLeft,
  MoveUpRight,
  MoveUpRightIcon: MoveUpRight,
  MoveVertical,
  MoveVerticalIcon: MoveVertical,
  Music,
  Music2,
  Music2Icon: Music2,
  Music3,
  Music3Icon: Music3,
  Music4,
  Music4Icon: Music4,
  MusicIcon: Music,
  Navigation,
  Navigation2,
  Navigation2Icon: Navigation2,
  Navigation2Off,
  Navigation2OffIcon: Navigation2Off,
  NavigationIcon: Navigation,
  NavigationOff,
  NavigationOffIcon: NavigationOff,
  Network,
  NetworkIcon: Network,
  Newspaper,
  NewspaperIcon: Newspaper,
  Nfc,
  NfcIcon: Nfc,
  NonBinary,
  NonBinaryIcon: NonBinary,
  Notebook,
  NotebookIcon: Notebook,
  NotebookPen,
  NotebookPenIcon: NotebookPen,
  NotebookTabs,
  NotebookTabsIcon: NotebookTabs,
  NotebookText,
  NotebookTextIcon: NotebookText,
  NotepadText,
  NotepadTextDashed,
  NotepadTextDashedIcon: NotepadTextDashed,
  NotepadTextIcon: NotepadText,
  Nut,
  NutIcon: Nut,
  NutOff,
  NutOffIcon: NutOff,
  Octagon,
  OctagonAlert,
  OctagonAlertIcon: OctagonAlert,
  OctagonIcon: Octagon,
  OctagonMinus,
  OctagonMinusIcon: OctagonMinus,
  OctagonPause,
  OctagonPauseIcon: OctagonPause,
  OctagonX,
  OctagonXIcon: OctagonX,
  Omega,
  OmegaIcon: Omega,
  Option,
  OptionIcon: Option,
  Orbit,
  OrbitIcon: Orbit,
  Origami,
  OrigamiIcon: Origami,
  Outdent: ListIndentDecrease,
  OutdentIcon: ListIndentDecrease,
  Package,
  Package2,
  Package2Icon: Package2,
  PackageCheck,
  PackageCheckIcon: PackageCheck,
  PackageIcon: Package,
  PackageMinus,
  PackageMinusIcon: PackageMinus,
  PackageOpen,
  PackageOpenIcon: PackageOpen,
  PackagePlus,
  PackagePlusIcon: PackagePlus,
  PackageSearch,
  PackageSearchIcon: PackageSearch,
  PackageX,
  PackageXIcon: PackageX,
  PaintBucket,
  PaintBucketIcon: PaintBucket,
  PaintRoller,
  PaintRollerIcon: PaintRoller,
  Paintbrush,
  Paintbrush2: PaintbrushVertical,
  Paintbrush2Icon: PaintbrushVertical,
  PaintbrushIcon: Paintbrush,
  PaintbrushVertical,
  PaintbrushVerticalIcon: PaintbrushVertical,
  Palette,
  PaletteIcon: Palette,
  Palmtree: TreePalm,
  PalmtreeIcon: TreePalm,
  Panda,
  PandaIcon: Panda,
  PanelBottom,
  PanelBottomClose,
  PanelBottomCloseIcon: PanelBottomClose,
  PanelBottomDashed,
  PanelBottomDashedIcon: PanelBottomDashed,
  PanelBottomIcon: PanelBottom,
  PanelBottomInactive: PanelBottomDashed,
  PanelBottomInactiveIcon: PanelBottomDashed,
  PanelBottomOpen,
  PanelBottomOpenIcon: PanelBottomOpen,
  PanelLeft,
  PanelLeftClose,
  PanelLeftCloseIcon: PanelLeftClose,
  PanelLeftDashed,
  PanelLeftDashedIcon: PanelLeftDashed,
  PanelLeftIcon: PanelLeft,
  PanelLeftInactive: PanelLeftDashed,
  PanelLeftInactiveIcon: PanelLeftDashed,
  PanelLeftOpen,
  PanelLeftOpenIcon: PanelLeftOpen,
  PanelLeftRightDashed,
  PanelLeftRightDashedIcon: PanelLeftRightDashed,
  PanelRight,
  PanelRightClose,
  PanelRightCloseIcon: PanelRightClose,
  PanelRightDashed,
  PanelRightDashedIcon: PanelRightDashed,
  PanelRightIcon: PanelRight,
  PanelRightInactive: PanelRightDashed,
  PanelRightInactiveIcon: PanelRightDashed,
  PanelRightOpen,
  PanelRightOpenIcon: PanelRightOpen,
  PanelTop,
  PanelTopBottomDashed,
  PanelTopBottomDashedIcon: PanelTopBottomDashed,
  PanelTopClose,
  PanelTopCloseIcon: PanelTopClose,
  PanelTopDashed,
  PanelTopDashedIcon: PanelTopDashed,
  PanelTopIcon: PanelTop,
  PanelTopInactive: PanelTopDashed,
  PanelTopInactiveIcon: PanelTopDashed,
  PanelTopOpen,
  PanelTopOpenIcon: PanelTopOpen,
  PanelsLeftBottom,
  PanelsLeftBottomIcon: PanelsLeftBottom,
  PanelsLeftRight: Columns3,
  PanelsLeftRightIcon: Columns3,
  PanelsRightBottom,
  PanelsRightBottomIcon: PanelsRightBottom,
  PanelsTopBottom: Rows3,
  PanelsTopBottomIcon: Rows3,
  PanelsTopLeft,
  PanelsTopLeftIcon: PanelsTopLeft,
  Paperclip,
  PaperclipIcon: Paperclip,
  Parentheses,
  ParenthesesIcon: Parentheses,
  ParkingCircle: CircleParking,
  ParkingCircleIcon: CircleParking,
  ParkingCircleOff: CircleParkingOff,
  ParkingCircleOffIcon: CircleParkingOff,
  ParkingMeter,
  ParkingMeterIcon: ParkingMeter,
  ParkingSquare: SquareParking,
  ParkingSquareIcon: SquareParking,
  ParkingSquareOff: SquareParkingOff,
  ParkingSquareOffIcon: SquareParkingOff,
  PartyPopper,
  PartyPopperIcon: PartyPopper,
  Pause,
  PauseCircle: CirclePause,
  PauseCircleIcon: CirclePause,
  PauseIcon: Pause,
  PauseOctagon: OctagonPause,
  PauseOctagonIcon: OctagonPause,
  PawPrint,
  PawPrintIcon: PawPrint,
  PcCase,
  PcCaseIcon: PcCase,
  Pen,
  PenBox: SquarePen,
  PenBoxIcon: SquarePen,
  PenIcon: Pen,
  PenLine,
  PenLineIcon: PenLine,
  PenOff,
  PenOffIcon: PenOff,
  PenSquare: SquarePen,
  PenSquareIcon: SquarePen,
  PenTool,
  PenToolIcon: PenTool,
  Pencil,
  PencilIcon: Pencil,
  PencilLine,
  PencilLineIcon: PencilLine,
  PencilOff,
  PencilOffIcon: PencilOff,
  PencilRuler,
  PencilRulerIcon: PencilRuler,
  Pentagon,
  PentagonIcon: Pentagon,
  Percent,
  PercentCircle: CirclePercent,
  PercentCircleIcon: CirclePercent,
  PercentDiamond: DiamondPercent,
  PercentDiamondIcon: DiamondPercent,
  PercentIcon: Percent,
  PercentSquare: SquarePercent,
  PercentSquareIcon: SquarePercent,
  PersonStanding,
  PersonStandingIcon: PersonStanding,
  PhilippinePeso,
  PhilippinePesoIcon: PhilippinePeso,
  Phone,
  PhoneCall,
  PhoneCallIcon: PhoneCall,
  PhoneForwarded,
  PhoneForwardedIcon: PhoneForwarded,
  PhoneIcon: Phone,
  PhoneIncoming,
  PhoneIncomingIcon: PhoneIncoming,
  PhoneMissed,
  PhoneMissedIcon: PhoneMissed,
  PhoneOff,
  PhoneOffIcon: PhoneOff,
  PhoneOutgoing,
  PhoneOutgoingIcon: PhoneOutgoing,
  Pi,
  PiIcon: Pi,
  PiSquare: SquarePi,
  PiSquareIcon: SquarePi,
  Piano,
  PianoIcon: Piano,
  Pickaxe,
  PickaxeIcon: Pickaxe,
  PictureInPicture,
  PictureInPicture2,
  PictureInPicture2Icon: PictureInPicture2,
  PictureInPictureIcon: PictureInPicture,
  PieChart: ChartPie,
  PieChartIcon: ChartPie,
  PiggyBank,
  PiggyBankIcon: PiggyBank,
  Pilcrow,
  PilcrowIcon: Pilcrow,
  PilcrowLeft,
  PilcrowLeftIcon: PilcrowLeft,
  PilcrowRight,
  PilcrowRightIcon: PilcrowRight,
  PilcrowSquare: SquarePilcrow,
  PilcrowSquareIcon: SquarePilcrow,
  Pill,
  PillBottle,
  PillBottleIcon: PillBottle,
  PillIcon: Pill,
  Pin,
  PinIcon: Pin,
  PinOff,
  PinOffIcon: PinOff,
  Pipette,
  PipetteIcon: Pipette,
  Pizza,
  PizzaIcon: Pizza,
  Plane,
  PlaneIcon: Plane,
  PlaneLanding,
  PlaneLandingIcon: PlaneLanding,
  PlaneTakeoff,
  PlaneTakeoffIcon: PlaneTakeoff,
  Play,
  PlayCircle: CirclePlay,
  PlayCircleIcon: CirclePlay,
  PlayIcon: Play,
  PlaySquare: SquarePlay,
  PlaySquareIcon: SquarePlay,
  Plug,
  Plug2,
  Plug2Icon: Plug2,
  PlugIcon: Plug,
  PlugZap,
  PlugZap2: PlugZap,
  PlugZap2Icon: PlugZap,
  PlugZapIcon: PlugZap,
  Plus,
  PlusCircle: CirclePlus,
  PlusCircleIcon: CirclePlus,
  PlusIcon: Plus,
  PlusSquare: SquarePlus,
  PlusSquareIcon: SquarePlus,
  Pocket,
  PocketIcon: Pocket,
  PocketKnife,
  PocketKnifeIcon: PocketKnife,
  Podcast,
  PodcastIcon: Podcast,
  Pointer,
  PointerIcon: Pointer,
  PointerOff,
  PointerOffIcon: PointerOff,
  Popcorn,
  PopcornIcon: Popcorn,
  Popsicle,
  PopsicleIcon: Popsicle,
  PoundSterling,
  PoundSterlingIcon: PoundSterling,
  Power,
  PowerCircle: CirclePower,
  PowerCircleIcon: CirclePower,
  PowerIcon: Power,
  PowerOff,
  PowerOffIcon: PowerOff,
  PowerSquare: SquarePower,
  PowerSquareIcon: SquarePower,
  Presentation,
  PresentationIcon: Presentation,
  Printer,
  PrinterCheck,
  PrinterCheckIcon: PrinterCheck,
  PrinterIcon: Printer,
  Projector,
  ProjectorIcon: Projector,
  Proportions,
  ProportionsIcon: Proportions,
  Puzzle,
  PuzzleIcon: Puzzle,
  Pyramid,
  PyramidIcon: Pyramid,
  QrCode,
  QrCodeIcon: QrCode,
  Quote,
  QuoteIcon: Quote,
  Rabbit,
  RabbitIcon: Rabbit,
  Radar,
  RadarIcon: Radar,
  Radiation,
  RadiationIcon: Radiation,
  Radical,
  RadicalIcon: Radical,
  Radio,
  RadioIcon: Radio,
  RadioReceiver,
  RadioReceiverIcon: RadioReceiver,
  RadioTower,
  RadioTowerIcon: RadioTower,
  Radius,
  RadiusIcon: Radius,
  RailSymbol,
  RailSymbolIcon: RailSymbol,
  Rainbow,
  RainbowIcon: Rainbow,
  Rat,
  RatIcon: Rat,
  Ratio,
  RatioIcon: Ratio,
  Receipt,
  ReceiptCent,
  ReceiptCentIcon: ReceiptCent,
  ReceiptEuro,
  ReceiptEuroIcon: ReceiptEuro,
  ReceiptIcon: Receipt,
  ReceiptIndianRupee,
  ReceiptIndianRupeeIcon: ReceiptIndianRupee,
  ReceiptJapaneseYen,
  ReceiptJapaneseYenIcon: ReceiptJapaneseYen,
  ReceiptPoundSterling,
  ReceiptPoundSterlingIcon: ReceiptPoundSterling,
  ReceiptRussianRuble,
  ReceiptRussianRubleIcon: ReceiptRussianRuble,
  ReceiptSwissFranc,
  ReceiptSwissFrancIcon: ReceiptSwissFranc,
  ReceiptText,
  ReceiptTextIcon: ReceiptText,
  ReceiptTurkishLira,
  ReceiptTurkishLiraIcon: ReceiptTurkishLira,
  RectangleCircle,
  RectangleCircleIcon: RectangleCircle,
  RectangleEllipsis,
  RectangleEllipsisIcon: RectangleEllipsis,
  RectangleGoggles,
  RectangleGogglesIcon: RectangleGoggles,
  RectangleHorizontal,
  RectangleHorizontalIcon: RectangleHorizontal,
  RectangleVertical,
  RectangleVerticalIcon: RectangleVertical,
  Recycle,
  RecycleIcon: Recycle,
  Redo,
  Redo2,
  Redo2Icon: Redo2,
  RedoDot,
  RedoDotIcon: RedoDot,
  RedoIcon: Redo,
  RefreshCcw,
  RefreshCcwDot,
  RefreshCcwDotIcon: RefreshCcwDot,
  RefreshCcwIcon: RefreshCcw,
  RefreshCw,
  RefreshCwIcon: RefreshCw,
  RefreshCwOff,
  RefreshCwOffIcon: RefreshCwOff,
  Refrigerator,
  RefrigeratorIcon: Refrigerator,
  Regex,
  RegexIcon: Regex,
  RemoveFormatting,
  RemoveFormattingIcon: RemoveFormatting,
  Repeat,
  Repeat1,
  Repeat1Icon: Repeat1,
  Repeat2,
  Repeat2Icon: Repeat2,
  RepeatIcon: Repeat,
  Replace,
  ReplaceAll,
  ReplaceAllIcon: ReplaceAll,
  ReplaceIcon: Replace,
  Reply,
  ReplyAll,
  ReplyAllIcon: ReplyAll,
  ReplyIcon: Reply,
  Rewind,
  RewindIcon: Rewind,
  Ribbon,
  RibbonIcon: Ribbon,
  Rocket,
  RocketIcon: Rocket,
  RockingChair,
  RockingChairIcon: RockingChair,
  RollerCoaster,
  RollerCoasterIcon: RollerCoaster,
  Rose,
  RoseIcon: Rose,
  Rotate3D: Rotate3d,
  Rotate3DIcon: Rotate3d,
  Rotate3d,
  Rotate3dIcon: Rotate3d,
  RotateCcw,
  RotateCcwIcon: RotateCcw,
  RotateCcwKey,
  RotateCcwKeyIcon: RotateCcwKey,
  RotateCcwSquare,
  RotateCcwSquareIcon: RotateCcwSquare,
  RotateCw,
  RotateCwIcon: RotateCw,
  RotateCwSquare,
  RotateCwSquareIcon: RotateCwSquare,
  Route,
  RouteIcon: Route,
  RouteOff,
  RouteOffIcon: RouteOff,
  Router,
  RouterIcon: Router,
  Rows: Rows2,
  Rows2,
  Rows2Icon: Rows2,
  Rows3,
  Rows3Icon: Rows3,
  Rows4,
  Rows4Icon: Rows4,
  RowsIcon: Rows2,
  Rss,
  RssIcon: Rss,
  Ruler,
  RulerDimensionLine,
  RulerDimensionLineIcon: RulerDimensionLine,
  RulerIcon: Ruler,
  RussianRuble,
  RussianRubleIcon: RussianRuble,
  Sailboat,
  SailboatIcon: Sailboat,
  Salad,
  SaladIcon: Salad,
  Sandwich,
  SandwichIcon: Sandwich,
  Satellite,
  SatelliteDish,
  SatelliteDishIcon: SatelliteDish,
  SatelliteIcon: Satellite,
  SaudiRiyal,
  SaudiRiyalIcon: SaudiRiyal,
  Save,
  SaveAll,
  SaveAllIcon: SaveAll,
  SaveIcon: Save,
  SaveOff,
  SaveOffIcon: SaveOff,
  Scale,
  Scale3D: Scale3d,
  Scale3DIcon: Scale3d,
  Scale3d,
  Scale3dIcon: Scale3d,
  ScaleIcon: Scale,
  Scaling,
  ScalingIcon: Scaling,
  Scan,
  ScanBarcode,
  ScanBarcodeIcon: ScanBarcode,
  ScanEye,
  ScanEyeIcon: ScanEye,
  ScanFace,
  ScanFaceIcon: ScanFace,
  ScanHeart,
  ScanHeartIcon: ScanHeart,
  ScanIcon: Scan,
  ScanLine,
  ScanLineIcon: ScanLine,
  ScanQrCode,
  ScanQrCodeIcon: ScanQrCode,
  ScanSearch,
  ScanSearchIcon: ScanSearch,
  ScanText,
  ScanTextIcon: ScanText,
  ScatterChart: ChartScatter,
  ScatterChartIcon: ChartScatter,
  School,
  School2: University,
  School2Icon: University,
  SchoolIcon: School,
  Scissors,
  ScissorsIcon: Scissors,
  ScissorsLineDashed,
  ScissorsLineDashedIcon: ScissorsLineDashed,
  ScissorsSquare: SquareScissors,
  ScissorsSquareDashedBottom: SquareBottomDashedScissors,
  ScissorsSquareDashedBottomIcon: SquareBottomDashedScissors,
  ScissorsSquareIcon: SquareScissors,
  ScreenShare,
  ScreenShareIcon: ScreenShare,
  ScreenShareOff,
  ScreenShareOffIcon: ScreenShareOff,
  Scroll,
  ScrollIcon: Scroll,
  ScrollText,
  ScrollTextIcon: ScrollText,
  Search,
  SearchCheck,
  SearchCheckIcon: SearchCheck,
  SearchCode,
  SearchCodeIcon: SearchCode,
  SearchIcon: Search,
  SearchSlash,
  SearchSlashIcon: SearchSlash,
  SearchX,
  SearchXIcon: SearchX,
  Section,
  SectionIcon: Section,
  Send,
  SendHorizonal: SendHorizontal,
  SendHorizonalIcon: SendHorizontal,
  SendHorizontal,
  SendHorizontalIcon: SendHorizontal,
  SendIcon: Send,
  SendToBack,
  SendToBackIcon: SendToBack,
  SeparatorHorizontal,
  SeparatorHorizontalIcon: SeparatorHorizontal,
  SeparatorVertical,
  SeparatorVerticalIcon: SeparatorVertical,
  Server,
  ServerCog,
  ServerCogIcon: ServerCog,
  ServerCrash,
  ServerCrashIcon: ServerCrash,
  ServerIcon: Server,
  ServerOff,
  ServerOffIcon: ServerOff,
  Settings,
  Settings2,
  Settings2Icon: Settings2,
  SettingsIcon: Settings,
  Shapes,
  ShapesIcon: Shapes,
  Share,
  Share2,
  Share2Icon: Share2,
  ShareIcon: Share,
  Sheet,
  SheetIcon: Sheet,
  Shell,
  ShellIcon: Shell,
  Shield,
  ShieldAlert,
  ShieldAlertIcon: ShieldAlert,
  ShieldBan,
  ShieldBanIcon: ShieldBan,
  ShieldCheck,
  ShieldCheckIcon: ShieldCheck,
  ShieldClose: ShieldX,
  ShieldCloseIcon: ShieldX,
  ShieldEllipsis,
  ShieldEllipsisIcon: ShieldEllipsis,
  ShieldHalf,
  ShieldHalfIcon: ShieldHalf,
  ShieldIcon: Shield,
  ShieldMinus,
  ShieldMinusIcon: ShieldMinus,
  ShieldOff,
  ShieldOffIcon: ShieldOff,
  ShieldPlus,
  ShieldPlusIcon: ShieldPlus,
  ShieldQuestion: ShieldQuestionMark,
  ShieldQuestionIcon: ShieldQuestionMark,
  ShieldQuestionMark,
  ShieldQuestionMarkIcon: ShieldQuestionMark,
  ShieldUser,
  ShieldUserIcon: ShieldUser,
  ShieldX,
  ShieldXIcon: ShieldX,
  Ship,
  ShipIcon: Ship,
  ShipWheel,
  ShipWheelIcon: ShipWheel,
  Shirt,
  ShirtIcon: Shirt,
  ShoppingBag,
  ShoppingBagIcon: ShoppingBag,
  ShoppingBasket,
  ShoppingBasketIcon: ShoppingBasket,
  ShoppingCart,
  ShoppingCartIcon: ShoppingCart,
  Shovel,
  ShovelIcon: Shovel,
  ShowerHead,
  ShowerHeadIcon: ShowerHead,
  Shredder,
  ShredderIcon: Shredder,
  Shrimp,
  ShrimpIcon: Shrimp,
  Shrink,
  ShrinkIcon: Shrink,
  Shrub,
  ShrubIcon: Shrub,
  Shuffle,
  ShuffleIcon: Shuffle,
  Sidebar: PanelLeft,
  SidebarClose: PanelLeftClose,
  SidebarCloseIcon: PanelLeftClose,
  SidebarIcon: PanelLeft,
  SidebarOpen: PanelLeftOpen,
  SidebarOpenIcon: PanelLeftOpen,
  Sigma,
  SigmaIcon: Sigma,
  SigmaSquare: SquareSigma,
  SigmaSquareIcon: SquareSigma,
  Signal,
  SignalHigh,
  SignalHighIcon: SignalHigh,
  SignalIcon: Signal,
  SignalLow,
  SignalLowIcon: SignalLow,
  SignalMedium,
  SignalMediumIcon: SignalMedium,
  SignalZero,
  SignalZeroIcon: SignalZero,
  Signature,
  SignatureIcon: Signature,
  Signpost,
  SignpostBig,
  SignpostBigIcon: SignpostBig,
  SignpostIcon: Signpost,
  Siren,
  SirenIcon: Siren,
  SkipBack,
  SkipBackIcon: SkipBack,
  SkipForward,
  SkipForwardIcon: SkipForward,
  Skull,
  SkullIcon: Skull,
  Slack,
  SlackIcon: Slack,
  Slash,
  SlashIcon: Slash,
  SlashSquare: SquareSlash,
  SlashSquareIcon: SquareSlash,
  Slice,
  SliceIcon: Slice,
  Sliders: SlidersVertical,
  SlidersHorizontal,
  SlidersHorizontalIcon: SlidersHorizontal,
  SlidersIcon: SlidersVertical,
  SlidersVertical,
  SlidersVerticalIcon: SlidersVertical,
  Smartphone,
  SmartphoneCharging,
  SmartphoneChargingIcon: SmartphoneCharging,
  SmartphoneIcon: Smartphone,
  SmartphoneNfc,
  SmartphoneNfcIcon: SmartphoneNfc,
  Smile,
  SmileIcon: Smile,
  SmilePlus,
  SmilePlusIcon: SmilePlus,
  Snail,
  SnailIcon: Snail,
  Snowflake,
  SnowflakeIcon: Snowflake,
  SoapDispenserDroplet,
  SoapDispenserDropletIcon: SoapDispenserDroplet,
  Sofa,
  SofaIcon: Sofa,
  SolarPanel,
  SolarPanelIcon: SolarPanel,
  SortAsc: ArrowUpNarrowWide,
  SortAscIcon: ArrowUpNarrowWide,
  SortDesc: ArrowDownWideNarrow,
  SortDescIcon: ArrowDownWideNarrow,
  Soup,
  SoupIcon: Soup,
  Space,
  SpaceIcon: Space,
  Spade,
  SpadeIcon: Spade,
  Sparkle,
  SparkleIcon: Sparkle,
  Sparkles,
  SparklesIcon: Sparkles,
  Speaker,
  SpeakerIcon: Speaker,
  Speech,
  SpeechIcon: Speech,
  SpellCheck,
  SpellCheck2,
  SpellCheck2Icon: SpellCheck2,
  SpellCheckIcon: SpellCheck,
  Spline,
  SplineIcon: Spline,
  SplinePointer,
  SplinePointerIcon: SplinePointer,
  Split,
  SplitIcon: Split,
  SplitSquareHorizontal: SquareSplitHorizontal,
  SplitSquareHorizontalIcon: SquareSplitHorizontal,
  SplitSquareVertical: SquareSplitVertical,
  SplitSquareVerticalIcon: SquareSplitVertical,
  Spool,
  SpoolIcon: Spool,
  Spotlight,
  SpotlightIcon: Spotlight,
  SprayCan,
  SprayCanIcon: SprayCan,
  Sprout,
  SproutIcon: Sprout,
  Square,
  SquareActivity,
  SquareActivityIcon: SquareActivity,
  SquareArrowDown,
  SquareArrowDownIcon: SquareArrowDown,
  SquareArrowDownLeft,
  SquareArrowDownLeftIcon: SquareArrowDownLeft,
  SquareArrowDownRight,
  SquareArrowDownRightIcon: SquareArrowDownRight,
  SquareArrowLeft,
  SquareArrowLeftIcon: SquareArrowLeft,
  SquareArrowOutDownLeft,
  SquareArrowOutDownLeftIcon: SquareArrowOutDownLeft,
  SquareArrowOutDownRight,
  SquareArrowOutDownRightIcon: SquareArrowOutDownRight,
  SquareArrowOutUpLeft,
  SquareArrowOutUpLeftIcon: SquareArrowOutUpLeft,
  SquareArrowOutUpRight,
  SquareArrowOutUpRightIcon: SquareArrowOutUpRight,
  SquareArrowRight,
  SquareArrowRightIcon: SquareArrowRight,
  SquareArrowUp,
  SquareArrowUpIcon: SquareArrowUp,
  SquareArrowUpLeft,
  SquareArrowUpLeftIcon: SquareArrowUpLeft,
  SquareArrowUpRight,
  SquareArrowUpRightIcon: SquareArrowUpRight,
  SquareAsterisk,
  SquareAsteriskIcon: SquareAsterisk,
  SquareBottomDashedScissors,
  SquareBottomDashedScissorsIcon: SquareBottomDashedScissors,
  SquareChartGantt,
  SquareChartGanttIcon: SquareChartGantt,
  SquareCheck,
  SquareCheckBig,
  SquareCheckBigIcon: SquareCheckBig,
  SquareCheckIcon: SquareCheck,
  SquareChevronDown,
  SquareChevronDownIcon: SquareChevronDown,
  SquareChevronLeft,
  SquareChevronLeftIcon: SquareChevronLeft,
  SquareChevronRight,
  SquareChevronRightIcon: SquareChevronRight,
  SquareChevronUp,
  SquareChevronUpIcon: SquareChevronUp,
  SquareCode,
  SquareCodeIcon: SquareCode,
  SquareDashed,
  SquareDashedBottom,
  SquareDashedBottomCode,
  SquareDashedBottomCodeIcon: SquareDashedBottomCode,
  SquareDashedBottomIcon: SquareDashedBottom,
  SquareDashedIcon: SquareDashed,
  SquareDashedKanban,
  SquareDashedKanbanIcon: SquareDashedKanban,
  SquareDashedMousePointer,
  SquareDashedMousePointerIcon: SquareDashedMousePointer,
  SquareDashedTopSolid,
  SquareDashedTopSolidIcon: SquareDashedTopSolid,
  SquareDivide,
  SquareDivideIcon: SquareDivide,
  SquareDot,
  SquareDotIcon: SquareDot,
  SquareEqual,
  SquareEqualIcon: SquareEqual,
  SquareFunction,
  SquareFunctionIcon: SquareFunction,
  SquareGanttChart: SquareChartGantt,
  SquareGanttChartIcon: SquareChartGantt,
  SquareIcon: Square,
  SquareKanban,
  SquareKanbanIcon: SquareKanban,
  SquareLibrary,
  SquareLibraryIcon: SquareLibrary,
  SquareM,
  SquareMIcon: SquareM,
  SquareMenu,
  SquareMenuIcon: SquareMenu,
  SquareMinus,
  SquareMinusIcon: SquareMinus,
  SquareMousePointer,
  SquareMousePointerIcon: SquareMousePointer,
  SquareParking,
  SquareParkingIcon: SquareParking,
  SquareParkingOff,
  SquareParkingOffIcon: SquareParkingOff,
  SquarePause,
  SquarePauseIcon: SquarePause,
  SquarePen,
  SquarePenIcon: SquarePen,
  SquarePercent,
  SquarePercentIcon: SquarePercent,
  SquarePi,
  SquarePiIcon: SquarePi,
  SquarePilcrow,
  SquarePilcrowIcon: SquarePilcrow,
  SquarePlay,
  SquarePlayIcon: SquarePlay,
  SquarePlus,
  SquarePlusIcon: SquarePlus,
  SquarePower,
  SquarePowerIcon: SquarePower,
  SquareRadical,
  SquareRadicalIcon: SquareRadical,
  SquareRoundCorner,
  SquareRoundCornerIcon: SquareRoundCorner,
  SquareScissors,
  SquareScissorsIcon: SquareScissors,
  SquareSigma,
  SquareSigmaIcon: SquareSigma,
  SquareSlash,
  SquareSlashIcon: SquareSlash,
  SquareSplitHorizontal,
  SquareSplitHorizontalIcon: SquareSplitHorizontal,
  SquareSplitVertical,
  SquareSplitVerticalIcon: SquareSplitVertical,
  SquareSquare,
  SquareSquareIcon: SquareSquare,
  SquareStack,
  SquareStackIcon: SquareStack,
  SquareStar,
  SquareStarIcon: SquareStar,
  SquareStop,
  SquareStopIcon: SquareStop,
  SquareTerminal,
  SquareTerminalIcon: SquareTerminal,
  SquareUser,
  SquareUserIcon: SquareUser,
  SquareUserRound,
  SquareUserRoundIcon: SquareUserRound,
  SquareX,
  SquareXIcon: SquareX,
  SquaresExclude,
  SquaresExcludeIcon: SquaresExclude,
  SquaresIntersect,
  SquaresIntersectIcon: SquaresIntersect,
  SquaresSubtract,
  SquaresSubtractIcon: SquaresSubtract,
  SquaresUnite,
  SquaresUniteIcon: SquaresUnite,
  Squircle,
  SquircleDashed,
  SquircleDashedIcon: SquircleDashed,
  SquircleIcon: Squircle,
  Squirrel,
  SquirrelIcon: Squirrel,
  Stamp,
  StampIcon: Stamp,
  Star,
  StarHalf,
  StarHalfIcon: StarHalf,
  StarIcon: Star,
  StarOff,
  StarOffIcon: StarOff,
  Stars: Sparkles,
  StarsIcon: Sparkles,
  StepBack,
  StepBackIcon: StepBack,
  StepForward,
  StepForwardIcon: StepForward,
  Stethoscope,
  StethoscopeIcon: Stethoscope,
  Sticker,
  StickerIcon: Sticker,
  StickyNote,
  StickyNoteIcon: StickyNote,
  StopCircle: CircleStop,
  StopCircleIcon: CircleStop,
  Store,
  StoreIcon: Store,
  StretchHorizontal,
  StretchHorizontalIcon: StretchHorizontal,
  StretchVertical,
  StretchVerticalIcon: StretchVertical,
  Strikethrough,
  StrikethroughIcon: Strikethrough,
  Subscript,
  SubscriptIcon: Subscript,
  Subtitles: Captions,
  SubtitlesIcon: Captions,
  Sun,
  SunDim,
  SunDimIcon: SunDim,
  SunIcon: Sun,
  SunMedium,
  SunMediumIcon: SunMedium,
  SunMoon,
  SunMoonIcon: SunMoon,
  SunSnow,
  SunSnowIcon: SunSnow,
  Sunrise,
  SunriseIcon: Sunrise,
  Sunset,
  SunsetIcon: Sunset,
  Superscript,
  SuperscriptIcon: Superscript,
  SwatchBook,
  SwatchBookIcon: SwatchBook,
  SwissFranc,
  SwissFrancIcon: SwissFranc,
  SwitchCamera,
  SwitchCameraIcon: SwitchCamera,
  Sword,
  SwordIcon: Sword,
  Swords,
  SwordsIcon: Swords,
  Syringe,
  SyringeIcon: Syringe,
  Table,
  Table2,
  Table2Icon: Table2,
  TableCellsMerge,
  TableCellsMergeIcon: TableCellsMerge,
  TableCellsSplit,
  TableCellsSplitIcon: TableCellsSplit,
  TableColumnsSplit,
  TableColumnsSplitIcon: TableColumnsSplit,
  TableConfig: Columns3Cog,
  TableConfigIcon: Columns3Cog,
  TableIcon: Table,
  TableOfContents,
  TableOfContentsIcon: TableOfContents,
  TableProperties,
  TablePropertiesIcon: TableProperties,
  TableRowsSplit,
  TableRowsSplitIcon: TableRowsSplit,
  Tablet,
  TabletIcon: Tablet,
  TabletSmartphone,
  TabletSmartphoneIcon: TabletSmartphone,
  Tablets,
  TabletsIcon: Tablets,
  Tag,
  TagIcon: Tag,
  Tags,
  TagsIcon: Tags,
  Tally1,
  Tally1Icon: Tally1,
  Tally2,
  Tally2Icon: Tally2,
  Tally3,
  Tally3Icon: Tally3,
  Tally4,
  Tally4Icon: Tally4,
  Tally5,
  Tally5Icon: Tally5,
  Tangent,
  TangentIcon: Tangent,
  Target,
  TargetIcon: Target,
  Telescope,
  TelescopeIcon: Telescope,
  Tent,
  TentIcon: Tent,
  TentTree,
  TentTreeIcon: TentTree,
  Terminal,
  TerminalIcon: Terminal,
  TerminalSquare: SquareTerminal,
  TerminalSquareIcon: SquareTerminal,
  TestTube,
  TestTube2: TestTubeDiagonal,
  TestTube2Icon: TestTubeDiagonal,
  TestTubeDiagonal,
  TestTubeDiagonalIcon: TestTubeDiagonal,
  TestTubeIcon: TestTube,
  TestTubes,
  TestTubesIcon: TestTubes,
  Text: TextAlignStart,
  TextAlignCenter,
  TextAlignCenterIcon: TextAlignCenter,
  TextAlignEnd,
  TextAlignEndIcon: TextAlignEnd,
  TextAlignJustify,
  TextAlignJustifyIcon: TextAlignJustify,
  TextAlignStart,
  TextAlignStartIcon: TextAlignStart,
  TextCursor,
  TextCursorIcon: TextCursor,
  TextCursorInput,
  TextCursorInputIcon: TextCursorInput,
  TextIcon: TextAlignStart,
  TextInitial,
  TextInitialIcon: TextInitial,
  TextQuote,
  TextQuoteIcon: TextQuote,
  TextSearch,
  TextSearchIcon: TextSearch,
  TextSelect,
  TextSelectIcon: TextSelect,
  TextSelection: TextSelect,
  TextSelectionIcon: TextSelect,
  TextWrap,
  TextWrapIcon: TextWrap,
  Theater,
  TheaterIcon: Theater,
  Thermometer,
  ThermometerIcon: Thermometer,
  ThermometerSnowflake,
  ThermometerSnowflakeIcon: ThermometerSnowflake,
  ThermometerSun,
  ThermometerSunIcon: ThermometerSun,
  ThumbsDown,
  ThumbsDownIcon: ThumbsDown,
  ThumbsUp,
  ThumbsUpIcon: ThumbsUp,
  Ticket,
  TicketCheck,
  TicketCheckIcon: TicketCheck,
  TicketIcon: Ticket,
  TicketMinus,
  TicketMinusIcon: TicketMinus,
  TicketPercent,
  TicketPercentIcon: TicketPercent,
  TicketPlus,
  TicketPlusIcon: TicketPlus,
  TicketSlash,
  TicketSlashIcon: TicketSlash,
  TicketX,
  TicketXIcon: TicketX,
  Tickets,
  TicketsIcon: Tickets,
  TicketsPlane,
  TicketsPlaneIcon: TicketsPlane,
  Timer,
  TimerIcon: Timer,
  TimerOff,
  TimerOffIcon: TimerOff,
  TimerReset,
  TimerResetIcon: TimerReset,
  ToggleLeft,
  ToggleLeftIcon: ToggleLeft,
  ToggleRight,
  ToggleRightIcon: ToggleRight,
  Toilet,
  ToiletIcon: Toilet,
  ToolCase,
  ToolCaseIcon: ToolCase,
  Tornado,
  TornadoIcon: Tornado,
  Torus,
  TorusIcon: Torus,
  Touchpad,
  TouchpadIcon: Touchpad,
  TouchpadOff,
  TouchpadOffIcon: TouchpadOff,
  TowerControl,
  TowerControlIcon: TowerControl,
  ToyBrick,
  ToyBrickIcon: ToyBrick,
  Tractor,
  TractorIcon: Tractor,
  TrafficCone,
  TrafficConeIcon: TrafficCone,
  Train: TramFront,
  TrainFront,
  TrainFrontIcon: TrainFront,
  TrainFrontTunnel,
  TrainFrontTunnelIcon: TrainFrontTunnel,
  TrainIcon: TramFront,
  TrainTrack,
  TrainTrackIcon: TrainTrack,
  TramFront,
  TramFrontIcon: TramFront,
  Transgender,
  TransgenderIcon: Transgender,
  Trash,
  Trash2,
  Trash2Icon: Trash2,
  TrashIcon: Trash,
  TreeDeciduous,
  TreeDeciduousIcon: TreeDeciduous,
  TreePalm,
  TreePalmIcon: TreePalm,
  TreePine,
  TreePineIcon: TreePine,
  Trees,
  TreesIcon: Trees,
  Trello,
  TrelloIcon: Trello,
  TrendingDown,
  TrendingDownIcon: TrendingDown,
  TrendingUp,
  TrendingUpDown,
  TrendingUpDownIcon: TrendingUpDown,
  TrendingUpIcon: TrendingUp,
  Triangle,
  TriangleAlert,
  TriangleAlertIcon: TriangleAlert,
  TriangleDashed,
  TriangleDashedIcon: TriangleDashed,
  TriangleIcon: Triangle,
  TriangleRight,
  TriangleRightIcon: TriangleRight,
  Trophy,
  TrophyIcon: Trophy,
  Truck,
  TruckElectric,
  TruckElectricIcon: TruckElectric,
  TruckIcon: Truck,
  TurkishLira,
  TurkishLiraIcon: TurkishLira,
  Turntable,
  TurntableIcon: Turntable,
  Turtle,
  TurtleIcon: Turtle,
  Tv,
  Tv2: TvMinimal,
  Tv2Icon: TvMinimal,
  TvIcon: Tv,
  TvMinimal,
  TvMinimalIcon: TvMinimal,
  TvMinimalPlay,
  TvMinimalPlayIcon: TvMinimalPlay,
  Twitch,
  TwitchIcon: Twitch,
  Twitter,
  TwitterIcon: Twitter,
  Type,
  TypeIcon: Type,
  TypeOutline,
  TypeOutlineIcon: TypeOutline,
  Umbrella,
  UmbrellaIcon: Umbrella,
  UmbrellaOff,
  UmbrellaOffIcon: UmbrellaOff,
  Underline,
  UnderlineIcon: Underline,
  Undo,
  Undo2,
  Undo2Icon: Undo2,
  UndoDot,
  UndoDotIcon: UndoDot,
  UndoIcon: Undo,
  UnfoldHorizontal,
  UnfoldHorizontalIcon: UnfoldHorizontal,
  UnfoldVertical,
  UnfoldVerticalIcon: UnfoldVertical,
  Ungroup,
  UngroupIcon: Ungroup,
  University,
  UniversityIcon: University,
  Unlink,
  Unlink2,
  Unlink2Icon: Unlink2,
  UnlinkIcon: Unlink,
  Unlock: LockOpen,
  UnlockIcon: LockOpen,
  UnlockKeyhole: LockKeyholeOpen,
  UnlockKeyholeIcon: LockKeyholeOpen,
  Unplug,
  UnplugIcon: Unplug,
  Upload,
  UploadCloud: CloudUpload,
  UploadCloudIcon: CloudUpload,
  UploadIcon: Upload,
  Usb,
  UsbIcon: Usb,
  User,
  User2: UserRound,
  User2Icon: UserRound,
  UserCheck,
  UserCheck2: UserRoundCheck,
  UserCheck2Icon: UserRoundCheck,
  UserCheckIcon: UserCheck,
  UserCircle: CircleUser,
  UserCircle2: CircleUserRound,
  UserCircle2Icon: CircleUserRound,
  UserCircleIcon: CircleUser,
  UserCog,
  UserCog2: UserRoundCog,
  UserCog2Icon: UserRoundCog,
  UserCogIcon: UserCog,
  UserIcon: User,
  UserLock,
  UserLockIcon: UserLock,
  UserMinus,
  UserMinus2: UserRoundMinus,
  UserMinus2Icon: UserRoundMinus,
  UserMinusIcon: UserMinus,
  UserPen,
  UserPenIcon: UserPen,
  UserPlus,
  UserPlus2: UserRoundPlus,
  UserPlus2Icon: UserRoundPlus,
  UserPlusIcon: UserPlus,
  UserRound,
  UserRoundCheck,
  UserRoundCheckIcon: UserRoundCheck,
  UserRoundCog,
  UserRoundCogIcon: UserRoundCog,
  UserRoundIcon: UserRound,
  UserRoundMinus,
  UserRoundMinusIcon: UserRoundMinus,
  UserRoundPen,
  UserRoundPenIcon: UserRoundPen,
  UserRoundPlus,
  UserRoundPlusIcon: UserRoundPlus,
  UserRoundSearch,
  UserRoundSearchIcon: UserRoundSearch,
  UserRoundX,
  UserRoundXIcon: UserRoundX,
  UserSearch,
  UserSearchIcon: UserSearch,
  UserSquare: SquareUser,
  UserSquare2: SquareUserRound,
  UserSquare2Icon: SquareUserRound,
  UserSquareIcon: SquareUser,
  UserStar,
  UserStarIcon: UserStar,
  UserX,
  UserX2: UserRoundX,
  UserX2Icon: UserRoundX,
  UserXIcon: UserX,
  Users,
  Users2: UsersRound,
  Users2Icon: UsersRound,
  UsersIcon: Users,
  UsersRound,
  UsersRoundIcon: UsersRound,
  Utensils,
  UtensilsCrossed,
  UtensilsCrossedIcon: UtensilsCrossed,
  UtensilsIcon: Utensils,
  UtilityPole,
  UtilityPoleIcon: UtilityPole,
  Variable,
  VariableIcon: Variable,
  Vault,
  VaultIcon: Vault,
  VectorSquare,
  VectorSquareIcon: VectorSquare,
  Vegan,
  VeganIcon: Vegan,
  VenetianMask,
  VenetianMaskIcon: VenetianMask,
  Venus,
  VenusAndMars,
  VenusAndMarsIcon: VenusAndMars,
  VenusIcon: Venus,
  Verified: BadgeCheck,
  VerifiedIcon: BadgeCheck,
  Vibrate,
  VibrateIcon: Vibrate,
  VibrateOff,
  VibrateOffIcon: VibrateOff,
  Video,
  VideoIcon: Video,
  VideoOff,
  VideoOffIcon: VideoOff,
  Videotape,
  VideotapeIcon: Videotape,
  View,
  ViewIcon: View,
  Voicemail,
  VoicemailIcon: Voicemail,
  Volleyball,
  VolleyballIcon: Volleyball,
  Volume,
  Volume1,
  Volume1Icon: Volume1,
  Volume2,
  Volume2Icon: Volume2,
  VolumeIcon: Volume,
  VolumeOff,
  VolumeOffIcon: VolumeOff,
  VolumeX,
  VolumeXIcon: VolumeX,
  Vote,
  VoteIcon: Vote,
  Wallet,
  Wallet2: WalletMinimal,
  Wallet2Icon: WalletMinimal,
  WalletCards,
  WalletCardsIcon: WalletCards,
  WalletIcon: Wallet,
  WalletMinimal,
  WalletMinimalIcon: WalletMinimal,
  Wallpaper,
  WallpaperIcon: Wallpaper,
  Wand,
  Wand2: WandSparkles,
  Wand2Icon: WandSparkles,
  WandIcon: Wand,
  WandSparkles,
  WandSparklesIcon: WandSparkles,
  Warehouse,
  WarehouseIcon: Warehouse,
  WashingMachine,
  WashingMachineIcon: WashingMachine,
  Watch,
  WatchIcon: Watch,
  Waves,
  WavesArrowDown,
  WavesArrowDownIcon: WavesArrowDown,
  WavesArrowUp,
  WavesArrowUpIcon: WavesArrowUp,
  WavesIcon: Waves,
  WavesLadder,
  WavesLadderIcon: WavesLadder,
  Waypoints,
  WaypointsIcon: Waypoints,
  Webcam,
  WebcamIcon: Webcam,
  Webhook,
  WebhookIcon: Webhook,
  WebhookOff,
  WebhookOffIcon: WebhookOff,
  Weight,
  WeightIcon: Weight,
  Wheat,
  WheatIcon: Wheat,
  WheatOff,
  WheatOffIcon: WheatOff,
  WholeWord,
  WholeWordIcon: WholeWord,
  Wifi,
  WifiCog,
  WifiCogIcon: WifiCog,
  WifiHigh,
  WifiHighIcon: WifiHigh,
  WifiIcon: Wifi,
  WifiLow,
  WifiLowIcon: WifiLow,
  WifiOff,
  WifiOffIcon: WifiOff,
  WifiPen,
  WifiPenIcon: WifiPen,
  WifiSync,
  WifiSyncIcon: WifiSync,
  WifiZero,
  WifiZeroIcon: WifiZero,
  Wind,
  WindArrowDown,
  WindArrowDownIcon: WindArrowDown,
  WindIcon: Wind,
  Wine,
  WineIcon: Wine,
  WineOff,
  WineOffIcon: WineOff,
  Workflow,
  WorkflowIcon: Workflow,
  Worm,
  WormIcon: Worm,
  WrapText: TextWrap,
  WrapTextIcon: TextWrap,
  Wrench,
  WrenchIcon: Wrench,
  X,
  XCircle: CircleX,
  XCircleIcon: CircleX,
  XIcon: X,
  XOctagon: OctagonX,
  XOctagonIcon: OctagonX,
  XSquare: SquareX,
  XSquareIcon: SquareX,
  Youtube,
  YoutubeIcon: Youtube,
  Zap,
  ZapIcon: Zap,
  ZapOff,
  ZapOffIcon: ZapOff,
  ZoomIn,
  ZoomInIcon: ZoomIn,
  ZoomOut,
  ZoomOutIcon: ZoomOut,
  createLucideIcon,
  icons: index$1
}, Symbol.toStringTag, { value: "Module" }));
const EditorContext = createContext(null);
const useEditorConfig = () => {
  const context = useContext(EditorContext);
  if (!context) throw new Error("useEditorConfig must be used within EditorProvider");
  return context;
};
const EditorProvider = ({ config, children }) => {
  return /* @__PURE__ */ jsx(EditorContext.Provider, { value: config, children });
};
const DISABLED_NODE_ICON_COLOR = "#94a3b8";
const shouldAutoCollapseSidebar = () => window.innerWidth < 768;
const Sidebar = () => {
  const { nodeTypes, nodeCategories } = useEditorConfig();
  const [isCollapsed, setIsCollapsed] = useState(false);
  const [searchQuery, setSearchQuery] = useState("");
  useEffect(() => {
    const onResize = () => setIsCollapsed(shouldAutoCollapseSidebar());
    onResize();
    window.addEventListener("resize", onResize);
    return () => window.removeEventListener("resize", onResize);
  }, []);
  const onDragStart = (event, nodeType) => {
    event.dataTransfer.setData("application/reactflow", nodeType);
    event.dataTransfer.effectAllowed = "move";
    window.__draggingNodeType = nodeType;
  };
  const onDragEnd = () => {
    window.__draggingNodeType = null;
  };
  if (isCollapsed) {
    return /* @__PURE__ */ jsxs("aside", { className: "w-12 h-full bg-slate-50 border-r border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col items-center py-4 shadow-[1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => setIsCollapsed(false),
          className: "p-2 text-slate-400 hover:text-slate-600 hover:bg-slate-100 dark:hover:bg-slate-900 rounded-lg transition-colors mb-4",
          title: "Expand Sidebar",
          children: /* @__PURE__ */ jsx(PanelLeftOpen, { size: 20 })
        }
      ),
      /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "-rotate-90 text-[10px] font-bold text-slate-400 whitespace-nowrap tracking-widest uppercase", children: "Node Palette" }) })
    ] });
  }
  return /* @__PURE__ */ jsxs("aside", { className: "w-64 h-full bg-slate-50 border-r border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col shadow-[1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-5 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
        /* @__PURE__ */ jsx("h2", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Node Palette" }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "text-slate-400 hover:text-slate-600 dark:hover:text-slate-300",
            title: "Collapse Sidebar",
            children: /* @__PURE__ */ jsx(PanelLeftClose, { size: 16 })
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "relative", children: [
        /* @__PURE__ */ jsx(Search, { className: "absolute left-2.5 top-2.5 text-slate-400", size: 14 }),
        /* @__PURE__ */ jsx(
          "input",
          {
            type: "text",
            placeholder: "Search nodes...",
            value: searchQuery,
            onChange: (e) => setSearchQuery(e.target.value),
            className: "w-full pl-8 pr-3 py-2 bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-700 rounded-lg text-sm focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 transition-all placeholder-slate-400"
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-4 space-y-6", children: nodeCategories.map((category) => {
      const query = searchQuery.toLowerCase().trim();
      const categoryNodes = Object.values(nodeTypes).filter((node) => node.category === category).filter((node) => {
        var _a;
        return !query || node.label.toLowerCase().includes(query) || node.type.toLowerCase().includes(query) || ((_a = node.description) == null ? void 0 : _a.toLowerCase().includes(query));
      });
      if (query && categoryNodes.length === 0) return null;
      return /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("h3", { className: "text-[10px] font-bold text-slate-400 mb-3 uppercase tracking-wider", children: category }),
        /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: categoryNodes.map((node) => {
          const iconMap = AllIcons;
          const Icon2 = iconMap[node.icon] || Box;
          if (node.disabled) {
            return /* @__PURE__ */ jsxs(
              "div",
              {
                className: "flex flex-col items-center justify-center p-3 bg-white dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-lg opacity-50 cursor-not-allowed group relative",
                title: "Not available in this version",
                children: [
                  /* @__PURE__ */ jsx(
                    "div",
                    {
                      className: "p-1.5 rounded mb-2 bg-slate-50 dark:bg-slate-900 border border-slate-100 dark:border-slate-800",
                      style: { color: DISABLED_NODE_ICON_COLOR },
                      children: /* @__PURE__ */ jsx(Icon2, { size: 16 })
                    }
                  ),
                  /* @__PURE__ */ jsx("span", { className: "text-[10px] text-center font-medium text-slate-400 leading-tight", children: node.label })
                ]
              },
              node.type
            );
          }
          return /* @__PURE__ */ jsxs(
            "div",
            {
              className: "flex flex-col items-center justify-center p-3 bg-white dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-lg cursor-grab hover:shadow-sm hover:border-slate-300 dark:hover:border-slate-600 transition-all group",
              onDragStart: (event) => onDragStart(event, node.type),
              onDragEnd,
              draggable: true,
              children: [
                /* @__PURE__ */ jsx(
                  "div",
                  {
                    className: "p-1.5 rounded mb-2 transition-transform group-hover:scale-105 bg-slate-50 dark:bg-slate-900 border border-slate-100 dark:border-slate-800",
                    style: { color: node.color },
                    children: /* @__PURE__ */ jsx(Icon2, { size: 16 })
                  }
                ),
                /* @__PURE__ */ jsx("span", { className: "text-[10px] text-center font-medium text-slate-600 dark:text-slate-300 leading-tight group-hover:text-slate-900 dark:group-hover:text-white", children: node.label })
              ]
            },
            node.type
          );
        }) })
      ] }, category);
    }) })
  ] });
};
const validateField = (value, rules2) => {
  if (rules2.required && (value === void 0 || value === null || value === "")) {
    return "This field is required";
  }
  if (value === void 0 || value === null || value === "") {
    return null;
  }
  if (typeof value === "string") {
    if (rules2.minLength && value.length < rules2.minLength) {
      return `Minimum length is ${rules2.minLength}`;
    }
    if (rules2.maxLength && value.length > rules2.maxLength) {
      return `Maximum length is ${rules2.maxLength}`;
    }
    if (rules2.pattern && !rules2.pattern.test(value)) {
      return "Invalid format";
    }
    if (rules2.email) {
      const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
      if (!emailRegex.test(value)) return "Invalid email address";
    }
    if (rules2.url) {
      try {
        new URL(value);
      } catch (_) {
        return "Invalid URL";
      }
    }
  }
  if (typeof value === "number") {
    if (rules2.min !== void 0 && value < rules2.min) return `Value must be at least ${rules2.min}`;
    if (rules2.max !== void 0 && value > rules2.max) return `Value must be at most ${rules2.max}`;
  }
  return null;
};
const toText = (v) => {
  if (v === void 0 || v === null) return "";
  if (typeof v === "string") return v;
  if (typeof v === "number" || typeof v === "boolean") return String(v);
  return "";
};
const INPUT_CLASSES = "w-full px-3 py-2 text-sm border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 placeholder-slate-400 transition-all font-sans";
const renderText = ({ config, value, onChange }) => /* @__PURE__ */ jsx(
  "input",
  {
    type: config.type === "email" ? "email" : config.type === "url" ? "url" : "text",
    value,
    onChange: (e) => onChange(e.target.value),
    placeholder: config.placeholder,
    disabled: config.disabled,
    className: INPUT_CLASSES
  }
);
const renderTextarea = ({ config, value, onChange }) => /* @__PURE__ */ jsx(
  "div",
  {
    className: "grid text-sm after:px-3 after:py-2 [&>textarea]:text-inherit after:text-inherit [&>textarea]:resize-none [&>textarea]:overflow-hidden [&>textarea]:[grid-area:1/1/2/2] after:[grid-area:1/1/2/2] after:whitespace-pre-wrap after:invisible after:content-[attr(data-cloned-val)_'_'] after:border",
    "data-cloned-val": value,
    children: /* @__PURE__ */ jsx(
      "textarea",
      {
        value,
        onChange: (e) => onChange(e.target.value),
        rows: config.rows || 3,
        placeholder: config.placeholder,
        disabled: config.disabled,
        className: INPUT_CLASSES
      }
    )
  }
);
const renderExpression = ({ config, value, onChange }) => /* @__PURE__ */ jsxs("div", { className: "relative", children: [
  /* @__PURE__ */ jsx(
    "textarea",
    {
      value,
      onChange: (e) => onChange(e.target.value),
      rows: config.rows || 2,
      placeholder: config.placeholder || "e.g. variables.amount > 100",
      disabled: config.disabled,
      className: "w-full px-3 py-2 text-sm border rounded-lg border-amber-200 dark:border-amber-900 bg-amber-50 dark:bg-amber-950/30 focus:outline-none focus:ring-2 focus:ring-amber-500/50 font-mono text-slate-700 dark:text-slate-300 placeholder-amber-400/50"
    }
  ),
  /* @__PURE__ */ jsx("div", { className: "absolute top-1 right-2 text-[10px] text-amber-600 font-semibold pointer-events-none", children: "JS" })
] });
const renderObject = ({ config, jsonText, internalError, onJsonChange }) => /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
  "textarea",
  {
    value: jsonText,
    onChange: (e) => onJsonChange(e.target.value),
    rows: config.rows || 5,
    placeholder: "{}",
    className: `w-full px-3 py-2 text-xs border rounded-lg bg-slate-50 dark:bg-slate-900 font-mono focus:outline-none focus:ring-1 ${internalError ? "border-red-500 focus:ring-red-500" : "border-slate-300 dark:border-slate-700 focus:ring-teal-500 focus:border-teal-500"}`
  }
) });
const renderArray = ({ config, items, onItemChange, onRemove, onAdd }) => /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
  items.map((item, index2) => /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
    /* @__PURE__ */ jsx(
      "input",
      {
        type: config.itemType === "number" ? "number" : "text",
        value: toText(item),
        onChange: (e) => onItemChange(index2, config.itemType === "number" ? Number(e.target.value) : e.target.value),
        className: INPUT_CLASSES
      }
    ),
    /* @__PURE__ */ jsx(
      "button",
      {
        onClick: () => onRemove(index2),
        className: "p-2 text-slate-400 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20 rounded-lg transition-colors",
        children: /* @__PURE__ */ jsx(X, { size: 14 })
      }
    )
  ] }, index2)),
  /* @__PURE__ */ jsxs(
    "button",
    {
      onClick: onAdd,
      className: "flex items-center gap-1.5 text-xs text-teal-600 dark:text-teal-400 font-medium hover:text-teal-700 px-1 py-1",
      children: [
        /* @__PURE__ */ jsx(Plus, { size: 12 }),
        " Add Item"
      ]
    }
  )
] });
const renderBoolean = ({ value, onChange }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
  /* @__PURE__ */ jsx(
    "button",
    {
      type: "button",
      onClick: () => onChange(!value),
      className: `relative inline-flex h-5 w-9 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-teal-500 focus:ring-offset-2 ${value ? "bg-teal-600" : "bg-slate-200 dark:bg-slate-700"}`,
      children: /* @__PURE__ */ jsx(
        "span",
        {
          className: `${value ? "translate-x-5" : "translate-x-1"} inline-block h-3 w-3 transform rounded-full bg-white transition-transform shadow-sm`
        }
      )
    }
  ),
  /* @__PURE__ */ jsx("span", { className: "text-sm text-slate-600 dark:text-slate-400 select-none", children: value ? "Yes" : "No" })
] });
const renderSelect = ({ config, value, onChange }) => {
  var _a;
  return /* @__PURE__ */ jsx(
    "select",
    {
      value,
      onChange: (e) => onChange(e.target.value),
      disabled: config.disabled,
      className: INPUT_CLASSES,
      children: (_a = config.options) == null ? void 0 : _a.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
    }
  );
};
const renderPassword = ({ config, value, showPassword, onChange, onToggleShow }) => /* @__PURE__ */ jsxs("div", { className: "relative", children: [
  /* @__PURE__ */ jsx(
    "input",
    {
      type: showPassword ? "text" : "password",
      value,
      onChange: (e) => onChange(e.target.value),
      placeholder: config.placeholder,
      disabled: config.disabled,
      className: `${INPUT_CLASSES} pr-8`
    }
  ),
  /* @__PURE__ */ jsx(
    "button",
    {
      type: "button",
      onClick: onToggleShow,
      className: "absolute right-2 top-2.5 text-slate-400 hover:text-slate-600",
      children: showPassword ? /* @__PURE__ */ jsx(EyeOff, { size: 14 }) : /* @__PURE__ */ jsx(Eye, { size: 14 })
    }
  )
] });
const renderNumber = ({ config, value, onNumberChange }) => /* @__PURE__ */ jsx(
  "input",
  {
    type: "number",
    value,
    onChange: (e) => onNumberChange(Number(e.target.value)),
    placeholder: config.placeholder,
    disabled: config.disabled,
    className: INPUT_CLASSES
  }
);
const renderCombobox = ({
  config,
  currentValue,
  comboboxOpen,
  comboboxFilter,
  comboboxRef,
  setComboboxOpen,
  setComboboxFilter,
  onChange
}) => {
  const options = config.options || [];
  const filterLower = comboboxFilter.toLowerCase();
  const showAll = comboboxFilter === "" || comboboxFilter === (currentValue || "");
  const filtered = showAll ? options : options.filter((opt) => opt.label.toLowerCase().includes(filterLower));
  const exactMatch = options.some((opt) => opt.value.toLowerCase() === filterLower);
  const showAddEntry = comboboxFilter.trim() !== "" && !exactMatch;
  return /* @__PURE__ */ jsxs("div", { className: "relative", ref: comboboxRef, children: [
    /* @__PURE__ */ jsx(
      "input",
      {
        type: "text",
        value: comboboxOpen ? comboboxFilter : currentValue || "",
        onChange: (e) => {
          setComboboxFilter(e.target.value);
          if (!comboboxOpen) setComboboxOpen(true);
        },
        onFocus: () => {
          setComboboxFilter("");
          setComboboxOpen(true);
        },
        onKeyDown: (e) => {
          if (e.key === "Enter") {
            e.preventDefault();
            const trimmed = comboboxFilter.trim();
            if (trimmed) {
              onChange(trimmed);
              setComboboxOpen(false);
            }
          } else if (e.key === "Escape") {
            setComboboxOpen(false);
            setComboboxFilter("");
          }
        },
        placeholder: config.placeholder,
        disabled: config.disabled,
        className: `${INPUT_CLASSES} pr-14`
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "absolute right-2 top-2.5 flex items-center gap-1 text-slate-400", children: [
      currentValue && /* @__PURE__ */ jsx(
        "button",
        {
          type: "button",
          onClick: () => {
            onChange(void 0);
            setComboboxFilter("");
            setComboboxOpen(false);
          },
          className: "hover:text-slate-600",
          title: "Clear",
          children: /* @__PURE__ */ jsx(X, { size: 14 })
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          type: "button",
          onClick: () => {
            if (comboboxOpen) {
              setComboboxOpen(false);
            } else {
              setComboboxFilter("");
              setComboboxOpen(true);
            }
          },
          className: "hover:text-slate-600",
          tabIndex: -1,
          title: "Toggle options",
          children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M1 3l4 4 4-4z" }) })
        }
      )
    ] }),
    comboboxOpen && (filtered.length > 0 || showAddEntry) && /* @__PURE__ */ jsxs("div", { className: "absolute z-50 w-full mt-1 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-700 rounded-lg shadow-lg max-h-48 overflow-y-auto", children: [
      filtered.map((opt) => /* @__PURE__ */ jsx(
        "button",
        {
          type: "button",
          onClick: () => {
            onChange(opt.value);
            setComboboxFilter(opt.value);
            setComboboxOpen(false);
          },
          className: "w-full text-left px-3 py-2 text-sm hover:bg-teal-50 dark:hover:bg-teal-900/20 hover:text-teal-700 dark:hover:text-teal-300 transition-colors",
          children: opt.label
        },
        opt.value
      )),
      showAddEntry && /* @__PURE__ */ jsxs(
        "button",
        {
          type: "button",
          onClick: () => {
            onChange(comboboxFilter);
            setComboboxOpen(false);
          },
          className: "w-full text-left px-3 py-2 text-sm text-teal-600 dark:text-teal-400 font-medium hover:bg-teal-50 dark:hover:bg-teal-900/20 transition-colors border-t border-slate-200 dark:border-slate-700 flex items-center gap-1.5",
          children: [
            /* @__PURE__ */ jsx(Plus, { size: 12 }),
            " ",
            comboboxFilter
          ]
        }
      )
    ] })
  ] });
};
const PropertyField = ({ config, value, onChange, error: externalError }) => {
  var _a;
  const [internalError, setInternalError] = useState(null);
  const [showPassword, setShowPassword] = useState(false);
  const [jsonText, setJsonText] = useState("");
  const [comboboxOpen, setComboboxOpen] = useState(false);
  const [comboboxFilter, setComboboxFilter] = useState("");
  const comboboxRef = useRef(null);
  const currentValue = value !== void 0 ? value : config.defaultValue ?? "";
  useEffect(() => {
    const handleClickOutside = (e) => {
      if (comboboxRef.current && !comboboxRef.current.contains(e.target)) {
        setComboboxOpen(false);
      }
    };
    document.addEventListener("mousedown", handleClickOutside);
    return () => document.removeEventListener("mousedown", handleClickOutside);
  }, []);
  useEffect(() => {
    if (config.type === "object" && value) {
      try {
        setJsonText(JSON.stringify(value, null, 2));
      } catch (e) {
        setJsonText("{}");
      }
    }
  }, [value, config.type]);
  const handleChange = (val) => {
    if (config.validation) {
      const err = validateField(val, config.validation);
      setInternalError(err);
    } else {
      setInternalError(null);
    }
    onChange(config.name, val);
  };
  const handleJsonChange = (text) => {
    setJsonText(text);
    try {
      const parsed = JSON.parse(text);
      setInternalError(null);
      onChange(config.name, parsed);
    } catch (e) {
      setInternalError("Invalid JSON format");
    }
  };
  const handleArrayAdd = () => {
    const newItem = config.itemType === "number" ? 0 : "";
    const newArray = Array.isArray(currentValue) ? [...currentValue, newItem] : [newItem];
    handleChange(newArray);
  };
  const handleArrayRemove = (index2) => {
    if (!Array.isArray(currentValue)) return;
    const newArray = currentValue.filter((_, i) => i !== index2);
    handleChange(newArray);
  };
  const handleArrayItemChange = (index2, val) => {
    if (!Array.isArray(currentValue)) return;
    const newArray = [...currentValue];
    newArray[index2] = val;
    handleChange(newArray);
  };
  const textValue = toText(currentValue);
  const renderers = {
    textarea: () => renderTextarea({ config, value: textValue, onChange: handleChange }),
    expression: () => renderExpression({ config, value: textValue, onChange: handleChange }),
    object: () => renderObject({ config, jsonText, internalError, onJsonChange: handleJsonChange }),
    array: () => renderArray({
      config,
      items: Array.isArray(currentValue) ? currentValue : [],
      onItemChange: handleArrayItemChange,
      onRemove: handleArrayRemove,
      onAdd: handleArrayAdd
    }),
    boolean: () => renderBoolean({ value: !!currentValue, onChange: handleChange }),
    select: () => renderSelect({ config, value: textValue, onChange: handleChange }),
    combobox: () => renderCombobox({
      config,
      currentValue: textValue,
      comboboxOpen,
      comboboxFilter,
      comboboxRef,
      setComboboxOpen,
      setComboboxFilter,
      onChange: handleChange
    }),
    password: () => renderPassword({
      config,
      value: textValue,
      showPassword,
      onChange: handleChange,
      onToggleShow: () => setShowPassword(!showPassword)
    }),
    number: () => renderNumber({ config, value: textValue, onNumberChange: handleChange })
  };
  const renderInput = () => {
    const handler = renderers[config.type];
    if (handler) return handler();
    return renderText({ config, value: textValue, onChange: handleChange });
  };
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 mb-5", children: [
    /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-wider flex items-center justify-between", children: [
      /* @__PURE__ */ jsxs("span", { children: [
        config.label,
        ((_a = config.validation) == null ? void 0 : _a.required) && /* @__PURE__ */ jsx("span", { className: "text-teal-600 ml-1", children: "*" })
      ] }),
      config.type === "expression" && /* @__PURE__ */ jsx("span", { title: "Supports JavaScript expressions", className: "text-slate-400 cursor-help", children: /* @__PURE__ */ jsx(CircleAlert, { size: 10 }) })
    ] }),
    renderInput(),
    config.description && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-500 mt-1 leading-snug", children: config.description }),
    (externalError || internalError) && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-red-600 font-medium mt-1", children: externalError || internalError })
  ] });
};
const DEFAULT_SWIMLANE_COLOR = "#94a3b8";
const NodeValidationBanner = ({ issues }) => {
  if (issues.length === 0) return null;
  const errorCount = issues.filter((i) => i.severity === "error").length;
  const warningCount = issues.length - errorCount;
  const severityColor = errorCount > 0 ? "border-red-300 bg-red-50 dark:border-red-900 dark:bg-red-950/30" : "border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950/30";
  return /* @__PURE__ */ jsxs("div", { className: `m-3 p-2 rounded-md border ${severityColor}`, children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-semibold text-slate-700 dark:text-slate-200 mb-1.5", children: [
      /* @__PURE__ */ jsx(TriangleAlert, { size: 14, className: errorCount > 0 ? "text-red-500" : "text-amber-500" }),
      "Validation ",
      errorCount > 0 ? `— ${errorCount} error${errorCount === 1 ? "" : "s"}` : "",
      errorCount > 0 && warningCount > 0 ? ", " : "",
      warningCount > 0 ? `${warningCount} warning${warningCount === 1 ? "" : "s"}` : ""
    ] }),
    /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: issues.map((issue, i) => /* @__PURE__ */ jsxs("li", { className: "flex gap-2 text-[11px] leading-tight", children: [
      /* @__PURE__ */ jsx("span", { className: `font-mono font-bold flex-shrink-0 ${issue.severity === "error" ? "text-red-600 dark:text-red-400" : "text-amber-600 dark:text-amber-400"}`, children: issue.rule }),
      /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 break-words", children: issue.message })
    ] }, `${issue.rule}-${i}`)) })
  ] });
};
const PropertiesPanel = ({
  selectedNode,
  selectedEdge,
  selectedSwimlane,
  renameSwimlane,
  resizeSwimlane,
  moveSwimlane,
  setSwimlaneColor,
  removeSwimlane,
  activeProcess,
  nodes,
  edges,
  updateNodeData,
  updateProcessData,
  updateEdgeData,
  onRenameNode,
  onOpenModal,
  variableContext = [],
  validationIssues = []
}) => {
  var _a, _b;
  const { nodeTypes, propertyRegistry, componentRegistry } = useEditorConfig();
  const [localData, setLocalData] = useState({});
  const [isCollapsed, setIsCollapsed] = useState(false);
  const [nodeIdInput, setNodeIdInput] = useState("");
  const [idError, setIdError] = useState(false);
  const propertiesTab = useMemo(() => {
    if (!selectedNode) return void 0;
    const nodeConfig2 = propertyRegistry[selectedNode.type || ""] || { tabs: [{ id: "properties", label: "General", fields: [] }] };
    return nodeConfig2.tabs.find((t) => t.id === "properties");
  }, [selectedNode, propertyRegistry]);
  useEffect(() => {
    const handleResize = () => {
      setIsCollapsed(window.innerWidth < 768);
    };
    handleResize();
    window.addEventListener("resize", handleResize);
    return () => window.removeEventListener("resize", handleResize);
  }, []);
  useEffect(() => {
    if (selectedNode) {
      setLocalData({ ...selectedNode.data });
      setNodeIdInput(selectedNode.id);
      setIdError(false);
      if (window.innerWidth >= 768) setIsCollapsed(false);
    } else if (selectedEdge) {
      setLocalData({ label: selectedEdge.label || "" });
      if (window.innerWidth >= 768) setIsCollapsed(false);
    } else if (activeProcess) {
      setLocalData({
        name: activeProcess.name,
        description: activeProcess.description || "",
        id: activeProcess.id
      });
    } else {
      setLocalData({});
    }
  }, [selectedNode == null ? void 0 : selectedNode.id, selectedEdge == null ? void 0 : selectedEdge.id, activeProcess == null ? void 0 : activeProcess.id]);
  const handleIdBlur = () => {
    if (selectedNode && nodeIdInput && nodeIdInput !== selectedNode.id) {
      if (nodes.some((n) => n.id === nodeIdInput)) {
        setIdError(true);
      } else {
        onRenameNode(selectedNode.id, nodeIdInput);
        setIdError(false);
      }
    } else {
      setIdError(false);
    }
  };
  if (isCollapsed) {
    return /* @__PURE__ */ jsxs("aside", { className: "w-12 h-full bg-white border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col items-center py-4 shadow-[-1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => setIsCollapsed(false),
          className: "p-2 text-slate-400 hover:text-slate-600 hover:bg-slate-100 dark:hover:bg-slate-900 rounded-lg transition-colors mb-4",
          title: "Expand Properties",
          children: /* @__PURE__ */ jsx(PanelRightOpen, { size: 20 })
        }
      ),
      /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "-rotate-90 text-[10px] font-bold text-slate-400 whitespace-nowrap tracking-widest uppercase", children: "PROPERTIES" }) })
    ] });
  }
  if (selectedEdge) {
    const sourceNode = nodes.find((n) => n.id === selectedEdge.source);
    const targetNode = nodes.find((n) => n.id === selectedEdge.target);
    const isGateway2 = (_a = sourceNode == null ? void 0 : sourceNode.type) == null ? void 0 : _a.includes("Gateway");
    const availablePaths = ((_b = sourceNode == null ? void 0 : sourceNode.data) == null ? void 0 : _b.outputs) || [];
    const otherEdgesFromSource = edges.filter((e) => e.source === selectedEdge.source && e.id !== selectedEdge.id);
    const handlePathChange = (e) => {
      const newLabel = e.target.value;
      updateEdgeData(selectedEdge.id, { label: newLabel });
      setLocalData({ ...localData, label: newLabel });
    };
    const handleLabelChange = (val) => {
      updateEdgeData(selectedEdge.id, { label: val });
      setLocalData({ ...localData, label: val });
    };
    const currentLabel = typeof localData.label === "string" ? localData.label : "";
    const isPathUsed = otherEdgesFromSource.some((e) => e.label === currentLabel);
    const isXor = (sourceNode == null ? void 0 : sourceNode.type) === "XorGateway";
    return /* @__PURE__ */ jsxs("aside", { className: "w-[320px] h-full bg-white border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col shadow-[-1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
      /* @__PURE__ */ jsx("div", { className: "p-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
          /* @__PURE__ */ jsx("span", { className: "w-8 h-8 rounded-lg flex items-center justify-center text-slate-500 bg-slate-100 border border-slate-200 shadow-sm", children: /* @__PURE__ */ jsx(ArrowRight, { size: 16 }) }),
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("h2", { className: "text-sm font-bold text-slate-900 dark:text-slate-100", children: "Connection" }),
            /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-slate-400 font-mono", children: [
              "Key: ",
              selectedEdge.id
            ] })
          ] })
        ] }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "text-slate-400 hover:text-slate-600 p-1",
            children: /* @__PURE__ */ jsx(PanelRightClose, { size: 16 })
          }
        )
      ] }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-5 space-y-6", children: [
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 text-xs", children: [
          /* @__PURE__ */ jsxs("div", { className: "p-2 bg-slate-50 dark:bg-slate-900 rounded border border-slate-200 dark:border-slate-800", children: [
            /* @__PURE__ */ jsx("span", { className: "block text-[10px] text-slate-400 uppercase font-bold mb-1", children: "From" }),
            /* @__PURE__ */ jsx("div", { className: "font-medium truncate", title: sourceNode == null ? void 0 : sourceNode.data.label, children: (sourceNode == null ? void 0 : sourceNode.data.label) || (sourceNode == null ? void 0 : sourceNode.id) })
          ] }),
          /* @__PURE__ */ jsxs("div", { className: "p-2 bg-slate-50 dark:bg-slate-900 rounded border border-slate-200 dark:border-slate-800", children: [
            /* @__PURE__ */ jsx("span", { className: "block text-[10px] text-slate-400 uppercase font-bold mb-1", children: "To" }),
            /* @__PURE__ */ jsx("div", { className: "font-medium truncate", title: targetNode == null ? void 0 : targetNode.data.label, children: (targetNode == null ? void 0 : targetNode.data.label) || (targetNode == null ? void 0 : targetNode.id) })
          ] })
        ] }),
        isGateway2 ? /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider", children: [
            /* @__PURE__ */ jsx(GitFork, { size: 12 }),
            " Select Path"
          ] }),
          availablePaths.length > 0 ? /* @__PURE__ */ jsxs(
            "select",
            {
              value: currentLabel,
              onChange: handlePathChange,
              className: "w-full px-3 py-2 text-sm border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20",
              children: [
                /* @__PURE__ */ jsx("option", { value: "", children: "-- Unassigned --" }),
                availablePaths.map((path) => /* @__PURE__ */ jsx("option", { value: path, children: path }, path))
              ]
            }
          ) : /* @__PURE__ */ jsx("div", { className: "text-xs text-amber-600 italic", children: "No paths defined on the gateway. Add paths in the gateway properties first." }),
          isXor && isPathUsed && currentLabel && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-amber-50 border border-amber-200 rounded-lg flex gap-2 items-start", children: [
            /* @__PURE__ */ jsx(TriangleAlert, { size: 14, className: "text-amber-500 shrink-0 mt-0.5" }),
            /* @__PURE__ */ jsxs("p", { className: "text-xs text-amber-700", children: [
              'Warning: The path "',
              /* @__PURE__ */ jsx("strong", { children: currentLabel }),
              '" is already assigned to another outgoing connection. Exclusive gateways should have unique paths.'
            ] })
          ] })
        ] }) : /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "label", label: "Label", type: "text", placeholder: "Connection name..." },
            value: currentLabel,
            onChange: (_k, v) => handleLabelChange(typeof v === "string" ? v : String(v ?? ""))
          }
        )
      ] })
    ] });
  }
  if (selectedSwimlane && renameSwimlane && resizeSwimlane && moveSwimlane && removeSwimlane) {
    const lane = selectedSwimlane;
    return /* @__PURE__ */ jsxs("aside", { className: "w-[320px] h-full bg-white border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col shadow-[-1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
      /* @__PURE__ */ jsx("div", { className: "p-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
          /* @__PURE__ */ jsx("span", { className: "w-8 h-8 rounded-lg flex items-center justify-center text-sky-600 bg-sky-50 border border-sky-200 shadow-sm", children: /* @__PURE__ */ jsx(Columns3, { size: 16 }) }),
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("h2", { className: "text-sm font-bold text-slate-900 dark:text-slate-100", children: "Swimlane" }),
            /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-slate-400 font-mono", children: [
              "Key: ",
              lane.id
            ] })
          ] })
        ] }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "text-slate-400 hover:text-slate-600 p-1",
            children: /* @__PURE__ */ jsx(PanelRightClose, { size: 16 })
          }
        )
      ] }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-5 space-y-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "name", label: "Actor Type (Name)", type: "text", validation: { required: true } },
            value: lane.name,
            onChange: (_k, v) => renameSwimlane(lane.id, typeof v === "string" ? v : String(v ?? ""))
          }
        ),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: "block text-[11px] font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider mb-1.5", children: "Color" }),
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(
              "div",
              {
                className: "relative rounded-md border border-slate-300 dark:border-slate-700 overflow-hidden shrink-0",
                style: { width: 40, height: 40, background: lane.color || DEFAULT_SWIMLANE_COLOR },
                title: "Click to change color",
                children: /* @__PURE__ */ jsx(
                  "input",
                  {
                    type: "color",
                    value: lane.color || DEFAULT_SWIMLANE_COLOR,
                    onChange: (e) => setSwimlaneColor && setSwimlaneColor(lane.id, e.target.value),
                    className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer"
                  }
                )
              }
            ),
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "text",
                value: lane.color || DEFAULT_SWIMLANE_COLOR,
                onChange: (e) => setSwimlaneColor && setSwimlaneColor(lane.id, e.target.value),
                className: "flex-1 px-2 py-1.5 text-sm border rounded-md border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 font-mono"
              }
            ),
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => setSwimlaneColor && setSwimlaneColor(lane.id, DEFAULT_SWIMLANE_COLOR),
                className: "px-2 py-1.5 text-xs rounded-md border border-slate-300 dark:border-slate-700 text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800",
                title: "Reset to default grey",
                children: "Reset"
              }
            )
          ] })
        ] }),
        /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-slate-500 dark:text-slate-400 leading-relaxed", children: [
          "Nodes dropped or moved inside this swimlane automatically get",
          /* @__PURE__ */ jsxs("code", { className: "mx-1 px-1 py-0.5 rounded bg-slate-100 dark:bg-slate-800 font-mono text-[10px]", children: [
            'actorType = "',
            lane.name,
            '"'
          ] }),
          ". Press ",
          /* @__PURE__ */ jsx("kbd", { className: "px-1 py-0.5 rounded bg-slate-100 dark:bg-slate-800 font-mono text-[10px]", children: "Del" }),
          " or click the × on the lane to remove it."
        ] })
      ] })
    ] });
  }
  if (!selectedNode) {
    if (!activeProcess) {
      return /* @__PURE__ */ jsxs("aside", { className: "w-[320px] h-full bg-slate-50 border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex items-center justify-center relative", children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "absolute top-4 left-4 text-slate-400 hover:text-slate-600",
            children: /* @__PURE__ */ jsx(PanelRightClose, { size: 16 })
          }
        ),
        /* @__PURE__ */ jsx("div", { className: "text-center text-slate-400", children: /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: "No Selection" }) })
      ] });
    }
    const handleProcessChange = (key, value) => {
      setLocalData((prev) => ({ ...prev, [key]: value }));
      updateProcessData(activeProcess.id, { [key]: value });
    };
    return /* @__PURE__ */ jsxs("aside", { className: "w-[320px] h-full bg-white border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col shadow-[-1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
      /* @__PURE__ */ jsx("div", { className: "p-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
          /* @__PURE__ */ jsx("span", { className: "w-8 h-8 rounded-lg flex items-center justify-center text-slate-500 bg-slate-100 border border-slate-200 shadow-sm", children: /* @__PURE__ */ jsx(Settings2, { size: 16 }) }),
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("h2", { className: "text-sm font-bold text-slate-900 dark:text-slate-100", children: "Process Settings" }),
            /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 font-mono", children: "Definition Properties" })
          ] })
        ] }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "text-slate-400 hover:text-slate-600 p-1",
            children: /* @__PURE__ */ jsx(PanelRightClose, { size: 16 })
          }
        )
      ] }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-5 space-y-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "name", label: "Process Name", type: "text", validation: { required: true } },
            value: localData.name || "",
            onChange: handleProcessChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "description", label: "Description", type: "textarea", rows: 4 },
            value: localData.description || "",
            onChange: handleProcessChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "id", label: "Process Key", type: "text", disabled: true },
            value: localData.id || "",
            onChange: () => {
            }
          }
        )
      ] })
    ] });
  }
  const config = nodeTypes[selectedNode.type || ""] || nodeTypes["FormStartEvent"];
  const nodeConfig = propertyRegistry[selectedNode.type || ""] || { tabs: [{ id: "properties", label: "General", fields: [] }] };
  const ConfigIcon = config.icon ? AllIcons[config.icon] || Settings2 : Settings2;
  const hasAdvancedConfig = nodeConfig.tabs.length > 1;
  const handleNodeChange = (key, value) => {
    setLocalData((prev) => ({ ...prev, [key]: value }));
    if (selectedNode) {
      updateNodeData(selectedNode.id, { [key]: value });
    }
  };
  const toggleBreakpoint = () => {
    handleNodeChange("hasBreakpoint", !localData.hasBreakpoint);
  };
  const shouldRenderField = (field) => {
    if (!field.condition) return true;
    const { field: targetField, operator, value } = field.condition;
    const resolveTargetValue = () => {
      const raw = localData[targetField];
      if (raw !== void 0 && raw !== null) return raw;
      const targetFieldConfig = propertiesTab == null ? void 0 : propertiesTab.fields.find((f) => f.name === targetField);
      return targetFieldConfig == null ? void 0 : targetFieldConfig.defaultValue;
    };
    const targetValue = resolveTargetValue();
    switch (operator) {
      case "equals":
        return targetValue === value;
      case "notEquals":
        return targetValue !== value;
      case "contains":
        return Array.isArray(targetValue) && targetValue.includes(value);
      default:
        return true;
    }
  };
  const renderSimpleTabContent = (tab) => {
    if (tab.specialComponent && componentRegistry[tab.specialComponent]) {
      const Component2 = componentRegistry[tab.specialComponent];
      return /* @__PURE__ */ jsx(
        Component2,
        {
          data: localData,
          onChange: handleNodeChange,
          nodeType: selectedNode.type,
          context: variableContext
        }
      );
    }
    return /* @__PURE__ */ jsx("div", { className: "space-y-4", children: tab.fields.map((field) => {
      if (!shouldRenderField(field)) return null;
      return /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: field,
          value: localData[field.name],
          onChange: handleNodeChange
        },
        field.name
      );
    }) });
  };
  return /* @__PURE__ */ jsxs("aside", { className: "w-[320px] h-full bg-white border-l border-slate-200 dark:bg-slate-950 dark:border-slate-800 flex flex-col shadow-[-1px_0_0_0_rgba(0,0,0,0.02)] z-10 transition-all duration-300", children: [
    /* @__PURE__ */ jsx("div", { className: "p-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-1 min-w-0 flex-1", children: [
        /* @__PURE__ */ jsx("span", { className: "w-8 h-8 rounded-lg flex items-center justify-center bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-700 shadow-sm shrink-0", style: { color: config.color }, children: /* @__PURE__ */ jsx(ConfigIcon, { size: 16 }) }),
        /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 pr-2", children: [
          /* @__PURE__ */ jsx("h2", { className: "text-sm font-bold text-slate-900 dark:text-slate-100 truncate pr-2", children: config.label }),
          /* @__PURE__ */ jsx(
            "input",
            {
              className: `text-[10px] font-mono bg-transparent border-b border-transparent focus:border-teal-500 rounded-sm px-0 w-full outline-none transition-all
                            ${idError ? "text-red-500 border-red-500" : "text-slate-400 hover:text-slate-600 focus:text-slate-600 dark:hover:text-slate-300 dark:focus:text-slate-300"}
                        `,
              value: nodeIdInput,
              onChange: (e) => {
                setNodeIdInput(e.target.value);
                setIdError(false);
              },
              onBlur: handleIdBlur,
              onKeyDown: (e) => {
                if (e.key === "Enter") {
                  e.currentTarget.blur();
                }
              },
              title: idError ? "Key already exists" : "Click to edit Key"
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "flex gap-1 shrink-0", children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: toggleBreakpoint,
            className: `p-1.5 rounded-lg transition-all ${localData.hasBreakpoint ? "bg-red-50 border border-red-200 text-red-600" : "text-slate-400 hover:bg-slate-100 hover:text-slate-600"}`,
            title: "Toggle Breakpoint",
            children: /* @__PURE__ */ jsx(Bug, { size: 14, fill: localData.hasBreakpoint ? "currentColor" : "none" })
          }
        ),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => setIsCollapsed(true),
            className: "p-1.5 text-slate-400 hover:text-slate-600 hover:bg-slate-100 rounded-lg",
            title: "Collapse",
            children: /* @__PURE__ */ jsx(PanelRightClose, { size: 14 })
          }
        )
      ] })
    ] }) }),
    /* @__PURE__ */ jsx(NodeValidationBanner, { issues: validationIssues.filter((i) => {
      var _a2;
      return (_a2 = i.nodeIds) == null ? void 0 : _a2.includes(selectedNode.id);
    }) }),
    /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-5", children: [
      hasAdvancedConfig && /* @__PURE__ */ jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: onOpenModal,
          className: "w-full py-2 bg-slate-900 dark:bg-slate-800 hover:bg-slate-800 text-white text-xs font-bold rounded-lg shadow-sm transition-all flex items-center justify-center gap-2 group",
          children: [
            /* @__PURE__ */ jsx(Maximize2, { size: 12, className: "text-slate-400 group-hover:text-white transition-colors" }),
            "Open Advanced Editor"
          ]
        }
      ) }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
        /* @__PURE__ */ jsx("h3", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-2", children: "Properties" }),
        propertiesTab ? renderSimpleTabContent(propertiesTab) : /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-400 italic", children: "No basic properties available." })
      ] })
    ] }),
    /* @__PURE__ */ jsx("div", { className: "p-3 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 text-center", children: /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400", children: "Double-click node to open advanced editor" }) })
  ] });
};
const ThemeContext = createContext(void 0);
const ThemeProvider = ({ children, forcedTheme }) => {
  const [internalTheme, setInternalTheme] = useState("light");
  const isControlled = forcedTheme !== void 0;
  const theme = forcedTheme || internalTheme;
  useEffect(() => {
    if (!isControlled) {
      const stored = localStorage.getItem("theme");
      if (stored) {
        setInternalTheme(stored);
      } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
        setInternalTheme("dark");
      }
    }
  }, [isControlled]);
  useEffect(() => {
    if (!isControlled) {
      const root = window.document.documentElement;
      root.classList.remove("light", "dark");
      root.classList.add(theme);
      localStorage.setItem("theme", theme);
    }
  }, [theme, isControlled]);
  return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: { theme, setTheme: setInternalTheme, isControlled }, children });
};
const useTheme = () => {
  const context = useContext(ThemeContext);
  if (context === void 0)
    throw new Error("useTheme must be used within a ThemeProvider");
  return context;
};
const TopBar = ({
  simulationState,
  onToggleSimulation,
  onReset,
  onExport,
  onImport,
  onSave,
  onSaveAndQuit,
  onBack,
  processes,
  activeProcessId,
  onSelectProcess,
  onCreateProcess,
  onCreateSubProcess,
  onDeleteProcess,
  currentNodes,
  onAutoLayout,
  onOpenRuleSetLibrary,
  autoSaveState,
  validationErrors = 0,
  validationWarnings = 0,
  processIssueCounts = {}
}) => {
  const fileInputRef = useRef(null);
  const [isDropdownOpen, setIsDropdownOpen] = useState(false);
  const [pendingAction, setPendingAction] = useState(null);
  const dropdownRef = useRef(null);
  const { theme, setTheme, isControlled } = useTheme();
  const hasBlockingErrors2 = validationErrors > 0;
  const handleGuardedAction = (action, run) => {
    if (hasBlockingErrors2) {
      setPendingAction(action);
    } else {
      run();
    }
  };
  const confirmPending = () => {
    const action = pendingAction;
    setPendingAction(null);
    if (action === "save") onSave == null ? void 0 : onSave();
    else if (action === "saveAndQuit") onSaveAndQuit == null ? void 0 : onSaveAndQuit();
    else if (action === "export") onExport({ bypassValidation: true });
  };
  const handleImportClick = () => {
    var _a;
    (_a = fileInputRef.current) == null ? void 0 : _a.click();
  };
  const handleFileChange = (e) => {
    var _a;
    const file = (_a = e.target.files) == null ? void 0 : _a[0];
    if (file) {
      onImport(file);
    }
    if (fileInputRef.current) {
      fileInputRef.current.value = "";
    }
  };
  useEffect(() => {
    const handleClickOutside = (event) => {
      if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
        setIsDropdownOpen(false);
      }
    };
    document.addEventListener("mousedown", handleClickOutside);
    return () => document.removeEventListener("mousedown", handleClickOutside);
  }, []);
  const toggleTheme = (e) => {
    if (isControlled) return;
    const newTheme = theme === "light" ? "dark" : "light";
    const doc = document;
    if (!doc.startViewTransition) {
      setTheme(newTheme);
      return;
    }
    const x = e.clientX;
    const y = e.clientY;
    const endRadius = Math.hypot(
      Math.max(x, window.innerWidth - x),
      Math.max(y, window.innerHeight - y)
    );
    const transition = doc.startViewTransition(() => {
      setTheme(newTheme);
    });
    transition.ready.then(() => {
      const clipPath = [
        `circle(0px at ${x}px ${y}px)`,
        `circle(${endRadius}px at ${x}px ${y}px)`
      ];
      document.documentElement.animate(
        {
          clipPath
        },
        {
          duration: 500,
          easing: "ease-in-out",
          // The new view is always growing on top
          pseudoElement: "::view-transition-new(root)"
        }
      );
    });
  };
  const hasErrors = (nodes) => {
    if (!nodes || !Array.isArray(nodes)) return false;
    return nodes.some((n) => {
      var _a;
      return ((_a = n == null ? void 0 : n.data) == null ? void 0 : _a.status) === "error";
    });
  };
  const activeProcess = processes.find((p) => p.id === activeProcessId);
  const activeProcessName = (activeProcess == null ? void 0 : activeProcess.name) || "Unknown Process";
  const activeProcessHasErrors = hasErrors(currentNodes);
  const isActiveSubProcess = !!(activeProcess == null ? void 0 : activeProcess.isSubProcess);
  return /* @__PURE__ */ jsxs("header", { className: "h-[64px] bg-white dark:bg-slate-950 border-b border-slate-200 dark:border-slate-800 flex items-center justify-between px-6 shadow-sm z-50", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
      onBack && /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onBack,
          className: "p-2 -ml-2 text-slate-500 hover:text-slate-700 hover:bg-slate-100 dark:hover:bg-slate-900 dark:text-slate-400 dark:hover:text-slate-200 rounded-lg transition-colors",
          title: "Go Back",
          children: /* @__PURE__ */ jsx(ArrowLeft, { size: 20 })
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
        /* @__PURE__ */ jsx("div", { className: "w-8 h-8 bg-teal-600 rounded-lg flex items-center justify-center text-white", children: /* @__PURE__ */ jsx(FileText, { size: 18 }) }),
        /* @__PURE__ */ jsx("h1", { className: "text-lg font-bold text-slate-900 dark:text-white leading-tight tracking-tight hidden md:block", children: "Peak Editor" })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "h-6 w-px bg-slate-200 dark:bg-slate-800 mx-2" }),
      /* @__PURE__ */ jsxs("div", { className: "relative", ref: dropdownRef, children: [
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: () => setIsDropdownOpen(!isDropdownOpen),
            className: `flex items-center gap-2 px-3 py-1.5 rounded-lg border transition-all min-w-[200px] justify-between
                ${activeProcessHasErrors ? "bg-red-50 border-red-200 text-red-700 hover:bg-red-100" : "bg-white dark:bg-slate-900 border-slate-200 dark:border-slate-700 hover:border-teal-500 hover:bg-slate-50"}`,
            children: [
              /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 overflow-hidden", children: [
                isActiveSubProcess ? /* @__PURE__ */ jsx(Layers, { size: 14, className: "text-slate-400 shrink-0" }) : /* @__PURE__ */ jsx(Workflow, { size: 14, className: "text-slate-400 shrink-0" }),
                /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold truncate max-w-[150px]", children: activeProcessName }),
                isActiveSubProcess && /* @__PURE__ */ jsx("span", { className: "text-[9px] font-bold bg-slate-100 dark:bg-slate-800 text-slate-500 px-1.5 py-0.5 rounded border border-slate-200 dark:border-slate-700", children: "SUB" }),
                activeProcessHasErrors && /* @__PURE__ */ jsx(CircleAlert, { size: 14, className: "text-red-500 shrink-0" })
              ] }),
              /* @__PURE__ */ jsx(ChevronDown, { size: 14, className: `text-slate-400 transition-transform ${isDropdownOpen ? "rotate-180" : ""} shrink-0` })
            ]
          }
        ),
        isDropdownOpen && /* @__PURE__ */ jsxs("div", { className: "absolute top-full left-0 mt-2 w-72 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-xl shadow-xl py-2 z-50 animate-in fade-in zoom-in-95 duration-100", children: [
          /* @__PURE__ */ jsx("div", { className: "px-3 py-2 text-[10px] font-bold text-slate-400 uppercase tracking-wider", children: "Process Definitions" }),
          /* @__PURE__ */ jsx("div", { className: "max-h-[300px] overflow-y-auto", children: processes.map((proc) => {
            const isActive = proc.id === activeProcessId;
            const procHasErrors = isActive ? activeProcessHasErrors : hasErrors(proc.nodes);
            const isSub = !!proc.isSubProcess;
            const counts = processIssueCounts[proc.id] || { errors: 0, warnings: 0 };
            const showErrorBadge = counts.errors > 0;
            const showWarningBadge = !showErrorBadge && counts.warnings > 0;
            return /* @__PURE__ */ jsxs(
              "div",
              {
                className: `group flex items-center justify-between px-3 py-2 mx-2 rounded-lg cursor-pointer transition-colors
                                    ${isActive ? "bg-teal-50 dark:bg-teal-900/20" : "hover:bg-slate-100 dark:hover:bg-slate-800"}`,
                onClick: () => {
                  onSelectProcess(proc.id);
                  setIsDropdownOpen(false);
                },
                children: [
                  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 overflow-hidden", children: [
                    procHasErrors ? /* @__PURE__ */ jsx(CircleAlert, { size: 14, className: "text-red-500 shrink-0" }) : isSub ? /* @__PURE__ */ jsx(Layers, { size: 14, className: `${isActive ? "text-teal-500" : "text-slate-400"} shrink-0` }) : /* @__PURE__ */ jsx("div", { className: `w-3.5 h-3.5 rounded-full border-2 flex items-center justify-center shrink-0 ${isActive ? "border-teal-500" : "border-slate-300"}`, children: isActive && /* @__PURE__ */ jsx("div", { className: "w-1.5 h-1.5 bg-teal-500 rounded-full" }) }),
                    /* @__PURE__ */ jsx("span", { className: `text-sm truncate ${isActive ? "text-teal-900 dark:text-teal-100 font-medium" : "text-slate-600 dark:text-slate-400"}`, children: proc.name }),
                    isSub && /* @__PURE__ */ jsx("span", { className: "text-[9px] font-bold bg-slate-100 dark:bg-slate-800 text-slate-500 px-1.5 py-0.5 rounded border border-slate-200 dark:border-slate-700 shrink-0", children: "SUB" })
                  ] }),
                  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0", children: [
                    showErrorBadge && /* @__PURE__ */ jsxs(
                      "span",
                      {
                        className: "flex items-center gap-0.5 text-[10px] font-semibold text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-900 px-1.5 py-0.5 rounded-full",
                        title: `${counts.errors} error${counts.errors === 1 ? "" : "s"}${counts.warnings > 0 ? ` · ${counts.warnings} warning${counts.warnings === 1 ? "" : "s"}` : ""}`,
                        children: [
                          /* @__PURE__ */ jsx(CircleAlert, { size: 10 }),
                          counts.errors
                        ]
                      }
                    ),
                    showWarningBadge && /* @__PURE__ */ jsxs(
                      "span",
                      {
                        className: "flex items-center gap-0.5 text-[10px] font-semibold text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-900 px-1.5 py-0.5 rounded-full",
                        title: `${counts.warnings} warning${counts.warnings === 1 ? "" : "s"}`,
                        children: [
                          /* @__PURE__ */ jsx(TriangleAlert, { size: 10 }),
                          counts.warnings
                        ]
                      }
                    ),
                    processes.length > 1 && /* @__PURE__ */ jsx(
                      "button",
                      {
                        onClick: (e) => {
                          e.stopPropagation();
                          onDeleteProcess(proc.id);
                        },
                        className: "p-1.5 text-slate-400 hover:text-red-600 hover:bg-red-50 rounded-md opacity-0 group-hover:opacity-100 transition-all",
                        title: "Delete Process",
                        children: /* @__PURE__ */ jsx(Trash2, { size: 12 })
                      }
                    )
                  ] })
                ]
              },
              proc.id
            );
          }) }),
          /* @__PURE__ */ jsxs("div", { className: "border-t border-slate-100 dark:border-slate-800 mt-2 pt-2 px-2 grid grid-cols-2 gap-2", children: [
            /* @__PURE__ */ jsxs(
              "button",
              {
                onClick: () => {
                  onCreateProcess();
                  setIsDropdownOpen(false);
                },
                className: "flex items-center justify-center gap-2 px-3 py-2 text-xs text-slate-600 hover:text-teal-600 hover:bg-teal-50 dark:hover:bg-teal-900/10 dark:text-slate-300 dark:hover:text-teal-400 rounded-lg transition-colors font-bold border border-slate-200 dark:border-slate-700",
                children: [
                  /* @__PURE__ */ jsx(Plus, { size: 12 }),
                  "Process"
                ]
              }
            ),
            onCreateSubProcess && /* @__PURE__ */ jsxs(
              "button",
              {
                onClick: () => {
                  onCreateSubProcess();
                  setIsDropdownOpen(false);
                },
                className: "flex items-center justify-center gap-2 px-3 py-2 text-xs text-slate-600 hover:text-teal-600 hover:bg-teal-50 dark:hover:bg-teal-900/10 dark:text-slate-300 dark:hover:text-teal-400 rounded-lg transition-colors font-bold border border-slate-200 dark:border-slate-700",
                children: [
                  /* @__PURE__ */ jsx(Layers, { size: 12 }),
                  "Sub-Process"
                ]
              }
            )
          ] })
        ] })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 bg-slate-100 dark:bg-slate-900 p-1 rounded-lg border border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: onToggleSimulation,
          className: `
            flex items-center gap-2 px-4 py-1.5 rounded-md text-sm font-medium transition-all
            ${simulationState.isRunning ? "bg-amber-100 text-amber-700 hover:bg-amber-200 border border-amber-200" : "bg-white text-teal-700 hover:bg-teal-50 hover:text-teal-800 shadow-sm border border-slate-200"}
          `,
          children: [
            simulationState.isRunning ? /* @__PURE__ */ jsx(Pause, { size: 14, fill: "currentColor" }) : /* @__PURE__ */ jsx(Play, { size: 14, fill: "currentColor" }),
            simulationState.isRunning ? "Pause" : "Run Sim"
          ]
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onReset,
          className: "p-2 text-slate-500 hover:text-teal-600 hover:bg-white rounded-md transition-colors",
          title: "Reset Simulation",
          children: /* @__PURE__ */ jsx(RotateCcw, { size: 16 })
        }
      )
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
      /* @__PURE__ */ jsx(
        "input",
        {
          type: "file",
          ref: fileInputRef,
          className: "hidden",
          accept: ".bpjs,.json,.bpmn,.xml",
          onChange: handleFileChange
        }
      ),
      autoSaveState && /* @__PURE__ */ jsx("div", { className: "hidden xl:flex items-center gap-2 mr-2", children: autoSaveState.isSaving ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-xs text-slate-400 font-mono", children: [
        /* @__PURE__ */ jsx(RefreshCw, { size: 12, className: "animate-spin" }),
        "SAVING..."
      ] }) : autoSaveState.lastSaved ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-xs text-emerald-600 bg-emerald-50 px-2 py-1 rounded-md font-medium", title: `Saved at ${autoSaveState.lastSaved.toLocaleTimeString()}`, children: [
        /* @__PURE__ */ jsx(CircleCheckBig, { size: 12 }),
        "SAVED"
      ] }) : null }),
      !isControlled && /* @__PURE__ */ jsx(
        "button",
        {
          onClick: toggleTheme,
          className: "flex items-center justify-center p-2 text-slate-500 hover:text-teal-600 hover:bg-teal-50 dark:hover:text-teal-400 dark:hover:bg-slate-900 rounded-lg transition-colors",
          title: `Switch to ${theme === "light" ? "Dark" : "Light"} Mode`,
          children: theme === "light" ? /* @__PURE__ */ jsx(Moon, { size: 16 }) : /* @__PURE__ */ jsx(Sun, { size: 16 })
        }
      ),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: onAutoLayout,
          className: "flex items-center gap-2 px-3 py-2 text-sm text-slate-500 hover:text-teal-600 font-medium hover:bg-teal-50 dark:hover:bg-slate-900 dark:text-slate-400 dark:hover:text-teal-400 rounded-lg transition-colors",
          title: "Auto Layout Nodes",
          children: [
            /* @__PURE__ */ jsx(LayoutGrid, { size: 16 }),
            /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Layout" })
          ]
        }
      ),
      onOpenRuleSetLibrary && /* @__PURE__ */ jsxs("button", { onClick: onOpenRuleSetLibrary, title: "Error Rulesets (project)", className: "flex items-center gap-2 px-3 py-2 text-sm text-slate-500 hover:text-teal-600 font-medium hover:bg-teal-50 dark:hover:bg-slate-900 dark:text-slate-400 dark:hover:text-teal-400 rounded-lg transition-colors", children: [
        /* @__PURE__ */ jsx(ShieldAlert, { size: 16 }),
        /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Rulesets" })
      ] }),
      /* @__PURE__ */ jsxs("button", { onClick: handleImportClick, className: "flex items-center gap-2 px-3 py-2 text-sm text-slate-500 hover:text-teal-600 font-medium hover:bg-teal-50 dark:hover:bg-slate-900 dark:text-slate-400 dark:hover:text-teal-400 rounded-lg transition-colors", children: [
        /* @__PURE__ */ jsx(Upload, { size: 16 }),
        /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Import" })
      ] }),
      hasBlockingErrors2 && /* @__PURE__ */ jsxs(
        "div",
        {
          className: "hidden md:flex items-center gap-1.5 px-2 py-1 rounded-md bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-900 text-[11px] font-medium text-red-700 dark:text-red-300",
          title: `${validationErrors} error${validationErrors === 1 ? "" : "s"}${validationWarnings > 0 ? ` · ${validationWarnings} warning${validationWarnings === 1 ? "" : "s"}` : ""} — confirmation required`,
          children: [
            /* @__PURE__ */ jsx(CircleAlert, { size: 12 }),
            /* @__PURE__ */ jsxs("span", { children: [
              validationErrors,
              validationWarnings > 0 ? `+${validationWarnings}` : ""
            ] })
          ]
        }
      ),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => handleGuardedAction("export", () => onExport()),
          title: hasBlockingErrors2 ? "Export (validation confirmation required)" : "Export",
          className: `flex items-center gap-2 px-3 py-2 text-sm font-medium rounded-lg transition-colors ${hasBlockingErrors2 ? "text-red-600 hover:text-red-700 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/30" : "text-slate-500 hover:text-teal-600 hover:bg-teal-50 dark:hover:bg-slate-900 dark:text-slate-400 dark:hover:text-teal-400"}`,
          children: [
            /* @__PURE__ */ jsx(Download, { size: 16 }),
            /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Export" })
          ]
        }
      ),
      onSave && /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => handleGuardedAction("save", () => onSave()),
          title: hasBlockingErrors2 ? "Save (validation confirmation required)" : "Save",
          className: `px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 transition-colors shadow-sm text-white ${hasBlockingErrors2 ? "bg-red-600 hover:bg-red-700 ring-1 ring-red-300 dark:ring-red-800" : "bg-teal-600 hover:bg-teal-700 shadow-teal-600/20"}`,
          children: [
            /* @__PURE__ */ jsx(Save, { size: 16 }),
            /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Save" })
          ]
        }
      ),
      onSaveAndQuit && /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => handleGuardedAction("saveAndQuit", () => onSaveAndQuit()),
          title: hasBlockingErrors2 ? "Save & Quit (validation confirmation required)" : "Save & Quit",
          className: `px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 transition-colors shadow-sm text-white ${hasBlockingErrors2 ? "bg-red-700 hover:bg-red-800 ring-1 ring-red-300 dark:ring-red-800" : "bg-slate-800 hover:bg-slate-900 dark:bg-slate-700 dark:hover:bg-slate-600"}`,
          children: [
            /* @__PURE__ */ jsx(LogOut, { size: 16 }),
            /* @__PURE__ */ jsx("span", { className: "hidden lg:inline", children: "Save & Quit" })
          ]
        }
      )
    ] }),
    pendingAction && /* @__PURE__ */ jsx(
      ValidationConfirmModal,
      {
        action: pendingAction,
        errors: validationErrors,
        warnings: validationWarnings,
        onCancel: () => setPendingAction(null),
        onConfirm: confirmPending
      }
    )
  ] });
};
const ValidationConfirmModal = ({ action, errors, warnings, onCancel, onConfirm }) => {
  const actionLabel = action === "save" ? "Save" : action === "saveAndQuit" ? "Save & Quit" : "Export";
  return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-sm", onClick: onCancel, children: /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-900 rounded-xl shadow-2xl max-w-md w-full mx-4 border border-slate-200 dark:border-slate-700", onClick: (e) => e.stopPropagation(), children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between p-5 border-b border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
        /* @__PURE__ */ jsx("div", { className: "p-2 bg-red-100 dark:bg-red-950/40 rounded-lg", children: /* @__PURE__ */ jsx(CircleAlert, { size: 20, className: "text-red-600 dark:text-red-400" }) }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("h2", { className: "text-base font-bold text-slate-900 dark:text-white", children: "Validation Issues Detected" }),
          /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400 mt-0.5", children: "Proceeding will bypass validation" })
        ] })
      ] }),
      /* @__PURE__ */ jsx("button", { onClick: onCancel, className: "p-1 text-slate-400 hover:text-slate-600 dark:hover:text-slate-200 rounded transition-colors", children: /* @__PURE__ */ jsx(X, { size: 16 }) })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "p-5 space-y-3", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 p-3 bg-red-50 dark:bg-red-950/20 border border-red-200 dark:border-red-900 rounded-lg", children: [
        /* @__PURE__ */ jsx(CircleAlert, { size: 16, className: "text-red-500" }),
        /* @__PURE__ */ jsxs("div", { className: "text-sm", children: [
          /* @__PURE__ */ jsx("span", { className: "font-semibold text-red-700 dark:text-red-300", children: errors }),
          /* @__PURE__ */ jsxs("span", { className: "text-slate-700 dark:text-slate-300", children: [
            " blocking error",
            errors === 1 ? "" : "s"
          ] }),
          warnings > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400 mx-1", children: "·" }),
            /* @__PURE__ */ jsx("span", { className: "font-semibold text-amber-700 dark:text-amber-300", children: warnings }),
            /* @__PURE__ */ jsxs("span", { className: "text-slate-700 dark:text-slate-300", children: [
              " warning",
              warnings === 1 ? "" : "s"
            ] })
          ] })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("p", { className: "text-sm text-slate-600 dark:text-slate-400", children: [
        "The diagram has unresolved validation issues. Review them in the ",
        /* @__PURE__ */ jsx("strong", { children: "Issues" }),
        " tab before continuing."
      ] }),
      /* @__PURE__ */ jsxs("p", { className: "text-xs text-slate-500 dark:text-slate-500", children: [
        "You can still proceed with ",
        /* @__PURE__ */ jsx("strong", { children: actionLabel }),
        ", but the exported data may not execute correctly downstream."
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 p-4 bg-slate-50 dark:bg-slate-950 border-t border-slate-200 dark:border-slate-800 rounded-b-xl", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onCancel,
          className: "px-4 py-2 text-sm font-medium text-slate-700 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-800 rounded-lg transition-colors",
          children: "Cancel"
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onConfirm,
          className: "px-4 py-2 text-sm font-semibold text-white bg-red-600 hover:bg-red-700 rounded-lg transition-colors shadow-sm",
          children: "Proceed Anyway"
        }
      )
    ] })
  ] }) });
};
const VariableRow = ({ name, value, depth = 0 }) => {
  const [expanded, setExpanded] = useState(false);
  const isObject2 = value !== null && typeof value === "object";
  const isExpandable = isObject2 && Object.keys(value).length > 0;
  const maxExpandDepth = 2;
  return /* @__PURE__ */ jsxs(Fragment, { children: [
    /* @__PURE__ */ jsxs("tr", { className: "border-b border-slate-100 dark:border-slate-800 hover:bg-slate-50 dark:hover:bg-slate-900 group transition-colors", children: [
      /* @__PURE__ */ jsx("td", { className: "py-2 px-4 text-teal-700 dark:text-teal-400 font-bold whitespace-nowrap", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center", style: { paddingLeft: `${depth * 16}px` }, children: [
        isExpandable && depth < maxExpandDepth ? /* @__PURE__ */ jsx("button", { onClick: () => setExpanded(!expanded), className: "mr-1 text-slate-400 hover:text-slate-600 p-0.5 rounded", children: expanded ? /* @__PURE__ */ jsx(ChevronDown, { size: 12 }) : /* @__PURE__ */ jsx(ChevronRight, { size: 12 }) }) : /* @__PURE__ */ jsx("span", { className: "mr-1 w-[18px] inline-block" }),
        depth > 0 && /* @__PURE__ */ jsx("span", { className: "text-slate-300 mr-1 select-none text-[10px]", children: "." }),
        name
      ] }) }),
      /* @__PURE__ */ jsx("td", { className: "py-2 px-4 text-slate-700 dark:text-slate-300", children: isObject2 ? expanded ? /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 italic", children: Array.isArray(value) ? `Array(${value.length})` : `{${Object.keys(value).length} keys}` }) : /* @__PURE__ */ jsx("pre", { className: "text-[10px] bg-slate-100 dark:bg-slate-900 p-1 rounded max-h-20 overflow-auto border border-slate-200", children: JSON.stringify(value, null, 2) }) : String(value) }),
      /* @__PURE__ */ jsx("td", { className: "py-2 px-4 text-right" })
    ] }),
    expanded && isExpandable && depth < maxExpandDepth && Object.entries(value).map(([childKey, childVal]) => /* @__PURE__ */ jsx(VariableRow, { name: childKey, value: childVal, depth: depth + 1 }, `${name}.${childKey}`))
  ] });
};
const IssueRow = ({ issue, onFocusNode }) => {
  var _a, _b, _c, _d, _e, _f, _g;
  const Icon2 = issue.severity === "error" ? CircleAlert : TriangleAlert;
  const iconColor = issue.severity === "error" ? "text-red-500" : "text-amber-500";
  const rowBg = issue.severity === "error" ? "hover:bg-red-50 dark:hover:bg-red-950/20" : "hover:bg-amber-50 dark:hover:bg-amber-950/20";
  const firstNode = (_a = issue.nodeIds) == null ? void 0 : _a[0];
  return /* @__PURE__ */ jsxs(
    "div",
    {
      className: `flex items-start gap-2 px-4 py-2 border-b border-slate-100 dark:border-slate-800 ${rowBg} ${firstNode ? "cursor-pointer" : ""}`,
      onClick: () => firstNode && (onFocusNode == null ? void 0 : onFocusNode(firstNode)),
      title: firstNode ? `Click to focus ${firstNode}` : void 0,
      children: [
        /* @__PURE__ */ jsx(Icon2, { size: 14, className: `${iconColor} mt-0.5 flex-shrink-0` }),
        /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx("span", { className: "text-[10px] font-mono font-bold text-slate-500 dark:text-slate-400 bg-slate-100 dark:bg-slate-800 px-1.5 py-0.5 rounded", children: issue.rule }),
            /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: issue.severity })
          ] }),
          /* @__PURE__ */ jsx("div", { className: "text-xs text-slate-700 dark:text-slate-300 mt-0.5 break-words", children: issue.message }),
          ((_b = issue.nodeIds) == null ? void 0 : _b.length) || ((_c = issue.edgeIds) == null ? void 0 : _c.length) ? /* @__PURE__ */ jsxs("div", { className: "text-[10px] text-slate-400 mt-0.5 font-mono", children: [
            ((_d = issue.nodeIds) == null ? void 0 : _d.length) ? `nodes: ${issue.nodeIds.join(", ")}` : "",
            ((_e = issue.nodeIds) == null ? void 0 : _e.length) && ((_f = issue.edgeIds) == null ? void 0 : _f.length) ? " · " : "",
            ((_g = issue.edgeIds) == null ? void 0 : _g.length) ? `edges: ${issue.edgeIds.join(", ")}` : ""
          ] }) : null
        ] })
      ]
    }
  );
};
const MIN_HEIGHT = 120;
const DEFAULT_HEIGHT = 250;
const MAX_HEIGHT_VH = 0.8;
const BottomPanel = ({ simulationState, issues, onFocusNode }) => {
  const [isOpen, setIsOpen] = useState(false);
  const [activeTab, setActiveTab] = useState("logs");
  const [severityFilter, setSeverityFilter] = useState("all");
  const [height, setHeight] = useState(DEFAULT_HEIGHT);
  const [isDragging, setIsDragging] = useState(false);
  const logsEndRef = useRef(null);
  useEffect(() => {
    if (!isDragging) return;
    const onMove = (e) => {
      const maxH = Math.floor(window.innerHeight * MAX_HEIGHT_VH);
      const next = Math.min(maxH, Math.max(MIN_HEIGHT, window.innerHeight - e.clientY));
      setHeight(next);
    };
    const onUp = () => setIsDragging(false);
    window.addEventListener("mousemove", onMove);
    window.addEventListener("mouseup", onUp);
    document.body.style.cursor = "ns-resize";
    document.body.style.userSelect = "none";
    return () => {
      window.removeEventListener("mousemove", onMove);
      window.removeEventListener("mouseup", onUp);
      document.body.style.cursor = "";
      document.body.style.userSelect = "";
    };
  }, [isDragging]);
  const issueList = issues ?? [];
  const errorCount = useMemo(() => issueList.filter((i) => i.severity === "error").length, [issueList]);
  const warningCount = useMemo(() => issueList.filter((i) => i.severity === "warning").length, [issueList]);
  const filteredIssues = useMemo(() => {
    if (severityFilter === "all") return issueList;
    return issueList.filter((i) => i.severity === severityFilter);
  }, [issueList, severityFilter]);
  useEffect(() => {
    if (activeTab === "logs" && logsEndRef.current) {
      logsEndRef.current.scrollIntoView({ behavior: "smooth" });
    }
  }, [simulationState.logs, activeTab, isOpen]);
  if (!isOpen) {
    return /* @__PURE__ */ jsxs("div", { className: "h-9 border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950 flex items-center px-4 justify-between cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-900 transition-colors z-20", onClick: () => setIsOpen(true), children: [
      /* @__PURE__ */ jsxs("div", { className: "flex gap-4 text-xs font-medium text-slate-500", children: [
        /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2 hover:text-slate-700 dark:hover:text-slate-300", onClick: (e) => {
          e.stopPropagation();
          setActiveTab("logs");
          setIsOpen(true);
        }, children: [
          /* @__PURE__ */ jsx(Terminal, { size: 14 }),
          " Logs"
        ] }),
        /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2 hover:text-slate-700 dark:hover:text-slate-300", onClick: (e) => {
          e.stopPropagation();
          setActiveTab("variables");
          setIsOpen(true);
        }, children: [
          /* @__PURE__ */ jsx(Database, { size: 14 }),
          " Variables (",
          Object.keys(simulationState.variables).length,
          ")"
        ] }),
        /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2 hover:text-slate-700 dark:hover:text-slate-300", onClick: (e) => {
          e.stopPropagation();
          setActiveTab("issues");
          setIsOpen(true);
        }, children: [
          /* @__PURE__ */ jsx(CircleAlert, { size: 14, className: errorCount > 0 ? "text-red-500" : "" }),
          "Issues",
          (errorCount > 0 || warningCount > 0) && /* @__PURE__ */ jsx("span", { className: `px-1.5 py-0.5 rounded-full text-[10px] font-semibold ${errorCount > 0 ? "bg-red-100 text-red-700 dark:bg-red-950 dark:text-red-300" : "bg-amber-100 text-amber-700 dark:bg-amber-950 dark:text-amber-300"}`, children: errorCount > 0 ? `${errorCount} error${errorCount === 1 ? "" : "s"}` : `${warningCount} warning${warningCount === 1 ? "" : "s"}` })
        ] })
      ] }),
      /* @__PURE__ */ jsx(ChevronUp, { size: 16, className: "text-slate-400" })
    ] });
  }
  return /* @__PURE__ */ jsxs(
    "div",
    {
      className: "border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950 flex flex-col shadow-inner z-20 relative",
      style: { height: `${height}px` },
      children: [
        /* @__PURE__ */ jsx(
          "div",
          {
            onMouseDown: (e) => {
              e.preventDefault();
              setIsDragging(true);
            },
            className: `absolute top-0 left-0 right-0 h-1.5 -translate-y-1/2 cursor-ns-resize group z-30 ${isDragging ? "" : ""}`,
            title: "Drag to resize",
            children: /* @__PURE__ */ jsx("div", { className: `h-full w-full ${isDragging ? "bg-teal-500/60" : "bg-transparent group-hover:bg-teal-500/30"} transition-colors` })
          }
        ),
        /* @__PURE__ */ jsxs("div", { className: "h-10 border-b border-slate-200 dark:border-slate-800 flex items-center justify-between px-2 bg-slate-50 dark:bg-slate-900 select-none", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex gap-1 pt-1 h-full items-end", children: [
            /* @__PURE__ */ jsxs(
              "button",
              {
                onClick: () => setActiveTab("logs"),
                className: `px-4 py-2 text-xs font-bold flex items-center gap-2 rounded-t-lg border-t border-x transition-all h-[calc(100%-4px)]
                    ${activeTab === "logs" ? "text-teal-700 bg-white border-slate-200 border-b-transparent shadow-[0_-2px_4px_rgba(0,0,0,0.02)] z-10" : "text-slate-500 border-transparent hover:text-slate-700 hover:bg-slate-100"}`,
                children: [
                  /* @__PURE__ */ jsx(Terminal, { size: 14 }),
                  " Execution Logs"
                ]
              }
            ),
            /* @__PURE__ */ jsxs(
              "button",
              {
                onClick: () => setActiveTab("variables"),
                className: `px-4 py-2 text-xs font-bold flex items-center gap-2 rounded-t-lg border-t border-x transition-all h-[calc(100%-4px)]
                    ${activeTab === "variables" ? "text-teal-700 bg-white border-slate-200 border-b-transparent shadow-[0_-2px_4px_rgba(0,0,0,0.02)] z-10" : "text-slate-500 border-transparent hover:text-slate-700 hover:bg-slate-100"}`,
                children: [
                  /* @__PURE__ */ jsx(Database, { size: 14 }),
                  " Variables",
                  /* @__PURE__ */ jsx("span", { className: `px-1.5 py-0.5 rounded-full text-[10px] ${activeTab === "variables" ? "bg-teal-100 text-teal-700" : "bg-slate-200 text-slate-600"}`, children: Object.keys(simulationState.variables).length })
                ]
              }
            ),
            /* @__PURE__ */ jsxs(
              "button",
              {
                onClick: () => setActiveTab("issues"),
                className: `px-4 py-2 text-xs font-bold flex items-center gap-2 rounded-t-lg border-t border-x transition-all h-[calc(100%-4px)]
                    ${activeTab === "issues" ? "text-teal-700 bg-white border-slate-200 border-b-transparent shadow-[0_-2px_4px_rgba(0,0,0,0.02)] z-10" : "text-slate-500 border-transparent hover:text-slate-700 hover:bg-slate-100"}`,
                children: [
                  /* @__PURE__ */ jsx(CircleAlert, { size: 14, className: errorCount > 0 ? "text-red-500" : "" }),
                  " Issues",
                  errorCount > 0 && /* @__PURE__ */ jsx("span", { className: "px-1.5 py-0.5 rounded-full text-[10px] bg-red-100 text-red-700 dark:bg-red-950 dark:text-red-300", children: errorCount }),
                  warningCount > 0 && errorCount === 0 && /* @__PURE__ */ jsx("span", { className: "px-1.5 py-0.5 rounded-full text-[10px] bg-amber-100 text-amber-700 dark:bg-amber-950 dark:text-amber-300", children: warningCount })
                ]
              }
            )
          ] }),
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pr-2", children: [
            activeTab === "issues" && /* @__PURE__ */ jsx("div", { className: "flex gap-1 text-[10px] font-semibold", children: ["all", "error", "warning"].map((f) => /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => setSeverityFilter(f),
                className: `px-2 py-0.5 rounded uppercase tracking-wide ${severityFilter === f ? "bg-slate-700 text-white" : "bg-slate-200 dark:bg-slate-800 text-slate-600 dark:text-slate-400 hover:bg-slate-300"}`,
                children: f
              },
              f
            )) }),
            /* @__PURE__ */ jsx("button", { onClick: () => setIsOpen(false), className: "text-slate-400 hover:text-slate-600 p-1 hover:bg-slate-200 rounded dark:hover:bg-slate-800 transition-colors", children: /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) })
          ] })
        ] }),
        /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto p-0 font-mono text-xs bg-white dark:bg-slate-950 relative", children: activeTab === "logs" ? /* @__PURE__ */ jsxs("div", { className: "p-4 space-y-1.5", children: [
          simulationState.logs.length === 0 && /* @__PURE__ */ jsxs("div", { className: "text-slate-400 italic flex items-center gap-2 opacity-50 p-4", children: [
            /* @__PURE__ */ jsx(Terminal, { size: 14 }),
            "Ready to simulate..."
          ] }),
          simulationState.logs.map((log, i) => /* @__PURE__ */ jsxs("div", { className: "flex gap-3 hover:bg-slate-50 dark:hover:bg-slate-900 p-1 rounded -mx-1", children: [
            /* @__PURE__ */ jsxs("span", { className: "text-slate-400 select-none min-w-[70px]", children: [
              "[",
              (/* @__PURE__ */ new Date()).toLocaleTimeString().split(" ")[0],
              "]"
            ] }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 break-all", children: log })
          ] }, i)),
          /* @__PURE__ */ jsx("div", { ref: logsEndRef })
        ] }) : activeTab === "variables" ? /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs("table", { className: "w-full text-left border-collapse", children: [
          /* @__PURE__ */ jsx("thead", { className: "bg-slate-50 dark:bg-slate-900 text-slate-500 sticky top-0 z-10 shadow-sm", children: /* @__PURE__ */ jsxs("tr", { children: [
            /* @__PURE__ */ jsx("th", { className: "font-semibold py-2 px-4 border-b border-slate-200 dark:border-slate-800 w-1/3 text-[10px] uppercase tracking-wider", children: "Variable Name" }),
            /* @__PURE__ */ jsx("th", { className: "font-semibold py-2 px-4 border-b border-slate-200 dark:border-slate-800 text-[10px] uppercase tracking-wider", children: "Current Value" }),
            /* @__PURE__ */ jsx("th", { className: "font-semibold py-2 px-4 border-b border-slate-200 dark:border-slate-800 w-12" })
          ] }) }),
          /* @__PURE__ */ jsxs("tbody", { children: [
            Object.entries(simulationState.variables).map(([key, value]) => /* @__PURE__ */ jsx(VariableRow, { name: key, value }, key)),
            Object.keys(simulationState.variables).length === 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: 3, className: "py-8 text-center text-slate-400 italic", children: "No global variables defined." }) })
          ] })
        ] }) }) : (
          // issues tab
          /* @__PURE__ */ jsx("div", { children: filteredIssues.length === 0 ? /* @__PURE__ */ jsx("div", { className: "py-8 text-center text-slate-400 italic text-xs", children: issueList.length === 0 ? "No issues — diagram validates cleanly." : "No issues match the current filter." }) : filteredIssues.map((issue, i) => /* @__PURE__ */ jsx(IssueRow, { issue, onFocusNode }, `${issue.rule}-${i}`)) })
        ) })
      ]
    }
  );
};
const TAB_ICON_MAP$1 = {
  properties: Settings2,
  form: List,
  assignments: Users,
  script: Code,
  http: Globe,
  email: Mail,
  llm: Bot,
  routing: GitFork,
  conditions: GitFork,
  timer: Clock,
  message: Mail,
  signal: Zap,
  database: Database,
  call: Workflow,
  fileimport: Upload,
  extraction: Funnel,
  errorHandling: ShieldAlert
};
const resolveDynamicIcon = (iconName) => {
  const icons = AllIcons;
  const capitalized = iconName.charAt(0).toUpperCase() + iconName.slice(1);
  return icons[iconName] || icons[capitalized];
};
const evaluateFieldCondition = (operator, targetValue, expected) => {
  switch (operator) {
    case "equals":
      return targetValue === expected;
    case "notEquals":
      return targetValue !== expected;
    case "contains":
      return Array.isArray(targetValue) && targetValue.includes(expected);
    default:
      return true;
  }
};
const NodeModal = ({
  isOpen,
  onClose,
  selectedNode,
  updateNodeData,
  variableContext = [],
  activeTabId,
  setActiveTabId
}) => {
  const { nodeTypes, propertyRegistry, componentRegistry } = useEditorConfig();
  const [localData, setLocalData] = useState({ label: "" });
  const [viewMode, setViewMode] = useState("form");
  const [jsonCode, setJsonCode] = useState("");
  const [jsonError, setJsonError] = useState(null);
  useEffect(() => {
    if (selectedNode && isOpen) {
      setLocalData(selectedNode.data);
      setViewMode("form");
      setJsonError(null);
    }
  }, [selectedNode, isOpen]);
  const config = useMemo(() => selectedNode ? nodeTypes[selectedNode.type || ""] : null, [selectedNode, nodeTypes]);
  const nodeConfig = useMemo(() => selectedNode ? propertyRegistry[selectedNode.type || ""] || { type: "default", tabs: [{ id: "properties", label: "General", fields: [] }] } : null, [selectedNode, propertyRegistry]);
  if (!isOpen || !selectedNode || !config || !nodeConfig) return null;
  const handleChange = (key, value) => {
    setLocalData((prev) => ({ ...prev, [key]: value }));
  };
  const toggleViewMode = () => {
    if (viewMode === "form") {
      setJsonCode(JSON.stringify(localData, null, 2));
      setViewMode("code");
      setJsonError(null);
    } else {
      try {
        const parsed = JSON.parse(jsonCode);
        setLocalData(parsed);
        setViewMode("form");
        setJsonError(null);
      } catch (e) {
        const message = e instanceof Error ? e.message : String(e);
        setJsonError("Invalid JSON: " + message);
      }
    }
  };
  const handleSave = () => {
    if (viewMode === "code") {
      try {
        const parsed = JSON.parse(jsonCode);
        updateNodeData(selectedNode.id, parsed);
        onClose();
      } catch {
        setJsonError("Cannot save: Invalid JSON");
      }
    } else {
      updateNodeData(selectedNode.id, localData);
      onClose();
    }
  };
  const renderIcon = (iconName) => {
    const MappedIcon = TAB_ICON_MAP$1[iconName];
    if (MappedIcon) return /* @__PURE__ */ jsx(MappedIcon, { size: 16 });
    const DynIcon = resolveDynamicIcon(iconName);
    return DynIcon ? /* @__PURE__ */ jsx(DynIcon, { size: 16 }) : /* @__PURE__ */ jsx(Settings2, { size: 16 });
  };
  const shouldRenderField = (field) => {
    if (!field.condition) return true;
    const { field: targetField, operator, value } = field.condition;
    const targetValue = localData[targetField];
    return evaluateFieldCondition(operator, targetValue, value);
  };
  const renderTabContent = (tab) => {
    if (tab.specialComponent && componentRegistry[tab.specialComponent]) {
      const Component2 = componentRegistry[tab.specialComponent];
      return /* @__PURE__ */ jsx(
        Component2,
        {
          data: localData,
          onChange: handleChange,
          nodeType: selectedNode.type,
          context: variableContext
        }
      );
    }
    return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-12 gap-6", children: tab.fields.map((field) => {
      if (!shouldRenderField(field)) return null;
      const isWide = field.type === "textarea" || field.type === "object" || field.type === "array" || field.type === "expression";
      return /* @__PURE__ */ jsx("div", { className: isWide ? "md:col-span-12" : "md:col-span-6", children: /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: field,
          value: localData[field.name],
          onChange: handleChange
        }
      ) }, field.name);
    }) });
  };
  const ConfigIcon = config.icon ? AllIcons[config.icon] || Settings2 : Settings2;
  const activeTab = nodeConfig.tabs.find((t) => t.id === activeTabId) || nodeConfig.tabs[0];
  const isFullscreen = (activeTab == null ? void 0 : activeTab.layout) === "fullscreen";
  return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-[100] flex items-center justify-center bg-slate-900/60 backdrop-blur-sm animate-in fade-in duration-200", children: /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-950 fixed inset-4 md:inset-8 rounded-2xl shadow-2xl flex flex-col overflow-hidden border border-slate-200 dark:border-slate-800 animate-in zoom-in-95 duration-200", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-6 py-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950 shrink-0", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
        /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-lg flex items-center justify-center bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-700", style: { color: config.color }, children: /* @__PURE__ */ jsx(ConfigIcon, { size: 20 }) }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsxs("h2", { className: "text-lg font-bold text-slate-900 dark:text-slate-100 flex items-center gap-3", children: [
            config.label,
            /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold px-2 py-0.5 rounded bg-slate-100 dark:bg-slate-800 text-slate-500 border border-slate-200 dark:border-slate-700 uppercase tracking-wider", children: selectedNode.type })
          ] }),
          /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 mt-0.5", children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-slate-400 font-mono", children: [
            "Key: ",
            selectedNode.id
          ] }) })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: toggleViewMode,
            className: `p-2 rounded-lg transition-colors border ${viewMode === "code" ? "bg-teal-50 border-teal-200 text-teal-600 dark:bg-teal-900/20 dark:border-teal-800 dark:text-teal-400" : "bg-white border-slate-200 text-slate-500 hover:bg-slate-50 dark:bg-slate-900 dark:border-slate-800 dark:text-slate-400"}`,
            title: viewMode === "form" ? "Switch to JSON Code" : "Switch to Form View",
            children: viewMode === "form" ? /* @__PURE__ */ jsx(Code, { size: 20 }) : /* @__PURE__ */ jsx(PanelsTopLeft, { size: 20 })
          }
        ),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: onClose,
            className: "p-2 text-slate-400 hover:text-slate-600 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg transition-colors",
            children: /* @__PURE__ */ jsx(X, { size: 20 })
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsx("div", { className: "flex flex-1 overflow-hidden", children: viewMode === "form" ? /* @__PURE__ */ jsxs(Fragment, { children: [
      /* @__PURE__ */ jsxs("div", { className: `
                        bg-slate-50 dark:bg-slate-900/50 border-r border-slate-200 dark:border-slate-800 
                        overflow-y-auto p-3 space-y-1 shrink-0 transition-all duration-300 ease-in-out
                        ${isFullscreen ? "w-16 items-center px-2" : "w-64"}
                    `, children: [
        !isFullscreen && /* @__PURE__ */ jsx("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-2 px-3 mt-2", children: "Configuration" }),
        nodeConfig.tabs.map((tab) => /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: () => setActiveTabId(tab.id),
            title: isFullscreen ? tab.label : void 0,
            className: `w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-all group
                                    ${activeTabId === tab.id ? "bg-white dark:bg-slate-800 text-teal-700 dark:text-teal-400 shadow-sm ring-1 ring-slate-200 dark:ring-slate-700" : "text-slate-600 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-slate-800 hover:text-slate-900"}
                                    ${isFullscreen ? "justify-center px-0" : ""}
                                `,
            children: [
              /* @__PURE__ */ jsx("span", { className: `opacity-70 group-hover:opacity-100 ${activeTabId === tab.id ? "text-teal-600" : ""}`, children: renderIcon(tab.id) }),
              !isFullscreen && tab.label
            ]
          },
          tab.id
        ))
      ] }),
      /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto bg-white dark:bg-slate-950 relative", children: /* @__PURE__ */ jsx("div", { className: `mx-auto h-full flex flex-col ${isFullscreen ? "max-w-none" : "max-w-4xl"}`, children: nodeConfig.tabs.map((tab) => {
        if (tab.id !== activeTabId) return null;
        return /* @__PURE__ */ jsx("div", { className: "animate-in fade-in slide-in-from-bottom-2 duration-300 h-full flex flex-col", children: !tab.specialComponent ? /* @__PURE__ */ jsxs("div", { className: "p-8", children: [
          /* @__PURE__ */ jsxs("div", { className: "mb-6 pb-4 border-b border-slate-100 dark:border-slate-900 shrink-0", children: [
            /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold text-slate-900 dark:text-slate-100 mb-1", children: tab.label }),
            /* @__PURE__ */ jsxs("p", { className: "text-sm text-slate-500", children: [
              "Configure ",
              tab.label.toLowerCase(),
              " settings."
            ] })
          ] }),
          renderTabContent(tab)
        ] }) : /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-0", children: renderTabContent(tab) }) }, tab.id);
      }) }) })
    ] }) : /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col bg-white dark:bg-slate-950 relative", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-2 bg-slate-50 dark:bg-slate-900 border-b border-slate-200 dark:border-slate-800 text-xs text-slate-500 dark:text-slate-400", children: [
        /* @__PURE__ */ jsx("span", { className: "font-mono", children: "JSON Source" }),
        jsonError ? /* @__PURE__ */ jsxs("span", { className: "text-red-500 dark:text-red-400 flex items-center gap-1 font-bold", children: [
          /* @__PURE__ */ jsx(CircleAlert, { size: 12 }),
          " ",
          jsonError
        ] }) : /* @__PURE__ */ jsx("span", { className: "text-emerald-600 dark:text-emerald-500", children: "Valid JSON" })
      ] }),
      /* @__PURE__ */ jsx(
        "textarea",
        {
          value: jsonCode,
          onChange: (e) => {
            setJsonCode(e.target.value);
            try {
              JSON.parse(e.target.value);
              setJsonError(null);
            } catch (_err) {
            }
          },
          className: "flex-1 w-full p-4 bg-white dark:bg-slate-950 text-slate-800 dark:text-slate-300 font-mono text-sm outline-none resize-none",
          spellCheck: false
        }
      )
    ] }) }),
    /* @__PURE__ */ jsxs("div", { className: "px-6 py-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-900 flex justify-end gap-3 shrink-0", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onClose,
          className: "px-5 py-2 text-sm font-medium text-slate-600 hover:text-slate-900 hover:bg-white border border-transparent hover:border-slate-200 rounded-lg transition-all",
          children: "Cancel"
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: handleSave,
          disabled: viewMode === "code" && !!jsonError,
          className: "px-5 py-2 text-sm font-bold text-white bg-teal-600 hover:bg-teal-700 rounded-lg shadow-sm shadow-teal-600/20 transition-all flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",
          children: "Save Configuration"
        }
      )
    ] })
  ] }) });
};
const ToastContext = createContext(null);
const useToast = () => {
  const context = useContext(ToastContext);
  if (!context) throw new Error("useToast must be used within a ToastProvider");
  return context;
};
const ToastProvider = ({ children }) => {
  const [toasts, setToasts] = useState([]);
  const addToast = useCallback(({ type, title, message, duration = 5e3 }) => {
    const id = Math.random().toString(36).substring(2, 9);
    setToasts((prev) => [...prev, { id, type, title, message, duration }]);
    if (duration > 0) {
      setTimeout(() => {
        removeToast(id);
      }, duration);
    }
  }, []);
  const removeToast = useCallback((id) => {
    setToasts((prev) => prev.filter((t) => t.id !== id));
  }, []);
  return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { addToast, removeToast }, children: [
    children,
    /* @__PURE__ */ jsx("div", { className: "fixed bottom-4 right-4 z-[100] flex flex-col gap-2 pointer-events-none", children: toasts.map((toast) => /* @__PURE__ */ jsx(ToastItem, { ...toast, onClose: () => removeToast(toast.id) }, toast.id)) })
  ] });
};
const ToastItem = ({ type, title, message, onClose }) => {
  const icons = {
    success: /* @__PURE__ */ jsx(CircleCheckBig, { size: 18, className: "text-emerald-500" }),
    error: /* @__PURE__ */ jsx(CircleAlert, { size: 18, className: "text-red-500" }),
    warning: /* @__PURE__ */ jsx(TriangleAlert, { size: 18, className: "text-amber-500" }),
    info: /* @__PURE__ */ jsx(Info, { size: 18, className: "text-blue-500" })
  };
  const bgColors = {
    success: "bg-white border-emerald-100 dark:bg-slate-900 dark:border-emerald-900",
    error: "bg-white border-red-100 dark:bg-slate-900 dark:border-red-900",
    warning: "bg-white border-amber-100 dark:bg-slate-900 dark:border-amber-900",
    info: "bg-white border-blue-100 dark:bg-slate-900 dark:border-blue-900"
  };
  return /* @__PURE__ */ jsxs("div", { className: `pointer-events-auto flex items-start gap-3 p-4 rounded-lg border shadow-lg w-80 animate-in slide-in-from-right-full duration-300 ${bgColors[type]}`, children: [
    /* @__PURE__ */ jsx("div", { className: "mt-0.5", children: icons[type] }),
    /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
      /* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-slate-900 dark:text-slate-100", children: title }),
      message && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400 mt-1", children: message })
    ] }),
    /* @__PURE__ */ jsx("button", { onClick: onClose, className: "text-slate-400 hover:text-slate-600 dark:hover:text-slate-200 transition-colors", children: /* @__PURE__ */ jsx(X, { size: 14 }) })
  ] });
};
const DeploymentModal = ({ isOpen, onClose, projectName }) => {
  const { addToast } = useToast();
  const [environment, setEnvironment] = useState("dev");
  const [versionType, setVersionType] = useState("minor");
  const [isDeploying, setIsDeploying] = useState(false);
  const [step, setStep] = useState("config");
  if (!isOpen) return null;
  const handleDeploy = () => {
    setIsDeploying(true);
    setStep("deploying");
    setTimeout(() => {
      setIsDeploying(false);
      setStep("success");
      addToast({ type: "success", title: "Deployment Successful", message: `Deployed to ${environment.toUpperCase()}` });
    }, 2500);
  };
  const handleClose = () => {
    setStep("config");
    setIsDeploying(false);
    onClose();
  };
  return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-[110] flex items-center justify-center bg-slate-900/60 backdrop-blur-sm p-4 animate-in fade-in duration-200", children: /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-950 w-full max-w-lg rounded-2xl shadow-2xl overflow-hidden border border-slate-200 dark:border-slate-800 animate-in zoom-in-95 duration-200", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-6 py-4 border-b border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-900/50", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
        /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-full bg-teal-100 dark:bg-teal-900/30 text-teal-600 flex items-center justify-center", children: /* @__PURE__ */ jsx(Rocket, { size: 20 }) }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold text-slate-900 dark:text-slate-100", children: "Deploy Workflow" }),
          /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500", children: projectName })
        ] })
      ] }),
      !isDeploying && step !== "success" && /* @__PURE__ */ jsx("button", { onClick: handleClose, className: "text-slate-400 hover:text-slate-600", children: /* @__PURE__ */ jsx(X, { size: 20 }) })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "p-6", children: [
      step === "config" && /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
        /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
          /* @__PURE__ */ jsx("label", { className: "text-sm font-bold text-slate-700 dark:text-slate-300", children: "Target Environment" }),
          /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-3", children: ["dev", "staging", "prod"].map((env) => /* @__PURE__ */ jsxs(
            "button",
            {
              onClick: () => setEnvironment(env),
              className: `
                                        flex flex-col items-center justify-center p-3 rounded-xl border-2 transition-all
                                        ${environment === env ? "border-teal-500 bg-teal-50 dark:bg-teal-900/20 text-teal-700 dark:text-teal-300" : "border-slate-200 dark:border-slate-800 hover:border-slate-300 text-slate-500"}
                                    `,
              children: [
                /* @__PURE__ */ jsx("span", { className: "uppercase text-xs font-bold mb-1", children: env }),
                env === "prod" ? /* @__PURE__ */ jsx(Shield, { size: 16 }) : /* @__PURE__ */ jsx(Server, { size: 16 })
              ]
            },
            env
          )) })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
          /* @__PURE__ */ jsx("label", { className: "text-sm font-bold text-slate-700 dark:text-slate-300", children: "Release Strategy" }),
          /* @__PURE__ */ jsxs(
            "select",
            {
              value: versionType,
              onChange: (e) => setVersionType(e.target.value),
              className: "w-full px-3 py-2 border rounded-lg bg-white dark:bg-slate-900 border-slate-300 dark:border-slate-700 text-sm focus:outline-none focus:ring-2 focus:ring-teal-500",
              children: [
                /* @__PURE__ */ jsx("option", { value: "patch", children: "Patch Release (v1.0.x) - Bug fixes" }),
                /* @__PURE__ */ jsx("option", { value: "minor", children: "Minor Release (v1.x.0) - New features" }),
                /* @__PURE__ */ jsx("option", { value: "major", children: "Major Release (vx.0.0) - Breaking changes" })
              ]
            }
          )
        ] }),
        environment === "prod" && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-900 rounded-lg flex gap-3 text-amber-800 dark:text-amber-400", children: [
          /* @__PURE__ */ jsx(TriangleAlert, { size: 20, className: "shrink-0" }),
          /* @__PURE__ */ jsxs("div", { className: "text-xs", children: [
            /* @__PURE__ */ jsx("strong", { children: "Production Warning:" }),
            " This will immediately affect live traffic. Ensure all tests have passed in Staging."
          ] })
        ] })
      ] }),
      step === "deploying" && /* @__PURE__ */ jsxs("div", { className: "py-8 flex flex-col items-center justify-center text-center space-y-4", children: [
        /* @__PURE__ */ jsxs("div", { className: "relative w-16 h-16", children: [
          /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-full border-4 border-slate-200 dark:border-slate-800" }),
          /* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-full border-4 border-teal-500 border-t-transparent animate-spin" })
        ] }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold text-slate-800 dark:text-slate-200", children: "Deploying..." }),
          /* @__PURE__ */ jsxs("p", { className: "text-sm text-slate-500", children: [
            "Packaging and uploading to ",
            environment.toUpperCase()
          ] })
        ] }),
        /* @__PURE__ */ jsx("div", { className: "w-full max-w-xs bg-slate-100 dark:bg-slate-800 rounded-full h-2 mt-4 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "h-full bg-teal-500 animate-progress-indeterminate" }) })
      ] }),
      step === "success" && /* @__PURE__ */ jsxs("div", { className: "py-6 flex flex-col items-center justify-center text-center space-y-4 animate-in zoom-in-50 duration-300", children: [
        /* @__PURE__ */ jsx("div", { className: "w-20 h-20 bg-emerald-100 dark:bg-emerald-900/30 text-emerald-600 rounded-full flex items-center justify-center mb-2", children: /* @__PURE__ */ jsx(CircleCheckBig, { size: 40 }) }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold text-slate-900 dark:text-white", children: "Deployment Complete!" }),
          /* @__PURE__ */ jsxs("p", { className: "text-slate-500 mt-1", children: [
            "Version ",
            /* @__PURE__ */ jsx("strong", { children: "v1.2.0" }),
            " is now live on ",
            /* @__PURE__ */ jsx("strong", { className: "uppercase", children: environment }),
            "."
          ] })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-4 text-xs text-slate-400 bg-slate-50 dark:bg-slate-900 px-3 py-1.5 rounded-full border border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsx(Activity, { size: 12 }),
          /* @__PURE__ */ jsx("span", { children: "Health Check: 100% OK" })
        ] })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "px-6 py-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-900 flex justify-end gap-3", children: [
      step === "config" && /* @__PURE__ */ jsxs(Fragment, { children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: handleClose,
            className: "px-4 py-2 text-sm font-medium text-slate-600 hover:text-slate-900 transition-colors",
            children: "Cancel"
          }
        ),
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: handleDeploy,
            className: "px-6 py-2 text-sm font-bold text-white bg-teal-600 hover:bg-teal-700 rounded-lg shadow-sm shadow-teal-600/20 transition-all flex items-center gap-2",
            children: [
              /* @__PURE__ */ jsx(Rocket, { size: 16 }),
              " Deploy Now"
            ]
          }
        )
      ] }),
      step === "success" && /* @__PURE__ */ jsx(
        "button",
        {
          onClick: handleClose,
          className: "px-6 py-2 text-sm font-bold text-white bg-slate-900 hover:bg-slate-800 rounded-lg transition-all",
          children: "Close"
        }
      )
    ] })
  ] }) });
};
class Hooks {
  /**
   * @callback HookCallback
   * @this {*|Jsep} this
   * @param {Jsep} env
   * @returns: void
   */
  /**
   * Adds the given callback to the list of callbacks for the given hook.
   *
   * The callback will be invoked when the hook it is registered for is run.
   *
   * One callback function can be registered to multiple hooks and the same hook multiple times.
   *
   * @param {string|object} name The name of the hook, or an object of callbacks keyed by name
   * @param {HookCallback|boolean} callback The callback function which is given environment variables.
   * @param {?boolean} [first=false] Will add the hook to the top of the list (defaults to the bottom)
   * @public
   */
  add(name, callback, first) {
    if (typeof arguments[0] != "string") {
      for (let name2 in arguments[0]) {
        this.add(name2, arguments[0][name2], arguments[1]);
      }
    } else {
      (Array.isArray(name) ? name : [name]).forEach(function(name2) {
        this[name2] = this[name2] || [];
        if (callback) {
          this[name2][first ? "unshift" : "push"](callback);
        }
      }, this);
    }
  }
  /**
   * Runs a hook invoking all registered callbacks with the given environment variables.
   *
   * Callbacks will be invoked synchronously and in the order in which they were registered.
   *
   * @param {string} name The name of the hook.
   * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.
   * @public
   */
  run(name, env) {
    this[name] = this[name] || [];
    this[name].forEach(function(callback) {
      callback.call(env && env.context ? env.context : env, env);
    });
  }
}
class Plugins {
  constructor(jsep2) {
    this.jsep = jsep2;
    this.registered = {};
  }
  /**
   * @callback PluginSetup
   * @this {Jsep} jsep
   * @returns: void
   */
  /**
   * Adds the given plugin(s) to the registry
   *
   * @param {object} plugins
   * @param {string} plugins.name The name of the plugin
   * @param {PluginSetup} plugins.init The init function
   * @public
   */
  register() {
    for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {
      plugins[_key] = arguments[_key];
    }
    plugins.forEach((plugin2) => {
      if (typeof plugin2 !== "object" || !plugin2.name || !plugin2.init) {
        throw new Error("Invalid JSEP plugin format");
      }
      if (this.registered[plugin2.name]) {
        return;
      }
      plugin2.init(this.jsep);
      this.registered[plugin2.name] = plugin2;
    });
  }
}
class Jsep {
  /**
   * @returns {string}
   */
  static get version() {
    return "1.4.0";
  }
  /**
   * @returns {string}
   */
  static toString() {
    return "JavaScript Expression Parser (JSEP) v" + Jsep.version;
  }
  // ==================== CONFIG ================================
  /**
   * @method addUnaryOp
   * @param {string} op_name The name of the unary op to add
   * @returns {Jsep}
   */
  static addUnaryOp(op_name) {
    Jsep.max_unop_len = Math.max(op_name.length, Jsep.max_unop_len);
    Jsep.unary_ops[op_name] = 1;
    return Jsep;
  }
  /**
   * @method jsep.addBinaryOp
   * @param {string} op_name The name of the binary op to add
   * @param {number} precedence The precedence of the binary op (can be a float). Higher number = higher precedence
   * @param {boolean} [isRightAssociative=false] whether operator is right-associative
   * @returns {Jsep}
   */
  static addBinaryOp(op_name, precedence, isRightAssociative) {
    Jsep.max_binop_len = Math.max(op_name.length, Jsep.max_binop_len);
    Jsep.binary_ops[op_name] = precedence;
    if (isRightAssociative) {
      Jsep.right_associative.add(op_name);
    } else {
      Jsep.right_associative.delete(op_name);
    }
    return Jsep;
  }
  /**
   * @method addIdentifierChar
   * @param {string} char The additional character to treat as a valid part of an identifier
   * @returns {Jsep}
   */
  static addIdentifierChar(char) {
    Jsep.additional_identifier_chars.add(char);
    return Jsep;
  }
  /**
   * @method addLiteral
   * @param {string} literal_name The name of the literal to add
   * @param {*} literal_value The value of the literal
   * @returns {Jsep}
   */
  static addLiteral(literal_name, literal_value) {
    Jsep.literals[literal_name] = literal_value;
    return Jsep;
  }
  /**
   * @method removeUnaryOp
   * @param {string} op_name The name of the unary op to remove
   * @returns {Jsep}
   */
  static removeUnaryOp(op_name) {
    delete Jsep.unary_ops[op_name];
    if (op_name.length === Jsep.max_unop_len) {
      Jsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);
    }
    return Jsep;
  }
  /**
   * @method removeAllUnaryOps
   * @returns {Jsep}
   */
  static removeAllUnaryOps() {
    Jsep.unary_ops = {};
    Jsep.max_unop_len = 0;
    return Jsep;
  }
  /**
   * @method removeIdentifierChar
   * @param {string} char The additional character to stop treating as a valid part of an identifier
   * @returns {Jsep}
   */
  static removeIdentifierChar(char) {
    Jsep.additional_identifier_chars.delete(char);
    return Jsep;
  }
  /**
   * @method removeBinaryOp
   * @param {string} op_name The name of the binary op to remove
   * @returns {Jsep}
   */
  static removeBinaryOp(op_name) {
    delete Jsep.binary_ops[op_name];
    if (op_name.length === Jsep.max_binop_len) {
      Jsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);
    }
    Jsep.right_associative.delete(op_name);
    return Jsep;
  }
  /**
   * @method removeAllBinaryOps
   * @returns {Jsep}
   */
  static removeAllBinaryOps() {
    Jsep.binary_ops = {};
    Jsep.max_binop_len = 0;
    return Jsep;
  }
  /**
   * @method removeLiteral
   * @param {string} literal_name The name of the literal to remove
   * @returns {Jsep}
   */
  static removeLiteral(literal_name) {
    delete Jsep.literals[literal_name];
    return Jsep;
  }
  /**
   * @method removeAllLiterals
   * @returns {Jsep}
   */
  static removeAllLiterals() {
    Jsep.literals = {};
    return Jsep;
  }
  // ==================== END CONFIG ============================
  /**
   * @returns {string}
   */
  get char() {
    return this.expr.charAt(this.index);
  }
  /**
   * @returns {number}
   */
  get code() {
    return this.expr.charCodeAt(this.index);
  }
  /**
   * @param {string} expr a string with the passed in express
   * @returns Jsep
   */
  constructor(expr) {
    this.expr = expr;
    this.index = 0;
  }
  /**
   * static top-level parser
   * @returns {jsep.Expression}
   */
  static parse(expr) {
    return new Jsep(expr).parse();
  }
  /**
   * Get the longest key length of any object
   * @param {object} obj
   * @returns {number}
   */
  static getMaxKeyLen(obj) {
    return Math.max(0, ...Object.keys(obj).map((k) => k.length));
  }
  /**
   * `ch` is a character code in the next three functions
   * @param {number} ch
   * @returns {boolean}
   */
  static isDecimalDigit(ch) {
    return ch >= 48 && ch <= 57;
  }
  /**
   * Returns the precedence of a binary operator or `0` if it isn't a binary operator. Can be float.
   * @param {string} op_val
   * @returns {number}
   */
  static binaryPrecedence(op_val) {
    return Jsep.binary_ops[op_val] || 0;
  }
  /**
   * Looks for start of identifier
   * @param {number} ch
   * @returns {boolean}
   */
  static isIdentifierStart(ch) {
    return ch >= 65 && ch <= 90 || // A...Z
    ch >= 97 && ch <= 122 || // a...z
    ch >= 128 && !Jsep.binary_ops[String.fromCharCode(ch)] || // any non-ASCII that is not an operator
    Jsep.additional_identifier_chars.has(String.fromCharCode(ch));
  }
  /**
   * @param {number} ch
   * @returns {boolean}
   */
  static isIdentifierPart(ch) {
    return Jsep.isIdentifierStart(ch) || Jsep.isDecimalDigit(ch);
  }
  /**
   * throw error at index of the expression
   * @param {string} message
   * @throws
   */
  throwError(message) {
    const error = new Error(message + " at character " + this.index);
    error.index = this.index;
    error.description = message;
    throw error;
  }
  /**
   * Run a given hook
   * @param {string} name
   * @param {jsep.Expression|false} [node]
   * @returns {?jsep.Expression}
   */
  runHook(name, node) {
    if (Jsep.hooks[name]) {
      const env = {
        context: this,
        node
      };
      Jsep.hooks.run(name, env);
      return env.node;
    }
    return node;
  }
  /**
   * Runs a given hook until one returns a node
   * @param {string} name
   * @returns {?jsep.Expression}
   */
  searchHook(name) {
    if (Jsep.hooks[name]) {
      const env = {
        context: this
      };
      Jsep.hooks[name].find(function(callback) {
        callback.call(env.context, env);
        return env.node;
      });
      return env.node;
    }
  }
  /**
   * Push `index` up to the next non-space character
   */
  gobbleSpaces() {
    let ch = this.code;
    while (ch === Jsep.SPACE_CODE || ch === Jsep.TAB_CODE || ch === Jsep.LF_CODE || ch === Jsep.CR_CODE) {
      ch = this.expr.charCodeAt(++this.index);
    }
    this.runHook("gobble-spaces");
  }
  /**
   * Top-level method to parse all expressions and returns compound or single node
   * @returns {jsep.Expression}
   */
  parse() {
    this.runHook("before-all");
    const nodes = this.gobbleExpressions();
    const node = nodes.length === 1 ? nodes[0] : {
      type: Jsep.COMPOUND,
      body: nodes
    };
    return this.runHook("after-all", node);
  }
  /**
   * top-level parser (but can be reused within as well)
   * @param {number} [untilICode]
   * @returns {jsep.Expression[]}
   */
  gobbleExpressions(untilICode) {
    let nodes = [], ch_i, node;
    while (this.index < this.expr.length) {
      ch_i = this.code;
      if (ch_i === Jsep.SEMCOL_CODE || ch_i === Jsep.COMMA_CODE) {
        this.index++;
      } else {
        if (node = this.gobbleExpression()) {
          nodes.push(node);
        } else if (this.index < this.expr.length) {
          if (ch_i === untilICode) {
            break;
          }
          this.throwError('Unexpected "' + this.char + '"');
        }
      }
    }
    return nodes;
  }
  /**
   * The main parsing function.
   * @returns {?jsep.Expression}
   */
  gobbleExpression() {
    const node = this.searchHook("gobble-expression") || this.gobbleBinaryExpression();
    this.gobbleSpaces();
    return this.runHook("after-expression", node);
  }
  /**
   * Search for the operation portion of the string (e.g. `+`, `===`)
   * Start by taking the longest possible binary operations (3 characters: `===`, `!==`, `>>>`)
   * and move down from 3 to 2 to 1 character until a matching binary operation is found
   * then, return that binary operation
   * @returns {string|boolean}
   */
  gobbleBinaryOp() {
    this.gobbleSpaces();
    let to_check = this.expr.substr(this.index, Jsep.max_binop_len);
    let tc_len = to_check.length;
    while (tc_len > 0) {
      if (Jsep.binary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {
        this.index += tc_len;
        return to_check;
      }
      to_check = to_check.substr(0, --tc_len);
    }
    return false;
  }
  /**
   * This function is responsible for gobbling an individual expression,
   * e.g. `1`, `1+2`, `a+(b*2)-Math.sqrt(2)`
   * @returns {?jsep.BinaryExpression}
   */
  gobbleBinaryExpression() {
    let node, biop, prec, stack, biop_info, left, right, i, cur_biop;
    left = this.gobbleToken();
    if (!left) {
      return left;
    }
    biop = this.gobbleBinaryOp();
    if (!biop) {
      return left;
    }
    biop_info = {
      value: biop,
      prec: Jsep.binaryPrecedence(biop),
      right_a: Jsep.right_associative.has(biop)
    };
    right = this.gobbleToken();
    if (!right) {
      this.throwError("Expected expression after " + biop);
    }
    stack = [left, biop_info, right];
    while (biop = this.gobbleBinaryOp()) {
      prec = Jsep.binaryPrecedence(biop);
      if (prec === 0) {
        this.index -= biop.length;
        break;
      }
      biop_info = {
        value: biop,
        prec,
        right_a: Jsep.right_associative.has(biop)
      };
      cur_biop = biop;
      const comparePrev = (prev) => biop_info.right_a && prev.right_a ? prec > prev.prec : prec <= prev.prec;
      while (stack.length > 2 && comparePrev(stack[stack.length - 2])) {
        right = stack.pop();
        biop = stack.pop().value;
        left = stack.pop();
        node = {
          type: Jsep.BINARY_EXP,
          operator: biop,
          left,
          right
        };
        stack.push(node);
      }
      node = this.gobbleToken();
      if (!node) {
        this.throwError("Expected expression after " + cur_biop);
      }
      stack.push(biop_info, node);
    }
    i = stack.length - 1;
    node = stack[i];
    while (i > 1) {
      node = {
        type: Jsep.BINARY_EXP,
        operator: stack[i - 1].value,
        left: stack[i - 2],
        right: node
      };
      i -= 2;
    }
    return node;
  }
  /**
   * An individual part of a binary expression:
   * e.g. `foo.bar(baz)`, `1`, `"abc"`, `(a % 2)` (because it's in parenthesis)
   * @returns {boolean|jsep.Expression}
   */
  gobbleToken() {
    let ch, to_check, tc_len, node;
    this.gobbleSpaces();
    node = this.searchHook("gobble-token");
    if (node) {
      return this.runHook("after-token", node);
    }
    ch = this.code;
    if (Jsep.isDecimalDigit(ch) || ch === Jsep.PERIOD_CODE) {
      return this.gobbleNumericLiteral();
    }
    if (ch === Jsep.SQUOTE_CODE || ch === Jsep.DQUOTE_CODE) {
      node = this.gobbleStringLiteral();
    } else if (ch === Jsep.OBRACK_CODE) {
      node = this.gobbleArray();
    } else {
      to_check = this.expr.substr(this.index, Jsep.max_unop_len);
      tc_len = to_check.length;
      while (tc_len > 0) {
        if (Jsep.unary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {
          this.index += tc_len;
          const argument = this.gobbleToken();
          if (!argument) {
            this.throwError("missing unaryOp argument");
          }
          return this.runHook("after-token", {
            type: Jsep.UNARY_EXP,
            operator: to_check,
            argument,
            prefix: true
          });
        }
        to_check = to_check.substr(0, --tc_len);
      }
      if (Jsep.isIdentifierStart(ch)) {
        node = this.gobbleIdentifier();
        if (Jsep.literals.hasOwnProperty(node.name)) {
          node = {
            type: Jsep.LITERAL,
            value: Jsep.literals[node.name],
            raw: node.name
          };
        } else if (node.name === Jsep.this_str) {
          node = {
            type: Jsep.THIS_EXP
          };
        }
      } else if (ch === Jsep.OPAREN_CODE) {
        node = this.gobbleGroup();
      }
    }
    if (!node) {
      return this.runHook("after-token", false);
    }
    node = this.gobbleTokenProperty(node);
    return this.runHook("after-token", node);
  }
  /**
   * Gobble properties of of identifiers/strings/arrays/groups.
   * e.g. `foo`, `bar.baz`, `foo['bar'].baz`
   * It also gobbles function calls:
   * e.g. `Math.acos(obj.angle)`
   * @param {jsep.Expression} node
   * @returns {jsep.Expression}
   */
  gobbleTokenProperty(node) {
    this.gobbleSpaces();
    let ch = this.code;
    while (ch === Jsep.PERIOD_CODE || ch === Jsep.OBRACK_CODE || ch === Jsep.OPAREN_CODE || ch === Jsep.QUMARK_CODE) {
      let optional;
      if (ch === Jsep.QUMARK_CODE) {
        if (this.expr.charCodeAt(this.index + 1) !== Jsep.PERIOD_CODE) {
          break;
        }
        optional = true;
        this.index += 2;
        this.gobbleSpaces();
        ch = this.code;
      }
      this.index++;
      if (ch === Jsep.OBRACK_CODE) {
        node = {
          type: Jsep.MEMBER_EXP,
          computed: true,
          object: node,
          property: this.gobbleExpression()
        };
        if (!node.property) {
          this.throwError('Unexpected "' + this.char + '"');
        }
        this.gobbleSpaces();
        ch = this.code;
        if (ch !== Jsep.CBRACK_CODE) {
          this.throwError("Unclosed [");
        }
        this.index++;
      } else if (ch === Jsep.OPAREN_CODE) {
        node = {
          type: Jsep.CALL_EXP,
          "arguments": this.gobbleArguments(Jsep.CPAREN_CODE),
          callee: node
        };
      } else if (ch === Jsep.PERIOD_CODE || optional) {
        if (optional) {
          this.index--;
        }
        this.gobbleSpaces();
        node = {
          type: Jsep.MEMBER_EXP,
          computed: false,
          object: node,
          property: this.gobbleIdentifier()
        };
      }
      if (optional) {
        node.optional = true;
      }
      this.gobbleSpaces();
      ch = this.code;
    }
    return node;
  }
  /**
   * Parse simple numeric literals: `12`, `3.4`, `.5`. Do this by using a string to
   * keep track of everything in the numeric literal and then calling `parseFloat` on that string
   * @returns {jsep.Literal}
   */
  gobbleNumericLiteral() {
    let number = "", ch, chCode;
    while (Jsep.isDecimalDigit(this.code)) {
      number += this.expr.charAt(this.index++);
    }
    if (this.code === Jsep.PERIOD_CODE) {
      number += this.expr.charAt(this.index++);
      while (Jsep.isDecimalDigit(this.code)) {
        number += this.expr.charAt(this.index++);
      }
    }
    ch = this.char;
    if (ch === "e" || ch === "E") {
      number += this.expr.charAt(this.index++);
      ch = this.char;
      if (ch === "+" || ch === "-") {
        number += this.expr.charAt(this.index++);
      }
      while (Jsep.isDecimalDigit(this.code)) {
        number += this.expr.charAt(this.index++);
      }
      if (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1))) {
        this.throwError("Expected exponent (" + number + this.char + ")");
      }
    }
    chCode = this.code;
    if (Jsep.isIdentifierStart(chCode)) {
      this.throwError("Variable names cannot start with a number (" + number + this.char + ")");
    } else if (chCode === Jsep.PERIOD_CODE || number.length === 1 && number.charCodeAt(0) === Jsep.PERIOD_CODE) {
      this.throwError("Unexpected period");
    }
    return {
      type: Jsep.LITERAL,
      value: parseFloat(number),
      raw: number
    };
  }
  /**
   * Parses a string literal, staring with single or double quotes with basic support for escape codes
   * e.g. `"hello world"`, `'this is\nJSEP'`
   * @returns {jsep.Literal}
   */
  gobbleStringLiteral() {
    let str = "";
    const startIndex = this.index;
    const quote = this.expr.charAt(this.index++);
    let closed = false;
    while (this.index < this.expr.length) {
      let ch = this.expr.charAt(this.index++);
      if (ch === quote) {
        closed = true;
        break;
      } else if (ch === "\\") {
        ch = this.expr.charAt(this.index++);
        switch (ch) {
          case "n":
            str += "\n";
            break;
          case "r":
            str += "\r";
            break;
          case "t":
            str += "	";
            break;
          case "b":
            str += "\b";
            break;
          case "f":
            str += "\f";
            break;
          case "v":
            str += "\v";
            break;
          default:
            str += ch;
        }
      } else {
        str += ch;
      }
    }
    if (!closed) {
      this.throwError('Unclosed quote after "' + str + '"');
    }
    return {
      type: Jsep.LITERAL,
      value: str,
      raw: this.expr.substring(startIndex, this.index)
    };
  }
  /**
   * Gobbles only identifiers
   * e.g.: `foo`, `_value`, `$x1`
   * Also, this function checks if that identifier is a literal:
   * (e.g. `true`, `false`, `null`) or `this`
   * @returns {jsep.Identifier}
   */
  gobbleIdentifier() {
    let ch = this.code, start = this.index;
    if (Jsep.isIdentifierStart(ch)) {
      this.index++;
    } else {
      this.throwError("Unexpected " + this.char);
    }
    while (this.index < this.expr.length) {
      ch = this.code;
      if (Jsep.isIdentifierPart(ch)) {
        this.index++;
      } else {
        break;
      }
    }
    return {
      type: Jsep.IDENTIFIER,
      name: this.expr.slice(start, this.index)
    };
  }
  /**
   * Gobbles a list of arguments within the context of a function call
   * or array literal. This function also assumes that the opening character
   * `(` or `[` has already been gobbled, and gobbles expressions and commas
   * until the terminator character `)` or `]` is encountered.
   * e.g. `foo(bar, baz)`, `my_func()`, or `[bar, baz]`
   * @param {number} termination
   * @returns {jsep.Expression[]}
   */
  gobbleArguments(termination) {
    const args = [];
    let closed = false;
    let separator_count = 0;
    while (this.index < this.expr.length) {
      this.gobbleSpaces();
      let ch_i = this.code;
      if (ch_i === termination) {
        closed = true;
        this.index++;
        if (termination === Jsep.CPAREN_CODE && separator_count && separator_count >= args.length) {
          this.throwError("Unexpected token " + String.fromCharCode(termination));
        }
        break;
      } else if (ch_i === Jsep.COMMA_CODE) {
        this.index++;
        separator_count++;
        if (separator_count !== args.length) {
          if (termination === Jsep.CPAREN_CODE) {
            this.throwError("Unexpected token ,");
          } else if (termination === Jsep.CBRACK_CODE) {
            for (let arg = args.length; arg < separator_count; arg++) {
              args.push(null);
            }
          }
        }
      } else if (args.length !== separator_count && separator_count !== 0) {
        this.throwError("Expected comma");
      } else {
        const node = this.gobbleExpression();
        if (!node || node.type === Jsep.COMPOUND) {
          this.throwError("Expected comma");
        }
        args.push(node);
      }
    }
    if (!closed) {
      this.throwError("Expected " + String.fromCharCode(termination));
    }
    return args;
  }
  /**
   * Responsible for parsing a group of things within parentheses `()`
   * that have no identifier in front (so not a function call)
   * This function assumes that it needs to gobble the opening parenthesis
   * and then tries to gobble everything within that parenthesis, assuming
   * that the next thing it should see is the close parenthesis. If not,
   * then the expression probably doesn't have a `)`
   * @returns {boolean|jsep.Expression}
   */
  gobbleGroup() {
    this.index++;
    let nodes = this.gobbleExpressions(Jsep.CPAREN_CODE);
    if (this.code === Jsep.CPAREN_CODE) {
      this.index++;
      if (nodes.length === 1) {
        return nodes[0];
      } else if (!nodes.length) {
        return false;
      } else {
        return {
          type: Jsep.SEQUENCE_EXP,
          expressions: nodes
        };
      }
    } else {
      this.throwError("Unclosed (");
    }
  }
  /**
   * Responsible for parsing Array literals `[1, 2, 3]`
   * This function assumes that it needs to gobble the opening bracket
   * and then tries to gobble the expressions as arguments.
   * @returns {jsep.ArrayExpression}
   */
  gobbleArray() {
    this.index++;
    return {
      type: Jsep.ARRAY_EXP,
      elements: this.gobbleArguments(Jsep.CBRACK_CODE)
    };
  }
}
const hooks = new Hooks();
Object.assign(Jsep, {
  hooks,
  plugins: new Plugins(Jsep),
  // Node Types
  // ----------
  // This is the full set of types that any JSEP node can be.
  // Store them here to save space when minified
  COMPOUND: "Compound",
  SEQUENCE_EXP: "SequenceExpression",
  IDENTIFIER: "Identifier",
  MEMBER_EXP: "MemberExpression",
  LITERAL: "Literal",
  THIS_EXP: "ThisExpression",
  CALL_EXP: "CallExpression",
  UNARY_EXP: "UnaryExpression",
  BINARY_EXP: "BinaryExpression",
  ARRAY_EXP: "ArrayExpression",
  TAB_CODE: 9,
  LF_CODE: 10,
  CR_CODE: 13,
  SPACE_CODE: 32,
  PERIOD_CODE: 46,
  // '.'
  COMMA_CODE: 44,
  // ','
  SQUOTE_CODE: 39,
  // single quote
  DQUOTE_CODE: 34,
  // double quotes
  OPAREN_CODE: 40,
  // (
  CPAREN_CODE: 41,
  // )
  OBRACK_CODE: 91,
  // [
  CBRACK_CODE: 93,
  // ]
  QUMARK_CODE: 63,
  // ?
  SEMCOL_CODE: 59,
  // ;
  COLON_CODE: 58,
  // :
  // Operations
  // ----------
  // Use a quickly-accessible map to store all of the unary operators
  // Values are set to `1` (it really doesn't matter)
  unary_ops: {
    "-": 1,
    "!": 1,
    "~": 1,
    "+": 1
  },
  // Also use a map for the binary operations but set their values to their
  // binary precedence for quick reference (higher number = higher precedence)
  // see [Order of operations](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)
  binary_ops: {
    "||": 1,
    "??": 1,
    "&&": 2,
    "|": 3,
    "^": 4,
    "&": 5,
    "==": 6,
    "!=": 6,
    "===": 6,
    "!==": 6,
    "<": 7,
    ">": 7,
    "<=": 7,
    ">=": 7,
    "<<": 8,
    ">>": 8,
    ">>>": 8,
    "+": 9,
    "-": 9,
    "*": 10,
    "/": 10,
    "%": 10,
    "**": 11
  },
  // sets specific binary_ops as right-associative
  right_associative: /* @__PURE__ */ new Set(["**"]),
  // Additional valid identifier chars, apart from a-z, A-Z and 0-9 (except on the starting char)
  additional_identifier_chars: /* @__PURE__ */ new Set(["$", "_"]),
  // Literals
  // ----------
  // Store the values to return for the various literals we may encounter
  literals: {
    "true": true,
    "false": false,
    "null": null
  },
  // Except for `this`, which is special. This could be changed to something like `'self'` as well
  this_str: "this"
});
Jsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);
Jsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);
const jsep = (expr) => new Jsep(expr).parse();
const stdClassProps = Object.getOwnPropertyNames(class Test {
});
Object.getOwnPropertyNames(Jsep).filter((prop) => !stdClassProps.includes(prop) && jsep[prop] === void 0).forEach((m) => {
  jsep[m] = Jsep[m];
});
jsep.Jsep = Jsep;
const CONDITIONAL_EXP = "ConditionalExpression";
var ternary = {
  name: "ternary",
  init(jsep2) {
    jsep2.hooks.add("after-expression", function gobbleTernary(env) {
      if (env.node && this.code === jsep2.QUMARK_CODE) {
        this.index++;
        const test = env.node;
        const consequent = this.gobbleExpression();
        if (!consequent) {
          this.throwError("Expected expression");
        }
        this.gobbleSpaces();
        if (this.code === jsep2.COLON_CODE) {
          this.index++;
          const alternate = this.gobbleExpression();
          if (!alternate) {
            this.throwError("Expected expression");
          }
          env.node = {
            type: CONDITIONAL_EXP,
            test,
            consequent,
            alternate
          };
          if (test.operator && jsep2.binary_ops[test.operator] <= 0.9) {
            let newTest = test;
            while (newTest.right.operator && jsep2.binary_ops[newTest.right.operator] <= 0.9) {
              newTest = newTest.right;
            }
            env.node.test = newTest.right;
            newTest.right = env.node;
            env.node = test;
          }
        } else {
          this.throwError("Expected :");
        }
      }
    });
  }
};
jsep.plugins.register(ternary);
const FSLASH_CODE = 47;
const BSLASH_CODE = 92;
var index = {
  name: "regex",
  init(jsep2) {
    jsep2.hooks.add("gobble-token", function gobbleRegexLiteral(env) {
      if (this.code === FSLASH_CODE) {
        const patternIndex = ++this.index;
        let inCharSet = false;
        while (this.index < this.expr.length) {
          if (this.code === FSLASH_CODE && !inCharSet) {
            const pattern = this.expr.slice(patternIndex, this.index);
            let flags = "";
            while (++this.index < this.expr.length) {
              const code = this.code;
              if (code >= 97 && code <= 122 || code >= 65 && code <= 90 || code >= 48 && code <= 57) {
                flags += this.char;
              } else {
                break;
              }
            }
            let value;
            try {
              value = new RegExp(pattern, flags);
            } catch (e) {
              this.throwError(e.message);
            }
            env.node = {
              type: jsep2.LITERAL,
              value,
              raw: this.expr.slice(patternIndex - 1, this.index)
            };
            env.node = this.gobbleTokenProperty(env.node);
            return env.node;
          }
          if (this.code === jsep2.OBRACK_CODE) {
            inCharSet = true;
          } else if (inCharSet && this.code === jsep2.CBRACK_CODE) {
            inCharSet = false;
          }
          this.index += this.code === BSLASH_CODE ? 2 : 1;
        }
        this.throwError("Unclosed Regex");
      }
    });
  }
};
const PLUS_CODE = 43;
const MINUS_CODE = 45;
const plugin = {
  name: "assignment",
  assignmentOperators: /* @__PURE__ */ new Set(["=", "*=", "**=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "||=", "&&=", "??="]),
  updateOperators: [PLUS_CODE, MINUS_CODE],
  assignmentPrecedence: 0.9,
  init(jsep2) {
    const updateNodeTypes = [jsep2.IDENTIFIER, jsep2.MEMBER_EXP];
    plugin.assignmentOperators.forEach((op) => jsep2.addBinaryOp(op, plugin.assignmentPrecedence, true));
    jsep2.hooks.add("gobble-token", function gobbleUpdatePrefix(env) {
      const code = this.code;
      if (plugin.updateOperators.some((c) => c === code && c === this.expr.charCodeAt(this.index + 1))) {
        this.index += 2;
        env.node = {
          type: "UpdateExpression",
          operator: code === PLUS_CODE ? "++" : "--",
          argument: this.gobbleTokenProperty(this.gobbleIdentifier()),
          prefix: true
        };
        if (!env.node.argument || !updateNodeTypes.includes(env.node.argument.type)) {
          this.throwError(`Unexpected ${env.node.operator}`);
        }
      }
    });
    jsep2.hooks.add("after-token", function gobbleUpdatePostfix(env) {
      if (env.node) {
        const code = this.code;
        if (plugin.updateOperators.some((c) => c === code && c === this.expr.charCodeAt(this.index + 1))) {
          if (!updateNodeTypes.includes(env.node.type)) {
            this.throwError(`Unexpected ${env.node.operator}`);
          }
          this.index += 2;
          env.node = {
            type: "UpdateExpression",
            operator: code === PLUS_CODE ? "++" : "--",
            argument: env.node,
            prefix: false
          };
        }
      }
    });
    jsep2.hooks.add("after-expression", function gobbleAssignment(env) {
      if (env.node) {
        updateBinariesToAssignments(env.node);
      }
    });
    function updateBinariesToAssignments(node) {
      if (plugin.assignmentOperators.has(node.operator)) {
        node.type = "AssignmentExpression";
        updateBinariesToAssignments(node.left);
        updateBinariesToAssignments(node.right);
      } else if (!node.operator) {
        Object.values(node).forEach((val) => {
          if (val && typeof val === "object") {
            updateBinariesToAssignments(val);
          }
        });
      }
    }
  }
};
jsep.plugins.register(index, plugin);
jsep.addUnaryOp("typeof");
jsep.addUnaryOp("void");
jsep.addLiteral("null", null);
jsep.addLiteral("undefined", void 0);
const BLOCKED_PROTO_PROPERTIES = /* @__PURE__ */ new Set(["constructor", "__proto__", "__defineGetter__", "__defineSetter__", "__lookupGetter__", "__lookupSetter__"]);
const SafeEval = {
  /**
   * @param {jsep.Expression} ast
   * @param {Record<string, any>} subs
   */
  evalAst(ast, subs) {
    switch (ast.type) {
      case "BinaryExpression":
      case "LogicalExpression":
        return SafeEval.evalBinaryExpression(ast, subs);
      case "Compound":
        return SafeEval.evalCompound(ast, subs);
      case "ConditionalExpression":
        return SafeEval.evalConditionalExpression(ast, subs);
      case "Identifier":
        return SafeEval.evalIdentifier(ast, subs);
      case "Literal":
        return SafeEval.evalLiteral(ast, subs);
      case "MemberExpression":
        return SafeEval.evalMemberExpression(ast, subs);
      case "UnaryExpression":
        return SafeEval.evalUnaryExpression(ast, subs);
      case "ArrayExpression":
        return SafeEval.evalArrayExpression(ast, subs);
      case "CallExpression":
        return SafeEval.evalCallExpression(ast, subs);
      case "AssignmentExpression":
        return SafeEval.evalAssignmentExpression(ast, subs);
      default:
        throw SyntaxError("Unexpected expression", ast);
    }
  },
  evalBinaryExpression(ast, subs) {
    const result = {
      "||": (a, b) => a || b(),
      "&&": (a, b) => a && b(),
      "|": (a, b) => a | b(),
      "^": (a, b) => a ^ b(),
      "&": (a, b) => a & b(),
      // eslint-disable-next-line eqeqeq -- API
      "==": (a, b) => a == b(),
      // eslint-disable-next-line eqeqeq -- API
      "!=": (a, b) => a != b(),
      "===": (a, b) => a === b(),
      "!==": (a, b) => a !== b(),
      "<": (a, b) => a < b(),
      ">": (a, b) => a > b(),
      "<=": (a, b) => a <= b(),
      ">=": (a, b) => a >= b(),
      "<<": (a, b) => a << b(),
      ">>": (a, b) => a >> b(),
      ">>>": (a, b) => a >>> b(),
      "+": (a, b) => a + b(),
      "-": (a, b) => a - b(),
      "*": (a, b) => a * b(),
      "/": (a, b) => a / b(),
      "%": (a, b) => a % b()
    }[ast.operator](SafeEval.evalAst(ast.left, subs), () => SafeEval.evalAst(ast.right, subs));
    return result;
  },
  evalCompound(ast, subs) {
    let last;
    for (let i = 0; i < ast.body.length; i++) {
      if (ast.body[i].type === "Identifier" && ["var", "let", "const"].includes(ast.body[i].name) && ast.body[i + 1] && ast.body[i + 1].type === "AssignmentExpression") {
        i += 1;
      }
      const expr = ast.body[i];
      last = SafeEval.evalAst(expr, subs);
    }
    return last;
  },
  evalConditionalExpression(ast, subs) {
    if (SafeEval.evalAst(ast.test, subs)) {
      return SafeEval.evalAst(ast.consequent, subs);
    }
    return SafeEval.evalAst(ast.alternate, subs);
  },
  evalIdentifier(ast, subs) {
    if (Object.hasOwn(subs, ast.name)) {
      return subs[ast.name];
    }
    throw ReferenceError(`${ast.name} is not defined`);
  },
  evalLiteral(ast) {
    return ast.value;
  },
  evalMemberExpression(ast, subs) {
    const prop = String(
      // NOTE: `String(value)` throws error when
      // value has overwritten the toString method to return non-string
      // i.e. `value = {toString: () => []}`
      ast.computed ? SafeEval.evalAst(ast.property) : ast.property.name
      // `object.property` property is Identifier
    );
    const obj = SafeEval.evalAst(ast.object, subs);
    if (obj === void 0 || obj === null) {
      throw TypeError(`Cannot read properties of ${obj} (reading '${prop}')`);
    }
    if (!Object.hasOwn(obj, prop) && BLOCKED_PROTO_PROPERTIES.has(prop)) {
      throw TypeError(`Cannot read properties of ${obj} (reading '${prop}')`);
    }
    const result = obj[prop];
    if (typeof result === "function") {
      return result.bind(obj);
    }
    return result;
  },
  evalUnaryExpression(ast, subs) {
    const result = {
      "-": (a) => -SafeEval.evalAst(a, subs),
      "!": (a) => !SafeEval.evalAst(a, subs),
      "~": (a) => ~SafeEval.evalAst(a, subs),
      // eslint-disable-next-line no-implicit-coercion -- API
      "+": (a) => +SafeEval.evalAst(a, subs),
      typeof: (a) => typeof SafeEval.evalAst(a, subs),
      // eslint-disable-next-line no-void, sonarjs/void-use -- feature
      void: (a) => void SafeEval.evalAst(a, subs)
    }[ast.operator](ast.argument);
    return result;
  },
  evalArrayExpression(ast, subs) {
    return ast.elements.map((el) => SafeEval.evalAst(el, subs));
  },
  evalCallExpression(ast, subs) {
    const args = ast.arguments.map((arg) => SafeEval.evalAst(arg, subs));
    const func = SafeEval.evalAst(ast.callee, subs);
    if (func === Function) {
      throw new Error("Function constructor is disabled");
    }
    return func(...args);
  },
  evalAssignmentExpression(ast, subs) {
    if (ast.left.type !== "Identifier") {
      throw SyntaxError("Invalid left-hand side in assignment");
    }
    const id = ast.left.name;
    const value = SafeEval.evalAst(ast.right, subs);
    subs[id] = value;
    return subs[id];
  }
};
class SafeScript {
  /**
   * @param {string} expr Expression to evaluate
   */
  constructor(expr) {
    this.code = expr;
    this.ast = jsep(this.code);
  }
  /**
   * @param {object} context Object whose items will be added
   *   to evaluation
   * @returns {EvaluatedResult} Result of evaluated code
   */
  runInNewContext(context) {
    const keyMap = Object.assign(/* @__PURE__ */ Object.create(null), context);
    return SafeEval.evalAst(this.ast, keyMap);
  }
}
function push(arr, item) {
  arr = arr.slice();
  arr.push(item);
  return arr;
}
function unshift(item, arr) {
  arr = arr.slice();
  arr.unshift(item);
  return arr;
}
class NewError extends Error {
  /**
   * @param {AnyResult} value The evaluated scalar value
   */
  constructor(value) {
    super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)');
    this.avoidNew = true;
    this.value = value;
    this.name = "NewError";
  }
}
function JSONPath(opts, expr, obj, callback, otherTypeCallback) {
  if (!(this instanceof JSONPath)) {
    try {
      return new JSONPath(opts, expr, obj, callback, otherTypeCallback);
    } catch (e) {
      if (!e.avoidNew) {
        throw e;
      }
      return e.value;
    }
  }
  if (typeof opts === "string") {
    otherTypeCallback = callback;
    callback = obj;
    obj = expr;
    expr = opts;
    opts = null;
  }
  const optObj = opts && typeof opts === "object";
  opts = opts || {};
  this.json = opts.json || obj;
  this.path = opts.path || expr;
  this.resultType = opts.resultType || "value";
  this.flatten = opts.flatten || false;
  this.wrap = Object.hasOwn(opts, "wrap") ? opts.wrap : true;
  this.sandbox = opts.sandbox || {};
  this.eval = opts.eval === void 0 ? "safe" : opts.eval;
  this.ignoreEvalErrors = typeof opts.ignoreEvalErrors === "undefined" ? false : opts.ignoreEvalErrors;
  this.parent = opts.parent || null;
  this.parentProperty = opts.parentProperty || null;
  this.callback = opts.callback || callback || null;
  this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function() {
    throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.");
  };
  if (opts.autostart !== false) {
    const args = {
      path: optObj ? opts.path : expr
    };
    if (!optObj) {
      args.json = obj;
    } else if ("json" in opts) {
      args.json = opts.json;
    }
    const ret = this.evaluate(args);
    if (!ret || typeof ret !== "object") {
      throw new NewError(ret);
    }
    return ret;
  }
}
JSONPath.prototype.evaluate = function(expr, json2, callback, otherTypeCallback) {
  let currParent = this.parent, currParentProperty = this.parentProperty;
  let {
    flatten,
    wrap
  } = this;
  this.currResultType = this.resultType;
  this.currEval = this.eval;
  this.currSandbox = this.sandbox;
  callback = callback || this.callback;
  this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;
  json2 = json2 || this.json;
  expr = expr || this.path;
  if (expr && typeof expr === "object" && !Array.isArray(expr)) {
    if (!expr.path && expr.path !== "") {
      throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');
    }
    if (!Object.hasOwn(expr, "json")) {
      throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');
    }
    ({
      json: json2
    } = expr);
    flatten = Object.hasOwn(expr, "flatten") ? expr.flatten : flatten;
    this.currResultType = Object.hasOwn(expr, "resultType") ? expr.resultType : this.currResultType;
    this.currSandbox = Object.hasOwn(expr, "sandbox") ? expr.sandbox : this.currSandbox;
    wrap = Object.hasOwn(expr, "wrap") ? expr.wrap : wrap;
    this.currEval = Object.hasOwn(expr, "eval") ? expr.eval : this.currEval;
    callback = Object.hasOwn(expr, "callback") ? expr.callback : callback;
    this.currOtherTypeCallback = Object.hasOwn(expr, "otherTypeCallback") ? expr.otherTypeCallback : this.currOtherTypeCallback;
    currParent = Object.hasOwn(expr, "parent") ? expr.parent : currParent;
    currParentProperty = Object.hasOwn(expr, "parentProperty") ? expr.parentProperty : currParentProperty;
    expr = expr.path;
  }
  currParent = currParent || null;
  currParentProperty = currParentProperty || null;
  if (Array.isArray(expr)) {
    expr = JSONPath.toPathString(expr);
  }
  if (!expr && expr !== "" || !json2) {
    return void 0;
  }
  const exprList = JSONPath.toPathArray(expr);
  if (exprList[0] === "$" && exprList.length > 1) {
    exprList.shift();
  }
  this._hasParentSelector = null;
  const result = this._trace(exprList, json2, ["$"], currParent, currParentProperty, callback).filter(function(ea) {
    return ea && !ea.isParentSelector;
  });
  if (!result.length) {
    return wrap ? [] : void 0;
  }
  if (!wrap && result.length === 1 && !result[0].hasArrExpr) {
    return this._getPreferredOutput(result[0]);
  }
  return result.reduce((rslt, ea) => {
    const valOrPath = this._getPreferredOutput(ea);
    if (flatten && Array.isArray(valOrPath)) {
      rslt = rslt.concat(valOrPath);
    } else {
      rslt.push(valOrPath);
    }
    return rslt;
  }, []);
};
JSONPath.prototype._getPreferredOutput = function(ea) {
  const resultType = this.currResultType;
  switch (resultType) {
    case "all": {
      const path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);
      ea.pointer = JSONPath.toPointer(path);
      ea.path = typeof ea.path === "string" ? ea.path : JSONPath.toPathString(ea.path);
      return ea;
    }
    case "value":
    case "parent":
    case "parentProperty":
      return ea[resultType];
    case "path":
      return JSONPath.toPathString(ea[resultType]);
    case "pointer":
      return JSONPath.toPointer(ea.path);
    default:
      throw new TypeError("Unknown result type");
  }
};
JSONPath.prototype._handleCallback = function(fullRetObj, callback, type) {
  if (callback) {
    const preferredOutput = this._getPreferredOutput(fullRetObj);
    fullRetObj.path = typeof fullRetObj.path === "string" ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path);
    callback(preferredOutput, type, fullRetObj);
  }
};
JSONPath.prototype._trace = function(expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {
  let retObj;
  if (!expr.length) {
    retObj = {
      path,
      value: val,
      parent,
      parentProperty: parentPropName,
      hasArrExpr
    };
    this._handleCallback(retObj, callback, "value");
    return retObj;
  }
  const loc = expr[0], x = expr.slice(1);
  const ret = [];
  function addRet(elems) {
    if (Array.isArray(elems)) {
      elems.forEach((t) => {
        ret.push(t);
      });
    } else {
      ret.push(elems);
    }
  }
  if ((typeof loc !== "string" || literalPriority) && val && Object.hasOwn(val, loc)) {
    addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr));
  } else if (loc === "*") {
    this._walk(val, (m) => {
      addRet(this._trace(x, val[m], push(path, m), val, m, callback, true, true));
    });
  } else if (loc === "..") {
    addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));
    this._walk(val, (m) => {
      if (typeof val[m] === "object") {
        addRet(this._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));
      }
    });
  } else if (loc === "^") {
    this._hasParentSelector = true;
    return {
      path: path.slice(0, -1),
      expr: x,
      isParentSelector: true
    };
  } else if (loc === "~") {
    retObj = {
      path: push(path, loc),
      value: parentPropName,
      parent,
      parentProperty: null
    };
    this._handleCallback(retObj, callback, "property");
    return retObj;
  } else if (loc === "$") {
    addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));
  } else if (/^(-?\d*):(-?\d*):?(\d*)$/u.test(loc)) {
    addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));
  } else if (loc.indexOf("?(") === 0) {
    if (this.currEval === false) {
      throw new Error("Eval [?(expr)] prevented in JSONPath expression.");
    }
    const safeLoc = loc.replace(/^\?\((.*?)\)$/u, "$1");
    const nested = /@.?([^?]*)[['](\??\(.*?\))(?!.\)\])[\]']/gu.exec(safeLoc);
    if (nested) {
      this._walk(val, (m) => {
        const npath = [nested[2]];
        const nvalue = nested[1] ? val[m][nested[1]] : val[m];
        const filterResults = this._trace(npath, nvalue, path, parent, parentPropName, callback, true);
        if (filterResults.length > 0) {
          addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));
        }
      });
    } else {
      this._walk(val, (m) => {
        if (this._eval(safeLoc, val[m], m, path, parent, parentPropName)) {
          addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));
        }
      });
    }
  } else if (loc[0] === "(") {
    if (this.currEval === false) {
      throw new Error("Eval [(expr)] prevented in JSONPath expression.");
    }
    addRet(this._trace(unshift(this._eval(loc, val, path.at(-1), path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));
  } else if (loc[0] === "@") {
    let addType = false;
    const valueType = loc.slice(1, -2);
    switch (valueType) {
      case "scalar":
        if (!val || !["object", "function"].includes(typeof val)) {
          addType = true;
        }
        break;
      case "boolean":
      case "string":
      case "undefined":
      case "function":
        if (typeof val === valueType) {
          addType = true;
        }
        break;
      case "integer":
        if (Number.isFinite(val) && !(val % 1)) {
          addType = true;
        }
        break;
      case "number":
        if (Number.isFinite(val)) {
          addType = true;
        }
        break;
      case "nonFinite":
        if (typeof val === "number" && !Number.isFinite(val)) {
          addType = true;
        }
        break;
      case "object":
        if (val && typeof val === valueType) {
          addType = true;
        }
        break;
      case "array":
        if (Array.isArray(val)) {
          addType = true;
        }
        break;
      case "other":
        addType = this.currOtherTypeCallback(val, path, parent, parentPropName);
        break;
      case "null":
        if (val === null) {
          addType = true;
        }
        break;
      /* c8 ignore next 2 */
      default:
        throw new TypeError("Unknown value type " + valueType);
    }
    if (addType) {
      retObj = {
        path,
        value: val,
        parent,
        parentProperty: parentPropName
      };
      this._handleCallback(retObj, callback, "value");
      return retObj;
    }
  } else if (loc[0] === "`" && val && Object.hasOwn(val, loc.slice(1))) {
    const locProp = loc.slice(1);
    addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));
  } else if (loc.includes(",")) {
    const parts = loc.split(",");
    for (const part of parts) {
      addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));
    }
  } else if (!literalPriority && val && Object.hasOwn(val, loc)) {
    addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));
  }
  if (this._hasParentSelector) {
    for (let t = 0; t < ret.length; t++) {
      const rett = ret[t];
      if (rett && rett.isParentSelector) {
        const tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);
        if (Array.isArray(tmp)) {
          ret[t] = tmp[0];
          const tl = tmp.length;
          for (let tt = 1; tt < tl; tt++) {
            t++;
            ret.splice(t, 0, tmp[tt]);
          }
        } else {
          ret[t] = tmp;
        }
      }
    }
  }
  return ret;
};
JSONPath.prototype._walk = function(val, f) {
  if (Array.isArray(val)) {
    const n = val.length;
    for (let i = 0; i < n; i++) {
      f(i);
    }
  } else if (val && typeof val === "object") {
    Object.keys(val).forEach((m) => {
      f(m);
    });
  }
};
JSONPath.prototype._slice = function(loc, expr, val, path, parent, parentPropName, callback) {
  if (!Array.isArray(val)) {
    return void 0;
  }
  const len = val.length, parts = loc.split(":"), step = parts[2] && Number.parseInt(parts[2]) || 1;
  let start = parts[0] && Number.parseInt(parts[0]) || 0, end = parts[1] && Number.parseInt(parts[1]) || len;
  start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);
  end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);
  const ret = [];
  for (let i = start; i < end; i += step) {
    const tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true);
    tmp.forEach((t) => {
      ret.push(t);
    });
  }
  return ret;
};
JSONPath.prototype._eval = function(code, _v, _vname, path, parent, parentPropName) {
  this.currSandbox._$_parentProperty = parentPropName;
  this.currSandbox._$_parent = parent;
  this.currSandbox._$_property = _vname;
  this.currSandbox._$_root = this.json;
  this.currSandbox._$_v = _v;
  const containsPath = code.includes("@path");
  if (containsPath) {
    this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));
  }
  const scriptCacheKey = this.currEval + "Script:" + code;
  if (!JSONPath.cache[scriptCacheKey]) {
    let script = code.replaceAll("@parentProperty", "_$_parentProperty").replaceAll("@parent", "_$_parent").replaceAll("@property", "_$_property").replaceAll("@root", "_$_root").replaceAll(/@([.\s)[])/gu, "_$_v$1");
    if (containsPath) {
      script = script.replaceAll("@path", "_$_path");
    }
    if (this.currEval === "safe" || this.currEval === true || this.currEval === void 0) {
      JSONPath.cache[scriptCacheKey] = new this.safeVm.Script(script);
    } else if (this.currEval === "native") {
      JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);
    } else if (typeof this.currEval === "function" && this.currEval.prototype && Object.hasOwn(this.currEval.prototype, "runInNewContext")) {
      const CurrEval = this.currEval;
      JSONPath.cache[scriptCacheKey] = new CurrEval(script);
    } else if (typeof this.currEval === "function") {
      JSONPath.cache[scriptCacheKey] = {
        runInNewContext: (context) => this.currEval(script, context)
      };
    } else {
      throw new TypeError(`Unknown "eval" property "${this.currEval}"`);
    }
  }
  try {
    return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);
  } catch (e) {
    if (this.ignoreEvalErrors) {
      return false;
    }
    throw new Error("jsonPath: " + e.message + ": " + code);
  }
};
JSONPath.cache = {};
JSONPath.toPathString = function(pathArr) {
  const x = pathArr, n = x.length;
  let p = "$";
  for (let i = 1; i < n; i++) {
    if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
      p += /^[0-9*]+$/u.test(x[i]) ? "[" + x[i] + "]" : "['" + x[i] + "']";
    }
  }
  return p;
};
JSONPath.toPointer = function(pointer) {
  const x = pointer, n = x.length;
  let p = "";
  for (let i = 1; i < n; i++) {
    if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
      p += "/" + x[i].toString().replaceAll("~", "~0").replaceAll("/", "~1");
    }
  }
  return p;
};
JSONPath.toPathArray = function(expr) {
  const {
    cache
  } = JSONPath;
  if (cache[expr]) {
    return cache[expr].concat();
  }
  const subx = [];
  const normalized = expr.replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu, ";$&;").replaceAll(/[['](\??\(.*?\))[\]'](?!.\])/gu, function($0, $1) {
    return "[#" + (subx.push($1) - 1) + "]";
  }).replaceAll(/\[['"]([^'\]]*)['"]\]/gu, function($0, prop) {
    return "['" + prop.replaceAll(".", "%@%").replaceAll("~", "%%@@%%") + "']";
  }).replaceAll("~", ";~;").replaceAll(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ";").replaceAll("%@%", ".").replaceAll("%%@@%%", "~").replaceAll(/(?:;)?(\^+)(?:;)?/gu, function($0, ups) {
    return ";" + ups.split("").join(";") + ";";
  }).replaceAll(/;;;|;;/gu, ";..;").replaceAll(/;$|'?\]|'$/gu, "");
  const exprList = normalized.split(";").map(function(exp) {
    const match = exp.match(/#(\d+)/u);
    return !match || !match[1] ? exp : subx[match[1]];
  });
  cache[expr] = exprList;
  return cache[expr].concat();
};
JSONPath.prototype.safeVm = {
  Script: SafeScript
};
const moveToAnotherArray = function(source, target, conditionCb) {
  const il = source.length;
  for (let i = 0; i < il; i++) {
    const item = source[i];
    if (conditionCb(item)) {
      target.push(source.splice(i--, 1)[0]);
    }
  }
};
class Script {
  /**
   * @param {string} expr Expression to evaluate
   */
  constructor(expr) {
    this.code = expr;
  }
  /**
   * @param {object} context Object whose items will be added
   *   to evaluation
   * @returns {EvaluatedResult} Result of evaluated code
   */
  runInNewContext(context) {
    let expr = this.code;
    const keys = Object.keys(context);
    const funcs = [];
    moveToAnotherArray(keys, funcs, (key) => {
      return typeof context[key] === "function";
    });
    const values = keys.map((vr) => {
      return context[vr];
    });
    const funcString = funcs.reduce((s, func) => {
      let fString = context[func].toString();
      if (!/function/u.test(fString)) {
        fString = "function " + fString;
      }
      return "var " + func + "=" + fString + ";" + s;
    }, "");
    expr = funcString + expr;
    if (!/(['"])use strict\1/u.test(expr) && !keys.includes("arguments")) {
      expr = "var arguments = undefined;" + expr;
    }
    expr = expr.replace(/;\s*$/u, "");
    const lastStatementEnd = expr.lastIndexOf(";");
    const code = lastStatementEnd !== -1 ? expr.slice(0, lastStatementEnd + 1) + " return " + expr.slice(lastStatementEnd + 1) : " return " + expr;
    return new Function(...keys, code)(...values);
  }
}
JSONPath.prototype.vm = {
  Script
};
const castValue = (value, type) => {
  if (value === void 0 || value === null) return null;
  if (!type || type === "auto") return value;
  switch (type) {
    case "string":
      return String(value);
    case "number":
      return Number(value);
    case "boolean":
      return Boolean(value);
    case "object":
      return typeof value === "object" ? value : { value };
    case "array":
      return Array.isArray(value) ? value : [value];
    default:
      return value;
  }
};
const detectContentType = (content) => {
  if (!content || typeof content !== "string") return "Text";
  const trimmed = content.trim();
  if (trimmed.startsWith("{") || trimmed.startsWith("[")) return "JSON";
  if (trimmed.startsWith("<")) return "XML";
  return "Text";
};
const evaluateJsonPath = (json2, path) => {
  let normalizedPath = path.trim();
  if (!normalizedPath.startsWith("$")) {
    normalizedPath = "$." + normalizedPath;
  }
  const results = JSONPath({ path: normalizedPath, json: json2, wrap: true });
  if (!results || results.length === 0) return void 0;
  return results.length === 1 ? results[0] : results;
};
const evaluateXPath = (doc, expression) => {
  try {
    const result = doc.evaluate(expression, doc, null, XPathResult.ANY_TYPE, null);
    switch (result.resultType) {
      case XPathResult.NUMBER_TYPE:
        return result.numberValue;
      case XPathResult.STRING_TYPE:
        return result.stringValue;
      case XPathResult.BOOLEAN_TYPE:
        return result.booleanValue;
      default: {
        const values = [];
        let node = result.iterateNext();
        while (node) {
          values.push(node.textContent || "");
          node = result.iterateNext();
        }
        if (values.length === 0) return void 0;
        return values.length === 1 ? values[0] : values;
      }
    }
  } catch {
    try {
      const node = doc.querySelector(expression);
      return node ? node.textContent : void 0;
    } catch {
      return void 0;
    }
  }
};
const evaluateBodyPredicate = (body, predicate) => {
  const { kind, expression, op, value } = predicate;
  if (!expression || !expression.trim()) {
    return { matched: false, error: "Empty expression" };
  }
  const content = typeof body === "string" ? body : "";
  const compare = (extracted) => {
    if (op === "exists") return extracted !== void 0 && extracted !== null;
    if (extracted === void 0 || extracted === null) return false;
    const str = String(extracted);
    if (op === "equals") return str === (value ?? "");
    if (op === "matches") {
      try {
        return new RegExp(value ?? "").test(str);
      } catch {
        return false;
      }
    }
    return false;
  };
  try {
    if (kind === "jsonpath") {
      let json2;
      try {
        json2 = JSON.parse(content);
      } catch {
        return { matched: false, error: "Body is not valid JSON" };
      }
      const extracted = evaluateJsonPath(json2, expression);
      if (op === "matches" && value) {
        try {
          new RegExp(value);
        } catch (e) {
          return { matched: false, error: `Invalid regex value: ${e.message}` };
        }
      }
      if (op === "exists") return { matched: extracted !== void 0 && extracted !== null };
      const candidates = Array.isArray(extracted) ? extracted : [extracted];
      return { matched: candidates.some(compare) };
    }
    if (kind === "xpath") {
      let doc;
      try {
        const parser = new DOMParser();
        doc = parser.parseFromString(content, "text/xml");
        if (doc.querySelector("parsererror")) {
          return { matched: false, error: "Body is not valid XML" };
        }
      } catch {
        return { matched: false, error: "Body is not valid XML" };
      }
      let extracted;
      try {
        extracted = evaluateXPath(doc, expression);
      } catch (e) {
        return { matched: false, error: `XPath failed: ${e.message}` };
      }
      if (op === "matches" && value) {
        try {
          new RegExp(value);
        } catch (e) {
          return { matched: false, error: `Invalid regex value: ${e.message}` };
        }
      }
      if (op === "exists") return { matched: extracted !== void 0 && extracted !== null };
      const candidates = Array.isArray(extracted) ? extracted : [extracted];
      return { matched: candidates.some(compare) };
    }
    let regex;
    try {
      regex = new RegExp(expression);
    } catch (e) {
      return { matched: false, error: `Invalid regex: ${e.message}` };
    }
    const m = regex.test(content);
    if (op === "exists" || op === "matches") return { matched: m };
    if (op === "equals") {
      const match = content.match(regex);
      const extracted = match ? match[1] !== void 0 ? match[1] : match[0] : void 0;
      return { matched: compare(extracted) };
    }
    return { matched: m };
  } catch (e) {
    return { matched: false, error: e.message };
  }
};
const extractData = (content, rules2) => {
  const results = {};
  if (!rules2 || rules2.length === 0) return results;
  if (!content || typeof content !== "string") return results;
  let cachedJson = null;
  let jsonAttempted = false;
  let cachedXml = null;
  let xmlAttempted = false;
  const getJson = () => {
    if (jsonAttempted) return cachedJson;
    jsonAttempted = true;
    try {
      cachedJson = JSON.parse(content);
    } catch {
      cachedJson = null;
    }
    return cachedJson;
  };
  const getXml = () => {
    if (xmlAttempted) return cachedXml;
    xmlAttempted = true;
    try {
      const parser = new DOMParser();
      const doc = parser.parseFromString(content, "text/xml");
      if (doc.querySelector("parsererror")) {
        cachedXml = null;
      } else {
        cachedXml = doc;
      }
    } catch {
      cachedXml = null;
    }
    return cachedXml;
  };
  rules2.forEach((rule) => {
    try {
      let extractedValue = void 0;
      switch (rule.method) {
        case "jsonpath": {
          const json2 = getJson();
          if (json2) {
            extractedValue = evaluateJsonPath(json2, rule.source);
          }
          break;
        }
        case "xpath": {
          const xml = getXml();
          if (xml) {
            extractedValue = evaluateXPath(xml, rule.source);
          }
          break;
        }
        case "regex":
          try {
            const regex = new RegExp(rule.source);
            const match = content.match(regex);
            if (match) {
              extractedValue = match[1] !== void 0 ? match[1] : match[0];
            }
          } catch {
            console.warn(`Regex failed: ${rule.source}`);
          }
          break;
        default:
          break;
      }
      if (extractedValue !== void 0 && extractedValue !== null) {
        results[rule.targetVar] = castValue(extractedValue, rule.type);
      } else if (rule.defaultValue !== void 0 && rule.defaultValue !== null && rule.defaultValue !== "") {
        results[rule.targetVar] = castValue(rule.defaultValue, rule.type);
      } else {
        results[rule.targetVar] = null;
      }
    } catch (error) {
      console.error(`Error applying rule ${rule.targetVar}`, error);
      results[rule.targetVar] = null;
    }
  });
  return results;
};
const IMPLICIT_DEFAULTS = [
  "transient → retry ∞",
  'else → throw "{surfaced code}"'
];
const VAR_NAME_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
const isValidVariableName = (name) => VAR_NAME_RE.test(name);
const SQLSTATE_RE = /^[0-9A-Za-z]{5}$/;
const RANGE_RE = /^(\d+)-(\d+)$/;
const classifyStatusToken = (raw) => {
  const token = String(raw).trim();
  if (token === "") return { valid: false, kind: "invalid", message: "Empty code" };
  if (/^\d+$/.test(token)) return { valid: true, kind: "int" };
  const range = RANGE_RE.exec(token);
  if (range) {
    const lo = Number(range[1]);
    const hi = Number(range[2]);
    if (lo < hi) return { valid: true, kind: "range" };
    return { valid: false, kind: "invalid", message: `Range ${token} requires lo < hi` };
  }
  if (SQLSTATE_RE.test(token)) return { valid: true, kind: "sqlstate" };
  return { valid: false, kind: "invalid", message: `'${token}' is not a code, range, or SQLSTATE` };
};
const statusMatches = (observed, tokens) => {
  if (!tokens || tokens.length === 0) return false;
  const obsStr = String(observed).trim();
  const obsNum = Number(obsStr);
  return tokens.some((t) => {
    const token = String(t).trim();
    if (token === obsStr) return true;
    const range = RANGE_RE.exec(token);
    if (range && !isNaN(obsNum)) {
      return obsNum >= Number(range[1]) && obsNum <= Number(range[2]);
    }
    return false;
  });
};
const summarizeMatch = (match) => {
  const parts = [];
  if (match.transient) parts.push("transient");
  if (match.statusCodes && match.statusCodes.length) parts.push(`status ${match.statusCodes.join(",")}`);
  if (match.exceptionTypes && match.exceptionTypes.length) parts.push(`type ${match.exceptionTypes.join(",")}`);
  if (match.bodyPredicate) {
    const { kind, expression, op, value } = match.bodyPredicate;
    parts.push(`body ${kind} ${expression} ${op}${value ? ` "${value}"` : ""}`);
  }
  return parts.length ? parts.join(" AND ") : "any error";
};
const summarizeAction = (action) => {
  switch (action.disposition) {
    case "retry": {
      const n = action.maxAttempts === 0 ? "∞" : String(action.maxAttempts);
      if (action.maxAttempts > 0 && action.onExhausted) {
        const oe = action.onExhausted;
        const tail = oe.disposition === "throw" ? `throw "${oe.errorCode}"` : `ignore${oe.captureVariable ? ` (capture ${oe.captureVariable})` : ""}`;
        return `retry ${n}, on-exhausted → ${tail}`;
      }
      return `retry ${n}`;
    }
    case "ignore":
      return `ignore${action.captureVariable ? ` (capture ${action.captureVariable})` : ""}`;
    case "throw":
      return `throw "${action.errorCode}"`;
    default:
      return "";
  }
};
const summarizeRule = (rule) => ({
  when: summarizeMatch(rule.match),
  then: summarizeAction(rule.action)
});
const validateRuleSet = (rules2) => {
  const issues = [];
  if (!Array.isArray(rules2)) return issues;
  rules2.forEach((rule, i) => {
    const match = (rule == null ? void 0 : rule.match) || {};
    const action = rule == null ? void 0 : rule.action;
    const isWildcard = !match.transient && !(match.statusCodes && match.statusCodes.length) && !(match.exceptionTypes && match.exceptionTypes.length) && !match.bodyPredicate;
    if (isWildcard && i < rules2.length - 1) {
      issues.push({ ruleIndex: i, severity: "warning", message: "Wildcard match makes the rules below it unreachable." });
    }
    (match.statusCodes || []).forEach((code) => {
      const info = classifyStatusToken(code);
      if (!info.valid) issues.push({ ruleIndex: i, severity: "error", message: info.message || `Invalid status code '${code}'.` });
    });
    if (match.bodyPredicate) {
      const bp = match.bodyPredicate;
      if (!bp.expression || !bp.expression.trim()) {
        issues.push({ ruleIndex: i, severity: "error", message: "Body predicate expression is required." });
      }
      if ((bp.op === "equals" || bp.op === "matches") && (bp.value === void 0 || bp.value === "")) {
        issues.push({ ruleIndex: i, severity: "error", message: `Body predicate "${bp.op}" requires a value.` });
      }
      if (bp.kind === "regex" && bp.expression) {
        try {
          new RegExp(bp.expression);
        } catch (e) {
          issues.push({ ruleIndex: i, severity: "error", message: `Body predicate regex does not compile: ${e.message}` });
        }
      }
      if (bp.op === "matches" && bp.value) {
        try {
          new RegExp(bp.value);
        } catch (e) {
          issues.push({ ruleIndex: i, severity: "error", message: `Body predicate value regex does not compile: ${e.message}` });
        }
      }
    }
    if (!action) {
      issues.push({ ruleIndex: i, severity: "error", message: "Rule has no action." });
      return;
    }
    if (action.disposition === "throw") {
      if (!action.errorCode || !action.errorCode.trim()) {
        issues.push({ ruleIndex: i, severity: "error", message: "Throw requires an error code." });
      }
    } else if (action.disposition === "ignore") {
      if (action.captureVariable && !isValidVariableName(action.captureVariable)) {
        issues.push({ ruleIndex: i, severity: "error", message: `Capture variable "${action.captureVariable}" is not a valid name.` });
      }
    } else if (action.disposition === "retry") {
      if (typeof action.maxAttempts !== "number" || action.maxAttempts < 0) {
        issues.push({ ruleIndex: i, severity: "error", message: "Retry max attempts must be ≥ 0." });
      }
      if (action.maxAttempts > 0) {
        if (!action.onExhausted) {
          issues.push({ ruleIndex: i, severity: "error", message: "A bounded retry requires an on-exhausted action." });
        } else if (action.onExhausted.disposition === "throw") {
          if (!action.onExhausted.errorCode || !action.onExhausted.errorCode.trim()) {
            issues.push({ ruleIndex: i, severity: "error", message: "On-exhausted throw requires an error code." });
          }
        } else if (action.onExhausted.disposition === "ignore") {
          if (action.onExhausted.captureVariable && !isValidVariableName(action.onExhausted.captureVariable)) {
            issues.push({ ruleIndex: i, severity: "error", message: `On-exhausted capture variable "${action.onExhausted.captureVariable}" is not a valid name.` });
          }
        }
      }
      if (action.backoff) {
        const b = action.backoff;
        if (!(b.baseMs > 0)) issues.push({ ruleIndex: i, severity: "error", message: "Backoff baseMs must be > 0." });
        if (!(b.factor >= 1)) issues.push({ ruleIndex: i, severity: "error", message: "Backoff factor must be ≥ 1." });
        if (!(b.jitter >= 0 && b.jitter < 1)) issues.push({ ruleIndex: i, severity: "error", message: "Backoff jitter must be in [0,1)." });
        if (!(b.capMs > 0)) issues.push({ ruleIndex: i, severity: "error", message: "Backoff capMs must be > 0." });
      }
    }
  });
  return issues;
};
const exceptionMatches = (observed, patterns) => {
  if (!patterns || patterns.length === 0) return false;
  if (!observed) return false;
  return patterns.some((p) => {
    if (p.includes("*")) {
      const esc = p.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
      try {
        return new RegExp(`^${esc}$`).test(observed);
      } catch {
        return false;
      }
    }
    return p === observed || observed.endsWith(`.${p}`);
  });
};
const evaluateRuleSet = (rules2, sample) => {
  let predicateError;
  for (let i = 0; i < rules2.length; i++) {
    const m = rules2[i].match || {};
    let ok2 = true;
    let touched = false;
    if (m.transient !== void 0) {
      touched = true;
      if (!!sample.transient !== m.transient) ok2 = false;
    }
    if (ok2 && m.statusCodes && m.statusCodes.length) {
      touched = true;
      if (sample.statusCode === void 0 || sample.statusCode === "" || !statusMatches(sample.statusCode, m.statusCodes)) ok2 = false;
    }
    if (ok2 && m.exceptionTypes && m.exceptionTypes.length) {
      touched = true;
      if (!exceptionMatches(sample.exceptionType, m.exceptionTypes)) ok2 = false;
    }
    if (ok2 && m.bodyPredicate) {
      touched = true;
      const res = evaluateBodyPredicate(sample.body, m.bodyPredicate);
      if (res.error) predicateError = res.error;
      if (!res.matched) ok2 = false;
    }
    if (!touched) ok2 = true;
    if (ok2) {
      return {
        matchedIndex: i,
        rule: rules2[i],
        outcome: summarizeAction(rules2[i].action),
        predicateError
      };
    }
  }
  return {
    matchedIndex: null,
    outcome: sample.transient ? "default → retry ∞" : 'default → throw "{surfaced code}"',
    predicateError
  };
};
const collectThrownCodes = (rules2) => {
  var _a;
  const codes = /* @__PURE__ */ new Set();
  for (const rule of rules2 || []) {
    const a = rule == null ? void 0 : rule.action;
    if (!a) continue;
    if (a.disposition === "throw" && a.errorCode) codes.add(a.errorCode);
    if (a.disposition === "retry" && a.maxAttempts > 0 && ((_a = a.onExhausted) == null ? void 0 : _a.disposition) === "throw" && a.onExhausted.errorCode) {
      codes.add(a.onExhausted.errorCode);
    }
  }
  return [...codes];
};
const getNodeRules = (eh) => eh && Array.isArray(eh.rules) ? eh.rules : [];
const getNodeRef = (eh) => eh && "ruleSetRef" in eh ? eh.ruleSetRef : void 0;
const countRuleSetUsage = (processes, id) => {
  var _a;
  let count = 0;
  for (const proc of processes) {
    for (const node of proc.nodes) {
      if (getNodeRef((_a = node.data) == null ? void 0 : _a.errorHandling) === id) count++;
    }
  }
  return count;
};
const reinlineFromLibrary = (eh, library) => {
  const ref = getNodeRef(eh);
  if (!ref) return eh;
  const entry = library.find((r) => r.id === ref);
  if (!entry) return eh;
  return { ruleSetRef: ref, rules: entry.rules };
};
const ERROR_RULESET_PRESETS = [
  {
    key: "REST-Standard",
    name: "REST-Standard",
    description: "General REST call: business 4xx map to distinct error boundaries; infra/throttle rides out.",
    rules: [
      { match: { statusCodes: [409] }, action: { disposition: "throw", errorCode: "Conflict" } },
      { match: { statusCodes: [401, 403] }, action: { disposition: "throw", errorCode: "AuthFailed" } },
      { match: { statusCodes: [400, 422] }, action: { disposition: "throw", errorCode: "BadRequest" } },
      { match: { statusCodes: [404] }, action: { disposition: "throw", errorCode: "NotFound" } },
      { match: { statusCodes: [429] }, action: { disposition: "retry", maxAttempts: 0 } },
      { match: { transient: true }, action: { disposition: "retry", maxAttempts: 0 } }
    ]
  },
  {
    key: "REST-FailFast",
    name: "REST-FailFast",
    description: "Critical task: surface errors quickly with a bounded retry, then fault.",
    rules: [
      { match: { statusCodes: [401, 403] }, action: { disposition: "throw", errorCode: "AuthFailed" } },
      {
        match: { transient: true },
        action: {
          disposition: "retry",
          maxAttempts: 3,
          onExhausted: { disposition: "throw", errorCode: "Unavailable" }
        }
      }
    ]
  },
  {
    key: "DB-Contention",
    name: "DB-Contention",
    description: "Database write under lock contention: retry deadlocks/lock-waits finitely, then surface.",
    rules: [
      {
        match: { statusCodes: [1205, 1213, "40001", "40P01"] },
        action: {
          disposition: "retry",
          maxAttempts: 8,
          backoff: { baseMs: 200, factor: 3, capMs: 3e4, jitter: 0.25 },
          onExhausted: { disposition: "throw", errorCode: "DbContention" }
        }
      },
      { match: { transient: true }, action: { disposition: "retry", maxAttempts: 0 } }
    ]
  },
  {
    key: "Best-Effort-Notify",
    name: "Best-Effort-Notify",
    description: "Email / SMS / push notification whose failure must NOT fault the process.",
    rules: [
      {
        match: { bodyPredicate: { kind: "regex", expression: "mailbox.*full|over.?quota|recipient.*reject", op: "matches" } },
        action: { disposition: "ignore", captureVariable: "notifyError" }
      },
      {
        match: { transient: true },
        action: {
          disposition: "retry",
          maxAttempts: 10,
          onExhausted: { disposition: "ignore", captureVariable: "notifyError" }
        }
      },
      { match: {}, action: { disposition: "ignore", captureVariable: "notifyError" } }
    ]
  },
  {
    key: "Idempotent-Reconcile",
    name: "Idempotent-Reconcile",
    description: "Idempotent upsert/reconcile: already-exists / not-found are normal outcomes to swallow.",
    rules: [
      { match: { statusCodes: [409] }, action: { disposition: "ignore", captureVariable: "priorState" } },
      { match: { statusCodes: [404] }, action: { disposition: "ignore" } },
      { match: { transient: true }, action: { disposition: "retry", maxAttempts: 0 } }
    ]
  },
  {
    key: "Agent-Tolerant",
    name: "Agent-Tolerant",
    description: "LLM / agent step: tolerate provider hiccups and never block the flow.",
    rules: [
      { match: { statusCodes: [429] }, action: { disposition: "retry", maxAttempts: 0 } },
      {
        match: { bodyPredicate: { kind: "jsonpath", expression: "$.error.code", op: "equals", value: "content_filter" } },
        action: { disposition: "throw", errorCode: "ContentFiltered" }
      },
      {
        match: { statusCodes: ["500-599"] },
        action: {
          disposition: "retry",
          maxAttempts: 6,
          onExhausted: { disposition: "ignore", captureVariable: "agentError" }
        }
      },
      { match: {}, action: { disposition: "ignore", captureVariable: "agentError" } }
    ]
  },
  {
    key: "Never-Lose-Transient",
    name: "Never-Lose-Transient",
    description: "Exactly the engine defaults, made explicit and editable as a starting point.",
    rules: [
      { match: { transient: true }, action: { disposition: "retry", maxAttempts: 0 } }
    ]
  }
];
const getPreset = (key) => ERROR_RULESET_PRESETS.find((p) => p.key === key);
const INPUT_CLASS = "w-full px-3 py-2 text-sm border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 placeholder-slate-400 transition-all";
const LABEL_CLASS = "text-xs font-bold text-slate-500 uppercase tracking-wider";
const CHIP_CLASS = "inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-xs font-medium bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-300 border border-slate-200 dark:border-slate-700";
const ChipInput = ({ values, onChange, placeholder, validate, presets, numeric }) => {
  const [draft, setDraft] = useState("");
  const coerce = (raw) => {
    const t = raw.trim();
    if (numeric && /^\d+$/.test(t)) return Number(t);
    return t;
  };
  const addToken = (raw) => {
    const t = raw.trim();
    if (!t) return;
    const token = coerce(t);
    if (values.some((v) => String(v) === String(token))) {
      setDraft("");
      return;
    }
    onChange([...values, token]);
    setDraft("");
  };
  const removeAt = (i) => onChange(values.filter((_, idx) => idx !== i));
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
    /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: values.map((v, i) => {
      const ok2 = validate ? validate(v) : true;
      return /* @__PURE__ */ jsxs(
        "span",
        {
          className: ok2 ? CHIP_CLASS : `${CHIP_CLASS} !bg-red-50 !text-red-600 !border-red-300 dark:!bg-red-900/20 dark:!text-red-400`,
          title: ok2 ? void 0 : "Invalid token",
          children: [
            String(v),
            /* @__PURE__ */ jsx("button", { type: "button", onClick: () => removeAt(i), className: "hover:text-red-500", "aria-label": `Remove ${v}`, children: /* @__PURE__ */ jsx(X, { size: 12 }) })
          ]
        },
        `${v}-${i}`
      );
    }) }),
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
      /* @__PURE__ */ jsx(
        "input",
        {
          value: draft,
          onChange: (e) => setDraft(e.target.value),
          onKeyDown: (e) => {
            if (e.key === "Enter" || e.key === ",") {
              e.preventDefault();
              addToken(draft);
            } else if (e.key === "Backspace" && !draft && values.length) removeAt(values.length - 1);
          },
          onBlur: () => draft && addToken(draft),
          placeholder,
          className: INPUT_CLASS
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          type: "button",
          onClick: () => addToken(draft),
          className: "shrink-0 p-2 rounded-lg border border-slate-300 dark:border-slate-700 text-slate-500 hover:text-teal-600 hover:border-teal-400",
          "aria-label": "Add token",
          children: /* @__PURE__ */ jsx(Plus, { size: 16 })
        }
      )
    ] }),
    presets && presets.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: presets.map((p) => /* @__PURE__ */ jsxs(
      "button",
      {
        type: "button",
        onClick: () => addToken(p.value),
        className: "px-2 py-0.5 text-[11px] rounded-md border border-dashed border-slate-300 dark:border-slate-700 text-slate-500 hover:text-teal-600 hover:border-teal-400",
        children: [
          "+ ",
          p.label
        ]
      },
      p.value
    )) })
  ] });
};
const BACKOFF_CAP_PRESETS = [
  { label: "2 min", value: 12e4 },
  { label: "10 min", value: 6e5 },
  { label: "1 hour", value: 36e5 },
  { label: "1 day", value: 864e5 }
];
const STATUS_PRESETS = [
  { label: "4xx", value: "400-499" },
  { label: "5xx", value: "500-599" },
  { label: "408", value: "408" },
  { label: "429", value: "429" }
];
const EXCEPTION_SUGGESTIONS = ["Aggregate.NotFound", "Aggregate.AlreadyExists", "Aggregate.VersionMismatch", "*.NotFound", "*.AlreadyExists", "*.VersionMismatch"];
const RuleCard = ({
  rule,
  index: index2,
  total,
  collapsed,
  issues,
  onChange,
  onMove,
  onDuplicate,
  onDelete,
  onToggleCollapse
}) => {
  var _a, _b;
  const [showBackoff, setShowBackoff] = useState(!!(rule.action.disposition === "retry" && rule.action.backoff));
  const match = rule.match || {};
  const action = rule.action;
  const errors = issues.filter((i) => i.severity === "error");
  const setMatch = (patch) => onChange({ ...rule, match: { ...match, ...patch } });
  const setAction = (next) => onChange({ ...rule, action: next });
  const toggleBodyPredicate = (on) => {
    if (on) setMatch({ bodyPredicate: { kind: "jsonpath", expression: "", op: "exists" } });
    else {
      const m = { ...match };
      delete m.bodyPredicate;
      onChange({ ...rule, match: m });
    }
  };
  const changeDisposition = (d) => {
    if (d === action.disposition) return;
    if (d === "retry") setAction({ disposition: "retry", maxAttempts: 0 });
    else if (d === "ignore") setAction({ disposition: "ignore" });
    else setAction({ disposition: "throw", errorCode: "" });
  };
  const setMaxAttempts = (n) => {
    if (action.disposition !== "retry") return;
    const next = { ...action, maxAttempts: n };
    if (n === 0) delete next.onExhausted;
    else if (!next.onExhausted) next.onExhausted = { disposition: "throw", errorCode: "" };
    setAction(next);
  };
  const setOnExhausted = (oe) => {
    if (action.disposition !== "retry") return;
    setAction({ ...action, onExhausted: oe });
  };
  const setBackoff = (patch) => {
    if (action.disposition !== "retry") return;
    const base = action.backoff || { baseMs: 1e3, factor: 5, capMs: 864e5, jitter: 0.25 };
    setAction({ ...action, backoff: { ...base, ...patch } });
  };
  const summary = summarizeRule(rule);
  return /* @__PURE__ */ jsxs("div", { className: `rounded-xl border ${errors.length ? "border-red-300 dark:border-red-800" : "border-slate-200 dark:border-slate-800"} bg-white dark:bg-slate-900/40`, children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2 border-b border-slate-100 dark:border-slate-800", children: [
      /* @__PURE__ */ jsx(GripVertical, { size: 14, className: "text-slate-300 shrink-0" }),
      /* @__PURE__ */ jsxs("span", { className: "text-xs font-bold text-slate-500 shrink-0", children: [
        "Rule ",
        index2 + 1
      ] }),
      collapsed && /* @__PURE__ */ jsxs("span", { className: "text-xs text-slate-500 truncate flex-1", children: [
        /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "WHEN" }),
        " ",
        summary.when,
        " ",
        /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "THEN" }),
        " ",
        summary.then
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 ml-auto shrink-0 text-slate-400", children: [
        errors.length > 0 && /* @__PURE__ */ jsx(CircleAlert, { size: 14, className: "text-red-500" }),
        /* @__PURE__ */ jsx("button", { type: "button", onClick: () => onMove(-1), disabled: index2 === 0, className: "p-1 hover:text-slate-700 disabled:opacity-30", title: "Move up", children: /* @__PURE__ */ jsx(ChevronUp, { size: 14 }) }),
        /* @__PURE__ */ jsx("button", { type: "button", onClick: () => onMove(1), disabled: index2 === total - 1, className: "p-1 hover:text-slate-700 disabled:opacity-30", title: "Move down", children: /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) }),
        /* @__PURE__ */ jsx("button", { type: "button", onClick: onDuplicate, className: "p-1 hover:text-slate-700", title: "Duplicate", children: /* @__PURE__ */ jsx(Copy, { size: 14 }) }),
        /* @__PURE__ */ jsx("button", { type: "button", onClick: onDelete, className: "p-1 hover:text-red-500", title: "Delete", children: /* @__PURE__ */ jsx(Trash2, { size: 14 }) }),
        /* @__PURE__ */ jsx("button", { type: "button", onClick: onToggleCollapse, className: "p-1 hover:text-slate-700", title: collapsed ? "Expand" : "Collapse", children: collapsed ? /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) : /* @__PURE__ */ jsx(ChevronUp, { size: 14 }) })
      ] })
    ] }),
    !collapsed && /* @__PURE__ */ jsxs("div", { className: "p-4 grid grid-cols-1 lg:grid-cols-2 gap-5", children: [
      /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-[11px] text-slate-400", children: [
          /* @__PURE__ */ jsx(Info, { size: 12 }),
          " All conditions must hold (AND). Leave everything empty to match any error."
        ] }),
        /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
          /* @__PURE__ */ jsx("input", { type: "checkbox", checked: !!match.transient, onChange: (e) => setMatch({ transient: e.target.checked || void 0 }) }),
          "Transient (infra) failure",
          /* @__PURE__ */ jsx("span", { title: "5xx / 408 / 429 / connection failure / DB transient — classified by the executor.", children: /* @__PURE__ */ jsx(Info, { size: 12, className: "text-slate-400" }) })
        ] }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Status codes" }),
          /* @__PURE__ */ jsx(
            ChipInput,
            {
              values: match.statusCodes || [],
              onChange: (v) => setMatch({ statusCodes: v.length ? v : void 0 }),
              placeholder: "409, 500-599, 40P01…",
              numeric: true,
              validate: (v) => classifyStatusToken(v).valid,
              presets: STATUS_PRESETS
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Error types" }),
          /* @__PURE__ */ jsx(
            ChipInput,
            {
              values: match.exceptionTypes || [],
              onChange: (v) => setMatch({ exceptionTypes: v.length ? v : void 0 }),
              placeholder: "Aggregate.NotFound, *.VersionMismatch…",
              presets: EXCEPTION_SUGGESTIONS.map((s) => ({ label: s, value: s }))
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
            /* @__PURE__ */ jsx("input", { type: "checkbox", checked: !!match.bodyPredicate, onChange: (e) => toggleBodyPredicate(e.target.checked) }),
            "Body predicate"
          ] }),
          match.bodyPredicate && /* @__PURE__ */ jsxs("div", { className: "mt-2 space-y-2 pl-1", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
              /* @__PURE__ */ jsxs(
                "select",
                {
                  value: match.bodyPredicate.kind,
                  onChange: (e) => setMatch({ bodyPredicate: { ...match.bodyPredicate, kind: e.target.value } }),
                  className: INPUT_CLASS,
                  children: [
                    /* @__PURE__ */ jsx("option", { value: "jsonpath", children: "jsonpath" }),
                    /* @__PURE__ */ jsx("option", { value: "xpath", children: "xpath" }),
                    /* @__PURE__ */ jsx("option", { value: "regex", children: "regex" })
                  ]
                }
              ),
              /* @__PURE__ */ jsxs(
                "select",
                {
                  value: match.bodyPredicate.op,
                  onChange: (e) => setMatch({ bodyPredicate: { ...match.bodyPredicate, op: e.target.value } }),
                  className: INPUT_CLASS,
                  children: [
                    /* @__PURE__ */ jsx("option", { value: "exists", children: "exists" }),
                    /* @__PURE__ */ jsx("option", { value: "equals", children: "equals" }),
                    /* @__PURE__ */ jsx("option", { value: "matches", children: "matches" })
                  ]
                }
              )
            ] }),
            /* @__PURE__ */ jsx(
              "input",
              {
                value: match.bodyPredicate.expression,
                onChange: (e) => setMatch({ bodyPredicate: { ...match.bodyPredicate, expression: e.target.value } }),
                placeholder: match.bodyPredicate.kind === "jsonpath" ? "$.error.code" : match.bodyPredicate.kind === "xpath" ? "//fault/code" : "mailbox.*full",
                className: INPUT_CLASS
              }
            ),
            (match.bodyPredicate.op === "equals" || match.bodyPredicate.op === "matches") && /* @__PURE__ */ jsx(
              "input",
              {
                value: match.bodyPredicate.value || "",
                onChange: (e) => setMatch({ bodyPredicate: { ...match.bodyPredicate, value: e.target.value } }),
                placeholder: match.bodyPredicate.op === "equals" ? "expected value" : "regex value",
                className: INPUT_CLASS
              }
            )
          ] })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
        /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Disposition" }),
        /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: ["retry", "ignore", "throw"].map((d) => /* @__PURE__ */ jsx(
          "button",
          {
            type: "button",
            onClick: () => changeDisposition(d),
            className: `px-3 py-1.5 rounded-lg text-sm font-medium border capitalize ${action.disposition === d ? "bg-teal-50 border-teal-300 text-teal-700 dark:bg-teal-900/20 dark:border-teal-700 dark:text-teal-300" : "border-slate-200 dark:border-slate-700 text-slate-500 hover:border-slate-300"}`,
            children: d
          },
          d
        )) }),
        action.disposition === "retry" && /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsxs("label", { className: LABEL_CLASS, children: [
              "Max attempts ",
              /* @__PURE__ */ jsx("span", { className: "normal-case font-normal text-slate-400", children: "(0 = retry forever)" })
            ] }),
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "number",
                min: 0,
                value: action.maxAttempts,
                onChange: (e) => setMaxAttempts(Math.max(0, Number(e.target.value) || 0)),
                className: INPUT_CLASS
              }
            )
          ] }),
          /* @__PURE__ */ jsxs(
            "button",
            {
              type: "button",
              onClick: () => {
                setShowBackoff((s) => !s);
                if (!action.backoff) setBackoff({});
              },
              className: "text-xs text-teal-600 hover:underline",
              children: [
                showBackoff ? "▾" : "▸",
                " Backoff (advanced)"
              ]
            }
          ),
          showBackoff && action.backoff && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-1", children: [
            /* @__PURE__ */ jsxs("div", { children: [
              /* @__PURE__ */ jsx("label", { className: "text-[10px] text-slate-400", children: "base ms" }),
              /* @__PURE__ */ jsx("input", { type: "number", value: action.backoff.baseMs, onChange: (e) => setBackoff({ baseMs: Number(e.target.value) }), className: INPUT_CLASS })
            ] }),
            /* @__PURE__ */ jsxs("div", { children: [
              /* @__PURE__ */ jsx("label", { className: "text-[10px] text-slate-400", children: "× factor" }),
              /* @__PURE__ */ jsx("input", { type: "number", value: action.backoff.factor, onChange: (e) => setBackoff({ factor: Number(e.target.value) }), className: INPUT_CLASS })
            ] }),
            /* @__PURE__ */ jsxs("div", { children: [
              /* @__PURE__ */ jsx("label", { className: "text-[10px] text-slate-400", children: "cap" }),
              /* @__PURE__ */ jsxs("select", { value: action.backoff.capMs, onChange: (e) => setBackoff({ capMs: Number(e.target.value) }), className: INPUT_CLASS, children: [
                BACKOFF_CAP_PRESETS.map((p) => /* @__PURE__ */ jsx("option", { value: p.value, children: p.label }, p.value)),
                !BACKOFF_CAP_PRESETS.some((p) => p.value === action.backoff.capMs) && /* @__PURE__ */ jsxs("option", { value: action.backoff.capMs, children: [
                  action.backoff.capMs,
                  " ms"
                ] })
              ] })
            ] }),
            /* @__PURE__ */ jsxs("div", { children: [
              /* @__PURE__ */ jsx("label", { className: "text-[10px] text-slate-400", children: "jitter (0–1)" }),
              /* @__PURE__ */ jsx("input", { type: "number", step: 0.05, min: 0, max: 0.99, value: action.backoff.jitter, onChange: (e) => setBackoff({ jitter: Number(e.target.value) }), className: INPUT_CLASS })
            ] })
          ] }),
          action.maxAttempts > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-2 rounded-lg border border-slate-200 dark:border-slate-800 p-2", children: [
            /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "On exhausted" }),
            /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: ["ignore", "throw"].map((d) => {
              var _a2;
              return /* @__PURE__ */ jsx(
                "button",
                {
                  type: "button",
                  onClick: () => setOnExhausted(d === "ignore" ? { disposition: "ignore" } : { disposition: "throw", errorCode: "" }),
                  className: `px-2.5 py-1 rounded-md text-xs font-medium border capitalize ${((_a2 = action.onExhausted) == null ? void 0 : _a2.disposition) === d ? "bg-teal-50 border-teal-300 text-teal-700 dark:bg-teal-900/20 dark:border-teal-700" : "border-slate-200 dark:border-slate-700 text-slate-500"}`,
                  children: d
                },
                d
              );
            }) }),
            ((_a = action.onExhausted) == null ? void 0 : _a.disposition) === "ignore" && /* @__PURE__ */ jsx(
              "input",
              {
                value: action.onExhausted.captureVariable || "",
                placeholder: "Capture to variable (optional)",
                onChange: (e) => setOnExhausted({ disposition: "ignore", captureVariable: e.target.value || void 0 }),
                className: INPUT_CLASS
              }
            ),
            ((_b = action.onExhausted) == null ? void 0 : _b.disposition) === "throw" && /* @__PURE__ */ jsx(
              "input",
              {
                value: action.onExhausted.errorCode,
                placeholder: "Error code (e.g. RetriesExhausted)",
                onChange: (e) => setOnExhausted({ disposition: "throw", errorCode: e.target.value }),
                className: INPUT_CLASS
              }
            )
          ] })
        ] }),
        action.disposition === "ignore" && /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "checkbox",
                checked: action.captureVariable !== void 0,
                onChange: (e) => setAction(e.target.checked ? { disposition: "ignore", captureVariable: "errorInfo" } : { disposition: "ignore" })
              }
            ),
            "Capture error to variable"
          ] }),
          action.captureVariable !== void 0 && /* @__PURE__ */ jsx(
            "input",
            {
              value: action.captureVariable,
              onChange: (e) => setAction({ disposition: "ignore", captureVariable: e.target.value }),
              placeholder: "errorInfo",
              className: `${INPUT_CLASS} mt-1`
            }
          )
        ] }),
        action.disposition === "throw" && /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Error code" }),
          /* @__PURE__ */ jsx(
            "input",
            {
              value: action.errorCode,
              onChange: (e) => setAction({ disposition: "throw", errorCode: e.target.value }),
              placeholder: "Conflict",
              className: INPUT_CLASS
            }
          ),
          /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 mt-1", children: "An Error Boundary Event keyed to this code catches it." })
        ] })
      ] }),
      errors.length > 0 && /* @__PURE__ */ jsx("div", { className: "lg:col-span-2 text-xs text-red-600 dark:text-red-400 space-y-0.5", children: errors.map((e, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
        /* @__PURE__ */ jsx(CircleAlert, { size: 12 }),
        " ",
        e.message
      ] }, i)) })
    ] })
  ] });
};
const NEW_RULE = { match: {}, action: { disposition: "throw", errorCode: "" } };
const RuleEditor = ({ rules: rules2, onChange, heading }) => {
  const [collapsed, setCollapsed] = useState(/* @__PURE__ */ new Set());
  const [showPresets, setShowPresets] = useState(false);
  const issues = validateRuleSet(rules2);
  const updateRule = (i, rule) => onChange(rules2.map((r, idx) => idx === i ? rule : r));
  const moveRule = (i, dir) => {
    const j = i + dir;
    if (j < 0 || j >= rules2.length) return;
    const next = [...rules2];
    [next[i], next[j]] = [next[j], next[i]];
    onChange(next);
  };
  const duplicateRule = (i) => {
    const next = [...rules2];
    next.splice(i + 1, 0, JSON.parse(JSON.stringify(rules2[i])));
    onChange(next);
  };
  const deleteRule = (i) => onChange(rules2.filter((_, idx) => idx !== i));
  const addRule = () => onChange([...rules2, JSON.parse(JSON.stringify(NEW_RULE))]);
  const toggleCollapse = (i) => setCollapsed((prev) => {
    const next = new Set(prev);
    next.has(i) ? next.delete(i) : next.add(i);
    return next;
  });
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
      /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0", children: heading }),
      /* @__PURE__ */ jsxs("div", { className: "relative shrink-0", children: [
        /* @__PURE__ */ jsxs(
          "button",
          {
            type: "button",
            onClick: () => setShowPresets((s) => !s),
            className: "flex items-center gap-1 px-2.5 py-1.5 text-xs font-medium rounded-lg border border-slate-200 dark:border-slate-700 text-slate-600 hover:border-teal-400",
            children: [
              /* @__PURE__ */ jsx(Download, { size: 14 }),
              " From preset ▾"
            ]
          }
        ),
        showPresets && /* @__PURE__ */ jsx("div", { className: "absolute right-0 mt-1 z-10 w-64 max-h-80 overflow-y-auto rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 shadow-lg p-1", children: ERROR_RULESET_PRESETS.map((p) => /* @__PURE__ */ jsxs(
          "button",
          {
            type: "button",
            onClick: () => {
              onChange(JSON.parse(JSON.stringify(p.rules)));
              setShowPresets(false);
            },
            className: "w-full text-left px-2 py-1.5 rounded-md hover:bg-slate-100 dark:hover:bg-slate-800",
            children: [
              /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-slate-700 dark:text-slate-200", children: p.name }),
              /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 leading-tight", children: p.description })
            ]
          },
          p.key
        )) })
      ] })
    ] }),
    /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-400", children: "Rules evaluated top-to-bottom; first match wins." }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
      rules2.map((rule, i) => /* @__PURE__ */ jsx(
        RuleCard,
        {
          rule,
          index: i,
          total: rules2.length,
          collapsed: collapsed.has(i),
          issues: issues.filter((iss) => iss.ruleIndex === i),
          onChange: (r) => updateRule(i, r),
          onMove: (dir) => moveRule(i, dir),
          onDuplicate: () => duplicateRule(i),
          onDelete: () => deleteRule(i),
          onToggleCollapse: () => toggleCollapse(i)
        },
        i
      )),
      rules2.length === 0 && /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-dashed border-slate-300 dark:border-slate-700 p-4 text-center text-xs text-slate-400", children: "No custom rules. This task uses the default behaviour: transient errors retry forever, everything else faults." })
    ] }),
    /* @__PURE__ */ jsxs(
      "button",
      {
        type: "button",
        onClick: addRule,
        className: "flex items-center gap-1 px-3 py-2 text-sm font-medium rounded-lg border border-dashed border-slate-300 dark:border-slate-700 text-slate-600 hover:border-teal-400 hover:text-teal-600 w-full justify-center",
        children: [
          /* @__PURE__ */ jsx(Plus, { size: 16 }),
          " Add rule"
        ]
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-slate-50 dark:bg-slate-900/60 border border-slate-200 dark:border-slate-800 px-3 py-2", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-[11px] font-bold text-slate-500 uppercase tracking-wider", children: [
        /* @__PURE__ */ jsx(ShieldCheck, { size: 12 }),
        " Defaults (always applied last)"
      ] }),
      /* @__PURE__ */ jsx("ul", { className: "mt-1 text-[11px] text-slate-500 space-y-0.5", children: IMPLICIT_DEFAULTS.map((d, i) => /* @__PURE__ */ jsxs("li", { children: [
        "• ",
        d
      ] }, i)) })
    ] })
  ] });
};
const RuleSetLibraryModal = ({ onClose }) => {
  const { errorRulesets: lib2 } = useEditorConfig();
  const [editingId, setEditingId] = useState(null);
  const [showPresets, setShowPresets] = useState(false);
  if (!lib2) return null;
  const list2 = lib2.list;
  const editing = editingId ? list2.find((r) => r.id === editingId) : void 0;
  const createBlank = () => {
    const created = lib2.create({ name: `Ruleset ${list2.length + 1}`, rules: [], source: "custom" });
    setEditingId(created.id);
  };
  const createFromPreset = (key) => {
    const preset = ERROR_RULESET_PRESETS.find((p) => p.key === key);
    if (!preset) return;
    lib2.create({ name: preset.name, rules: JSON.parse(JSON.stringify(preset.rules)), source: `from ${preset.name}` });
    setShowPresets(false);
  };
  const duplicate = (rs) => {
    const created = lib2.create({ name: `${rs.name} (copy)`, rules: JSON.parse(JSON.stringify(rs.rules)), source: rs.source });
    setEditingId(created.id);
  };
  const remove = (rs) => {
    const usage = lib2.usageCount(rs.id);
    if (usage > 0) {
      alert(`«${rs.name}» is used by ${usage} node${usage === 1 ? "" : "s"}. Reassign those tasks (to another ruleset, Inline, or Default) before deleting.`);
      return;
    }
    lib2.remove(rs.id);
  };
  return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-[100] flex items-center justify-center bg-slate-900/60 backdrop-blur-sm", onClick: onClose, children: /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-950 rounded-2xl shadow-2xl w-[96vw] max-w-none h-[92vh] flex flex-col border border-slate-200 dark:border-slate-800", onClick: (e) => e.stopPropagation(), children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-5 py-4 border-b border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
        editing && /* @__PURE__ */ jsx("button", { onClick: () => setEditingId(null), className: "p-1 text-slate-400 hover:text-slate-600", title: "Back to list", children: /* @__PURE__ */ jsx(ArrowLeft, { size: 18 }) }),
        /* @__PURE__ */ jsx(ShieldAlert, { size: 18, className: "text-teal-600" }),
        /* @__PURE__ */ jsx("h2", { className: "text-base font-bold text-slate-900 dark:text-slate-100", children: editing ? `Edit «${editing.name}»` : "Error Rulesets (project)" })
      ] }),
      /* @__PURE__ */ jsx("button", { onClick: onClose, className: "p-1 text-slate-400 hover:text-slate-600", children: /* @__PURE__ */ jsx(X, { size: 18 }) })
    ] }),
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children: !editing ? /* @__PURE__ */ jsxs(Fragment, { children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
        /* @__PURE__ */ jsxs("button", { onClick: createBlank, className: "flex items-center gap-1 px-3 py-1.5 text-sm font-medium rounded-lg bg-teal-600 text-white hover:bg-teal-700", children: [
          /* @__PURE__ */ jsx(Plus, { size: 14 }),
          " New"
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "relative", children: [
          /* @__PURE__ */ jsxs("button", { onClick: () => setShowPresets((s) => !s), className: "flex items-center gap-1 px-3 py-1.5 text-sm font-medium rounded-lg border border-slate-200 dark:border-slate-700 text-slate-600 hover:border-teal-400", children: [
            /* @__PURE__ */ jsx(Download, { size: 14 }),
            " From preset ▾"
          ] }),
          showPresets && /* @__PURE__ */ jsx("div", { className: "absolute left-0 mt-1 z-10 w-64 max-h-72 overflow-y-auto rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 shadow-lg p-1", children: ERROR_RULESET_PRESETS.map((p) => /* @__PURE__ */ jsxs("button", { onClick: () => createFromPreset(p.key), className: "w-full text-left px-2 py-1.5 rounded-md hover:bg-slate-100 dark:hover:bg-slate-800", children: [
            /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-slate-700 dark:text-slate-200", children: p.name }),
            /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 leading-tight", children: p.description })
          ] }, p.key)) })
        ] })
      ] }),
      list2.length === 0 ? /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-dashed border-slate-300 dark:border-slate-700 p-6 text-center text-sm text-slate-400", children: "No project rulesets yet. Create one, or seed from a preset — then bind it from any ServiceTask's Error Handling tab." }) : /* @__PURE__ */ jsxs("table", { className: "w-full text-sm", children: [
        /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: "text-left text-[11px] uppercase tracking-wider text-slate-400 border-b border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsx("th", { className: "py-2", children: "Name" }),
          /* @__PURE__ */ jsx("th", { className: "py-2 w-16", children: "Rules" }),
          /* @__PURE__ */ jsx("th", { className: "py-2 w-24", children: "Used by" }),
          /* @__PURE__ */ jsx("th", { className: "py-2", children: "Source" }),
          /* @__PURE__ */ jsx("th", { className: "py-2 w-28" })
        ] }) }),
        /* @__PURE__ */ jsx("tbody", { children: list2.map((rs) => {
          const usage = lib2.usageCount(rs.id);
          const errs = validateRuleSet(rs.rules).filter((i) => i.severity === "error").length;
          return /* @__PURE__ */ jsxs("tr", { className: "border-b border-slate-100 dark:border-slate-800/50", children: [
            /* @__PURE__ */ jsxs("td", { className: "py-2 font-medium text-slate-700 dark:text-slate-200", children: [
              "«",
              rs.name,
              "»",
              errs > 0 && /* @__PURE__ */ jsxs("span", { className: "ml-2 inline-flex items-center gap-0.5 text-[10px] text-red-600", children: [
                /* @__PURE__ */ jsx(CircleAlert, { size: 10 }),
                errs
              ] })
            ] }),
            /* @__PURE__ */ jsx("td", { className: "py-2 text-slate-500", children: rs.rules.length }),
            /* @__PURE__ */ jsxs("td", { className: "py-2 text-slate-500", children: [
              usage,
              " node",
              usage === 1 ? "" : "s"
            ] }),
            /* @__PURE__ */ jsx("td", { className: "py-2 text-slate-400 text-xs", children: rs.source || "custom" }),
            /* @__PURE__ */ jsx("td", { className: "py-2", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 justify-end text-slate-400", children: [
              /* @__PURE__ */ jsx("button", { onClick: () => setEditingId(rs.id), className: "p-1 hover:text-teal-600", title: "Edit", children: /* @__PURE__ */ jsx(PenLine, { size: 14 }) }),
              /* @__PURE__ */ jsx("button", { onClick: () => duplicate(rs), className: "p-1 hover:text-teal-600", title: "Duplicate", children: /* @__PURE__ */ jsx(Copy, { size: 14 }) }),
              /* @__PURE__ */ jsx("button", { onClick: () => remove(rs), className: `p-1 ${usage > 0 ? "opacity-40 cursor-not-allowed" : "hover:text-red-500"}`, title: usage > 0 ? "In use — reassign first" : "Delete", children: /* @__PURE__ */ jsx(Trash2, { size: 14 }) })
            ] }) })
          ] }, rs.id);
        }) })
      ] })
    ] }) : /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Name" }),
        /* @__PURE__ */ jsx("input", { value: editing.name, onChange: (e) => lib2.update(editing.id, { name: e.target.value }), className: INPUT_CLASS })
      ] }),
      /* @__PURE__ */ jsx(
        RuleEditor,
        {
          rules: editing.rules,
          onChange: (rules2) => lib2.update(editing.id, { rules: rules2 }),
          heading: /* @__PURE__ */ jsxs("span", { className: "text-[11px] text-slate-400", children: [
            "used by ",
            lib2.usageCount(editing.id),
            " node(s) — edits apply to all of them"
          ] })
        }
      )
    ] }) })
  ] }) });
};
var NodeCategory = /* @__PURE__ */ ((NodeCategory2) => {
  NodeCategory2["Start"] = "Start Events";
  NodeCategory2["End"] = "End Events";
  NodeCategory2["Task"] = "Tasks";
  NodeCategory2["Gateway"] = "Gateways";
  NodeCategory2["Activity"] = "Activities";
  NodeCategory2["Intermediate"] = "Intermediate Events";
  NodeCategory2["Boundary"] = "Boundary Events";
  return NodeCategory2;
})(NodeCategory || {});
const ERROR_RULESET_KIND = 100;
const ICON_LIBRARY = AllIcons;
const TAB_ICON_MAP = {
  properties: Settings2,
  form: List,
  assignments: Users,
  script: Code,
  http: Globe,
  email: Mail,
  llm: Bot,
  routing: GitFork,
  conditions: GitFork,
  timer: Clock,
  message: Mail,
  signal: Zap,
  database: Database,
  call: Workflow,
  fileimport: Upload,
  extraction: Funnel
};
const resolveTabIcon = (tabId) => {
  const mapped = TAB_ICON_MAP[tabId];
  if (mapped) return mapped;
  const dynamic = ICON_LIBRARY[tabId] || ICON_LIBRARY[tabId.charAt(0).toUpperCase() + tabId.slice(1)];
  return dynamic || Settings2;
};
const CustomNode = ({ id, data, type, selected, isConnectable }) => {
  const { nodeTypes, propertyRegistry, actions } = useEditorConfig();
  const config = nodeTypes[type] || nodeTypes["FormStartEvent"];
  const IconComponent = ICON_LIBRARY[config.icon] || CircleQuestionMark;
  const nodeConfig = propertyRegistry[type] || { tabs: [] };
  const tabs = nodeConfig.tabs || [];
  const getTabIcon = (tabId) => {
    const Icon2 = resolveTabIcon(tabId);
    return /* @__PURE__ */ jsx(Icon2, { size: 10 });
  };
  const getProfile = () => {
    if (data.isConnectableTarget) {
      return {
        border: "border-teal-400 dark:border-teal-500",
        bg: "bg-teal-50 dark:bg-teal-900/30",
        accent: "text-teal-600 dark:text-teal-400",
        ring: "ring-teal-400/20",
        showStatus: false
      };
    }
    if (data.isBoundaryCandidate) {
      return {
        border: "border-teal-500 dark:border-teal-400 scale-105",
        bg: "bg-teal-50/50 dark:bg-teal-900/20",
        accent: "text-teal-600 dark:text-teal-400",
        ring: "ring-teal-500/40 shadow-xl shadow-teal-500/10",
        showStatus: false
      };
    }
    if (data.isPotentialBoundaryTarget) {
      return {
        border: "border-teal-300 dark:border-teal-700 border-dashed",
        bg: "bg-teal-50/10 dark:bg-teal-900/10",
        accent: "text-teal-400 dark:text-teal-500",
        ring: "ring-teal-300/10",
        showStatus: false
      };
    }
    switch (data.status) {
      case "error":
        return {
          border: "border-red-400 dark:border-red-500",
          bg: "bg-red-50 dark:bg-red-900/20",
          accent: "text-red-600 dark:text-red-400",
          statusLabel: "Error",
          statusIconColor: "fill-red-500 dark:fill-red-400",
          badgeBg: "bg-red-600 dark:bg-red-500",
          pillBg: "bg-red-100 text-red-700 hover:bg-red-200 dark:bg-red-900/30 dark:text-red-300 dark:hover:bg-red-900/50",
          pulse: true,
          showStatus: true
        };
      case "waiting":
        return {
          border: "border-amber-300 dark:border-amber-600",
          bg: "bg-amber-50 dark:bg-amber-900/20",
          accent: "text-amber-600 dark:text-amber-400",
          statusLabel: "Suspended",
          statusIconColor: "fill-amber-500 dark:fill-amber-400",
          badgeBg: "bg-amber-600 dark:bg-amber-500",
          pillBg: "bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/30 dark:text-amber-300 dark:hover:bg-amber-900/50",
          showStatus: true
        };
      case "completed":
        return {
          border: "border-teal-500 dark:border-teal-500",
          bg: "bg-white dark:bg-slate-900",
          accent: "text-teal-600 dark:text-teal-400",
          statusLabel: "Completed",
          statusIconColor: "fill-teal-500 dark:fill-teal-400",
          badgeBg: "bg-teal-600 dark:bg-teal-500",
          pillBg: "bg-teal-50 text-teal-700 hover:bg-teal-100 dark:bg-teal-900/30 dark:text-teal-300 dark:hover:bg-teal-900/50",
          showStatus: true
        };
      case "active":
        return {
          border: "border-teal-500 dark:border-teal-500",
          bg: "bg-white dark:bg-slate-900",
          accent: "text-teal-600 dark:text-teal-400",
          statusLabel: "Active",
          statusIconColor: "fill-emerald-500 dark:fill-emerald-400",
          badgeBg: "bg-teal-600 dark:bg-teal-500",
          ring: "ring-teal-500/20",
          pillBg: "bg-teal-50 text-teal-700 hover:bg-teal-100 dark:bg-teal-900/30 dark:text-teal-300 dark:hover:bg-teal-900/50",
          showStatus: true
        };
      case "idle":
      default:
        return {
          border: "border-slate-200 dark:border-slate-700",
          bg: "bg-slate-50 dark:bg-slate-900",
          accent: "text-slate-500 dark:text-slate-400",
          statusLabel: "Inactive",
          statusIconColor: "fill-slate-400 dark:fill-slate-500",
          badgeBg: "bg-slate-600 dark:bg-slate-700",
          pillBg: "bg-white dark:bg-slate-800 text-slate-500 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-slate-700 border border-slate-200 dark:border-slate-700",
          showStatus: false
        };
    }
  };
  const profile = getProfile();
  const isBoundaryEvent2 = config.category === NodeCategory.Boundary;
  const isStartEvent2 = config.category === NodeCategory.Start;
  const isEndEvent2 = config.category === NodeCategory.End;
  const handleStyle = "!w-3 !h-3 !bg-slate-400 dark:!bg-slate-500 !border-2 !border-white dark:!border-slate-800 hover:!bg-teal-500 transition-colors z-50";
  if (isBoundaryEvent2) {
    const isInterrupting = data.cancelActivity !== false;
    return /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
      /* @__PURE__ */ jsxs(
        "div",
        {
          className: `
            relative w-14 h-14 rounded-full border-2 bg-white dark:bg-slate-900 transition-all duration-300
            ${profile.border} ${selected ? "ring-4 ring-teal-500/20 scale-110 shadow-lg" : "shadow-sm group-hover:shadow-md"}
            ${data.monitorSelected ? "ring-4 ring-teal-500/60 shadow-lg" : ""}
            ${isInterrupting ? "border-solid" : "border-dashed"}
          `,
          children: [
            typeof data.monitorCount === "number" && data.monitorCount > 0 && /* @__PURE__ */ jsx("div", { className: "absolute -top-2 -right-2 z-40 min-w-[20px] h-5 px-1 rounded-full bg-teal-600 text-white text-[10px] font-bold flex items-center justify-center shadow-md ring-2 ring-white dark:ring-slate-900", children: data.monitorCount }),
            /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, className: handleStyle, isConnectable }),
            /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", style: { color: config.color }, children: /* @__PURE__ */ jsx(IconComponent, { size: 24, strokeWidth: 2.5 }) }),
            /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: handleStyle, isConnectable })
          ]
        }
      ),
      /* @__PURE__ */ jsx("div", { className: "absolute top-[100%] left-1/2 -translate-x-1/2 pt-1 pointer-events-none w-max max-w-[120px]", children: /* @__PURE__ */ jsx("p", { className: "text-[10px] font-bold text-slate-600 dark:text-slate-300 text-center leading-tight drop-shadow-sm bg-white/80 dark:bg-slate-900/80 px-1 rounded backdrop-blur-sm", children: data.label || config.label }) })
    ] });
  }
  const handlePillClick = (e, tabId) => {
    e.stopPropagation();
    if (actions == null ? void 0 : actions.openModal) {
      actions.openModal(id, tabId);
    }
  };
  return /* @__PURE__ */ jsxs(
    "div",
    {
      className: `
        relative px-4 py-3 rounded-xl border-2 transition-all duration-300 min-w-[220px] max-w-[280px]
        ${profile.bg} ${profile.border}
        ${selected ? `ring-4 ${profile.ring || "ring-teal-500/20"} scale-105 shadow-xl` : "shadow-lg"}
        ${data.monitorSelected ? "ring-4 ring-teal-500/60 shadow-xl" : ""}
        ${data.actorType ? "pr-5" : ""}
      `,
      children: [
        typeof data.monitorCount === "number" && data.monitorCount > 0 && /* @__PURE__ */ jsx("div", { className: "absolute -top-3 -right-3 z-40 min-w-[24px] h-6 px-1.5 rounded-full bg-teal-600 text-white text-xs font-bold flex items-center justify-center shadow-md ring-2 ring-white dark:ring-slate-900", children: data.monitorCount }),
        data.actorType && /* @__PURE__ */ jsx(
          "div",
          {
            className: "absolute top-0 right-0 bottom-0 w-4 rounded-r-[10px] bg-slate-100/70 dark:bg-slate-800/60 border-l border-slate-200/60 dark:border-slate-700/60 flex items-center justify-center overflow-hidden pointer-events-none",
            title: `Actor Type: ${data.actorType}`,
            children: /* @__PURE__ */ jsx(
              "span",
              {
                className: "text-[9px] font-medium tracking-wide text-slate-500 dark:text-slate-400 whitespace-nowrap",
                style: { writingMode: "vertical-rl", transform: "rotate(180deg)" },
                children: data.actorType
              }
            )
          }
        ),
        /* @__PURE__ */ jsx("div", { className: `
        absolute -top-3 left-4 px-2 py-0.5 rounded-full text-[9px] font-bold text-white uppercase tracking-widest
        ${profile.badgeBg} ${profile.pulse ? "animate-pulse" : ""}
      `, children: data.status === "error" ? "Cycle Error" : data.categoryLabel || config.category }),
        data.hasBreakpoint && /* @__PURE__ */ jsx("div", { className: "absolute -top-1.5 -right-1.5 w-4 h-4 bg-red-500 rounded-full border-2 border-white z-30 shadow-md flex items-center justify-center animate-pulse", children: /* @__PURE__ */ jsx("div", { className: "w-1.5 h-1.5 bg-white rounded-full" }) }),
        !isStartEvent2 && (() => {
          var _a, _b;
          const showAll = data.isConnectableTarget === true;
          const leftUsed = ((_a = data.targetHandleUsage) == null ? void 0 : _a.left) ?? false;
          const topUsed = ((_b = data.targetHandleUsage) == null ? void 0 : _b.top) ?? false;
          const showLeft = showAll || leftUsed || !topUsed;
          const showTop = showAll || topUsed;
          const hiddenStyle = "!opacity-0 !pointer-events-none";
          return /* @__PURE__ */ jsxs(Fragment, { children: [
            /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, id: "t-left", className: `${handleStyle} ${showLeft ? "" : hiddenStyle}`, isConnectable }),
            /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, id: "t-top", className: `${handleStyle} ${showTop ? "" : hiddenStyle}`, isConnectable })
          ] });
        })(),
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
          /* @__PURE__ */ jsx("div", { className: `p-2 rounded-xl bg-slate-100 dark:bg-slate-800 shrink-0 ${profile.accent}`, children: /* @__PURE__ */ jsx(IconComponent, { size: 20, strokeWidth: 2.5 }) }),
          /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-hidden", children: [
            /* @__PURE__ */ jsx("h3", { className: "text-sm font-bold text-slate-800 dark:text-slate-200 truncate leading-tight", children: data.label || config.label }),
            /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-500 dark:text-slate-400 truncate italic font-medium", children: data.description || config.description || "No description..." })
          ] })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "mt-3 pt-2 border-t border-slate-200/50 dark:border-slate-700/50 flex items-center justify-between min-h-[24px]", children: [
          /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 overflow-hidden no-scrollbar", children: !data.monitorMode && tabs.map((tab) => /* @__PURE__ */ jsx(
            "button",
            {
              onClick: (e) => handlePillClick(e, tab.id),
              title: tab.label,
              className: `flex items-center justify-center w-5 h-5 rounded-md transition-all shrink-0 ${profile.pillBg}`,
              children: getTabIcon(tab.id)
            },
            tab.id
          )) }),
          profile.showStatus && /* @__PURE__ */ jsxs("div", { className: `flex items-center gap-1 text-[9px] font-bold uppercase ${profile.accent} animate-in fade-in duration-300 ml-2`, children: [
            /* @__PURE__ */ jsx(Circle, { size: 8, className: `${profile.statusIconColor} transition-colors` }),
            " ",
            profile.statusLabel
          ] })
        ] }),
        !isEndEvent2 && (() => {
          const isGateway2 = type === "XorGateway" || type === "InclusiveGateway" || type === "ParallelGateway";
          const isSplitting = isGateway2 && !data.isMerging;
          const outputs = data.outputs || [];
          if (isSplitting && outputs.length > 0) {
            return outputs.map((_label, idx) => {
              const spacing = 100 / (outputs.length + 1);
              const topPercent = spacing * (idx + 1);
              return /* @__PURE__ */ jsx(
                Handle,
                {
                  type: "source",
                  position: Position.Right,
                  id: String(idx),
                  className: handleStyle,
                  style: { top: `${topPercent}%`, right: "-6px" },
                  isConnectable
                },
                `out-${idx}`
              );
            });
          }
          return /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: handleStyle, style: { right: "-6px" }, isConnectable });
        })(),
        (config.category === NodeCategory.Task || config.category === NodeCategory.Activity) && /* @__PURE__ */ jsx(
          Handle,
          {
            type: "source",
            position: Position.Bottom,
            id: "boundary",
            className: "!absolute !w-[32px] !h-[6px] !rounded-[2px] !bg-slate-300 dark:!bg-slate-600 !border-2 !border-white dark:!border-slate-800 hover:!bg-teal-500 transition-colors z-50 opacity-0 hover:opacity-100",
            title: "Attach Boundary Event",
            isConnectable
          }
        )
      ]
    }
  );
};
const CustomNode$1 = memo(CustomNode);
const DeletableEdge = ({
  id,
  sourceX,
  sourceY,
  targetX,
  targetY,
  sourcePosition,
  targetPosition,
  style = {},
  markerEnd,
  label,
  animated,
  selected
}) => {
  const { setEdges } = useReactFlow();
  const [hovered, setHovered] = useState(false);
  const [edgePath, labelX, labelY] = getBezierPath({
    sourceX,
    sourceY,
    sourcePosition,
    targetX,
    targetY,
    targetPosition
  });
  const onDelete = (event) => {
    event.stopPropagation();
    setEdges((edges) => edges.filter((e) => e.id !== id));
  };
  const showButton = hovered || selected;
  return /* @__PURE__ */ jsxs(Fragment, { children: [
    /* @__PURE__ */ jsx(
      "path",
      {
        id,
        style,
        className: `react-flow__edge-path${animated ? " animated" : ""}`,
        d: edgePath,
        markerEnd
      }
    ),
    /* @__PURE__ */ jsx(
      "path",
      {
        d: edgePath,
        fill: "none",
        stroke: "transparent",
        strokeWidth: 40,
        pointerEvents: "stroke",
        onMouseEnter: () => setHovered(true),
        onMouseLeave: () => setHovered(false)
      }
    ),
    label && /* @__PURE__ */ jsx(EdgeLabelRenderer, { children: /* @__PURE__ */ jsx(
      "div",
      {
        style: {
          position: "absolute",
          transform: `translate(-50%, -130%) translate(${labelX}px,${labelY}px)`,
          pointerEvents: "all"
        },
        className: "text-xs text-slate-500 dark:text-slate-400 bg-white dark:bg-slate-900 px-1.5 py-0.5 rounded border border-slate-200 dark:border-slate-700",
        children: label
      }
    ) }),
    /* @__PURE__ */ jsx(EdgeLabelRenderer, { children: /* @__PURE__ */ jsx(
      "button",
      {
        className: "edge-delete-btn",
        style: {
          position: "absolute",
          transform: `translate(-50%, -50%) translate(${labelX}px,${labelY}px)`,
          pointerEvents: "all",
          opacity: showButton ? 1 : 0
        },
        onClick: onDelete,
        onMouseEnter: () => setHovered(true),
        onMouseLeave: () => setHovered(false),
        children: "×"
      }
    ) })
  ] });
};
const MIN_LANE_WIDTH = 240;
const MIN_LANE_HEIGHT = 120;
const DEFAULT_EDGE_STROKE$1 = "#94a3b8";
const BYTES_PER_MB = 1024 * 1024;
const DEFAULT_LANE_WIDTH = 1600;
const DEFAULT_LANE_HEIGHT = 240;
const LANE_HEADER_WIDTH = 44;
const DEFAULT_LANE_COLOR = "#94a3b8";
const REMOVE_BUTTON_ICON_COLOR = "#64748b";
const swimlaneAtPoint = (x, y, lanes) => {
  for (let i = lanes.length - 1; i >= 0; i--) {
    const l = lanes[i];
    if (x >= l.x && x <= l.x + l.width && y >= l.y && y <= l.y + l.height) {
      return l;
    }
  }
  return null;
};
const transformSelector = (s) => s.transform;
const toRgba = (hex, alpha) => {
  const m = hex.replace("#", "");
  const full = m.length === 3 ? m.split("").map((c) => c + c).join("") : m;
  const r = parseInt(full.slice(0, 2), 16);
  const g = parseInt(full.slice(2, 4), 16);
  const b = parseInt(full.slice(4, 6), 16);
  return `rgba(${r}, ${g}, ${b}, ${alpha})`;
};
const Swimlanes = ({
  swimlanes,
  selectedSwimlaneId,
  onSelect,
  onMoveBy,
  onResize,
  onRemove
}) => {
  const [tx, ty, zoom] = useStore(transformSelector);
  const dragRef = useRef(null);
  const resizeRef = useRef(null);
  const beginMove = useCallback((e, lane) => {
    e.stopPropagation();
    e.preventDefault();
    onSelect(lane.id);
    dragRef.current = {
      id: lane.id,
      startX: e.clientX,
      startY: e.clientY,
      lastDx: 0,
      lastDy: 0
    };
    const onMouseMove = (ev) => {
      const s = dragRef.current;
      if (!s) return;
      const totalDx = (ev.clientX - s.startX) / zoom;
      const totalDy = (ev.clientY - s.startY) / zoom;
      const stepDx = totalDx - s.lastDx;
      const stepDy = totalDy - s.lastDy;
      s.lastDx = totalDx;
      s.lastDy = totalDy;
      if (stepDx !== 0 || stepDy !== 0) {
        onMoveBy(s.id, stepDx, stepDy);
      }
    };
    const onMouseUp = () => {
      dragRef.current = null;
      window.removeEventListener("mousemove", onMouseMove);
      window.removeEventListener("mouseup", onMouseUp);
    };
    window.addEventListener("mousemove", onMouseMove);
    window.addEventListener("mouseup", onMouseUp);
  }, [onSelect, onMoveBy, zoom]);
  const beginResize = useCallback((e, lane) => {
    e.stopPropagation();
    e.preventDefault();
    onSelect(lane.id);
    resizeRef.current = {
      id: lane.id,
      startX: e.clientX,
      startY: e.clientY,
      origW: lane.width,
      origH: lane.height
    };
    const onMouseMove = (ev) => {
      const s = resizeRef.current;
      if (!s) return;
      const dx = (ev.clientX - s.startX) / zoom;
      const dy = (ev.clientY - s.startY) / zoom;
      const w = Math.max(MIN_LANE_WIDTH, s.origW + dx);
      const h = Math.max(MIN_LANE_HEIGHT, s.origH + dy);
      onResize(s.id, w, h);
    };
    const onMouseUp = () => {
      resizeRef.current = null;
      window.removeEventListener("mousemove", onMouseMove);
      window.removeEventListener("mouseup", onMouseUp);
    };
    window.addEventListener("mousemove", onMouseMove);
    window.addEventListener("mouseup", onMouseUp);
  }, [onSelect, onResize, zoom]);
  const transformStyle = {
    transform: `translate(${tx}px, ${ty}px) scale(${zoom})`,
    transformOrigin: "0 0",
    position: "absolute",
    top: 0,
    left: 0
  };
  return /* @__PURE__ */ jsxs(Fragment, { children: [
    /* @__PURE__ */ jsx(
      "div",
      {
        className: "absolute inset-0 overflow-hidden pointer-events-none",
        style: { zIndex: 0 },
        children: /* @__PURE__ */ jsx("div", { style: transformStyle, children: swimlanes.map((lane) => {
          const color = lane.color || DEFAULT_LANE_COLOR;
          const isSelected = lane.id === selectedSwimlaneId;
          return /* @__PURE__ */ jsx(
            "div",
            {
              style: {
                position: "absolute",
                left: lane.x,
                top: lane.y,
                width: lane.width,
                height: lane.height,
                background: toRgba(color, 0.12),
                border: isSelected ? `2px solid ${color}` : `1px solid ${toRgba(color, 0.6)}`,
                // Bottom-right corner is square so the resize handle sits
                // cleanly on the border intersection.
                borderRadius: "8px 8px 0 8px",
                boxSizing: "border-box"
              }
            },
            lane.id + "-bg"
          );
        }) })
      }
    ),
    /* @__PURE__ */ jsx(
      "div",
      {
        className: "absolute inset-0 overflow-hidden pointer-events-none",
        style: { zIndex: 5 },
        children: /* @__PURE__ */ jsx("div", { style: transformStyle, children: swimlanes.map((lane) => {
          const color = lane.color || DEFAULT_LANE_COLOR;
          const isSelected = lane.id === selectedSwimlaneId;
          return /* @__PURE__ */ jsxs(React.Fragment, { children: [
            /* @__PURE__ */ jsx(
              "div",
              {
                onMouseDown: (e) => beginMove(e, lane),
                style: {
                  position: "absolute",
                  left: lane.x,
                  top: lane.y,
                  width: LANE_HEADER_WIDTH,
                  height: lane.height,
                  background: color,
                  opacity: isSelected ? 0.95 : 0.85,
                  cursor: "move",
                  pointerEvents: "auto",
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "center",
                  borderTopLeftRadius: 6,
                  borderBottomLeftRadius: 6,
                  boxShadow: isSelected ? `0 0 0 2px ${color}` : "none"
                },
                title: "Drag to move swimlane",
                children: /* @__PURE__ */ jsx(
                  "div",
                  {
                    style: {
                      transform: "rotate(-90deg)",
                      color: "white",
                      fontWeight: 600,
                      fontSize: 13,
                      letterSpacing: "0.05em",
                      whiteSpace: "nowrap",
                      userSelect: "none",
                      textShadow: "0 1px 2px rgba(0,0,0,0.35)"
                    },
                    children: lane.name
                  }
                )
              }
            ),
            /* @__PURE__ */ jsx(
              "button",
              {
                onMouseDown: (e) => {
                  e.stopPropagation();
                },
                onClick: (e) => {
                  e.stopPropagation();
                  onRemove(lane.id);
                },
                style: {
                  position: "absolute",
                  top: lane.y + 6,
                  left: lane.x + lane.width - 28,
                  width: 22,
                  height: 22,
                  borderRadius: 4,
                  background: "rgba(255,255,255,0.9)",
                  border: "1px solid rgba(148,163,184,0.6)",
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "center",
                  cursor: "pointer",
                  color: REMOVE_BUTTON_ICON_COLOR,
                  pointerEvents: "auto"
                },
                title: "Remove swimlane",
                children: /* @__PURE__ */ jsx(X, { size: 12 })
              }
            ),
            /* @__PURE__ */ jsx(
              "div",
              {
                onMouseDown: (e) => beginResize(e, lane),
                style: {
                  position: "absolute",
                  // Anchor so the SVG's bottom-right (14,14) sits ON the
                  // lane's bottom-right corner (lane.x+width, lane.y+height).
                  left: lane.x + lane.width - 14,
                  top: lane.y + lane.height - 14,
                  width: 14,
                  height: 14,
                  cursor: "nwse-resize",
                  pointerEvents: "auto",
                  background: "transparent"
                },
                title: "Drag to resize",
                children: /* @__PURE__ */ jsxs(
                  "svg",
                  {
                    width: "14",
                    height: "14",
                    viewBox: "0 0 14 14",
                    style: { display: "block" },
                    fill: "none",
                    children: [
                      /* @__PURE__ */ jsx("line", { x1: "14", y1: "4", x2: "4", y2: "14", stroke: color, strokeWidth: "2", strokeLinecap: "round" }),
                      /* @__PURE__ */ jsx("line", { x1: "14", y1: "9", x2: "9", y2: "14", stroke: color, strokeWidth: "2", strokeLinecap: "round" })
                    ]
                  }
                )
              }
            )
          ] }, lane.id + "-ui");
        }) })
      }
    )
  ] });
};
const PaneContextMenu = ({ x, y, items, onClose }) => {
  const ref = useRef(null);
  useEffect(() => {
    const onDoc = (e) => {
      if (ref.current && !ref.current.contains(e.target)) onClose();
    };
    const onKey = (e) => {
      if (e.key === "Escape") onClose();
    };
    const t = window.setTimeout(() => {
      window.addEventListener("mousedown", onDoc);
      window.addEventListener("keydown", onKey);
    }, 0);
    return () => {
      window.clearTimeout(t);
      window.removeEventListener("mousedown", onDoc);
      window.removeEventListener("keydown", onKey);
    };
  }, [onClose]);
  return /* @__PURE__ */ jsx(
    "div",
    {
      ref,
      className: "fixed z-50 min-w-[180px] rounded-md border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 shadow-lg py-1 text-sm",
      style: { left: x, top: y },
      onContextMenu: (e) => e.preventDefault(),
      children: items.map((item, i) => /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => {
            item.onClick();
            onClose();
          },
          className: "w-full flex items-center gap-2 px-3 py-1.5 text-left text-slate-700 dark:text-slate-200 hover:bg-slate-100 dark:hover:bg-slate-800",
          children: [
            item.icon ?? /* @__PURE__ */ jsx(Columns3, { size: 14, className: "text-slate-400" }),
            /* @__PURE__ */ jsx("span", { children: item.label })
          ]
        },
        i
      ))
    }
  );
};
const LoadingOverlay = ({ message = "Loading...", isVisible }) => {
  if (!isVisible) return null;
  return /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-[60] bg-white/80 dark:bg-slate-950/80 backdrop-blur-sm flex flex-col items-center justify-center animate-in fade-in duration-200", children: [
    /* @__PURE__ */ jsx(LoaderCircle, { className: "h-10 w-10 text-teal-600 animate-spin mb-4" }),
    /* @__PURE__ */ jsx("p", { className: "text-sm font-bold text-slate-700 dark:text-slate-200", children: message })
  ] });
};
const CanvasSearch = ({
  query,
  onQueryChange,
  matchCount,
  activeIndex,
  onNext,
  onClear
}) => {
  const inputRef = useRef(null);
  useEffect(() => {
    const handleKeyDown2 = (e) => {
      var _a, _b;
      if ((e.ctrlKey || e.metaKey) && e.key === "f") {
        e.preventDefault();
        (_a = inputRef.current) == null ? void 0 : _a.focus();
      }
      if (e.key === "Escape" && document.activeElement === inputRef.current) {
        (_b = inputRef.current) == null ? void 0 : _b.blur();
      }
    };
    window.addEventListener("keydown", handleKeyDown2);
    return () => window.removeEventListener("keydown", handleKeyDown2);
  }, []);
  const handleKeyDown = (e) => {
    if (e.key === "Enter" && matchCount > 0) {
      onNext();
    }
  };
  return /* @__PURE__ */ jsx("div", { className: "absolute top-4 left-4 z-10 w-full px-4 md:px-0 md:w-80 animate-in fade-in slide-in-from-top-2 duration-300", children: /* @__PURE__ */ jsxs("div", { className: "relative flex items-center bg-white/95 dark:bg-slate-900/95 backdrop-blur shadow-lg border border-slate-200 dark:border-slate-800 rounded-xl overflow-hidden transition-all focus-within:ring-2 focus-within:ring-teal-500/30 focus-within:border-teal-500", children: [
    /* @__PURE__ */ jsx("div", { className: "pl-3 text-slate-400", children: /* @__PURE__ */ jsx(Search, { size: 16 }) }),
    /* @__PURE__ */ jsx(
      "input",
      {
        ref: inputRef,
        type: "text",
        value: query,
        onChange: (e) => onQueryChange(e.target.value),
        onKeyDown: handleKeyDown,
        placeholder: "Search nodes... (Ctrl+F)",
        className: "flex-1 px-3 py-2.5 text-sm bg-transparent outline-none text-slate-800 dark:text-slate-100 placeholder-slate-400"
      }
    ),
    query && /* @__PURE__ */ jsxs("div", { className: "flex items-center pr-1 gap-1", children: [
      matchCount > 0 ? /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: onNext,
          className: "flex items-center gap-1.5 px-2 py-1 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-800 transition-colors group",
          title: "Next match",
          children: [
            /* @__PURE__ */ jsxs("span", { className: "text-[10px] font-bold text-slate-500 dark:text-slate-400 font-mono", children: [
              activeIndex + 1,
              "/",
              matchCount
            ] }),
            /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "text-slate-400 group-hover:text-teal-600" })
          ]
        }
      ) : /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold text-red-500 px-2 uppercase tracking-tighter", children: "No results" }),
      /* @__PURE__ */ jsx("div", { className: "w-px h-4 bg-slate-200 dark:bg-slate-800 mx-1" }),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onClear,
          className: "p-1.5 text-slate-400 hover:text-slate-600 dark:hover:text-slate-300 rounded-md transition-colors",
          title: "Clear search",
          children: /* @__PURE__ */ jsx(X, { size: 14 })
        }
      )
    ] })
  ] }) });
};
const useSearch = ({ nodes, onSelectNode }) => {
  const [query, setQuery] = useState("");
  const [activeIndex, setActiveIndex] = useState(-1);
  const { setCenter } = useReactFlow();
  const matches = useMemo(() => {
    if (!query.trim()) return [];
    const lowerQuery = query.toLowerCase();
    return nodes.filter(
      (node) => {
        var _a, _b;
        return ((_a = node.data.label) == null ? void 0 : _a.toLowerCase().includes(lowerQuery)) || ((_b = node.data.description) == null ? void 0 : _b.toLowerCase().includes(lowerQuery));
      }
    ).map((node) => node.id);
  }, [nodes, query]);
  useEffect(() => {
    if (matches.length > 0) {
      setActiveIndex(0);
    } else {
      setActiveIndex(-1);
    }
  }, [matches.length]);
  const navigateToMatch = useCallback((index2, isInitial = false) => {
    if (index2 < 0 || index2 >= matches.length) return;
    const nodeId = matches[index2];
    const node = nodes.find((n) => n.id === nodeId);
    if (node) {
      onSelectNode(nodeId);
      const centerX = node.position.x + 90;
      const centerY = node.position.y + 32;
      setCenter(centerX, centerY, {
        zoom: 1.2,
        duration: isInitial ? 800 : 600
      });
    }
  }, [matches, nodes, onSelectNode, setCenter]);
  useEffect(() => {
    if (activeIndex >= 0) {
      navigateToMatch(activeIndex, activeIndex === 0);
    }
  }, [activeIndex, navigateToMatch]);
  const nextMatch = () => {
    if (matches.length === 0) return;
    setActiveIndex((prev) => (prev + 1) % matches.length);
  };
  const handleSearchChange = (val) => {
    setQuery(val);
  };
  return {
    query,
    setQuery: handleSearchChange,
    matches,
    activeIndex,
    nextMatch
  };
};
const CANVAS_STATUS_COLORS = {
  error: "#ef4444",
  // Red 500
  active: "#14b8a6",
  // Teal 500
  completed: "#10b981",
  // Emerald 500
  default: "#94a3b8"
  // Slate 400 — also used for neutral edge strokes
};
const CANVAS_BACKGROUND_COLORS = {
  light: "#cbd5e1",
  // Slate 300
  dark: "#334155"
  // Slate 700
};
const NODE_CATEGORIES = [
  NodeCategory.Start,
  NodeCategory.Task,
  NodeCategory.Gateway,
  NodeCategory.Activity,
  NodeCategory.Intermediate,
  NodeCategory.Boundary,
  NodeCategory.End
];
const miniMapNodeStrokeColor$1 = (n) => {
  var _a;
  const status = (_a = n.data) == null ? void 0 : _a.status;
  if (status === "error") return CANVAS_STATUS_COLORS.error;
  if (status === "active") return CANVAS_STATUS_COLORS.active;
  if (status === "completed") return CANVAS_STATUS_COLORS.completed;
  return CANVAS_STATUS_COLORS.default;
};
const edgeTypes = { deletable: DeletableEdge };
const WorkflowEditor = (props) => {
  var _a;
  const reactFlowWrapper = useRef(null);
  const { nodeTypes: configNodeTypes } = useEditorConfig();
  const { theme } = useTheme();
  const { screenToFlowPosition } = useReactFlow();
  const [paneMenu, setPaneMenu] = useState(null);
  const onPaneContextMenu = useCallback((event) => {
    event.preventDefault();
    const flow = screenToFlowPosition({ x: event.clientX, y: event.clientY });
    setPaneMenu({
      screenX: event.clientX,
      screenY: event.clientY,
      flowX: flow.x,
      flowY: flow.y
    });
  }, [screenToFlowPosition]);
  const closePaneMenu = useCallback(() => setPaneMenu(null), []);
  const monitorNoop = useCallback(() => {
  }, []);
  const [isRuleSetLibraryOpen, setIsRuleSetLibraryOpen] = useState(false);
  const nodeTypes = useMemo(() => {
    const types = {};
    Object.keys(configNodeTypes).forEach((key) => {
      types[key] = CustomNode$1;
    });
    return types;
  }, [configNodeTypes]);
  const { query, setQuery, matches, activeIndex, nextMatch } = useSearch({
    nodes: props.nodes,
    onSelectNode: (id) => {
      const node = props.nodes.find((n) => n.id === id);
      if (node) props.onNodeClick({}, node);
    }
  });
  const activeProcessName = ((_a = props.processes.find((p) => p.id === props.activeProcessId)) == null ? void 0 : _a.name) || "Project";
  return /* @__PURE__ */ jsxs("div", { className: `flex flex-col h-full w-full overflow-hidden bg-slate-50 dark:bg-slate-950 text-slate-900 dark:text-slate-100 font-sans relative ${theme}`, children: [
    /* @__PURE__ */ jsx(LoadingOverlay, { isVisible: props.isLoading, message: "Processing..." }),
    props.monitorMode && /* @__PURE__ */ jsx("style", { children: `.react-flow__edgelabel-renderer { pointer-events: none !important; }` }),
    !props.monitorMode && /* @__PURE__ */ jsx(
      TopBar,
      {
        simulationState: props.simulationState,
        onToggleSimulation: props.onToggleSimulation,
        onReset: props.onResetSimulation,
        onExport: props.onSaveProject,
        onImport: props.onLoadProject,
        onSave: props.onSave,
        onSaveAndQuit: props.onSaveAndQuit,
        onBack: props.onBack,
        processes: props.processes,
        activeProcessId: props.activeProcessId,
        onSelectProcess: props.onSelectProcess,
        onCreateProcess: props.onCreateProcess,
        onCreateSubProcess: props.onCreateSubProcess,
        onDeleteProcess: props.onDeleteProcess,
        currentNodes: props.nodes,
        onAutoLayout: props.onAutoLayout,
        onOpenRuleSetLibrary: () => setIsRuleSetLibraryOpen(true),
        autoSaveState: props.autoSaveState,
        validationErrors: props.validationErrors,
        validationWarnings: props.validationWarnings,
        processIssueCounts: props.processIssueCounts
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "flex flex-1 overflow-hidden relative", onDragLeave: props.onDragLeave, children: [
      !props.monitorMode && /* @__PURE__ */ jsx(Sidebar, {}),
      /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col h-full relative min-w-0", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex-1 relative h-full bg-slate-100 dark:bg-slate-950/50", ref: reactFlowWrapper, children: [
          !props.monitorMode && /* @__PURE__ */ jsx(
            CanvasSearch,
            {
              query,
              onQueryChange: setQuery,
              matchCount: matches.length,
              activeIndex,
              onNext: nextMatch,
              onClear: () => setQuery("")
            }
          ),
          /* @__PURE__ */ jsxs(
            ReactFlow,
            {
              nodes: props.nodes,
              edges: props.edges,
              onNodesChange: props.onNodesChange,
              onEdgesChange: props.onEdgesChange,
              onConnect: props.onConnect,
              onConnectStart: props.onConnectStart,
              onConnectEnd: props.onConnectEnd,
              onDrop: props.onDrop,
              onDragOver: props.onDragOver,
              onNodeClick: props.onNodeClick,
              onEdgeClick: props.onEdgeClick,
              onPaneClick: props.onPaneClick,
              onSelectionChange: props.onSelectionChange,
              onNodeDoubleClick: props.onNodeDoubleClick,
              onNodeContextMenu: props.monitorMode ? void 0 : props.onNodeContextMenu,
              onPaneContextMenu: props.monitorMode ? void 0 : onPaneContextMenu,
              onNodeDragStop: props.onNodeDragStop,
              nodeTypes,
              edgeTypes,
              fitView: true,
              style: { width: "100%", height: "100%" },
              proOptions: { hideAttribution: true },
              snapToGrid: true,
              snapGrid: [15, 15],
              nodesDraggable: !props.monitorMode,
              nodesConnectable: !props.monitorMode,
              elementsSelectable: !props.monitorMode,
              deleteKeyCode: props.monitorMode ? null : ["Backspace", "Delete"],
              defaultEdgeOptions: {
                type: "deletable",
                interactionWidth: 20,
                style: { strokeWidth: 2, stroke: CANVAS_STATUS_COLORS.default }
              },
              children: [
                /* @__PURE__ */ jsx(Controls, { className: "bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 shadow-sm !text-slate-600 dark:!text-slate-400 rounded-lg" }),
                /* @__PURE__ */ jsx(
                  MiniMap,
                  {
                    nodeStrokeColor: miniMapNodeStrokeColor$1,
                    zoomable: true,
                    pannable: true,
                    className: "!bg-white dark:!bg-slate-900 !border !border-slate-200 dark:!border-slate-800 !shadow-sm !rounded-xl"
                  }
                ),
                /* @__PURE__ */ jsx(
                  Background,
                  {
                    color: theme === "dark" ? CANVAS_BACKGROUND_COLORS.dark : CANVAS_BACKGROUND_COLORS.light,
                    gap: 20,
                    size: 1,
                    variant: BackgroundVariant.Dots
                  }
                ),
                /* @__PURE__ */ jsx(
                  Swimlanes,
                  {
                    swimlanes: props.swimlanes,
                    selectedSwimlaneId: props.monitorMode ? null : props.selectedSwimlaneId,
                    onSelect: props.monitorMode ? monitorNoop : props.selectSwimlane,
                    onMoveBy: props.monitorMode ? monitorNoop : props.moveSwimlaneBy,
                    onResize: props.monitorMode ? monitorNoop : props.resizeSwimlane,
                    onRemove: props.monitorMode ? monitorNoop : props.removeSwimlane
                  }
                )
              ]
            }
          )
        ] }),
        !props.monitorMode && /* @__PURE__ */ jsx(
          BottomPanel,
          {
            simulationState: props.simulationState,
            issues: props.validationIssues,
            onFocusNode: props.onFocusNode
          }
        )
      ] }),
      !props.monitorMode && /* @__PURE__ */ jsx(
        PropertiesPanel,
        {
          selectedNode: props.selectedNode,
          selectedEdge: props.selectedEdge,
          selectedSwimlane: props.swimlanes.find((l) => l.id === props.selectedSwimlaneId) || null,
          renameSwimlane: props.renameSwimlane,
          moveSwimlane: props.moveSwimlane,
          resizeSwimlane: props.resizeSwimlane,
          setSwimlaneColor: props.setSwimlaneColor,
          removeSwimlane: props.removeSwimlane,
          nodes: props.nodes,
          edges: props.edges,
          activeProcess: props.processes.find((p) => p.id === props.activeProcessId),
          updateNodeData: props.updateNodeData,
          updateEdgeData: props.updateEdgeData,
          updateProcessData: props.onUpdateProcess,
          onOpenModal: () => props.setIsModalOpen(true),
          variableContext: props.variableContext,
          onRenameNode: props.onRenameNode,
          validationIssues: props.validationIssues
        }
      )
    ] }),
    !props.monitorMode && /* @__PURE__ */ jsx(
      NodeModal,
      {
        isOpen: props.isModalOpen,
        onClose: () => props.setIsModalOpen(false),
        selectedNode: props.selectedNode,
        updateNodeData: props.updateNodeData,
        variableContext: props.variableContext,
        activeTabId: props.activeTabId,
        setActiveTabId: props.setActiveTabId
      }
    ),
    !props.monitorMode && /* @__PURE__ */ jsx(
      DeploymentModal,
      {
        isOpen: props.isDeployModalOpen,
        onClose: () => props.setIsDeployModalOpen(false),
        projectName: activeProcessName
      }
    ),
    !props.monitorMode && isRuleSetLibraryOpen && /* @__PURE__ */ jsx(RuleSetLibraryModal, { onClose: () => setIsRuleSetLibraryOpen(false) }),
    paneMenu && /* @__PURE__ */ jsx(
      PaneContextMenu,
      {
        x: paneMenu.screenX,
        y: paneMenu.screenY,
        onClose: closePaneMenu,
        items: [
          {
            label: "Add Swimlane",
            icon: /* @__PURE__ */ jsx(Columns3, { size: 14, className: "text-sky-500" }),
            onClick: () => props.addSwimlane({ x: paneMenu.flowX, y: paneMenu.flowY })
          }
        ]
      }
    )
  ] });
};
const UserTaskSimulationForm = ({ node, onNext }) => {
  var _a;
  const [formData, setFormData] = useState({});
  useEffect(() => {
    var _a2;
    const fields2 = ((_a2 = node.data.formSchema) == null ? void 0 : _a2.fields) || [];
    const initialData = {};
    fields2.forEach((field) => {
      if (field.key) {
        initialData[field.key] = field.type === "boolean" ? false : "";
      }
    });
    setFormData(initialData);
  }, [node.id]);
  const fields = ((_a = node.data.formSchema) == null ? void 0 : _a.fields) || [];
  const handleChange = (key, value) => {
    setFormData((prev) => ({ ...prev, [key]: value }));
  };
  const displayValue = (v) => {
    if (v === void 0 || v === null || typeof v === "boolean") return "";
    return v;
  };
  const handleSubmit = (e) => {
    e.preventDefault();
    onNext(formData);
  };
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider mb-2", children: [
        /* @__PURE__ */ jsx(User, { size: 12 }),
        /* @__PURE__ */ jsx("span", { children: node.type === "FormStartEvent" ? "Start Form" : "User Input" })
      ] }),
      /* @__PURE__ */ jsxs("form", { id: "user-task-form", onSubmit: handleSubmit, className: "space-y-4", children: [
        fields.map((field, idx) => {
          var _a2;
          return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
            /* @__PURE__ */ jsxs("label", { className: "text-xs font-medium text-slate-700 dark:text-slate-300", children: [
              field.label,
              field.required && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-1", children: "*" })
            ] }),
            field.type === "select" ? /* @__PURE__ */ jsxs(
              "select",
              {
                className: "w-full px-3 py-2 text-sm border rounded-lg bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 transition-all",
                onChange: (e) => handleChange(field.key, e.target.value),
                value: displayValue(formData[field.key]),
                required: field.required,
                children: [
                  /* @__PURE__ */ jsx("option", { value: "", children: "Select..." }),
                  (_a2 = field.options) == null ? void 0 : _a2.split(",").map((opt) => /* @__PURE__ */ jsx("option", { value: opt.trim(), children: opt.trim() }, opt.trim()))
                ]
              }
            ) : field.type === "textarea" ? /* @__PURE__ */ jsx(
              "textarea",
              {
                className: "w-full px-3 py-2 text-sm border rounded-lg bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 transition-all",
                placeholder: field.placeholder,
                onChange: (e) => handleChange(field.key, e.target.value),
                value: displayValue(formData[field.key]),
                required: field.required,
                rows: 4
              }
            ) : /* @__PURE__ */ jsx(
              "input",
              {
                type: field.type || "text",
                className: "w-full px-3 py-2 text-sm border rounded-lg bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 transition-all",
                placeholder: field.placeholder,
                onChange: (e) => handleChange(field.key, e.target.value),
                value: displayValue(formData[field.key]),
                required: field.required
              }
            )
          ] }, idx);
        }),
        fields.length === 0 && /* @__PURE__ */ jsx("div", { className: "p-4 rounded-lg bg-slate-50 dark:bg-slate-900 border border-slate-100 dark:border-slate-800 text-center text-slate-400 py-4 italic text-xs", children: "No form fields configured." })
      ] })
    ] }) }),
    /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex justify-end", children: /* @__PURE__ */ jsxs(
      "button",
      {
        form: "user-task-form",
        type: "submit",
        className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all hover:translate-y-px text-sm",
        children: [
          node.type === "FormStartEvent" ? "Start Workflow" : "Complete Task",
          /* @__PURE__ */ jsx(ArrowRight, { size: 16 })
        ]
      }
    ) })
  ] });
};
var INUMBER = "INUMBER";
var IOP1 = "IOP1";
var IOP2 = "IOP2";
var IOP3 = "IOP3";
var IVAR = "IVAR";
var IVARNAME = "IVARNAME";
var IFUNCALL = "IFUNCALL";
var IFUNDEF = "IFUNDEF";
var IEXPR = "IEXPR";
var IEXPREVAL = "IEXPREVAL";
var IMEMBER = "IMEMBER";
var IENDSTATEMENT = "IENDSTATEMENT";
var IARRAY = "IARRAY";
function Instruction(type, value) {
  this.type = type;
  this.value = value !== void 0 && value !== null ? value : 0;
}
Instruction.prototype.toString = function() {
  switch (this.type) {
    case INUMBER:
    case IOP1:
    case IOP2:
    case IOP3:
    case IVAR:
    case IVARNAME:
    case IENDSTATEMENT:
      return this.value;
    case IFUNCALL:
      return "CALL " + this.value;
    case IFUNDEF:
      return "DEF " + this.value;
    case IARRAY:
      return "ARRAY " + this.value;
    case IMEMBER:
      return "." + this.value;
    default:
      return "Invalid Instruction";
  }
};
function unaryInstruction(value) {
  return new Instruction(IOP1, value);
}
function binaryInstruction(value) {
  return new Instruction(IOP2, value);
}
function ternaryInstruction(value) {
  return new Instruction(IOP3, value);
}
function simplify(tokens, unaryOps, binaryOps, ternaryOps, values) {
  var nstack = [];
  var newexpression = [];
  var n1, n2, n3;
  var f;
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER || type === IVARNAME) {
      if (Array.isArray(item.value)) {
        nstack.push.apply(nstack, simplify(item.value.map(function(x) {
          return new Instruction(INUMBER, x);
        }).concat(new Instruction(IARRAY, item.value.length)), unaryOps, binaryOps, ternaryOps, values));
      } else {
        nstack.push(item);
      }
    } else if (type === IVAR && values.hasOwnProperty(item.value)) {
      item = new Instruction(INUMBER, values[item.value]);
      nstack.push(item);
    } else if (type === IOP2 && nstack.length > 1) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = binaryOps[item.value];
      item = new Instruction(INUMBER, f(n1.value, n2.value));
      nstack.push(item);
    } else if (type === IOP3 && nstack.length > 2) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === "?") {
        nstack.push(n1.value ? n2.value : n3.value);
      } else {
        f = ternaryOps[item.value];
        item = new Instruction(INUMBER, f(n1.value, n2.value, n3.value));
        nstack.push(item);
      }
    } else if (type === IOP1 && nstack.length > 0) {
      n1 = nstack.pop();
      f = unaryOps[item.value];
      item = new Instruction(INUMBER, f(n1.value));
      nstack.push(item);
    } else if (type === IEXPR) {
      while (nstack.length > 0) {
        newexpression.push(nstack.shift());
      }
      newexpression.push(new Instruction(IEXPR, simplify(item.value, unaryOps, binaryOps, ternaryOps, values)));
    } else if (type === IMEMBER && nstack.length > 0) {
      n1 = nstack.pop();
      nstack.push(new Instruction(INUMBER, n1.value[item.value]));
    } else {
      while (nstack.length > 0) {
        newexpression.push(nstack.shift());
      }
      newexpression.push(item);
    }
  }
  while (nstack.length > 0) {
    newexpression.push(nstack.shift());
  }
  return newexpression;
}
function substitute(tokens, variable, expr) {
  var newexpression = [];
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === IVAR && item.value === variable) {
      for (var j = 0; j < expr.tokens.length; j++) {
        var expritem = expr.tokens[j];
        var replitem;
        if (expritem.type === IOP1) {
          replitem = unaryInstruction(expritem.value);
        } else if (expritem.type === IOP2) {
          replitem = binaryInstruction(expritem.value);
        } else if (expritem.type === IOP3) {
          replitem = ternaryInstruction(expritem.value);
        } else {
          replitem = new Instruction(expritem.type, expritem.value);
        }
        newexpression.push(replitem);
      }
    } else if (type === IEXPR) {
      newexpression.push(new Instruction(IEXPR, substitute(item.value, variable, expr)));
    } else {
      newexpression.push(item);
    }
  }
  return newexpression;
}
function evaluate(tokens, expr, values) {
  var nstack = [];
  var n1, n2, n3;
  var f, args, argCount;
  if (isExpressionEvaluator(tokens)) {
    return resolveExpression(tokens, values);
  }
  var numTokens = tokens.length;
  for (var i = 0; i < numTokens; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER || type === IVARNAME) {
      nstack.push(item.value);
    } else if (type === IOP2) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === "and") {
        nstack.push(n1 ? !!evaluate(n2, expr, values) : false);
      } else if (item.value === "or") {
        nstack.push(n1 ? true : !!evaluate(n2, expr, values));
      } else if (item.value === "=") {
        f = expr.binaryOps[item.value];
        nstack.push(f(n1, evaluate(n2, expr, values), values));
      } else {
        f = expr.binaryOps[item.value];
        nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values)));
      }
    } else if (type === IOP3) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === "?") {
        nstack.push(evaluate(n1 ? n2 : n3, expr, values));
      } else {
        f = expr.ternaryOps[item.value];
        nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values), resolveExpression(n3, values)));
      }
    } else if (type === IVAR) {
      if (item.value in expr.functions) {
        nstack.push(expr.functions[item.value]);
      } else if (item.value in expr.unaryOps && expr.parser.isOperatorEnabled(item.value)) {
        nstack.push(expr.unaryOps[item.value]);
      } else {
        var v = values[item.value];
        if (v !== void 0) {
          nstack.push(v);
        } else {
          throw new Error("undefined variable: " + item.value);
        }
      }
    } else if (type === IOP1) {
      n1 = nstack.pop();
      f = expr.unaryOps[item.value];
      nstack.push(f(resolveExpression(n1, values)));
    } else if (type === IFUNCALL) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(resolveExpression(nstack.pop(), values));
      }
      f = nstack.pop();
      if (f.apply && f.call) {
        nstack.push(f.apply(void 0, args));
      } else {
        throw new Error(f + " is not a function");
      }
    } else if (type === IFUNDEF) {
      nstack.push((function() {
        var n22 = nstack.pop();
        var args2 = [];
        var argCount2 = item.value;
        while (argCount2-- > 0) {
          args2.unshift(nstack.pop());
        }
        var n12 = nstack.pop();
        var f2 = function() {
          var scope = Object.assign({}, values);
          for (var i2 = 0, len = args2.length; i2 < len; i2++) {
            scope[args2[i2]] = arguments[i2];
          }
          return evaluate(n22, expr, scope);
        };
        Object.defineProperty(f2, "name", {
          value: n12,
          writable: false
        });
        values[n12] = f2;
        return f2;
      })());
    } else if (type === IEXPR) {
      nstack.push(createExpressionEvaluator(item, expr));
    } else if (type === IEXPREVAL) {
      nstack.push(item);
    } else if (type === IMEMBER) {
      n1 = nstack.pop();
      nstack.push(n1[item.value]);
    } else if (type === IENDSTATEMENT) {
      nstack.pop();
    } else if (type === IARRAY) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      nstack.push(args);
    } else {
      throw new Error("invalid Expression");
    }
  }
  if (nstack.length > 1) {
    throw new Error("invalid Expression (parity)");
  }
  return nstack[0] === 0 ? 0 : resolveExpression(nstack[0], values);
}
function createExpressionEvaluator(token, expr, values) {
  if (isExpressionEvaluator(token)) return token;
  return {
    type: IEXPREVAL,
    value: function(scope) {
      return evaluate(token.value, expr, scope);
    }
  };
}
function isExpressionEvaluator(n) {
  return n && n.type === IEXPREVAL;
}
function resolveExpression(n, values) {
  return isExpressionEvaluator(n) ? n.value(values) : n;
}
function expressionToString(tokens, toJS) {
  var nstack = [];
  var n1, n2, n3;
  var f, args, argCount;
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER) {
      if (typeof item.value === "number" && item.value < 0) {
        nstack.push("(" + item.value + ")");
      } else if (Array.isArray(item.value)) {
        nstack.push("[" + item.value.map(escapeValue).join(", ") + "]");
      } else {
        nstack.push(escapeValue(item.value));
      }
    } else if (type === IOP2) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = item.value;
      if (toJS) {
        if (f === "^") {
          nstack.push("Math.pow(" + n1 + ", " + n2 + ")");
        } else if (f === "and") {
          nstack.push("(!!" + n1 + " && !!" + n2 + ")");
        } else if (f === "or") {
          nstack.push("(!!" + n1 + " || !!" + n2 + ")");
        } else if (f === "||") {
          nstack.push("(function(a,b){ return Array.isArray(a) && Array.isArray(b) ? a.concat(b) : String(a) + String(b); }((" + n1 + "),(" + n2 + ")))");
        } else if (f === "==") {
          nstack.push("(" + n1 + " === " + n2 + ")");
        } else if (f === "!=") {
          nstack.push("(" + n1 + " !== " + n2 + ")");
        } else if (f === "[") {
          nstack.push(n1 + "[(" + n2 + ") | 0]");
        } else {
          nstack.push("(" + n1 + " " + f + " " + n2 + ")");
        }
      } else {
        if (f === "[") {
          nstack.push(n1 + "[" + n2 + "]");
        } else {
          nstack.push("(" + n1 + " " + f + " " + n2 + ")");
        }
      }
    } else if (type === IOP3) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = item.value;
      if (f === "?") {
        nstack.push("(" + n1 + " ? " + n2 + " : " + n3 + ")");
      } else {
        throw new Error("invalid Expression");
      }
    } else if (type === IVAR || type === IVARNAME) {
      nstack.push(item.value);
    } else if (type === IOP1) {
      n1 = nstack.pop();
      f = item.value;
      if (f === "-" || f === "+") {
        nstack.push("(" + f + n1 + ")");
      } else if (toJS) {
        if (f === "not") {
          nstack.push("(!" + n1 + ")");
        } else if (f === "!") {
          nstack.push("fac(" + n1 + ")");
        } else {
          nstack.push(f + "(" + n1 + ")");
        }
      } else if (f === "!") {
        nstack.push("(" + n1 + "!)");
      } else {
        nstack.push("(" + f + " " + n1 + ")");
      }
    } else if (type === IFUNCALL) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      f = nstack.pop();
      nstack.push(f + "(" + args.join(", ") + ")");
    } else if (type === IFUNDEF) {
      n2 = nstack.pop();
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      n1 = nstack.pop();
      if (toJS) {
        nstack.push("(" + n1 + " = function(" + args.join(", ") + ") { return " + n2 + " })");
      } else {
        nstack.push("(" + n1 + "(" + args.join(", ") + ") = " + n2 + ")");
      }
    } else if (type === IMEMBER) {
      n1 = nstack.pop();
      nstack.push(n1 + "." + item.value);
    } else if (type === IARRAY) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      nstack.push("[" + args.join(", ") + "]");
    } else if (type === IEXPR) {
      nstack.push("(" + expressionToString(item.value, toJS) + ")");
    } else if (type === IENDSTATEMENT) ;
    else {
      throw new Error("invalid Expression");
    }
  }
  if (nstack.length > 1) {
    if (toJS) {
      nstack = [nstack.join(",")];
    } else {
      nstack = [nstack.join(";")];
    }
  }
  return String(nstack[0]);
}
function escapeValue(v) {
  if (typeof v === "string") {
    return JSON.stringify(v).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
  }
  return v;
}
function contains(array, obj) {
  for (var i = 0; i < array.length; i++) {
    if (array[i] === obj) {
      return true;
    }
  }
  return false;
}
function getSymbols(tokens, symbols, options) {
  options = options || {};
  var withMembers = !!options.withMembers;
  var prevVar = null;
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    if (item.type === IVAR || item.type === IVARNAME) {
      if (!withMembers && !contains(symbols, item.value)) {
        symbols.push(item.value);
      } else if (prevVar !== null) {
        if (!contains(symbols, prevVar)) {
          symbols.push(prevVar);
        }
        prevVar = item.value;
      } else {
        prevVar = item.value;
      }
    } else if (item.type === IMEMBER && withMembers && prevVar !== null) {
      prevVar += "." + item.value;
    } else if (item.type === IEXPR) {
      getSymbols(item.value, symbols, options);
    } else if (prevVar !== null) {
      if (!contains(symbols, prevVar)) {
        symbols.push(prevVar);
      }
      prevVar = null;
    }
  }
  if (prevVar !== null && !contains(symbols, prevVar)) {
    symbols.push(prevVar);
  }
}
function Expression(tokens, parser) {
  this.tokens = tokens;
  this.parser = parser;
  this.unaryOps = parser.unaryOps;
  this.binaryOps = parser.binaryOps;
  this.ternaryOps = parser.ternaryOps;
  this.functions = parser.functions;
}
Expression.prototype.simplify = function(values) {
  values = values || {};
  return new Expression(simplify(this.tokens, this.unaryOps, this.binaryOps, this.ternaryOps, values), this.parser);
};
Expression.prototype.substitute = function(variable, expr) {
  if (!(expr instanceof Expression)) {
    expr = this.parser.parse(String(expr));
  }
  return new Expression(substitute(this.tokens, variable, expr), this.parser);
};
Expression.prototype.evaluate = function(values) {
  values = values || {};
  return evaluate(this.tokens, this, values);
};
Expression.prototype.toString = function() {
  return expressionToString(this.tokens, false);
};
Expression.prototype.symbols = function(options) {
  options = options || {};
  var vars = [];
  getSymbols(this.tokens, vars, options);
  return vars;
};
Expression.prototype.variables = function(options) {
  options = options || {};
  var vars = [];
  getSymbols(this.tokens, vars, options);
  var functions = this.functions;
  return vars.filter(function(name) {
    return !(name in functions);
  });
};
Expression.prototype.toJSFunction = function(param, variables) {
  var expr = this;
  var f = new Function(param, "with(this.functions) with (this.ternaryOps) with (this.binaryOps) with (this.unaryOps) { return " + expressionToString(this.simplify(variables).tokens, true) + "; }");
  return function() {
    return f.apply(expr, arguments);
  };
};
var TEOF = "TEOF";
var TOP = "TOP";
var TNUMBER = "TNUMBER";
var TSTRING = "TSTRING";
var TPAREN = "TPAREN";
var TBRACKET = "TBRACKET";
var TCOMMA = "TCOMMA";
var TNAME = "TNAME";
var TSEMICOLON = "TSEMICOLON";
function Token(type, value, index2) {
  this.type = type;
  this.value = value;
  this.index = index2;
}
Token.prototype.toString = function() {
  return this.type + ": " + this.value;
};
function TokenStream(parser, expression) {
  this.pos = 0;
  this.current = null;
  this.unaryOps = parser.unaryOps;
  this.binaryOps = parser.binaryOps;
  this.ternaryOps = parser.ternaryOps;
  this.consts = parser.consts;
  this.expression = expression;
  this.savedPosition = 0;
  this.savedCurrent = null;
  this.options = parser.options;
  this.parser = parser;
}
TokenStream.prototype.newToken = function(type, value, pos) {
  return new Token(type, value, pos != null ? pos : this.pos);
};
TokenStream.prototype.save = function() {
  this.savedPosition = this.pos;
  this.savedCurrent = this.current;
};
TokenStream.prototype.restore = function() {
  this.pos = this.savedPosition;
  this.current = this.savedCurrent;
};
TokenStream.prototype.next = function() {
  if (this.pos >= this.expression.length) {
    return this.newToken(TEOF, "EOF");
  }
  if (this.isWhitespace() || this.isComment()) {
    return this.next();
  } else if (this.isRadixInteger() || this.isNumber() || this.isOperator() || this.isString() || this.isParen() || this.isBracket() || this.isComma() || this.isSemicolon() || this.isNamedOp() || this.isConst() || this.isName()) {
    return this.current;
  } else {
    this.parseError('Unknown character "' + this.expression.charAt(this.pos) + '"');
  }
};
TokenStream.prototype.isString = function() {
  var r = false;
  var startPos = this.pos;
  var quote = this.expression.charAt(startPos);
  if (quote === "'" || quote === '"') {
    var index2 = this.expression.indexOf(quote, startPos + 1);
    while (index2 >= 0 && this.pos < this.expression.length) {
      this.pos = index2 + 1;
      if (this.expression.charAt(index2 - 1) !== "\\") {
        var rawString = this.expression.substring(startPos + 1, index2);
        this.current = this.newToken(TSTRING, this.unescape(rawString), startPos);
        r = true;
        break;
      }
      index2 = this.expression.indexOf(quote, index2 + 1);
    }
  }
  return r;
};
TokenStream.prototype.isParen = function() {
  var c = this.expression.charAt(this.pos);
  if (c === "(" || c === ")") {
    this.current = this.newToken(TPAREN, c);
    this.pos++;
    return true;
  }
  return false;
};
TokenStream.prototype.isBracket = function() {
  var c = this.expression.charAt(this.pos);
  if ((c === "[" || c === "]") && this.isOperatorEnabled("[")) {
    this.current = this.newToken(TBRACKET, c);
    this.pos++;
    return true;
  }
  return false;
};
TokenStream.prototype.isComma = function() {
  var c = this.expression.charAt(this.pos);
  if (c === ",") {
    this.current = this.newToken(TCOMMA, ",");
    this.pos++;
    return true;
  }
  return false;
};
TokenStream.prototype.isSemicolon = function() {
  var c = this.expression.charAt(this.pos);
  if (c === ";") {
    this.current = this.newToken(TSEMICOLON, ";");
    this.pos++;
    return true;
  }
  return false;
};
TokenStream.prototype.isConst = function() {
  var startPos = this.pos;
  var i = startPos;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos || c !== "_" && c !== "." && (c < "0" || c > "9")) {
        break;
      }
    }
  }
  if (i > startPos) {
    var str = this.expression.substring(startPos, i);
    if (str in this.consts) {
      this.current = this.newToken(TNUMBER, this.consts[str]);
      this.pos += str.length;
      return true;
    }
  }
  return false;
};
TokenStream.prototype.isNamedOp = function() {
  var startPos = this.pos;
  var i = startPos;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos || c !== "_" && (c < "0" || c > "9")) {
        break;
      }
    }
  }
  if (i > startPos) {
    var str = this.expression.substring(startPos, i);
    if (this.isOperatorEnabled(str) && (str in this.binaryOps || str in this.unaryOps || str in this.ternaryOps)) {
      this.current = this.newToken(TOP, str);
      this.pos += str.length;
      return true;
    }
  }
  return false;
};
TokenStream.prototype.isName = function() {
  var startPos = this.pos;
  var i = startPos;
  var hasLetter = false;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos && (c === "$" || c === "_")) {
        if (c === "_") {
          hasLetter = true;
        }
        continue;
      } else if (i === this.pos || !hasLetter || c !== "_" && (c < "0" || c > "9")) {
        break;
      }
    } else {
      hasLetter = true;
    }
  }
  if (hasLetter) {
    var str = this.expression.substring(startPos, i);
    this.current = this.newToken(TNAME, str);
    this.pos += str.length;
    return true;
  }
  return false;
};
TokenStream.prototype.isWhitespace = function() {
  var r = false;
  var c = this.expression.charAt(this.pos);
  while (c === " " || c === "	" || c === "\n" || c === "\r") {
    r = true;
    this.pos++;
    if (this.pos >= this.expression.length) {
      break;
    }
    c = this.expression.charAt(this.pos);
  }
  return r;
};
var codePointPattern = /^[0-9a-f]{4}$/i;
TokenStream.prototype.unescape = function(v) {
  var index2 = v.indexOf("\\");
  if (index2 < 0) {
    return v;
  }
  var buffer = v.substring(0, index2);
  while (index2 >= 0) {
    var c = v.charAt(++index2);
    switch (c) {
      case "'":
        buffer += "'";
        break;
      case '"':
        buffer += '"';
        break;
      case "\\":
        buffer += "\\";
        break;
      case "/":
        buffer += "/";
        break;
      case "b":
        buffer += "\b";
        break;
      case "f":
        buffer += "\f";
        break;
      case "n":
        buffer += "\n";
        break;
      case "r":
        buffer += "\r";
        break;
      case "t":
        buffer += "	";
        break;
      case "u":
        var codePoint = v.substring(index2 + 1, index2 + 5);
        if (!codePointPattern.test(codePoint)) {
          this.parseError("Illegal escape sequence: \\u" + codePoint);
        }
        buffer += String.fromCharCode(parseInt(codePoint, 16));
        index2 += 4;
        break;
      default:
        throw this.parseError('Illegal escape sequence: "\\' + c + '"');
    }
    ++index2;
    var backslash = v.indexOf("\\", index2);
    buffer += v.substring(index2, backslash < 0 ? v.length : backslash);
    index2 = backslash;
  }
  return buffer;
};
TokenStream.prototype.isComment = function() {
  var c = this.expression.charAt(this.pos);
  if (c === "/" && this.expression.charAt(this.pos + 1) === "*") {
    this.pos = this.expression.indexOf("*/", this.pos) + 2;
    if (this.pos === 1) {
      this.pos = this.expression.length;
    }
    return true;
  }
  return false;
};
TokenStream.prototype.isRadixInteger = function() {
  var pos = this.pos;
  if (pos >= this.expression.length - 2 || this.expression.charAt(pos) !== "0") {
    return false;
  }
  ++pos;
  var radix;
  var validDigit;
  if (this.expression.charAt(pos) === "x") {
    radix = 16;
    validDigit = /^[0-9a-f]$/i;
    ++pos;
  } else if (this.expression.charAt(pos) === "b") {
    radix = 2;
    validDigit = /^[01]$/i;
    ++pos;
  } else {
    return false;
  }
  var valid = false;
  var startPos = pos;
  while (pos < this.expression.length) {
    var c = this.expression.charAt(pos);
    if (validDigit.test(c)) {
      pos++;
      valid = true;
    } else {
      break;
    }
  }
  if (valid) {
    this.current = this.newToken(TNUMBER, parseInt(this.expression.substring(startPos, pos), radix));
    this.pos = pos;
  }
  return valid;
};
TokenStream.prototype.isNumber = function() {
  var valid = false;
  var pos = this.pos;
  var startPos = pos;
  var resetPos = pos;
  var foundDot = false;
  var foundDigits = false;
  var c;
  while (pos < this.expression.length) {
    c = this.expression.charAt(pos);
    if (c >= "0" && c <= "9" || !foundDot && c === ".") {
      if (c === ".") {
        foundDot = true;
      } else {
        foundDigits = true;
      }
      pos++;
      valid = foundDigits;
    } else {
      break;
    }
  }
  if (valid) {
    resetPos = pos;
  }
  if (c === "e" || c === "E") {
    pos++;
    var acceptSign = true;
    var validExponent = false;
    while (pos < this.expression.length) {
      c = this.expression.charAt(pos);
      if (acceptSign && (c === "+" || c === "-")) {
        acceptSign = false;
      } else if (c >= "0" && c <= "9") {
        validExponent = true;
        acceptSign = false;
      } else {
        break;
      }
      pos++;
    }
    if (!validExponent) {
      pos = resetPos;
    }
  }
  if (valid) {
    this.current = this.newToken(TNUMBER, parseFloat(this.expression.substring(startPos, pos)));
    this.pos = pos;
  } else {
    this.pos = resetPos;
  }
  return valid;
};
TokenStream.prototype.isOperator = function() {
  var startPos = this.pos;
  var c = this.expression.charAt(this.pos);
  if (c === "+" || c === "-" || c === "*" || c === "/" || c === "%" || c === "^" || c === "?" || c === ":" || c === ".") {
    this.current = this.newToken(TOP, c);
  } else if (c === "∙" || c === "•") {
    this.current = this.newToken(TOP, "*");
  } else if (c === ">") {
    if (this.expression.charAt(this.pos + 1) === "=") {
      this.current = this.newToken(TOP, ">=");
      this.pos++;
    } else {
      this.current = this.newToken(TOP, ">");
    }
  } else if (c === "<") {
    if (this.expression.charAt(this.pos + 1) === "=") {
      this.current = this.newToken(TOP, "<=");
      this.pos++;
    } else {
      this.current = this.newToken(TOP, "<");
    }
  } else if (c === "|") {
    if (this.expression.charAt(this.pos + 1) === "|") {
      this.current = this.newToken(TOP, "||");
      this.pos++;
    } else {
      return false;
    }
  } else if (c === "=") {
    if (this.expression.charAt(this.pos + 1) === "=") {
      this.current = this.newToken(TOP, "==");
      this.pos++;
    } else {
      this.current = this.newToken(TOP, c);
    }
  } else if (c === "!") {
    if (this.expression.charAt(this.pos + 1) === "=") {
      this.current = this.newToken(TOP, "!=");
      this.pos++;
    } else {
      this.current = this.newToken(TOP, c);
    }
  } else {
    return false;
  }
  this.pos++;
  if (this.isOperatorEnabled(this.current.value)) {
    return true;
  } else {
    this.pos = startPos;
    return false;
  }
};
TokenStream.prototype.isOperatorEnabled = function(op) {
  return this.parser.isOperatorEnabled(op);
};
TokenStream.prototype.getCoordinates = function() {
  var line = 0;
  var column;
  var newline = -1;
  do {
    line++;
    column = this.pos - newline;
    newline = this.expression.indexOf("\n", newline + 1);
  } while (newline >= 0 && newline < this.pos);
  return {
    line,
    column
  };
};
TokenStream.prototype.parseError = function(msg) {
  var coords = this.getCoordinates();
  throw new Error("parse error [" + coords.line + ":" + coords.column + "]: " + msg);
};
function ParserState(parser, tokenStream, options) {
  this.parser = parser;
  this.tokens = tokenStream;
  this.current = null;
  this.nextToken = null;
  this.next();
  this.savedCurrent = null;
  this.savedNextToken = null;
  this.allowMemberAccess = options.allowMemberAccess !== false;
}
ParserState.prototype.next = function() {
  this.current = this.nextToken;
  return this.nextToken = this.tokens.next();
};
ParserState.prototype.tokenMatches = function(token, value) {
  if (typeof value === "undefined") {
    return true;
  } else if (Array.isArray(value)) {
    return contains(value, token.value);
  } else if (typeof value === "function") {
    return value(token);
  } else {
    return token.value === value;
  }
};
ParserState.prototype.save = function() {
  this.savedCurrent = this.current;
  this.savedNextToken = this.nextToken;
  this.tokens.save();
};
ParserState.prototype.restore = function() {
  this.tokens.restore();
  this.current = this.savedCurrent;
  this.nextToken = this.savedNextToken;
};
ParserState.prototype.accept = function(type, value) {
  if (this.nextToken.type === type && this.tokenMatches(this.nextToken, value)) {
    this.next();
    return true;
  }
  return false;
};
ParserState.prototype.expect = function(type, value) {
  if (!this.accept(type, value)) {
    var coords = this.tokens.getCoordinates();
    throw new Error("parse error [" + coords.line + ":" + coords.column + "]: Expected " + (value || type));
  }
};
ParserState.prototype.parseAtom = function(instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }
  if (this.accept(TNAME) || this.accept(TOP, isPrefixOperator)) {
    instr.push(new Instruction(IVAR, this.current.value));
  } else if (this.accept(TNUMBER)) {
    instr.push(new Instruction(INUMBER, this.current.value));
  } else if (this.accept(TSTRING)) {
    instr.push(new Instruction(INUMBER, this.current.value));
  } else if (this.accept(TPAREN, "(")) {
    this.parseExpression(instr);
    this.expect(TPAREN, ")");
  } else if (this.accept(TBRACKET, "[")) {
    if (this.accept(TBRACKET, "]")) {
      instr.push(new Instruction(IARRAY, 0));
    } else {
      var argCount = this.parseArrayList(instr);
      instr.push(new Instruction(IARRAY, argCount));
    }
  } else {
    throw new Error("unexpected " + this.nextToken);
  }
};
ParserState.prototype.parseExpression = function(instr) {
  var exprInstr = [];
  if (this.parseUntilEndStatement(instr, exprInstr)) {
    return;
  }
  this.parseVariableAssignmentExpression(exprInstr);
  if (this.parseUntilEndStatement(instr, exprInstr)) {
    return;
  }
  this.pushExpression(instr, exprInstr);
};
ParserState.prototype.pushExpression = function(instr, exprInstr) {
  for (var i = 0, len = exprInstr.length; i < len; i++) {
    instr.push(exprInstr[i]);
  }
};
ParserState.prototype.parseUntilEndStatement = function(instr, exprInstr) {
  if (!this.accept(TSEMICOLON)) return false;
  if (this.nextToken && this.nextToken.type !== TEOF && !(this.nextToken.type === TPAREN && this.nextToken.value === ")")) {
    exprInstr.push(new Instruction(IENDSTATEMENT));
  }
  if (this.nextToken.type !== TEOF) {
    this.parseExpression(exprInstr);
  }
  instr.push(new Instruction(IEXPR, exprInstr));
  return true;
};
ParserState.prototype.parseArrayList = function(instr) {
  var argCount = 0;
  while (!this.accept(TBRACKET, "]")) {
    this.parseExpression(instr);
    ++argCount;
    while (this.accept(TCOMMA)) {
      this.parseExpression(instr);
      ++argCount;
    }
  }
  return argCount;
};
ParserState.prototype.parseVariableAssignmentExpression = function(instr) {
  this.parseConditionalExpression(instr);
  while (this.accept(TOP, "=")) {
    var varName = instr.pop();
    var varValue = [];
    var lastInstrIndex = instr.length - 1;
    if (varName.type === IFUNCALL) {
      if (!this.tokens.isOperatorEnabled("()=")) {
        throw new Error("function definition is not permitted");
      }
      for (var i = 0, len = varName.value + 1; i < len; i++) {
        var index2 = lastInstrIndex - i;
        if (instr[index2].type === IVAR) {
          instr[index2] = new Instruction(IVARNAME, instr[index2].value);
        }
      }
      this.parseVariableAssignmentExpression(varValue);
      instr.push(new Instruction(IEXPR, varValue));
      instr.push(new Instruction(IFUNDEF, varName.value));
      continue;
    }
    if (varName.type !== IVAR && varName.type !== IMEMBER) {
      throw new Error("expected variable for assignment");
    }
    this.parseVariableAssignmentExpression(varValue);
    instr.push(new Instruction(IVARNAME, varName.value));
    instr.push(new Instruction(IEXPR, varValue));
    instr.push(binaryInstruction("="));
  }
};
ParserState.prototype.parseConditionalExpression = function(instr) {
  this.parseOrExpression(instr);
  while (this.accept(TOP, "?")) {
    var trueBranch = [];
    var falseBranch = [];
    this.parseConditionalExpression(trueBranch);
    this.expect(TOP, ":");
    this.parseConditionalExpression(falseBranch);
    instr.push(new Instruction(IEXPR, trueBranch));
    instr.push(new Instruction(IEXPR, falseBranch));
    instr.push(ternaryInstruction("?"));
  }
};
ParserState.prototype.parseOrExpression = function(instr) {
  this.parseAndExpression(instr);
  while (this.accept(TOP, "or")) {
    var falseBranch = [];
    this.parseAndExpression(falseBranch);
    instr.push(new Instruction(IEXPR, falseBranch));
    instr.push(binaryInstruction("or"));
  }
};
ParserState.prototype.parseAndExpression = function(instr) {
  this.parseComparison(instr);
  while (this.accept(TOP, "and")) {
    var trueBranch = [];
    this.parseComparison(trueBranch);
    instr.push(new Instruction(IEXPR, trueBranch));
    instr.push(binaryInstruction("and"));
  }
};
var COMPARISON_OPERATORS = ["==", "!=", "<", "<=", ">=", ">", "in"];
ParserState.prototype.parseComparison = function(instr) {
  this.parseAddSub(instr);
  while (this.accept(TOP, COMPARISON_OPERATORS)) {
    var op = this.current;
    this.parseAddSub(instr);
    instr.push(binaryInstruction(op.value));
  }
};
var ADD_SUB_OPERATORS = ["+", "-", "||"];
ParserState.prototype.parseAddSub = function(instr) {
  this.parseTerm(instr);
  while (this.accept(TOP, ADD_SUB_OPERATORS)) {
    var op = this.current;
    this.parseTerm(instr);
    instr.push(binaryInstruction(op.value));
  }
};
var TERM_OPERATORS = ["*", "/", "%"];
ParserState.prototype.parseTerm = function(instr) {
  this.parseFactor(instr);
  while (this.accept(TOP, TERM_OPERATORS)) {
    var op = this.current;
    this.parseFactor(instr);
    instr.push(binaryInstruction(op.value));
  }
};
ParserState.prototype.parseFactor = function(instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }
  this.save();
  if (this.accept(TOP, isPrefixOperator)) {
    if (this.current.value !== "-" && this.current.value !== "+") {
      if (this.nextToken.type === TPAREN && this.nextToken.value === "(") {
        this.restore();
        this.parseExponential(instr);
        return;
      } else if (this.nextToken.type === TSEMICOLON || this.nextToken.type === TCOMMA || this.nextToken.type === TEOF || this.nextToken.type === TPAREN && this.nextToken.value === ")") {
        this.restore();
        this.parseAtom(instr);
        return;
      }
    }
    var op = this.current;
    this.parseFactor(instr);
    instr.push(unaryInstruction(op.value));
  } else {
    this.parseExponential(instr);
  }
};
ParserState.prototype.parseExponential = function(instr) {
  this.parsePostfixExpression(instr);
  while (this.accept(TOP, "^")) {
    this.parseFactor(instr);
    instr.push(binaryInstruction("^"));
  }
};
ParserState.prototype.parsePostfixExpression = function(instr) {
  this.parseFunctionCall(instr);
  while (this.accept(TOP, "!")) {
    instr.push(unaryInstruction("!"));
  }
};
ParserState.prototype.parseFunctionCall = function(instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }
  if (this.accept(TOP, isPrefixOperator)) {
    var op = this.current;
    this.parseAtom(instr);
    instr.push(unaryInstruction(op.value));
  } else {
    this.parseMemberExpression(instr);
    while (this.accept(TPAREN, "(")) {
      if (this.accept(TPAREN, ")")) {
        instr.push(new Instruction(IFUNCALL, 0));
      } else {
        var argCount = this.parseArgumentList(instr);
        instr.push(new Instruction(IFUNCALL, argCount));
      }
    }
  }
};
ParserState.prototype.parseArgumentList = function(instr) {
  var argCount = 0;
  while (!this.accept(TPAREN, ")")) {
    this.parseExpression(instr);
    ++argCount;
    while (this.accept(TCOMMA)) {
      this.parseExpression(instr);
      ++argCount;
    }
  }
  return argCount;
};
ParserState.prototype.parseMemberExpression = function(instr) {
  this.parseAtom(instr);
  while (this.accept(TOP, ".") || this.accept(TBRACKET, "[")) {
    var op = this.current;
    if (op.value === ".") {
      if (!this.allowMemberAccess) {
        throw new Error('unexpected ".", member access is not permitted');
      }
      this.expect(TNAME);
      instr.push(new Instruction(IMEMBER, this.current.value));
    } else if (op.value === "[") {
      if (!this.tokens.isOperatorEnabled("[")) {
        throw new Error('unexpected "[]", arrays are disabled');
      }
      this.parseExpression(instr);
      this.expect(TBRACKET, "]");
      instr.push(binaryInstruction("["));
    } else {
      throw new Error("unexpected symbol: " + op.value);
    }
  }
};
function add(a, b) {
  return Number(a) + Number(b);
}
function sub(a, b) {
  return a - b;
}
function mul(a, b) {
  return a * b;
}
function div(a, b) {
  return a / b;
}
function mod(a, b) {
  return a % b;
}
function concat(a, b) {
  if (Array.isArray(a) && Array.isArray(b)) {
    return a.concat(b);
  }
  return "" + a + b;
}
function equal(a, b) {
  return a === b;
}
function notEqual(a, b) {
  return a !== b;
}
function greaterThan(a, b) {
  return a > b;
}
function lessThan(a, b) {
  return a < b;
}
function greaterThanEqual(a, b) {
  return a >= b;
}
function lessThanEqual(a, b) {
  return a <= b;
}
function andOperator(a, b) {
  return Boolean(a && b);
}
function orOperator(a, b) {
  return Boolean(a || b);
}
function inOperator(a, b) {
  return contains(b, a);
}
function sinh(a) {
  return (Math.exp(a) - Math.exp(-a)) / 2;
}
function cosh(a) {
  return (Math.exp(a) + Math.exp(-a)) / 2;
}
function tanh(a) {
  if (a === Infinity) return 1;
  if (a === -Infinity) return -1;
  return (Math.exp(a) - Math.exp(-a)) / (Math.exp(a) + Math.exp(-a));
}
function asinh(a) {
  if (a === -Infinity) return a;
  return Math.log(a + Math.sqrt(a * a + 1));
}
function acosh(a) {
  return Math.log(a + Math.sqrt(a * a - 1));
}
function atanh(a) {
  return Math.log((1 + a) / (1 - a)) / 2;
}
function log10(a) {
  return Math.log(a) * Math.LOG10E;
}
function neg(a) {
  return -a;
}
function not(a) {
  return !a;
}
function trunc(a) {
  return a < 0 ? Math.ceil(a) : Math.floor(a);
}
function random(a) {
  return Math.random() * (a || 1);
}
function factorial(a) {
  return gamma(a + 1);
}
function isInteger(value) {
  return isFinite(value) && value === Math.round(value);
}
var GAMMA_G = 4.7421875;
var GAMMA_P = [
  0.9999999999999971,
  57.15623566586292,
  -59.59796035547549,
  14.136097974741746,
  -0.4919138160976202,
  3399464998481189e-20,
  4652362892704858e-20,
  -9837447530487956e-20,
  1580887032249125e-19,
  -21026444172410488e-20,
  21743961811521265e-20,
  -1643181065367639e-19,
  8441822398385275e-20,
  -26190838401581408e-21,
  36899182659531625e-22
];
function gamma(n) {
  var t, x;
  if (isInteger(n)) {
    if (n <= 0) {
      return isFinite(n) ? Infinity : NaN;
    }
    if (n > 171) {
      return Infinity;
    }
    var value = n - 2;
    var res = n - 1;
    while (value > 1) {
      res *= value;
      value--;
    }
    if (res === 0) {
      res = 1;
    }
    return res;
  }
  if (n < 0.5) {
    return Math.PI / (Math.sin(Math.PI * n) * gamma(1 - n));
  }
  if (n >= 171.35) {
    return Infinity;
  }
  if (n > 85) {
    var twoN = n * n;
    var threeN = twoN * n;
    var fourN = threeN * n;
    var fiveN = fourN * n;
    return Math.sqrt(2 * Math.PI / n) * Math.pow(n / Math.E, n) * (1 + 1 / (12 * n) + 1 / (288 * twoN) - 139 / (51840 * threeN) - 571 / (2488320 * fourN) + 163879 / (209018880 * fiveN) + 5246819 / (75246796800 * fiveN * n));
  }
  --n;
  x = GAMMA_P[0];
  for (var i = 1; i < GAMMA_P.length; ++i) {
    x += GAMMA_P[i] / (n + i);
  }
  t = n + GAMMA_G + 0.5;
  return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;
}
function stringOrArrayLength(s) {
  if (Array.isArray(s)) {
    return s.length;
  }
  return String(s).length;
}
function hypot() {
  var sum = 0;
  var larg = 0;
  for (var i = 0; i < arguments.length; i++) {
    var arg = Math.abs(arguments[i]);
    var div2;
    if (larg < arg) {
      div2 = larg / arg;
      sum = sum * div2 * div2 + 1;
      larg = arg;
    } else if (arg > 0) {
      div2 = arg / larg;
      sum += div2 * div2;
    } else {
      sum += arg;
    }
  }
  return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
}
function condition(cond, yep, nope) {
  return cond ? yep : nope;
}
function roundTo(value, exp) {
  if (typeof exp === "undefined" || +exp === 0) {
    return Math.round(value);
  }
  value = +value;
  exp = -+exp;
  if (isNaN(value) || !(typeof exp === "number" && exp % 1 === 0)) {
    return NaN;
  }
  value = value.toString().split("e");
  value = Math.round(+(value[0] + "e" + (value[1] ? +value[1] - exp : -exp)));
  value = value.toString().split("e");
  return +(value[0] + "e" + (value[1] ? +value[1] + exp : exp));
}
function setVar(name, value, variables) {
  if (variables) variables[name] = value;
  return value;
}
function arrayIndex(array, index2) {
  return array[index2 | 0];
}
function max(array) {
  if (arguments.length === 1 && Array.isArray(array)) {
    return Math.max.apply(Math, array);
  } else {
    return Math.max.apply(Math, arguments);
  }
}
function min(array) {
  if (arguments.length === 1 && Array.isArray(array)) {
    return Math.min.apply(Math, array);
  } else {
    return Math.min.apply(Math, arguments);
  }
}
function arrayMap(f, a) {
  if (typeof f !== "function") {
    throw new Error("First argument to map is not a function");
  }
  if (!Array.isArray(a)) {
    throw new Error("Second argument to map is not an array");
  }
  return a.map(function(x, i) {
    return f(x, i);
  });
}
function arrayFold(f, init, a) {
  if (typeof f !== "function") {
    throw new Error("First argument to fold is not a function");
  }
  if (!Array.isArray(a)) {
    throw new Error("Second argument to fold is not an array");
  }
  return a.reduce(function(acc, x, i) {
    return f(acc, x, i);
  }, init);
}
function arrayFilter(f, a) {
  if (typeof f !== "function") {
    throw new Error("First argument to filter is not a function");
  }
  if (!Array.isArray(a)) {
    throw new Error("Second argument to filter is not an array");
  }
  return a.filter(function(x, i) {
    return f(x, i);
  });
}
function stringOrArrayIndexOf(target, s) {
  if (!(Array.isArray(s) || typeof s === "string")) {
    throw new Error("Second argument to indexOf is not a string or array");
  }
  return s.indexOf(target);
}
function arrayJoin(sep, a) {
  if (!Array.isArray(a)) {
    throw new Error("Second argument to join is not an array");
  }
  return a.join(sep);
}
function sign(x) {
  return (x > 0) - (x < 0) || +x;
}
var ONE_THIRD = 1 / 3;
function cbrt(x) {
  return x < 0 ? -Math.pow(-x, ONE_THIRD) : Math.pow(x, ONE_THIRD);
}
function expm1(x) {
  return Math.exp(x) - 1;
}
function log1p(x) {
  return Math.log(1 + x);
}
function log2(x) {
  return Math.log(x) / Math.LN2;
}
function Parser(options) {
  this.options = options || {};
  this.unaryOps = {
    sin: Math.sin,
    cos: Math.cos,
    tan: Math.tan,
    asin: Math.asin,
    acos: Math.acos,
    atan: Math.atan,
    sinh: Math.sinh || sinh,
    cosh: Math.cosh || cosh,
    tanh: Math.tanh || tanh,
    asinh: Math.asinh || asinh,
    acosh: Math.acosh || acosh,
    atanh: Math.atanh || atanh,
    sqrt: Math.sqrt,
    cbrt: Math.cbrt || cbrt,
    log: Math.log,
    log2: Math.log2 || log2,
    ln: Math.log,
    lg: Math.log10 || log10,
    log10: Math.log10 || log10,
    expm1: Math.expm1 || expm1,
    log1p: Math.log1p || log1p,
    abs: Math.abs,
    ceil: Math.ceil,
    floor: Math.floor,
    round: Math.round,
    trunc: Math.trunc || trunc,
    "-": neg,
    "+": Number,
    exp: Math.exp,
    not,
    length: stringOrArrayLength,
    "!": factorial,
    sign: Math.sign || sign
  };
  this.binaryOps = {
    "+": add,
    "-": sub,
    "*": mul,
    "/": div,
    "%": mod,
    "^": Math.pow,
    "||": concat,
    "==": equal,
    "!=": notEqual,
    ">": greaterThan,
    "<": lessThan,
    ">=": greaterThanEqual,
    "<=": lessThanEqual,
    and: andOperator,
    or: orOperator,
    "in": inOperator,
    "=": setVar,
    "[": arrayIndex
  };
  this.ternaryOps = {
    "?": condition
  };
  this.functions = {
    random,
    fac: factorial,
    min,
    max,
    hypot: Math.hypot || hypot,
    pyt: Math.hypot || hypot,
    // backward compat
    pow: Math.pow,
    atan2: Math.atan2,
    "if": condition,
    gamma,
    roundTo,
    map: arrayMap,
    fold: arrayFold,
    filter: arrayFilter,
    indexOf: stringOrArrayIndexOf,
    join: arrayJoin
  };
  this.consts = {
    E: Math.E,
    PI: Math.PI,
    "true": true,
    "false": false
  };
}
Parser.prototype.parse = function(expr) {
  var instr = [];
  var parserState = new ParserState(
    this,
    new TokenStream(this, expr),
    { allowMemberAccess: this.options.allowMemberAccess }
  );
  parserState.parseExpression(instr);
  parserState.expect(TEOF, "EOF");
  return new Expression(instr, this);
};
Parser.prototype.evaluate = function(expr, variables) {
  return this.parse(expr).evaluate(variables);
};
var sharedParser = new Parser();
Parser.parse = function(expr) {
  return sharedParser.parse(expr);
};
Parser.evaluate = function(expr, variables) {
  return sharedParser.parse(expr).evaluate(variables);
};
var optionNameMap = {
  "+": "add",
  "-": "subtract",
  "*": "multiply",
  "/": "divide",
  "%": "remainder",
  "^": "power",
  "!": "factorial",
  "<": "comparison",
  ">": "comparison",
  "<=": "comparison",
  ">=": "comparison",
  "==": "comparison",
  "!=": "comparison",
  "||": "concatenate",
  "and": "logical",
  "or": "logical",
  "not": "logical",
  "?": "conditional",
  ":": "conditional",
  "=": "assignment",
  "[": "array",
  "()=": "fndef"
};
function getOptionName(op) {
  return optionNameMap.hasOwnProperty(op) ? optionNameMap[op] : op;
}
Parser.prototype.isOperatorEnabled = function(op) {
  var optionName = getOptionName(op);
  var operators = this.options.operators || {};
  return !(optionName in operators) || !!operators[optionName];
};
const WINDOWS_1252_UNICODE_TO_BYTE = {
  8364: 128,
  8218: 130,
  402: 131,
  8222: 132,
  8230: 133,
  8224: 134,
  8225: 135,
  710: 136,
  8240: 137,
  352: 138,
  8249: 139,
  338: 140,
  381: 142,
  8216: 145,
  8217: 146,
  8220: 147,
  8221: 148,
  8226: 149,
  8211: 150,
  8212: 151,
  732: 152,
  8482: 153,
  353: 154,
  8250: 155,
  339: 156,
  382: 158,
  376: 159
};
const GUID_BYTE_ORDER = [3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15];
const MD5_SHIFT_AMOUNTS = [
  7,
  12,
  17,
  22,
  7,
  12,
  17,
  22,
  7,
  12,
  17,
  22,
  7,
  12,
  17,
  22,
  5,
  9,
  14,
  20,
  5,
  9,
  14,
  20,
  5,
  9,
  14,
  20,
  5,
  9,
  14,
  20,
  4,
  11,
  16,
  23,
  4,
  11,
  16,
  23,
  4,
  11,
  16,
  23,
  4,
  11,
  16,
  23,
  6,
  10,
  15,
  21,
  6,
  10,
  15,
  21,
  6,
  10,
  15,
  21,
  6,
  10,
  15,
  21
];
const MD5_CONSTANTS = Array.from(
  { length: 64 },
  (_, index2) => Math.floor(Math.abs(Math.sin(index2 + 1)) * 4294967296) >>> 0
);
const leftRotate = (value, amount) => (value << amount | value >>> 32 - amount) >>> 0;
const toHexByte = (value) => value.toString(16).padStart(2, "0");
const encodeWindows1252 = (value) => {
  const bytes = [];
  for (let index2 = 0; index2 < value.length; index2++) {
    const codePoint = value.charCodeAt(index2);
    if (codePoint <= 255) {
      bytes.push(codePoint);
      continue;
    }
    bytes.push(WINDOWS_1252_UNICODE_TO_BYTE[codePoint] ?? 63);
  }
  return Uint8Array.from(bytes);
};
const md5 = (input) => {
  const originalLength = input.length;
  const paddedLength = ((originalLength + 8 >>> 6) + 1) * 64;
  const buffer = new Uint8Array(paddedLength);
  buffer.set(input);
  buffer[originalLength] = 128;
  const bitLengthLow = originalLength * 8 >>> 0;
  const bitLengthHigh = Math.floor(originalLength * 8 / 4294967296) >>> 0;
  const lengthView = new DataView(buffer.buffer);
  lengthView.setUint32(paddedLength - 8, bitLengthLow, true);
  lengthView.setUint32(paddedLength - 4, bitLengthHigh, true);
  let a0 = 1732584193;
  let b0 = 4023233417;
  let c0 = 2562383102;
  let d0 = 271733878;
  const chunkView = new DataView(buffer.buffer);
  for (let offset = 0; offset < paddedLength; offset += 64) {
    const words = new Uint32Array(16);
    for (let wordIndex = 0; wordIndex < 16; wordIndex++) {
      words[wordIndex] = chunkView.getUint32(offset + wordIndex * 4, true);
    }
    let a = a0;
    let b = b0;
    let c = c0;
    let d = d0;
    for (let index2 = 0; index2 < 64; index2++) {
      let f = 0;
      let g = 0;
      if (index2 < 16) {
        f = b & c | ~b & d;
        g = index2;
      } else if (index2 < 32) {
        f = d & b | ~d & c;
        g = (5 * index2 + 1) % 16;
      } else if (index2 < 48) {
        f = b ^ c ^ d;
        g = (3 * index2 + 5) % 16;
      } else {
        f = c ^ (b | ~d);
        g = 7 * index2 % 16;
      }
      const next = d;
      d = c;
      c = b;
      b = b + leftRotate(a + f + MD5_CONSTANTS[index2] + words[g] >>> 0, MD5_SHIFT_AMOUNTS[index2]) >>> 0;
      a = next;
    }
    a0 = a0 + a >>> 0;
    b0 = b0 + b >>> 0;
    c0 = c0 + c >>> 0;
    d0 = d0 + d >>> 0;
  }
  const hash = new Uint8Array(16);
  const hashView = new DataView(hash.buffer);
  hashView.setUint32(0, a0, true);
  hashView.setUint32(4, b0, true);
  hashView.setUint32(8, c0, true);
  hashView.setUint32(12, d0, true);
  return hash;
};
const toWorkflowGuid = (value) => {
  if (typeof value !== "string") {
    throw new TypeError("toGuid expects a string.");
  }
  const hash = md5(encodeWindows1252(value));
  const ordered = GUID_BYTE_ORDER.map((index2) => toHexByte(hash[index2]));
  return [
    ordered.slice(0, 4).join(""),
    ordered.slice(4, 6).join(""),
    ordered.slice(6, 8).join(""),
    ordered.slice(8, 10).join(""),
    ordered.slice(10, 16).join("")
  ].join("-");
};
const workflowSleep = (ms) => {
  const delay2 = Number.isFinite(ms) ? Math.max(0, Math.trunc(ms)) : 0;
  return new Promise((resolve) => {
    globalThis.setTimeout(resolve, delay2);
  });
};
const ZERO_GUID = "00000000-0000-0000-0000-000000000000";
const DATE_MIN = "0000-01-01T00:00:00Z";
const DATE_MAX = "2099-12-31T00:00:00.000Z";
const trimOrNull = (v) => {
  if (v === null || v === void 0) return null;
  const t = String(v).trim();
  return t.length ? t : null;
};
const parseJson = (v) => {
  if (v === null || v === void 0 || v === "") return null;
  if (typeof v === "string") {
    try {
      return JSON.parse(v);
    } catch {
      return null;
    }
  }
  return v;
};
const asArray = (v) => {
  if (v === null || v === void 0) return [];
  if (Array.isArray(v)) return v;
  if (typeof v === "string") {
    const parsed = parseJson(v);
    return parsed ? asArray(parsed) : [];
  }
  if (typeof v === "object") {
    const o = v;
    if (o.items) return asArray(o.items);
    if (typeof o.length === "number") {
      const out = [];
      for (let i = 0; i < o.length; i++) out.push(o[i]);
      return out;
    }
    const numericKeys = [];
    for (const k in o) {
      if (Object.prototype.hasOwnProperty.call(o, k) && /^\d+$/.test(k)) {
        numericKeys.push(parseInt(k, 10));
      }
    }
    if (numericKeys.length) {
      numericKeys.sort((a, b) => a - b);
      return numericKeys.map((n) => o[String(n)]);
    }
  }
  return [v];
};
const getProp = (obj, name) => {
  if (obj === null || obj === void 0 || !name) return void 0;
  const lower = name.charAt(0).toLowerCase() + name.slice(1);
  const upper = name.charAt(0).toUpperCase() + name.slice(1);
  if (obj[lower] !== void 0) return obj[lower];
  if (obj[upper] !== void 0) return obj[upper];
  return void 0;
};
const isZeroGuid = (v) => !v || v === ZERO_GUID;
const parseCompactDate = (s) => {
  if (!s) return null;
  const t = String(s);
  if (t.length !== 8) return null;
  return t.substring(0, 4) + "-" + t.substring(4, 6) + "-" + t.substring(6, 8);
};
const minOf = (list2, fallback) => {
  const arr = asArray(list2);
  if (!arr.length) return fallback;
  return arr.slice().sort()[0];
};
const maxOf = (list2, fallback) => {
  const arr = asArray(list2);
  if (!arr.length) return fallback;
  return arr.slice().sort().reverse()[0];
};
const toBoolean = (v) => {
  if (v === true || v === false) return v;
  const t = trimOrNull(v);
  return t ? t.toLowerCase() === "true" : false;
};
const isAggregateNotFound = (record) => {
  if (!record) return true;
  if (getProp(record, "success") === false) return true;
  if (getProp(record, "exceptionType") === "InvalidAggregateException") return true;
  if (getProp(record, "message") === "InvalidAggregateException.Aggregate.NotFound") return true;
  return false;
};
const addDays = (date, n) => {
  const d = date instanceof Date ? new Date(date.getTime()) : new Date(date);
  d.setDate(d.getDate() + (n || 0));
  return d;
};
const createWorkflowBuiltins = (log) => {
  return {
    debug: (value) => {
    },
    print: (message) => {
    },
    sleep: workflowSleep,
    toGuid: toWorkflowGuid,
    // Base helpers (canonical across engine / editor / simulator)
    ZERO_GUID,
    DATE_MIN,
    DATE_MAX,
    trimOrNull,
    parseJson,
    parseJsonObject: parseJson,
    parseObject: parseJson,
    asArray,
    toArray: asArray,
    getProp,
    isZeroGuid,
    parseCompactDate,
    minOf,
    maxOf,
    toBoolean,
    isAggregateNotFound,
    addDays
  };
};
const RESERVED_WORDS = /* @__PURE__ */ new Set([
  "await",
  "break",
  "case",
  "catch",
  "class",
  "const",
  "continue",
  "debugger",
  "default",
  "delete",
  "do",
  "else",
  "enum",
  "export",
  "extends",
  "false",
  "finally",
  "for",
  "function",
  "if",
  "import",
  "in",
  "instanceof",
  "new",
  "null",
  "return",
  "super",
  "switch",
  "this",
  "throw",
  "true",
  "try",
  "typeof",
  "var",
  "void",
  "while",
  "with",
  "yield",
  "let",
  "static",
  "implements",
  "interface",
  "package",
  "private",
  "protected",
  "public",
  // Builtins bound by wrapper — input variables must not shadow these.
  "input",
  "variables",
  "sys",
  "debug",
  "print",
  "sleep",
  "toGuid",
  // JS base helpers (canonical, mirrored across engine/editor/simulator)
  "ZERO_GUID",
  "DATE_MIN",
  "DATE_MAX",
  "trimOrNull",
  "parseJson",
  "parseJsonObject",
  "parseObject",
  "asArray",
  "toArray",
  "getProp",
  "isZeroGuid",
  "parseCompactDate",
  "minOf",
  "maxOf",
  "toBoolean",
  "isAggregateNotFound",
  "addDays"
]);
const isValidIdentifier = (key) => /^[A-Za-z_$][\w$]*$/.test(key) && !RESERVED_WORDS.has(key);
const buildGlobalBindings = (globals) => {
  const keys = Object.keys(globals).filter(isValidIdentifier);
  if (keys.length === 0) return "";
  return `const { ${keys.join(", ")} } = __context.globals;`;
};
const normalizeModule = (moduleValue) => {
  if (!moduleValue || typeof moduleValue !== "object") return moduleValue;
  const keys = Object.keys(moduleValue).filter((key) => key !== "__esModule");
  if (keys.length === 1 && keys[0] === "default") {
    return moduleValue.default;
  }
  return moduleValue;
};
const isUrlLike = (specifier) => /^(?:https?:|data:|blob:|file:|\/)/.test(specifier);
const defaultResolveModuleSpecifier = (specifier, baseUrl) => {
  if (specifier.startsWith(".")) {
    return new URL(specifier, baseUrl).href;
  }
  if (isUrlLike(specifier)) {
    return specifier.startsWith("/") ? new URL(specifier, baseUrl).href : specifier;
  }
  return `https://esm.sh/${specifier}`;
};
const stripCommentsAndStrings = (code) => {
  let result = "";
  let inSingle = false;
  let inDouble = false;
  let inTemplate = false;
  let inLineComment = false;
  let inBlockComment = false;
  let escaped = false;
  for (let i = 0; i < code.length; i++) {
    const current = code[i];
    const next = code[i + 1];
    if (inLineComment) {
      if (current === "\n") {
        inLineComment = false;
        result += "\n";
      }
      continue;
    }
    if (inBlockComment) {
      if (current === "*" && next === "/") {
        inBlockComment = false;
        i++;
      }
      continue;
    }
    if (inSingle) {
      if (!escaped && current === "'") inSingle = false;
      escaped = !escaped && current === "\\";
      result += " ";
      continue;
    }
    if (inDouble) {
      if (!escaped && current === '"') inDouble = false;
      escaped = !escaped && current === "\\";
      result += " ";
      continue;
    }
    if (inTemplate) {
      if (!escaped && current === "`") inTemplate = false;
      escaped = !escaped && current === "\\";
      result += current === "\n" ? "\n" : " ";
      continue;
    }
    escaped = false;
    if (current === "/" && next === "/") {
      inLineComment = true;
      i++;
      continue;
    }
    if (current === "/" && next === "*") {
      inBlockComment = true;
      i++;
      continue;
    }
    if (current === "'") {
      inSingle = true;
      result += " ";
      continue;
    }
    if (current === '"') {
      inDouble = true;
      result += " ";
      continue;
    }
    if (current === "`") {
      inTemplate = true;
      result += " ";
      continue;
    }
    result += current;
  }
  return result;
};
const collectRequireSpecifiers = (code) => {
  const sanitized = stripCommentsAndStrings(code);
  const matches = sanitized.matchAll(/\brequire\s*\(\s*(['"])([^'"]+)\1\s*\)/g);
  return Array.from(new Set(Array.from(matches, (match) => match[2])));
};
const skipWhitespaceAndComments = (code, index2) => {
  let current = index2;
  while (current < code.length) {
    if (/\s/.test(code[current])) {
      current++;
      continue;
    }
    if (code[current] === "/" && code[current + 1] === "/") {
      current += 2;
      while (current < code.length && code[current] !== "\n") current++;
      continue;
    }
    if (code[current] === "/" && code[current + 1] === "*") {
      current += 2;
      while (current < code.length && !(code[current] === "*" && code[current + 1] === "/")) current++;
      current += 2;
      continue;
    }
    break;
  }
  return current;
};
const readImportStatement = (code, startIndex) => {
  const index2 = skipWhitespaceAndComments(code, startIndex);
  if (!code.slice(index2).startsWith("import")) {
    return null;
  }
  let i = index2;
  let braceDepth = 0;
  let parenDepth = 0;
  let bracketDepth = 0;
  let inSingle = false;
  let inDouble = false;
  let inTemplate = false;
  let escaped = false;
  while (i < code.length) {
    const current = code[i];
    const next = code[i + 1];
    if (inSingle) {
      if (!escaped && current === "'") inSingle = false;
      escaped = !escaped && current === "\\";
      i++;
      continue;
    }
    if (inDouble) {
      if (!escaped && current === '"') inDouble = false;
      escaped = !escaped && current === "\\";
      i++;
      continue;
    }
    if (inTemplate) {
      if (!escaped && current === "`") inTemplate = false;
      escaped = !escaped && current === "\\";
      i++;
      continue;
    }
    escaped = false;
    if (current === "/" && next === "/") {
      i += 2;
      while (i < code.length && code[i] !== "\n") i++;
      continue;
    }
    if (current === "/" && next === "*") {
      i += 2;
      while (i < code.length && !(code[i] === "*" && code[i + 1] === "/")) i++;
      i += 2;
      continue;
    }
    if (current === "'") {
      inSingle = true;
      i++;
      continue;
    }
    if (current === '"') {
      inDouble = true;
      i++;
      continue;
    }
    if (current === "`") {
      inTemplate = true;
      i++;
      continue;
    }
    if (current === "{") braceDepth++;
    if (current === "}") braceDepth--;
    if (current === "(") parenDepth++;
    if (current === ")") parenDepth--;
    if (current === "[") bracketDepth++;
    if (current === "]") bracketDepth--;
    if (braceDepth === 0 && parenDepth === 0 && bracketDepth === 0) {
      if (current === ";") {
        return { statement: code.slice(index2, i + 1), endIndex: i + 1 };
      }
      if (current === "\n") {
        return { statement: code.slice(index2, i), endIndex: i + 1 };
      }
    }
    i++;
  }
  return { statement: code.slice(index2), endIndex: code.length };
};
const splitLeadingImports = (code) => {
  const imports = [];
  let index2 = 0;
  while (true) {
    const statement = readImportStatement(code, index2);
    if (!statement) break;
    imports.push(statement.statement.trim());
    index2 = statement.endIndex;
  }
  return {
    imports,
    body: code.slice(index2).trimStart()
  };
};
const rewriteImportSpecifier = (statement, nextSpecifier) => {
  if (/\bfrom\s+['"]/.test(statement)) {
    return statement.replace(/(\bfrom\s+)(['"])([^'"]+)(['"])/, `$1$2${nextSpecifier}$4`);
  }
  return statement.replace(/(\bimport\s*)(['"])([^'"]+)(['"])/, `$1$2${nextSpecifier}$4`);
};
const rewriteImports = (imports, baseUrl) => {
  const rewritten = [];
  for (const statement of imports) {
    const fromMatch = statement.match(/\bfrom\s+['"]([^'"]+)['"]/);
    const sideEffectMatch = !fromMatch ? statement.match(/\bimport\s+['"]([^'"]+)['"]/) : null;
    const specifier = (fromMatch == null ? void 0 : fromMatch[1]) || (sideEffectMatch == null ? void 0 : sideEffectMatch[1]);
    if (!specifier) {
      rewritten.push(statement);
      continue;
    }
    const resolved = defaultResolveModuleSpecifier(specifier, baseUrl);
    rewritten.push(rewriteImportSpecifier(statement, resolved));
  }
  return rewritten;
};
const createRequire = async (specifiers, baseUrl) => {
  const cache = {};
  await Promise.all(
    specifiers.map(async (specifier) => {
      const resolved = defaultResolveModuleSpecifier(specifier, baseUrl);
      const loaded = await import(
        /* @vite-ignore */
        resolved
      );
      cache[specifier] = normalizeModule(loaded);
      cache[resolved] = cache[specifier];
    })
  );
  return (specifier) => {
    if (specifier in cache) {
      return cache[specifier];
    }
    throw new Error(`Module "${specifier}" is not available to require().`);
  };
};
const executeModuleScript = async (code, context) => {
  const baseUrl = typeof document !== "undefined" ? document.baseURI : window.location.href;
  const { imports, body } = splitLeadingImports(code);
  const require2 = await createRequire(collectRequireSpecifiers(body), baseUrl);
  const rewrittenImports = rewriteImports(imports, baseUrl);
  const globals = context.variables ?? context.input ?? context;
  const globalBindings = buildGlobalBindings(globals);
  const workflowBuiltins = createWorkflowBuiltins();
  const moduleSource = `
${rewrittenImports.join("\n")}
export default async function(__context) {
  const input = __context.input ?? {};
  const variables = __context.variables ?? input;
  ${globalBindings}
  const require = __context.require;
  const debug = __context.debug;
  const print = __context.print;
  const sleep = __context.sleep;
  const toGuid = __context.toGuid;
  ${body}
}
`;
  const blobUrl = URL.createObjectURL(new Blob([moduleSource], { type: "text/javascript" }));
  try {
    const moduleValue = await import(
      /* @vite-ignore */
      blobUrl
    );
    return await moduleValue.default({
      ...context,
      input: context.input ?? context,
      variables: context.variables ?? context.input ?? context,
      globals,
      require: require2,
      ...workflowBuiltins
    });
  } finally {
    URL.revokeObjectURL(blobUrl);
  }
};
const _ExpressionEngine = class _ExpressionEngine {
  /**
   * Safe evaluation of JS expressions using expr-eval library.
   * This provides a sandboxed environment for mathematical and logical expressions.
   */
  static evaluate(expression, context) {
    if (!expression) return null;
    try {
      const expr = this.parser.parse(expression);
      return expr.evaluate(context);
    } catch (error) {
      console.warn(`Expression evaluation error for "${expression}":`, error);
      if (typeof expression === "string" && !expression.includes(" ") && !expression.includes(".")) {
        return expression;
      }
      return null;
    }
  }
  /**
   * Executes a block of JavaScript code with the given context.
   * Returns the result of the script execution (the value of the last statement or explicit return).
   */
  static async execute(script, context) {
    if (!script) return void 0;
    return executeModuleScript(script, context);
  }
  /**
   * Interpolates string templates with ${variable} syntax
   */
  static interpolate(template, context) {
    if (!template || typeof template !== "string") return "";
    return template.replace(/\$\{(.*?)\}/g, (_match, expr) => {
      try {
        const result = this.evaluate(expr, context);
        return result !== void 0 && result !== null ? String(result) : "";
      } catch {
        return "";
      }
    });
  }
  /**
   * Interpolates a value, preserving its original type when the template is a single ${expression}.
   * For pure expressions like "${variable}", returns the raw value (including null/undefined).
   * For mixed strings like "Hello ${name}", falls through to string interpolation.
   */
  static interpolateValue(template, context) {
    if (template === null || template === void 0) return template;
    if (typeof template !== "string") return template;
    const pureMatch = template.match(/^\$\{(.*?)\}$/);
    if (pureMatch) {
      try {
        return this.evaluate(pureMatch[1], context);
      } catch (e) {
        return null;
      }
    }
    return this.interpolate(template, context);
  }
  /**
   * Evaluates a boolean condition
   */
  static evaluateCondition(condition2, context) {
    if (!condition2) return true;
    if (condition2 === "true") return true;
    if (condition2 === "false") return false;
    const result = this.evaluate(condition2, context);
    return !!result;
  }
};
_ExpressionEngine.parser = new Parser();
let ExpressionEngine = _ExpressionEngine;
const ServiceTaskSimulationForm = ({ node, onNext, variables }) => {
  const [jsonContent, setJsonContent] = useState("");
  const [jsonError, setJsonError] = useState(null);
  const [isExecuting, setIsExecuting] = useState(false);
  const [executionStatus, setExecutionStatus] = useState("idle");
  const isStartEvent2 = node.type === "MessageStartEvent" || node.type === "SignalStartEvent";
  const isRest = node.type === "ServiceTaskREST";
  const isEmail = node.type === "ServiceTaskEmail";
  const isSMS = node.type === "ServiceTaskSMS";
  const isDB = node.type === "ServiceTaskDB";
  const isLLM = node.type === "ServiceTaskLLM";
  const isMCP = node.type === "ServiceTaskMCP";
  const label = isStartEvent2 ? "Payload" : "Mock Response";
  let icon = /* @__PURE__ */ jsx(Settings, { size: 12 });
  if (isStartEvent2) icon = /* @__PURE__ */ jsx(Mail, { size: 12 });
  else if (isRest) icon = /* @__PURE__ */ jsx(Globe, { size: 12 });
  else if (isDB) icon = /* @__PURE__ */ jsx(Database, { size: 12 });
  else if (isLLM) icon = /* @__PURE__ */ jsx(Bot, { size: 12 });
  else if (isSMS) icon = /* @__PURE__ */ jsx(Smartphone, { size: 12 });
  else if (isMCP) icon = /* @__PURE__ */ jsx(Server, { size: 12 });
  useEffect(() => {
    if (node.data.exampleResponse) {
      setJsonContent(node.data.exampleResponse);
    } else if (isStartEvent2) {
      setJsonContent('{\n  "payloadId": "12345",\n  "data": {}\n}');
    } else {
      setJsonContent(JSON.stringify({ status: "success", data: {} }, null, 2));
    }
    setJsonError(null);
    setExecutionStatus("idle");
  }, [node.id, isStartEvent2, node.data.exampleResponse]);
  const getInterpolatedConfig = () => {
    if (isRest) {
      const endpoint = ExpressionEngine.interpolate(node.data.endpoint || "", variables);
      const method = node.data.method || "GET";
      const body = node.data.requestBody ? ExpressionEngine.interpolate(node.data.requestBody, variables) : null;
      const headers = {};
      if (node.data.headers) {
        Object.entries(node.data.headers).forEach(([k, v]) => {
          headers[k] = ExpressionEngine.interpolate(v, variables);
        });
      }
      return { kind: "rest", endpoint, method, body, headers };
    }
    if (isEmail) {
      return {
        kind: "email",
        to: ExpressionEngine.interpolate(node.data.to || "", variables),
        subject: ExpressionEngine.interpolate(node.data.subject || "", variables),
        body: ExpressionEngine.interpolate(node.data.body || "", variables)
      };
    }
    if (isSMS) {
      return {
        kind: "sms",
        toPhone: ExpressionEngine.interpolate(node.data.toPhone || "", variables),
        message: ExpressionEngine.interpolate(node.data.message || "", variables)
      };
    }
    if (isMCP) {
      return {
        kind: "mcp",
        serverUrl: ExpressionEngine.interpolate(node.data.mcpServerUrl || "", variables),
        operation: node.data.mcpOperation || "CallTool",
        toolName: node.data.mcpToolName,
        resourceUri: node.data.mcpResourceUri ? ExpressionEngine.interpolate(node.data.mcpResourceUri, variables) : void 0
      };
    }
    return null;
  };
  const configPreview = getInterpolatedConfig();
  const handleExecute = async () => {
    if (!configPreview || configPreview.kind !== "rest") return;
    setIsExecuting(true);
    setExecutionStatus("idle");
    try {
      const { endpoint, method, body, headers } = configPreview;
      const res = await fetch(endpoint, {
        method,
        headers,
        body: method !== "GET" && method !== "HEAD" && body ? body : void 0
      });
      const contentType = res.headers.get("content-type");
      let data;
      if (contentType && contentType.includes("application/json")) {
        data = await res.json();
      } else {
        data = { text: await res.text() };
      }
      setJsonContent(JSON.stringify({
        status: res.status,
        statusText: res.statusText,
        data
      }, null, 2));
      setExecutionStatus("success");
    } catch (err) {
      const msg = err instanceof Error ? err.message : "Unknown error";
      setJsonError(`Execution failed: ${msg}`);
      setExecutionStatus("error");
    } finally {
      setIsExecuting(false);
    }
  };
  const tryParseJson = (raw) => {
    try {
      return JSON.parse(raw);
    } catch {
      return void 0;
    }
  };
  const buildExtractedPayload = (resultVar) => {
    const hasResultVar = resultVar.length > 0;
    if (node.data.extractionRules && node.data.extractionRules.length > 0) {
      const extracted = extractData(jsonContent, node.data.extractionRules);
      return hasResultVar ? { [resultVar]: extracted } : extracted;
    }
    if (isStartEvent2) {
      const parsed2 = tryParseJson(jsonContent);
      return parsed2 && typeof parsed2 === "object" && !Array.isArray(parsed2) ? parsed2 : {};
    }
    if (hasResultVar) {
      const parsed2 = tryParseJson(jsonContent);
      return { [resultVar]: parsed2 !== void 0 ? parsed2 : jsonContent };
    }
    const parsed = tryParseJson(jsonContent);
    if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
      return parsed;
    }
    return {};
  };
  const handleSubmit = () => {
    const rawResultVar = node.data.resultVariable || node.data.outputVariable;
    const resultVar = typeof rawResultVar === "string" ? rawResultVar.trim() : "";
    let extractedData = buildExtractedPayload(resultVar);
    if (isRest) {
      const parsed = tryParseJson(jsonContent);
      if (parsed !== void 0) {
        extractedData = { ...extractedData, mockResponse: parsed };
      }
    }
    onNext(extractedData);
  };
  const renderConfigPreview = () => {
    if (!configPreview) return null;
    if (configPreview.kind === "rest") {
      const { endpoint, method, headers, body } = configPreview;
      const methodColor = method === "GET" ? "text-blue-600 bg-blue-50" : method === "POST" ? "text-emerald-600 bg-emerald-50" : "text-orange-600 bg-orange-50";
      return /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 p-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
          /* @__PURE__ */ jsxs("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(Globe, { size: 10 }),
            " Request Preview"
          ] }),
          isRest && /* @__PURE__ */ jsxs(
            "button",
            {
              onClick: handleExecute,
              disabled: isExecuting,
              className: "text-[10px] flex items-center gap-1 font-bold uppercase tracking-wider bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 px-2 py-1 rounded text-slate-600 hover:text-teal-600 hover:border-teal-500 transition-colors disabled:opacity-50",
              children: [
                isExecuting ? /* @__PURE__ */ jsx(LoaderCircle, { size: 10, className: "animate-spin" }) : /* @__PURE__ */ jsx(Play, { size: 10 }),
                "Test Live Endpoint"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-mono text-xs", children: [
          /* @__PURE__ */ jsx("span", { className: `px-1.5 py-0.5 rounded font-bold ${methodColor} border border-black/5`, children: method }),
          /* @__PURE__ */ jsx("span", { className: "truncate text-slate-700 dark:text-slate-300", title: endpoint, children: endpoint })
        ] }),
        Object.keys(headers).length > 0 && /* @__PURE__ */ jsxs("div", { className: "text-[10px] text-slate-500 font-mono", children: [
          /* @__PURE__ */ jsx("span", { className: "font-semibold text-slate-400", children: "Headers: " }),
          Object.keys(headers).length,
          " defined"
        ] }),
        body && /* @__PURE__ */ jsxs("div", { className: "mt-2 pt-2 border-t border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsx("div", { className: "text-[10px] font-bold text-slate-400 mb-1", children: "BODY" }),
          /* @__PURE__ */ jsx("pre", { className: "text-[10px] text-slate-600 dark:text-slate-400 font-mono whitespace-pre-wrap break-all max-h-20 overflow-y-auto", children: body })
        ] }),
        executionStatus === "error" && /* @__PURE__ */ jsxs("div", { className: "mt-2 p-2 bg-red-50 text-red-600 text-[10px] rounded border border-red-100 flex items-center gap-1", children: [
          /* @__PURE__ */ jsx(CircleAlert, { size: 10 }),
          " Request failed. Check console or CORS settings."
        ] })
      ] });
    }
    if (configPreview.kind === "email") {
      const { to, subject } = configPreview;
      return /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 p-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider flex items-center gap-1 mb-2", children: [
          /* @__PURE__ */ jsx(Mail, { size: 10 }),
          " Email Preview"
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[40px_1fr] gap-1 text-xs", children: [
          /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium", children: "To:" }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-mono truncate", children: to }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium", children: "Subj:" }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-medium truncate", children: subject })
        ] })
      ] });
    }
    if (configPreview.kind === "sms") {
      const { toPhone, message } = configPreview;
      return /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 p-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider flex items-center gap-1 mb-2", children: [
          /* @__PURE__ */ jsx(Smartphone, { size: 10 }),
          " SMS Preview"
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[40px_1fr] gap-1 text-xs", children: [
          /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium", children: "To:" }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-mono truncate", children: toPhone })
        ] }),
        /* @__PURE__ */ jsx("div", { className: "mt-1 pt-1 border-t border-slate-100 dark:border-slate-800", children: /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-600 dark:text-slate-400 whitespace-pre-wrap", children: message }) })
      ] });
    }
    if (configPreview.kind === "mcp") {
      const { serverUrl, operation, toolName, resourceUri } = configPreview;
      return /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 p-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider flex items-center gap-1 mb-2", children: [
          /* @__PURE__ */ jsx(Server, { size: 10 }),
          " MCP Request Preview"
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium w-12 shrink-0", children: "Server:" }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-mono truncate", children: serverUrl })
          ] }),
          /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium w-12 shrink-0", children: "Op:" }),
            /* @__PURE__ */ jsx("span", { className: "text-teal-600 font-bold", children: operation })
          ] }),
          toolName && /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium w-12 shrink-0", children: "Tool:" }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-mono", children: toolName })
          ] }),
          resourceUri && /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400 font-medium w-12 shrink-0", children: "URI:" }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-700 dark:text-slate-300 font-mono truncate", children: resourceUri })
          ] })
        ] })
      ] });
    }
    return null;
  };
  const rules2 = node.data.extractionRules || [];
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      !isStartEvent2 && renderConfigPreview(),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-xs font-bold text-slate-500 uppercase tracking-wider mb-2", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
          icon,
          /* @__PURE__ */ jsx("span", { children: label })
        ] }),
        executionStatus === "success" && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-emerald-600 bg-emerald-50 px-2 py-0.5 rounded-full", children: "Updated from live request" })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "relative", children: [
        /* @__PURE__ */ jsx(
          "textarea",
          {
            className: `w-full h-64 px-3 py-2 font-mono text-xs border rounded-lg bg-slate-50 dark:bg-slate-950 focus:ring-2 focus:ring-teal-500 outline-none resize-none ${jsonError ? "border-red-500" : "border-slate-300 dark:border-slate-700"}`,
            value: jsonContent,
            onChange: (e) => {
              setJsonContent(e.target.value);
              setJsonError(null);
              setExecutionStatus("idle");
            },
            spellCheck: false
          }
        ),
        jsonError && /* @__PURE__ */ jsxs("div", { className: "absolute bottom-2 right-2 text-xs text-red-500 bg-white dark:bg-slate-900 px-2 py-1 rounded shadow-sm border border-red-100 dark:border-red-900 flex items-center gap-1", children: [
          /* @__PURE__ */ jsx(CircleAlert, { size: 12 }),
          " ",
          jsonError
        ] })
      ] }),
      rules2.length > 0 && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900/50 rounded-lg border border-slate-100 dark:border-slate-800 space-y-2", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[10px] font-bold text-slate-500 uppercase tracking-wider", children: [
          /* @__PURE__ */ jsx(Braces, { size: 10 }),
          " Will Extract:"
        ] }),
        /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-2", children: rules2.map((rule, idx) => /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-900 p-2 rounded border border-slate-200 dark:border-slate-700 text-xs flex justify-between items-center", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 truncate flex-1 min-w-0", children: [
            /* @__PURE__ */ jsx("span", { className: "text-[9px] bg-slate-100 dark:bg-slate-800 px-1.5 py-0.5 rounded font-mono uppercase text-slate-500", children: rule.method }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-600 dark:text-slate-300 truncate font-mono", title: rule.source, children: rule.source })
          ] }),
          /* @__PURE__ */ jsxs("span", { className: "font-bold text-teal-600 dark:text-teal-400 flex items-center gap-1 ml-2 shrink-0", children: [
            /* @__PURE__ */ jsx(ArrowRight, { size: 10 }),
            " ",
            rule.targetVar
          ] })
        ] }, idx)) })
      ] }),
      rules2.length === 0 && /* @__PURE__ */ jsx("div", { className: "p-3 bg-slate-50 dark:bg-slate-900/50 rounded-lg text-xs text-slate-500 leading-relaxed border border-slate-100 dark:border-slate-800 italic", children: isStartEvent2 ? "Entire payload will be added to variables." : "No extraction rules defined. Raw response might be ignored unless result variable is set." })
    ] }) }),
    /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex justify-end", children: /* @__PURE__ */ jsxs(
      "button",
      {
        onClick: handleSubmit,
        className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all hover:translate-y-px text-sm",
        children: [
          isStartEvent2 ? "Trigger Event" : "Process Response",
          /* @__PURE__ */ jsx(ArrowRight, { size: 16 })
        ]
      }
    ) })
  ] });
};
const GatewaySimulationForm = ({
  node,
  edges,
  onNext,
  suggestedPath,
  visitedEdgeIds = [],
  executionQueueCount = 0,
  executionQueue = [],
  onProcessQueue
}) => {
  const isParallel = node.type === "ParallelGateway";
  const isMerging = node.data.isMerging;
  const getReachableNodes = (startNodeIds, allEdges) => {
    const reachable = /* @__PURE__ */ new Set();
    const stack = [...startNodeIds];
    while (stack.length > 0) {
      const current = stack.pop();
      if (reachable.has(current)) continue;
      reachable.add(current);
      const outgoing = allEdges.filter((e) => e.source === current && e.sourceHandle !== "boundary");
      outgoing.forEach((e) => stack.push(e.target));
    }
    return reachable;
  };
  const mergeStatus = useMemo(() => {
    if (!isMerging) return null;
    const incomingEdges = edges.filter((e) => e.target === node.id);
    const visited = incomingEdges.filter((e) => visitedEdgeIds.includes(e.id));
    const unvisited = incomingEdges.filter((e) => !visitedEdgeIds.includes(e.id));
    const reachableFromQueue = getReachableNodes(executionQueue, edges);
    const deadPaths = unvisited.filter((edge) => !reachableFromQueue.has(edge.source));
    const potentiallyActivePaths = unvisited.filter((edge) => reachableFromQueue.has(edge.source));
    const isReady = potentiallyActivePaths.length === 0;
    return {
      incomingEdges,
      visited,
      unvisited,
      deadPaths,
      potentiallyActivePaths,
      isReady
    };
  }, [node.id, edges, visitedEdgeIds, executionQueue, isMerging]);
  if (isParallel && !isMerging) {
    return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-6 flex flex-col items-center justify-center text-center", children: [
        /* @__PURE__ */ jsx("div", { className: "w-16 h-16 bg-slate-50 dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-full flex items-center justify-center mb-4 shadow-sm", children: /* @__PURE__ */ jsx(Split, { size: 24, className: "text-teal-500" }) }),
        /* @__PURE__ */ jsx("h4", { className: "text-lg font-bold text-slate-900 dark:text-white mb-2", children: "Parallel Split" }),
        /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 mb-6 px-4", children: "Splitting into multiple paths. Simulator queues pending paths." }),
        /* @__PURE__ */ jsx("div", { className: "w-full bg-slate-50 dark:bg-slate-950 p-3 rounded-lg border border-slate-200 dark:border-slate-800 text-xs font-mono text-slate-600 dark:text-slate-300", children: "All outgoing paths activated." })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex justify-end", children: /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => onNext({}),
          className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all text-sm",
          children: [
            "Execute Split",
            /* @__PURE__ */ jsx(Split, { size: 16 })
          ]
        }
      ) })
    ] });
  }
  if (isMerging && mergeStatus) {
    const { visited, incomingEdges, unvisited, deadPaths, potentiallyActivePaths, isReady } = mergeStatus;
    return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-6 flex flex-col items-center justify-center text-center", children: [
        /* @__PURE__ */ jsx("div", { className: "w-16 h-16 bg-slate-50 dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-full flex items-center justify-center mb-4 shadow-sm", children: /* @__PURE__ */ jsx(Merge, { size: 24, className: isReady ? "text-emerald-500" : "text-amber-500" }) }),
        /* @__PURE__ */ jsx("h4", { className: "text-lg font-bold text-slate-900 dark:text-white mb-1", children: isReady ? "Merge Synchronized" : "Waiting for Tokens" }),
        /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 mb-6", children: /* @__PURE__ */ jsxs("span", { className: `px-2 py-1 rounded text-[10px] font-bold uppercase tracking-wider ${isReady ? "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30" : "bg-amber-100 text-amber-700 dark:bg-amber-900/30"}`, children: [
          visited.length,
          " / ",
          incomingEdges.length,
          " Flows Received"
        ] }) }),
        /* @__PURE__ */ jsxs("div", { className: "w-full space-y-4 text-left", children: [
          !isReady ? /* @__PURE__ */ jsxs("div", { className: "p-3 bg-amber-50 dark:bg-amber-900/10 border border-amber-200 dark:border-amber-800/50 rounded-lg", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-amber-700 dark:text-amber-400", children: [
              /* @__PURE__ */ jsx(TriangleAlert, { size: 14, className: "mt-0.5 shrink-0" }),
              /* @__PURE__ */ jsx("span", { className: "text-xs font-bold", children: "Incomplete Join" })
            ] }),
            /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-amber-600 dark:text-amber-500 mt-1", children: [
              potentiallyActivePaths.length,
              " incoming path(s) are still reachable from other active tokens in the process."
            ] })
          ] }) : visited.length < incomingEdges.length ? /* @__PURE__ */ jsxs("div", { className: "p-3 bg-blue-50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800/50 rounded-lg", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-blue-700 dark:text-blue-400", children: [
              /* @__PURE__ */ jsx(CircleCheckBig, { size: 14, className: "mt-0.5 shrink-0" }),
              /* @__PURE__ */ jsx("span", { className: "text-xs font-bold", children: "Dead-Path Elimination" })
            ] }),
            /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-blue-600 dark:text-blue-500 mt-1", children: [
              "Reachability analysis confirms no other tokens can trigger the remaining ",
              unvisited.length,
              " inputs. Proceeding."
            ] })
          ] }) : null,
          /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
            /* @__PURE__ */ jsx("label", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-widest", children: "Input Connectivity" }),
            incomingEdges.map((edge, i) => {
              const isVisited = visited.includes(edge);
              const isDead = deadPaths.includes(edge);
              return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-2 rounded bg-slate-50 dark:bg-slate-950 border border-slate-100 dark:border-slate-800 text-[10px]", children: [
                /* @__PURE__ */ jsxs("span", { className: "font-mono text-slate-500", children: [
                  "Input #",
                  i + 1
                ] }),
                isVisited ? /* @__PURE__ */ jsxs("span", { className: "text-emerald-600 font-bold flex items-center gap-1", children: [
                  /* @__PURE__ */ jsx(CircleCheckBig, { size: 10 }),
                  " RECEIVED"
                ] }) : isDead ? /* @__PURE__ */ jsxs("span", { className: "text-slate-400 font-medium flex items-center gap-1", children: [
                  /* @__PURE__ */ jsx(CircleX, { size: 10 }),
                  " UNREACHABLE"
                ] }) : /* @__PURE__ */ jsxs("span", { className: "text-amber-600 font-bold flex items-center gap-1 animate-pulse", children: [
                  /* @__PURE__ */ jsx(ArrowRight, { size: 10 }),
                  " PENDING"
                ] })
              ] }, i);
            })
          ] })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex flex-col gap-3", children: [
        !isReady && executionQueueCount > 0 && onProcessQueue && /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: onProcessQueue,
            className: "w-full px-4 py-2.5 rounded-lg bg-amber-100 hover:bg-amber-200 text-amber-800 font-bold flex items-center justify-center gap-2 transition-all text-sm shadow-sm",
            children: [
              "Switch to Pending Branch (",
              executionQueueCount,
              ")",
              /* @__PURE__ */ jsx(ArrowRight, { size: 14 })
            ]
          }
        ),
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: () => onNext({}),
            disabled: !isReady,
            className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all text-sm disabled:opacity-50 disabled:cursor-not-allowed",
            children: [
              "Proceed with Flow",
              /* @__PURE__ */ jsx(Merge, { size: 16 })
            ]
          }
        )
      ] })
    ] });
  }
  let outputs = node.data.outputs || [];
  if (outputs.length === 0) {
    const outgoingEdges = edges.filter((e) => e.source === node.id);
    outputs = outgoingEdges.map((e, i) => {
      const label = typeof e.label === "string" ? e.label : void 0;
      return label || `Path ${i + 1}`;
    });
  }
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
    /* @__PURE__ */ jsxs("div", { className: "text-center mb-6 pt-2", children: [
      /* @__PURE__ */ jsx("div", { className: "inline-flex items-center justify-center w-12 h-12 rounded-full bg-slate-50 dark:bg-slate-800 border border-slate-100 dark:border-slate-700 mb-3 shadow-sm", children: /* @__PURE__ */ jsx(GitFork, { size: 20, className: "text-slate-400" }) }),
      /* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-slate-700 dark:text-slate-300", children: "Make Decision" }),
      /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500", children: "Select a path to continue." })
    ] }),
    /* @__PURE__ */ jsx("div", { className: "grid gap-3", children: outputs.map((output, idx) => {
      const isSuggested = suggestedPath === String(idx);
      return /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => onNext({ selectedPath: idx }),
          className: `flex items-center justify-between p-3 rounded-xl border transition-all group text-left
                            ${isSuggested ? "border-teal-500 ring-1 ring-teal-500/20 bg-teal-50/10 dark:bg-teal-900/10 shadow-sm" : "border-slate-200 dark:border-slate-700 hover:border-slate-300 dark:hover:border-slate-600 bg-white dark:bg-slate-900 shadow-sm"}`,
          children: [
            /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
              /* @__PURE__ */ jsx("div", { className: `w-6 h-6 rounded flex items-center justify-center text-xs font-bold border ${isSuggested ? "bg-teal-100 dark:bg-teal-900/50 border-teal-200 dark:border-teal-800 text-teal-700 dark:text-teal-400" : "bg-slate-100 dark:bg-slate-800 border-slate-200 dark:border-slate-700 text-slate-500"}`, children: idx + 1 }),
              /* @__PURE__ */ jsx("div", { className: "min-w-0", children: /* @__PURE__ */ jsx("div", { className: `font-bold text-sm truncate ${isSuggested ? "text-teal-900 dark:text-teal-100" : "text-slate-700 dark:text-slate-200"}`, children: output }) })
            ] }),
            isSuggested ? /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold text-teal-600 dark:text-teal-400 bg-teal-50 dark:bg-teal-900/30 px-2 py-1 rounded-full flex items-center gap-1 shrink-0", children: /* @__PURE__ */ jsx(CircleCheckBig, { size: 10 }) }) : /* @__PURE__ */ jsx(ChevronRight, { size: 16, className: "text-slate-300 group-hover:text-slate-500 shrink-0" })
          ]
        },
        idx
      );
    }) })
  ] }) }) });
};
const GenericSimulationForm = ({ node, onNext, isEnd, onExit }) => {
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-6 flex flex-col items-center justify-center text-center", children: isEnd ? /* @__PURE__ */ jsxs(Fragment, { children: [
      /* @__PURE__ */ jsx("div", { className: "w-16 h-16 bg-emerald-50 dark:bg-emerald-900/20 border border-emerald-100 dark:border-emerald-800 text-emerald-600 dark:text-emerald-400 rounded-full flex items-center justify-center mb-4 animate-pulse", children: /* @__PURE__ */ jsx(Square, { size: 24, fill: "currentColor" }) }),
      /* @__PURE__ */ jsx("h4", { className: "text-lg font-bold text-slate-900 dark:text-white mb-2", children: "Process Completed" }),
      /* @__PURE__ */ jsxs("p", { className: "text-xs text-slate-500 max-w-xs", children: [
        "Reached ",
        /* @__PURE__ */ jsx("strong", { children: node.data.label }),
        " successfully."
      ] })
    ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
      /* @__PURE__ */ jsx("div", { className: "w-16 h-16 bg-slate-50 dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-full flex items-center justify-center mb-4 shadow-sm", children: /* @__PURE__ */ jsx(Play, { size: 24, className: "text-slate-400 ml-1" }) }),
      /* @__PURE__ */ jsx("p", { className: "text-slate-900 dark:text-white font-bold text-sm mb-1", children: "Automated Step" }),
      /* @__PURE__ */ jsxs("p", { className: "text-slate-500 text-xs max-w-xs", children: [
        "Executing ",
        /* @__PURE__ */ jsx("strong", { children: node.data.label }),
        " automatically."
      ] })
    ] }) }),
    /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex flex-col gap-3", children: isEnd ? /* @__PURE__ */ jsxs(Fragment, { children: [
      onExit && /* @__PURE__ */ jsx(
        "button",
        {
          onClick: onExit,
          className: "w-full px-5 py-2.5 rounded-lg border border-slate-200 dark:border-slate-700 text-slate-600 dark:text-slate-300 hover:bg-white dark:hover:bg-slate-800 font-bold flex items-center justify-center gap-2 transition-all text-sm",
          children: "Exit Simulation"
        }
      ),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => onNext(),
          className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all text-sm",
          children: [
            "Check Pending Paths",
            /* @__PURE__ */ jsx(ArrowRight, { size: 16 })
          ]
        }
      )
    ] }) : /* @__PURE__ */ jsxs(
      "button",
      {
        onClick: () => onNext(),
        className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all hover:translate-y-px text-sm",
        children: [
          "Next Step",
          /* @__PURE__ */ jsx(ArrowRight, { size: 16 })
        ]
      }
    ) })
  ] });
};
const ScriptTaskSimulationForm = ({ node, onNext, variables }) => {
  const [updatedVariables, setUpdatedVariables] = useState({});
  const [logs, setLogs] = useState([]);
  const [error, setError] = useState(null);
  const [executed, setExecuted] = useState(false);
  const [isRunning, setIsRunning] = useState(false);
  useEffect(() => {
    executeScript();
  }, [node.id]);
  const executeScript = async () => {
    setIsRunning(true);
    setError(null);
    setLogs([]);
    setUpdatedVariables({});
    const script = node.data.script;
    if (!script) {
      setLogs((prev) => [...prev, "No script content defined."]);
      setExecuted(true);
      return;
    }
    try {
      const clonedVariables = JSON.parse(JSON.stringify(variables));
      const sandboxContext = { ...clonedVariables, input: clonedVariables, variables: clonedVariables };
      const result = await ExpressionEngine.execute(script, sandboxContext);
      if (result === void 0 || result === null) {
        setLogs((prev) => [...prev, "Script executed but returned no value."]);
        setExecuted(true);
        return;
      }
      if (typeof result !== "object" || Array.isArray(result)) {
        throw new Error("Script must return an object (e.g., return { key: value }).");
      }
      const newVars = { ...variables, ...result };
      setUpdatedVariables(newVars);
      setLogs((prev) => [...prev, `Script returned ${Object.keys(result).length} fields.`]);
      setExecuted(true);
    } catch (e) {
      const msg = e instanceof Error ? e.message : "Unknown error during script execution";
      setError(msg);
      setLogs((prev) => [...prev, `Error: ${msg}`]);
    } finally {
      setIsRunning(false);
    }
  };
  const getChangedVariables = () => {
    const changes2 = {};
    Object.keys(updatedVariables).forEach((key) => {
      if (JSON.stringify(updatedVariables[key]) !== JSON.stringify(variables[key])) {
        changes2[key] = updatedVariables[key];
      }
    });
    return changes2;
  };
  const changes = getChangedVariables();
  const hasChanges = Object.keys(changes).length > 0;
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-white dark:bg-slate-900", children: [
    /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-5", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider", children: [
          /* @__PURE__ */ jsx(Code, { size: 12 }),
          /* @__PURE__ */ jsx("span", { children: "Execution" })
        ] }),
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: executeScript,
            className: "text-[10px] flex items-center gap-1 text-teal-600 hover:text-teal-700 font-bold uppercase tracking-wider bg-teal-50 dark:bg-teal-900/20 px-2 py-1 rounded hover:bg-teal-100 transition-colors",
            children: [
              /* @__PURE__ */ jsx(Play, { size: 10, fill: "currentColor" }),
              " ",
              isRunning ? "Running..." : "Re-run"
            ]
          }
        )
      ] }),
      /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("pre", { className: "text-[10px] font-mono bg-slate-50 dark:bg-slate-950 p-3 rounded-lg border border-slate-200 dark:border-slate-800 text-slate-600 dark:text-slate-300 overflow-x-auto max-h-40 whitespace-pre-wrap break-all", children: node.data.script || "// No script defined" }) }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
        /* @__PURE__ */ jsx("h5", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider", children: "Result" }),
        error ? /* @__PURE__ */ jsxs("div", { className: "p-3 bg-red-50 dark:bg-red-900/20 border border-red-100 dark:border-red-900 rounded-lg text-xs text-red-600 flex items-start gap-2", children: [
          /* @__PURE__ */ jsx(TriangleAlert, { size: 14, className: "mt-0.5 shrink-0" }),
          error
        ] }) : /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-950 border border-slate-100 dark:border-slate-800 rounded-lg space-y-2", children: [
          logs.map((log, i) => /* @__PURE__ */ jsxs("div", { className: "text-xs text-slate-500 font-mono flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(CircleCheckBig, { size: 10, className: "text-emerald-500" }),
            " ",
            log
          ] }, i)),
          hasChanges && /* @__PURE__ */ jsxs("div", { className: "mt-3 pt-3 border-t border-slate-200 dark:border-slate-800", children: [
            /* @__PURE__ */ jsx("div", { className: "text-[10px] font-bold text-slate-400 mb-2", children: "OUTPUT VARIABLES" }),
            /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: Object.entries(changes).map(([key, val]) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 text-xs font-mono bg-white dark:bg-slate-900 p-1.5 rounded border border-slate-200 dark:border-slate-800", children: [
              /* @__PURE__ */ jsx("span", { className: "text-teal-600 font-bold", children: key }),
              /* @__PURE__ */ jsx("span", { className: "text-slate-500 dark:text-slate-400 break-all", children: JSON.stringify(val) })
            ] }, key)) })
          ] })
        ] })
      ] })
    ] }) }),
    /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex justify-end", children: /* @__PURE__ */ jsxs(
      "button",
      {
        onClick: () => onNext(updatedVariables),
        disabled: !!error || !executed || isRunning,
        className: "w-full px-5 py-2.5 rounded-lg bg-teal-600 hover:bg-teal-700 text-white font-bold flex items-center justify-center gap-2 shadow-sm transition-all hover:translate-y-px text-sm disabled:opacity-50 disabled:cursor-not-allowed",
        children: [
          "Next Step",
          /* @__PURE__ */ jsx(ArrowRight, { size: 16 })
        ]
      }
    ) })
  ] });
};
const resolveIcon = (iconName, fallback) => {
  if (!iconName) return fallback;
  const icons = AllIcons;
  return icons[iconName] || fallback;
};
const classifySimulationForm = (type, category) => {
  if (type === "UserTask" || type === "FormStartEvent") return "userTask";
  if (type === "ScriptTask") return "scriptTask";
  if (type === "MessageStartEvent" || type === "SignalStartEvent") return "serviceTask";
  if (category === "Tasks") return "serviceTask";
  if (category === "Gateways") return "gateway";
  return "generic";
};
const SimulationOverlay = ({
  simulationState,
  nodes,
  edges,
  onAction,
  suggestedPath
}) => {
  const { nodeTypes, componentRegistry } = useEditorConfig();
  const currentNode = nodes.find((n) => n.id === simulationState.currentNodeId);
  const config = currentNode ? nodeTypes[currentNode.type || ""] : null;
  const renderStartSelection = () => {
    const startNodes = nodes.filter((n) => {
      var _a;
      return (_a = n.type) == null ? void 0 : _a.endsWith("StartEvent");
    });
    return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full w-full bg-slate-50 dark:bg-slate-950", children: [
      /* @__PURE__ */ jsxs("div", { className: "p-6 bg-white dark:bg-slate-900 border-b border-slate-200 dark:border-slate-800", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
          /* @__PURE__ */ jsx("div", { className: "w-10 h-10 bg-teal-50 dark:bg-teal-900/20 text-teal-600 rounded-lg flex items-center justify-center border border-teal-100 dark:border-teal-900", children: /* @__PURE__ */ jsx(Play, { size: 20, fill: "currentColor" }) }),
          /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold text-slate-900 dark:text-white", children: "Start Simulation" })
        ] }),
        /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 leading-relaxed", children: "Select an entry point to begin simulating this workflow." })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-4 space-y-3", children: [
        startNodes.map((node) => /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: () => onAction("SELECT_START", { nodeId: node.id }),
            className: "w-full flex items-center gap-3 p-3 rounded-xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 hover:border-teal-500 hover:ring-1 hover:ring-teal-500/20 transition-all group text-left shadow-sm",
            children: [
              /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-lg bg-slate-50 dark:bg-slate-800 text-teal-600 flex items-center justify-center shrink-0 border border-slate-100 dark:border-slate-700", children: /* @__PURE__ */ jsx(Play, { size: 16, fill: "currentColor" }) }),
              /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
                /* @__PURE__ */ jsx("div", { className: "font-bold text-slate-800 dark:text-slate-200 text-sm truncate", children: node.data.label }),
                /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 font-mono truncate", children: node.type })
              ] }),
              /* @__PURE__ */ jsx(ChevronRight, { className: "text-slate-300 group-hover:text-teal-500", size: 16 })
            ]
          },
          node.id
        )),
        startNodes.length === 0 && /* @__PURE__ */ jsx("div", { className: "text-center py-8 text-slate-400 text-xs", children: "No start events found in this process." })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "p-4 border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 text-center", children: /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => onAction("STOP"),
          className: "text-xs font-medium text-red-500 hover:text-red-700 hover:underline",
          children: "Cancel & Exit"
        }
      ) })
    ] });
  };
  const renderActiveNodeContent = () => {
    if (!currentNode || !config) return null;
    const category = config.category;
    const type = currentNode.type;
    const formKind = classifySimulationForm(type, category);
    const isEnd = category === "End Events";
    const attachedBoundaries = nodes.filter(
      (n) => {
        var _a;
        return n.parentNode === currentNode.id && ((_a = n.type) == null ? void 0 : _a.endsWith("BoundaryEvent"));
      }
    );
    const IconComponent = resolveIcon(config.icon, Settings);
    const handleNext = (data) => {
      onAction("NEXT", data);
    };
    const handleTriggerBoundary = (boundary) => {
      onAction("NEXT", {
        triggerBoundaryId: boundary.id,
        boundaryLabel: boundary.data.label || boundary.type
      });
    };
    return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full bg-slate-50 dark:bg-slate-950", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 px-6 py-4 border-b border-slate-200 dark:border-slate-800 shrink-0 bg-white dark:bg-slate-900", children: [
        /* @__PURE__ */ jsx("div", { className: "w-10 h-10 rounded-lg flex items-center justify-center bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-700 shadow-sm", style: { color: config.color }, children: /* @__PURE__ */ jsx(IconComponent, { size: 20 }) }),
        /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
          /* @__PURE__ */ jsxs("div", { className: "text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-0.5 flex items-center gap-2", children: [
            "Step ",
            /* @__PURE__ */ jsx("span", { className: "bg-slate-100 dark:bg-slate-800 text-slate-500 px-1.5 py-0.5 rounded border border-slate-200 dark:border-slate-700 font-mono", children: currentNode.type })
          ] }),
          /* @__PURE__ */ jsx("h3", { className: "text-sm font-bold text-slate-900 dark:text-white truncate", title: currentNode.data.label, children: currentNode.data.label })
        ] }),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => onAction("BACK"),
            disabled: simulationState.history.length === 0,
            className: "p-2 rounded-lg text-slate-400 hover:bg-slate-100 hover:text-slate-600 disabled:opacity-30 disabled:cursor-not-allowed transition-colors",
            title: "Back one step",
            children: /* @__PURE__ */ jsx(SkipBack, { size: 16 })
          }
        )
      ] }),
      attachedBoundaries.length > 0 && /* @__PURE__ */ jsxs("div", { className: "px-6 py-3 bg-amber-50 dark:bg-amber-900/10 border-b border-amber-100 dark:border-amber-900/30", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[10px] font-bold text-amber-600 dark:text-amber-400 uppercase tracking-widest mb-2", children: [
          /* @__PURE__ */ jsx(ShieldAlert, { size: 12 }),
          " Interruption Triggers"
        ] }),
        /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-2", children: attachedBoundaries.map((boundary) => {
          const bConfig = nodeTypes[boundary.type || ""];
          const BIcon = resolveIcon(bConfig == null ? void 0 : bConfig.icon, Zap);
          return /* @__PURE__ */ jsxs(
            "button",
            {
              onClick: () => handleTriggerBoundary(boundary),
              className: "flex items-center gap-3 p-2 bg-white dark:bg-slate-900 border border-amber-200 dark:border-amber-800 rounded-lg hover:border-amber-500 hover:bg-amber-50 transition-all group text-left shadow-sm",
              children: [
                /* @__PURE__ */ jsx("div", { className: "p-1.5 bg-amber-50 dark:bg-amber-900/30 text-amber-600 rounded", style: { color: bConfig == null ? void 0 : bConfig.color }, children: /* @__PURE__ */ jsx(BIcon, { size: 14 }) }),
                /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
                  /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-slate-700 dark:text-slate-200 truncate", children: boundary.data.label || (bConfig == null ? void 0 : bConfig.label) }),
                  /* @__PURE__ */ jsx("div", { className: "text-[9px] text-amber-600 font-medium", children: "Trigger Boundary Event" })
                ] }),
                /* @__PURE__ */ jsx(ChevronRight, { className: "text-slate-300 group-hover:text-amber-500", size: 14 })
              ]
            },
            boundary.id
          );
        }) })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden relative", children: componentRegistry["SimulationForm:" + type] ? React.createElement(componentRegistry["SimulationForm:" + type], {
        node: currentNode,
        onNext: handleNext,
        variables: simulationState.variables
      }) : formKind === "userTask" ? /* @__PURE__ */ jsx(
        UserTaskSimulationForm,
        {
          node: currentNode,
          onNext: handleNext
        }
      ) : formKind === "scriptTask" ? /* @__PURE__ */ jsx(
        ScriptTaskSimulationForm,
        {
          node: currentNode,
          onNext: handleNext,
          variables: simulationState.variables
        }
      ) : formKind === "serviceTask" ? /* @__PURE__ */ jsx(
        ServiceTaskSimulationForm,
        {
          node: currentNode,
          onNext: handleNext,
          variables: simulationState.variables
        }
      ) : formKind === "gateway" ? /* @__PURE__ */ jsx(
        GatewaySimulationForm,
        {
          node: currentNode,
          edges,
          onNext: handleNext,
          suggestedPath: suggestedPath || null,
          visitedEdgeIds: simulationState.visitedEdgeIds,
          executionQueueCount: simulationState.executionQueue.length,
          executionQueue: simulationState.executionQueue,
          onProcessQueue: () => onAction("PROCESS_QUEUE")
        }
      ) : /* @__PURE__ */ jsx(
        GenericSimulationForm,
        {
          node: currentNode,
          onNext: handleNext,
          isEnd,
          onExit: () => onAction("STOP")
        }
      ) })
    ] });
  };
  return /* @__PURE__ */ jsx("div", { className: "h-full w-full text-slate-900 font-sans", children: simulationState.currentNodeId === null ? renderStartSelection() : renderActiveNodeContent() });
};
const miniMapNodeStrokeColor = (n) => {
  var _a;
  const status = (_a = n.data) == null ? void 0 : _a.status;
  if (status === "error") return CANVAS_STATUS_COLORS.error;
  if (status === "active") return CANVAS_STATUS_COLORS.active;
  if (status === "completed") return CANVAS_STATUS_COLORS.completed;
  return CANVAS_STATUS_COLORS.default;
};
const WorkflowSimulator = (props) => {
  const reactFlowWrapper = useRef(null);
  const { nodeTypes: configNodeTypes } = useEditorConfig();
  const { theme } = useTheme();
  const nodeTypes = useMemo(() => {
    const types = {};
    Object.keys(configNodeTypes).forEach((key) => {
      types[key] = CustomNode$1;
    });
    return types;
  }, [configNodeTypes]);
  const { query, setQuery, matches, activeIndex, nextMatch } = useSearch({
    nodes: props.nodes,
    onSelectNode: (id) => {
      const node = props.nodes.find((n) => n.id === id);
      if (node && props.onNodeClick) props.onNodeClick({}, node);
    }
  });
  return /* @__PURE__ */ jsxs("div", { className: `flex flex-col h-full w-full overflow-hidden bg-slate-50 dark:bg-slate-950 text-slate-900 dark:text-slate-100 font-sans ${theme}`, children: [
    /* @__PURE__ */ jsx(
      TopBar,
      {
        simulationState: props.simulationState,
        onToggleSimulation: props.onToggleSimulation,
        onReset: props.onResetSimulation,
        onExport: props.onSaveProject,
        onImport: props.onLoadProject,
        onSave: props.onSave,
        onSaveAndQuit: props.onSaveAndQuit,
        onBack: props.onBack,
        processes: props.processes,
        activeProcessId: props.activeProcessId,
        onSelectProcess: props.onSelectProcess,
        onCreateProcess: props.onCreateProcess,
        onDeleteProcess: props.onDeleteProcess,
        currentNodes: props.nodes,
        onAutoLayout: () => {
        }
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "flex flex-1 overflow-hidden relative", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col h-full relative min-w-0", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex-1 relative bg-slate-100 dark:bg-slate-950/50", ref: reactFlowWrapper, children: [
          /* @__PURE__ */ jsx(
            CanvasSearch,
            {
              query,
              onQueryChange: setQuery,
              matchCount: matches.length,
              activeIndex,
              onNext: nextMatch,
              onClear: () => setQuery("")
            }
          ),
          /* @__PURE__ */ jsxs(
            ReactFlow,
            {
              nodes: props.nodes,
              edges: props.edges,
              nodeTypes,
              fitView: true,
              style: { width: "100%", height: "100%" },
              proOptions: { hideAttribution: true },
              snapToGrid: true,
              snapGrid: [15, 15],
              nodesDraggable: false,
              nodesConnectable: false,
              elementsSelectable: false,
              panOnDrag: true,
              zoomOnScroll: true,
              preventScrolling: true,
              defaultEdgeOptions: {
                interactionWidth: 20,
                style: { strokeWidth: 2, stroke: CANVAS_STATUS_COLORS.default }
              },
              children: [
                /* @__PURE__ */ jsx(
                  MiniMap,
                  {
                    nodeStrokeColor: miniMapNodeStrokeColor,
                    zoomable: true,
                    pannable: true,
                    className: "!bg-white dark:!bg-slate-900 !border !border-slate-200 dark:!border-slate-800 !shadow-sm !rounded-xl"
                  }
                ),
                /* @__PURE__ */ jsx(
                  Background,
                  {
                    color: theme === "dark" ? CANVAS_BACKGROUND_COLORS.dark : CANVAS_BACKGROUND_COLORS.light,
                    gap: 20,
                    size: 1,
                    variant: BackgroundVariant.Dots
                  }
                )
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsx(BottomPanel, { simulationState: props.simulationState })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "w-[420px] bg-white border-l border-slate-200 dark:border-slate-800 dark:bg-slate-950 shadow-xl z-30 flex flex-col", children: /* @__PURE__ */ jsx(
        SimulationOverlay,
        {
          simulationState: props.simulationState,
          nodes: props.nodes,
          edges: props.edges,
          onAction: props.onSimulationAction,
          suggestedPath: props.suggestedPath
        }
      ) })
    ] })
  ] });
};
const ConditionsTab = ({ data, onChange, nodeType }) => {
  const [newPathName, setNewPathName] = useState("");
  const isExclusive = nodeType === "XorGateway";
  const isInclusive = nodeType === "InclusiveGateway";
  const isParallel = nodeType === "ParallelGateway";
  const isMerging = !!data.isMerging;
  const outputs = data.outputs || [];
  const conditions = data.conditions || [];
  useEffect(() => {
    if (isMerging) return;
    if (!data.outputs || data.outputs.length === 0) {
      onChange("outputs", ["default"]);
      onChange("conditions", [{
        path: 0,
        expression: ""
        // Empty expression = default/else path
      }]);
      if (!data.evaluationOrder) {
        if (isParallel || isInclusive) onChange("evaluationOrder", "parallel");
        else onChange("evaluationOrder", "sequential");
      }
    }
  }, [data.outputs, isParallel, isInclusive, onChange, data.evaluationOrder, isMerging]);
  const handleAddPath = () => {
    if (!newPathName.trim()) return;
    const newOutputs = [...outputs, newPathName.trim()];
    const newConditions = [...conditions, {
      path: newOutputs.length - 1,
      expression: "true",
      priority: newOutputs.length
      // Default priority
    }];
    onChange("outputs", newOutputs);
    onChange("conditions", newConditions);
    setNewPathName("");
  };
  const handleRemovePath = (index2) => {
    const newOutputs = outputs.filter((_, i) => i !== index2);
    const newConditions = conditions.filter((c) => c.path !== index2).map((c) => c.path > index2 ? { ...c, path: c.path - 1 } : c);
    onChange("outputs", newOutputs);
    onChange("conditions", newConditions);
  };
  const handleConditionChange = (pathIndex, field, value) => {
    const newConditions = [...conditions];
    const existingIdx = newConditions.findIndex((c) => c.path === pathIndex);
    if (existingIdx >= 0) {
      newConditions[existingIdx] = { ...newConditions[existingIdx], [field]: value };
    } else {
      newConditions.push({ path: pathIndex, expression: "", [field]: value });
    }
    newConditions.sort((a, b) => a.path - b.path);
    onChange("conditions", newConditions);
  };
  const handleRenamePath = (index2, newName) => {
    const newOutputs = [...outputs];
    newOutputs[index2] = newName;
    onChange("outputs", newOutputs);
  };
  if (isMerging) {
    return /* @__PURE__ */ jsxs("div", { className: "p-6 flex flex-col items-center justify-center h-full text-center space-y-4 animate-in fade-in duration-300", children: [
      /* @__PURE__ */ jsx("div", { className: "p-4 bg-slate-50 dark:bg-slate-900 rounded-full border-2 border-dashed border-slate-200 dark:border-slate-800", children: /* @__PURE__ */ jsx(Merge, { className: "text-slate-400", size: 32 }) }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("h3", { className: "text-sm font-bold text-slate-700 dark:text-slate-200", children: "Merge Configuration" }),
        /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 max-w-xs mx-auto mt-2 leading-relaxed", children: "This gateway acts as a join node, consolidating multiple incoming flows into a single sequence flow." }),
        /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-400 max-w-xs mx-auto mt-1 italic", children: "Path configuration is disabled for merging gateways." })
      ] })
    ] });
  }
  const getDescription = () => {
    if (isParallel) return "Define the output paths for parallel execution. All connected paths will be activated simultaneously.";
    if (isInclusive) return "Define paths and conditions. All matching paths will be activated.";
    return "Define output paths and the boolean conditions that trigger them. Only one path will be selected.";
  };
  const showConditions = !isParallel;
  const showEvaluationOrder = isExclusive;
  const isPriorityMode = data.evaluationOrder === "priority";
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-amber-50 dark:bg-amber-900/20 rounded-lg border border-amber-100 dark:border-amber-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(GitFork, { className: "text-amber-600 dark:text-amber-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-amber-800 dark:text-amber-300", children: isParallel ? "Parallel Split" : isInclusive ? "Inclusive Routing" : "Exclusive Routing" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-amber-700 dark:text-amber-400 leading-relaxed", children: getDescription() })
      ] })
    ] }),
    showEvaluationOrder && /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
      /* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Evaluation Order" }),
      /* @__PURE__ */ jsxs(
        "select",
        {
          value: data.evaluationOrder || "sequential",
          onChange: (e) => onChange("evaluationOrder", e.target.value),
          className: "w-full px-3 py-2 text-sm border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20",
          children: [
            /* @__PURE__ */ jsx("option", { value: "sequential", children: "Sequential (First Match)" }),
            /* @__PURE__ */ jsx("option", { value: "priority", children: "Priority Based" })
          ]
        }
      )
    ] }),
    !showEvaluationOrder && !isParallel && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900 rounded border border-slate-100 dark:border-slate-800 flex items-center gap-2 text-xs text-slate-500", children: [
      /* @__PURE__ */ jsx(ListOrdered, { size: 14 }),
      /* @__PURE__ */ jsxs("span", { children: [
        "Evaluation Order: ",
        /* @__PURE__ */ jsx("strong", { children: "All Matches (Parallel)" })
      ] })
    ] }),
    isParallel && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900 rounded border border-slate-100 dark:border-slate-800 flex items-center gap-2 text-xs text-slate-500", children: [
      /* @__PURE__ */ jsx(GitFork, { size: 14 }),
      /* @__PURE__ */ jsxs("span", { children: [
        "Execution: ",
        /* @__PURE__ */ jsx("strong", { children: "Simultaneous (All Paths)" })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
      /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: [
        "Paths ",
        showConditions && "& Conditions"
      ] }) }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
        outputs.map((pathName, index2) => {
          const condition2 = conditions.find((c) => c.path === index2);
          const isDefaultPath = !condition2 || !condition2.expression || condition2.expression.trim() === "";
          if (isDefaultPath) {
            return /* @__PURE__ */ jsxs("div", { className: "relative p-3 bg-amber-50/50 dark:bg-amber-900/10 rounded-xl border border-amber-200 dark:border-amber-800 shadow-sm group transition-all", children: [
              /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1 mr-4", children: [
                /* @__PURE__ */ jsx("span", { className: "flex items-center justify-center w-5 h-5 rounded-full bg-amber-100 dark:bg-amber-900/30 text-[10px] font-bold text-amber-600 border border-amber-200 dark:border-amber-700 shrink-0", children: index2 + 1 }),
                /* @__PURE__ */ jsx(
                  "input",
                  {
                    type: "text",
                    value: pathName,
                    onChange: (e) => handleRenamePath(index2, e.target.value),
                    className: "w-full text-sm font-bold text-amber-800 dark:text-amber-200 bg-transparent border-b border-transparent focus:border-amber-500 outline-none transition-colors",
                    placeholder: "Default Path Name"
                  }
                ),
                /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold px-2 py-0.5 rounded-full bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-300 border border-amber-200 dark:border-amber-700 whitespace-nowrap", children: "Default (Else)" })
              ] }) }),
              /* @__PURE__ */ jsx("div", { className: "absolute right-0 top-1/2 -translate-y-1/2 translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsx(ArrowRight, { className: "text-amber-500", size: 16 }) })
            ] }, index2);
          }
          return /* @__PURE__ */ jsxs("div", { className: "relative p-3 bg-white dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-800 shadow-sm group transition-all hover:border-teal-300 dark:hover:border-teal-700", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
              /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-1 mr-4", children: [
                /* @__PURE__ */ jsx("span", { className: "flex items-center justify-center w-5 h-5 rounded-full bg-slate-100 dark:bg-slate-800 text-[10px] font-bold text-slate-500 border border-slate-200 dark:border-slate-700 shrink-0", children: index2 + 1 }),
                /* @__PURE__ */ jsx(
                  "input",
                  {
                    type: "text",
                    value: pathName,
                    onChange: (e) => handleRenamePath(index2, e.target.value),
                    className: "w-full text-sm font-bold text-slate-800 dark:text-slate-100 bg-transparent border-b border-transparent focus:border-teal-500 outline-none transition-colors",
                    placeholder: "Path Name"
                  }
                )
              ] }),
              /* @__PURE__ */ jsx(
                "button",
                {
                  onClick: () => handleRemovePath(index2),
                  className: "text-slate-400 hover:text-red-500 opacity-0 group-hover:opacity-100 transition-all",
                  children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
                }
              )
            ] }),
            showConditions && /* @__PURE__ */ jsx("div", { className: "space-y-2 pl-7", children: /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
              /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
                PropertyField,
                {
                  config: {
                    name: `condition_${index2}`,
                    label: "Expression",
                    type: "expression",
                    placeholder: "e.g. variables.amount > 500 (Clear to make Default)"
                  },
                  value: condition2.expression,
                  onChange: (_, val) => handleConditionChange(index2, "expression", val)
                }
              ) }),
              isPriorityMode && /* @__PURE__ */ jsx("div", { className: "w-24", children: /* @__PURE__ */ jsx(
                PropertyField,
                {
                  config: {
                    name: `priority_${index2}`,
                    label: "Priority",
                    type: "number",
                    placeholder: "1"
                  },
                  value: condition2.priority,
                  onChange: (_, val) => handleConditionChange(index2, "priority", val)
                }
              ) })
            ] }) }),
            /* @__PURE__ */ jsx("div", { className: "absolute right-0 top-1/2 -translate-y-1/2 translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsx(ArrowRight, { className: "text-teal-500", size: 16 }) })
          ] }, index2);
        }),
        outputs.length === 0 && /* @__PURE__ */ jsxs("div", { className: "text-center py-6 border-2 border-dashed border-slate-200 dark:border-slate-800 rounded-xl", children: [
          /* @__PURE__ */ jsx(TriangleAlert, { className: "mx-auto text-slate-300 mb-2", size: 24 }),
          /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500", children: "No output paths defined." })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "flex gap-2 pt-2", children: [
        /* @__PURE__ */ jsx(
          "input",
          {
            type: "text",
            value: newPathName,
            onChange: (e) => setNewPathName(e.target.value),
            placeholder: "New Path Name (e.g. Approved)",
            className: "flex-1 px-3 py-2 text-sm border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20",
            onKeyDown: (e) => e.key === "Enter" && handleAddPath()
          }
        ),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: handleAddPath,
            disabled: !newPathName.trim(),
            className: "px-3 py-2 bg-teal-600 text-white rounded-lg hover:bg-teal-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",
            children: /* @__PURE__ */ jsx(Plus, { size: 16 })
          }
        )
      ] })
    ] }),
    showConditions && /* @__PURE__ */ jsxs("div", { className: "bg-slate-50 dark:bg-slate-900 p-3 rounded-lg text-[11px] text-slate-500 border border-slate-100 dark:border-slate-800", children: [
      /* @__PURE__ */ jsx("span", { className: "font-bold text-slate-700 dark:text-slate-300", children: "Tip:" }),
      " Use variables like ",
      /* @__PURE__ */ jsx("code", { children: "variables.total" }),
      " in your expressions. Any path with an ",
      /* @__PURE__ */ jsx("strong", { children: "empty" }),
      " expression is hidden from this list and becomes the ",
      /* @__PURE__ */ jsx("strong", { children: "Default (Else)" }),
      " route."
    ] })
  ] });
};
const EmailTemplateTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "fromEmail", label: "From", type: "email", placeholder: "sender@example.com", validation: { required: true, email: true } },
            value: data.fromEmail,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "fromName", label: "Sender Name", type: "text", placeholder: "System" },
            value: data.fromName,
            onChange
          }
        )
      ] }),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "to", label: "To", type: "text", placeholder: "recipient@example.com, ${user.email}", description: "Supports variables" },
          value: data.to,
          onChange
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "cc", label: "CC", type: "text", placeholder: "cc@example.com" },
            value: data.cc,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "bcc", label: "BCC", type: "text", placeholder: "bcc@example.com" },
            value: data.bcc,
            onChange
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsx("hr", { className: "border-slate-200 dark:border-slate-800" }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "subject", label: "Subject", type: "text", placeholder: "Subject line...", validation: { required: true } },
          value: data.subject,
          onChange
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
        /* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Content" }),
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
          /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 uppercase font-bold", children: "Format:" }),
          /* @__PURE__ */ jsx(
            "button",
            {
              className: `p-1 rounded ${data.isHtml ? "bg-teal-100 text-teal-600" : "text-slate-400 hover:text-slate-600"}`,
              onClick: () => onChange("isHtml", !data.isHtml),
              title: "Toggle HTML Mode",
              children: /* @__PURE__ */ jsx(Code, { size: 14 })
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsx(
        "textarea",
        {
          value: data.body || "",
          onChange: (e) => onChange("body", e.target.value),
          rows: 8,
          className: `w-full px-3 py-2 text-sm border rounded-lg focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 ${data.isHtml ? "font-mono bg-slate-50 border-slate-300" : "bg-white border-slate-300"}`,
          placeholder: data.isHtml ? "<html><body>...</body></html>" : "Email body content..."
        }
      )
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
      /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1", children: [
        /* @__PURE__ */ jsx(Paperclip, { size: 12 }),
        " Attachments"
      ] }),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "attachments",
            label: "",
            // Hidden label
            type: "array",
            itemType: "text",
            placeholder: "File URL or path"
          },
          value: data.attachments,
          onChange
        }
      )
    ] })
  ] });
};
const FormBuilderTab = ({ data, onChange }) => {
  const schema = data.formSchema || { fields: [] };
  const fields = schema.fields || [];
  const handleAddField = () => {
    const newField = {
      id: `field_${Date.now()}`,
      label: "New Field",
      key: `field_${fields.length + 1}`,
      type: "text",
      required: false
    };
    onChange("formSchema", { ...schema, fields: [...fields, newField] });
  };
  const handleRemoveField = (index2) => {
    const newFields = fields.filter((_, i) => i !== index2);
    onChange("formSchema", { ...schema, fields: newFields });
  };
  const handleFieldChange = (index2, key, value) => {
    const newFields = [...fields];
    newFields[index2] = { ...newFields[index2], [key]: value };
    onChange("formSchema", { ...schema, fields: newFields });
  };
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-teal-50 dark:bg-teal-900/20 rounded-lg border border-teal-100 dark:border-teal-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(FileText, { className: "text-teal-600 dark:text-teal-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-teal-800 dark:text-teal-300", children: "Form Configuration" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-teal-700 dark:text-teal-400 leading-relaxed", children: "Design the form interface for this task. These fields will be presented to the user during execution." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      fields.map((field, index2) => /* @__PURE__ */ jsxs("div", { className: "p-3 bg-white dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-800 shadow-sm space-y-3", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between pb-2 border-b border-slate-100 dark:border-slate-800", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(GripVertical, { size: 14, className: "text-slate-300 cursor-move" }),
            /* @__PURE__ */ jsxs("span", { className: "text-xs font-bold text-slate-700 dark:text-slate-300 uppercase tracking-wide", children: [
              "Field #",
              index2 + 1
            ] })
          ] }),
          /* @__PURE__ */ jsx(
            "button",
            {
              onClick: () => handleRemoveField(index2),
              className: "text-slate-400 hover:text-red-500 transition-colors",
              children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase mb-1", children: "Label" }),
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "text",
                value: field.label,
                onChange: (e) => handleFieldChange(index2, "label", e.target.value),
                className: "w-full px-2 py-1.5 text-xs border rounded-lg bg-white border-slate-300 dark:border-slate-700 focus:ring-1 focus:ring-teal-500 focus:border-teal-500 outline-none"
              }
            )
          ] }),
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase mb-1", children: "Variable Key" }),
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "text",
                value: field.key,
                onChange: (e) => handleFieldChange(index2, "key", e.target.value),
                className: "w-full px-2 py-1.5 text-xs border rounded-lg bg-white border-slate-300 dark:border-slate-700 focus:ring-1 focus:ring-teal-500 focus:border-teal-500 outline-none font-mono"
              }
            )
          ] })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
          /* @__PURE__ */ jsxs("div", { children: [
            /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase mb-1", children: "Type" }),
            /* @__PURE__ */ jsx(
              "input",
              {
                list: `type-options-${field.id}`,
                value: field.type,
                onChange: (e) => handleFieldChange(index2, "type", e.target.value),
                className: "w-full px-2 py-1.5 text-xs border rounded-lg bg-white border-slate-300 dark:border-slate-700 focus:ring-1 focus:ring-teal-500 focus:border-teal-500 outline-none"
              }
            ),
            /* @__PURE__ */ jsxs("datalist", { id: `type-options-${field.id}`, children: [
              /* @__PURE__ */ jsx("option", { value: "text", children: "Text Input" }),
              /* @__PURE__ */ jsx("option", { value: "textarea", children: "Text Area" }),
              /* @__PURE__ */ jsx("option", { value: "number", children: "Number" }),
              /* @__PURE__ */ jsx("option", { value: "boolean", children: "Checkbox" }),
              /* @__PURE__ */ jsx("option", { value: "date", children: "Date" }),
              /* @__PURE__ */ jsx("option", { value: "select", children: "Dropdown" }),
              /* @__PURE__ */ jsx("option", { value: "dialog", children: "Dialog" }),
              /* @__PURE__ */ jsx("option", { value: "email", children: "Email" }),
              /* @__PURE__ */ jsx("option", { value: "guid", children: "GUID" })
            ] })
          ] }),
          /* @__PURE__ */ jsx("div", { className: "flex items-center pt-5", children: /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer select-none", children: [
            /* @__PURE__ */ jsx(
              "input",
              {
                type: "checkbox",
                checked: field.required,
                onChange: (e) => handleFieldChange(index2, "required", e.target.checked),
                className: "rounded border-slate-300 text-teal-600 focus:ring-teal-500 w-3.5 h-3.5"
              }
            ),
            /* @__PURE__ */ jsx("span", { className: "text-xs text-slate-600 dark:text-slate-400 font-medium", children: "Required" })
          ] }) })
        ] }),
        field.type === "select" && /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase mb-1", children: "Options (comma separated)" }),
          /* @__PURE__ */ jsx(
            "input",
            {
              type: "text",
              value: field.options || "",
              onChange: (e) => handleFieldChange(index2, "options", e.target.value),
              placeholder: "Option 1, Option 2, Option 3",
              className: "w-full px-2 py-1.5 text-xs border rounded-lg bg-white border-slate-300 dark:border-slate-700 focus:ring-1 focus:ring-teal-500 focus:border-teal-500 outline-none"
            }
          )
        ] })
      ] }, field.id)),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: handleAddField,
          className: "w-full py-2 border-2 border-dashed border-slate-300 dark:border-slate-700 rounded-xl text-slate-500 hover:text-teal-600 hover:border-teal-400 hover:bg-teal-50 dark:hover:bg-slate-900 transition-all flex items-center justify-center gap-2 text-xs font-bold",
          children: [
            /* @__PURE__ */ jsx(Plus, { size: 14 }),
            " Add Form Field"
          ]
        }
      )
    ] })
  ] });
};
const isVariableValue = (value) => /^\{\{.*\}\}$/.test(value.trim());
const buildCustomItem = (raw) => {
  const value = raw.trim();
  if (isVariableValue(value)) {
    return { id: value, name: value, subtitle: "Variable", avatar: "Fx" };
  }
  return { id: value, name: value, subtitle: "Manual ID", avatar: value.substring(0, 2).toUpperCase() };
};
const DROPDOWN_MAX_HEIGHT = 260;
const AsyncSelect = ({
  label,
  placeholder = "Select...",
  value,
  onChange,
  fetchOptions,
  fetchItem,
  disabled,
  allowCustomValue
}) => {
  const [isOpen, setIsOpen] = useState(false);
  const [query, setQuery] = useState("");
  const [items, setItems] = useState([]);
  const [loading, setLoading] = useState(false);
  const [page, setPage] = useState(1);
  const [hasMore, setHasMore] = useState(false);
  const [selectedItem, setSelectedItem] = useState(void 0);
  const [error, setError] = useState(null);
  const [highlight, setHighlight] = useState(-1);
  const [coords, setCoords] = useState(null);
  const triggerRef = useRef(null);
  const dropdownRef = useRef(null);
  const listRef = useRef(null);
  const optionRefs = useRef([]);
  useEffect(() => {
    if (value && !selectedItem && fetchItem) {
      setLoading(true);
      setError(null);
      fetchItem(value).then((item) => {
        if (item) setSelectedItem(item);
      }).catch((err) => {
        console.error("AsyncSelect: failed to resolve initial value", err);
        setError("Failed to load selected item");
      }).finally(() => setLoading(false));
    }
  }, [value, fetchItem]);
  const loadData = useCallback(async (pageNum, searchQuery) => {
    setLoading(true);
    setError(null);
    try {
      const res = await fetchOptions({
        query: searchQuery,
        page: pageNum,
        pageSize: 10,
        sortBy: "name",
        sortDir: "asc"
      });
      if (pageNum === 1) {
        setItems(res.items);
      } else {
        setItems((prev) => [...prev, ...res.items]);
      }
      setHasMore(res.hasMore);
      setPage(pageNum);
    } catch (err) {
      console.error("AsyncSelect load failed", err);
      setError("Failed to load results");
      if (pageNum === 1) {
        setItems([]);
        setHasMore(false);
      }
    } finally {
      setLoading(false);
    }
  }, [fetchOptions]);
  useEffect(() => {
    if (isOpen) {
      loadData(1, query);
    }
  }, [isOpen]);
  useEffect(() => {
    if (!isOpen) return;
    const timer = setTimeout(() => {
      loadData(1, query);
    }, 300);
    return () => clearTimeout(timer);
  }, [query]);
  const computeCoords = useCallback(() => {
    const el = triggerRef.current;
    if (!el) return;
    const rect = el.getBoundingClientRect();
    const spaceBelow = window.innerHeight - rect.bottom;
    const spaceAbove = rect.top;
    const openUp = spaceBelow < DROPDOWN_MAX_HEIGHT && spaceAbove > spaceBelow;
    const avail = (openUp ? spaceAbove : spaceBelow) - 70;
    setCoords({
      top: openUp ? rect.top : rect.bottom,
      left: rect.left,
      width: rect.width,
      openUp,
      listMaxHeight: Math.max(120, Math.min(240, avail))
    });
  }, []);
  useLayoutEffect(() => {
    if (isOpen) computeCoords();
  }, [isOpen, computeCoords]);
  useEffect(() => {
    if (!isOpen) return;
    const handler = () => computeCoords();
    window.addEventListener("scroll", handler, true);
    window.addEventListener("resize", handler);
    return () => {
      window.removeEventListener("scroll", handler, true);
      window.removeEventListener("resize", handler);
    };
  }, [isOpen, computeCoords]);
  const handleSelect = (item) => {
    setSelectedItem(item);
    onChange(item.id, item);
    setIsOpen(false);
    setQuery("");
  };
  const trimmedQuery = query.trim();
  const showCustomOption = !!allowCustomValue && trimmedQuery.length > 0 && !loading && !items.some((i) => i.id === trimmedQuery);
  const handleCustomCommit = () => {
    if (!trimmedQuery) return;
    handleSelect(buildCustomItem(trimmedQuery));
  };
  const optionCount = items.length + (showCustomOption ? 1 : 0);
  useEffect(() => {
    setHighlight(optionCount > 0 ? 0 : -1);
  }, [items, showCustomOption, optionCount]);
  useEffect(() => {
    var _a;
    if (highlight < 0) return;
    (_a = optionRefs.current[highlight]) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
  }, [highlight]);
  const commitHighlight = () => {
    if (highlight < 0) return;
    if (highlight < items.length) {
      handleSelect(items[highlight]);
    } else if (showCustomOption) {
      handleCustomCommit();
    }
  };
  const handleKeyDown = (e) => {
    if (e.key === "ArrowDown") {
      e.preventDefault();
      setHighlight((h) => optionCount === 0 ? -1 : (h + 1) % optionCount);
    } else if (e.key === "ArrowUp") {
      e.preventDefault();
      setHighlight((h) => optionCount === 0 ? -1 : (h - 1 + optionCount) % optionCount);
    } else if (e.key === "Enter") {
      e.preventDefault();
      commitHighlight();
    } else if (e.key === "Escape") {
      e.preventDefault();
      setIsOpen(false);
    }
  };
  const handleClear = (e) => {
    e.stopPropagation();
    setSelectedItem(void 0);
    onChange(void 0, void 0);
  };
  useEffect(() => {
    const handleClick = (e) => {
      var _a, _b;
      const t = e.target;
      if ((_a = triggerRef.current) == null ? void 0 : _a.contains(t)) return;
      if ((_b = dropdownRef.current) == null ? void 0 : _b.contains(t)) return;
      setIsOpen(false);
    };
    document.addEventListener("mousedown", handleClick);
    return () => document.removeEventListener("mousedown", handleClick);
  }, []);
  const handleScroll = (e) => {
    const { scrollTop, scrollHeight, clientHeight } = e.currentTarget;
    if (scrollHeight - scrollTop <= clientHeight + 50 && hasMore && !loading) {
      loadData(page + 1, query);
    }
  };
  const renderDropdown = () => {
    if (!isOpen || !coords) return null;
    return createPortal(
      /* @__PURE__ */ jsxs(
        "div",
        {
          ref: dropdownRef,
          style: {
            position: "fixed",
            left: coords.left,
            width: coords.width,
            ...coords.openUp ? { bottom: window.innerHeight - coords.top + 4 } : { top: coords.top + 4 }
          },
          className: "bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-700 rounded-lg shadow-xl z-[1000] overflow-hidden animate-in fade-in zoom-in-95 duration-100",
          children: [
            /* @__PURE__ */ jsx("div", { className: "p-2 border-b border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
              /* @__PURE__ */ jsx(Search, { size: 14, className: "absolute left-2.5 top-2.5 text-slate-400" }),
              /* @__PURE__ */ jsx(
                "input",
                {
                  autoFocus: true,
                  type: "text",
                  value: query,
                  onChange: (e) => setQuery(e.target.value),
                  onKeyDown: handleKeyDown,
                  placeholder: allowCustomValue ? "Search or type ID / {{variable}}..." : "Search...",
                  className: "w-full pl-8 pr-3 py-1.5 text-xs bg-slate-50 dark:bg-slate-800 border border-transparent focus:bg-white focus:border-teal-500 rounded-md outline-none transition-all"
                }
              )
            ] }) }),
            /* @__PURE__ */ jsxs(
              "div",
              {
                ref: listRef,
                style: { maxHeight: coords.listMaxHeight },
                className: "overflow-y-auto p-1",
                onScroll: handleScroll,
                children: [
                  error && !loading && /* @__PURE__ */ jsxs("div", { className: "p-3 flex items-center gap-2 text-xs text-red-600 dark:text-red-400", children: [
                    /* @__PURE__ */ jsx(CircleAlert, { size: 14 }),
                    " ",
                    error
                  ] }),
                  !error && items.length === 0 && !loading && !showCustomOption && /* @__PURE__ */ jsx("div", { className: "p-4 text-center text-xs text-slate-400", children: "No results found." }),
                  items.map((item, idx) => /* @__PURE__ */ jsxs(
                    "div",
                    {
                      ref: (el) => {
                        optionRefs.current[idx] = el;
                      },
                      onClick: () => handleSelect(item),
                      onMouseEnter: () => setHighlight(idx),
                      className: `
                            flex items-center gap-3 p-2 rounded-md cursor-pointer group
                            ${highlight === idx ? "bg-slate-100 dark:bg-slate-800" : ""}
                            ${item.id === value ? "bg-teal-50 dark:bg-teal-900/20" : ""}
                        `,
                      children: [
                        /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-full bg-slate-200 dark:bg-slate-700 flex items-center justify-center text-xs font-bold text-slate-600 dark:text-slate-300 shrink-0", children: item.avatar || item.name.substring(0, 2).toUpperCase() }),
                        /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
                          /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-slate-700 dark:text-slate-200 truncate", children: item.name }),
                          item.subtitle && /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 truncate", children: item.subtitle })
                        ] }),
                        item.id === value && /* @__PURE__ */ jsx(Check, { size: 14, className: "text-teal-600" })
                      ]
                    },
                    item.id
                  )),
                  showCustomOption && /* @__PURE__ */ jsxs(
                    "div",
                    {
                      ref: (el) => {
                        optionRefs.current[items.length] = el;
                      },
                      onClick: handleCustomCommit,
                      onMouseEnter: () => setHighlight(items.length),
                      className: `
                            flex items-center gap-3 p-2 rounded-md cursor-pointer group border-t border-slate-100 dark:border-slate-800
                            ${highlight === items.length ? "bg-teal-50 dark:bg-teal-900/20" : ""}
                        `,
                      children: [
                        /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-full bg-teal-100 dark:bg-teal-900/40 flex items-center justify-center text-teal-600 dark:text-teal-300 shrink-0", children: isVariableValue(trimmedQuery) ? /* @__PURE__ */ jsx(Braces, { size: 14 }) : /* @__PURE__ */ jsx(Plus, { size: 14 }) }),
                        /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
                          /* @__PURE__ */ jsxs("div", { className: "text-xs font-bold text-slate-700 dark:text-slate-200 truncate", children: [
                            'Use "',
                            trimmedQuery,
                            '"'
                          ] }),
                          /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 truncate", children: isVariableValue(trimmedQuery) ? "Insert as variable" : "Use as manual ID" })
                        ] })
                      ]
                    }
                  ),
                  loading && /* @__PURE__ */ jsx("div", { className: "flex justify-center p-2", children: /* @__PURE__ */ jsx(LoaderCircle, { size: 16, className: "animate-spin text-teal-500" }) })
                ]
              }
            )
          ]
        }
      ),
      document.body
    );
  };
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
    label && /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase mb-1", children: label }),
    /* @__PURE__ */ jsxs(
      "div",
      {
        ref: triggerRef,
        className: `
            w-full flex items-center justify-between px-3 py-2 text-sm border rounded-lg bg-white dark:bg-slate-900 cursor-pointer transition-all
            ${isOpen ? "border-teal-500 ring-1 ring-teal-500/20" : "border-slate-300 dark:border-slate-700 hover:border-slate-400"}
            ${disabled ? "opacity-50 cursor-not-allowed bg-slate-100" : ""}
        `,
        onClick: () => !disabled && setIsOpen((o) => !o),
        children: [
          /* @__PURE__ */ jsx("span", { className: `truncate ${!selectedItem && !value ? "text-slate-400" : "text-slate-800 dark:text-slate-200"}`, children: selectedItem ? selectedItem.name : value || placeholder }),
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
            (selectedItem || value) && !disabled && /* @__PURE__ */ jsx("div", { onClick: handleClear, className: "p-1 hover:bg-slate-100 rounded-full text-slate-400 hover:text-red-500", children: /* @__PURE__ */ jsx(X, { size: 14 }) }),
            /* @__PURE__ */ jsx(ChevronDown, { size: 14, className: `text-slate-400 transition-transform ${isOpen ? "rotate-180" : ""}` })
          ] })
        ]
      }
    ),
    renderDropdown()
  ] });
};
const getTypeIconComponent = (type, mode) => {
  if (type === "person") return UserCheck;
  if (type === "role") return Briefcase;
  if (type === "group") {
    if (mode === "up" || mode === "down") return ArrowRight;
    return Users;
  }
  if (type === "leader") {
    if (mode === "recursive") return Network;
    return ArrowRight;
  }
  if (type === "schedulegroup") return DoorOpen;
  return Users;
};
const AssignmentsTab = ({ data, onChange }) => {
  const assignments = data.assignments || [];
  const { services } = useEditorConfig();
  const [isAdding, setIsAdding] = useState(false);
  const [isManualEntry, setIsManualEntry] = useState(false);
  const [manualValue, setManualValue] = useState("");
  const [editingIndex, setEditingIndex] = useState(null);
  const [editValue, setEditValue] = useState("");
  const [selectedType, setSelectedType] = useState(null);
  const [config, setConfig] = useState({
    type: "person",
    blacklist: false
  });
  const parseAssignment = (str) => {
    const isBlacklist = str.startsWith("!");
    const cleanStr = isBlacklist ? str.substring(1) : str;
    if (cleanStr === "schedulegroup") return { type: "schedulegroup", blacklist: isBlacklist, label: "Schedule Groups" };
    if (cleanStr.startsWith("groupsUpwards:")) {
      return { type: "group", mode: "up", param: cleanStr.split(":")[1], blacklist: isBlacklist };
    }
    if (cleanStr.startsWith("groupsDownwards:")) {
      return { type: "group", mode: "down", param: cleanStr.split(":")[1], blacklist: isBlacklist };
    }
    if (cleanStr.startsWith("leaders:")) {
      return { type: "leader", mode: "recursive", param: cleanStr.split(":")[1], blacklist: isBlacklist };
    }
    if (cleanStr.startsWith("leader:")) {
      return { type: "leader", mode: "direct", param: cleanStr.split(":")[1], blacklist: isBlacklist };
    }
    const typeMatch = cleanStr.match(/^([a-z]+):/);
    if (!typeMatch) return { type: "unknown", label: str, blacklist: isBlacklist };
    const type = typeMatch[1];
    const rest = cleanStr.substring(type.length + 1);
    const [param, arg] = rest.split("@");
    return {
      type,
      param,
      arg,
      blacklist: isBlacklist,
      mode: "exact",
      original: str
    };
  };
  const formatAssignment = (cfg) => {
    const prefix = cfg.blacklist ? "!" : "";
    switch (cfg.type) {
      case "schedulegroup":
        return `${prefix}schedulegroup`;
      case "group":
        if (cfg.mode === "up") return `${prefix}groupsUpwards:${cfg.param}`;
        if (cfg.mode === "down") return `${prefix}groupsDownwards:${cfg.param}`;
        if (cfg.arg) return `${prefix}group:${cfg.param}@${cfg.arg}`;
        return `${prefix}group:${cfg.param}`;
      case "leader":
        if (cfg.mode === "recursive") return `${prefix}leaders:${cfg.param}`;
        return `${prefix}leader:${cfg.param}`;
      case "person":
        return `${prefix}person:${cfg.param}`;
      case "role":
        return `${prefix}role:${cfg.param}`;
      default:
        return "";
    }
  };
  const handleTypeSelect = (type) => {
    setSelectedType(type);
    setConfig({
      type,
      blacklist: false,
      mode: type === "group" ? "exact" : type === "leader" ? "direct" : void 0
    });
  };
  const handleAdd = () => {
    if (config.type !== "schedulegroup" && !config.param) return;
    const newStr = formatAssignment(config);
    const newAssignments = [...assignments, newStr];
    onChange("assignments", newAssignments);
    setIsAdding(false);
    setSelectedType(null);
    setConfig({ type: "person", blacklist: false });
  };
  const handleManualAdd = () => {
    const trimmed = manualValue.trim();
    if (!trimmed) return;
    const validPattern = /^!?(person|role|group|leader|leaders|groupsUpwards|groupsDownwards|schedulegroup)(:.+)?$/;
    if (!validPattern.test(trimmed)) return;
    const newAssignments = [...assignments, trimmed];
    onChange("assignments", newAssignments);
    setManualValue("");
  };
  const handleRemove = (index2) => {
    const newAssignments = assignments.filter((_, i) => i !== index2);
    onChange("assignments", newAssignments);
  };
  const handleStartEdit = (index2) => {
    const parsed = parseAssignment(assignments[index2]);
    setEditingIndex(index2);
    setEditValue(parsed.param ?? "");
  };
  const handleCancelEdit = () => {
    setEditingIndex(null);
    setEditValue("");
  };
  const handleSaveEdit = () => {
    if (editingIndex === null) return;
    const trimmed = editValue.trim();
    if (!trimmed) return;
    const parsed = parseAssignment(assignments[editingIndex]);
    const cfg = {
      type: parsed.type,
      blacklist: !!parsed.blacklist,
      param: trimmed,
      arg: parsed.arg,
      mode: parsed.mode
    };
    const newStr = formatAssignment(cfg);
    if (!newStr) return;
    const newAssignments = assignments.map((s, i) => i === editingIndex ? newStr : s);
    onChange("assignments", newAssignments);
    handleCancelEdit();
  };
  const getTypeIcon = (type, mode) => {
    if (type === "person") return /* @__PURE__ */ jsx(UserCheck, { size: 16 });
    if (type === "role") return /* @__PURE__ */ jsx(Briefcase, { size: 16 });
    if (type === "group") {
      if (mode === "up") return /* @__PURE__ */ jsx(ArrowRight, { size: 16, className: "-rotate-90" });
      if (mode === "down") return /* @__PURE__ */ jsx(ArrowRight, { size: 16, className: "rotate-90" });
      return /* @__PURE__ */ jsx(Users, { size: 16 });
    }
    if (type === "leader") {
      if (mode === "recursive") return /* @__PURE__ */ jsx(Network, { size: 16 });
      return /* @__PURE__ */ jsx(ArrowRight, { size: 16, className: "-rotate-45" });
    }
    if (type === "schedulegroup") return /* @__PURE__ */ jsx(DoorOpen, { size: 16 });
    return /* @__PURE__ */ jsx(Users, { size: 16 });
  };
  const getTypeLabel = (type, mode) => {
    if (type === "person") return "Person";
    if (type === "role") return "Role";
    if (type === "group") {
      if (mode === "up") return "Hierarchy Up";
      if (mode === "down") return "Hierarchy Down";
      return "Group";
    }
    if (type === "leader") {
      if (mode === "recursive") return "Leaders (Recursive)";
      return "Direct Leader";
    }
    if (type === "schedulegroup") return "Schedule Groups";
    return type;
  };
  const renderTiles = () => /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-3", children: [
    { id: "person", label: "Person", icon: UserCheck, desc: "Specific user" },
    { id: "role", label: "Role", icon: Briefcase, desc: "Users with role" },
    { id: "group", label: "Group", icon: Users, desc: "Department/Team" },
    { id: "leader", label: "Leader", icon: Network, desc: "Managerial line" },
    { id: "schedulegroup", label: "Schedule", icon: DoorOpen, desc: "Time-based group" }
  ].map((tile) => /* @__PURE__ */ jsxs(
    "button",
    {
      onClick: () => handleTypeSelect(tile.id),
      className: "flex flex-col items-start p-4 rounded-xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-950 hover:border-teal-500 hover:ring-1 hover:ring-teal-500/20 transition-all group text-left",
      children: [
        /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-lg bg-slate-50 dark:bg-slate-800 text-slate-500 group-hover:text-teal-600 group-hover:bg-teal-50 dark:group-hover:bg-teal-900/30 flex items-center justify-center mb-3 transition-colors", children: /* @__PURE__ */ jsx(tile.icon, { size: 18 }) }),
        /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-slate-700 dark:text-slate-200 group-hover:text-slate-900 dark:group-hover:text-white transition-colors", children: tile.label }),
        /* @__PURE__ */ jsx("span", { className: "text-[10px] text-slate-400 font-medium mt-0.5", children: tile.desc })
      ]
    },
    tile.id
  )) });
  const renderPersonForm = () => /* @__PURE__ */ jsx(
    AsyncSelect,
    {
      label: "Select Person",
      allowCustomValue: true,
      fetchOptions: (params) => services.directory.getPersons(params),
      fetchItem: (id) => services.directory.getItemById("person", id),
      value: config.param,
      onChange: (id, item) => setConfig({ ...config, param: id, paramName: item == null ? void 0 : item.name })
    }
  );
  const renderRoleForm = () => /* @__PURE__ */ jsx(
    AsyncSelect,
    {
      label: "Select Role",
      fetchOptions: (params) => services.directory.getRoles(params),
      fetchItem: (id) => services.directory.getItemById("role", id),
      value: config.param,
      onChange: (id, item) => setConfig({ ...config, param: id, paramName: item == null ? void 0 : item.name })
    }
  );
  const renderGroupForm = () => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
    /* @__PURE__ */ jsx(
      AsyncSelect,
      {
        label: "Select Group",
        allowCustomValue: true,
        fetchOptions: (params) => services.directory.getGroups(params),
        fetchItem: (id) => services.directory.getItemById("group", id),
        value: config.param,
        onChange: (id, item) => setConfig({ ...config, param: id, paramName: item == null ? void 0 : item.name })
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
      /* @__PURE__ */ jsx("label", { className: "block text-[10px] font-bold text-slate-500 uppercase", children: "Direction & Scope" }),
      /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: ["exact", "up", "down"].map((m) => /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => setConfig({ ...config, mode: m }),
          className: `flex-1 py-2 px-2 text-xs font-medium rounded-lg border transition-all text-center ${config.mode === m ? "bg-teal-600 border-teal-600 text-white shadow-sm" : "border-slate-200 bg-white hover:border-slate-300 text-slate-600"}`,
          children: m === "exact" ? "This Group" : m === "up" ? "Upwards" : "Downwards"
        },
        m
      )) })
    ] }),
    config.mode === "exact" && /* @__PURE__ */ jsx(
      AsyncSelect,
      {
        label: "Filter by Role (Optional)",
        placeholder: "Any Role",
        fetchOptions: (params) => services.directory.getRoles(params),
        fetchItem: (id) => services.directory.getItemById("role", id),
        value: config.arg,
        onChange: (id, item) => setConfig({ ...config, arg: id, argName: item == null ? void 0 : item.name })
      }
    )
  ] });
  const renderLeaderForm = () => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
    /* @__PURE__ */ jsx(
      AsyncSelect,
      {
        label: "Leader of Person",
        allowCustomValue: true,
        fetchOptions: (params) => services.directory.getPersons(params),
        fetchItem: (id) => services.directory.getItemById("person", id),
        value: config.param,
        onChange: (id, item) => setConfig({ ...config, param: id, paramName: item == null ? void 0 : item.name })
      }
    ),
    /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-3 p-3 border border-slate-200 dark:border-slate-800 rounded-lg cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-900 transition-colors", children: [
      /* @__PURE__ */ jsx(
        "input",
        {
          type: "checkbox",
          checked: config.mode === "recursive",
          onChange: (e) => setConfig({ ...config, mode: e.target.checked ? "recursive" : "direct" }),
          className: "rounded border-slate-300 text-teal-600 focus:ring-teal-500 w-4 h-4"
        }
      ),
      /* @__PURE__ */ jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300 font-medium", children: "Recursive (All managers upwards)" })
    ] })
  ] });
  const renderTypeSpecificForm = () => {
    switch (config.type) {
      case "person":
        return renderPersonForm();
      case "role":
        return renderRoleForm();
      case "group":
        return renderGroupForm();
      case "leader":
        return renderLeaderForm();
      default:
        return null;
    }
  };
  const renderForm = () => {
    const TypeIcon = getTypeIconComponent(config.type, config.mode);
    return /* @__PURE__ */ jsxs("div", { className: "space-y-5 animate-in slide-in-from-right-2 duration-200", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pb-3 border-b border-slate-100 dark:border-slate-800", children: [
        /* @__PURE__ */ jsx("div", { className: "p-1.5 bg-slate-100 dark:bg-slate-800 rounded-md", children: /* @__PURE__ */ jsx(TypeIcon, { size: 14, className: "text-slate-600 dark:text-slate-400" }) }),
        /* @__PURE__ */ jsx("h4", { className: "text-sm font-bold text-slate-800 dark:text-slate-200", children: "Configure Assignment" })
      ] }),
      renderTypeSpecificForm(),
      /* @__PURE__ */ jsx("div", { className: "pt-2", children: /* @__PURE__ */ jsxs("label", { className: `flex items-start gap-3 p-3 border rounded-lg cursor-pointer transition-colors ${config.blacklist ? "bg-red-50 border-red-200 dark:bg-red-900/10 dark:border-red-900" : "bg-slate-50 border-slate-200 dark:bg-slate-900 dark:border-slate-800"}`, children: [
        /* @__PURE__ */ jsx("div", { className: `mt-0.5 w-4 h-4 rounded border flex items-center justify-center transition-colors shrink-0 ${config.blacklist ? "bg-red-500 border-red-500" : "bg-white border-slate-300"}`, children: config.blacklist && /* @__PURE__ */ jsx(Check, { size: 10, className: "text-white" }) }),
        /* @__PURE__ */ jsx(
          "input",
          {
            type: "checkbox",
            checked: config.blacklist,
            onChange: (e) => setConfig({ ...config, blacklist: e.target.checked }),
            className: "hidden"
          }
        ),
        /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
          /* @__PURE__ */ jsx("span", { className: `block text-sm font-bold ${config.blacklist ? "text-red-700 dark:text-red-400" : "text-slate-700 dark:text-slate-300"}`, children: "Blacklist Assignment" }),
          /* @__PURE__ */ jsx("span", { className: `block text-[10px] mt-0.5 ${config.blacklist ? "text-red-600/70" : "text-slate-500"}`, children: "Exclude users matching this rule" })
        ] })
      ] }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex gap-2 pt-2", children: [
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: () => {
              setIsAdding(false);
              setSelectedType(null);
            },
            className: "flex-1 py-2.5 text-slate-500 hover:text-slate-700 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-lg text-xs font-bold transition-colors",
            children: "Cancel"
          }
        ),
        /* @__PURE__ */ jsx(
          "button",
          {
            onClick: handleAdd,
            disabled: config.type !== "schedulegroup" && !config.param,
            className: "flex-[2] py-2.5 bg-slate-900 dark:bg-teal-600 hover:bg-black dark:hover:bg-teal-700 text-white rounded-lg text-xs font-bold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",
            children: "Add Rule"
          }
        )
      ] })
    ] });
  };
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-4 bg-slate-50 dark:bg-slate-900/50 rounded-lg border border-slate-100 dark:border-slate-800 flex gap-3", children: [
      /* @__PURE__ */ jsx(Users, { className: "text-slate-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-slate-700 dark:text-slate-300", children: "Assignment Rules" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-500 leading-relaxed", children: "Define who can claim or be assigned to this task. Rules are evaluated sequentially." })
      ] })
    ] }),
    !isAdding && /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
      assignments.length === 0 && /* @__PURE__ */ jsxs("div", { className: "text-center py-10 border border-dashed border-slate-200 dark:border-slate-800 rounded-xl bg-slate-50/50 dark:bg-slate-900/50", children: [
        /* @__PURE__ */ jsx("div", { className: "w-10 h-10 bg-white dark:bg-slate-800 border border-slate-100 dark:border-slate-700 rounded-lg flex items-center justify-center mx-auto mb-3 text-slate-300", children: /* @__PURE__ */ jsx(UserPlus, { size: 18 }) }),
        /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 font-medium", children: "No active assignments" })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "space-y-1", children: assignments.map((str, idx) => {
        const parsed = parseAssignment(str);
        const isEditing = editingIndex === idx;
        const canEdit = parsed.type !== "schedulegroup" && parsed.type !== "unknown" && parsed.param !== void 0;
        return /* @__PURE__ */ jsxs("div", { className: "group flex items-center gap-3 p-3 bg-white dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-lg shadow-sm hover:border-slate-300 transition-colors", children: [
          /* @__PURE__ */ jsx("div", { className: `w-8 h-8 rounded-lg flex items-center justify-center shrink-0 ${parsed.blacklist ? "bg-red-50 text-red-500" : "bg-slate-50 text-slate-500"}`, children: parsed.blacklist ? /* @__PURE__ */ jsx(ShieldAlert, { size: 14 }) : getTypeIcon(parsed.type, parsed.mode) }),
          /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
            /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx("span", { className: `text-xs font-bold ${parsed.blacklist ? "text-red-700" : "text-slate-700 dark:text-slate-200"}`, children: getTypeLabel(parsed.type, parsed.mode) }) }),
            isEditing ? /* @__PURE__ */ jsx(
              "input",
              {
                autoFocus: true,
                type: "text",
                value: editValue,
                onChange: (e) => setEditValue(e.target.value),
                onKeyDown: (e) => {
                  if (e.key === "Enter") handleSaveEdit();
                  if (e.key === "Escape") handleCancelEdit();
                },
                placeholder: "ID or {{variable}}",
                className: "mt-0.5 w-full px-2 py-1 text-[11px] font-mono border rounded-md border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-800 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20"
              }
            ) : /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-slate-500 font-mono truncate flex items-center gap-1", children: [
              parsed.param,
              parsed.arg && /* @__PURE__ */ jsxs("span", { className: "text-teal-600", children: [
                "@",
                parsed.arg
              ] })
            ] })
          ] }),
          isEditing ? /* @__PURE__ */ jsxs(Fragment, { children: [
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: handleSaveEdit,
                disabled: !editValue.trim(),
                className: "w-8 h-8 flex items-center justify-center rounded-lg text-slate-300 hover:text-teal-600 hover:bg-teal-50 dark:hover:bg-teal-900/20 transition-all disabled:opacity-40 disabled:cursor-not-allowed",
                children: /* @__PURE__ */ jsx(Check, { size: 14 })
              }
            ),
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: handleCancelEdit,
                className: "w-8 h-8 flex items-center justify-center rounded-lg text-slate-300 hover:text-slate-600 hover:bg-slate-100 dark:hover:bg-slate-800 transition-all",
                children: /* @__PURE__ */ jsx(X, { size: 14 })
              }
            )
          ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
            canEdit && /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => handleStartEdit(idx),
                className: "w-8 h-8 flex items-center justify-center rounded-lg text-slate-300 hover:text-teal-600 hover:bg-teal-50 dark:hover:bg-teal-900/20 transition-all",
                children: /* @__PURE__ */ jsx(Pencil, { size: 14 })
              }
            ),
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => handleRemove(idx),
                className: "w-8 h-8 flex items-center justify-center rounded-lg text-slate-300 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20 transition-all",
                children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
              }
            )
          ] })
        ] }, idx);
      }) }),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => setIsAdding(true),
          className: "w-full py-2.5 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-xl text-slate-600 dark:text-slate-300 hover:border-teal-500 hover:text-teal-600 dark:hover:text-teal-400 transition-all flex items-center justify-center gap-2 text-xs font-bold shadow-sm",
          children: [
            /* @__PURE__ */ jsx(Plus, { size: 14 }),
            " Add Assignment"
          ]
        }
      )
    ] }),
    isAdding && /* @__PURE__ */ jsxs("div", { className: "bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 shadow-xl rounded-xl overflow-hidden animate-in zoom-in-95 duration-200", children: [
      /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 border-b border-slate-100 dark:border-slate-800 bg-slate-50 dark:bg-slate-950 flex justify-between items-center", children: [
        /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: isManualEntry ? "Manual Entry" : selectedType ? "New Rule" : "Select Type" }),
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
          !selectedType && /* @__PURE__ */ jsxs(
            "button",
            {
              onClick: () => setIsManualEntry(!isManualEntry),
              className: `text-xs font-medium flex items-center gap-1 px-2 py-1 rounded transition-colors ${isManualEntry ? "bg-teal-50 text-teal-600 dark:bg-teal-900/30 dark:text-teal-400" : "text-slate-400 hover:text-slate-600"}`,
              children: [
                /* @__PURE__ */ jsx(Keyboard, { size: 12 }),
                " Manual"
              ]
            }
          ),
          !selectedType && /* @__PURE__ */ jsx("button", { onClick: () => {
            setIsAdding(false);
            setIsManualEntry(false);
          }, className: "text-xs text-slate-400 hover:text-slate-600 font-medium", children: "Close" })
        ] })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "p-4", children: isManualEntry ? /* @__PURE__ */ jsxs("div", { className: "space-y-3 animate-in fade-in duration-200", children: [
        /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-slate-500 leading-relaxed", children: [
          "Type a raw assignment string. Format: ",
          /* @__PURE__ */ jsx("code", { className: "bg-slate-100 dark:bg-slate-800 px-1 rounded text-[10px]", children: "type:value" }),
          " (e.g. ",
          /* @__PURE__ */ jsx("code", { className: "bg-slate-100 dark:bg-slate-800 px-1 rounded text-[10px]", children: "role:BadgeOffice" }),
          ", ",
          /* @__PURE__ */ jsx("code", { className: "bg-slate-100 dark:bg-slate-800 px-1 rounded text-[10px]", children: "person:123" }),
          ", ",
          /* @__PURE__ */ jsx("code", { className: "bg-slate-100 dark:bg-slate-800 px-1 rounded text-[10px]", children: "!group:Security" }),
          ")"
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
          /* @__PURE__ */ jsx(
            "input",
            {
              type: "text",
              value: manualValue,
              onChange: (e) => setManualValue(e.target.value),
              onKeyDown: (e) => e.key === "Enter" && handleManualAdd(),
              placeholder: "e.g. role:BadgeOffice",
              className: "flex-1 px-3 py-2 text-sm font-mono border rounded-lg border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-800 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20"
            }
          ),
          /* @__PURE__ */ jsx(
            "button",
            {
              onClick: handleManualAdd,
              disabled: !manualValue.trim(),
              className: "px-4 py-2 bg-slate-900 dark:bg-teal-600 hover:bg-black dark:hover:bg-teal-700 text-white rounded-lg text-xs font-bold transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
              children: "Add"
            }
          )
        ] })
      ] }) : selectedType ? renderForm() : renderTiles() })
    ] })
  ] });
};
const TimerTab = ({ data, onChange }) => {
  const timerType = (data.timerType === "duration" ? "cycle" : data.timerType) || "cycle";
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-purple-50 dark:bg-purple-900/20 rounded-lg border border-purple-100 dark:border-purple-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(Clock, { className: "text-purple-600 dark:text-purple-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-purple-800 dark:text-purple-300", children: "Timer Configuration" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-purple-700 dark:text-purple-400 leading-relaxed", children: "Configure when this timer event triggers. Supports repeating cycles, cron expressions, or specific dates." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "timerType",
            label: "Timer Type",
            type: "select",
            options: [
              { value: "cycle", label: "Cycle (Repeating)" },
              { value: "cron", label: "Cron Expression" },
              { value: "date", label: "Specific Date" }
            ],
            defaultValue: "cycle"
          },
          value: timerType,
          onChange
        }
      ),
      timerType === "cycle" && /* @__PURE__ */ jsxs("div", { className: "animate-in fade-in slide-in-from-top-2 duration-200 space-y-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "timerDefinition",
              label: "Cycle Interval (ISO 8601)",
              type: "text",
              placeholder: "R3/PT10M",
              description: "e.g., R/PT1M (Every 1 min), R3/PT10H (3 times, every 10 hours)."
            },
            value: data.timerDefinition,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "endDate",
              label: "End Date (Optional)",
              type: "datetime",
              description: "Stop repeating after this date."
            },
            value: data.endDate,
            onChange
          }
        )
      ] }),
      timerType === "cron" && /* @__PURE__ */ jsx("div", { className: "animate-in fade-in slide-in-from-top-2 duration-200", children: /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "timerDefinition",
            label: "Cron Expression",
            type: "text",
            placeholder: "0 0 * * *",
            description: "Standard cron syntax (e.g. */5 * * * *)"
          },
          value: data.timerDefinition,
          onChange
        }
      ) }),
      timerType === "date" && /* @__PURE__ */ jsx("div", { className: "animate-in fade-in slide-in-from-top-2 duration-200", children: /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "timerDate",
            label: "Trigger Date",
            type: "datetime",
            description: "The specific date and time to fire."
          },
          value: data.timerDate,
          onChange
        }
      ) })
    ] })
  ] });
};
const MessageSignalTab = ({ data, onChange, type, isThrowing }) => {
  const isMessage = type === "message";
  const Icon2 = isMessage ? Mail : isThrowing ? Radio : Zap;
  const colorClass = isMessage ? "text-blue-600 dark:text-blue-400" : "text-orange-600 dark:text-orange-400";
  const bgClass = isMessage ? "bg-blue-50 dark:bg-blue-900/20 border-blue-100 dark:border-blue-900" : "bg-orange-50 dark:bg-orange-900/20 border-orange-100 dark:border-orange-900";
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: `p-3 rounded-lg border flex gap-3 ${bgClass}`, children: [
      /* @__PURE__ */ jsx(Icon2, { className: `${colorClass} mt-0.5 shrink-0`, size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsxs("p", { className: `text-xs font-bold ${isMessage ? "text-blue-800 dark:text-blue-300" : "text-orange-800 dark:text-orange-300"}`, children: [
          isMessage ? "Message" : "Signal",
          " Configuration"
        ] }),
        /* @__PURE__ */ jsx("p", { className: `text-[11px] ${isMessage ? "text-blue-700 dark:text-blue-400" : "text-orange-700 dark:text-orange-400"} leading-relaxed`, children: isThrowing ? `Configure the ${type} to broadcast/send. Downstream processes waiting for this ${type} name will be triggered.` : `Configure the ${type} to wait for. This node will activate when a ${type} with this name is received.` })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: isMessage ? "messageName" : "signalName",
            label: `${isMessage ? "Message" : "Signal"} Name`,
            type: "text",
            placeholder: isMessage ? "OrderPlaced" : "GlobalAlert",
            validation: { required: true },
            description: "Must match exactly with the corresponding throw/catch event."
          },
          value: isMessage ? data.messageName : data.signalName,
          onChange
        }
      ),
      !isThrowing && isMessage && /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "correlationKey",
            label: "Correlation Key",
            type: "text",
            placeholder: "${orderId}",
            description: "Used to match the message to a specific process instance."
          },
          value: data.correlationKey,
          onChange
        }
      ),
      !isThrowing && isMessage && /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "correlationScript",
            label: "Correlation Script",
            type: "expression",
            rows: 4,
            placeholder: "message.EntityType === 'Person' && message.Action === 'Upsert'",
            description: "JavaScript expression evaluated against the incoming message object. Must return a boolean. For intermediate/boundary events, process variables are also available."
          },
          value: data.correlationScript,
          onChange
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
        /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1", children: [
          isThrowing ? /* @__PURE__ */ jsx(Send, { size: 12 }) : /* @__PURE__ */ jsx(ArrowDownLeft, { size: 12 }),
          " Payload Data"
        ] }),
        /* @__PURE__ */ jsx("div", { className: "bg-slate-50 dark:bg-slate-900 p-3 rounded-lg border border-slate-200 dark:border-slate-800", children: /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: isMessage ? "messagePayload" : "signalPayload",
              label: "",
              // hidden
              type: "object",
              rows: 6,
              placeholder: '{\n  "key": "value"\n}',
              description: isThrowing ? "Data to send with the event" : "Schema expected from the event"
            },
            value: isMessage ? data.messagePayload : data.signalPayload,
            onChange
          }
        ) })
      ] })
    ] })
  ] });
};
const DatabaseTab = ({ data, onChange }) => {
  const [activeSubTab, setActiveSubTab] = useState("config");
  const params = data.parameters || [];
  const handleAddParam = () => {
    const newParams = [...params, { key: `param_${params.length + 1}`, value: "", type: "string" }];
    onChange("parameters", newParams);
  };
  const handleRemoveParam = (index2) => {
    const newParams = params.filter((_, i) => i !== index2);
    onChange("parameters", newParams);
  };
  const handleParamChange = (index2, field, value) => {
    const newParams = [...params];
    newParams[index2] = { ...newParams[index2], [field]: value };
    onChange("parameters", newParams);
  };
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-indigo-50 dark:bg-indigo-900/20 rounded-lg border border-indigo-100 dark:border-indigo-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(Database, { className: "text-indigo-600 dark:text-indigo-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-indigo-800 dark:text-indigo-300", children: "Database Integration" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-indigo-700 dark:text-indigo-400 leading-relaxed", children: "Configure SQL queries or stored procedures. Use parameters for safe variable injection." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex border-b border-slate-200 dark:border-slate-800 overflow-x-auto", children: [
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => setActiveSubTab("config"),
          className: `px-4 py-2 text-xs font-bold transition-colors border-b-2 whitespace-nowrap ${activeSubTab === "config" ? "border-teal-500 text-teal-600" : "border-transparent text-slate-500 hover:text-slate-700"}`,
          children: "Query Config"
        }
      ),
      /* @__PURE__ */ jsxs(
        "button",
        {
          onClick: () => setActiveSubTab("params"),
          className: `px-4 py-2 text-xs font-bold transition-colors border-b-2 flex items-center gap-1 whitespace-nowrap ${activeSubTab === "params" ? "border-teal-500 text-teal-600" : "border-transparent text-slate-500 hover:text-slate-700"}`,
          children: [
            "Parameters",
            params.length > 0 && /* @__PURE__ */ jsx("span", { className: "bg-slate-200 dark:bg-slate-800 text-slate-600 dark:text-slate-400 px-1.5 rounded-full text-[9px]", children: params.length })
          ]
        }
      )
    ] }),
    activeSubTab === "config" && /* @__PURE__ */ jsxs("div", { className: "space-y-4 animate-in fade-in slide-in-from-left-2 duration-200", children: [
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "connectionId",
              label: "Connection",
              type: "select",
              options: [
                { value: "db_main", label: "Main Postgres DB" },
                { value: "db_analytics", label: "Analytics Warehouse" },
                { value: "db_users", label: "User Directory" }
              ],
              defaultValue: "db_main"
            },
            value: data.connectionId,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "queryType",
              label: "Operation",
              type: "select",
              options: [
                { value: "SELECT", label: "SELECT" },
                { value: "INSERT", label: "INSERT" },
                { value: "UPDATE", label: "UPDATE" },
                { value: "DELETE", label: "DELETE" },
                { value: "PROCEDURE", label: "Call Procedure" }
              ],
              defaultValue: "SELECT"
            },
            value: data.queryType,
            onChange
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
          /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(CodeXml, { size: 12 }),
            " Query Editor"
          ] }),
          /* @__PURE__ */ jsxs("button", { className: "text-[10px] text-teal-600 font-bold hover:underline flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(Play, { size: 10 }),
            " Test Query"
          ] })
        ] }),
        /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "query",
              label: "",
              type: "textarea",
              rows: 8,
              placeholder: "SELECT * FROM users WHERE status = :status AND tenant_id = :tenant",
              description: "Use :paramName for parameterized queries."
            },
            value: data.query,
            onChange
          }
        ) })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "resultVariable",
              label: "Output Variable",
              type: "text",
              placeholder: "dbResult",
              description: "Stores query result (rows/count)."
            },
            value: data.resultVariable,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "timeout",
              label: "Timeout (ms)",
              type: "number",
              defaultValue: 3e4
            },
            value: data.timeout,
            onChange
          }
        )
      ] })
    ] }),
    activeSubTab === "params" && /* @__PURE__ */ jsxs("div", { className: "space-y-4 animate-in fade-in slide-in-from-right-2 duration-200", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center mb-2", children: [
        /* @__PURE__ */ jsx("div", { className: "text-xs text-slate-500", children: "Map workflow variables to query parameters." }),
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: handleAddParam,
            className: "text-xs flex items-center gap-1 text-teal-600 font-bold hover:bg-teal-50 px-2 py-1 rounded transition-colors",
            children: [
              /* @__PURE__ */ jsx(Plus, { size: 12 }),
              " Add Parameter"
            ]
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
        params.map((param, index2) => /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-start p-2 bg-slate-50 dark:bg-slate-900 rounded border border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
              /* @__PURE__ */ jsx(Key, { size: 12, className: "text-slate-400" }),
              /* @__PURE__ */ jsx(
                "input",
                {
                  type: "text",
                  value: param.key,
                  onChange: (e) => handleParamChange(index2, "key", e.target.value),
                  placeholder: "Param Name (e.g. status)",
                  className: "bg-transparent border-none text-xs font-bold text-slate-700 dark:text-slate-300 focus:ring-0 p-0 w-full"
                }
              )
            ] }),
            /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
              /* @__PURE__ */ jsx(
                "input",
                {
                  type: "text",
                  value: param.value,
                  onChange: (e) => handleParamChange(index2, "value", e.target.value),
                  placeholder: "Value (e.g. ${status})",
                  className: "flex-1 text-xs border rounded px-2 py-1 border-slate-300 dark:border-slate-700 font-mono bg-white dark:bg-slate-800"
                }
              ),
              /* @__PURE__ */ jsxs(
                "select",
                {
                  value: param.type,
                  onChange: (e) => handleParamChange(index2, "type", e.target.value),
                  className: "text-xs border rounded px-2 py-1 border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-800 w-20",
                  children: [
                    /* @__PURE__ */ jsx("option", { value: "string", children: "String" }),
                    /* @__PURE__ */ jsx("option", { value: "number", children: "Number" }),
                    /* @__PURE__ */ jsx("option", { value: "boolean", children: "Bool" }),
                    /* @__PURE__ */ jsx("option", { value: "json", children: "JSON" })
                  ]
                }
              )
            ] })
          ] }),
          /* @__PURE__ */ jsx(
            "button",
            {
              onClick: () => handleRemoveParam(index2),
              className: "p-1 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded",
              children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
            }
          )
        ] }, index2)),
        params.length === 0 && /* @__PURE__ */ jsx("div", { className: "text-center py-8 border-2 border-dashed border-slate-200 dark:border-slate-800 rounded-lg text-slate-400 text-xs", children: "No parameters defined." })
      ] })
    ] })
  ] });
};
const StartEventSection = ({ startEvents }) => {
  if (startEvents.length === 0) return null;
  return /* @__PURE__ */ jsx("div", { className: "mt-3 space-y-2", children: startEvents.map((se) => /* @__PURE__ */ jsxs("div", { className: "p-3 bg-white dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-1", children: [
      /* @__PURE__ */ jsx("span", { className: "text-[10px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded bg-slate-100 dark:bg-slate-700 text-slate-500 dark:text-slate-400", children: se.type }),
      /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-slate-700 dark:text-slate-300", children: se.name })
    ] }),
    se.type === "form" && se.fields && se.fields.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2", children: [
      /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-500 uppercase tracking-wider mb-1", children: "Required Fields" }),
      /* @__PURE__ */ jsx("div", { className: "space-y-1", children: se.fields.map((f) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-600 dark:text-slate-400", children: [
        /* @__PURE__ */ jsx("span", { className: "font-mono text-[11px]", children: f.name }),
        /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: ":" }),
        /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: f.type }),
        f.required && /* @__PURE__ */ jsx("span", { className: "text-red-400 text-[10px]", children: "*" })
      ] }, f.name)) })
    ] }),
    se.type === "message" && /* @__PURE__ */ jsxs("div", { className: "mt-2 space-y-1", children: [
      se.messageName && /* @__PURE__ */ jsxs("p", { className: "text-xs text-slate-600 dark:text-slate-400", children: [
        /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: "Message:" }),
        " ",
        /* @__PURE__ */ jsx("span", { className: "font-mono", children: se.messageName })
      ] }),
      se.messagePayloadSchema && se.messagePayloadSchema.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-500 uppercase tracking-wider mb-1", children: "Payload Schema" }),
        /* @__PURE__ */ jsx("div", { className: "space-y-1", children: se.messagePayloadSchema.map((f) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-600 dark:text-slate-400", children: [
          /* @__PURE__ */ jsx("span", { className: "font-mono text-[11px]", children: f.name }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: ":" }),
          /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: f.type }),
          f.required && /* @__PURE__ */ jsx("span", { className: "text-red-400 text-[10px]", children: "*" })
        ] }, f.name)) })
      ] })
    ] }),
    se.type === "signal" && se.signalName && /* @__PURE__ */ jsxs("p", { className: "mt-2 text-xs text-slate-600 dark:text-slate-400", children: [
      /* @__PURE__ */ jsx("span", { className: "text-slate-500", children: "Signal:" }),
      " ",
      /* @__PURE__ */ jsx("span", { className: "font-mono", children: se.signalName })
    ] })
  ] }, se.id)) });
};
const CallActivityTab = ({ data, onChange }) => {
  const { services } = useEditorConfig();
  const callableProcesses = services.callableProcesses;
  const collectionOptions = useMemo(() => {
    if (!callableProcesses) return void 0;
    return [...new Set(callableProcesses.map((p) => p.collection))].filter(Boolean).map((c) => ({ value: c, label: c }));
  }, [callableProcesses]);
  const processOptions = useMemo(() => {
    if (!callableProcesses) return void 0;
    const filtered = data.processCollection ? callableProcesses.filter((p) => p.collection === data.processCollection) : callableProcesses;
    return [...new Set(filtered.map((p) => p.processName))].filter(Boolean).map((n) => ({ value: n, label: n }));
  }, [callableProcesses, data.processCollection]);
  const matchedProcess = useMemo(() => {
    if (!callableProcesses || !data.processName) return void 0;
    return callableProcesses.find(
      (p) => p.processName === data.processName && (!data.processCollection || p.collection === data.processCollection)
    );
  }, [callableProcesses, data.processName, data.processCollection]);
  const collectionFieldType = collectionOptions ? "combobox" : "text";
  const processFieldType = processOptions ? "combobox" : "text";
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-sky-50 dark:bg-sky-900/20 rounded-lg border border-sky-100 dark:border-sky-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(Workflow, { className: "text-sky-600 dark:text-sky-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-sky-800 dark:text-sky-300", children: "External Process" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-sky-700 dark:text-sky-400 leading-relaxed", children: "Calls another process definition. The parent process waits until the called process completes." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-800", children: [
        /* @__PURE__ */ jsxs("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1 border-b border-slate-200 dark:border-slate-800 pb-2 mb-2", children: [
          /* @__PURE__ */ jsx(ExternalLink, { size: 12 }),
          " Target Process"
        ] }),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "processCollection",
              label: "Collection",
              type: collectionFieldType,
              placeholder: "MyCollection",
              description: "The collection namespace of the target process.",
              ...collectionOptions ? { options: collectionOptions } : {}
            },
            value: data.processCollection,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "processName",
              label: "Process Name",
              type: processFieldType,
              placeholder: "MyProcess/sub1",
              validation: { required: true },
              description: "The unique name of the target process.",
              ...processOptions ? { options: processOptions } : {}
            },
            value: data.processName,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "processVersion",
              label: "Version",
              type: "number",
              placeholder: "0",
              description: "0 for current, -1 for latest."
            },
            value: data.processVersion,
            onChange
          }
        )
      ] }),
      matchedProcess && matchedProcess.startEvents.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-amber-50 dark:bg-amber-900/20 rounded-xl border border-amber-200 dark:border-amber-800", children: [
        /* @__PURE__ */ jsxs("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1 border-b border-amber-200 dark:border-amber-800 pb-2 mb-2", children: [
          /* @__PURE__ */ jsx(Zap, { size: 12 }),
          " Start Events"
        ] }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-600 dark:text-slate-400", children: "The target process defines the following start events. Configure input variables in the Data Mapping section below to supply required fields." }),
        /* @__PURE__ */ jsx(StartEventSection, { startEvents: matchedProcess.startEvents })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-800", children: [
        /* @__PURE__ */ jsxs("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1 border-b border-slate-200 dark:border-slate-800 pb-2 mb-2", children: [
          /* @__PURE__ */ jsx(Settings, { size: 12 }),
          " Execution Settings"
        ] }),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "keepBusinessKey",
              label: "Keep Business Key",
              type: "boolean",
              description: "Propagate the parent process business key to the child process."
            },
            value: data.keepBusinessKey,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "sequentialLoop",
              label: "Sequential Loop",
              type: "boolean",
              description: "If looping, execute iterations sequentially instead of parallel."
            },
            value: data.sequentialLoop,
            onChange
          }
        ),
        data.sequentialLoop && /* @__PURE__ */ jsxs("div", { className: "ml-4 space-y-4 pl-4 border-l-2 border-slate-200 dark:border-slate-700", children: [
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "collectionName",
                label: "Collection Name",
                type: "text",
                placeholder: "myList",
                description: "Variable containing the collection to iterate over."
              },
              value: data.collectionName,
              onChange
            }
          ),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "elementName",
                label: "Element Name",
                type: "text",
                placeholder: "item",
                description: "Variable name for the current loop element."
              },
              value: data.elementName,
              onChange
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-800", children: [
        /* @__PURE__ */ jsxs("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1 border-b border-slate-200 dark:border-slate-800 pb-2 mb-2", children: [
          /* @__PURE__ */ jsx(Variable, { size: 12 }),
          " Result"
        ] }),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "resultVariable",
              label: "Result Variable",
              type: "text",
              placeholder: "callResult",
              description: "Variable to store the returned values from the called process as an object."
            },
            value: data.resultVariable,
            onChange
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "bg-slate-50 dark:bg-slate-900 p-4 rounded-xl border border-slate-200 dark:border-slate-800 space-y-4", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider border-b border-slate-200 dark:border-slate-800 pb-2 mb-2", children: [
          /* @__PURE__ */ jsx(ArrowRightLeft, { size: 12 }),
          " Data Mapping"
        ] }),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "inputVariables",
              label: "Input Variables (Map to Child)",
              type: "object",
              rows: 4,
              placeholder: '{\n  "childVar": "${parentVar}"\n}',
              description: "Map parent variables to child process inputs."
            },
            value: data.inputVariables,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "outputVariables",
              label: "Output Variables (Map from Child)",
              type: "object",
              rows: 4,
              placeholder: '{\n  "parentVar": "${childResult}"\n}',
              description: "Map child process outputs back to parent variables."
            },
            value: data.outputVariables,
            onChange
          }
        )
      ] })
    ] })
  ] });
};
const HTTP_SERVICE_URL_PLACEHOLDER = "http://svc-identity:80";
const HttpTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-4", children: [
    /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "service", label: "Service URL", type: "text", placeholder: HTTP_SERVICE_URL_PLACEHOLDER, validation: { required: true } },
          value: data.service,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "endpoint", label: "Endpoint Path", type: "text", placeholder: "/api/Person" },
          value: data.endpoint,
          onChange
        }
      )
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "method", label: "Method", type: "select", options: [{ value: "GET", label: "GET" }, { value: "POST", label: "POST" }, { value: "PUT", label: "PUT" }, { value: "DELETE", label: "DELETE" }], defaultValue: "GET" },
          value: data.method,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "authentication", label: "Authentication", type: "select", options: [{ value: "none", label: "None" }, { value: "bearer", label: "Bearer Token" }, { value: "basic", label: "Basic Auth" }, { value: "api-key", label: "API Key" }], defaultValue: "none" },
          value: data.authentication,
          onChange
        }
      )
    ] }),
    data.authentication === "bearer" && /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "bearerToken", label: "Bearer Token", type: "text" },
        value: data.bearerToken,
        onChange
      }
    ),
    data.authentication === "api-key" && /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "apiKey", label: "API Key", type: "text" },
        value: data.apiKey,
        onChange
      }
    ),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "headers", label: "Headers (JSON)", type: "object", rows: 4 },
        value: data.headers,
        onChange
      }
    ),
    data.method !== "GET" && /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "requestBody", label: "Request Body", type: "textarea", rows: 6, placeholder: '{\n  "key": "value"\n}' },
        value: data.requestBody,
        onChange
      }
    ),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "resultVariable", label: "Result Variable", type: "text", placeholder: "httpResult", description: "Process variable to store the response envelope." },
        value: data.resultVariable,
        onChange
      }
    )
  ] });
};
const dedupeContextByName = (context) => context.filter((v, i, self2) => i === self2.findIndex((t) => t.name === v.name));
const ScriptTab = ({ data, onChange, context = [], nodeType }) => {
  const [showDebug, setShowDebug] = useState(false);
  const uniqueContext = dedupeContextByName(context);
  const systemVars = uniqueContext.filter((v) => v.sourceNodeId === "system");
  const userVars = uniqueContext.filter((v) => v.sourceNodeId !== "system");
  const groupedUserVars = userVars.reduce((acc, v) => {
    const key = v.sourceNodeLabel || v.sourceNodeId;
    if (!acc[key]) acc[key] = [];
    acc[key].push(v);
    return acc;
  }, {});
  return /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-6 pb-2 shrink-0", children: [
      /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800 flex gap-3 mb-6", children: [
        /* @__PURE__ */ jsx(Code, { className: "text-slate-500 dark:text-slate-400 mt-0.5 shrink-0", size: 16 }),
        /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
          /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-slate-700 dark:text-slate-300", children: "Script Execution" }),
          /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-slate-500 dark:text-slate-400 leading-relaxed", children: [
            "Execute custom JavaScript. You must ",
            /* @__PURE__ */ jsx("code", { children: "return" }),
            " an object where keys map to output variables."
          ] })
        ] })
      ] }),
      /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 mb-4", children: /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "scriptLanguage",
            label: "Language",
            type: "select",
            options: [
              { value: "javascript", label: "JavaScript" },
              { value: "python", label: "Python (Experimental)" }
            ],
            defaultValue: "javascript"
          },
          value: data.scriptLanguage,
          onChange
        }
      ) })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex-1 min-h-0 flex px-6 pb-6 gap-6", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex-1 relative group h-full", children: [
          /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 p-2 z-10 opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsx("span", { className: "text-[10px] bg-slate-100 dark:bg-slate-800 text-slate-500 px-2 py-1 rounded border border-slate-200 dark:border-slate-700", children: "JS" }) }),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "script",
                label: "Script Code",
                type: "textarea",
                rows: 20,
                placeholder: "// Example:\nconst total = variables.price * variables.qty;\n\n// Return object to update variables\nreturn {\n  total: total,\n  isValid: total > 0\n};",
                description: "ES6 Syntax. Use return { key: value } to output data."
              },
              value: data.script,
              onChange
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 mt-4", children: [
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "inputVariables",
                label: "Input Variables (Read)",
                type: "array",
                itemType: "text"
              },
              value: data.inputVariables,
              onChange
            }
          ),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "outputVariables",
                label: "Output Variables (Write)",
                type: "array",
                itemType: "text"
              },
              value: data.outputVariables,
              onChange
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "w-64 shrink-0 bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-xl overflow-hidden flex flex-col", children: [
        /* @__PURE__ */ jsxs("div", { className: "p-3 border-b border-slate-200 dark:border-slate-800 bg-slate-100 dark:bg-slate-950 flex items-center justify-between", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(Database, { size: 14, className: "text-slate-500" }),
            /* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-slate-700 dark:text-slate-300 uppercase", children: "Variables" })
          ] }),
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => setShowDebug(!showDebug),
                className: "p-1 text-slate-400 hover:text-slate-600 rounded",
                title: "Toggle Debug Info",
                children: /* @__PURE__ */ jsx(Info, { size: 12 })
              }
            ),
            /* @__PURE__ */ jsx("span", { className: "text-[9px] bg-slate-200 dark:bg-slate-800 text-slate-500 px-1.5 rounded-full", children: context.length })
          ] })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-2 space-y-4", children: [
          showDebug && /* @__PURE__ */ jsxs("div", { className: "p-2 mb-2 bg-amber-50 dark:bg-amber-900/20 border border-amber-100 dark:border-amber-800 rounded text-[10px] text-amber-800 dark:text-amber-300 font-mono break-all", children: [
            /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("strong", { children: "DEBUG INFO:" }) }),
            /* @__PURE__ */ jsxs("div", { children: [
              "Context Size: ",
              context.length
            ] }),
            /* @__PURE__ */ jsxs("div", { children: [
              "NodeType: ",
              nodeType
            ] })
          ] }),
          context.length === 0 && /* @__PURE__ */ jsxs("div", { className: "p-4 text-center", children: [
            /* @__PURE__ */ jsx(TriangleAlert, { className: "mx-auto text-amber-400 mb-2", size: 20 }),
            /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 italic mb-2", children: "No variables found." }),
            /* @__PURE__ */ jsx("div", { className: "text-[9px] text-slate-300", children: "Ensure this node is connected to upstream nodes that generate data (e.g., Forms, APIs)." })
          ] }),
          Object.entries(groupedUserVars).map(([source, vars]) => /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
            /* @__PURE__ */ jsx("div", { className: "px-1 text-[10px] font-bold text-teal-600 dark:text-teal-400 uppercase tracking-wider truncate border-b border-slate-100 dark:border-slate-800 pb-1 mb-1", children: source }),
            vars.map((v, idx) => /* @__PURE__ */ jsxs("div", { className: "p-2 bg-white dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-lg group hover:border-teal-500 transition-colors cursor-help shadow-sm", children: [
              /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
                /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 overflow-hidden", children: [
                  /* @__PURE__ */ jsx(Database, { size: 10, className: "text-teal-500" }),
                  /* @__PURE__ */ jsx("span", { className: "text-xs font-mono font-bold text-slate-700 dark:text-slate-300 truncate", title: v.name, children: v.name })
                ] }),
                /* @__PURE__ */ jsx("span", { className: "text-[9px] px-1.5 py-0.5 bg-slate-100 dark:bg-slate-800 rounded text-slate-500 uppercase shrink-0 font-medium", children: v.type })
              ] }),
              v.description && /* @__PURE__ */ jsx("div", { className: "mt-1 pt-1 border-t border-slate-50 dark:border-slate-900 text-[9px] text-slate-400 leading-tight truncate", children: v.description })
            ] }, idx))
          ] }, source)),
          systemVars.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1 pt-2 border-t border-slate-200 dark:border-slate-800", children: [
            /* @__PURE__ */ jsx("div", { className: "px-1 text-[10px] font-bold text-slate-400 uppercase tracking-wider truncate", children: "System" }),
            systemVars.map((v, idx) => /* @__PURE__ */ jsx("div", { className: "p-2 bg-slate-50 dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800 rounded-lg opacity-75 hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
              /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 overflow-hidden", children: [
                /* @__PURE__ */ jsx(Box, { size: 10, className: "text-slate-400" }),
                /* @__PURE__ */ jsx("span", { className: "text-xs font-mono font-bold text-slate-600 dark:text-slate-400 truncate", title: v.name, children: v.name })
              ] }),
              /* @__PURE__ */ jsx("span", { className: "text-[9px] px-1.5 py-0.5 bg-white dark:bg-slate-950 rounded text-slate-400 uppercase shrink-0 font-medium border border-slate-100 dark:border-slate-800", children: v.type })
            ] }) }, idx))
          ] })
        ] })
      ] })
    ] })
  ] });
};
const LLMConfigTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-purple-50 dark:bg-purple-900/20 rounded-lg border border-purple-100 dark:border-purple-900 flex gap-3", children: [
      /* @__PURE__ */ jsx(Bot, { className: "text-purple-600 dark:text-purple-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-purple-800 dark:text-purple-300", children: "LLM Configuration" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-purple-700 dark:text-purple-400 leading-relaxed", children: "Configure the AI model parameters and system instructions." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "model",
            label: "Model",
            type: "select",
            options: [
              { value: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
              { value: "gemini-3-pro-preview", label: "Gemini 3.0 Pro" }
            ],
            defaultValue: "gemini-2.5-flash"
          },
          value: data.model,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "systemPrompt",
            label: "System Prompt",
            type: "textarea",
            rows: 8,
            placeholder: "You are a helpful assistant...",
            description: "Define the persona and behavioral constraints."
          },
          value: data.systemPrompt,
          onChange
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-100 dark:border-blue-900 flex items-start gap-2", children: [
        /* @__PURE__ */ jsx(Sparkles, { className: "text-blue-500 mt-0.5", size: 14 }),
        /* @__PURE__ */ jsxs("p", { className: "text-xs text-blue-700 dark:text-blue-300", children: [
          "This node uses the Gemini API. Ensure ",
          /* @__PURE__ */ jsx("code", { children: "API_KEY" }),
          " is set in the environment."
        ] })
      ] })
    ] })
  ] });
};
const UserTaskExtensionTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Engine Properties" }),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "userTaskSubject", label: "Subject", type: "text", placeholder: "Leave empty to use node label", description: "Task subject shown to the user." },
            value: data.userTaskSubject,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "userTaskObject", label: "Object", type: "text", placeholder: "e.g. ${variables.objectId}", description: "Business object reference." },
            value: data.userTaskObject,
            onChange
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-4", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "userTaskModifiers", label: "Modifiers", type: "text", placeholder: "e.g. readonly" },
            value: data.userTaskModifiers,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: { name: "userTaskStep", label: "Step", type: "number", defaultValue: 1, description: "Workflow step number." },
            value: data.userTaskStep,
            onChange
          }
        ),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "userTaskRejectable", label: "Rejectable", type: "boolean", defaultValue: true, description: "Allow task rejection." },
              value: data.userTaskRejectable ?? true,
              onChange
            }
          ),
          /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-400 mt-1", children: "Toggling will auto-manage the Error Boundary Event." })
        ] })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4 pt-4 border-t border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsx("h3", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Common Extensions" }),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "extensionConfig", label: "Configuration (JSON)", type: "object", rows: 4 },
          value: data.extensionConfig,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "extensionRelations", label: "Relations (JSON)", type: "object", rows: 4 },
          value: data.extensionRelations,
          onChange
        }
      )
    ] })
  ] });
};
const SmsTab = ({ data, onChange }) => {
  var _a;
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "p-3 bg-indigo-50 dark:bg-indigo-900/20 rounded-lg border border-indigo-100 dark:border-indigo-900 flex gap-3", children: [
        /* @__PURE__ */ jsx(Smartphone, { className: "text-indigo-600 dark:text-indigo-400 mt-0.5 shrink-0", size: 16 }),
        /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
          /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-indigo-800 dark:text-indigo-300", children: "SMS Configuration" }),
          /* @__PURE__ */ jsx("p", { className: "text-[11px] text-indigo-700 dark:text-indigo-400 leading-relaxed", children: "Configure outgoing SMS messages. Supports variable interpolation for dynamic content." })
        ] })
      ] }),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "toPhone", label: "Recipient Phone", type: "text", placeholder: "+15550001234, ${user.phone}", validation: { required: true }, description: "E.164 format recommended" },
          value: data.toPhone,
          onChange
        }
      )
    ] }),
    /* @__PURE__ */ jsx("hr", { className: "border-slate-200 dark:border-slate-800" }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
      /* @__PURE__ */ jsxs("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider flex items-center gap-1", children: [
        /* @__PURE__ */ jsx(MessageSquare, { size: 12 }),
        " Message Body"
      ] }),
      /* @__PURE__ */ jsx(
        "textarea",
        {
          value: data.message || "",
          onChange: (e) => onChange("message", e.target.value),
          rows: 6,
          maxLength: 1600,
          className: "w-full px-3 py-2 text-sm border rounded-lg focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 bg-white dark:bg-slate-900 border-slate-300 dark:border-slate-700",
          placeholder: "Hello ${user.name}, your verification code is ${code}."
        }
      ),
      /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-slate-400", children: [
        ((_a = data.message) == null ? void 0 : _a.length) || 0,
        " chars"
      ] }) })
    ] })
  ] });
};
const ResponseExtractor = ({ data, onChange }) => {
  const [testResult, setTestResult] = useState(null);
  const rules2 = data.extractionRules || [];
  const [detectedType, setDetectedType] = useState("Text");
  const mode = data.unpackAll ? "unpack" : rules2.length > 0 || data.extractionRules ? "rules" : "raw";
  useEffect(() => {
    if (data.exampleResponse) {
      setDetectedType(detectContentType(data.exampleResponse));
    }
  }, [data.exampleResponse]);
  const handleAddRule = () => {
    let defaultMethod = "regex";
    if (detectedType === "JSON") defaultMethod = "jsonpath";
    if (detectedType === "XML") defaultMethod = "xpath";
    const newRule = {
      method: defaultMethod,
      source: "",
      targetVar: ""
      // type is optional now, defaulting to auto/dynamic
    };
    onChange("extractionRules", [...rules2, newRule]);
  };
  const handleRemoveRule = (index2) => {
    const newRules = rules2.filter((_, i) => i !== index2);
    onChange("extractionRules", newRules);
  };
  const handleRuleChange = (index2, field, value) => {
    const newRules = [...rules2];
    newRules[index2] = { ...newRules[index2], [field]: value };
    onChange("extractionRules", newRules);
  };
  const handleTest = () => {
    if (!data.exampleResponse) return;
    const result = extractData(data.exampleResponse, rules2);
    setTestResult(result);
  };
  const getTypeColor = () => {
    if (detectedType === "JSON") return "bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400";
    if (detectedType === "XML") return "bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400";
    return "bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-400";
  };
  return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-4 border-t border-slate-200 dark:border-slate-800", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
      /* @__PURE__ */ jsx("div", { className: "p-1.5 bg-slate-100 dark:bg-slate-800 rounded", children: /* @__PURE__ */ jsx(Braces, { size: 16, className: "text-slate-600 dark:text-slate-300" }) }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-slate-700 dark:text-slate-200 uppercase tracking-wider", children: "Response Extraction" }),
        /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-500", children: "Map response data to workflow variables." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 p-2 bg-slate-50 dark:bg-slate-900 rounded-lg border border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsx("label", { className: "text-[10px] font-bold text-slate-500 uppercase shrink-0", children: "Response Mode" }),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => {
            onChange("unpackAll", false);
            onChange("extractionRules", void 0);
          },
          className: `px-3 py-1 text-[10px] font-bold rounded transition-colors ${mode === "raw" ? "bg-teal-600 text-white" : "bg-white dark:bg-slate-800 text-slate-500 border border-slate-300 dark:border-slate-700 hover:bg-slate-100"}`,
          children: "Raw"
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => {
            onChange("unpackAll", true);
            onChange("extractionRules", void 0);
          },
          className: `px-3 py-1 text-[10px] font-bold rounded transition-colors ${mode === "unpack" ? "bg-teal-600 text-white" : "bg-white dark:bg-slate-800 text-slate-500 border border-slate-300 dark:border-slate-700 hover:bg-slate-100"}`,
          children: "Unpack All"
        }
      ),
      /* @__PURE__ */ jsx(
        "button",
        {
          onClick: () => {
            onChange("unpackAll", false);
            onChange("extractionRules", []);
          },
          className: `px-3 py-1 text-[10px] font-bold rounded transition-colors ${mode === "rules" ? "bg-teal-600 text-white" : "bg-white dark:bg-slate-800 text-slate-500 border border-slate-300 dark:border-slate-700 hover:bg-slate-100"}`,
          children: "Extraction Rules"
        }
      ),
      /* @__PURE__ */ jsx("span", { className: "text-[9px] text-slate-400 ml-auto", children: mode === "raw" ? "Response written directly to result variable" : mode === "unpack" ? "Auto-detect format (JSON/XML/YAML) and unpack all fields as variables" : "Define rules to extract specific values from the response" })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center", children: [
        /* @__PURE__ */ jsx("label", { className: "text-[10px] font-bold text-slate-500 uppercase", children: "Example Response" }),
        /* @__PURE__ */ jsxs("div", { className: `px-2 py-0.5 text-[9px] font-bold uppercase rounded ${getTypeColor()}`, children: [
          "Detected: ",
          detectedType
        ] })
      ] }),
      /* @__PURE__ */ jsx(
        "textarea",
        {
          value: data.exampleResponse || "",
          onChange: (e) => onChange("exampleResponse", e.target.value),
          placeholder: "Paste sample response here (JSON, XML, or Text)...",
          className: "w-full h-48 px-3 py-2 text-xs font-mono border rounded-lg bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:outline-none focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20 resize-none",
          spellCheck: false
        }
      ),
      /* @__PURE__ */ jsx("p", { className: "text-[10px] text-slate-500", children: "This sample is used for variable detection, previewing extraction, and simulation defaults." })
    ] }),
    mode === "raw" ? /* @__PURE__ */ jsx("div", { className: "p-3 bg-slate-50 dark:bg-slate-900/50 border border-slate-200 dark:border-slate-800 rounded-lg", children: /* @__PURE__ */ jsxs("p", { className: "text-xs text-slate-600 dark:text-slate-400", children: [
      "The raw response body is written directly to the ",
      /* @__PURE__ */ jsx("strong", { children: "result variable" }),
      ". No extraction or parsing is performed."
    ] }) }) : mode === "unpack" ? /* @__PURE__ */ jsx("div", { className: "p-3 bg-teal-50 dark:bg-teal-900/20 border border-teal-100 dark:border-teal-900 rounded-lg", children: /* @__PURE__ */ jsx("p", { className: "text-xs text-teal-700 dark:text-teal-300", children: "The response format will be auto-detected (JSON, XML, or YAML) and all fields become process variables. If detection fails, the response is passed through as a raw string." }) }) : /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "space-y-3 flex flex-col", children: [
        /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-[26px]", children: [
          /* @__PURE__ */ jsx("label", { className: "text-[10px] font-bold text-slate-500 uppercase", children: "Extraction Rules" }),
          /* @__PURE__ */ jsxs(
            "button",
            {
              onClick: handleAddRule,
              className: "text-[10px] flex items-center gap-1 text-teal-600 font-bold hover:bg-teal-50 dark:hover:bg-teal-900/30 px-2 py-1 rounded transition-colors",
              children: [
                /* @__PURE__ */ jsx(Plus, { size: 10 }),
                " Add Rule"
              ]
            }
          )
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto min-h-[120px] space-y-2 bg-slate-50 dark:bg-slate-950/50 rounded-lg p-2 border border-slate-200 dark:border-slate-800", children: [
          rules2.length === 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center h-full text-slate-400 text-xs italic opacity-70", children: [
            /* @__PURE__ */ jsx(FileCode, { size: 20, className: "mb-1" }),
            "No rules defined"
          ] }),
          rules2.map((rule, idx) => /* @__PURE__ */ jsxs("div", { className: "p-2 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-700 rounded shadow-sm group", children: [
            /* @__PURE__ */ jsxs("div", { className: "flex gap-2 mb-2 items-center", children: [
              /* @__PURE__ */ jsxs(
                "select",
                {
                  value: rule.method,
                  onChange: (e) => handleRuleChange(idx, "method", e.target.value),
                  className: "w-24 px-1 py-1 text-[10px] font-bold uppercase border rounded bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 outline-none text-slate-600 dark:text-slate-400",
                  children: [
                    /* @__PURE__ */ jsx("option", { value: "jsonpath", children: "JSON Path" }),
                    /* @__PURE__ */ jsx("option", { value: "xpath", children: "XPath/Tag" }),
                    /* @__PURE__ */ jsx("option", { value: "regex", children: "Regex" })
                  ]
                }
              ),
              /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
                "input",
                {
                  type: "text",
                  value: rule.source,
                  onChange: (e) => handleRuleChange(idx, "source", e.target.value),
                  placeholder: rule.method === "regex" ? "Pattern e.g. ID: (\\d+)" : rule.method === "xpath" ? 'XPath e.g. //user/id or /root/items/item[@type="active"]' : "JSONPath e.g. $.data.id or $..books[?(@.price<10)]",
                  className: "w-full px-2 py-1 text-xs border rounded bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:border-teal-500 outline-none font-mono placeholder:text-slate-300"
                }
              ) }),
              /* @__PURE__ */ jsx(
                "button",
                {
                  onClick: () => handleRemoveRule(idx),
                  className: "p-1 text-slate-300 hover:text-red-500 transition-colors",
                  children: /* @__PURE__ */ jsx(Trash2, { size: 12 })
                }
              )
            ] }),
            /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
              /* @__PURE__ */ jsx(ArrowRight, { size: 10, className: "text-slate-300 shrink-0" }),
              /* @__PURE__ */ jsx(
                "input",
                {
                  type: "text",
                  value: rule.targetVar,
                  onChange: (e) => handleRuleChange(idx, "targetVar", e.target.value),
                  placeholder: "Variable Name",
                  className: "flex-1 px-2 py-1 text-xs border rounded bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:border-teal-500 outline-none font-bold text-teal-700 dark:text-teal-400"
                }
              ),
              /* @__PURE__ */ jsx(
                "input",
                {
                  type: "text",
                  value: rule.defaultValue ?? "",
                  onChange: (e) => handleRuleChange(idx, "defaultValue", e.target.value || void 0),
                  placeholder: "Default",
                  title: "Default value if extraction yields nothing",
                  className: "w-24 px-2 py-1 text-xs border rounded bg-slate-50 dark:bg-slate-950 border-slate-300 dark:border-slate-700 focus:border-teal-500 outline-none text-slate-500 dark:text-slate-400 font-mono"
                }
              ),
              /* @__PURE__ */ jsx("div", { className: "text-[9px] text-slate-400 font-mono px-2", children: "(Auto)" })
            ] })
          ] }, idx))
        ] }),
        /* @__PURE__ */ jsx("div", { className: "flex justify-end pt-1", children: /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: handleTest,
            disabled: !data.exampleResponse || rules2.length === 0,
            className: "text-xs bg-slate-800 hover:bg-slate-900 text-white px-3 py-1.5 rounded flex items-center gap-1.5 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
            children: [
              /* @__PURE__ */ jsx(Play, { size: 10 }),
              " Test Extraction"
            ]
          }
        ) })
      ] }),
      testResult && /* @__PURE__ */ jsxs("div", { className: "mt-4 p-3 bg-teal-50 dark:bg-teal-900/20 border border-teal-100 dark:border-teal-900 rounded-lg animate-in fade-in slide-in-from-top-1", children: [
        /* @__PURE__ */ jsx("h5", { className: "text-[10px] font-bold text-teal-800 dark:text-teal-300 uppercase mb-2", children: "Extraction Result" }),
        /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
          Object.entries(testResult).map(([key, val]) => /* @__PURE__ */ jsxs("div", { className: "flex text-xs font-mono items-center gap-2", children: [
            /* @__PURE__ */ jsxs("span", { className: "text-teal-700 dark:text-teal-400 min-w-[80px] shrink-0 truncate font-bold", children: [
              key,
              ":"
            ] }),
            /* @__PURE__ */ jsx("span", { className: "text-slate-600 dark:text-slate-300 break-all", children: typeof val === "object" ? JSON.stringify(val) : String(val) }),
            /* @__PURE__ */ jsx("span", { className: "text-[9px] text-slate-400 bg-white dark:bg-slate-800 px-1 rounded border border-slate-100 dark:border-slate-800", children: Array.isArray(val) ? "Array" : typeof val })
          ] }, key)),
          Object.keys(testResult).length === 0 && /* @__PURE__ */ jsxs("div", { className: "text-xs text-amber-600 flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(CircleAlert, { size: 12 }),
            " No matches found. Check your paths/regex."
          ] })
        ] })
      ] })
    ] })
  ] });
};
const ExtractionTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsx("div", { className: "p-6 h-full flex flex-col", children: /* @__PURE__ */ jsx(ResponseExtractor, { data, onChange }) });
};
const MCP_SERVER_URL_PLACEHOLDER = "http://localhost:3000/mcp";
const McpTab = ({ data, onChange }) => {
  const operation = data.mcpOperation || "CallTool";
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-6", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900/50 rounded-lg border border-slate-200 dark:border-slate-800 flex gap-3", children: [
      /* @__PURE__ */ jsx(Server, { className: "text-slate-600 dark:text-slate-400 mt-0.5 shrink-0", size: 16 }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
        /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-slate-800 dark:text-slate-300", children: "MCP Client Configuration" }),
        /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-600 dark:text-slate-400 leading-relaxed", children: "Connect to a Model Context Protocol server to invoke tools, read resources, or fetch prompts." })
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "mcpServerUrl",
            label: "Server URL",
            type: "url",
            placeholder: MCP_SERVER_URL_PLACEHOLDER,
            validation: { required: true, url: true }
          },
          value: data.mcpServerUrl,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "mcpOperation",
            label: "Operation",
            type: "select",
            options: [
              { value: "CallTool", label: "Call Tool" },
              { value: "ListTools", label: "List Tools" },
              { value: "ReadResource", label: "Read Resource" },
              { value: "ListResources", label: "List Resources" },
              { value: "GetPrompt", label: "Get Prompt" },
              { value: "ListPrompts", label: "List Prompts" }
            ],
            defaultValue: "CallTool"
          },
          value: data.mcpOperation,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: {
            name: "headers",
            label: "Headers (JSON)",
            type: "object",
            rows: 3,
            placeholder: '{\n  "Authorization": "Bearer token"\n}'
          },
          value: data.headers,
          onChange
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "pt-2 animate-in fade-in slide-in-from-top-1", children: [
        operation === "CallTool" && /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900/50 rounded-xl border border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider mb-2", children: [
            /* @__PURE__ */ jsx(Wrench, { size: 12 }),
            " Tool Configuration"
          ] }),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "mcpToolName", label: "Tool Name", type: "text", placeholder: "read_file", validation: { required: true } },
              value: data.mcpToolName,
              onChange
            }
          ),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "mcpToolArguments", label: "Arguments (JSON)", type: "object", rows: 4, placeholder: '{\n  "path": "/tmp/file.txt"\n}' },
              value: data.mcpToolArguments,
              onChange
            }
          )
        ] }),
        operation === "ReadResource" && /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900/50 rounded-xl border border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider mb-2", children: [
            /* @__PURE__ */ jsx(FileText, { size: 12 }),
            " Resource Configuration"
          ] }),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "mcpResourceUri", label: "Resource URI", type: "text", placeholder: "file:///logs/app.log", validation: { required: true } },
              value: data.mcpResourceUri,
              onChange
            }
          )
        ] }),
        operation === "GetPrompt" && /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 bg-slate-50 dark:bg-slate-900/50 rounded-xl border border-slate-200 dark:border-slate-800", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs font-bold text-slate-500 uppercase tracking-wider mb-2", children: [
            /* @__PURE__ */ jsx(Terminal, { size: 12 }),
            " Prompt Configuration"
          ] }),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "mcpPromptName", label: "Prompt Name", type: "text", placeholder: "summarize", validation: { required: true } },
              value: data.mcpPromptName,
              onChange
            }
          ),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: { name: "mcpPromptArguments", label: "Arguments (JSON)", type: "object", rows: 4, placeholder: '{\n  "style": "concise"\n}' },
              value: data.mcpPromptArguments,
              onChange
            }
          )
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 pt-2", children: [
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "resultVariable",
              label: "Result Variable",
              type: "text",
              placeholder: "mcpResult",
              description: "Stores the operation response."
            },
            value: data.resultVariable,
            onChange
          }
        ),
        /* @__PURE__ */ jsx(
          PropertyField,
          {
            config: {
              name: "timeout",
              label: "Timeout (s)",
              type: "number",
              defaultValue: 30
            },
            value: data.timeout,
            onChange
          }
        )
      ] })
    ] })
  ] });
};
const DroppableInput = ({ value, onChange, placeholder }) => {
  const [isOver, setIsOver] = useState(false);
  const handleDrop = (e) => {
    e.preventDefault();
    setIsOver(false);
    const text = e.dataTransfer.getData("text/plain");
    if (!text) return;
    const newValue = value ? `${value} ${text}` : text;
    onChange(newValue);
  };
  return /* @__PURE__ */ jsx(
    "input",
    {
      type: "text",
      value,
      onChange: (e) => onChange(e.target.value),
      onDragOver: (e) => {
        e.preventDefault();
        setIsOver(true);
        e.dataTransfer.dropEffect = "copy";
      },
      onDragLeave: () => setIsOver(false),
      onDrop: handleDrop,
      placeholder,
      className: `w-full px-2 py-1.5 text-xs border rounded bg-white dark:bg-slate-900 focus:outline-none font-mono transition-all
                ${isOver ? "border-teal-500 ring-2 ring-teal-500/20 bg-teal-50 dark:bg-teal-900/10" : "border-slate-300 dark:border-slate-700 focus:border-teal-500 focus:ring-1 focus:ring-teal-500/20"}
            `
    }
  );
};
const DecisionTab = ({ data, onChange, context = [] }) => {
  const { services } = useEditorConfig();
  const [definitions, setDefinitions] = useState([]);
  const [selectedDef, setSelectedDef] = useState(null);
  const [loading, setLoading] = useState(false);
  const [showDebug, setShowDebug] = useState(false);
  useEffect(() => {
    if (services.dmn) {
      setLoading(true);
      services.dmn.getDefinitions().then((defs) => setDefinitions(defs)).catch((err) => {
        console.error("DMN load error", err);
        setDefinitions([]);
      }).finally(() => setLoading(false));
    }
  }, [services.dmn]);
  useEffect(() => {
    if (data.decisionFile && definitions.length > 0) {
      const def = definitions.find((d) => d.id === data.decisionFile);
      if (def) setSelectedDef(def);
    }
  }, [data.decisionFile, definitions]);
  const handleFileChange = (fileId) => {
    onChange("decisionFile", fileId);
    onChange("inputMapping", {});
    const def = definitions.find((d) => d.id === fileId);
    setSelectedDef(def || null);
    if (def) {
      onChange("_outputSchema", def.outputs);
    }
  };
  const handleMappingChange = (inputName, variable) => {
    const newMapping = { ...data.inputMapping, [inputName]: variable };
    onChange("inputMapping", newMapping);
  };
  const handleDragStart = (e, variableName) => {
    e.dataTransfer.setData("text/plain", `\${${variableName}}`);
    e.dataTransfer.effectAllowed = "copy";
  };
  const uniqueContext = dedupeContextByName(context);
  const systemVars = uniqueContext.filter((v) => v.sourceNodeId === "system");
  const userVars = uniqueContext.filter((v) => v.sourceNodeId !== "system");
  const groupedUserVars = userVars.reduce((acc, v) => {
    const key = v.sourceNodeLabel || v.sourceNodeId;
    if (!acc[key]) acc[key] = [];
    acc[key].push(v);
    return acc;
  }, {});
  return /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col", children: [
    /* @__PURE__ */ jsxs("div", { className: "px-6 pt-6 pb-2 shrink-0 space-y-4", children: [
      /* @__PURE__ */ jsxs("div", { className: "p-3 bg-slate-50 dark:bg-slate-900/50 rounded-lg border border-slate-200 dark:border-slate-800 flex gap-3", children: [
        /* @__PURE__ */ jsx(Scale, { className: "text-slate-600 dark:text-slate-400 mt-0.5 shrink-0", size: 16 }),
        /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
          /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-slate-800 dark:text-slate-300", children: "Decision Rules" }),
          /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-600 dark:text-slate-400 leading-relaxed", children: "Select a DMN file to execute business rules. Map workflow variables to the decision inputs." })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider mb-1 block", children: "Rule File" }),
        /* @__PURE__ */ jsxs(
          "select",
          {
            value: data.decisionFile || "",
            onChange: (e) => handleFileChange(e.target.value),
            className: "w-full px-3 py-2 text-sm border rounded-lg bg-white dark:bg-slate-900 border-slate-300 dark:border-slate-700 focus:outline-none focus:border-teal-500 transition-all",
            disabled: loading,
            children: [
              /* @__PURE__ */ jsx("option", { value: "", children: "Select DMN File..." }),
              definitions.map((def) => /* @__PURE__ */ jsxs("option", { value: def.id, children: [
                def.name,
                " (",
                def.id,
                ")"
              ] }, def.id))
            ]
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "flex-1 min-h-0 flex px-6 pb-6 gap-6 pt-4", children: [
      /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto pr-2", children: selectedDef ? /* @__PURE__ */ jsxs("div", { className: "animate-in fade-in slide-in-from-top-2 duration-300 space-y-6", children: [
        /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
          /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-slate-700 dark:text-slate-300 uppercase tracking-wider border-b border-slate-100 dark:border-slate-800 pb-2", children: "Input Mapping" }),
          /* @__PURE__ */ jsx("div", { className: "space-y-3", children: selectedDef.inputs.map((input) => {
            var _a;
            return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1fr_auto_2fr] gap-3 items-center", children: [
              /* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0", children: [
                /* @__PURE__ */ jsx("span", { className: "text-xs font-mono font-bold text-slate-700 dark:text-slate-300 truncate", title: input.name, children: input.name }),
                /* @__PURE__ */ jsx("span", { className: "text-[9px] text-slate-400", children: input.type })
              ] }),
              /* @__PURE__ */ jsx(ArrowRight, { size: 12, className: "text-slate-300" }),
              /* @__PURE__ */ jsx(
                DroppableInput,
                {
                  value: ((_a = data.inputMapping) == null ? void 0 : _a[input.name]) || "",
                  onChange: (val) => handleMappingChange(input.name, val),
                  placeholder: "Drag variable or type..."
                }
              )
            ] }, input.name);
          }) })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
          /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-slate-700 dark:text-slate-300 uppercase tracking-wider border-b border-slate-100 dark:border-slate-800 pb-2", children: "Expected Outputs" }),
          /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: selectedDef.outputs.map((output) => /* @__PURE__ */ jsxs("div", { className: "p-2 bg-emerald-50 dark:bg-emerald-900/10 border border-emerald-100 dark:border-emerald-900 rounded text-xs", children: [
            /* @__PURE__ */ jsx("div", { className: "font-bold text-emerald-700 dark:text-emerald-400", children: output.name }),
            /* @__PURE__ */ jsx("div", { className: "text-[9px] text-emerald-600/70 dark:text-emerald-500/70", children: output.type })
          ] }, output.name)) }),
          /* @__PURE__ */ jsx(
            PropertyField,
            {
              config: {
                name: "resultVariable",
                label: "Map Result To Object (Optional)",
                type: "text",
                placeholder: "decisionResult",
                description: "If set, all outputs will be wrapped in this object."
              },
              value: data.resultVariable,
              onChange
            }
          )
        ] })
      ] }) : /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center text-slate-400 text-xs italic", children: "Select a DMN file to configure mappings." }) }),
      /* @__PURE__ */ jsxs("div", { className: "w-64 shrink-0 bg-slate-50 dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-xl overflow-hidden flex flex-col", children: [
        /* @__PURE__ */ jsxs("div", { className: "p-3 border-b border-slate-200 dark:border-slate-800 bg-slate-100 dark:bg-slate-950 flex items-center justify-between", children: [
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
            /* @__PURE__ */ jsx(Database, { size: 14, className: "text-slate-500" }),
            /* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-slate-700 dark:text-slate-300 uppercase", children: "Variables" })
          ] }),
          /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
            /* @__PURE__ */ jsx(
              "button",
              {
                onClick: () => setShowDebug(!showDebug),
                className: "p-1 text-slate-400 hover:text-slate-600 rounded",
                title: "Toggle Debug Info",
                children: /* @__PURE__ */ jsx(Info, { size: 12 })
              }
            ),
            /* @__PURE__ */ jsx("span", { className: "text-[9px] bg-slate-200 dark:bg-slate-800 text-slate-500 px-1.5 rounded-full", children: context.length })
          ] })
        ] }),
        /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-2 space-y-4", children: [
          context.length === 0 && /* @__PURE__ */ jsxs("div", { className: "p-4 text-center", children: [
            /* @__PURE__ */ jsx(TriangleAlert, { className: "mx-auto text-amber-400 mb-2", size: 20 }),
            /* @__PURE__ */ jsx("div", { className: "text-[10px] text-slate-400 italic mb-2", children: "No variables found." })
          ] }),
          Object.entries(groupedUserVars).map(([source, vars]) => /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
            /* @__PURE__ */ jsx("div", { className: "px-1 text-[10px] font-bold text-teal-600 dark:text-teal-400 uppercase tracking-wider truncate border-b border-slate-100 dark:border-slate-800 pb-1 mb-1", children: source }),
            vars.map((v, idx) => /* @__PURE__ */ jsx(
              "div",
              {
                draggable: true,
                onDragStart: (e) => handleDragStart(e, v.name),
                className: "p-2 bg-white dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-lg group hover:border-teal-500 transition-colors cursor-grab active:cursor-grabbing shadow-sm",
                children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
                  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 overflow-hidden", children: [
                    /* @__PURE__ */ jsx(GripVertical, { size: 10, className: "text-slate-300 group-hover:text-teal-500" }),
                    /* @__PURE__ */ jsx(Database, { size: 10, className: "text-teal-500" }),
                    /* @__PURE__ */ jsx("span", { className: "text-xs font-mono font-bold text-slate-700 dark:text-slate-300 truncate", title: v.name, children: v.name })
                  ] }),
                  /* @__PURE__ */ jsx("span", { className: "text-[9px] px-1.5 py-0.5 bg-slate-100 dark:bg-slate-800 rounded text-slate-500 uppercase shrink-0 font-medium", children: v.type })
                ] })
              },
              idx
            ))
          ] }, source)),
          systemVars.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1 pt-2 border-t border-slate-200 dark:border-slate-800", children: [
            /* @__PURE__ */ jsx("div", { className: "px-1 text-[10px] font-bold text-slate-400 uppercase tracking-wider truncate", children: "System" }),
            systemVars.map((v, idx) => /* @__PURE__ */ jsx(
              "div",
              {
                draggable: true,
                onDragStart: (e) => handleDragStart(e, v.name),
                className: "p-2 bg-slate-50 dark:bg-slate-900/50 border border-slate-100 dark:border-slate-800 rounded-lg opacity-75 hover:opacity-100 transition-opacity cursor-grab active:cursor-grabbing",
                children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
                  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 overflow-hidden", children: [
                    /* @__PURE__ */ jsx(Box, { size: 10, className: "text-slate-400" }),
                    /* @__PURE__ */ jsx("span", { className: "text-xs font-mono font-bold text-slate-600 dark:text-slate-400 truncate", title: v.name, children: v.name })
                  ] }),
                  /* @__PURE__ */ jsx("span", { className: "text-[9px] px-1.5 py-0.5 bg-white dark:bg-slate-950 rounded text-slate-400 uppercase shrink-0 font-medium border border-slate-100 dark:border-slate-800", children: v.type })
                ] })
              },
              idx
            ))
          ] })
        ] })
      ] })
    ] })
  ] });
};
const StartProcessTab = ({ data, onChange }) => {
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-4", children: [
    /* @__PURE__ */ jsxs("div", { className: "p-3 bg-emerald-50 dark:bg-emerald-900/20 rounded-lg border border-emerald-100 dark:border-emerald-900", children: [
      /* @__PURE__ */ jsx("p", { className: "text-xs font-bold text-emerald-800 dark:text-emerald-300", children: "Start Process Configuration" }),
      /* @__PURE__ */ jsx("p", { className: "text-[11px] text-emerald-700 dark:text-emerald-400 mt-1", children: "Configure how the host initiates this workflow." })
    ] }),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "startView", label: "Start View", type: "text", placeholder: "Workflow::GenericStartView", description: "UI component that renders the start form." },
        value: data.startView,
        onChange
      }
    ),
    /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "startRoles", label: "Allowed Roles", type: "text", placeholder: "* (all roles)", description: "Comma-separated roles or * for all." },
          value: data.startRoles,
          onChange
        }
      ),
      /* @__PURE__ */ jsx(
        PropertyField,
        {
          config: { name: "startStep", label: "Step", type: "text", placeholder: "1" },
          value: data.startStep,
          onChange
        }
      )
    ] }),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "startMode", label: "Mode", type: "select", options: [{ value: "end", label: "End" }, { value: "continue", label: "Continue" }], defaultValue: "end" },
        value: data.startMode,
        onChange
      }
    ),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "startDeduplication", label: "Deduplication Key", type: "text", placeholder: "Leave empty for none", description: "Prevents duplicate workflow instances." },
        value: data.startDeduplication,
        onChange
      }
    ),
    /* @__PURE__ */ jsx(
      PropertyField,
      {
        config: { name: "startExtensions", label: "Extensions (JSON)", type: "object", rows: 4 },
        value: data.startExtensions,
        onChange
      }
    )
  ] });
};
const TestPanel = ({ rules: rules2 }) => {
  const [open, setOpen] = useState(false);
  const [sample, setSample] = useState({ statusCode: "", transient: false, exceptionType: "", body: "" });
  const [result, setResult] = useState(null);
  const run = () => setResult(evaluateRuleSet(rules2, sample));
  return /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-slate-200 dark:border-slate-800", children: [
    /* @__PURE__ */ jsxs(
      "button",
      {
        type: "button",
        onClick: () => setOpen((o) => !o),
        className: "w-full flex items-center gap-2 px-3 py-2 text-sm font-medium text-slate-600 dark:text-slate-300",
        children: [
          open ? "▾" : "▸",
          " Test against a sample response"
        ]
      }
    ),
    open && /* @__PURE__ */ jsxs("div", { className: "p-3 border-t border-slate-100 dark:border-slate-800 space-y-3", children: [
      /* @__PURE__ */ jsx("p", { className: "text-[11px] text-slate-400", children: "Editor-side approximation of the executor's first-match evaluation. Set transient / status explicitly — the executor classifies those at runtime." }),
      /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Status code" }),
          /* @__PURE__ */ jsx("input", { value: sample.statusCode, onChange: (e) => setSample((s) => ({ ...s, statusCode: e.target.value })), placeholder: "409", className: INPUT_CLASS })
        ] }),
        /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Exception type" }),
          /* @__PURE__ */ jsx("input", { value: sample.exceptionType, onChange: (e) => setSample((s) => ({ ...s, exceptionType: e.target.value })), placeholder: "Aggregate.NotFound", className: INPUT_CLASS })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
        /* @__PURE__ */ jsx("input", { type: "checkbox", checked: !!sample.transient, onChange: (e) => setSample((s) => ({ ...s, transient: e.target.checked })) }),
        "Transient"
      ] }),
      /* @__PURE__ */ jsxs("div", { children: [
        /* @__PURE__ */ jsx("label", { className: LABEL_CLASS, children: "Body" }),
        /* @__PURE__ */ jsx(
          "textarea",
          {
            value: sample.body,
            onChange: (e) => setSample((s) => ({ ...s, body: e.target.value })),
            rows: 4,
            placeholder: '{"error":{"code":"content_filter"}}',
            className: `${INPUT_CLASS} font-mono`
          }
        )
      ] }),
      /* @__PURE__ */ jsxs(
        "button",
        {
          type: "button",
          onClick: run,
          className: "flex items-center gap-1.5 px-3 py-1.5 text-sm font-bold text-white bg-teal-600 hover:bg-teal-700 rounded-lg",
          children: [
            /* @__PURE__ */ jsx(Play, { size: 14 }),
            " Evaluate"
          ]
        }
      ),
      result && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-slate-50 dark:bg-slate-900/60 border border-slate-200 dark:border-slate-800 p-3 text-sm", children: [
        result.matchedIndex !== null ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-emerald-700 dark:text-emerald-400", children: [
          /* @__PURE__ */ jsx(CircleCheck, { size: 16 }),
          " Rule ",
          result.matchedIndex + 1,
          " matches ",
          /* @__PURE__ */ jsx(ArrowRight, { size: 14 }),
          " ",
          /* @__PURE__ */ jsx("span", { className: "font-mono", children: result.outcome })
        ] }) : /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-slate-600 dark:text-slate-300", children: [
          /* @__PURE__ */ jsx(ArrowRight, { size: 14 }),
          " Falls through to ",
          /* @__PURE__ */ jsx("span", { className: "font-mono", children: result.outcome })
        ] }),
        result.predicateError && /* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-center gap-1 text-[11px] text-amber-600 dark:text-amber-400", children: [
          /* @__PURE__ */ jsx(TriangleAlert, { size: 12 }),
          " Body predicate could not evaluate: ",
          result.predicateError
        ] })
      ] })
    ] })
  ] });
};
const ErrorHandlingTab = ({ data, onChange }) => {
  const { errorRulesets } = useEditorConfig();
  const lib2 = errorRulesets;
  const projectRuleSets = (lib2 == null ? void 0 : lib2.list) ?? [];
  const eh = data.errorHandling;
  const ref = getNodeRef(eh);
  const boundRuleSet = ref ? projectRuleSets.find((r) => r.id === ref) : void 0;
  const resolvedRules = boundRuleSet ? boundRuleSet.rules : getNodeRules(eh);
  const [editing, setEditing] = useState(false);
  const selectValue = eh === void 0 ? "default" : ref ? `ref:${ref}` : "inline";
  const setNodeEH = (next) => onChange("errorHandling", next);
  const handlePick = (value) => {
    if (value === "default") {
      setNodeEH(void 0);
      setEditing(false);
      return;
    }
    if (value === "inline") {
      setNodeEH({ rules: resolvedRules.length ? resolvedRules : [] });
      setEditing(true);
      return;
    }
    if (value === "new") {
      if (!lib2) {
        setNodeEH({ rules: [] });
        setEditing(true);
        return;
      }
      const created = lib2.create({ name: `Ruleset ${projectRuleSets.length + 1}`, rules: [], source: "custom" });
      setNodeEH({ ruleSetRef: created.id, rules: [] });
      setEditing(true);
      return;
    }
    if (value.startsWith("preset:")) {
      const preset = getPreset(value.slice("preset:".length));
      if (!preset) return;
      const rules2 = JSON.parse(JSON.stringify(preset.rules));
      if (lib2) {
        const created = lib2.create({ name: preset.name, rules: rules2, source: `from ${preset.name}` });
        setNodeEH({ ruleSetRef: created.id, rules: rules2 });
      } else {
        setNodeEH({ rules: rules2 });
      }
      setEditing(false);
      return;
    }
    if (value.startsWith("ref:")) {
      const id = value.slice("ref:".length);
      const rs = projectRuleSets.find((r) => r.id === id);
      setNodeEH({ ruleSetRef: id, rules: rs ? rs.rules : [] });
      setEditing(false);
      return;
    }
  };
  const handleRulesChange = (rules2) => {
    if (ref) {
      lib2 == null ? void 0 : lib2.update(ref, { rules: rules2 });
      setNodeEH({ ruleSetRef: ref, rules: rules2 });
    } else {
      setNodeEH({ rules: rules2 });
    }
  };
  const usage = ref && lib2 ? lib2.usageCount(ref) : 0;
  const hasLegacy = data.onException !== void 0 || data.retries !== void 0;
  const showConvertBanner = hasLegacy && eh === void 0;
  const editorHeading = useMemo(() => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
    /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-slate-700 dark:text-slate-200", children: boundRuleSet ? `«${boundRuleSet.name}»` : "Inline ruleset (this task only)" }),
    ref && usage > 0 && /* @__PURE__ */ jsxs("span", { className: "text-[11px] text-slate-400", children: [
      "used by ",
      usage,
      " node",
      usage === 1 ? "" : "s"
    ] })
  ] }), [boundRuleSet, ref, usage]);
  return /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-5 max-w-4xl", children: [
    /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
      /* @__PURE__ */ jsx(ShieldAlert, { size: 18, className: "text-teal-600" }),
      /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold text-slate-900 dark:text-slate-100", children: "Error handling for this task" })
    ] }),
    showConvertBanner && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-amber-200 dark:border-amber-900 bg-amber-50 dark:bg-amber-900/20 p-3 flex gap-3", children: [
      /* @__PURE__ */ jsx(Info, { size: 16, className: "text-amber-600 shrink-0 mt-0.5" }),
      /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
        /* @__PURE__ */ jsxs("p", { className: "text-xs text-amber-800 dark:text-amber-300", children: [
          "Legacy ",
          /* @__PURE__ */ jsx("span", { className: "font-mono", children: "On-Exception" }),
          " is ignored by the engine; this task uses default rules. Convert to assign a ruleset."
        ] }),
        /* @__PURE__ */ jsxs(
          "button",
          {
            type: "button",
            onClick: () => handlePick("new"),
            className: "flex items-center gap-1 px-2.5 py-1 text-xs font-bold rounded-md bg-amber-600 text-white hover:bg-amber-700",
            children: [
              /* @__PURE__ */ jsx(Sparkles, { size: 12 }),
              " Convert"
            ]
          }
        )
      ] })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
      /* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-slate-500 uppercase tracking-wider", children: "Ruleset" }),
      /* @__PURE__ */ jsxs("select", { value: selectValue, onChange: (e) => handlePick(e.target.value), className: INPUT_CLASS, children: [
        /* @__PURE__ */ jsx("option", { value: "default", children: "Default (none — engine defaults)" }),
        /* @__PURE__ */ jsx("option", { value: "inline", children: "Inline (custom for this task only)" }),
        /* @__PURE__ */ jsx("optgroup", { label: "Presets", children: ERROR_RULESET_PRESETS.map((p) => /* @__PURE__ */ jsx("option", { value: `preset:${p.key}`, children: p.name }, p.key)) }),
        projectRuleSets.length > 0 && /* @__PURE__ */ jsx("optgroup", { label: "Project rulesets", children: projectRuleSets.map((r) => /* @__PURE__ */ jsxs("option", { value: `ref:${r.id}`, children: [
          r.name,
          lib2 ? ` (used ${lib2.usageCount(r.id)}×)` : ""
        ] }, r.id)) }),
        /* @__PURE__ */ jsx("option", { value: "new", children: "+ New ruleset…" })
      ] })
    ] }),
    eh !== void 0 && (editing ? /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-teal-200 dark:border-teal-900 p-4", children: [
      /* @__PURE__ */ jsx(RuleEditor, { rules: resolvedRules, onChange: handleRulesChange, heading: editorHeading }),
      /* @__PURE__ */ jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsx(
        "button",
        {
          type: "button",
          onClick: () => setEditing(false),
          className: "px-3 py-1.5 text-sm font-bold text-white bg-teal-600 hover:bg-teal-700 rounded-lg",
          children: "Done"
        }
      ) })
    ] }) : /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-slate-200 dark:border-slate-800", children: [
      /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-3 py-2 border-b border-slate-100 dark:border-slate-800", children: [
        /* @__PURE__ */ jsxs("div", { className: "text-sm font-bold text-slate-700 dark:text-slate-200", children: [
          "Preview: ",
          boundRuleSet ? `«${boundRuleSet.name}»` : "inline",
          ref && usage > 0 && /* @__PURE__ */ jsxs("span", { className: "ml-2 text-[11px] font-normal text-slate-400", children: [
            "used by ",
            usage,
            " node",
            usage === 1 ? "" : "s"
          ] })
        ] }),
        /* @__PURE__ */ jsxs(
          "button",
          {
            type: "button",
            onClick: () => setEditing(true),
            className: "flex items-center gap-1 text-xs font-medium text-teal-600 hover:underline",
            children: [
              "Edit ruleset ",
              /* @__PURE__ */ jsx(ExternalLink, { size: 12 })
            ]
          }
        )
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "p-3 space-y-1", children: [
        resolvedRules.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-400", children: "No rules yet — click Edit to add some." }),
        resolvedRules.map((r, i) => {
          const s = summarizeRule(r);
          return /* @__PURE__ */ jsxs("div", { className: "text-xs text-slate-600 dark:text-slate-300 font-mono", children: [
            /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "WHEN" }),
            " ",
            s.when,
            " ",
            /* @__PURE__ */ jsx("span", { className: "text-slate-400", children: "→" }),
            " ",
            s.then
          ] }, i);
        }),
        /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-slate-400 pt-1", children: [
          '(defaults) transient→retry ∞ · else→throw "',
          "{surfaced}",
          '"'
        ] })
      ] })
    ] })),
    eh !== void 0 && resolvedRules.length > 0 && /* @__PURE__ */ jsx(TestPanel, { rules: resolvedRules }),
    ref && usage > 1 && /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-slate-400 flex items-center gap-1", children: [
      /* @__PURE__ */ jsx(Info, { size: 12 }),
      " Editing this ruleset updates all ",
      usage,
      " nodes that use it."
    ] })
  ] });
};
const defaultComponentRegistry = {
  "ConditionsTab": ConditionsTab,
  "RoutingTab": ConditionsTab,
  // Alias
  "EmailTemplateTab": EmailTemplateTab,
  "SmsTab": SmsTab,
  "FormBuilderTab": FormBuilderTab,
  "AssignmentsTab": AssignmentsTab,
  "TimerTab": TimerTab,
  "ScriptTab": ScriptTab,
  "MessageTab": (props) => React.createElement(MessageSignalTab, { ...props, type: "message" }),
  "MessageThrowTab": (props) => React.createElement(MessageSignalTab, { ...props, type: "message", isThrowing: true }),
  "SignalTab": (props) => React.createElement(MessageSignalTab, { ...props, type: "signal" }),
  "SignalThrowTab": (props) => React.createElement(MessageSignalTab, { ...props, type: "signal", isThrowing: true }),
  "DatabaseTab": DatabaseTab,
  "CallActivityTab": CallActivityTab,
  "RestConfigTab": HttpTab,
  "LLMConfigTab": LLMConfigTab,
  "UserTaskExtensionTab": UserTaskExtensionTab,
  "ExtractionTab": ExtractionTab,
  "McpConfigTab": McpTab,
  "DecisionConfigTab": DecisionTab,
  "StartProcessTab": StartProcessTab,
  "ErrorHandlingTab": ErrorHandlingTab
};
const registry = {};
let cachedNodeTypes = null;
let cachedPropertyRegistry = null;
function invalidateCache() {
  cachedNodeTypes = null;
  cachedPropertyRegistry = null;
}
function registerNode(key, config) {
  registry[key] = config;
  invalidateCache();
}
function registerNodes(nodes) {
  Object.entries(nodes).forEach(([key, config]) => {
    registry[key] = config;
  });
  invalidateCache();
}
function getNodeTypes() {
  if (cachedNodeTypes) return cachedNodeTypes;
  const result = {};
  for (const [key, reg] of Object.entries(registry)) {
    result[key] = reg.nodeType;
  }
  cachedNodeTypes = result;
  return result;
}
function getPropertyRegistry() {
  if (cachedPropertyRegistry) return cachedPropertyRegistry;
  const result = {};
  for (const [key, reg] of Object.entries(registry)) {
    result[key] = reg.properties;
  }
  cachedPropertyRegistry = result;
  return result;
}
function getEngineType(editorType) {
  const reg = registry[editorType];
  if (reg == null ? void 0 : reg.engineType) return reg.engineType;
  return editorType;
}
function getExtensionHandler(editorType) {
  var _a;
  return (_a = registry[editorType]) == null ? void 0 : _a.extension;
}
function getDefaultData(editorType) {
  var _a;
  return (_a = registry[editorType]) == null ? void 0 : _a.defaultData;
}
function resolveEditorType(engineType, extensions) {
  for (const [key, reg] of Object.entries(registry)) {
    const ext = reg.extension;
    if (ext && reg.engineType === engineType) {
      if (extensions == null ? void 0 : extensions.some((e) => e.Name === ext.name)) {
        return key;
      }
    }
  }
  return null;
}
function getHandledFields(editorType) {
  var _a, _b;
  return ((_b = (_a = registry[editorType]) == null ? void 0 : _a.extension) == null ? void 0 : _b.fields) || [];
}
const commonFields = [
  { name: "label", label: "Display Label", type: "text", validation: { required: true } },
  { name: "description", label: "Description", type: "textarea", rows: 2 }
  // actorType is NOT editable from the properties panel — it is set by
  // dragging the node into a swimlane. See Swimlanes component.
];
const errorHandlingFields = [
  {
    name: "onException",
    label: "On Exception",
    type: "select",
    options: [
      { value: "0", label: "Retry" },
      { value: "1", label: "Ignore" },
      { value: "2", label: "Throw" }
    ],
    defaultValue: "0",
    description: "Behavior when the task throws an exception."
  },
  {
    name: "retries",
    label: "Retries",
    type: "number",
    defaultValue: 3,
    description: "Number of retry attempts before failing.",
    condition: { field: "onException", operator: "equals", value: "0" }
  }
];
const serviceTaskCommonFields = [
  ...commonFields,
  ...errorHandlingFields
];
const boundaryFields = [
  ...commonFields,
  {
    name: "cancelActivity",
    label: "Interrupting",
    type: "boolean",
    description: "Cancel the attached activity when triggered",
    defaultValue: true
  }
];
const boundaryFieldsInterruptingOnly = [
  ...commonFields
];
const COLORS = {
  Start: "#059669",
  End: "#64748b",
  Error: "#dc2626",
  Task: "#0f766e",
  System: "#334155",
  Gateway: "#d97706",
  Event: "#2563eb",
  Sub: "#475569"
};
registerNode("BlankStartEvent", {
  nodeType: { type: "BlankStartEvent", label: "Start Event", color: COLORS.Start, icon: "Play", category: NodeCategory.Start, description: "Generic start point" },
  properties: { type: "BlankStartEvent", tabs: [
    { id: "properties", label: "General", fields: commonFields },
    { id: "startprocess", label: "Start Config", fields: [], specialComponent: "StartProcessTab" }
  ] }
});
registerNode("FormStartEvent", {
  nodeType: { type: "FormStartEvent", label: "Form Start", color: COLORS.Start, icon: "FileJson", category: NodeCategory.Start, description: "Manual process start with form" },
  properties: {
    type: "FormStartEvent",
    tabs: [
      { id: "properties", label: "General", fields: [...commonFields, { name: "formTitle", label: "Form Title", type: "text" }] },
      { id: "form", label: "Form Builder", fields: [], specialComponent: "FormBuilderTab", layout: "fullscreen" },
      { id: "startprocess", label: "Start Config", fields: [], specialComponent: "StartProcessTab" }
    ]
  },
  engineType: "BlankStartEvent",
  defaultData: { formSchema: { fields: [] }, formTitle: "New Form" }
});
registerNode("TimerStartEvent", {
  nodeType: { type: "TimerStartEvent", label: "Timer Start", color: COLORS.Start, icon: "Clock", category: NodeCategory.Start, description: "Timer-triggered start" },
  properties: {
    type: "TimerStartEvent",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      { id: "timer", label: "Timer", fields: [], specialComponent: "TimerTab" },
      { id: "startprocess", label: "Start Config", fields: [], specialComponent: "StartProcessTab" }
    ]
  }
});
registerNode("MessageStartEvent", {
  nodeType: { type: "MessageStartEvent", label: "Message Start", color: COLORS.Start, icon: "Mail", category: NodeCategory.Start, description: "Message-triggered start" },
  properties: {
    type: "MessageStartEvent",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      { id: "message", label: "Message", fields: [], specialComponent: "MessageTab" },
      { id: "startprocess", label: "Start Config", fields: [], specialComponent: "StartProcessTab" }
    ]
  }
});
registerNode("SignalStartEvent", {
  nodeType: { type: "SignalStartEvent", label: "Signal Start", color: COLORS.Start, icon: "Zap", category: NodeCategory.Start, description: "Signal-triggered start" },
  properties: {
    type: "SignalStartEvent",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      { id: "signal", label: "Signal", fields: [], specialComponent: "SignalTab" },
      { id: "startprocess", label: "Start Config", fields: [], specialComponent: "StartProcessTab" }
    ]
  }
});
registerNode("BlankEndEvent", {
  nodeType: { type: "BlankEndEvent", label: "End", color: COLORS.End, icon: "Square", category: NodeCategory.End, description: "Process completion" },
  properties: { type: "BlankEndEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }] }
});
registerNode("ErrorEndEvent", {
  nodeType: { type: "ErrorEndEvent", label: "Error End", color: COLORS.Error, icon: "AlertTriangle", category: NodeCategory.End, description: "Error termination" },
  properties: {
    type: "ErrorEndEvent",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      {
        id: "error",
        label: "Error Config",
        fields: [
          { name: "errorMessage", label: "Error Message", type: "text", placeholder: "e.g. Payment Failed", description: "A human-readable message for the error." },
          { name: "errorPayload", label: "Error Payload (Script)", type: "expression", rows: 6, placeholder: "{\n  code: 500,\n  reason: variables.reason\n}", description: "Expression returning error data." }
        ]
      }
    ]
  }
});
registerNode("MessageEndEvent", {
  nodeType: { type: "MessageEndEvent", label: "Message End", color: COLORS.End, icon: "Upload", category: NodeCategory.End, description: "Message termination" },
  properties: { type: "MessageEndEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "message", label: "Message", fields: [], specialComponent: "MessageThrowTab" }] }
});
registerNode("SignalEndEvent", {
  nodeType: { type: "SignalEndEvent", label: "Signal End", color: COLORS.End, icon: "Radio", category: NodeCategory.End, description: "Signal termination" },
  properties: { type: "SignalEndEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "signal", label: "Signal", fields: [], specialComponent: "SignalThrowTab" }] }
});
registerNode("TerminateEndEvent", {
  nodeType: { type: "TerminateEndEvent", label: "Terminate End", color: COLORS.Error, icon: "StopCircle", category: NodeCategory.End, description: "Terminate all instances" },
  properties: { type: "TerminateEndEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }] }
});
registerNode("UserTask", {
  nodeType: { type: "UserTask", label: "User Task", color: COLORS.Task, icon: "User", category: NodeCategory.Task, description: "Requires human interaction" },
  properties: {
    type: "UserTask",
    tabs: [
      { id: "properties", label: "General", fields: [...serviceTaskCommonFields, { name: "userTaskType", label: "Task Type", type: "select", options: [{ value: "generic", label: "Generic" }, { value: "produce", label: "Badge Production" }, { value: "smartbridge", label: "SmartBridge" }, { value: "receipt", label: "Receipt View" }] }] },
      { id: "form", label: "Form Builder", fields: [], specialComponent: "FormBuilderTab", layout: "fullscreen" },
      { id: "assignments", label: "Assignments", fields: [], specialComponent: "AssignmentsTab" },
      { id: "extensions", label: "Extensions", fields: [], specialComponent: "UserTaskExtensionTab", layout: "fullscreen" }
    ]
  },
  engineType: "UserTask",
  defaultData: { formSchema: { fields: [] }, formTitle: "New Form" },
  extension: {
    name: "PSS.GenericUserTask",
    fields: ["userTaskType", "assignments", "extensionConfig", "extensionRelations", "productionProcessKey", "productionOperations", "jobScript", "assignee", "priority", "onException", "retries"],
    create: () => null,
    // UserTask uses special handling - set in pssHelper
    parse: () => {
    }
    // UserTask uses special handling - set in pssHelper
  }
});
registerNode("ScriptTask", {
  nodeType: { type: "ScriptTask", label: "Script Task", color: COLORS.System, icon: "FileJson", category: NodeCategory.Task, description: "Executes custom code" },
  properties: {
    type: "ScriptTask",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      { id: "script", label: "Script", fields: [], specialComponent: "ScriptTab", layout: "fullscreen" }
    ]
  }
});
registerNode("ServiceTaskREST", {
  nodeType: { type: "ServiceTaskREST", label: "REST Service", color: COLORS.System, icon: "Globe", category: NodeCategory.Task, description: "REST API integration" },
  properties: {
    type: "ServiceTaskREST",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "http", label: "HTTP Config", fields: [], specialComponent: "RestConfigTab", layout: "fullscreen" },
      { id: "extraction", label: "Extraction", fields: [], specialComponent: "ExtractionTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  defaultData: { method: "GET", resultVariable: "apiResult", headers: { "Content-Type": "application/json" } },
  extension: {
    name: "PSS.RestTask",
    fields: ["restTopic", "service", "endpoint", "method", "requestBody", "headers", "authentication", "bearerToken", "apiKey", "onException", "retries", "errorHandling"],
    create: () => null,
    // Actual functions stay in pssHelper
    parse: () => {
    }
  }
});
registerNode("ServiceTaskLLM", {
  nodeType: { type: "ServiceTaskLLM", label: "LLM Service", color: COLORS.System, icon: "Bot", category: NodeCategory.Task, description: "AI/LLM integration" },
  properties: {
    type: "ServiceTaskLLM",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "llm", label: "LLM Config", fields: [], specialComponent: "LLMConfigTab", layout: "fullscreen" },
      { id: "extraction", label: "Extraction", fields: [], specialComponent: "ExtractionTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.AgentTask",
    fields: ["model", "systemPrompt", "userPrompt", "outputVariable", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("ServiceTaskRules", {
  nodeType: { type: "ServiceTaskRules", label: "Rules Task", color: COLORS.System, icon: "Scale", category: NodeCategory.Task, description: "Execute DMN rules" },
  properties: {
    type: "ServiceTaskRules",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "decision", label: "Decision Config", fields: [], specialComponent: "DecisionConfigTab", layout: "fullscreen" },
      { id: "extraction", label: "Extraction", fields: [], specialComponent: "ExtractionTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.DecisionTask",
    fields: ["decisionFile", "inputMapping", "_outputSchema", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("ServiceTaskEmail", {
  nodeType: { type: "ServiceTaskEmail", label: "Email Service", color: COLORS.System, icon: "Mail", category: NodeCategory.Task, description: "Email sending" },
  properties: {
    type: "ServiceTaskEmail",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "email", label: "Email Template", fields: [], specialComponent: "EmailTemplateTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.EmailTask",
    fields: ["fromEmail", "fromName", "to", "toNames", "cc", "ccNames", "bcc", "bccNames", "subject", "body", "isHtml", "attachments", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("ServiceTaskSMS", {
  nodeType: { type: "ServiceTaskSMS", label: "SMS Service", color: COLORS.System, icon: "Smartphone", category: NodeCategory.Task, description: "Send text messages" },
  properties: {
    type: "ServiceTaskSMS",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "sms", label: "SMS Config", fields: [], specialComponent: "SmsTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.SmsTask",
    fields: ["toPhone", "message", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("ServiceTaskDB", {
  nodeType: { type: "ServiceTaskDB", label: "Database Service", color: COLORS.System, icon: "Database", category: NodeCategory.Task, description: "Database operations" },
  properties: {
    type: "ServiceTaskDB",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "database", label: "Database", fields: [], specialComponent: "DatabaseTab", layout: "fullscreen" },
      { id: "extraction", label: "Extraction", fields: [], specialComponent: "ExtractionTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.DatabaseTask",
    fields: ["connectionId", "queryType", "query", "timeout", "parameters", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("ServiceTaskMCP", {
  nodeType: { type: "ServiceTaskMCP", label: "MCP Service", color: COLORS.System, icon: "Server", category: NodeCategory.Task, description: "Model Context Protocol client" },
  properties: {
    type: "ServiceTaskMCP",
    tabs: [
      { id: "properties", label: "General", fields: serviceTaskCommonFields },
      { id: "errorHandling", label: "Error Handling", fields: [], specialComponent: "ErrorHandlingTab", layout: "fullscreen" },
      { id: "mcp", label: "MCP Config", fields: [], specialComponent: "McpConfigTab", layout: "fullscreen" },
      { id: "extraction", label: "Extraction", fields: [], specialComponent: "ExtractionTab", layout: "fullscreen" }
    ]
  },
  engineType: "ServiceTask",
  extension: {
    name: "PSS.McpTask",
    fields: ["mcpServerUrl", "mcpServerName", "mcpOperation", "mcpToolName", "mcpToolArguments", "mcpResourceUri", "mcpPromptName", "mcpPromptArguments", "onException", "retries", "errorHandling"],
    create: () => null,
    parse: () => {
    }
  }
});
registerNode("XorGateway", {
  nodeType: { type: "XorGateway", label: "Exclusive Gateway", color: COLORS.Gateway, icon: "GitFork", category: NodeCategory.Gateway, description: "Single path selection" },
  properties: {
    type: "XorGateway",
    tabs: [
      { id: "properties", label: "General", fields: [...commonFields, { name: "isMerging", label: "Is Merging", type: "boolean" }] },
      { id: "routing", label: "Routing", fields: [], specialComponent: "ConditionsTab", layout: "fullscreen" }
    ]
  },
  defaultData: { outputs: ["default"], conditions: [{ path: 0, label: "default", expression: "", description: "Default path" }], evaluationOrder: "sequential" }
});
registerNode("ParallelGateway", {
  nodeType: { type: "ParallelGateway", label: "Parallel Gateway", color: COLORS.Gateway, icon: "Plus", category: NodeCategory.Gateway, description: "Parallel execution" },
  properties: {
    type: "ParallelGateway",
    tabs: [
      { id: "properties", label: "General", fields: [...commonFields, { name: "isMerging", label: "Is Merging", type: "boolean" }] },
      { id: "routing", label: "Config", fields: [], specialComponent: "ConditionsTab", layout: "fullscreen" }
    ]
  }
});
registerNode("InclusiveGateway", {
  nodeType: { type: "InclusiveGateway", label: "Inclusive Gateway", color: COLORS.Gateway, icon: "Circle", category: NodeCategory.Gateway, description: "Multi-path routing" },
  properties: {
    type: "InclusiveGateway",
    tabs: [
      { id: "properties", label: "General", fields: [...commonFields, { name: "isMerging", label: "Is Merging", type: "boolean" }] },
      { id: "routing", label: "Routing", fields: [], specialComponent: "ConditionsTab", layout: "fullscreen" }
    ]
  },
  defaultData: { outputs: ["default"], conditions: [{ path: 0, label: "default", expression: "", description: "Default path" }], evaluationOrder: "parallel" }
});
registerNode("EventBasedGateway", {
  nodeType: { type: "EventBasedGateway", label: "Event Gateway", color: COLORS.Gateway, icon: "Router", category: NodeCategory.Gateway, description: "Event-driven routing", disabled: true },
  properties: { type: "EventBasedGateway", tabs: [{ id: "properties", label: "General", fields: commonFields }] }
});
registerNode("SubProcess", {
  nodeType: { type: "SubProcess", label: "Sub Process", color: COLORS.Sub, icon: "Layers", category: NodeCategory.Activity, description: "Embedded subprocess" },
  properties: { type: "SubProcess", tabs: [{ id: "properties", label: "General", fields: [
    ...commonFields,
    { name: "resultVariable", label: "Result Variable", type: "text", placeholder: "subProcessResult", description: "Variable to store the returned values from the subprocess as an object." },
    { name: "sequentialLoop", label: "Sequential Loop", type: "boolean", description: "If looping, execute iterations sequentially instead of parallel." },
    { name: "collectionName", label: "Collection Name", type: "text", placeholder: "myList", description: "Variable containing the collection to iterate over." },
    { name: "elementName", label: "Element Name", type: "text", placeholder: "item", description: "Variable name for the current loop element." }
  ] }] }
});
registerNode("CallActivity", {
  nodeType: { type: "CallActivity", label: "Call Activity", color: COLORS.Sub, icon: "ExternalLink", category: NodeCategory.Activity, description: "Call external process" },
  properties: {
    type: "CallActivity",
    tabs: [
      { id: "properties", label: "General", fields: commonFields },
      { id: "call", label: "Process Call", fields: [], specialComponent: "CallActivityTab", layout: "fullscreen" }
    ]
  },
  engineType: "CallActivity"
});
registerNode("IntermediateCatchMessageEvent", {
  nodeType: { type: "IntermediateCatchMessageEvent", label: "Catch Message", color: COLORS.Event, icon: "Mail", category: NodeCategory.Intermediate, description: "Waits for message" },
  properties: { type: "IntermediateCatchMessageEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "message", label: "Message", fields: [], specialComponent: "MessageTab" }] }
});
registerNode("IntermediateCatchSignalEvent", {
  nodeType: { type: "IntermediateCatchSignalEvent", label: "Catch Signal", color: COLORS.Event, icon: "Zap", category: NodeCategory.Intermediate, description: "Waits for signal" },
  properties: { type: "IntermediateCatchSignalEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "signal", label: "Signal", fields: [], specialComponent: "SignalTab" }] }
});
registerNode("IntermediateCatchTimerEvent", {
  nodeType: { type: "IntermediateCatchTimerEvent", label: "Catch Timer", color: COLORS.Event, icon: "Clock", category: NodeCategory.Intermediate, description: "Waits for timer" },
  properties: { type: "IntermediateCatchTimerEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "timer", label: "Timer", fields: [], specialComponent: "TimerTab" }] }
});
registerNode("IntermediateThrowMessageEvent", {
  nodeType: { type: "IntermediateThrowMessageEvent", label: "Throw Message", color: COLORS.Event, icon: "Send", category: NodeCategory.Intermediate, description: "Sends message" },
  properties: { type: "IntermediateThrowMessageEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "message", label: "Message", fields: [], specialComponent: "MessageThrowTab" }] }
});
registerNode("IntermediateThrowSignalEvent", {
  nodeType: { type: "IntermediateThrowSignalEvent", label: "Throw Signal", color: COLORS.Event, icon: "Radio", category: NodeCategory.Intermediate, description: "Throws signal" },
  properties: { type: "IntermediateThrowSignalEvent", tabs: [{ id: "properties", label: "General", fields: commonFields }, { id: "signal", label: "Signal", fields: [], specialComponent: "SignalThrowTab" }] }
});
registerNode("ErrorBoundaryEvent", {
  nodeType: { type: "ErrorBoundaryEvent", label: "Error Boundary", color: COLORS.Error, icon: "AlertTriangle", category: NodeCategory.Boundary, description: "Handles errors" },
  properties: {
    type: "ErrorBoundaryEvent",
    tabs: [{
      id: "properties",
      label: "General",
      fields: [
        ...boundaryFieldsInterruptingOnly,
        { name: "exceptionType", label: "Error Name (Catch-all if empty)", type: "text", placeholder: "e.g. ValidationError", description: "Leave empty to catch all errors." }
      ]
    }]
  },
  defaultData: { cancelActivity: true }
});
registerNode("MessageBoundaryEvent", {
  nodeType: { type: "MessageBoundaryEvent", label: "Message Boundary", color: COLORS.Event, icon: "Mail", category: NodeCategory.Boundary, description: "Handles messages" },
  properties: { type: "MessageBoundaryEvent", tabs: [{ id: "properties", label: "General", fields: boundaryFields }, { id: "message", label: "Message", fields: [], specialComponent: "MessageTab" }] }
});
registerNode("SignalBoundaryEvent", {
  nodeType: { type: "SignalBoundaryEvent", label: "Signal Boundary", color: COLORS.Event, icon: "Zap", category: NodeCategory.Boundary, description: "Handles signals" },
  properties: { type: "SignalBoundaryEvent", tabs: [{ id: "properties", label: "General", fields: boundaryFields }, { id: "signal", label: "Signal", fields: [], specialComponent: "SignalTab" }] }
});
registerNode("TimerBoundaryEvent", {
  nodeType: { type: "TimerBoundaryEvent", label: "Timer Boundary", color: COLORS.Event, icon: "Clock", category: NodeCategory.Boundary, description: "Handles timeouts" },
  properties: { type: "TimerBoundaryEvent", tabs: [{ id: "properties", label: "General", fields: boundaryFieldsInterruptingOnly }, { id: "timer", label: "Timer", fields: [], specialComponent: "TimerTab" }] },
  defaultData: { cancelActivity: true }
});
const MOCK_PERSONS = Array.from({ length: 50 }).map((_, i) => ({
  id: `p${i + 1}`,
  name: `Person ${i + 1}`,
  subtitle: `person${i + 1}@company.com`,
  avatar: `P${i + 1}`
}));
const MOCK_GROUPS = [
  { id: "grp_eng", name: "Engineering", subtitle: "Software Development", avatar: "EN" },
  { id: "grp_hr", name: "Human Resources", subtitle: "Personnel Management", avatar: "HR" },
  { id: "grp_sales", name: "Sales", subtitle: "Global Sales Team", avatar: "SA" },
  { id: "grp_marketing", name: "Marketing", subtitle: "Brand & Growth", avatar: "MK" },
  { id: "grp_it", name: "IT Support", subtitle: "Internal Infrastructure", avatar: "IT" },
  { id: "grp_finance", name: "Finance", subtitle: "Accounting & Payroll", avatar: "FN" }
];
const MOCK_ROLES = [
  { id: "role_admin", name: "Administrator", subtitle: "System Access", avatar: "AD" },
  { id: "role_manager", name: "Manager", subtitle: "Team Lead", avatar: "MG" },
  { id: "role_user", name: "Standard User", subtitle: "Basic Access", avatar: "US" },
  { id: "role_viewer", name: "Viewer", subtitle: "Read-only Access", avatar: "VW" },
  { id: "role_editor", name: "Editor", subtitle: "Content Creator", avatar: "ED" }
];
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
class MockDirectoryService {
  async search(data, params) {
    await delay(300 + Math.random() * 200);
    const filtered = data.filter(
      (item) => item.name.toLowerCase().includes(params.query.toLowerCase()) || item.id.toLowerCase().includes(params.query.toLowerCase())
    );
    if (params.sortBy) {
      filtered.sort((a, b) => {
        const valA = a[params.sortBy] || "";
        const valB = b[params.sortBy] || "";
        return params.sortDir === "desc" ? valB.localeCompare(valA) : valA.localeCompare(valB);
      });
    }
    const start = (params.page - 1) * params.pageSize;
    const end = start + params.pageSize;
    const items = filtered.slice(start, end);
    return {
      items,
      total: filtered.length,
      hasMore: end < filtered.length
    };
  }
  async getPersons(params) {
    return this.search(MOCK_PERSONS, params);
  }
  async getGroups(params) {
    return this.search(MOCK_GROUPS, params);
  }
  async getRoles(params) {
    return this.search(MOCK_ROLES, params);
  }
  async getItemById(type, id) {
    await delay(100);
    const source = type === "person" ? MOCK_PERSONS : type === "group" ? MOCK_GROUPS : MOCK_ROLES;
    return source.find((i) => i.id === id);
  }
}
const directoryService = new MockDirectoryService();
const mockDmnFiles = [
  {
    id: "risk_assessment.dmn",
    name: "Risk Assessment",
    inputs: [
      { name: "amount", type: "number" },
      { name: "customerType", type: "string" }
    ],
    outputs: [
      { name: "riskScore", type: "number" },
      { name: "riskLevel", type: "string" }
    ]
  },
  {
    id: "discount_rules.dmn",
    name: "Discount Rules",
    inputs: [
      { name: "cartTotal", type: "number" },
      { name: "couponCode", type: "string" }
    ],
    outputs: [
      { name: "discountPercent", type: "number" }
    ]
  },
  {
    id: "loan_eligibility.dmn",
    name: "Loan Eligibility",
    inputs: [
      { name: "creditScore", type: "number" },
      { name: "annualIncome", type: "number" },
      { name: "loanAmount", type: "number" }
    ],
    outputs: [
      { name: "isEligible", type: "boolean" },
      { name: "interestRate", type: "number" }
    ]
  }
];
class DmnService {
  constructor(definitions = mockDmnFiles) {
    this.definitions = definitions;
  }
  async getDefinitions() {
    return new Promise((resolve) => setTimeout(() => resolve(this.definitions), 500));
  }
  async getDefinitionById(id) {
    return new Promise((resolve) => setTimeout(() => resolve(this.definitions.find((d) => d.id === id)), 200));
  }
}
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
function getDefaultExportFromCjs(x) {
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
}
function commonjsRequire(path) {
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
}
var _listCacheClear;
var hasRequired_listCacheClear;
function require_listCacheClear() {
  if (hasRequired_listCacheClear) return _listCacheClear;
  hasRequired_listCacheClear = 1;
  function listCacheClear() {
    this.__data__ = [];
    this.size = 0;
  }
  _listCacheClear = listCacheClear;
  return _listCacheClear;
}
var eq_1;
var hasRequiredEq;
function requireEq() {
  if (hasRequiredEq) return eq_1;
  hasRequiredEq = 1;
  function eq(value, other) {
    return value === other || value !== value && other !== other;
  }
  eq_1 = eq;
  return eq_1;
}
var _assocIndexOf;
var hasRequired_assocIndexOf;
function require_assocIndexOf() {
  if (hasRequired_assocIndexOf) return _assocIndexOf;
  hasRequired_assocIndexOf = 1;
  var eq = requireEq();
  function assocIndexOf(array, key) {
    var length = array.length;
    while (length--) {
      if (eq(array[length][0], key)) {
        return length;
      }
    }
    return -1;
  }
  _assocIndexOf = assocIndexOf;
  return _assocIndexOf;
}
var _listCacheDelete;
var hasRequired_listCacheDelete;
function require_listCacheDelete() {
  if (hasRequired_listCacheDelete) return _listCacheDelete;
  hasRequired_listCacheDelete = 1;
  var assocIndexOf = require_assocIndexOf();
  var arrayProto = Array.prototype;
  var splice = arrayProto.splice;
  function listCacheDelete(key) {
    var data = this.__data__, index2 = assocIndexOf(data, key);
    if (index2 < 0) {
      return false;
    }
    var lastIndex = data.length - 1;
    if (index2 == lastIndex) {
      data.pop();
    } else {
      splice.call(data, index2, 1);
    }
    --this.size;
    return true;
  }
  _listCacheDelete = listCacheDelete;
  return _listCacheDelete;
}
var _listCacheGet;
var hasRequired_listCacheGet;
function require_listCacheGet() {
  if (hasRequired_listCacheGet) return _listCacheGet;
  hasRequired_listCacheGet = 1;
  var assocIndexOf = require_assocIndexOf();
  function listCacheGet(key) {
    var data = this.__data__, index2 = assocIndexOf(data, key);
    return index2 < 0 ? void 0 : data[index2][1];
  }
  _listCacheGet = listCacheGet;
  return _listCacheGet;
}
var _listCacheHas;
var hasRequired_listCacheHas;
function require_listCacheHas() {
  if (hasRequired_listCacheHas) return _listCacheHas;
  hasRequired_listCacheHas = 1;
  var assocIndexOf = require_assocIndexOf();
  function listCacheHas(key) {
    return assocIndexOf(this.__data__, key) > -1;
  }
  _listCacheHas = listCacheHas;
  return _listCacheHas;
}
var _listCacheSet;
var hasRequired_listCacheSet;
function require_listCacheSet() {
  if (hasRequired_listCacheSet) return _listCacheSet;
  hasRequired_listCacheSet = 1;
  var assocIndexOf = require_assocIndexOf();
  function listCacheSet(key, value) {
    var data = this.__data__, index2 = assocIndexOf(data, key);
    if (index2 < 0) {
      ++this.size;
      data.push([key, value]);
    } else {
      data[index2][1] = value;
    }
    return this;
  }
  _listCacheSet = listCacheSet;
  return _listCacheSet;
}
var _ListCache;
var hasRequired_ListCache;
function require_ListCache() {
  if (hasRequired_ListCache) return _ListCache;
  hasRequired_ListCache = 1;
  var listCacheClear = require_listCacheClear(), listCacheDelete = require_listCacheDelete(), listCacheGet = require_listCacheGet(), listCacheHas = require_listCacheHas(), listCacheSet = require_listCacheSet();
  function ListCache(entries) {
    var index2 = -1, length = entries == null ? 0 : entries.length;
    this.clear();
    while (++index2 < length) {
      var entry = entries[index2];
      this.set(entry[0], entry[1]);
    }
  }
  ListCache.prototype.clear = listCacheClear;
  ListCache.prototype["delete"] = listCacheDelete;
  ListCache.prototype.get = listCacheGet;
  ListCache.prototype.has = listCacheHas;
  ListCache.prototype.set = listCacheSet;
  _ListCache = ListCache;
  return _ListCache;
}
var _stackClear;
var hasRequired_stackClear;
function require_stackClear() {
  if (hasRequired_stackClear) return _stackClear;
  hasRequired_stackClear = 1;
  var ListCache = require_ListCache();
  function stackClear() {
    this.__data__ = new ListCache();
    this.size = 0;
  }
  _stackClear = stackClear;
  return _stackClear;
}
var _stackDelete;
var hasRequired_stackDelete;
function require_stackDelete() {
  if (hasRequired_stackDelete) return _stackDelete;
  hasRequired_stackDelete = 1;
  function stackDelete(key) {
    var data = this.__data__, result = data["delete"](key);
    this.size = data.size;
    return result;
  }
  _stackDelete = stackDelete;
  return _stackDelete;
}
var _stackGet;
var hasRequired_stackGet;
function require_stackGet() {
  if (hasRequired_stackGet) return _stackGet;
  hasRequired_stackGet = 1;
  function stackGet(key) {
    return this.__data__.get(key);
  }
  _stackGet = stackGet;
  return _stackGet;
}
var _stackHas;
var hasRequired_stackHas;
function require_stackHas() {
  if (hasRequired_stackHas) return _stackHas;
  hasRequired_stackHas = 1;
  function stackHas(key) {
    return this.__data__.has(key);
  }
  _stackHas = stackHas;
  return _stackHas;
}
var _freeGlobal;
var hasRequired_freeGlobal;
function require_freeGlobal() {
  if (hasRequired_freeGlobal) return _freeGlobal;
  hasRequired_freeGlobal = 1;
  var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
  _freeGlobal = freeGlobal;
  return _freeGlobal;
}
var _root;
var hasRequired_root;
function require_root() {
  if (hasRequired_root) return _root;
  hasRequired_root = 1;
  var freeGlobal = require_freeGlobal();
  var freeSelf = typeof self == "object" && self && self.Object === Object && self;
  var root = freeGlobal || freeSelf || Function("return this")();
  _root = root;
  return _root;
}
var _Symbol;
var hasRequired_Symbol;
function require_Symbol() {
  if (hasRequired_Symbol) return _Symbol;
  hasRequired_Symbol = 1;
  var root = require_root();
  var Symbol2 = root.Symbol;
  _Symbol = Symbol2;
  return _Symbol;
}
var _getRawTag;
var hasRequired_getRawTag;
function require_getRawTag() {
  if (hasRequired_getRawTag) return _getRawTag;
  hasRequired_getRawTag = 1;
  var Symbol2 = require_Symbol();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  var nativeObjectToString = objectProto.toString;
  var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
  function getRawTag(value) {
    var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
    try {
      value[symToStringTag] = void 0;
      var unmasked = true;
    } catch (e) {
    }
    var result = nativeObjectToString.call(value);
    if (unmasked) {
      if (isOwn) {
        value[symToStringTag] = tag;
      } else {
        delete value[symToStringTag];
      }
    }
    return result;
  }
  _getRawTag = getRawTag;
  return _getRawTag;
}
var _objectToString;
var hasRequired_objectToString;
function require_objectToString() {
  if (hasRequired_objectToString) return _objectToString;
  hasRequired_objectToString = 1;
  var objectProto = Object.prototype;
  var nativeObjectToString = objectProto.toString;
  function objectToString(value) {
    return nativeObjectToString.call(value);
  }
  _objectToString = objectToString;
  return _objectToString;
}
var _baseGetTag;
var hasRequired_baseGetTag;
function require_baseGetTag() {
  if (hasRequired_baseGetTag) return _baseGetTag;
  hasRequired_baseGetTag = 1;
  var Symbol2 = require_Symbol(), getRawTag = require_getRawTag(), objectToString = require_objectToString();
  var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
  var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
  function baseGetTag(value) {
    if (value == null) {
      return value === void 0 ? undefinedTag : nullTag;
    }
    return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
  }
  _baseGetTag = baseGetTag;
  return _baseGetTag;
}
var isObject_1;
var hasRequiredIsObject;
function requireIsObject() {
  if (hasRequiredIsObject) return isObject_1;
  hasRequiredIsObject = 1;
  function isObject2(value) {
    var type = typeof value;
    return value != null && (type == "object" || type == "function");
  }
  isObject_1 = isObject2;
  return isObject_1;
}
var isFunction_1;
var hasRequiredIsFunction;
function requireIsFunction() {
  if (hasRequiredIsFunction) return isFunction_1;
  hasRequiredIsFunction = 1;
  var baseGetTag = require_baseGetTag(), isObject2 = requireIsObject();
  var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
  function isFunction(value) {
    if (!isObject2(value)) {
      return false;
    }
    var tag = baseGetTag(value);
    return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
  }
  isFunction_1 = isFunction;
  return isFunction_1;
}
var _coreJsData;
var hasRequired_coreJsData;
function require_coreJsData() {
  if (hasRequired_coreJsData) return _coreJsData;
  hasRequired_coreJsData = 1;
  var root = require_root();
  var coreJsData = root["__core-js_shared__"];
  _coreJsData = coreJsData;
  return _coreJsData;
}
var _isMasked;
var hasRequired_isMasked;
function require_isMasked() {
  if (hasRequired_isMasked) return _isMasked;
  hasRequired_isMasked = 1;
  var coreJsData = require_coreJsData();
  var maskSrcKey = (function() {
    var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
    return uid ? "Symbol(src)_1." + uid : "";
  })();
  function isMasked(func) {
    return !!maskSrcKey && maskSrcKey in func;
  }
  _isMasked = isMasked;
  return _isMasked;
}
var _toSource;
var hasRequired_toSource;
function require_toSource() {
  if (hasRequired_toSource) return _toSource;
  hasRequired_toSource = 1;
  var funcProto = Function.prototype;
  var funcToString = funcProto.toString;
  function toSource(func) {
    if (func != null) {
      try {
        return funcToString.call(func);
      } catch (e) {
      }
      try {
        return func + "";
      } catch (e) {
      }
    }
    return "";
  }
  _toSource = toSource;
  return _toSource;
}
var _baseIsNative;
var hasRequired_baseIsNative;
function require_baseIsNative() {
  if (hasRequired_baseIsNative) return _baseIsNative;
  hasRequired_baseIsNative = 1;
  var isFunction = requireIsFunction(), isMasked = require_isMasked(), isObject2 = requireIsObject(), toSource = require_toSource();
  var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
  var funcProto = Function.prototype, objectProto = Object.prototype;
  var funcToString = funcProto.toString;
  var hasOwnProperty = objectProto.hasOwnProperty;
  var reIsNative = RegExp(
    "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
  );
  function baseIsNative(value) {
    if (!isObject2(value) || isMasked(value)) {
      return false;
    }
    var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
    return pattern.test(toSource(value));
  }
  _baseIsNative = baseIsNative;
  return _baseIsNative;
}
var _getValue;
var hasRequired_getValue;
function require_getValue() {
  if (hasRequired_getValue) return _getValue;
  hasRequired_getValue = 1;
  function getValue(object, key) {
    return object == null ? void 0 : object[key];
  }
  _getValue = getValue;
  return _getValue;
}
var _getNative;
var hasRequired_getNative;
function require_getNative() {
  if (hasRequired_getNative) return _getNative;
  hasRequired_getNative = 1;
  var baseIsNative = require_baseIsNative(), getValue = require_getValue();
  function getNative(object, key) {
    var value = getValue(object, key);
    return baseIsNative(value) ? value : void 0;
  }
  _getNative = getNative;
  return _getNative;
}
var _Map;
var hasRequired_Map;
function require_Map() {
  if (hasRequired_Map) return _Map;
  hasRequired_Map = 1;
  var getNative = require_getNative(), root = require_root();
  var Map2 = getNative(root, "Map");
  _Map = Map2;
  return _Map;
}
var _nativeCreate;
var hasRequired_nativeCreate;
function require_nativeCreate() {
  if (hasRequired_nativeCreate) return _nativeCreate;
  hasRequired_nativeCreate = 1;
  var getNative = require_getNative();
  var nativeCreate = getNative(Object, "create");
  _nativeCreate = nativeCreate;
  return _nativeCreate;
}
var _hashClear;
var hasRequired_hashClear;
function require_hashClear() {
  if (hasRequired_hashClear) return _hashClear;
  hasRequired_hashClear = 1;
  var nativeCreate = require_nativeCreate();
  function hashClear() {
    this.__data__ = nativeCreate ? nativeCreate(null) : {};
    this.size = 0;
  }
  _hashClear = hashClear;
  return _hashClear;
}
var _hashDelete;
var hasRequired_hashDelete;
function require_hashDelete() {
  if (hasRequired_hashDelete) return _hashDelete;
  hasRequired_hashDelete = 1;
  function hashDelete(key) {
    var result = this.has(key) && delete this.__data__[key];
    this.size -= result ? 1 : 0;
    return result;
  }
  _hashDelete = hashDelete;
  return _hashDelete;
}
var _hashGet;
var hasRequired_hashGet;
function require_hashGet() {
  if (hasRequired_hashGet) return _hashGet;
  hasRequired_hashGet = 1;
  var nativeCreate = require_nativeCreate();
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function hashGet(key) {
    var data = this.__data__;
    if (nativeCreate) {
      var result = data[key];
      return result === HASH_UNDEFINED ? void 0 : result;
    }
    return hasOwnProperty.call(data, key) ? data[key] : void 0;
  }
  _hashGet = hashGet;
  return _hashGet;
}
var _hashHas;
var hasRequired_hashHas;
function require_hashHas() {
  if (hasRequired_hashHas) return _hashHas;
  hasRequired_hashHas = 1;
  var nativeCreate = require_nativeCreate();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function hashHas(key) {
    var data = this.__data__;
    return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
  }
  _hashHas = hashHas;
  return _hashHas;
}
var _hashSet;
var hasRequired_hashSet;
function require_hashSet() {
  if (hasRequired_hashSet) return _hashSet;
  hasRequired_hashSet = 1;
  var nativeCreate = require_nativeCreate();
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
  function hashSet(key, value) {
    var data = this.__data__;
    this.size += this.has(key) ? 0 : 1;
    data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
    return this;
  }
  _hashSet = hashSet;
  return _hashSet;
}
var _Hash;
var hasRequired_Hash;
function require_Hash() {
  if (hasRequired_Hash) return _Hash;
  hasRequired_Hash = 1;
  var hashClear = require_hashClear(), hashDelete = require_hashDelete(), hashGet = require_hashGet(), hashHas = require_hashHas(), hashSet = require_hashSet();
  function Hash2(entries) {
    var index2 = -1, length = entries == null ? 0 : entries.length;
    this.clear();
    while (++index2 < length) {
      var entry = entries[index2];
      this.set(entry[0], entry[1]);
    }
  }
  Hash2.prototype.clear = hashClear;
  Hash2.prototype["delete"] = hashDelete;
  Hash2.prototype.get = hashGet;
  Hash2.prototype.has = hashHas;
  Hash2.prototype.set = hashSet;
  _Hash = Hash2;
  return _Hash;
}
var _mapCacheClear;
var hasRequired_mapCacheClear;
function require_mapCacheClear() {
  if (hasRequired_mapCacheClear) return _mapCacheClear;
  hasRequired_mapCacheClear = 1;
  var Hash2 = require_Hash(), ListCache = require_ListCache(), Map2 = require_Map();
  function mapCacheClear() {
    this.size = 0;
    this.__data__ = {
      "hash": new Hash2(),
      "map": new (Map2 || ListCache)(),
      "string": new Hash2()
    };
  }
  _mapCacheClear = mapCacheClear;
  return _mapCacheClear;
}
var _isKeyable;
var hasRequired_isKeyable;
function require_isKeyable() {
  if (hasRequired_isKeyable) return _isKeyable;
  hasRequired_isKeyable = 1;
  function isKeyable(value) {
    var type = typeof value;
    return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
  }
  _isKeyable = isKeyable;
  return _isKeyable;
}
var _getMapData;
var hasRequired_getMapData;
function require_getMapData() {
  if (hasRequired_getMapData) return _getMapData;
  hasRequired_getMapData = 1;
  var isKeyable = require_isKeyable();
  function getMapData(map, key) {
    var data = map.__data__;
    return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
  }
  _getMapData = getMapData;
  return _getMapData;
}
var _mapCacheDelete;
var hasRequired_mapCacheDelete;
function require_mapCacheDelete() {
  if (hasRequired_mapCacheDelete) return _mapCacheDelete;
  hasRequired_mapCacheDelete = 1;
  var getMapData = require_getMapData();
  function mapCacheDelete(key) {
    var result = getMapData(this, key)["delete"](key);
    this.size -= result ? 1 : 0;
    return result;
  }
  _mapCacheDelete = mapCacheDelete;
  return _mapCacheDelete;
}
var _mapCacheGet;
var hasRequired_mapCacheGet;
function require_mapCacheGet() {
  if (hasRequired_mapCacheGet) return _mapCacheGet;
  hasRequired_mapCacheGet = 1;
  var getMapData = require_getMapData();
  function mapCacheGet(key) {
    return getMapData(this, key).get(key);
  }
  _mapCacheGet = mapCacheGet;
  return _mapCacheGet;
}
var _mapCacheHas;
var hasRequired_mapCacheHas;
function require_mapCacheHas() {
  if (hasRequired_mapCacheHas) return _mapCacheHas;
  hasRequired_mapCacheHas = 1;
  var getMapData = require_getMapData();
  function mapCacheHas(key) {
    return getMapData(this, key).has(key);
  }
  _mapCacheHas = mapCacheHas;
  return _mapCacheHas;
}
var _mapCacheSet;
var hasRequired_mapCacheSet;
function require_mapCacheSet() {
  if (hasRequired_mapCacheSet) return _mapCacheSet;
  hasRequired_mapCacheSet = 1;
  var getMapData = require_getMapData();
  function mapCacheSet(key, value) {
    var data = getMapData(this, key), size = data.size;
    data.set(key, value);
    this.size += data.size == size ? 0 : 1;
    return this;
  }
  _mapCacheSet = mapCacheSet;
  return _mapCacheSet;
}
var _MapCache;
var hasRequired_MapCache;
function require_MapCache() {
  if (hasRequired_MapCache) return _MapCache;
  hasRequired_MapCache = 1;
  var mapCacheClear = require_mapCacheClear(), mapCacheDelete = require_mapCacheDelete(), mapCacheGet = require_mapCacheGet(), mapCacheHas = require_mapCacheHas(), mapCacheSet = require_mapCacheSet();
  function MapCache(entries) {
    var index2 = -1, length = entries == null ? 0 : entries.length;
    this.clear();
    while (++index2 < length) {
      var entry = entries[index2];
      this.set(entry[0], entry[1]);
    }
  }
  MapCache.prototype.clear = mapCacheClear;
  MapCache.prototype["delete"] = mapCacheDelete;
  MapCache.prototype.get = mapCacheGet;
  MapCache.prototype.has = mapCacheHas;
  MapCache.prototype.set = mapCacheSet;
  _MapCache = MapCache;
  return _MapCache;
}
var _stackSet;
var hasRequired_stackSet;
function require_stackSet() {
  if (hasRequired_stackSet) return _stackSet;
  hasRequired_stackSet = 1;
  var ListCache = require_ListCache(), Map2 = require_Map(), MapCache = require_MapCache();
  var LARGE_ARRAY_SIZE = 200;
  function stackSet(key, value) {
    var data = this.__data__;
    if (data instanceof ListCache) {
      var pairs = data.__data__;
      if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
        pairs.push([key, value]);
        this.size = ++data.size;
        return this;
      }
      data = this.__data__ = new MapCache(pairs);
    }
    data.set(key, value);
    this.size = data.size;
    return this;
  }
  _stackSet = stackSet;
  return _stackSet;
}
var _Stack;
var hasRequired_Stack;
function require_Stack() {
  if (hasRequired_Stack) return _Stack;
  hasRequired_Stack = 1;
  var ListCache = require_ListCache(), stackClear = require_stackClear(), stackDelete = require_stackDelete(), stackGet = require_stackGet(), stackHas = require_stackHas(), stackSet = require_stackSet();
  function Stack(entries) {
    var data = this.__data__ = new ListCache(entries);
    this.size = data.size;
  }
  Stack.prototype.clear = stackClear;
  Stack.prototype["delete"] = stackDelete;
  Stack.prototype.get = stackGet;
  Stack.prototype.has = stackHas;
  Stack.prototype.set = stackSet;
  _Stack = Stack;
  return _Stack;
}
var _arrayEach;
var hasRequired_arrayEach;
function require_arrayEach() {
  if (hasRequired_arrayEach) return _arrayEach;
  hasRequired_arrayEach = 1;
  function arrayEach(array, iteratee) {
    var index2 = -1, length = array == null ? 0 : array.length;
    while (++index2 < length) {
      if (iteratee(array[index2], index2, array) === false) {
        break;
      }
    }
    return array;
  }
  _arrayEach = arrayEach;
  return _arrayEach;
}
var _defineProperty;
var hasRequired_defineProperty;
function require_defineProperty() {
  if (hasRequired_defineProperty) return _defineProperty;
  hasRequired_defineProperty = 1;
  var getNative = require_getNative();
  var defineProperty = (function() {
    try {
      var func = getNative(Object, "defineProperty");
      func({}, "", {});
      return func;
    } catch (e) {
    }
  })();
  _defineProperty = defineProperty;
  return _defineProperty;
}
var _baseAssignValue;
var hasRequired_baseAssignValue;
function require_baseAssignValue() {
  if (hasRequired_baseAssignValue) return _baseAssignValue;
  hasRequired_baseAssignValue = 1;
  var defineProperty = require_defineProperty();
  function baseAssignValue(object, key, value) {
    if (key == "__proto__" && defineProperty) {
      defineProperty(object, key, {
        "configurable": true,
        "enumerable": true,
        "value": value,
        "writable": true
      });
    } else {
      object[key] = value;
    }
  }
  _baseAssignValue = baseAssignValue;
  return _baseAssignValue;
}
var _assignValue;
var hasRequired_assignValue;
function require_assignValue() {
  if (hasRequired_assignValue) return _assignValue;
  hasRequired_assignValue = 1;
  var baseAssignValue = require_baseAssignValue(), eq = requireEq();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function assignValue(object, key, value) {
    var objValue = object[key];
    if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
      baseAssignValue(object, key, value);
    }
  }
  _assignValue = assignValue;
  return _assignValue;
}
var _copyObject;
var hasRequired_copyObject;
function require_copyObject() {
  if (hasRequired_copyObject) return _copyObject;
  hasRequired_copyObject = 1;
  var assignValue = require_assignValue(), baseAssignValue = require_baseAssignValue();
  function copyObject(source, props, object, customizer) {
    var isNew = !object;
    object || (object = {});
    var index2 = -1, length = props.length;
    while (++index2 < length) {
      var key = props[index2];
      var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
      if (newValue === void 0) {
        newValue = source[key];
      }
      if (isNew) {
        baseAssignValue(object, key, newValue);
      } else {
        assignValue(object, key, newValue);
      }
    }
    return object;
  }
  _copyObject = copyObject;
  return _copyObject;
}
var _baseTimes;
var hasRequired_baseTimes;
function require_baseTimes() {
  if (hasRequired_baseTimes) return _baseTimes;
  hasRequired_baseTimes = 1;
  function baseTimes(n, iteratee) {
    var index2 = -1, result = Array(n);
    while (++index2 < n) {
      result[index2] = iteratee(index2);
    }
    return result;
  }
  _baseTimes = baseTimes;
  return _baseTimes;
}
var isObjectLike_1;
var hasRequiredIsObjectLike;
function requireIsObjectLike() {
  if (hasRequiredIsObjectLike) return isObjectLike_1;
  hasRequiredIsObjectLike = 1;
  function isObjectLike(value) {
    return value != null && typeof value == "object";
  }
  isObjectLike_1 = isObjectLike;
  return isObjectLike_1;
}
var _baseIsArguments;
var hasRequired_baseIsArguments;
function require_baseIsArguments() {
  if (hasRequired_baseIsArguments) return _baseIsArguments;
  hasRequired_baseIsArguments = 1;
  var baseGetTag = require_baseGetTag(), isObjectLike = requireIsObjectLike();
  var argsTag = "[object Arguments]";
  function baseIsArguments(value) {
    return isObjectLike(value) && baseGetTag(value) == argsTag;
  }
  _baseIsArguments = baseIsArguments;
  return _baseIsArguments;
}
var isArguments_1;
var hasRequiredIsArguments;
function requireIsArguments() {
  if (hasRequiredIsArguments) return isArguments_1;
  hasRequiredIsArguments = 1;
  var baseIsArguments = require_baseIsArguments(), isObjectLike = requireIsObjectLike();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  var propertyIsEnumerable = objectProto.propertyIsEnumerable;
  var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
    return arguments;
  })()) ? baseIsArguments : function(value) {
    return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
  };
  isArguments_1 = isArguments;
  return isArguments_1;
}
var isArray_1;
var hasRequiredIsArray;
function requireIsArray() {
  if (hasRequiredIsArray) return isArray_1;
  hasRequiredIsArray = 1;
  var isArray = Array.isArray;
  isArray_1 = isArray;
  return isArray_1;
}
var isBuffer = { exports: {} };
var stubFalse_1;
var hasRequiredStubFalse;
function requireStubFalse() {
  if (hasRequiredStubFalse) return stubFalse_1;
  hasRequiredStubFalse = 1;
  function stubFalse() {
    return false;
  }
  stubFalse_1 = stubFalse;
  return stubFalse_1;
}
isBuffer.exports;
var hasRequiredIsBuffer;
function requireIsBuffer() {
  if (hasRequiredIsBuffer) return isBuffer.exports;
  hasRequiredIsBuffer = 1;
  (function(module, exports$1) {
    var root = require_root(), stubFalse = requireStubFalse();
    var freeExports = exports$1 && !exports$1.nodeType && exports$1;
    var freeModule = freeExports && true && module && !module.nodeType && module;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var Buffer = moduleExports ? root.Buffer : void 0;
    var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0;
    var isBuffer2 = nativeIsBuffer || stubFalse;
    module.exports = isBuffer2;
  })(isBuffer, isBuffer.exports);
  return isBuffer.exports;
}
var _isIndex;
var hasRequired_isIndex;
function require_isIndex() {
  if (hasRequired_isIndex) return _isIndex;
  hasRequired_isIndex = 1;
  var MAX_SAFE_INTEGER = 9007199254740991;
  var reIsUint = /^(?:0|[1-9]\d*)$/;
  function isIndex(value, length) {
    var type = typeof value;
    length = length == null ? MAX_SAFE_INTEGER : length;
    return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
  }
  _isIndex = isIndex;
  return _isIndex;
}
var isLength_1;
var hasRequiredIsLength;
function requireIsLength() {
  if (hasRequiredIsLength) return isLength_1;
  hasRequiredIsLength = 1;
  var MAX_SAFE_INTEGER = 9007199254740991;
  function isLength(value) {
    return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
  }
  isLength_1 = isLength;
  return isLength_1;
}
var _baseIsTypedArray;
var hasRequired_baseIsTypedArray;
function require_baseIsTypedArray() {
  if (hasRequired_baseIsTypedArray) return _baseIsTypedArray;
  hasRequired_baseIsTypedArray = 1;
  var baseGetTag = require_baseGetTag(), isLength = requireIsLength(), isObjectLike = requireIsObjectLike();
  var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", mapTag = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", weakMapTag = "[object WeakMap]";
  var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
  var typedArrayTags = {};
  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
  typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
  function baseIsTypedArray(value) {
    return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
  }
  _baseIsTypedArray = baseIsTypedArray;
  return _baseIsTypedArray;
}
var _baseUnary;
var hasRequired_baseUnary;
function require_baseUnary() {
  if (hasRequired_baseUnary) return _baseUnary;
  hasRequired_baseUnary = 1;
  function baseUnary(func) {
    return function(value) {
      return func(value);
    };
  }
  _baseUnary = baseUnary;
  return _baseUnary;
}
var _nodeUtil = { exports: {} };
_nodeUtil.exports;
var hasRequired_nodeUtil;
function require_nodeUtil() {
  if (hasRequired_nodeUtil) return _nodeUtil.exports;
  hasRequired_nodeUtil = 1;
  (function(module, exports$1) {
    var freeGlobal = require_freeGlobal();
    var freeExports = exports$1 && !exports$1.nodeType && exports$1;
    var freeModule = freeExports && true && module && !module.nodeType && module;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var freeProcess = moduleExports && freeGlobal.process;
    var nodeUtil = (function() {
      try {
        var types = freeModule && freeModule.require && freeModule.require("util").types;
        if (types) {
          return types;
        }
        return freeProcess && freeProcess.binding && freeProcess.binding("util");
      } catch (e) {
      }
    })();
    module.exports = nodeUtil;
  })(_nodeUtil, _nodeUtil.exports);
  return _nodeUtil.exports;
}
var isTypedArray_1;
var hasRequiredIsTypedArray;
function requireIsTypedArray() {
  if (hasRequiredIsTypedArray) return isTypedArray_1;
  hasRequiredIsTypedArray = 1;
  var baseIsTypedArray = require_baseIsTypedArray(), baseUnary = require_baseUnary(), nodeUtil = require_nodeUtil();
  var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
  isTypedArray_1 = isTypedArray;
  return isTypedArray_1;
}
var _arrayLikeKeys;
var hasRequired_arrayLikeKeys;
function require_arrayLikeKeys() {
  if (hasRequired_arrayLikeKeys) return _arrayLikeKeys;
  hasRequired_arrayLikeKeys = 1;
  var baseTimes = require_baseTimes(), isArguments = requireIsArguments(), isArray = requireIsArray(), isBuffer2 = requireIsBuffer(), isIndex = require_isIndex(), isTypedArray = requireIsTypedArray();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function arrayLikeKeys(value, inherited) {
    var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer2(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
    for (var key in value) {
      if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
      (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
      isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
      isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
      isIndex(key, length)))) {
        result.push(key);
      }
    }
    return result;
  }
  _arrayLikeKeys = arrayLikeKeys;
  return _arrayLikeKeys;
}
var _isPrototype;
var hasRequired_isPrototype;
function require_isPrototype() {
  if (hasRequired_isPrototype) return _isPrototype;
  hasRequired_isPrototype = 1;
  var objectProto = Object.prototype;
  function isPrototype(value) {
    var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
    return value === proto;
  }
  _isPrototype = isPrototype;
  return _isPrototype;
}
var _overArg;
var hasRequired_overArg;
function require_overArg() {
  if (hasRequired_overArg) return _overArg;
  hasRequired_overArg = 1;
  function overArg(func, transform) {
    return function(arg) {
      return func(transform(arg));
    };
  }
  _overArg = overArg;
  return _overArg;
}
var _nativeKeys;
var hasRequired_nativeKeys;
function require_nativeKeys() {
  if (hasRequired_nativeKeys) return _nativeKeys;
  hasRequired_nativeKeys = 1;
  var overArg = require_overArg();
  var nativeKeys = overArg(Object.keys, Object);
  _nativeKeys = nativeKeys;
  return _nativeKeys;
}
var _baseKeys;
var hasRequired_baseKeys;
function require_baseKeys() {
  if (hasRequired_baseKeys) return _baseKeys;
  hasRequired_baseKeys = 1;
  var isPrototype = require_isPrototype(), nativeKeys = require_nativeKeys();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function baseKeys(object) {
    if (!isPrototype(object)) {
      return nativeKeys(object);
    }
    var result = [];
    for (var key in Object(object)) {
      if (hasOwnProperty.call(object, key) && key != "constructor") {
        result.push(key);
      }
    }
    return result;
  }
  _baseKeys = baseKeys;
  return _baseKeys;
}
var isArrayLike_1;
var hasRequiredIsArrayLike;
function requireIsArrayLike() {
  if (hasRequiredIsArrayLike) return isArrayLike_1;
  hasRequiredIsArrayLike = 1;
  var isFunction = requireIsFunction(), isLength = requireIsLength();
  function isArrayLike(value) {
    return value != null && isLength(value.length) && !isFunction(value);
  }
  isArrayLike_1 = isArrayLike;
  return isArrayLike_1;
}
var keys_1;
var hasRequiredKeys;
function requireKeys() {
  if (hasRequiredKeys) return keys_1;
  hasRequiredKeys = 1;
  var arrayLikeKeys = require_arrayLikeKeys(), baseKeys = require_baseKeys(), isArrayLike = requireIsArrayLike();
  function keys(object) {
    return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
  }
  keys_1 = keys;
  return keys_1;
}
var _baseAssign;
var hasRequired_baseAssign;
function require_baseAssign() {
  if (hasRequired_baseAssign) return _baseAssign;
  hasRequired_baseAssign = 1;
  var copyObject = require_copyObject(), keys = requireKeys();
  function baseAssign(object, source) {
    return object && copyObject(source, keys(source), object);
  }
  _baseAssign = baseAssign;
  return _baseAssign;
}
var _nativeKeysIn;
var hasRequired_nativeKeysIn;
function require_nativeKeysIn() {
  if (hasRequired_nativeKeysIn) return _nativeKeysIn;
  hasRequired_nativeKeysIn = 1;
  function nativeKeysIn(object) {
    var result = [];
    if (object != null) {
      for (var key in Object(object)) {
        result.push(key);
      }
    }
    return result;
  }
  _nativeKeysIn = nativeKeysIn;
  return _nativeKeysIn;
}
var _baseKeysIn;
var hasRequired_baseKeysIn;
function require_baseKeysIn() {
  if (hasRequired_baseKeysIn) return _baseKeysIn;
  hasRequired_baseKeysIn = 1;
  var isObject2 = requireIsObject(), isPrototype = require_isPrototype(), nativeKeysIn = require_nativeKeysIn();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function baseKeysIn(object) {
    if (!isObject2(object)) {
      return nativeKeysIn(object);
    }
    var isProto = isPrototype(object), result = [];
    for (var key in object) {
      if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) {
        result.push(key);
      }
    }
    return result;
  }
  _baseKeysIn = baseKeysIn;
  return _baseKeysIn;
}
var keysIn_1;
var hasRequiredKeysIn;
function requireKeysIn() {
  if (hasRequiredKeysIn) return keysIn_1;
  hasRequiredKeysIn = 1;
  var arrayLikeKeys = require_arrayLikeKeys(), baseKeysIn = require_baseKeysIn(), isArrayLike = requireIsArrayLike();
  function keysIn(object) {
    return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
  }
  keysIn_1 = keysIn;
  return keysIn_1;
}
var _baseAssignIn;
var hasRequired_baseAssignIn;
function require_baseAssignIn() {
  if (hasRequired_baseAssignIn) return _baseAssignIn;
  hasRequired_baseAssignIn = 1;
  var copyObject = require_copyObject(), keysIn = requireKeysIn();
  function baseAssignIn(object, source) {
    return object && copyObject(source, keysIn(source), object);
  }
  _baseAssignIn = baseAssignIn;
  return _baseAssignIn;
}
var _cloneBuffer = { exports: {} };
_cloneBuffer.exports;
var hasRequired_cloneBuffer;
function require_cloneBuffer() {
  if (hasRequired_cloneBuffer) return _cloneBuffer.exports;
  hasRequired_cloneBuffer = 1;
  (function(module, exports$1) {
    var root = require_root();
    var freeExports = exports$1 && !exports$1.nodeType && exports$1;
    var freeModule = freeExports && true && module && !module.nodeType && module;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var Buffer = moduleExports ? root.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;
    function cloneBuffer(buffer, isDeep) {
      if (isDeep) {
        return buffer.slice();
      }
      var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
      buffer.copy(result);
      return result;
    }
    module.exports = cloneBuffer;
  })(_cloneBuffer, _cloneBuffer.exports);
  return _cloneBuffer.exports;
}
var _copyArray;
var hasRequired_copyArray;
function require_copyArray() {
  if (hasRequired_copyArray) return _copyArray;
  hasRequired_copyArray = 1;
  function copyArray(source, array) {
    var index2 = -1, length = source.length;
    array || (array = Array(length));
    while (++index2 < length) {
      array[index2] = source[index2];
    }
    return array;
  }
  _copyArray = copyArray;
  return _copyArray;
}
var _arrayFilter;
var hasRequired_arrayFilter;
function require_arrayFilter() {
  if (hasRequired_arrayFilter) return _arrayFilter;
  hasRequired_arrayFilter = 1;
  function arrayFilter2(array, predicate) {
    var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
    while (++index2 < length) {
      var value = array[index2];
      if (predicate(value, index2, array)) {
        result[resIndex++] = value;
      }
    }
    return result;
  }
  _arrayFilter = arrayFilter2;
  return _arrayFilter;
}
var stubArray_1;
var hasRequiredStubArray;
function requireStubArray() {
  if (hasRequiredStubArray) return stubArray_1;
  hasRequiredStubArray = 1;
  function stubArray() {
    return [];
  }
  stubArray_1 = stubArray;
  return stubArray_1;
}
var _getSymbols;
var hasRequired_getSymbols;
function require_getSymbols() {
  if (hasRequired_getSymbols) return _getSymbols;
  hasRequired_getSymbols = 1;
  var arrayFilter2 = require_arrayFilter(), stubArray = requireStubArray();
  var objectProto = Object.prototype;
  var propertyIsEnumerable = objectProto.propertyIsEnumerable;
  var nativeGetSymbols = Object.getOwnPropertySymbols;
  var getSymbols2 = !nativeGetSymbols ? stubArray : function(object) {
    if (object == null) {
      return [];
    }
    object = Object(object);
    return arrayFilter2(nativeGetSymbols(object), function(symbol) {
      return propertyIsEnumerable.call(object, symbol);
    });
  };
  _getSymbols = getSymbols2;
  return _getSymbols;
}
var _copySymbols;
var hasRequired_copySymbols;
function require_copySymbols() {
  if (hasRequired_copySymbols) return _copySymbols;
  hasRequired_copySymbols = 1;
  var copyObject = require_copyObject(), getSymbols2 = require_getSymbols();
  function copySymbols(source, object) {
    return copyObject(source, getSymbols2(source), object);
  }
  _copySymbols = copySymbols;
  return _copySymbols;
}
var _arrayPush;
var hasRequired_arrayPush;
function require_arrayPush() {
  if (hasRequired_arrayPush) return _arrayPush;
  hasRequired_arrayPush = 1;
  function arrayPush(array, values) {
    var index2 = -1, length = values.length, offset = array.length;
    while (++index2 < length) {
      array[offset + index2] = values[index2];
    }
    return array;
  }
  _arrayPush = arrayPush;
  return _arrayPush;
}
var _getPrototype;
var hasRequired_getPrototype;
function require_getPrototype() {
  if (hasRequired_getPrototype) return _getPrototype;
  hasRequired_getPrototype = 1;
  var overArg = require_overArg();
  var getPrototype = overArg(Object.getPrototypeOf, Object);
  _getPrototype = getPrototype;
  return _getPrototype;
}
var _getSymbolsIn;
var hasRequired_getSymbolsIn;
function require_getSymbolsIn() {
  if (hasRequired_getSymbolsIn) return _getSymbolsIn;
  hasRequired_getSymbolsIn = 1;
  var arrayPush = require_arrayPush(), getPrototype = require_getPrototype(), getSymbols2 = require_getSymbols(), stubArray = requireStubArray();
  var nativeGetSymbols = Object.getOwnPropertySymbols;
  var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
    var result = [];
    while (object) {
      arrayPush(result, getSymbols2(object));
      object = getPrototype(object);
    }
    return result;
  };
  _getSymbolsIn = getSymbolsIn;
  return _getSymbolsIn;
}
var _copySymbolsIn;
var hasRequired_copySymbolsIn;
function require_copySymbolsIn() {
  if (hasRequired_copySymbolsIn) return _copySymbolsIn;
  hasRequired_copySymbolsIn = 1;
  var copyObject = require_copyObject(), getSymbolsIn = require_getSymbolsIn();
  function copySymbolsIn(source, object) {
    return copyObject(source, getSymbolsIn(source), object);
  }
  _copySymbolsIn = copySymbolsIn;
  return _copySymbolsIn;
}
var _baseGetAllKeys;
var hasRequired_baseGetAllKeys;
function require_baseGetAllKeys() {
  if (hasRequired_baseGetAllKeys) return _baseGetAllKeys;
  hasRequired_baseGetAllKeys = 1;
  var arrayPush = require_arrayPush(), isArray = requireIsArray();
  function baseGetAllKeys(object, keysFunc, symbolsFunc) {
    var result = keysFunc(object);
    return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
  }
  _baseGetAllKeys = baseGetAllKeys;
  return _baseGetAllKeys;
}
var _getAllKeys;
var hasRequired_getAllKeys;
function require_getAllKeys() {
  if (hasRequired_getAllKeys) return _getAllKeys;
  hasRequired_getAllKeys = 1;
  var baseGetAllKeys = require_baseGetAllKeys(), getSymbols2 = require_getSymbols(), keys = requireKeys();
  function getAllKeys(object) {
    return baseGetAllKeys(object, keys, getSymbols2);
  }
  _getAllKeys = getAllKeys;
  return _getAllKeys;
}
var _getAllKeysIn;
var hasRequired_getAllKeysIn;
function require_getAllKeysIn() {
  if (hasRequired_getAllKeysIn) return _getAllKeysIn;
  hasRequired_getAllKeysIn = 1;
  var baseGetAllKeys = require_baseGetAllKeys(), getSymbolsIn = require_getSymbolsIn(), keysIn = requireKeysIn();
  function getAllKeysIn(object) {
    return baseGetAllKeys(object, keysIn, getSymbolsIn);
  }
  _getAllKeysIn = getAllKeysIn;
  return _getAllKeysIn;
}
var _DataView;
var hasRequired_DataView;
function require_DataView() {
  if (hasRequired_DataView) return _DataView;
  hasRequired_DataView = 1;
  var getNative = require_getNative(), root = require_root();
  var DataView2 = getNative(root, "DataView");
  _DataView = DataView2;
  return _DataView;
}
var _Promise;
var hasRequired_Promise;
function require_Promise() {
  if (hasRequired_Promise) return _Promise;
  hasRequired_Promise = 1;
  var getNative = require_getNative(), root = require_root();
  var Promise2 = getNative(root, "Promise");
  _Promise = Promise2;
  return _Promise;
}
var _Set;
var hasRequired_Set;
function require_Set() {
  if (hasRequired_Set) return _Set;
  hasRequired_Set = 1;
  var getNative = require_getNative(), root = require_root();
  var Set2 = getNative(root, "Set");
  _Set = Set2;
  return _Set;
}
var _WeakMap;
var hasRequired_WeakMap;
function require_WeakMap() {
  if (hasRequired_WeakMap) return _WeakMap;
  hasRequired_WeakMap = 1;
  var getNative = require_getNative(), root = require_root();
  var WeakMap = getNative(root, "WeakMap");
  _WeakMap = WeakMap;
  return _WeakMap;
}
var _getTag;
var hasRequired_getTag;
function require_getTag() {
  if (hasRequired_getTag) return _getTag;
  hasRequired_getTag = 1;
  var DataView2 = require_DataView(), Map2 = require_Map(), Promise2 = require_Promise(), Set2 = require_Set(), WeakMap = require_WeakMap(), baseGetTag = require_baseGetTag(), toSource = require_toSource();
  var mapTag = "[object Map]", objectTag = "[object Object]", promiseTag = "[object Promise]", setTag = "[object Set]", weakMapTag = "[object WeakMap]";
  var dataViewTag = "[object DataView]";
  var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap);
  var getTag = baseGetTag;
  if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {
    getTag = function(value) {
      var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
      if (ctorString) {
        switch (ctorString) {
          case dataViewCtorString:
            return dataViewTag;
          case mapCtorString:
            return mapTag;
          case promiseCtorString:
            return promiseTag;
          case setCtorString:
            return setTag;
          case weakMapCtorString:
            return weakMapTag;
        }
      }
      return result;
    };
  }
  _getTag = getTag;
  return _getTag;
}
var _initCloneArray;
var hasRequired_initCloneArray;
function require_initCloneArray() {
  if (hasRequired_initCloneArray) return _initCloneArray;
  hasRequired_initCloneArray = 1;
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function initCloneArray(array) {
    var length = array.length, result = new array.constructor(length);
    if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) {
      result.index = array.index;
      result.input = array.input;
    }
    return result;
  }
  _initCloneArray = initCloneArray;
  return _initCloneArray;
}
var _Uint8Array;
var hasRequired_Uint8Array;
function require_Uint8Array() {
  if (hasRequired_Uint8Array) return _Uint8Array;
  hasRequired_Uint8Array = 1;
  var root = require_root();
  var Uint8Array2 = root.Uint8Array;
  _Uint8Array = Uint8Array2;
  return _Uint8Array;
}
var _cloneArrayBuffer;
var hasRequired_cloneArrayBuffer;
function require_cloneArrayBuffer() {
  if (hasRequired_cloneArrayBuffer) return _cloneArrayBuffer;
  hasRequired_cloneArrayBuffer = 1;
  var Uint8Array2 = require_Uint8Array();
  function cloneArrayBuffer(arrayBuffer) {
    var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
    new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));
    return result;
  }
  _cloneArrayBuffer = cloneArrayBuffer;
  return _cloneArrayBuffer;
}
var _cloneDataView;
var hasRequired_cloneDataView;
function require_cloneDataView() {
  if (hasRequired_cloneDataView) return _cloneDataView;
  hasRequired_cloneDataView = 1;
  var cloneArrayBuffer = require_cloneArrayBuffer();
  function cloneDataView(dataView, isDeep) {
    var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
    return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
  }
  _cloneDataView = cloneDataView;
  return _cloneDataView;
}
var _cloneRegExp;
var hasRequired_cloneRegExp;
function require_cloneRegExp() {
  if (hasRequired_cloneRegExp) return _cloneRegExp;
  hasRequired_cloneRegExp = 1;
  var reFlags = /\w*$/;
  function cloneRegExp(regexp) {
    var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
    result.lastIndex = regexp.lastIndex;
    return result;
  }
  _cloneRegExp = cloneRegExp;
  return _cloneRegExp;
}
var _cloneSymbol;
var hasRequired_cloneSymbol;
function require_cloneSymbol() {
  if (hasRequired_cloneSymbol) return _cloneSymbol;
  hasRequired_cloneSymbol = 1;
  var Symbol2 = require_Symbol();
  var symbolProto = Symbol2 ? Symbol2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
  function cloneSymbol(symbol) {
    return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
  }
  _cloneSymbol = cloneSymbol;
  return _cloneSymbol;
}
var _cloneTypedArray;
var hasRequired_cloneTypedArray;
function require_cloneTypedArray() {
  if (hasRequired_cloneTypedArray) return _cloneTypedArray;
  hasRequired_cloneTypedArray = 1;
  var cloneArrayBuffer = require_cloneArrayBuffer();
  function cloneTypedArray(typedArray, isDeep) {
    var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
    return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
  }
  _cloneTypedArray = cloneTypedArray;
  return _cloneTypedArray;
}
var _initCloneByTag;
var hasRequired_initCloneByTag;
function require_initCloneByTag() {
  if (hasRequired_initCloneByTag) return _initCloneByTag;
  hasRequired_initCloneByTag = 1;
  var cloneArrayBuffer = require_cloneArrayBuffer(), cloneDataView = require_cloneDataView(), cloneRegExp = require_cloneRegExp(), cloneSymbol = require_cloneSymbol(), cloneTypedArray = require_cloneTypedArray();
  var boolTag = "[object Boolean]", dateTag = "[object Date]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
  var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
  function initCloneByTag(object, tag, isDeep) {
    var Ctor = object.constructor;
    switch (tag) {
      case arrayBufferTag:
        return cloneArrayBuffer(object);
      case boolTag:
      case dateTag:
        return new Ctor(+object);
      case dataViewTag:
        return cloneDataView(object, isDeep);
      case float32Tag:
      case float64Tag:
      case int8Tag:
      case int16Tag:
      case int32Tag:
      case uint8Tag:
      case uint8ClampedTag:
      case uint16Tag:
      case uint32Tag:
        return cloneTypedArray(object, isDeep);
      case mapTag:
        return new Ctor();
      case numberTag:
      case stringTag:
        return new Ctor(object);
      case regexpTag:
        return cloneRegExp(object);
      case setTag:
        return new Ctor();
      case symbolTag:
        return cloneSymbol(object);
    }
  }
  _initCloneByTag = initCloneByTag;
  return _initCloneByTag;
}
var _baseCreate;
var hasRequired_baseCreate;
function require_baseCreate() {
  if (hasRequired_baseCreate) return _baseCreate;
  hasRequired_baseCreate = 1;
  var isObject2 = requireIsObject();
  var objectCreate = Object.create;
  var baseCreate = /* @__PURE__ */ (function() {
    function object() {
    }
    return function(proto) {
      if (!isObject2(proto)) {
        return {};
      }
      if (objectCreate) {
        return objectCreate(proto);
      }
      object.prototype = proto;
      var result = new object();
      object.prototype = void 0;
      return result;
    };
  })();
  _baseCreate = baseCreate;
  return _baseCreate;
}
var _initCloneObject;
var hasRequired_initCloneObject;
function require_initCloneObject() {
  if (hasRequired_initCloneObject) return _initCloneObject;
  hasRequired_initCloneObject = 1;
  var baseCreate = require_baseCreate(), getPrototype = require_getPrototype(), isPrototype = require_isPrototype();
  function initCloneObject(object) {
    return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
  }
  _initCloneObject = initCloneObject;
  return _initCloneObject;
}
var _baseIsMap;
var hasRequired_baseIsMap;
function require_baseIsMap() {
  if (hasRequired_baseIsMap) return _baseIsMap;
  hasRequired_baseIsMap = 1;
  var getTag = require_getTag(), isObjectLike = requireIsObjectLike();
  var mapTag = "[object Map]";
  function baseIsMap(value) {
    return isObjectLike(value) && getTag(value) == mapTag;
  }
  _baseIsMap = baseIsMap;
  return _baseIsMap;
}
var isMap_1;
var hasRequiredIsMap;
function requireIsMap() {
  if (hasRequiredIsMap) return isMap_1;
  hasRequiredIsMap = 1;
  var baseIsMap = require_baseIsMap(), baseUnary = require_baseUnary(), nodeUtil = require_nodeUtil();
  var nodeIsMap = nodeUtil && nodeUtil.isMap;
  var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
  isMap_1 = isMap;
  return isMap_1;
}
var _baseIsSet;
var hasRequired_baseIsSet;
function require_baseIsSet() {
  if (hasRequired_baseIsSet) return _baseIsSet;
  hasRequired_baseIsSet = 1;
  var getTag = require_getTag(), isObjectLike = requireIsObjectLike();
  var setTag = "[object Set]";
  function baseIsSet(value) {
    return isObjectLike(value) && getTag(value) == setTag;
  }
  _baseIsSet = baseIsSet;
  return _baseIsSet;
}
var isSet_1;
var hasRequiredIsSet;
function requireIsSet() {
  if (hasRequiredIsSet) return isSet_1;
  hasRequiredIsSet = 1;
  var baseIsSet = require_baseIsSet(), baseUnary = require_baseUnary(), nodeUtil = require_nodeUtil();
  var nodeIsSet = nodeUtil && nodeUtil.isSet;
  var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
  isSet_1 = isSet;
  return isSet_1;
}
var _baseClone;
var hasRequired_baseClone;
function require_baseClone() {
  if (hasRequired_baseClone) return _baseClone;
  hasRequired_baseClone = 1;
  var Stack = require_Stack(), arrayEach = require_arrayEach(), assignValue = require_assignValue(), baseAssign = require_baseAssign(), baseAssignIn = require_baseAssignIn(), cloneBuffer = require_cloneBuffer(), copyArray = require_copyArray(), copySymbols = require_copySymbols(), copySymbolsIn = require_copySymbolsIn(), getAllKeys = require_getAllKeys(), getAllKeysIn = require_getAllKeysIn(), getTag = require_getTag(), initCloneArray = require_initCloneArray(), initCloneByTag = require_initCloneByTag(), initCloneObject = require_initCloneObject(), isArray = requireIsArray(), isBuffer2 = requireIsBuffer(), isMap = requireIsMap(), isObject2 = requireIsObject(), isSet = requireIsSet(), keys = requireKeys(), keysIn = requireKeysIn();
  var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;
  var argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", weakMapTag = "[object WeakMap]";
  var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
  var cloneableTags = {};
  cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
  cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
  function baseClone(value, bitmask, customizer, key, object, stack) {
    var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;
    if (customizer) {
      result = object ? customizer(value, key, object, stack) : customizer(value);
    }
    if (result !== void 0) {
      return result;
    }
    if (!isObject2(value)) {
      return value;
    }
    var isArr = isArray(value);
    if (isArr) {
      result = initCloneArray(value);
      if (!isDeep) {
        return copyArray(value, result);
      }
    } else {
      var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;
      if (isBuffer2(value)) {
        return cloneBuffer(value, isDeep);
      }
      if (tag == objectTag || tag == argsTag || isFunc && !object) {
        result = isFlat || isFunc ? {} : initCloneObject(value);
        if (!isDeep) {
          return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
        }
      } else {
        if (!cloneableTags[tag]) {
          return object ? value : {};
        }
        result = initCloneByTag(value, tag, isDeep);
      }
    }
    stack || (stack = new Stack());
    var stacked = stack.get(value);
    if (stacked) {
      return stacked;
    }
    stack.set(value, result);
    if (isSet(value)) {
      value.forEach(function(subValue) {
        result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
      });
    } else if (isMap(value)) {
      value.forEach(function(subValue, key2) {
        result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
      });
    }
    var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
    var props = isArr ? void 0 : keysFunc(value);
    arrayEach(props || value, function(subValue, key2) {
      if (props) {
        key2 = subValue;
        subValue = value[key2];
      }
      assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
    });
    return result;
  }
  _baseClone = baseClone;
  return _baseClone;
}
var clone_1;
var hasRequiredClone;
function requireClone() {
  if (hasRequiredClone) return clone_1;
  hasRequiredClone = 1;
  var baseClone = require_baseClone();
  var CLONE_SYMBOLS_FLAG = 4;
  function clone(value) {
    return baseClone(value, CLONE_SYMBOLS_FLAG);
  }
  clone_1 = clone;
  return clone_1;
}
var constant_1;
var hasRequiredConstant;
function requireConstant() {
  if (hasRequiredConstant) return constant_1;
  hasRequiredConstant = 1;
  function constant(value) {
    return function() {
      return value;
    };
  }
  constant_1 = constant;
  return constant_1;
}
var _createBaseFor;
var hasRequired_createBaseFor;
function require_createBaseFor() {
  if (hasRequired_createBaseFor) return _createBaseFor;
  hasRequired_createBaseFor = 1;
  function createBaseFor(fromRight) {
    return function(object, iteratee, keysFunc) {
      var index2 = -1, iterable = Object(object), props = keysFunc(object), length = props.length;
      while (length--) {
        var key = props[fromRight ? length : ++index2];
        if (iteratee(iterable[key], key, iterable) === false) {
          break;
        }
      }
      return object;
    };
  }
  _createBaseFor = createBaseFor;
  return _createBaseFor;
}
var _baseFor;
var hasRequired_baseFor;
function require_baseFor() {
  if (hasRequired_baseFor) return _baseFor;
  hasRequired_baseFor = 1;
  var createBaseFor = require_createBaseFor();
  var baseFor = createBaseFor();
  _baseFor = baseFor;
  return _baseFor;
}
var _baseForOwn;
var hasRequired_baseForOwn;
function require_baseForOwn() {
  if (hasRequired_baseForOwn) return _baseForOwn;
  hasRequired_baseForOwn = 1;
  var baseFor = require_baseFor(), keys = requireKeys();
  function baseForOwn(object, iteratee) {
    return object && baseFor(object, iteratee, keys);
  }
  _baseForOwn = baseForOwn;
  return _baseForOwn;
}
var _createBaseEach;
var hasRequired_createBaseEach;
function require_createBaseEach() {
  if (hasRequired_createBaseEach) return _createBaseEach;
  hasRequired_createBaseEach = 1;
  var isArrayLike = requireIsArrayLike();
  function createBaseEach(eachFunc, fromRight) {
    return function(collection, iteratee) {
      if (collection == null) {
        return collection;
      }
      if (!isArrayLike(collection)) {
        return eachFunc(collection, iteratee);
      }
      var length = collection.length, index2 = fromRight ? length : -1, iterable = Object(collection);
      while (fromRight ? index2-- : ++index2 < length) {
        if (iteratee(iterable[index2], index2, iterable) === false) {
          break;
        }
      }
      return collection;
    };
  }
  _createBaseEach = createBaseEach;
  return _createBaseEach;
}
var _baseEach;
var hasRequired_baseEach;
function require_baseEach() {
  if (hasRequired_baseEach) return _baseEach;
  hasRequired_baseEach = 1;
  var baseForOwn = require_baseForOwn(), createBaseEach = require_createBaseEach();
  var baseEach = createBaseEach(baseForOwn);
  _baseEach = baseEach;
  return _baseEach;
}
var identity_1;
var hasRequiredIdentity;
function requireIdentity() {
  if (hasRequiredIdentity) return identity_1;
  hasRequiredIdentity = 1;
  function identity(value) {
    return value;
  }
  identity_1 = identity;
  return identity_1;
}
var _castFunction;
var hasRequired_castFunction;
function require_castFunction() {
  if (hasRequired_castFunction) return _castFunction;
  hasRequired_castFunction = 1;
  var identity = requireIdentity();
  function castFunction(value) {
    return typeof value == "function" ? value : identity;
  }
  _castFunction = castFunction;
  return _castFunction;
}
var forEach_1;
var hasRequiredForEach;
function requireForEach() {
  if (hasRequiredForEach) return forEach_1;
  hasRequiredForEach = 1;
  var arrayEach = require_arrayEach(), baseEach = require_baseEach(), castFunction = require_castFunction(), isArray = requireIsArray();
  function forEach(collection, iteratee) {
    var func = isArray(collection) ? arrayEach : baseEach;
    return func(collection, castFunction(iteratee));
  }
  forEach_1 = forEach;
  return forEach_1;
}
var each;
var hasRequiredEach;
function requireEach() {
  if (hasRequiredEach) return each;
  hasRequiredEach = 1;
  each = requireForEach();
  return each;
}
var _baseFilter;
var hasRequired_baseFilter;
function require_baseFilter() {
  if (hasRequired_baseFilter) return _baseFilter;
  hasRequired_baseFilter = 1;
  var baseEach = require_baseEach();
  function baseFilter(collection, predicate) {
    var result = [];
    baseEach(collection, function(value, index2, collection2) {
      if (predicate(value, index2, collection2)) {
        result.push(value);
      }
    });
    return result;
  }
  _baseFilter = baseFilter;
  return _baseFilter;
}
var _setCacheAdd;
var hasRequired_setCacheAdd;
function require_setCacheAdd() {
  if (hasRequired_setCacheAdd) return _setCacheAdd;
  hasRequired_setCacheAdd = 1;
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
  function setCacheAdd(value) {
    this.__data__.set(value, HASH_UNDEFINED);
    return this;
  }
  _setCacheAdd = setCacheAdd;
  return _setCacheAdd;
}
var _setCacheHas;
var hasRequired_setCacheHas;
function require_setCacheHas() {
  if (hasRequired_setCacheHas) return _setCacheHas;
  hasRequired_setCacheHas = 1;
  function setCacheHas(value) {
    return this.__data__.has(value);
  }
  _setCacheHas = setCacheHas;
  return _setCacheHas;
}
var _SetCache;
var hasRequired_SetCache;
function require_SetCache() {
  if (hasRequired_SetCache) return _SetCache;
  hasRequired_SetCache = 1;
  var MapCache = require_MapCache(), setCacheAdd = require_setCacheAdd(), setCacheHas = require_setCacheHas();
  function SetCache(values) {
    var index2 = -1, length = values == null ? 0 : values.length;
    this.__data__ = new MapCache();
    while (++index2 < length) {
      this.add(values[index2]);
    }
  }
  SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
  SetCache.prototype.has = setCacheHas;
  _SetCache = SetCache;
  return _SetCache;
}
var _arraySome;
var hasRequired_arraySome;
function require_arraySome() {
  if (hasRequired_arraySome) return _arraySome;
  hasRequired_arraySome = 1;
  function arraySome(array, predicate) {
    var index2 = -1, length = array == null ? 0 : array.length;
    while (++index2 < length) {
      if (predicate(array[index2], index2, array)) {
        return true;
      }
    }
    return false;
  }
  _arraySome = arraySome;
  return _arraySome;
}
var _cacheHas;
var hasRequired_cacheHas;
function require_cacheHas() {
  if (hasRequired_cacheHas) return _cacheHas;
  hasRequired_cacheHas = 1;
  function cacheHas(cache, key) {
    return cache.has(key);
  }
  _cacheHas = cacheHas;
  return _cacheHas;
}
var _equalArrays;
var hasRequired_equalArrays;
function require_equalArrays() {
  if (hasRequired_equalArrays) return _equalArrays;
  hasRequired_equalArrays = 1;
  var SetCache = require_SetCache(), arraySome = require_arraySome(), cacheHas = require_cacheHas();
  var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
  function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
    var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
    if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
      return false;
    }
    var arrStacked = stack.get(array);
    var othStacked = stack.get(other);
    if (arrStacked && othStacked) {
      return arrStacked == other && othStacked == array;
    }
    var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0;
    stack.set(array, other);
    stack.set(other, array);
    while (++index2 < arrLength) {
      var arrValue = array[index2], othValue = other[index2];
      if (customizer) {
        var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack);
      }
      if (compared !== void 0) {
        if (compared) {
          continue;
        }
        result = false;
        break;
      }
      if (seen) {
        if (!arraySome(other, function(othValue2, othIndex) {
          if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
            return seen.push(othIndex);
          }
        })) {
          result = false;
          break;
        }
      } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
        result = false;
        break;
      }
    }
    stack["delete"](array);
    stack["delete"](other);
    return result;
  }
  _equalArrays = equalArrays;
  return _equalArrays;
}
var _mapToArray;
var hasRequired_mapToArray;
function require_mapToArray() {
  if (hasRequired_mapToArray) return _mapToArray;
  hasRequired_mapToArray = 1;
  function mapToArray(map) {
    var index2 = -1, result = Array(map.size);
    map.forEach(function(value, key) {
      result[++index2] = [key, value];
    });
    return result;
  }
  _mapToArray = mapToArray;
  return _mapToArray;
}
var _setToArray;
var hasRequired_setToArray;
function require_setToArray() {
  if (hasRequired_setToArray) return _setToArray;
  hasRequired_setToArray = 1;
  function setToArray(set) {
    var index2 = -1, result = Array(set.size);
    set.forEach(function(value) {
      result[++index2] = value;
    });
    return result;
  }
  _setToArray = setToArray;
  return _setToArray;
}
var _equalByTag;
var hasRequired_equalByTag;
function require_equalByTag() {
  if (hasRequired_equalByTag) return _equalByTag;
  hasRequired_equalByTag = 1;
  var Symbol2 = require_Symbol(), Uint8Array2 = require_Uint8Array(), eq = requireEq(), equalArrays = require_equalArrays(), mapToArray = require_mapToArray(), setToArray = require_setToArray();
  var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
  var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
  var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
  var symbolProto = Symbol2 ? Symbol2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
  function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
    switch (tag) {
      case dataViewTag:
        if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
          return false;
        }
        object = object.buffer;
        other = other.buffer;
      case arrayBufferTag:
        if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
          return false;
        }
        return true;
      case boolTag:
      case dateTag:
      case numberTag:
        return eq(+object, +other);
      case errorTag:
        return object.name == other.name && object.message == other.message;
      case regexpTag:
      case stringTag:
        return object == other + "";
      case mapTag:
        var convert = mapToArray;
      case setTag:
        var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
        convert || (convert = setToArray);
        if (object.size != other.size && !isPartial) {
          return false;
        }
        var stacked = stack.get(object);
        if (stacked) {
          return stacked == other;
        }
        bitmask |= COMPARE_UNORDERED_FLAG;
        stack.set(object, other);
        var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
        stack["delete"](object);
        return result;
      case symbolTag:
        if (symbolValueOf) {
          return symbolValueOf.call(object) == symbolValueOf.call(other);
        }
    }
    return false;
  }
  _equalByTag = equalByTag;
  return _equalByTag;
}
var _equalObjects;
var hasRequired_equalObjects;
function require_equalObjects() {
  if (hasRequired_equalObjects) return _equalObjects;
  hasRequired_equalObjects = 1;
  var getAllKeys = require_getAllKeys();
  var COMPARE_PARTIAL_FLAG = 1;
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
    var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
    if (objLength != othLength && !isPartial) {
      return false;
    }
    var index2 = objLength;
    while (index2--) {
      var key = objProps[index2];
      if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
        return false;
      }
    }
    var objStacked = stack.get(object);
    var othStacked = stack.get(other);
    if (objStacked && othStacked) {
      return objStacked == other && othStacked == object;
    }
    var result = true;
    stack.set(object, other);
    stack.set(other, object);
    var skipCtor = isPartial;
    while (++index2 < objLength) {
      key = objProps[index2];
      var objValue = object[key], othValue = other[key];
      if (customizer) {
        var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
      }
      if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
        result = false;
        break;
      }
      skipCtor || (skipCtor = key == "constructor");
    }
    if (result && !skipCtor) {
      var objCtor = object.constructor, othCtor = other.constructor;
      if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
        result = false;
      }
    }
    stack["delete"](object);
    stack["delete"](other);
    return result;
  }
  _equalObjects = equalObjects;
  return _equalObjects;
}
var _baseIsEqualDeep;
var hasRequired_baseIsEqualDeep;
function require_baseIsEqualDeep() {
  if (hasRequired_baseIsEqualDeep) return _baseIsEqualDeep;
  hasRequired_baseIsEqualDeep = 1;
  var Stack = require_Stack(), equalArrays = require_equalArrays(), equalByTag = require_equalByTag(), equalObjects = require_equalObjects(), getTag = require_getTag(), isArray = requireIsArray(), isBuffer2 = requireIsBuffer(), isTypedArray = requireIsTypedArray();
  var COMPARE_PARTIAL_FLAG = 1;
  var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
    var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
    objTag = objTag == argsTag ? objectTag : objTag;
    othTag = othTag == argsTag ? objectTag : othTag;
    var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
    if (isSameTag && isBuffer2(object)) {
      if (!isBuffer2(other)) {
        return false;
      }
      objIsArr = true;
      objIsObj = false;
    }
    if (isSameTag && !objIsObj) {
      stack || (stack = new Stack());
      return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
    }
    if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
      var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
      if (objIsWrapped || othIsWrapped) {
        var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
        stack || (stack = new Stack());
        return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
      }
    }
    if (!isSameTag) {
      return false;
    }
    stack || (stack = new Stack());
    return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
  }
  _baseIsEqualDeep = baseIsEqualDeep;
  return _baseIsEqualDeep;
}
var _baseIsEqual;
var hasRequired_baseIsEqual;
function require_baseIsEqual() {
  if (hasRequired_baseIsEqual) return _baseIsEqual;
  hasRequired_baseIsEqual = 1;
  var baseIsEqualDeep = require_baseIsEqualDeep(), isObjectLike = requireIsObjectLike();
  function baseIsEqual(value, other, bitmask, customizer, stack) {
    if (value === other) {
      return true;
    }
    if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
      return value !== value && other !== other;
    }
    return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
  }
  _baseIsEqual = baseIsEqual;
  return _baseIsEqual;
}
var _baseIsMatch;
var hasRequired_baseIsMatch;
function require_baseIsMatch() {
  if (hasRequired_baseIsMatch) return _baseIsMatch;
  hasRequired_baseIsMatch = 1;
  var Stack = require_Stack(), baseIsEqual = require_baseIsEqual();
  var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
  function baseIsMatch(object, source, matchData, customizer) {
    var index2 = matchData.length, length = index2, noCustomizer = !customizer;
    if (object == null) {
      return !length;
    }
    object = Object(object);
    while (index2--) {
      var data = matchData[index2];
      if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
        return false;
      }
    }
    while (++index2 < length) {
      data = matchData[index2];
      var key = data[0], objValue = object[key], srcValue = data[1];
      if (noCustomizer && data[2]) {
        if (objValue === void 0 && !(key in object)) {
          return false;
        }
      } else {
        var stack = new Stack();
        if (customizer) {
          var result = customizer(objValue, srcValue, key, object, source, stack);
        }
        if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {
          return false;
        }
      }
    }
    return true;
  }
  _baseIsMatch = baseIsMatch;
  return _baseIsMatch;
}
var _isStrictComparable;
var hasRequired_isStrictComparable;
function require_isStrictComparable() {
  if (hasRequired_isStrictComparable) return _isStrictComparable;
  hasRequired_isStrictComparable = 1;
  var isObject2 = requireIsObject();
  function isStrictComparable(value) {
    return value === value && !isObject2(value);
  }
  _isStrictComparable = isStrictComparable;
  return _isStrictComparable;
}
var _getMatchData;
var hasRequired_getMatchData;
function require_getMatchData() {
  if (hasRequired_getMatchData) return _getMatchData;
  hasRequired_getMatchData = 1;
  var isStrictComparable = require_isStrictComparable(), keys = requireKeys();
  function getMatchData(object) {
    var result = keys(object), length = result.length;
    while (length--) {
      var key = result[length], value = object[key];
      result[length] = [key, value, isStrictComparable(value)];
    }
    return result;
  }
  _getMatchData = getMatchData;
  return _getMatchData;
}
var _matchesStrictComparable;
var hasRequired_matchesStrictComparable;
function require_matchesStrictComparable() {
  if (hasRequired_matchesStrictComparable) return _matchesStrictComparable;
  hasRequired_matchesStrictComparable = 1;
  function matchesStrictComparable(key, srcValue) {
    return function(object) {
      if (object == null) {
        return false;
      }
      return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));
    };
  }
  _matchesStrictComparable = matchesStrictComparable;
  return _matchesStrictComparable;
}
var _baseMatches;
var hasRequired_baseMatches;
function require_baseMatches() {
  if (hasRequired_baseMatches) return _baseMatches;
  hasRequired_baseMatches = 1;
  var baseIsMatch = require_baseIsMatch(), getMatchData = require_getMatchData(), matchesStrictComparable = require_matchesStrictComparable();
  function baseMatches(source) {
    var matchData = getMatchData(source);
    if (matchData.length == 1 && matchData[0][2]) {
      return matchesStrictComparable(matchData[0][0], matchData[0][1]);
    }
    return function(object) {
      return object === source || baseIsMatch(object, source, matchData);
    };
  }
  _baseMatches = baseMatches;
  return _baseMatches;
}
var isSymbol_1;
var hasRequiredIsSymbol;
function requireIsSymbol() {
  if (hasRequiredIsSymbol) return isSymbol_1;
  hasRequiredIsSymbol = 1;
  var baseGetTag = require_baseGetTag(), isObjectLike = requireIsObjectLike();
  var symbolTag = "[object Symbol]";
  function isSymbol(value) {
    return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
  }
  isSymbol_1 = isSymbol;
  return isSymbol_1;
}
var _isKey;
var hasRequired_isKey;
function require_isKey() {
  if (hasRequired_isKey) return _isKey;
  hasRequired_isKey = 1;
  var isArray = requireIsArray(), isSymbol = requireIsSymbol();
  var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
  function isKey(value, object) {
    if (isArray(value)) {
      return false;
    }
    var type = typeof value;
    if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
      return true;
    }
    return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
  }
  _isKey = isKey;
  return _isKey;
}
var memoize_1;
var hasRequiredMemoize;
function requireMemoize() {
  if (hasRequiredMemoize) return memoize_1;
  hasRequiredMemoize = 1;
  var MapCache = require_MapCache();
  var FUNC_ERROR_TEXT = "Expected a function";
  function memoize(func, resolver) {
    if (typeof func != "function" || resolver != null && typeof resolver != "function") {
      throw new TypeError(FUNC_ERROR_TEXT);
    }
    var memoized = function() {
      var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
      if (cache.has(key)) {
        return cache.get(key);
      }
      var result = func.apply(this, args);
      memoized.cache = cache.set(key, result) || cache;
      return result;
    };
    memoized.cache = new (memoize.Cache || MapCache)();
    return memoized;
  }
  memoize.Cache = MapCache;
  memoize_1 = memoize;
  return memoize_1;
}
var _memoizeCapped;
var hasRequired_memoizeCapped;
function require_memoizeCapped() {
  if (hasRequired_memoizeCapped) return _memoizeCapped;
  hasRequired_memoizeCapped = 1;
  var memoize = requireMemoize();
  var MAX_MEMOIZE_SIZE = 500;
  function memoizeCapped(func) {
    var result = memoize(func, function(key) {
      if (cache.size === MAX_MEMOIZE_SIZE) {
        cache.clear();
      }
      return key;
    });
    var cache = result.cache;
    return result;
  }
  _memoizeCapped = memoizeCapped;
  return _memoizeCapped;
}
var _stringToPath;
var hasRequired_stringToPath;
function require_stringToPath() {
  if (hasRequired_stringToPath) return _stringToPath;
  hasRequired_stringToPath = 1;
  var memoizeCapped = require_memoizeCapped();
  var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
  var reEscapeChar = /\\(\\)?/g;
  var stringToPath = memoizeCapped(function(string) {
    var result = [];
    if (string.charCodeAt(0) === 46) {
      result.push("");
    }
    string.replace(rePropName, function(match, number, quote, subString) {
      result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
    });
    return result;
  });
  _stringToPath = stringToPath;
  return _stringToPath;
}
var _arrayMap;
var hasRequired_arrayMap;
function require_arrayMap() {
  if (hasRequired_arrayMap) return _arrayMap;
  hasRequired_arrayMap = 1;
  function arrayMap2(array, iteratee) {
    var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);
    while (++index2 < length) {
      result[index2] = iteratee(array[index2], index2, array);
    }
    return result;
  }
  _arrayMap = arrayMap2;
  return _arrayMap;
}
var _baseToString;
var hasRequired_baseToString;
function require_baseToString() {
  if (hasRequired_baseToString) return _baseToString;
  hasRequired_baseToString = 1;
  var Symbol2 = require_Symbol(), arrayMap2 = require_arrayMap(), isArray = requireIsArray(), isSymbol = requireIsSymbol();
  var symbolProto = Symbol2 ? Symbol2.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
  function baseToString(value) {
    if (typeof value == "string") {
      return value;
    }
    if (isArray(value)) {
      return arrayMap2(value, baseToString) + "";
    }
    if (isSymbol(value)) {
      return symbolToString ? symbolToString.call(value) : "";
    }
    var result = value + "";
    return result == "0" && 1 / value == -Infinity ? "-0" : result;
  }
  _baseToString = baseToString;
  return _baseToString;
}
var toString_1;
var hasRequiredToString;
function requireToString() {
  if (hasRequiredToString) return toString_1;
  hasRequiredToString = 1;
  var baseToString = require_baseToString();
  function toString(value) {
    return value == null ? "" : baseToString(value);
  }
  toString_1 = toString;
  return toString_1;
}
var _castPath;
var hasRequired_castPath;
function require_castPath() {
  if (hasRequired_castPath) return _castPath;
  hasRequired_castPath = 1;
  var isArray = requireIsArray(), isKey = require_isKey(), stringToPath = require_stringToPath(), toString = requireToString();
  function castPath(value, object) {
    if (isArray(value)) {
      return value;
    }
    return isKey(value, object) ? [value] : stringToPath(toString(value));
  }
  _castPath = castPath;
  return _castPath;
}
var _toKey;
var hasRequired_toKey;
function require_toKey() {
  if (hasRequired_toKey) return _toKey;
  hasRequired_toKey = 1;
  var isSymbol = requireIsSymbol();
  function toKey(value) {
    if (typeof value == "string" || isSymbol(value)) {
      return value;
    }
    var result = value + "";
    return result == "0" && 1 / value == -Infinity ? "-0" : result;
  }
  _toKey = toKey;
  return _toKey;
}
var _baseGet;
var hasRequired_baseGet;
function require_baseGet() {
  if (hasRequired_baseGet) return _baseGet;
  hasRequired_baseGet = 1;
  var castPath = require_castPath(), toKey = require_toKey();
  function baseGet(object, path) {
    path = castPath(path, object);
    var index2 = 0, length = path.length;
    while (object != null && index2 < length) {
      object = object[toKey(path[index2++])];
    }
    return index2 && index2 == length ? object : void 0;
  }
  _baseGet = baseGet;
  return _baseGet;
}
var get_1;
var hasRequiredGet;
function requireGet() {
  if (hasRequiredGet) return get_1;
  hasRequiredGet = 1;
  var baseGet = require_baseGet();
  function get(object, path, defaultValue) {
    var result = object == null ? void 0 : baseGet(object, path);
    return result === void 0 ? defaultValue : result;
  }
  get_1 = get;
  return get_1;
}
var _baseHasIn;
var hasRequired_baseHasIn;
function require_baseHasIn() {
  if (hasRequired_baseHasIn) return _baseHasIn;
  hasRequired_baseHasIn = 1;
  function baseHasIn(object, key) {
    return object != null && key in Object(object);
  }
  _baseHasIn = baseHasIn;
  return _baseHasIn;
}
var _hasPath;
var hasRequired_hasPath;
function require_hasPath() {
  if (hasRequired_hasPath) return _hasPath;
  hasRequired_hasPath = 1;
  var castPath = require_castPath(), isArguments = requireIsArguments(), isArray = requireIsArray(), isIndex = require_isIndex(), isLength = requireIsLength(), toKey = require_toKey();
  function hasPath(object, path, hasFunc) {
    path = castPath(path, object);
    var index2 = -1, length = path.length, result = false;
    while (++index2 < length) {
      var key = toKey(path[index2]);
      if (!(result = object != null && hasFunc(object, key))) {
        break;
      }
      object = object[key];
    }
    if (result || ++index2 != length) {
      return result;
    }
    length = object == null ? 0 : object.length;
    return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));
  }
  _hasPath = hasPath;
  return _hasPath;
}
var hasIn_1;
var hasRequiredHasIn;
function requireHasIn() {
  if (hasRequiredHasIn) return hasIn_1;
  hasRequiredHasIn = 1;
  var baseHasIn = require_baseHasIn(), hasPath = require_hasPath();
  function hasIn(object, path) {
    return object != null && hasPath(object, path, baseHasIn);
  }
  hasIn_1 = hasIn;
  return hasIn_1;
}
var _baseMatchesProperty;
var hasRequired_baseMatchesProperty;
function require_baseMatchesProperty() {
  if (hasRequired_baseMatchesProperty) return _baseMatchesProperty;
  hasRequired_baseMatchesProperty = 1;
  var baseIsEqual = require_baseIsEqual(), get = requireGet(), hasIn = requireHasIn(), isKey = require_isKey(), isStrictComparable = require_isStrictComparable(), matchesStrictComparable = require_matchesStrictComparable(), toKey = require_toKey();
  var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
  function baseMatchesProperty(path, srcValue) {
    if (isKey(path) && isStrictComparable(srcValue)) {
      return matchesStrictComparable(toKey(path), srcValue);
    }
    return function(object) {
      var objValue = get(object, path);
      return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
    };
  }
  _baseMatchesProperty = baseMatchesProperty;
  return _baseMatchesProperty;
}
var _baseProperty;
var hasRequired_baseProperty;
function require_baseProperty() {
  if (hasRequired_baseProperty) return _baseProperty;
  hasRequired_baseProperty = 1;
  function baseProperty(key) {
    return function(object) {
      return object == null ? void 0 : object[key];
    };
  }
  _baseProperty = baseProperty;
  return _baseProperty;
}
var _basePropertyDeep;
var hasRequired_basePropertyDeep;
function require_basePropertyDeep() {
  if (hasRequired_basePropertyDeep) return _basePropertyDeep;
  hasRequired_basePropertyDeep = 1;
  var baseGet = require_baseGet();
  function basePropertyDeep(path) {
    return function(object) {
      return baseGet(object, path);
    };
  }
  _basePropertyDeep = basePropertyDeep;
  return _basePropertyDeep;
}
var property_1;
var hasRequiredProperty;
function requireProperty() {
  if (hasRequiredProperty) return property_1;
  hasRequiredProperty = 1;
  var baseProperty = require_baseProperty(), basePropertyDeep = require_basePropertyDeep(), isKey = require_isKey(), toKey = require_toKey();
  function property(path) {
    return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
  }
  property_1 = property;
  return property_1;
}
var _baseIteratee;
var hasRequired_baseIteratee;
function require_baseIteratee() {
  if (hasRequired_baseIteratee) return _baseIteratee;
  hasRequired_baseIteratee = 1;
  var baseMatches = require_baseMatches(), baseMatchesProperty = require_baseMatchesProperty(), identity = requireIdentity(), isArray = requireIsArray(), property = requireProperty();
  function baseIteratee(value) {
    if (typeof value == "function") {
      return value;
    }
    if (value == null) {
      return identity;
    }
    if (typeof value == "object") {
      return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
    }
    return property(value);
  }
  _baseIteratee = baseIteratee;
  return _baseIteratee;
}
var filter_1;
var hasRequiredFilter;
function requireFilter() {
  if (hasRequiredFilter) return filter_1;
  hasRequiredFilter = 1;
  var arrayFilter2 = require_arrayFilter(), baseFilter = require_baseFilter(), baseIteratee = require_baseIteratee(), isArray = requireIsArray();
  function filter(collection, predicate) {
    var func = isArray(collection) ? arrayFilter2 : baseFilter;
    return func(collection, baseIteratee(predicate, 3));
  }
  filter_1 = filter;
  return filter_1;
}
var _baseHas;
var hasRequired_baseHas;
function require_baseHas() {
  if (hasRequired_baseHas) return _baseHas;
  hasRequired_baseHas = 1;
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function baseHas(object, key) {
    return object != null && hasOwnProperty.call(object, key);
  }
  _baseHas = baseHas;
  return _baseHas;
}
var has_1;
var hasRequiredHas;
function requireHas() {
  if (hasRequiredHas) return has_1;
  hasRequiredHas = 1;
  var baseHas = require_baseHas(), hasPath = require_hasPath();
  function has(object, path) {
    return object != null && hasPath(object, path, baseHas);
  }
  has_1 = has;
  return has_1;
}
var isEmpty_1;
var hasRequiredIsEmpty;
function requireIsEmpty() {
  if (hasRequiredIsEmpty) return isEmpty_1;
  hasRequiredIsEmpty = 1;
  var baseKeys = require_baseKeys(), getTag = require_getTag(), isArguments = requireIsArguments(), isArray = requireIsArray(), isArrayLike = requireIsArrayLike(), isBuffer2 = requireIsBuffer(), isPrototype = require_isPrototype(), isTypedArray = requireIsTypedArray();
  var mapTag = "[object Map]", setTag = "[object Set]";
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  function isEmpty(value) {
    if (value == null) {
      return true;
    }
    if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer2(value) || isTypedArray(value) || isArguments(value))) {
      return !value.length;
    }
    var tag = getTag(value);
    if (tag == mapTag || tag == setTag) {
      return !value.size;
    }
    if (isPrototype(value)) {
      return !baseKeys(value).length;
    }
    for (var key in value) {
      if (hasOwnProperty.call(value, key)) {
        return false;
      }
    }
    return true;
  }
  isEmpty_1 = isEmpty;
  return isEmpty_1;
}
var isUndefined_1;
var hasRequiredIsUndefined;
function requireIsUndefined() {
  if (hasRequiredIsUndefined) return isUndefined_1;
  hasRequiredIsUndefined = 1;
  function isUndefined(value) {
    return value === void 0;
  }
  isUndefined_1 = isUndefined;
  return isUndefined_1;
}
var _baseMap;
var hasRequired_baseMap;
function require_baseMap() {
  if (hasRequired_baseMap) return _baseMap;
  hasRequired_baseMap = 1;
  var baseEach = require_baseEach(), isArrayLike = requireIsArrayLike();
  function baseMap(collection, iteratee) {
    var index2 = -1, result = isArrayLike(collection) ? Array(collection.length) : [];
    baseEach(collection, function(value, key, collection2) {
      result[++index2] = iteratee(value, key, collection2);
    });
    return result;
  }
  _baseMap = baseMap;
  return _baseMap;
}
var map_1;
var hasRequiredMap;
function requireMap() {
  if (hasRequiredMap) return map_1;
  hasRequiredMap = 1;
  var arrayMap2 = require_arrayMap(), baseIteratee = require_baseIteratee(), baseMap = require_baseMap(), isArray = requireIsArray();
  function map(collection, iteratee) {
    var func = isArray(collection) ? arrayMap2 : baseMap;
    return func(collection, baseIteratee(iteratee, 3));
  }
  map_1 = map;
  return map_1;
}
var _arrayReduce;
var hasRequired_arrayReduce;
function require_arrayReduce() {
  if (hasRequired_arrayReduce) return _arrayReduce;
  hasRequired_arrayReduce = 1;
  function arrayReduce(array, iteratee, accumulator, initAccum) {
    var index2 = -1, length = array == null ? 0 : array.length;
    if (initAccum && length) {
      accumulator = array[++index2];
    }
    while (++index2 < length) {
      accumulator = iteratee(accumulator, array[index2], index2, array);
    }
    return accumulator;
  }
  _arrayReduce = arrayReduce;
  return _arrayReduce;
}
var _baseReduce;
var hasRequired_baseReduce;
function require_baseReduce() {
  if (hasRequired_baseReduce) return _baseReduce;
  hasRequired_baseReduce = 1;
  function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
    eachFunc(collection, function(value, index2, collection2) {
      accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index2, collection2);
    });
    return accumulator;
  }
  _baseReduce = baseReduce;
  return _baseReduce;
}
var reduce_1;
var hasRequiredReduce;
function requireReduce() {
  if (hasRequiredReduce) return reduce_1;
  hasRequiredReduce = 1;
  var arrayReduce = require_arrayReduce(), baseEach = require_baseEach(), baseIteratee = require_baseIteratee(), baseReduce = require_baseReduce(), isArray = requireIsArray();
  function reduce(collection, iteratee, accumulator) {
    var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
    return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);
  }
  reduce_1 = reduce;
  return reduce_1;
}
var isString_1;
var hasRequiredIsString;
function requireIsString() {
  if (hasRequiredIsString) return isString_1;
  hasRequiredIsString = 1;
  var baseGetTag = require_baseGetTag(), isArray = requireIsArray(), isObjectLike = requireIsObjectLike();
  var stringTag = "[object String]";
  function isString(value) {
    return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
  }
  isString_1 = isString;
  return isString_1;
}
var _asciiSize;
var hasRequired_asciiSize;
function require_asciiSize() {
  if (hasRequired_asciiSize) return _asciiSize;
  hasRequired_asciiSize = 1;
  var baseProperty = require_baseProperty();
  var asciiSize = baseProperty("length");
  _asciiSize = asciiSize;
  return _asciiSize;
}
var _hasUnicode;
var hasRequired_hasUnicode;
function require_hasUnicode() {
  if (hasRequired_hasUnicode) return _hasUnicode;
  hasRequired_hasUnicode = 1;
  var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = "\\ufe0e\\ufe0f";
  var rsZWJ = "\\u200d";
  var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
  function hasUnicode(string) {
    return reHasUnicode.test(string);
  }
  _hasUnicode = hasUnicode;
  return _hasUnicode;
}
var _unicodeSize;
var hasRequired_unicodeSize;
function require_unicodeSize() {
  if (hasRequired_unicodeSize) return _unicodeSize;
  hasRequired_unicodeSize = 1;
  var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = "\\ufe0e\\ufe0f";
  var rsAstral = "[" + rsAstralRange + "]", rsCombo = "[" + rsComboRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsZWJ = "\\u200d";
  var reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
  var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
  function unicodeSize(string) {
    var result = reUnicode.lastIndex = 0;
    while (reUnicode.test(string)) {
      ++result;
    }
    return result;
  }
  _unicodeSize = unicodeSize;
  return _unicodeSize;
}
var _stringSize;
var hasRequired_stringSize;
function require_stringSize() {
  if (hasRequired_stringSize) return _stringSize;
  hasRequired_stringSize = 1;
  var asciiSize = require_asciiSize(), hasUnicode = require_hasUnicode(), unicodeSize = require_unicodeSize();
  function stringSize(string) {
    return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);
  }
  _stringSize = stringSize;
  return _stringSize;
}
var size_1;
var hasRequiredSize;
function requireSize() {
  if (hasRequiredSize) return size_1;
  hasRequiredSize = 1;
  var baseKeys = require_baseKeys(), getTag = require_getTag(), isArrayLike = requireIsArrayLike(), isString = requireIsString(), stringSize = require_stringSize();
  var mapTag = "[object Map]", setTag = "[object Set]";
  function size(collection) {
    if (collection == null) {
      return 0;
    }
    if (isArrayLike(collection)) {
      return isString(collection) ? stringSize(collection) : collection.length;
    }
    var tag = getTag(collection);
    if (tag == mapTag || tag == setTag) {
      return collection.size;
    }
    return baseKeys(collection).length;
  }
  size_1 = size;
  return size_1;
}
var transform_1;
var hasRequiredTransform;
function requireTransform() {
  if (hasRequiredTransform) return transform_1;
  hasRequiredTransform = 1;
  var arrayEach = require_arrayEach(), baseCreate = require_baseCreate(), baseForOwn = require_baseForOwn(), baseIteratee = require_baseIteratee(), getPrototype = require_getPrototype(), isArray = requireIsArray(), isBuffer2 = requireIsBuffer(), isFunction = requireIsFunction(), isObject2 = requireIsObject(), isTypedArray = requireIsTypedArray();
  function transform(object, iteratee, accumulator) {
    var isArr = isArray(object), isArrLike = isArr || isBuffer2(object) || isTypedArray(object);
    iteratee = baseIteratee(iteratee, 4);
    if (accumulator == null) {
      var Ctor = object && object.constructor;
      if (isArrLike) {
        accumulator = isArr ? new Ctor() : [];
      } else if (isObject2(object)) {
        accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
      } else {
        accumulator = {};
      }
    }
    (isArrLike ? arrayEach : baseForOwn)(object, function(value, index2, object2) {
      return iteratee(accumulator, value, index2, object2);
    });
    return accumulator;
  }
  transform_1 = transform;
  return transform_1;
}
var _isFlattenable;
var hasRequired_isFlattenable;
function require_isFlattenable() {
  if (hasRequired_isFlattenable) return _isFlattenable;
  hasRequired_isFlattenable = 1;
  var Symbol2 = require_Symbol(), isArguments = requireIsArguments(), isArray = requireIsArray();
  var spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : void 0;
  function isFlattenable(value) {
    return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
  }
  _isFlattenable = isFlattenable;
  return _isFlattenable;
}
var _baseFlatten;
var hasRequired_baseFlatten;
function require_baseFlatten() {
  if (hasRequired_baseFlatten) return _baseFlatten;
  hasRequired_baseFlatten = 1;
  var arrayPush = require_arrayPush(), isFlattenable = require_isFlattenable();
  function baseFlatten(array, depth, predicate, isStrict, result) {
    var index2 = -1, length = array.length;
    predicate || (predicate = isFlattenable);
    result || (result = []);
    while (++index2 < length) {
      var value = array[index2];
      if (depth > 0 && predicate(value)) {
        if (depth > 1) {
          baseFlatten(value, depth - 1, predicate, isStrict, result);
        } else {
          arrayPush(result, value);
        }
      } else if (!isStrict) {
        result[result.length] = value;
      }
    }
    return result;
  }
  _baseFlatten = baseFlatten;
  return _baseFlatten;
}
var _apply;
var hasRequired_apply;
function require_apply() {
  if (hasRequired_apply) return _apply;
  hasRequired_apply = 1;
  function apply(func, thisArg, args) {
    switch (args.length) {
      case 0:
        return func.call(thisArg);
      case 1:
        return func.call(thisArg, args[0]);
      case 2:
        return func.call(thisArg, args[0], args[1]);
      case 3:
        return func.call(thisArg, args[0], args[1], args[2]);
    }
    return func.apply(thisArg, args);
  }
  _apply = apply;
  return _apply;
}
var _overRest;
var hasRequired_overRest;
function require_overRest() {
  if (hasRequired_overRest) return _overRest;
  hasRequired_overRest = 1;
  var apply = require_apply();
  var nativeMax = Math.max;
  function overRest(func, start, transform) {
    start = nativeMax(start === void 0 ? func.length - 1 : start, 0);
    return function() {
      var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);
      while (++index2 < length) {
        array[index2] = args[start + index2];
      }
      index2 = -1;
      var otherArgs = Array(start + 1);
      while (++index2 < start) {
        otherArgs[index2] = args[index2];
      }
      otherArgs[start] = transform(array);
      return apply(func, this, otherArgs);
    };
  }
  _overRest = overRest;
  return _overRest;
}
var _baseSetToString;
var hasRequired_baseSetToString;
function require_baseSetToString() {
  if (hasRequired_baseSetToString) return _baseSetToString;
  hasRequired_baseSetToString = 1;
  var constant = requireConstant(), defineProperty = require_defineProperty(), identity = requireIdentity();
  var baseSetToString = !defineProperty ? identity : function(func, string) {
    return defineProperty(func, "toString", {
      "configurable": true,
      "enumerable": false,
      "value": constant(string),
      "writable": true
    });
  };
  _baseSetToString = baseSetToString;
  return _baseSetToString;
}
var _shortOut;
var hasRequired_shortOut;
function require_shortOut() {
  if (hasRequired_shortOut) return _shortOut;
  hasRequired_shortOut = 1;
  var HOT_COUNT = 800, HOT_SPAN = 16;
  var nativeNow = Date.now;
  function shortOut(func) {
    var count = 0, lastCalled = 0;
    return function() {
      var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
      lastCalled = stamp;
      if (remaining > 0) {
        if (++count >= HOT_COUNT) {
          return arguments[0];
        }
      } else {
        count = 0;
      }
      return func.apply(void 0, arguments);
    };
  }
  _shortOut = shortOut;
  return _shortOut;
}
var _setToString;
var hasRequired_setToString;
function require_setToString() {
  if (hasRequired_setToString) return _setToString;
  hasRequired_setToString = 1;
  var baseSetToString = require_baseSetToString(), shortOut = require_shortOut();
  var setToString = shortOut(baseSetToString);
  _setToString = setToString;
  return _setToString;
}
var _baseRest;
var hasRequired_baseRest;
function require_baseRest() {
  if (hasRequired_baseRest) return _baseRest;
  hasRequired_baseRest = 1;
  var identity = requireIdentity(), overRest = require_overRest(), setToString = require_setToString();
  function baseRest(func, start) {
    return setToString(overRest(func, start, identity), func + "");
  }
  _baseRest = baseRest;
  return _baseRest;
}
var _baseFindIndex;
var hasRequired_baseFindIndex;
function require_baseFindIndex() {
  if (hasRequired_baseFindIndex) return _baseFindIndex;
  hasRequired_baseFindIndex = 1;
  function baseFindIndex(array, predicate, fromIndex, fromRight) {
    var length = array.length, index2 = fromIndex + (fromRight ? 1 : -1);
    while (fromRight ? index2-- : ++index2 < length) {
      if (predicate(array[index2], index2, array)) {
        return index2;
      }
    }
    return -1;
  }
  _baseFindIndex = baseFindIndex;
  return _baseFindIndex;
}
var _baseIsNaN;
var hasRequired_baseIsNaN;
function require_baseIsNaN() {
  if (hasRequired_baseIsNaN) return _baseIsNaN;
  hasRequired_baseIsNaN = 1;
  function baseIsNaN(value) {
    return value !== value;
  }
  _baseIsNaN = baseIsNaN;
  return _baseIsNaN;
}
var _strictIndexOf;
var hasRequired_strictIndexOf;
function require_strictIndexOf() {
  if (hasRequired_strictIndexOf) return _strictIndexOf;
  hasRequired_strictIndexOf = 1;
  function strictIndexOf(array, value, fromIndex) {
    var index2 = fromIndex - 1, length = array.length;
    while (++index2 < length) {
      if (array[index2] === value) {
        return index2;
      }
    }
    return -1;
  }
  _strictIndexOf = strictIndexOf;
  return _strictIndexOf;
}
var _baseIndexOf;
var hasRequired_baseIndexOf;
function require_baseIndexOf() {
  if (hasRequired_baseIndexOf) return _baseIndexOf;
  hasRequired_baseIndexOf = 1;
  var baseFindIndex = require_baseFindIndex(), baseIsNaN = require_baseIsNaN(), strictIndexOf = require_strictIndexOf();
  function baseIndexOf(array, value, fromIndex) {
    return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
  }
  _baseIndexOf = baseIndexOf;
  return _baseIndexOf;
}
var _arrayIncludes;
var hasRequired_arrayIncludes;
function require_arrayIncludes() {
  if (hasRequired_arrayIncludes) return _arrayIncludes;
  hasRequired_arrayIncludes = 1;
  var baseIndexOf = require_baseIndexOf();
  function arrayIncludes(array, value) {
    var length = array == null ? 0 : array.length;
    return !!length && baseIndexOf(array, value, 0) > -1;
  }
  _arrayIncludes = arrayIncludes;
  return _arrayIncludes;
}
var _arrayIncludesWith;
var hasRequired_arrayIncludesWith;
function require_arrayIncludesWith() {
  if (hasRequired_arrayIncludesWith) return _arrayIncludesWith;
  hasRequired_arrayIncludesWith = 1;
  function arrayIncludesWith(array, value, comparator) {
    var index2 = -1, length = array == null ? 0 : array.length;
    while (++index2 < length) {
      if (comparator(value, array[index2])) {
        return true;
      }
    }
    return false;
  }
  _arrayIncludesWith = arrayIncludesWith;
  return _arrayIncludesWith;
}
var noop_1;
var hasRequiredNoop;
function requireNoop() {
  if (hasRequiredNoop) return noop_1;
  hasRequiredNoop = 1;
  function noop() {
  }
  noop_1 = noop;
  return noop_1;
}
var _createSet;
var hasRequired_createSet;
function require_createSet() {
  if (hasRequired_createSet) return _createSet;
  hasRequired_createSet = 1;
  var Set2 = require_Set(), noop = requireNoop(), setToArray = require_setToArray();
  var INFINITY = 1 / 0;
  var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values) {
    return new Set2(values);
  };
  _createSet = createSet;
  return _createSet;
}
var _baseUniq;
var hasRequired_baseUniq;
function require_baseUniq() {
  if (hasRequired_baseUniq) return _baseUniq;
  hasRequired_baseUniq = 1;
  var SetCache = require_SetCache(), arrayIncludes = require_arrayIncludes(), arrayIncludesWith = require_arrayIncludesWith(), cacheHas = require_cacheHas(), createSet = require_createSet(), setToArray = require_setToArray();
  var LARGE_ARRAY_SIZE = 200;
  function baseUniq(array, iteratee, comparator) {
    var index2 = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
    if (comparator) {
      isCommon = false;
      includes = arrayIncludesWith;
    } else if (length >= LARGE_ARRAY_SIZE) {
      var set = iteratee ? null : createSet(array);
      if (set) {
        return setToArray(set);
      }
      isCommon = false;
      includes = cacheHas;
      seen = new SetCache();
    } else {
      seen = iteratee ? [] : result;
    }
    outer:
      while (++index2 < length) {
        var value = array[index2], computed = iteratee ? iteratee(value) : value;
        value = comparator || value !== 0 ? value : 0;
        if (isCommon && computed === computed) {
          var seenIndex = seen.length;
          while (seenIndex--) {
            if (seen[seenIndex] === computed) {
              continue outer;
            }
          }
          if (iteratee) {
            seen.push(computed);
          }
          result.push(value);
        } else if (!includes(seen, computed, comparator)) {
          if (seen !== result) {
            seen.push(computed);
          }
          result.push(value);
        }
      }
    return result;
  }
  _baseUniq = baseUniq;
  return _baseUniq;
}
var isArrayLikeObject_1;
var hasRequiredIsArrayLikeObject;
function requireIsArrayLikeObject() {
  if (hasRequiredIsArrayLikeObject) return isArrayLikeObject_1;
  hasRequiredIsArrayLikeObject = 1;
  var isArrayLike = requireIsArrayLike(), isObjectLike = requireIsObjectLike();
  function isArrayLikeObject(value) {
    return isObjectLike(value) && isArrayLike(value);
  }
  isArrayLikeObject_1 = isArrayLikeObject;
  return isArrayLikeObject_1;
}
var union_1;
var hasRequiredUnion;
function requireUnion() {
  if (hasRequiredUnion) return union_1;
  hasRequiredUnion = 1;
  var baseFlatten = require_baseFlatten(), baseRest = require_baseRest(), baseUniq = require_baseUniq(), isArrayLikeObject = requireIsArrayLikeObject();
  var union = baseRest(function(arrays) {
    return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
  });
  union_1 = union;
  return union_1;
}
var _baseValues;
var hasRequired_baseValues;
function require_baseValues() {
  if (hasRequired_baseValues) return _baseValues;
  hasRequired_baseValues = 1;
  var arrayMap2 = require_arrayMap();
  function baseValues(object, props) {
    return arrayMap2(props, function(key) {
      return object[key];
    });
  }
  _baseValues = baseValues;
  return _baseValues;
}
var values_1;
var hasRequiredValues;
function requireValues() {
  if (hasRequiredValues) return values_1;
  hasRequiredValues = 1;
  var baseValues = require_baseValues(), keys = requireKeys();
  function values(object) {
    return object == null ? [] : baseValues(object, keys(object));
  }
  values_1 = values;
  return values_1;
}
var lodash_1$1;
var hasRequiredLodash$1;
function requireLodash$1() {
  if (hasRequiredLodash$1) return lodash_1$1;
  hasRequiredLodash$1 = 1;
  var lodash;
  if (typeof commonjsRequire === "function") {
    try {
      lodash = {
        clone: requireClone(),
        constant: requireConstant(),
        each: requireEach(),
        filter: requireFilter(),
        has: requireHas(),
        isArray: requireIsArray(),
        isEmpty: requireIsEmpty(),
        isFunction: requireIsFunction(),
        isUndefined: requireIsUndefined(),
        keys: requireKeys(),
        map: requireMap(),
        reduce: requireReduce(),
        size: requireSize(),
        transform: requireTransform(),
        union: requireUnion(),
        values: requireValues()
      };
    } catch (e) {
    }
  }
  if (!lodash) {
    lodash = window._;
  }
  lodash_1$1 = lodash;
  return lodash_1$1;
}
var graph;
var hasRequiredGraph;
function requireGraph() {
  if (hasRequiredGraph) return graph;
  hasRequiredGraph = 1;
  var _ = requireLodash$1();
  graph = Graph;
  var DEFAULT_EDGE_NAME = "\0";
  var GRAPH_NODE = "\0";
  var EDGE_KEY_DELIM = "";
  function Graph(opts) {
    this._isDirected = _.has(opts, "directed") ? opts.directed : true;
    this._isMultigraph = _.has(opts, "multigraph") ? opts.multigraph : false;
    this._isCompound = _.has(opts, "compound") ? opts.compound : false;
    this._label = void 0;
    this._defaultNodeLabelFn = _.constant(void 0);
    this._defaultEdgeLabelFn = _.constant(void 0);
    this._nodes = {};
    if (this._isCompound) {
      this._parent = {};
      this._children = {};
      this._children[GRAPH_NODE] = {};
    }
    this._in = {};
    this._preds = {};
    this._out = {};
    this._sucs = {};
    this._edgeObjs = {};
    this._edgeLabels = {};
  }
  Graph.prototype._nodeCount = 0;
  Graph.prototype._edgeCount = 0;
  Graph.prototype.isDirected = function() {
    return this._isDirected;
  };
  Graph.prototype.isMultigraph = function() {
    return this._isMultigraph;
  };
  Graph.prototype.isCompound = function() {
    return this._isCompound;
  };
  Graph.prototype.setGraph = function(label) {
    this._label = label;
    return this;
  };
  Graph.prototype.graph = function() {
    return this._label;
  };
  Graph.prototype.setDefaultNodeLabel = function(newDefault) {
    if (!_.isFunction(newDefault)) {
      newDefault = _.constant(newDefault);
    }
    this._defaultNodeLabelFn = newDefault;
    return this;
  };
  Graph.prototype.nodeCount = function() {
    return this._nodeCount;
  };
  Graph.prototype.nodes = function() {
    return _.keys(this._nodes);
  };
  Graph.prototype.sources = function() {
    var self2 = this;
    return _.filter(this.nodes(), function(v) {
      return _.isEmpty(self2._in[v]);
    });
  };
  Graph.prototype.sinks = function() {
    var self2 = this;
    return _.filter(this.nodes(), function(v) {
      return _.isEmpty(self2._out[v]);
    });
  };
  Graph.prototype.setNodes = function(vs, value) {
    var args = arguments;
    var self2 = this;
    _.each(vs, function(v) {
      if (args.length > 1) {
        self2.setNode(v, value);
      } else {
        self2.setNode(v);
      }
    });
    return this;
  };
  Graph.prototype.setNode = function(v, value) {
    if (_.has(this._nodes, v)) {
      if (arguments.length > 1) {
        this._nodes[v] = value;
      }
      return this;
    }
    this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
    if (this._isCompound) {
      this._parent[v] = GRAPH_NODE;
      this._children[v] = {};
      this._children[GRAPH_NODE][v] = true;
    }
    this._in[v] = {};
    this._preds[v] = {};
    this._out[v] = {};
    this._sucs[v] = {};
    ++this._nodeCount;
    return this;
  };
  Graph.prototype.node = function(v) {
    return this._nodes[v];
  };
  Graph.prototype.hasNode = function(v) {
    return _.has(this._nodes, v);
  };
  Graph.prototype.removeNode = function(v) {
    var self2 = this;
    if (_.has(this._nodes, v)) {
      var removeEdge = function(e) {
        self2.removeEdge(self2._edgeObjs[e]);
      };
      delete this._nodes[v];
      if (this._isCompound) {
        this._removeFromParentsChildList(v);
        delete this._parent[v];
        _.each(this.children(v), function(child) {
          self2.setParent(child);
        });
        delete this._children[v];
      }
      _.each(_.keys(this._in[v]), removeEdge);
      delete this._in[v];
      delete this._preds[v];
      _.each(_.keys(this._out[v]), removeEdge);
      delete this._out[v];
      delete this._sucs[v];
      --this._nodeCount;
    }
    return this;
  };
  Graph.prototype.setParent = function(v, parent) {
    if (!this._isCompound) {
      throw new Error("Cannot set parent in a non-compound graph");
    }
    if (_.isUndefined(parent)) {
      parent = GRAPH_NODE;
    } else {
      parent += "";
      for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {
        if (ancestor === v) {
          throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle");
        }
      }
      this.setNode(parent);
    }
    this.setNode(v);
    this._removeFromParentsChildList(v);
    this._parent[v] = parent;
    this._children[parent][v] = true;
    return this;
  };
  Graph.prototype._removeFromParentsChildList = function(v) {
    delete this._children[this._parent[v]][v];
  };
  Graph.prototype.parent = function(v) {
    if (this._isCompound) {
      var parent = this._parent[v];
      if (parent !== GRAPH_NODE) {
        return parent;
      }
    }
  };
  Graph.prototype.children = function(v) {
    if (_.isUndefined(v)) {
      v = GRAPH_NODE;
    }
    if (this._isCompound) {
      var children = this._children[v];
      if (children) {
        return _.keys(children);
      }
    } else if (v === GRAPH_NODE) {
      return this.nodes();
    } else if (this.hasNode(v)) {
      return [];
    }
  };
  Graph.prototype.predecessors = function(v) {
    var predsV = this._preds[v];
    if (predsV) {
      return _.keys(predsV);
    }
  };
  Graph.prototype.successors = function(v) {
    var sucsV = this._sucs[v];
    if (sucsV) {
      return _.keys(sucsV);
    }
  };
  Graph.prototype.neighbors = function(v) {
    var preds = this.predecessors(v);
    if (preds) {
      return _.union(preds, this.successors(v));
    }
  };
  Graph.prototype.isLeaf = function(v) {
    var neighbors;
    if (this.isDirected()) {
      neighbors = this.successors(v);
    } else {
      neighbors = this.neighbors(v);
    }
    return neighbors.length === 0;
  };
  Graph.prototype.filterNodes = function(filter) {
    var copy = new this.constructor({
      directed: this._isDirected,
      multigraph: this._isMultigraph,
      compound: this._isCompound
    });
    copy.setGraph(this.graph());
    var self2 = this;
    _.each(this._nodes, function(value, v) {
      if (filter(v)) {
        copy.setNode(v, value);
      }
    });
    _.each(this._edgeObjs, function(e) {
      if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
        copy.setEdge(e, self2.edge(e));
      }
    });
    var parents = {};
    function findParent(v) {
      var parent = self2.parent(v);
      if (parent === void 0 || copy.hasNode(parent)) {
        parents[v] = parent;
        return parent;
      } else if (parent in parents) {
        return parents[parent];
      } else {
        return findParent(parent);
      }
    }
    if (this._isCompound) {
      _.each(copy.nodes(), function(v) {
        copy.setParent(v, findParent(v));
      });
    }
    return copy;
  };
  Graph.prototype.setDefaultEdgeLabel = function(newDefault) {
    if (!_.isFunction(newDefault)) {
      newDefault = _.constant(newDefault);
    }
    this._defaultEdgeLabelFn = newDefault;
    return this;
  };
  Graph.prototype.edgeCount = function() {
    return this._edgeCount;
  };
  Graph.prototype.edges = function() {
    return _.values(this._edgeObjs);
  };
  Graph.prototype.setPath = function(vs, value) {
    var self2 = this;
    var args = arguments;
    _.reduce(vs, function(v, w) {
      if (args.length > 1) {
        self2.setEdge(v, w, value);
      } else {
        self2.setEdge(v, w);
      }
      return w;
    });
    return this;
  };
  Graph.prototype.setEdge = function() {
    var v, w, name, value;
    var valueSpecified = false;
    var arg0 = arguments[0];
    if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
      v = arg0.v;
      w = arg0.w;
      name = arg0.name;
      if (arguments.length === 2) {
        value = arguments[1];
        valueSpecified = true;
      }
    } else {
      v = arg0;
      w = arguments[1];
      name = arguments[3];
      if (arguments.length > 2) {
        value = arguments[2];
        valueSpecified = true;
      }
    }
    v = "" + v;
    w = "" + w;
    if (!_.isUndefined(name)) {
      name = "" + name;
    }
    var e = edgeArgsToId(this._isDirected, v, w, name);
    if (_.has(this._edgeLabels, e)) {
      if (valueSpecified) {
        this._edgeLabels[e] = value;
      }
      return this;
    }
    if (!_.isUndefined(name) && !this._isMultigraph) {
      throw new Error("Cannot set a named edge when isMultigraph = false");
    }
    this.setNode(v);
    this.setNode(w);
    this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
    var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
    v = edgeObj.v;
    w = edgeObj.w;
    Object.freeze(edgeObj);
    this._edgeObjs[e] = edgeObj;
    incrementOrInitEntry(this._preds[w], v);
    incrementOrInitEntry(this._sucs[v], w);
    this._in[w][e] = edgeObj;
    this._out[v][e] = edgeObj;
    this._edgeCount++;
    return this;
  };
  Graph.prototype.edge = function(v, w, name) {
    var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
    return this._edgeLabels[e];
  };
  Graph.prototype.hasEdge = function(v, w, name) {
    var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
    return _.has(this._edgeLabels, e);
  };
  Graph.prototype.removeEdge = function(v, w, name) {
    var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
    var edge = this._edgeObjs[e];
    if (edge) {
      v = edge.v;
      w = edge.w;
      delete this._edgeLabels[e];
      delete this._edgeObjs[e];
      decrementOrRemoveEntry(this._preds[w], v);
      decrementOrRemoveEntry(this._sucs[v], w);
      delete this._in[w][e];
      delete this._out[v][e];
      this._edgeCount--;
    }
    return this;
  };
  Graph.prototype.inEdges = function(v, u) {
    var inV = this._in[v];
    if (inV) {
      var edges = _.values(inV);
      if (!u) {
        return edges;
      }
      return _.filter(edges, function(edge) {
        return edge.v === u;
      });
    }
  };
  Graph.prototype.outEdges = function(v, w) {
    var outV = this._out[v];
    if (outV) {
      var edges = _.values(outV);
      if (!w) {
        return edges;
      }
      return _.filter(edges, function(edge) {
        return edge.w === w;
      });
    }
  };
  Graph.prototype.nodeEdges = function(v, w) {
    var inEdges = this.inEdges(v, w);
    if (inEdges) {
      return inEdges.concat(this.outEdges(v, w));
    }
  };
  function incrementOrInitEntry(map, k) {
    if (map[k]) {
      map[k]++;
    } else {
      map[k] = 1;
    }
  }
  function decrementOrRemoveEntry(map, k) {
    if (!--map[k]) {
      delete map[k];
    }
  }
  function edgeArgsToId(isDirected, v_, w_, name) {
    var v = "" + v_;
    var w = "" + w_;
    if (!isDirected && v > w) {
      var tmp = v;
      v = w;
      w = tmp;
    }
    return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);
  }
  function edgeArgsToObj(isDirected, v_, w_, name) {
    var v = "" + v_;
    var w = "" + w_;
    if (!isDirected && v > w) {
      var tmp = v;
      v = w;
      w = tmp;
    }
    var edgeObj = { v, w };
    if (name) {
      edgeObj.name = name;
    }
    return edgeObj;
  }
  function edgeObjToId(isDirected, edgeObj) {
    return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
  }
  return graph;
}
var version$1;
var hasRequiredVersion$1;
function requireVersion$1() {
  if (hasRequiredVersion$1) return version$1;
  hasRequiredVersion$1 = 1;
  version$1 = "2.1.8";
  return version$1;
}
var lib;
var hasRequiredLib;
function requireLib() {
  if (hasRequiredLib) return lib;
  hasRequiredLib = 1;
  lib = {
    Graph: requireGraph(),
    version: requireVersion$1()
  };
  return lib;
}
var json;
var hasRequiredJson;
function requireJson() {
  if (hasRequiredJson) return json;
  hasRequiredJson = 1;
  var _ = requireLodash$1();
  var Graph = requireGraph();
  json = {
    write,
    read
  };
  function write(g) {
    var json2 = {
      options: {
        directed: g.isDirected(),
        multigraph: g.isMultigraph(),
        compound: g.isCompound()
      },
      nodes: writeNodes(g),
      edges: writeEdges(g)
    };
    if (!_.isUndefined(g.graph())) {
      json2.value = _.clone(g.graph());
    }
    return json2;
  }
  function writeNodes(g) {
    return _.map(g.nodes(), function(v) {
      var nodeValue = g.node(v);
      var parent = g.parent(v);
      var node = { v };
      if (!_.isUndefined(nodeValue)) {
        node.value = nodeValue;
      }
      if (!_.isUndefined(parent)) {
        node.parent = parent;
      }
      return node;
    });
  }
  function writeEdges(g) {
    return _.map(g.edges(), function(e) {
      var edgeValue = g.edge(e);
      var edge = { v: e.v, w: e.w };
      if (!_.isUndefined(e.name)) {
        edge.name = e.name;
      }
      if (!_.isUndefined(edgeValue)) {
        edge.value = edgeValue;
      }
      return edge;
    });
  }
  function read(json2) {
    var g = new Graph(json2.options).setGraph(json2.value);
    _.each(json2.nodes, function(entry) {
      g.setNode(entry.v, entry.value);
      if (entry.parent) {
        g.setParent(entry.v, entry.parent);
      }
    });
    _.each(json2.edges, function(entry) {
      g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);
    });
    return g;
  }
  return json;
}
var components_1;
var hasRequiredComponents;
function requireComponents() {
  if (hasRequiredComponents) return components_1;
  hasRequiredComponents = 1;
  var _ = requireLodash$1();
  components_1 = components;
  function components(g) {
    var visited = {};
    var cmpts = [];
    var cmpt;
    function dfs(v) {
      if (_.has(visited, v)) return;
      visited[v] = true;
      cmpt.push(v);
      _.each(g.successors(v), dfs);
      _.each(g.predecessors(v), dfs);
    }
    _.each(g.nodes(), function(v) {
      cmpt = [];
      dfs(v);
      if (cmpt.length) {
        cmpts.push(cmpt);
      }
    });
    return cmpts;
  }
  return components_1;
}
var priorityQueue;
var hasRequiredPriorityQueue;
function requirePriorityQueue() {
  if (hasRequiredPriorityQueue) return priorityQueue;
  hasRequiredPriorityQueue = 1;
  var _ = requireLodash$1();
  priorityQueue = PriorityQueue;
  function PriorityQueue() {
    this._arr = [];
    this._keyIndices = {};
  }
  PriorityQueue.prototype.size = function() {
    return this._arr.length;
  };
  PriorityQueue.prototype.keys = function() {
    return this._arr.map(function(x) {
      return x.key;
    });
  };
  PriorityQueue.prototype.has = function(key) {
    return _.has(this._keyIndices, key);
  };
  PriorityQueue.prototype.priority = function(key) {
    var index2 = this._keyIndices[key];
    if (index2 !== void 0) {
      return this._arr[index2].priority;
    }
  };
  PriorityQueue.prototype.min = function() {
    if (this.size() === 0) {
      throw new Error("Queue underflow");
    }
    return this._arr[0].key;
  };
  PriorityQueue.prototype.add = function(key, priority) {
    var keyIndices = this._keyIndices;
    key = String(key);
    if (!_.has(keyIndices, key)) {
      var arr = this._arr;
      var index2 = arr.length;
      keyIndices[key] = index2;
      arr.push({ key, priority });
      this._decrease(index2);
      return true;
    }
    return false;
  };
  PriorityQueue.prototype.removeMin = function() {
    this._swap(0, this._arr.length - 1);
    var min2 = this._arr.pop();
    delete this._keyIndices[min2.key];
    this._heapify(0);
    return min2.key;
  };
  PriorityQueue.prototype.decrease = function(key, priority) {
    var index2 = this._keyIndices[key];
    if (priority > this._arr[index2].priority) {
      throw new Error("New priority is greater than current priority. Key: " + key + " Old: " + this._arr[index2].priority + " New: " + priority);
    }
    this._arr[index2].priority = priority;
    this._decrease(index2);
  };
  PriorityQueue.prototype._heapify = function(i) {
    var arr = this._arr;
    var l = 2 * i;
    var r = l + 1;
    var largest = i;
    if (l < arr.length) {
      largest = arr[l].priority < arr[largest].priority ? l : largest;
      if (r < arr.length) {
        largest = arr[r].priority < arr[largest].priority ? r : largest;
      }
      if (largest !== i) {
        this._swap(i, largest);
        this._heapify(largest);
      }
    }
  };
  PriorityQueue.prototype._decrease = function(index2) {
    var arr = this._arr;
    var priority = arr[index2].priority;
    var parent;
    while (index2 !== 0) {
      parent = index2 >> 1;
      if (arr[parent].priority < priority) {
        break;
      }
      this._swap(index2, parent);
      index2 = parent;
    }
  };
  PriorityQueue.prototype._swap = function(i, j) {
    var arr = this._arr;
    var keyIndices = this._keyIndices;
    var origArrI = arr[i];
    var origArrJ = arr[j];
    arr[i] = origArrJ;
    arr[j] = origArrI;
    keyIndices[origArrJ.key] = i;
    keyIndices[origArrI.key] = j;
  };
  return priorityQueue;
}
var dijkstra_1;
var hasRequiredDijkstra;
function requireDijkstra() {
  if (hasRequiredDijkstra) return dijkstra_1;
  hasRequiredDijkstra = 1;
  var _ = requireLodash$1();
  var PriorityQueue = requirePriorityQueue();
  dijkstra_1 = dijkstra;
  var DEFAULT_WEIGHT_FUNC = _.constant(1);
  function dijkstra(g, source, weightFn, edgeFn) {
    return runDijkstra(
      g,
      String(source),
      weightFn || DEFAULT_WEIGHT_FUNC,
      edgeFn || function(v) {
        return g.outEdges(v);
      }
    );
  }
  function runDijkstra(g, source, weightFn, edgeFn) {
    var results = {};
    var pq = new PriorityQueue();
    var v, vEntry;
    var updateNeighbors = function(edge) {
      var w = edge.v !== v ? edge.v : edge.w;
      var wEntry = results[w];
      var weight = weightFn(edge);
      var distance = vEntry.distance + weight;
      if (weight < 0) {
        throw new Error("dijkstra does not allow negative edge weights. Bad edge: " + edge + " Weight: " + weight);
      }
      if (distance < wEntry.distance) {
        wEntry.distance = distance;
        wEntry.predecessor = v;
        pq.decrease(w, distance);
      }
    };
    g.nodes().forEach(function(v2) {
      var distance = v2 === source ? 0 : Number.POSITIVE_INFINITY;
      results[v2] = { distance };
      pq.add(v2, distance);
    });
    while (pq.size() > 0) {
      v = pq.removeMin();
      vEntry = results[v];
      if (vEntry.distance === Number.POSITIVE_INFINITY) {
        break;
      }
      edgeFn(v).forEach(updateNeighbors);
    }
    return results;
  }
  return dijkstra_1;
}
var dijkstraAll_1;
var hasRequiredDijkstraAll;
function requireDijkstraAll() {
  if (hasRequiredDijkstraAll) return dijkstraAll_1;
  hasRequiredDijkstraAll = 1;
  var dijkstra = requireDijkstra();
  var _ = requireLodash$1();
  dijkstraAll_1 = dijkstraAll;
  function dijkstraAll(g, weightFunc, edgeFunc) {
    return _.transform(g.nodes(), function(acc, v) {
      acc[v] = dijkstra(g, v, weightFunc, edgeFunc);
    }, {});
  }
  return dijkstraAll_1;
}
var tarjan_1;
var hasRequiredTarjan;
function requireTarjan() {
  if (hasRequiredTarjan) return tarjan_1;
  hasRequiredTarjan = 1;
  var _ = requireLodash$1();
  tarjan_1 = tarjan;
  function tarjan(g) {
    var index2 = 0;
    var stack = [];
    var visited = {};
    var results = [];
    function dfs(v) {
      var entry = visited[v] = {
        onStack: true,
        lowlink: index2,
        index: index2++
      };
      stack.push(v);
      g.successors(v).forEach(function(w2) {
        if (!_.has(visited, w2)) {
          dfs(w2);
          entry.lowlink = Math.min(entry.lowlink, visited[w2].lowlink);
        } else if (visited[w2].onStack) {
          entry.lowlink = Math.min(entry.lowlink, visited[w2].index);
        }
      });
      if (entry.lowlink === entry.index) {
        var cmpt = [];
        var w;
        do {
          w = stack.pop();
          visited[w].onStack = false;
          cmpt.push(w);
        } while (v !== w);
        results.push(cmpt);
      }
    }
    g.nodes().forEach(function(v) {
      if (!_.has(visited, v)) {
        dfs(v);
      }
    });
    return results;
  }
  return tarjan_1;
}
var findCycles_1;
var hasRequiredFindCycles;
function requireFindCycles() {
  if (hasRequiredFindCycles) return findCycles_1;
  hasRequiredFindCycles = 1;
  var _ = requireLodash$1();
  var tarjan = requireTarjan();
  findCycles_1 = findCycles;
  function findCycles(g) {
    return _.filter(tarjan(g), function(cmpt) {
      return cmpt.length > 1 || cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]);
    });
  }
  return findCycles_1;
}
var floydWarshall_1;
var hasRequiredFloydWarshall;
function requireFloydWarshall() {
  if (hasRequiredFloydWarshall) return floydWarshall_1;
  hasRequiredFloydWarshall = 1;
  var _ = requireLodash$1();
  floydWarshall_1 = floydWarshall;
  var DEFAULT_WEIGHT_FUNC = _.constant(1);
  function floydWarshall(g, weightFn, edgeFn) {
    return runFloydWarshall(
      g,
      weightFn || DEFAULT_WEIGHT_FUNC,
      edgeFn || function(v) {
        return g.outEdges(v);
      }
    );
  }
  function runFloydWarshall(g, weightFn, edgeFn) {
    var results = {};
    var nodes = g.nodes();
    nodes.forEach(function(v) {
      results[v] = {};
      results[v][v] = { distance: 0 };
      nodes.forEach(function(w) {
        if (v !== w) {
          results[v][w] = { distance: Number.POSITIVE_INFINITY };
        }
      });
      edgeFn(v).forEach(function(edge) {
        var w = edge.v === v ? edge.w : edge.v;
        var d = weightFn(edge);
        results[v][w] = { distance: d, predecessor: v };
      });
    });
    nodes.forEach(function(k) {
      var rowK = results[k];
      nodes.forEach(function(i) {
        var rowI = results[i];
        nodes.forEach(function(j) {
          var ik = rowI[k];
          var kj = rowK[j];
          var ij = rowI[j];
          var altDistance = ik.distance + kj.distance;
          if (altDistance < ij.distance) {
            ij.distance = altDistance;
            ij.predecessor = kj.predecessor;
          }
        });
      });
    });
    return results;
  }
  return floydWarshall_1;
}
var topsort_1;
var hasRequiredTopsort;
function requireTopsort() {
  if (hasRequiredTopsort) return topsort_1;
  hasRequiredTopsort = 1;
  var _ = requireLodash$1();
  topsort_1 = topsort;
  topsort.CycleException = CycleException;
  function topsort(g) {
    var visited = {};
    var stack = {};
    var results = [];
    function visit(node) {
      if (_.has(stack, node)) {
        throw new CycleException();
      }
      if (!_.has(visited, node)) {
        stack[node] = true;
        visited[node] = true;
        _.each(g.predecessors(node), visit);
        delete stack[node];
        results.push(node);
      }
    }
    _.each(g.sinks(), visit);
    if (_.size(visited) !== g.nodeCount()) {
      throw new CycleException();
    }
    return results;
  }
  function CycleException() {
  }
  CycleException.prototype = new Error();
  return topsort_1;
}
var isAcyclic_1;
var hasRequiredIsAcyclic;
function requireIsAcyclic() {
  if (hasRequiredIsAcyclic) return isAcyclic_1;
  hasRequiredIsAcyclic = 1;
  var topsort = requireTopsort();
  isAcyclic_1 = isAcyclic;
  function isAcyclic(g) {
    try {
      topsort(g);
    } catch (e) {
      if (e instanceof topsort.CycleException) {
        return false;
      }
      throw e;
    }
    return true;
  }
  return isAcyclic_1;
}
var dfs_1;
var hasRequiredDfs;
function requireDfs() {
  if (hasRequiredDfs) return dfs_1;
  hasRequiredDfs = 1;
  var _ = requireLodash$1();
  dfs_1 = dfs;
  function dfs(g, vs, order) {
    if (!_.isArray(vs)) {
      vs = [vs];
    }
    var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
    var acc = [];
    var visited = {};
    _.each(vs, function(v) {
      if (!g.hasNode(v)) {
        throw new Error("Graph does not have node: " + v);
      }
      doDfs(g, v, order === "post", visited, navigation, acc);
    });
    return acc;
  }
  function doDfs(g, v, postorder, visited, navigation, acc) {
    if (!_.has(visited, v)) {
      visited[v] = true;
      if (!postorder) {
        acc.push(v);
      }
      _.each(navigation(v), function(w) {
        doDfs(g, w, postorder, visited, navigation, acc);
      });
      if (postorder) {
        acc.push(v);
      }
    }
  }
  return dfs_1;
}
var postorder_1;
var hasRequiredPostorder;
function requirePostorder() {
  if (hasRequiredPostorder) return postorder_1;
  hasRequiredPostorder = 1;
  var dfs = requireDfs();
  postorder_1 = postorder;
  function postorder(g, vs) {
    return dfs(g, vs, "post");
  }
  return postorder_1;
}
var preorder_1;
var hasRequiredPreorder;
function requirePreorder() {
  if (hasRequiredPreorder) return preorder_1;
  hasRequiredPreorder = 1;
  var dfs = requireDfs();
  preorder_1 = preorder;
  function preorder(g, vs) {
    return dfs(g, vs, "pre");
  }
  return preorder_1;
}
var prim_1;
var hasRequiredPrim;
function requirePrim() {
  if (hasRequiredPrim) return prim_1;
  hasRequiredPrim = 1;
  var _ = requireLodash$1();
  var Graph = requireGraph();
  var PriorityQueue = requirePriorityQueue();
  prim_1 = prim;
  function prim(g, weightFunc) {
    var result = new Graph();
    var parents = {};
    var pq = new PriorityQueue();
    var v;
    function updateNeighbors(edge) {
      var w = edge.v === v ? edge.w : edge.v;
      var pri = pq.priority(w);
      if (pri !== void 0) {
        var edgeWeight = weightFunc(edge);
        if (edgeWeight < pri) {
          parents[w] = v;
          pq.decrease(w, edgeWeight);
        }
      }
    }
    if (g.nodeCount() === 0) {
      return result;
    }
    _.each(g.nodes(), function(v2) {
      pq.add(v2, Number.POSITIVE_INFINITY);
      result.setNode(v2);
    });
    pq.decrease(g.nodes()[0], 0);
    var init = false;
    while (pq.size() > 0) {
      v = pq.removeMin();
      if (_.has(parents, v)) {
        result.setEdge(v, parents[v]);
      } else if (init) {
        throw new Error("Input graph is not connected: " + g);
      } else {
        init = true;
      }
      g.nodeEdges(v).forEach(updateNeighbors);
    }
    return result;
  }
  return prim_1;
}
var alg;
var hasRequiredAlg;
function requireAlg() {
  if (hasRequiredAlg) return alg;
  hasRequiredAlg = 1;
  alg = {
    components: requireComponents(),
    dijkstra: requireDijkstra(),
    dijkstraAll: requireDijkstraAll(),
    findCycles: requireFindCycles(),
    floydWarshall: requireFloydWarshall(),
    isAcyclic: requireIsAcyclic(),
    postorder: requirePostorder(),
    preorder: requirePreorder(),
    prim: requirePrim(),
    tarjan: requireTarjan(),
    topsort: requireTopsort()
  };
  return alg;
}
var graphlib;
var hasRequiredGraphlib$1;
function requireGraphlib$1() {
  if (hasRequiredGraphlib$1) return graphlib;
  hasRequiredGraphlib$1 = 1;
  var lib2 = requireLib();
  graphlib = {
    Graph: lib2.Graph,
    json: requireJson(),
    alg: requireAlg(),
    version: lib2.version
  };
  return graphlib;
}
var graphlib_1;
var hasRequiredGraphlib;
function requireGraphlib() {
  if (hasRequiredGraphlib) return graphlib_1;
  hasRequiredGraphlib = 1;
  var graphlib2;
  if (typeof commonjsRequire === "function") {
    try {
      graphlib2 = requireGraphlib$1();
    } catch (e) {
    }
  }
  if (!graphlib2) {
    graphlib2 = window.graphlib;
  }
  graphlib_1 = graphlib2;
  return graphlib_1;
}
var cloneDeep_1;
var hasRequiredCloneDeep;
function requireCloneDeep() {
  if (hasRequiredCloneDeep) return cloneDeep_1;
  hasRequiredCloneDeep = 1;
  var baseClone = require_baseClone();
  var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
  function cloneDeep(value) {
    return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
  }
  cloneDeep_1 = cloneDeep;
  return cloneDeep_1;
}
var _isIterateeCall;
var hasRequired_isIterateeCall;
function require_isIterateeCall() {
  if (hasRequired_isIterateeCall) return _isIterateeCall;
  hasRequired_isIterateeCall = 1;
  var eq = requireEq(), isArrayLike = requireIsArrayLike(), isIndex = require_isIndex(), isObject2 = requireIsObject();
  function isIterateeCall(value, index2, object) {
    if (!isObject2(object)) {
      return false;
    }
    var type = typeof index2;
    if (type == "number" ? isArrayLike(object) && isIndex(index2, object.length) : type == "string" && index2 in object) {
      return eq(object[index2], value);
    }
    return false;
  }
  _isIterateeCall = isIterateeCall;
  return _isIterateeCall;
}
var defaults_1;
var hasRequiredDefaults;
function requireDefaults() {
  if (hasRequiredDefaults) return defaults_1;
  hasRequiredDefaults = 1;
  var baseRest = require_baseRest(), eq = requireEq(), isIterateeCall = require_isIterateeCall(), keysIn = requireKeysIn();
  var objectProto = Object.prototype;
  var hasOwnProperty = objectProto.hasOwnProperty;
  var defaults = baseRest(function(object, sources) {
    object = Object(object);
    var index2 = -1;
    var length = sources.length;
    var guard = length > 2 ? sources[2] : void 0;
    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
      length = 1;
    }
    while (++index2 < length) {
      var source = sources[index2];
      var props = keysIn(source);
      var propsIndex = -1;
      var propsLength = props.length;
      while (++propsIndex < propsLength) {
        var key = props[propsIndex];
        var value = object[key];
        if (value === void 0 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {
          object[key] = source[key];
        }
      }
    }
    return object;
  });
  defaults_1 = defaults;
  return defaults_1;
}
var _createFind;
var hasRequired_createFind;
function require_createFind() {
  if (hasRequired_createFind) return _createFind;
  hasRequired_createFind = 1;
  var baseIteratee = require_baseIteratee(), isArrayLike = requireIsArrayLike(), keys = requireKeys();
  function createFind(findIndexFunc) {
    return function(collection, predicate, fromIndex) {
      var iterable = Object(collection);
      if (!isArrayLike(collection)) {
        var iteratee = baseIteratee(predicate, 3);
        collection = keys(collection);
        predicate = function(key) {
          return iteratee(iterable[key], key, iterable);
        };
      }
      var index2 = findIndexFunc(collection, predicate, fromIndex);
      return index2 > -1 ? iterable[iteratee ? collection[index2] : index2] : void 0;
    };
  }
  _createFind = createFind;
  return _createFind;
}
var _trimmedEndIndex;
var hasRequired_trimmedEndIndex;
function require_trimmedEndIndex() {
  if (hasRequired_trimmedEndIndex) return _trimmedEndIndex;
  hasRequired_trimmedEndIndex = 1;
  var reWhitespace = /\s/;
  function trimmedEndIndex(string) {
    var index2 = string.length;
    while (index2-- && reWhitespace.test(string.charAt(index2))) {
    }
    return index2;
  }
  _trimmedEndIndex = trimmedEndIndex;
  return _trimmedEndIndex;
}
var _baseTrim;
var hasRequired_baseTrim;
function require_baseTrim() {
  if (hasRequired_baseTrim) return _baseTrim;
  hasRequired_baseTrim = 1;
  var trimmedEndIndex = require_trimmedEndIndex();
  var reTrimStart = /^\s+/;
  function baseTrim(string) {
    return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
  }
  _baseTrim = baseTrim;
  return _baseTrim;
}
var toNumber_1;
var hasRequiredToNumber;
function requireToNumber() {
  if (hasRequiredToNumber) return toNumber_1;
  hasRequiredToNumber = 1;
  var baseTrim = require_baseTrim(), isObject2 = requireIsObject(), isSymbol = requireIsSymbol();
  var NAN = 0 / 0;
  var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
  var reIsBinary = /^0b[01]+$/i;
  var reIsOctal = /^0o[0-7]+$/i;
  var freeParseInt = parseInt;
  function toNumber(value) {
    if (typeof value == "number") {
      return value;
    }
    if (isSymbol(value)) {
      return NAN;
    }
    if (isObject2(value)) {
      var other = typeof value.valueOf == "function" ? value.valueOf() : value;
      value = isObject2(other) ? other + "" : other;
    }
    if (typeof value != "string") {
      return value === 0 ? value : +value;
    }
    value = baseTrim(value);
    var isBinary = reIsBinary.test(value);
    return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
  }
  toNumber_1 = toNumber;
  return toNumber_1;
}
var toFinite_1;
var hasRequiredToFinite;
function requireToFinite() {
  if (hasRequiredToFinite) return toFinite_1;
  hasRequiredToFinite = 1;
  var toNumber = requireToNumber();
  var INFINITY = 1 / 0, MAX_INTEGER = 17976931348623157e292;
  function toFinite(value) {
    if (!value) {
      return value === 0 ? value : 0;
    }
    value = toNumber(value);
    if (value === INFINITY || value === -INFINITY) {
      var sign2 = value < 0 ? -1 : 1;
      return sign2 * MAX_INTEGER;
    }
    return value === value ? value : 0;
  }
  toFinite_1 = toFinite;
  return toFinite_1;
}
var toInteger_1;
var hasRequiredToInteger;
function requireToInteger() {
  if (hasRequiredToInteger) return toInteger_1;
  hasRequiredToInteger = 1;
  var toFinite = requireToFinite();
  function toInteger(value) {
    var result = toFinite(value), remainder = result % 1;
    return result === result ? remainder ? result - remainder : result : 0;
  }
  toInteger_1 = toInteger;
  return toInteger_1;
}
var findIndex_1;
var hasRequiredFindIndex;
function requireFindIndex() {
  if (hasRequiredFindIndex) return findIndex_1;
  hasRequiredFindIndex = 1;
  var baseFindIndex = require_baseFindIndex(), baseIteratee = require_baseIteratee(), toInteger = requireToInteger();
  var nativeMax = Math.max;
  function findIndex(array, predicate, fromIndex) {
    var length = array == null ? 0 : array.length;
    if (!length) {
      return -1;
    }
    var index2 = fromIndex == null ? 0 : toInteger(fromIndex);
    if (index2 < 0) {
      index2 = nativeMax(length + index2, 0);
    }
    return baseFindIndex(array, baseIteratee(predicate, 3), index2);
  }
  findIndex_1 = findIndex;
  return findIndex_1;
}
var find_1;
var hasRequiredFind;
function requireFind() {
  if (hasRequiredFind) return find_1;
  hasRequiredFind = 1;
  var createFind = require_createFind(), findIndex = requireFindIndex();
  var find = createFind(findIndex);
  find_1 = find;
  return find_1;
}
var flatten_1;
var hasRequiredFlatten;
function requireFlatten() {
  if (hasRequiredFlatten) return flatten_1;
  hasRequiredFlatten = 1;
  var baseFlatten = require_baseFlatten();
  function flatten(array) {
    var length = array == null ? 0 : array.length;
    return length ? baseFlatten(array, 1) : [];
  }
  flatten_1 = flatten;
  return flatten_1;
}
var forIn_1;
var hasRequiredForIn;
function requireForIn() {
  if (hasRequiredForIn) return forIn_1;
  hasRequiredForIn = 1;
  var baseFor = require_baseFor(), castFunction = require_castFunction(), keysIn = requireKeysIn();
  function forIn(object, iteratee) {
    return object == null ? object : baseFor(object, castFunction(iteratee), keysIn);
  }
  forIn_1 = forIn;
  return forIn_1;
}
var last_1;
var hasRequiredLast;
function requireLast() {
  if (hasRequiredLast) return last_1;
  hasRequiredLast = 1;
  function last(array) {
    var length = array == null ? 0 : array.length;
    return length ? array[length - 1] : void 0;
  }
  last_1 = last;
  return last_1;
}
var mapValues_1;
var hasRequiredMapValues;
function requireMapValues() {
  if (hasRequiredMapValues) return mapValues_1;
  hasRequiredMapValues = 1;
  var baseAssignValue = require_baseAssignValue(), baseForOwn = require_baseForOwn(), baseIteratee = require_baseIteratee();
  function mapValues(object, iteratee) {
    var result = {};
    iteratee = baseIteratee(iteratee, 3);
    baseForOwn(object, function(value, key, object2) {
      baseAssignValue(result, key, iteratee(value, key, object2));
    });
    return result;
  }
  mapValues_1 = mapValues;
  return mapValues_1;
}
var _baseExtremum;
var hasRequired_baseExtremum;
function require_baseExtremum() {
  if (hasRequired_baseExtremum) return _baseExtremum;
  hasRequired_baseExtremum = 1;
  var isSymbol = requireIsSymbol();
  function baseExtremum(array, iteratee, comparator) {
    var index2 = -1, length = array.length;
    while (++index2 < length) {
      var value = array[index2], current = iteratee(value);
      if (current != null && (computed === void 0 ? current === current && !isSymbol(current) : comparator(current, computed))) {
        var computed = current, result = value;
      }
    }
    return result;
  }
  _baseExtremum = baseExtremum;
  return _baseExtremum;
}
var _baseGt;
var hasRequired_baseGt;
function require_baseGt() {
  if (hasRequired_baseGt) return _baseGt;
  hasRequired_baseGt = 1;
  function baseGt(value, other) {
    return value > other;
  }
  _baseGt = baseGt;
  return _baseGt;
}
var max_1;
var hasRequiredMax;
function requireMax() {
  if (hasRequiredMax) return max_1;
  hasRequiredMax = 1;
  var baseExtremum = require_baseExtremum(), baseGt = require_baseGt(), identity = requireIdentity();
  function max2(array) {
    return array && array.length ? baseExtremum(array, identity, baseGt) : void 0;
  }
  max_1 = max2;
  return max_1;
}
var _assignMergeValue;
var hasRequired_assignMergeValue;
function require_assignMergeValue() {
  if (hasRequired_assignMergeValue) return _assignMergeValue;
  hasRequired_assignMergeValue = 1;
  var baseAssignValue = require_baseAssignValue(), eq = requireEq();
  function assignMergeValue(object, key, value) {
    if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {
      baseAssignValue(object, key, value);
    }
  }
  _assignMergeValue = assignMergeValue;
  return _assignMergeValue;
}
var isPlainObject_1;
var hasRequiredIsPlainObject;
function requireIsPlainObject() {
  if (hasRequiredIsPlainObject) return isPlainObject_1;
  hasRequiredIsPlainObject = 1;
  var baseGetTag = require_baseGetTag(), getPrototype = require_getPrototype(), isObjectLike = requireIsObjectLike();
  var objectTag = "[object Object]";
  var funcProto = Function.prototype, objectProto = Object.prototype;
  var funcToString = funcProto.toString;
  var hasOwnProperty = objectProto.hasOwnProperty;
  var objectCtorString = funcToString.call(Object);
  function isPlainObject(value) {
    if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
      return false;
    }
    var proto = getPrototype(value);
    if (proto === null) {
      return true;
    }
    var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
    return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
  }
  isPlainObject_1 = isPlainObject;
  return isPlainObject_1;
}
var _safeGet;
var hasRequired_safeGet;
function require_safeGet() {
  if (hasRequired_safeGet) return _safeGet;
  hasRequired_safeGet = 1;
  function safeGet(object, key) {
    if (key === "constructor" && typeof object[key] === "function") {
      return;
    }
    if (key == "__proto__") {
      return;
    }
    return object[key];
  }
  _safeGet = safeGet;
  return _safeGet;
}
var toPlainObject_1;
var hasRequiredToPlainObject;
function requireToPlainObject() {
  if (hasRequiredToPlainObject) return toPlainObject_1;
  hasRequiredToPlainObject = 1;
  var copyObject = require_copyObject(), keysIn = requireKeysIn();
  function toPlainObject(value) {
    return copyObject(value, keysIn(value));
  }
  toPlainObject_1 = toPlainObject;
  return toPlainObject_1;
}
var _baseMergeDeep;
var hasRequired_baseMergeDeep;
function require_baseMergeDeep() {
  if (hasRequired_baseMergeDeep) return _baseMergeDeep;
  hasRequired_baseMergeDeep = 1;
  var assignMergeValue = require_assignMergeValue(), cloneBuffer = require_cloneBuffer(), cloneTypedArray = require_cloneTypedArray(), copyArray = require_copyArray(), initCloneObject = require_initCloneObject(), isArguments = requireIsArguments(), isArray = requireIsArray(), isArrayLikeObject = requireIsArrayLikeObject(), isBuffer2 = requireIsBuffer(), isFunction = requireIsFunction(), isObject2 = requireIsObject(), isPlainObject = requireIsPlainObject(), isTypedArray = requireIsTypedArray(), safeGet = require_safeGet(), toPlainObject = requireToPlainObject();
  function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
    var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
    if (stacked) {
      assignMergeValue(object, key, stacked);
      return;
    }
    var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
    var isCommon = newValue === void 0;
    if (isCommon) {
      var isArr = isArray(srcValue), isBuff = !isArr && isBuffer2(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
      newValue = srcValue;
      if (isArr || isBuff || isTyped) {
        if (isArray(objValue)) {
          newValue = objValue;
        } else if (isArrayLikeObject(objValue)) {
          newValue = copyArray(objValue);
        } else if (isBuff) {
          isCommon = false;
          newValue = cloneBuffer(srcValue, true);
        } else if (isTyped) {
          isCommon = false;
          newValue = cloneTypedArray(srcValue, true);
        } else {
          newValue = [];
        }
      } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
        newValue = objValue;
        if (isArguments(objValue)) {
          newValue = toPlainObject(objValue);
        } else if (!isObject2(objValue) || isFunction(objValue)) {
          newValue = initCloneObject(srcValue);
        }
      } else {
        isCommon = false;
      }
    }
    if (isCommon) {
      stack.set(srcValue, newValue);
      mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
      stack["delete"](srcValue);
    }
    assignMergeValue(object, key, newValue);
  }
  _baseMergeDeep = baseMergeDeep;
  return _baseMergeDeep;
}
var _baseMerge;
var hasRequired_baseMerge;
function require_baseMerge() {
  if (hasRequired_baseMerge) return _baseMerge;
  hasRequired_baseMerge = 1;
  var Stack = require_Stack(), assignMergeValue = require_assignMergeValue(), baseFor = require_baseFor(), baseMergeDeep = require_baseMergeDeep(), isObject2 = requireIsObject(), keysIn = requireKeysIn(), safeGet = require_safeGet();
  function baseMerge(object, source, srcIndex, customizer, stack) {
    if (object === source) {
      return;
    }
    baseFor(source, function(srcValue, key) {
      stack || (stack = new Stack());
      if (isObject2(srcValue)) {
        baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
      } else {
        var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0;
        if (newValue === void 0) {
          newValue = srcValue;
        }
        assignMergeValue(object, key, newValue);
      }
    }, keysIn);
  }
  _baseMerge = baseMerge;
  return _baseMerge;
}
var _createAssigner;
var hasRequired_createAssigner;
function require_createAssigner() {
  if (hasRequired_createAssigner) return _createAssigner;
  hasRequired_createAssigner = 1;
  var baseRest = require_baseRest(), isIterateeCall = require_isIterateeCall();
  function createAssigner(assigner) {
    return baseRest(function(object, sources) {
      var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
      customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
      if (guard && isIterateeCall(sources[0], sources[1], guard)) {
        customizer = length < 3 ? void 0 : customizer;
        length = 1;
      }
      object = Object(object);
      while (++index2 < length) {
        var source = sources[index2];
        if (source) {
          assigner(object, source, index2, customizer);
        }
      }
      return object;
    });
  }
  _createAssigner = createAssigner;
  return _createAssigner;
}
var merge_1;
var hasRequiredMerge;
function requireMerge() {
  if (hasRequiredMerge) return merge_1;
  hasRequiredMerge = 1;
  var baseMerge = require_baseMerge(), createAssigner = require_createAssigner();
  var merge = createAssigner(function(object, source, srcIndex) {
    baseMerge(object, source, srcIndex);
  });
  merge_1 = merge;
  return merge_1;
}
var _baseLt;
var hasRequired_baseLt;
function require_baseLt() {
  if (hasRequired_baseLt) return _baseLt;
  hasRequired_baseLt = 1;
  function baseLt(value, other) {
    return value < other;
  }
  _baseLt = baseLt;
  return _baseLt;
}
var min_1;
var hasRequiredMin;
function requireMin() {
  if (hasRequiredMin) return min_1;
  hasRequiredMin = 1;
  var baseExtremum = require_baseExtremum(), baseLt = require_baseLt(), identity = requireIdentity();
  function min2(array) {
    return array && array.length ? baseExtremum(array, identity, baseLt) : void 0;
  }
  min_1 = min2;
  return min_1;
}
var minBy_1;
var hasRequiredMinBy;
function requireMinBy() {
  if (hasRequiredMinBy) return minBy_1;
  hasRequiredMinBy = 1;
  var baseExtremum = require_baseExtremum(), baseIteratee = require_baseIteratee(), baseLt = require_baseLt();
  function minBy(array, iteratee) {
    return array && array.length ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt) : void 0;
  }
  minBy_1 = minBy;
  return minBy_1;
}
var now_1;
var hasRequiredNow;
function requireNow() {
  if (hasRequiredNow) return now_1;
  hasRequiredNow = 1;
  var root = require_root();
  var now = function() {
    return root.Date.now();
  };
  now_1 = now;
  return now_1;
}
var _baseSet;
var hasRequired_baseSet;
function require_baseSet() {
  if (hasRequired_baseSet) return _baseSet;
  hasRequired_baseSet = 1;
  var assignValue = require_assignValue(), castPath = require_castPath(), isIndex = require_isIndex(), isObject2 = requireIsObject(), toKey = require_toKey();
  function baseSet(object, path, value, customizer) {
    if (!isObject2(object)) {
      return object;
    }
    path = castPath(path, object);
    var index2 = -1, length = path.length, lastIndex = length - 1, nested = object;
    while (nested != null && ++index2 < length) {
      var key = toKey(path[index2]), newValue = value;
      if (key === "__proto__" || key === "constructor" || key === "prototype") {
        return object;
      }
      if (index2 != lastIndex) {
        var objValue = nested[key];
        newValue = customizer ? customizer(objValue, key, nested) : void 0;
        if (newValue === void 0) {
          newValue = isObject2(objValue) ? objValue : isIndex(path[index2 + 1]) ? [] : {};
        }
      }
      assignValue(nested, key, newValue);
      nested = nested[key];
    }
    return object;
  }
  _baseSet = baseSet;
  return _baseSet;
}
var _basePickBy;
var hasRequired_basePickBy;
function require_basePickBy() {
  if (hasRequired_basePickBy) return _basePickBy;
  hasRequired_basePickBy = 1;
  var baseGet = require_baseGet(), baseSet = require_baseSet(), castPath = require_castPath();
  function basePickBy(object, paths, predicate) {
    var index2 = -1, length = paths.length, result = {};
    while (++index2 < length) {
      var path = paths[index2], value = baseGet(object, path);
      if (predicate(value, path)) {
        baseSet(result, castPath(path, object), value);
      }
    }
    return result;
  }
  _basePickBy = basePickBy;
  return _basePickBy;
}
var _basePick;
var hasRequired_basePick;
function require_basePick() {
  if (hasRequired_basePick) return _basePick;
  hasRequired_basePick = 1;
  var basePickBy = require_basePickBy(), hasIn = requireHasIn();
  function basePick(object, paths) {
    return basePickBy(object, paths, function(value, path) {
      return hasIn(object, path);
    });
  }
  _basePick = basePick;
  return _basePick;
}
var _flatRest;
var hasRequired_flatRest;
function require_flatRest() {
  if (hasRequired_flatRest) return _flatRest;
  hasRequired_flatRest = 1;
  var flatten = requireFlatten(), overRest = require_overRest(), setToString = require_setToString();
  function flatRest(func) {
    return setToString(overRest(func, void 0, flatten), func + "");
  }
  _flatRest = flatRest;
  return _flatRest;
}
var pick_1;
var hasRequiredPick;
function requirePick() {
  if (hasRequiredPick) return pick_1;
  hasRequiredPick = 1;
  var basePick = require_basePick(), flatRest = require_flatRest();
  var pick = flatRest(function(object, paths) {
    return object == null ? {} : basePick(object, paths);
  });
  pick_1 = pick;
  return pick_1;
}
var _baseRange;
var hasRequired_baseRange;
function require_baseRange() {
  if (hasRequired_baseRange) return _baseRange;
  hasRequired_baseRange = 1;
  var nativeCeil = Math.ceil, nativeMax = Math.max;
  function baseRange(start, end, step, fromRight) {
    var index2 = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result = Array(length);
    while (length--) {
      result[fromRight ? length : ++index2] = start;
      start += step;
    }
    return result;
  }
  _baseRange = baseRange;
  return _baseRange;
}
var _createRange;
var hasRequired_createRange;
function require_createRange() {
  if (hasRequired_createRange) return _createRange;
  hasRequired_createRange = 1;
  var baseRange = require_baseRange(), isIterateeCall = require_isIterateeCall(), toFinite = requireToFinite();
  function createRange(fromRight) {
    return function(start, end, step) {
      if (step && typeof step != "number" && isIterateeCall(start, end, step)) {
        end = step = void 0;
      }
      start = toFinite(start);
      if (end === void 0) {
        end = start;
        start = 0;
      } else {
        end = toFinite(end);
      }
      step = step === void 0 ? start < end ? 1 : -1 : toFinite(step);
      return baseRange(start, end, step, fromRight);
    };
  }
  _createRange = createRange;
  return _createRange;
}
var range_1;
var hasRequiredRange;
function requireRange() {
  if (hasRequiredRange) return range_1;
  hasRequiredRange = 1;
  var createRange = require_createRange();
  var range = createRange();
  range_1 = range;
  return range_1;
}
var _baseSortBy;
var hasRequired_baseSortBy;
function require_baseSortBy() {
  if (hasRequired_baseSortBy) return _baseSortBy;
  hasRequired_baseSortBy = 1;
  function baseSortBy(array, comparer) {
    var length = array.length;
    array.sort(comparer);
    while (length--) {
      array[length] = array[length].value;
    }
    return array;
  }
  _baseSortBy = baseSortBy;
  return _baseSortBy;
}
var _compareAscending;
var hasRequired_compareAscending;
function require_compareAscending() {
  if (hasRequired_compareAscending) return _compareAscending;
  hasRequired_compareAscending = 1;
  var isSymbol = requireIsSymbol();
  function compareAscending(value, other) {
    if (value !== other) {
      var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
      var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
      if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
        return 1;
      }
      if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
        return -1;
      }
    }
    return 0;
  }
  _compareAscending = compareAscending;
  return _compareAscending;
}
var _compareMultiple;
var hasRequired_compareMultiple;
function require_compareMultiple() {
  if (hasRequired_compareMultiple) return _compareMultiple;
  hasRequired_compareMultiple = 1;
  var compareAscending = require_compareAscending();
  function compareMultiple(object, other, orders) {
    var index2 = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;
    while (++index2 < length) {
      var result = compareAscending(objCriteria[index2], othCriteria[index2]);
      if (result) {
        if (index2 >= ordersLength) {
          return result;
        }
        var order = orders[index2];
        return result * (order == "desc" ? -1 : 1);
      }
    }
    return object.index - other.index;
  }
  _compareMultiple = compareMultiple;
  return _compareMultiple;
}
var _baseOrderBy;
var hasRequired_baseOrderBy;
function require_baseOrderBy() {
  if (hasRequired_baseOrderBy) return _baseOrderBy;
  hasRequired_baseOrderBy = 1;
  var arrayMap2 = require_arrayMap(), baseGet = require_baseGet(), baseIteratee = require_baseIteratee(), baseMap = require_baseMap(), baseSortBy = require_baseSortBy(), baseUnary = require_baseUnary(), compareMultiple = require_compareMultiple(), identity = requireIdentity(), isArray = requireIsArray();
  function baseOrderBy(collection, iteratees, orders) {
    if (iteratees.length) {
      iteratees = arrayMap2(iteratees, function(iteratee) {
        if (isArray(iteratee)) {
          return function(value) {
            return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
          };
        }
        return iteratee;
      });
    } else {
      iteratees = [identity];
    }
    var index2 = -1;
    iteratees = arrayMap2(iteratees, baseUnary(baseIteratee));
    var result = baseMap(collection, function(value, key, collection2) {
      var criteria = arrayMap2(iteratees, function(iteratee) {
        return iteratee(value);
      });
      return { "criteria": criteria, "index": ++index2, "value": value };
    });
    return baseSortBy(result, function(object, other) {
      return compareMultiple(object, other, orders);
    });
  }
  _baseOrderBy = baseOrderBy;
  return _baseOrderBy;
}
var sortBy_1;
var hasRequiredSortBy;
function requireSortBy() {
  if (hasRequiredSortBy) return sortBy_1;
  hasRequiredSortBy = 1;
  var baseFlatten = require_baseFlatten(), baseOrderBy = require_baseOrderBy(), baseRest = require_baseRest(), isIterateeCall = require_isIterateeCall();
  var sortBy = baseRest(function(collection, iteratees) {
    if (collection == null) {
      return [];
    }
    var length = iteratees.length;
    if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
      iteratees = [];
    } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
      iteratees = [iteratees[0]];
    }
    return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
  });
  sortBy_1 = sortBy;
  return sortBy_1;
}
var uniqueId_1;
var hasRequiredUniqueId;
function requireUniqueId() {
  if (hasRequiredUniqueId) return uniqueId_1;
  hasRequiredUniqueId = 1;
  var toString = requireToString();
  var idCounter = 0;
  function uniqueId(prefix) {
    var id = ++idCounter;
    return toString(prefix) + id;
  }
  uniqueId_1 = uniqueId;
  return uniqueId_1;
}
var _baseZipObject;
var hasRequired_baseZipObject;
function require_baseZipObject() {
  if (hasRequired_baseZipObject) return _baseZipObject;
  hasRequired_baseZipObject = 1;
  function baseZipObject(props, values, assignFunc) {
    var index2 = -1, length = props.length, valsLength = values.length, result = {};
    while (++index2 < length) {
      var value = index2 < valsLength ? values[index2] : void 0;
      assignFunc(result, props[index2], value);
    }
    return result;
  }
  _baseZipObject = baseZipObject;
  return _baseZipObject;
}
var zipObject_1;
var hasRequiredZipObject;
function requireZipObject() {
  if (hasRequiredZipObject) return zipObject_1;
  hasRequiredZipObject = 1;
  var assignValue = require_assignValue(), baseZipObject = require_baseZipObject();
  function zipObject(props, values) {
    return baseZipObject(props || [], values || [], assignValue);
  }
  zipObject_1 = zipObject;
  return zipObject_1;
}
var lodash_1;
var hasRequiredLodash;
function requireLodash() {
  if (hasRequiredLodash) return lodash_1;
  hasRequiredLodash = 1;
  var lodash;
  if (typeof commonjsRequire === "function") {
    try {
      lodash = {
        cloneDeep: requireCloneDeep(),
        constant: requireConstant(),
        defaults: requireDefaults(),
        each: requireEach(),
        filter: requireFilter(),
        find: requireFind(),
        flatten: requireFlatten(),
        forEach: requireForEach(),
        forIn: requireForIn(),
        has: requireHas(),
        isUndefined: requireIsUndefined(),
        last: requireLast(),
        map: requireMap(),
        mapValues: requireMapValues(),
        max: requireMax(),
        merge: requireMerge(),
        min: requireMin(),
        minBy: requireMinBy(),
        now: requireNow(),
        pick: requirePick(),
        range: requireRange(),
        reduce: requireReduce(),
        sortBy: requireSortBy(),
        uniqueId: requireUniqueId(),
        values: requireValues(),
        zipObject: requireZipObject()
      };
    } catch (e) {
    }
  }
  if (!lodash) {
    lodash = window._;
  }
  lodash_1 = lodash;
  return lodash_1;
}
var list;
var hasRequiredList;
function requireList() {
  if (hasRequiredList) return list;
  hasRequiredList = 1;
  list = List2;
  function List2() {
    var sentinel = {};
    sentinel._next = sentinel._prev = sentinel;
    this._sentinel = sentinel;
  }
  List2.prototype.dequeue = function() {
    var sentinel = this._sentinel;
    var entry = sentinel._prev;
    if (entry !== sentinel) {
      unlink(entry);
      return entry;
    }
  };
  List2.prototype.enqueue = function(entry) {
    var sentinel = this._sentinel;
    if (entry._prev && entry._next) {
      unlink(entry);
    }
    entry._next = sentinel._next;
    sentinel._next._prev = entry;
    sentinel._next = entry;
    entry._prev = sentinel;
  };
  List2.prototype.toString = function() {
    var strs = [];
    var sentinel = this._sentinel;
    var curr = sentinel._prev;
    while (curr !== sentinel) {
      strs.push(JSON.stringify(curr, filterOutLinks));
      curr = curr._prev;
    }
    return "[" + strs.join(", ") + "]";
  };
  function unlink(entry) {
    entry._prev._next = entry._next;
    entry._next._prev = entry._prev;
    delete entry._next;
    delete entry._prev;
  }
  function filterOutLinks(k, v) {
    if (k !== "_next" && k !== "_prev") {
      return v;
    }
  }
  return list;
}
var greedyFas;
var hasRequiredGreedyFas;
function requireGreedyFas() {
  if (hasRequiredGreedyFas) return greedyFas;
  hasRequiredGreedyFas = 1;
  var _ = requireLodash();
  var Graph = requireGraphlib().Graph;
  var List2 = requireList();
  greedyFas = greedyFAS;
  var DEFAULT_WEIGHT_FN = _.constant(1);
  function greedyFAS(g, weightFn) {
    if (g.nodeCount() <= 1) {
      return [];
    }
    var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
    var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);
    return _.flatten(_.map(results, function(e) {
      return g.outEdges(e.v, e.w);
    }), true);
  }
  function doGreedyFAS(g, buckets, zeroIdx) {
    var results = [];
    var sources = buckets[buckets.length - 1];
    var sinks = buckets[0];
    var entry;
    while (g.nodeCount()) {
      while (entry = sinks.dequeue()) {
        removeNode(g, buckets, zeroIdx, entry);
      }
      while (entry = sources.dequeue()) {
        removeNode(g, buckets, zeroIdx, entry);
      }
      if (g.nodeCount()) {
        for (var i = buckets.length - 2; i > 0; --i) {
          entry = buckets[i].dequeue();
          if (entry) {
            results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
            break;
          }
        }
      }
    }
    return results;
  }
  function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
    var results = collectPredecessors ? [] : void 0;
    _.forEach(g.inEdges(entry.v), function(edge) {
      var weight = g.edge(edge);
      var uEntry = g.node(edge.v);
      if (collectPredecessors) {
        results.push({ v: edge.v, w: edge.w });
      }
      uEntry.out -= weight;
      assignBucket(buckets, zeroIdx, uEntry);
    });
    _.forEach(g.outEdges(entry.v), function(edge) {
      var weight = g.edge(edge);
      var w = edge.w;
      var wEntry = g.node(w);
      wEntry["in"] -= weight;
      assignBucket(buckets, zeroIdx, wEntry);
    });
    g.removeNode(entry.v);
    return results;
  }
  function buildState(g, weightFn) {
    var fasGraph = new Graph();
    var maxIn = 0;
    var maxOut = 0;
    _.forEach(g.nodes(), function(v) {
      fasGraph.setNode(v, { v, "in": 0, out: 0 });
    });
    _.forEach(g.edges(), function(e) {
      var prevWeight = fasGraph.edge(e.v, e.w) || 0;
      var weight = weightFn(e);
      var edgeWeight = prevWeight + weight;
      fasGraph.setEdge(e.v, e.w, edgeWeight);
      maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
      maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
    });
    var buckets = _.range(maxOut + maxIn + 3).map(function() {
      return new List2();
    });
    var zeroIdx = maxIn + 1;
    _.forEach(fasGraph.nodes(), function(v) {
      assignBucket(buckets, zeroIdx, fasGraph.node(v));
    });
    return { graph: fasGraph, buckets, zeroIdx };
  }
  function assignBucket(buckets, zeroIdx, entry) {
    if (!entry.out) {
      buckets[0].enqueue(entry);
    } else if (!entry["in"]) {
      buckets[buckets.length - 1].enqueue(entry);
    } else {
      buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
    }
  }
  return greedyFas;
}
var acyclic;
var hasRequiredAcyclic;
function requireAcyclic() {
  if (hasRequiredAcyclic) return acyclic;
  hasRequiredAcyclic = 1;
  var _ = requireLodash();
  var greedyFAS = requireGreedyFas();
  acyclic = {
    run,
    undo
  };
  function run(g) {
    var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
    _.forEach(fas, function(e) {
      var label = g.edge(e);
      g.removeEdge(e);
      label.forwardName = e.name;
      label.reversed = true;
      g.setEdge(e.w, e.v, label, _.uniqueId("rev"));
    });
    function weightFn(g2) {
      return function(e) {
        return g2.edge(e).weight;
      };
    }
  }
  function dfsFAS(g) {
    var fas = [];
    var stack = {};
    var visited = {};
    function dfs(v) {
      if (_.has(visited, v)) {
        return;
      }
      visited[v] = true;
      stack[v] = true;
      _.forEach(g.outEdges(v), function(e) {
        if (_.has(stack, e.w)) {
          fas.push(e);
        } else {
          dfs(e.w);
        }
      });
      delete stack[v];
    }
    _.forEach(g.nodes(), dfs);
    return fas;
  }
  function undo(g) {
    _.forEach(g.edges(), function(e) {
      var label = g.edge(e);
      if (label.reversed) {
        g.removeEdge(e);
        var forwardName = label.forwardName;
        delete label.reversed;
        delete label.forwardName;
        g.setEdge(e.w, e.v, label, forwardName);
      }
    });
  }
  return acyclic;
}
var util$1;
var hasRequiredUtil$1;
function requireUtil$1() {
  if (hasRequiredUtil$1) return util$1;
  hasRequiredUtil$1 = 1;
  var _ = requireLodash();
  var Graph = requireGraphlib().Graph;
  util$1 = {
    addDummyNode,
    simplify: simplify2,
    asNonCompoundGraph,
    successorWeights,
    predecessorWeights,
    intersectRect,
    buildLayerMatrix,
    normalizeRanks,
    removeEmptyRanks,
    addBorderNode,
    maxRank,
    partition,
    time,
    notime
  };
  function addDummyNode(g, type, attrs, name) {
    var v;
    do {
      v = _.uniqueId(name);
    } while (g.hasNode(v));
    attrs.dummy = type;
    g.setNode(v, attrs);
    return v;
  }
  function simplify2(g) {
    var simplified = new Graph().setGraph(g.graph());
    _.forEach(g.nodes(), function(v) {
      simplified.setNode(v, g.node(v));
    });
    _.forEach(g.edges(), function(e) {
      var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
      var label = g.edge(e);
      simplified.setEdge(e.v, e.w, {
        weight: simpleLabel.weight + label.weight,
        minlen: Math.max(simpleLabel.minlen, label.minlen)
      });
    });
    return simplified;
  }
  function asNonCompoundGraph(g) {
    var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
    _.forEach(g.nodes(), function(v) {
      if (!g.children(v).length) {
        simplified.setNode(v, g.node(v));
      }
    });
    _.forEach(g.edges(), function(e) {
      simplified.setEdge(e, g.edge(e));
    });
    return simplified;
  }
  function successorWeights(g) {
    var weightMap = _.map(g.nodes(), function(v) {
      var sucs = {};
      _.forEach(g.outEdges(v), function(e) {
        sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;
      });
      return sucs;
    });
    return _.zipObject(g.nodes(), weightMap);
  }
  function predecessorWeights(g) {
    var weightMap = _.map(g.nodes(), function(v) {
      var preds = {};
      _.forEach(g.inEdges(v), function(e) {
        preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;
      });
      return preds;
    });
    return _.zipObject(g.nodes(), weightMap);
  }
  function intersectRect(rect, point) {
    var x = rect.x;
    var y = rect.y;
    var dx = point.x - x;
    var dy = point.y - y;
    var w = rect.width / 2;
    var h = rect.height / 2;
    if (!dx && !dy) {
      throw new Error("Not possible to find intersection inside of the rectangle");
    }
    var sx, sy;
    if (Math.abs(dy) * w > Math.abs(dx) * h) {
      if (dy < 0) {
        h = -h;
      }
      sx = h * dx / dy;
      sy = h;
    } else {
      if (dx < 0) {
        w = -w;
      }
      sx = w;
      sy = w * dy / dx;
    }
    return { x: x + sx, y: y + sy };
  }
  function buildLayerMatrix(g) {
    var layering = _.map(_.range(maxRank(g) + 1), function() {
      return [];
    });
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      var rank = node.rank;
      if (!_.isUndefined(rank)) {
        layering[rank][node.order] = v;
      }
    });
    return layering;
  }
  function normalizeRanks(g) {
    var min2 = _.min(_.map(g.nodes(), function(v) {
      return g.node(v).rank;
    }));
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      if (_.has(node, "rank")) {
        node.rank -= min2;
      }
    });
  }
  function removeEmptyRanks(g) {
    var offset = _.min(_.map(g.nodes(), function(v) {
      return g.node(v).rank;
    }));
    var layers = [];
    _.forEach(g.nodes(), function(v) {
      var rank = g.node(v).rank - offset;
      if (!layers[rank]) {
        layers[rank] = [];
      }
      layers[rank].push(v);
    });
    var delta = 0;
    var nodeRankFactor = g.graph().nodeRankFactor;
    _.forEach(layers, function(vs, i) {
      if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {
        --delta;
      } else if (delta) {
        _.forEach(vs, function(v) {
          g.node(v).rank += delta;
        });
      }
    });
  }
  function addBorderNode(g, prefix, rank, order) {
    var node = {
      width: 0,
      height: 0
    };
    if (arguments.length >= 4) {
      node.rank = rank;
      node.order = order;
    }
    return addDummyNode(g, "border", node, prefix);
  }
  function maxRank(g) {
    return _.max(_.map(g.nodes(), function(v) {
      var rank = g.node(v).rank;
      if (!_.isUndefined(rank)) {
        return rank;
      }
    }));
  }
  function partition(collection, fn) {
    var result = { lhs: [], rhs: [] };
    _.forEach(collection, function(value) {
      if (fn(value)) {
        result.lhs.push(value);
      } else {
        result.rhs.push(value);
      }
    });
    return result;
  }
  function time(name, fn) {
    var start = _.now();
    try {
      return fn();
    } finally {
      console.log(name + " time: " + (_.now() - start) + "ms");
    }
  }
  function notime(name, fn) {
    return fn();
  }
  return util$1;
}
var normalize;
var hasRequiredNormalize;
function requireNormalize() {
  if (hasRequiredNormalize) return normalize;
  hasRequiredNormalize = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  normalize = {
    run,
    undo
  };
  function run(g) {
    g.graph().dummyChains = [];
    _.forEach(g.edges(), function(edge) {
      normalizeEdge(g, edge);
    });
  }
  function normalizeEdge(g, e) {
    var v = e.v;
    var vRank = g.node(v).rank;
    var w = e.w;
    var wRank = g.node(w).rank;
    var name = e.name;
    var edgeLabel = g.edge(e);
    var labelRank = edgeLabel.labelRank;
    if (wRank === vRank + 1) return;
    g.removeEdge(e);
    var dummy, attrs, i;
    for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {
      edgeLabel.points = [];
      attrs = {
        width: 0,
        height: 0,
        edgeLabel,
        edgeObj: e,
        rank: vRank
      };
      dummy = util2.addDummyNode(g, "edge", attrs, "_d");
      if (vRank === labelRank) {
        attrs.width = edgeLabel.width;
        attrs.height = edgeLabel.height;
        attrs.dummy = "edge-label";
        attrs.labelpos = edgeLabel.labelpos;
      }
      g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);
      if (i === 0) {
        g.graph().dummyChains.push(dummy);
      }
      v = dummy;
    }
    g.setEdge(v, w, { weight: edgeLabel.weight }, name);
  }
  function undo(g) {
    _.forEach(g.graph().dummyChains, function(v) {
      var node = g.node(v);
      var origLabel = node.edgeLabel;
      var w;
      g.setEdge(node.edgeObj, origLabel);
      while (node.dummy) {
        w = g.successors(v)[0];
        g.removeNode(v);
        origLabel.points.push({ x: node.x, y: node.y });
        if (node.dummy === "edge-label") {
          origLabel.x = node.x;
          origLabel.y = node.y;
          origLabel.width = node.width;
          origLabel.height = node.height;
        }
        v = w;
        node = g.node(v);
      }
    });
  }
  return normalize;
}
var util;
var hasRequiredUtil;
function requireUtil() {
  if (hasRequiredUtil) return util;
  hasRequiredUtil = 1;
  var _ = requireLodash();
  util = {
    longestPath,
    slack
  };
  function longestPath(g) {
    var visited = {};
    function dfs(v) {
      var label = g.node(v);
      if (_.has(visited, v)) {
        return label.rank;
      }
      visited[v] = true;
      var rank = _.min(_.map(g.outEdges(v), function(e) {
        return dfs(e.w) - g.edge(e).minlen;
      }));
      if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
      rank === void 0 || // return value of _.map([]) for Lodash 4
      rank === null) {
        rank = 0;
      }
      return label.rank = rank;
    }
    _.forEach(g.sources(), dfs);
  }
  function slack(g, e) {
    return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
  }
  return util;
}
var feasibleTree_1;
var hasRequiredFeasibleTree;
function requireFeasibleTree() {
  if (hasRequiredFeasibleTree) return feasibleTree_1;
  hasRequiredFeasibleTree = 1;
  var _ = requireLodash();
  var Graph = requireGraphlib().Graph;
  var slack = requireUtil().slack;
  feasibleTree_1 = feasibleTree;
  function feasibleTree(g) {
    var t = new Graph({ directed: false });
    var start = g.nodes()[0];
    var size = g.nodeCount();
    t.setNode(start, {});
    var edge, delta;
    while (tightTree(t, g) < size) {
      edge = findMinSlackEdge(t, g);
      delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
      shiftRanks(t, g, delta);
    }
    return t;
  }
  function tightTree(t, g) {
    function dfs(v) {
      _.forEach(g.nodeEdges(v), function(e) {
        var edgeV = e.v, w = v === edgeV ? e.w : edgeV;
        if (!t.hasNode(w) && !slack(g, e)) {
          t.setNode(w, {});
          t.setEdge(v, w, {});
          dfs(w);
        }
      });
    }
    _.forEach(t.nodes(), dfs);
    return t.nodeCount();
  }
  function findMinSlackEdge(t, g) {
    return _.minBy(g.edges(), function(e) {
      if (t.hasNode(e.v) !== t.hasNode(e.w)) {
        return slack(g, e);
      }
    });
  }
  function shiftRanks(t, g, delta) {
    _.forEach(t.nodes(), function(v) {
      g.node(v).rank += delta;
    });
  }
  return feasibleTree_1;
}
var networkSimplex_1;
var hasRequiredNetworkSimplex;
function requireNetworkSimplex() {
  if (hasRequiredNetworkSimplex) return networkSimplex_1;
  hasRequiredNetworkSimplex = 1;
  var _ = requireLodash();
  var feasibleTree = requireFeasibleTree();
  var slack = requireUtil().slack;
  var initRank = requireUtil().longestPath;
  var preorder = requireGraphlib().alg.preorder;
  var postorder = requireGraphlib().alg.postorder;
  var simplify2 = requireUtil$1().simplify;
  networkSimplex_1 = networkSimplex;
  networkSimplex.initLowLimValues = initLowLimValues;
  networkSimplex.initCutValues = initCutValues;
  networkSimplex.calcCutValue = calcCutValue;
  networkSimplex.leaveEdge = leaveEdge;
  networkSimplex.enterEdge = enterEdge;
  networkSimplex.exchangeEdges = exchangeEdges;
  function networkSimplex(g) {
    g = simplify2(g);
    initRank(g);
    var t = feasibleTree(g);
    initLowLimValues(t);
    initCutValues(t, g);
    var e, f;
    while (e = leaveEdge(t)) {
      f = enterEdge(t, g, e);
      exchangeEdges(t, g, e, f);
    }
  }
  function initCutValues(t, g) {
    var vs = postorder(t, t.nodes());
    vs = vs.slice(0, vs.length - 1);
    _.forEach(vs, function(v) {
      assignCutValue(t, g, v);
    });
  }
  function assignCutValue(t, g, child) {
    var childLab = t.node(child);
    var parent = childLab.parent;
    t.edge(child, parent).cutvalue = calcCutValue(t, g, child);
  }
  function calcCutValue(t, g, child) {
    var childLab = t.node(child);
    var parent = childLab.parent;
    var childIsTail = true;
    var graphEdge = g.edge(child, parent);
    var cutValue = 0;
    if (!graphEdge) {
      childIsTail = false;
      graphEdge = g.edge(parent, child);
    }
    cutValue = graphEdge.weight;
    _.forEach(g.nodeEdges(child), function(e) {
      var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v;
      if (other !== parent) {
        var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight;
        cutValue += pointsToHead ? otherWeight : -otherWeight;
        if (isTreeEdge(t, child, other)) {
          var otherCutValue = t.edge(child, other).cutvalue;
          cutValue += pointsToHead ? -otherCutValue : otherCutValue;
        }
      }
    });
    return cutValue;
  }
  function initLowLimValues(tree, root) {
    if (arguments.length < 2) {
      root = tree.nodes()[0];
    }
    dfsAssignLowLim(tree, {}, 1, root);
  }
  function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
    var low = nextLim;
    var label = tree.node(v);
    visited[v] = true;
    _.forEach(tree.neighbors(v), function(w) {
      if (!_.has(visited, w)) {
        nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);
      }
    });
    label.low = low;
    label.lim = nextLim++;
    if (parent) {
      label.parent = parent;
    } else {
      delete label.parent;
    }
    return nextLim;
  }
  function leaveEdge(tree) {
    return _.find(tree.edges(), function(e) {
      return tree.edge(e).cutvalue < 0;
    });
  }
  function enterEdge(t, g, edge) {
    var v = edge.v;
    var w = edge.w;
    if (!g.hasEdge(v, w)) {
      v = edge.w;
      w = edge.v;
    }
    var vLabel = t.node(v);
    var wLabel = t.node(w);
    var tailLabel = vLabel;
    var flip = false;
    if (vLabel.lim > wLabel.lim) {
      tailLabel = wLabel;
      flip = true;
    }
    var candidates = _.filter(g.edges(), function(edge2) {
      return flip === isDescendant(t, t.node(edge2.v), tailLabel) && flip !== isDescendant(t, t.node(edge2.w), tailLabel);
    });
    return _.minBy(candidates, function(edge2) {
      return slack(g, edge2);
    });
  }
  function exchangeEdges(t, g, e, f) {
    var v = e.v;
    var w = e.w;
    t.removeEdge(v, w);
    t.setEdge(f.v, f.w, {});
    initLowLimValues(t);
    initCutValues(t, g);
    updateRanks(t, g);
  }
  function updateRanks(t, g) {
    var root = _.find(t.nodes(), function(v) {
      return !g.node(v).parent;
    });
    var vs = preorder(t, root);
    vs = vs.slice(1);
    _.forEach(vs, function(v) {
      var parent = t.node(v).parent, edge = g.edge(v, parent), flipped = false;
      if (!edge) {
        edge = g.edge(parent, v);
        flipped = true;
      }
      g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
    });
  }
  function isTreeEdge(tree, u, v) {
    return tree.hasEdge(u, v);
  }
  function isDescendant(tree, vLabel, rootLabel) {
    return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
  }
  return networkSimplex_1;
}
var rank_1;
var hasRequiredRank;
function requireRank() {
  if (hasRequiredRank) return rank_1;
  hasRequiredRank = 1;
  var rankUtil = requireUtil();
  var longestPath = rankUtil.longestPath;
  var feasibleTree = requireFeasibleTree();
  var networkSimplex = requireNetworkSimplex();
  rank_1 = rank;
  function rank(g) {
    switch (g.graph().ranker) {
      case "network-simplex":
        networkSimplexRanker(g);
        break;
      case "tight-tree":
        tightTreeRanker(g);
        break;
      case "longest-path":
        longestPathRanker(g);
        break;
      default:
        networkSimplexRanker(g);
    }
  }
  var longestPathRanker = longestPath;
  function tightTreeRanker(g) {
    longestPath(g);
    feasibleTree(g);
  }
  function networkSimplexRanker(g) {
    networkSimplex(g);
  }
  return rank_1;
}
var parentDummyChains_1;
var hasRequiredParentDummyChains;
function requireParentDummyChains() {
  if (hasRequiredParentDummyChains) return parentDummyChains_1;
  hasRequiredParentDummyChains = 1;
  var _ = requireLodash();
  parentDummyChains_1 = parentDummyChains;
  function parentDummyChains(g) {
    var postorderNums = postorder(g);
    _.forEach(g.graph().dummyChains, function(v) {
      var node = g.node(v);
      var edgeObj = node.edgeObj;
      var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
      var path = pathData.path;
      var lca = pathData.lca;
      var pathIdx = 0;
      var pathV = path[pathIdx];
      var ascending = true;
      while (v !== edgeObj.w) {
        node = g.node(v);
        if (ascending) {
          while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {
            pathIdx++;
          }
          if (pathV === lca) {
            ascending = false;
          }
        }
        if (!ascending) {
          while (pathIdx < path.length - 1 && g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {
            pathIdx++;
          }
          pathV = path[pathIdx];
        }
        g.setParent(v, pathV);
        v = g.successors(v)[0];
      }
    });
  }
  function findPath(g, postorderNums, v, w) {
    var vPath = [];
    var wPath = [];
    var low = Math.min(postorderNums[v].low, postorderNums[w].low);
    var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
    var parent;
    var lca;
    parent = v;
    do {
      parent = g.parent(parent);
      vPath.push(parent);
    } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
    lca = parent;
    parent = w;
    while ((parent = g.parent(parent)) !== lca) {
      wPath.push(parent);
    }
    return { path: vPath.concat(wPath.reverse()), lca };
  }
  function postorder(g) {
    var result = {};
    var lim = 0;
    function dfs(v) {
      var low = lim;
      _.forEach(g.children(v), dfs);
      result[v] = { low, lim: lim++ };
    }
    _.forEach(g.children(), dfs);
    return result;
  }
  return parentDummyChains_1;
}
var nestingGraph;
var hasRequiredNestingGraph;
function requireNestingGraph() {
  if (hasRequiredNestingGraph) return nestingGraph;
  hasRequiredNestingGraph = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  nestingGraph = {
    run,
    cleanup
  };
  function run(g) {
    var root = util2.addDummyNode(g, "root", {}, "_root");
    var depths = treeDepths(g);
    var height = _.max(_.values(depths)) - 1;
    var nodeSep = 2 * height + 1;
    g.graph().nestingRoot = root;
    _.forEach(g.edges(), function(e) {
      g.edge(e).minlen *= nodeSep;
    });
    var weight = sumWeights(g) + 1;
    _.forEach(g.children(), function(child) {
      dfs(g, root, nodeSep, weight, height, depths, child);
    });
    g.graph().nodeRankFactor = nodeSep;
  }
  function dfs(g, root, nodeSep, weight, height, depths, v) {
    var children = g.children(v);
    if (!children.length) {
      if (v !== root) {
        g.setEdge(root, v, { weight: 0, minlen: nodeSep });
      }
      return;
    }
    var top = util2.addBorderNode(g, "_bt");
    var bottom = util2.addBorderNode(g, "_bb");
    var label = g.node(v);
    g.setParent(top, v);
    label.borderTop = top;
    g.setParent(bottom, v);
    label.borderBottom = bottom;
    _.forEach(children, function(child) {
      dfs(g, root, nodeSep, weight, height, depths, child);
      var childNode = g.node(child);
      var childTop = childNode.borderTop ? childNode.borderTop : child;
      var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
      var thisWeight = childNode.borderTop ? weight : 2 * weight;
      var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;
      g.setEdge(top, childTop, {
        weight: thisWeight,
        minlen,
        nestingEdge: true
      });
      g.setEdge(childBottom, bottom, {
        weight: thisWeight,
        minlen,
        nestingEdge: true
      });
    });
    if (!g.parent(v)) {
      g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });
    }
  }
  function treeDepths(g) {
    var depths = {};
    function dfs2(v, depth) {
      var children = g.children(v);
      if (children && children.length) {
        _.forEach(children, function(child) {
          dfs2(child, depth + 1);
        });
      }
      depths[v] = depth;
    }
    _.forEach(g.children(), function(v) {
      dfs2(v, 1);
    });
    return depths;
  }
  function sumWeights(g) {
    return _.reduce(g.edges(), function(acc, e) {
      return acc + g.edge(e).weight;
    }, 0);
  }
  function cleanup(g) {
    var graphLabel = g.graph();
    g.removeNode(graphLabel.nestingRoot);
    delete graphLabel.nestingRoot;
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      if (edge.nestingEdge) {
        g.removeEdge(e);
      }
    });
  }
  return nestingGraph;
}
var addBorderSegments_1;
var hasRequiredAddBorderSegments;
function requireAddBorderSegments() {
  if (hasRequiredAddBorderSegments) return addBorderSegments_1;
  hasRequiredAddBorderSegments = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  addBorderSegments_1 = addBorderSegments;
  function addBorderSegments(g) {
    function dfs(v) {
      var children = g.children(v);
      var node = g.node(v);
      if (children.length) {
        _.forEach(children, dfs);
      }
      if (_.has(node, "minRank")) {
        node.borderLeft = [];
        node.borderRight = [];
        for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {
          addBorderNode(g, "borderLeft", "_bl", v, node, rank);
          addBorderNode(g, "borderRight", "_br", v, node, rank);
        }
      }
    }
    _.forEach(g.children(), dfs);
  }
  function addBorderNode(g, prop, prefix, sg, sgNode, rank) {
    var label = { width: 0, height: 0, rank, borderType: prop };
    var prev = sgNode[prop][rank - 1];
    var curr = util2.addDummyNode(g, "border", label, prefix);
    sgNode[prop][rank] = curr;
    g.setParent(curr, sg);
    if (prev) {
      g.setEdge(prev, curr, { weight: 1 });
    }
  }
  return addBorderSegments_1;
}
var coordinateSystem;
var hasRequiredCoordinateSystem;
function requireCoordinateSystem() {
  if (hasRequiredCoordinateSystem) return coordinateSystem;
  hasRequiredCoordinateSystem = 1;
  var _ = requireLodash();
  coordinateSystem = {
    adjust,
    undo
  };
  function adjust(g) {
    var rankDir = g.graph().rankdir.toLowerCase();
    if (rankDir === "lr" || rankDir === "rl") {
      swapWidthHeight(g);
    }
  }
  function undo(g) {
    var rankDir = g.graph().rankdir.toLowerCase();
    if (rankDir === "bt" || rankDir === "rl") {
      reverseY(g);
    }
    if (rankDir === "lr" || rankDir === "rl") {
      swapXY(g);
      swapWidthHeight(g);
    }
  }
  function swapWidthHeight(g) {
    _.forEach(g.nodes(), function(v) {
      swapWidthHeightOne(g.node(v));
    });
    _.forEach(g.edges(), function(e) {
      swapWidthHeightOne(g.edge(e));
    });
  }
  function swapWidthHeightOne(attrs) {
    var w = attrs.width;
    attrs.width = attrs.height;
    attrs.height = w;
  }
  function reverseY(g) {
    _.forEach(g.nodes(), function(v) {
      reverseYOne(g.node(v));
    });
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      _.forEach(edge.points, reverseYOne);
      if (_.has(edge, "y")) {
        reverseYOne(edge);
      }
    });
  }
  function reverseYOne(attrs) {
    attrs.y = -attrs.y;
  }
  function swapXY(g) {
    _.forEach(g.nodes(), function(v) {
      swapXYOne(g.node(v));
    });
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      _.forEach(edge.points, swapXYOne);
      if (_.has(edge, "x")) {
        swapXYOne(edge);
      }
    });
  }
  function swapXYOne(attrs) {
    var x = attrs.x;
    attrs.x = attrs.y;
    attrs.y = x;
  }
  return coordinateSystem;
}
var initOrder_1;
var hasRequiredInitOrder;
function requireInitOrder() {
  if (hasRequiredInitOrder) return initOrder_1;
  hasRequiredInitOrder = 1;
  var _ = requireLodash();
  initOrder_1 = initOrder;
  function initOrder(g) {
    var visited = {};
    var simpleNodes = _.filter(g.nodes(), function(v) {
      return !g.children(v).length;
    });
    var maxRank = _.max(_.map(simpleNodes, function(v) {
      return g.node(v).rank;
    }));
    var layers = _.map(_.range(maxRank + 1), function() {
      return [];
    });
    function dfs(v) {
      if (_.has(visited, v)) return;
      visited[v] = true;
      var node = g.node(v);
      layers[node.rank].push(v);
      _.forEach(g.successors(v), dfs);
    }
    var orderedVs = _.sortBy(simpleNodes, function(v) {
      return g.node(v).rank;
    });
    _.forEach(orderedVs, dfs);
    return layers;
  }
  return initOrder_1;
}
var crossCount_1;
var hasRequiredCrossCount;
function requireCrossCount() {
  if (hasRequiredCrossCount) return crossCount_1;
  hasRequiredCrossCount = 1;
  var _ = requireLodash();
  crossCount_1 = crossCount;
  function crossCount(g, layering) {
    var cc = 0;
    for (var i = 1; i < layering.length; ++i) {
      cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);
    }
    return cc;
  }
  function twoLayerCrossCount(g, northLayer, southLayer) {
    var southPos = _.zipObject(
      southLayer,
      _.map(southLayer, function(v, i) {
        return i;
      })
    );
    var southEntries = _.flatten(_.map(northLayer, function(v) {
      return _.sortBy(_.map(g.outEdges(v), function(e) {
        return { pos: southPos[e.w], weight: g.edge(e).weight };
      }), "pos");
    }), true);
    var firstIndex = 1;
    while (firstIndex < southLayer.length) firstIndex <<= 1;
    var treeSize = 2 * firstIndex - 1;
    firstIndex -= 1;
    var tree = _.map(new Array(treeSize), function() {
      return 0;
    });
    var cc = 0;
    _.forEach(southEntries.forEach(function(entry) {
      var index2 = entry.pos + firstIndex;
      tree[index2] += entry.weight;
      var weightSum = 0;
      while (index2 > 0) {
        if (index2 % 2) {
          weightSum += tree[index2 + 1];
        }
        index2 = index2 - 1 >> 1;
        tree[index2] += entry.weight;
      }
      cc += entry.weight * weightSum;
    }));
    return cc;
  }
  return crossCount_1;
}
var barycenter_1;
var hasRequiredBarycenter;
function requireBarycenter() {
  if (hasRequiredBarycenter) return barycenter_1;
  hasRequiredBarycenter = 1;
  var _ = requireLodash();
  barycenter_1 = barycenter;
  function barycenter(g, movable) {
    return _.map(movable, function(v) {
      var inV = g.inEdges(v);
      if (!inV.length) {
        return { v };
      } else {
        var result = _.reduce(inV, function(acc, e) {
          var edge = g.edge(e), nodeU = g.node(e.v);
          return {
            sum: acc.sum + edge.weight * nodeU.order,
            weight: acc.weight + edge.weight
          };
        }, { sum: 0, weight: 0 });
        return {
          v,
          barycenter: result.sum / result.weight,
          weight: result.weight
        };
      }
    });
  }
  return barycenter_1;
}
var resolveConflicts_1;
var hasRequiredResolveConflicts;
function requireResolveConflicts() {
  if (hasRequiredResolveConflicts) return resolveConflicts_1;
  hasRequiredResolveConflicts = 1;
  var _ = requireLodash();
  resolveConflicts_1 = resolveConflicts;
  function resolveConflicts(entries, cg) {
    var mappedEntries = {};
    _.forEach(entries, function(entry, i) {
      var tmp = mappedEntries[entry.v] = {
        indegree: 0,
        "in": [],
        out: [],
        vs: [entry.v],
        i
      };
      if (!_.isUndefined(entry.barycenter)) {
        tmp.barycenter = entry.barycenter;
        tmp.weight = entry.weight;
      }
    });
    _.forEach(cg.edges(), function(e) {
      var entryV = mappedEntries[e.v];
      var entryW = mappedEntries[e.w];
      if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {
        entryW.indegree++;
        entryV.out.push(mappedEntries[e.w]);
      }
    });
    var sourceSet = _.filter(mappedEntries, function(entry) {
      return !entry.indegree;
    });
    return doResolveConflicts(sourceSet);
  }
  function doResolveConflicts(sourceSet) {
    var entries = [];
    function handleIn(vEntry) {
      return function(uEntry) {
        if (uEntry.merged) {
          return;
        }
        if (_.isUndefined(uEntry.barycenter) || _.isUndefined(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) {
          mergeEntries(vEntry, uEntry);
        }
      };
    }
    function handleOut(vEntry) {
      return function(wEntry) {
        wEntry["in"].push(vEntry);
        if (--wEntry.indegree === 0) {
          sourceSet.push(wEntry);
        }
      };
    }
    while (sourceSet.length) {
      var entry = sourceSet.pop();
      entries.push(entry);
      _.forEach(entry["in"].reverse(), handleIn(entry));
      _.forEach(entry.out, handleOut(entry));
    }
    return _.map(
      _.filter(entries, function(entry2) {
        return !entry2.merged;
      }),
      function(entry2) {
        return _.pick(entry2, ["vs", "i", "barycenter", "weight"]);
      }
    );
  }
  function mergeEntries(target, source) {
    var sum = 0;
    var weight = 0;
    if (target.weight) {
      sum += target.barycenter * target.weight;
      weight += target.weight;
    }
    if (source.weight) {
      sum += source.barycenter * source.weight;
      weight += source.weight;
    }
    target.vs = source.vs.concat(target.vs);
    target.barycenter = sum / weight;
    target.weight = weight;
    target.i = Math.min(source.i, target.i);
    source.merged = true;
  }
  return resolveConflicts_1;
}
var sort_1;
var hasRequiredSort;
function requireSort() {
  if (hasRequiredSort) return sort_1;
  hasRequiredSort = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  sort_1 = sort;
  function sort(entries, biasRight) {
    var parts = util2.partition(entries, function(entry) {
      return _.has(entry, "barycenter");
    });
    var sortable = parts.lhs, unsortable = _.sortBy(parts.rhs, function(entry) {
      return -entry.i;
    }), vs = [], sum = 0, weight = 0, vsIndex = 0;
    sortable.sort(compareWithBias(!!biasRight));
    vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
    _.forEach(sortable, function(entry) {
      vsIndex += entry.vs.length;
      vs.push(entry.vs);
      sum += entry.barycenter * entry.weight;
      weight += entry.weight;
      vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
    });
    var result = { vs: _.flatten(vs, true) };
    if (weight) {
      result.barycenter = sum / weight;
      result.weight = weight;
    }
    return result;
  }
  function consumeUnsortable(vs, unsortable, index2) {
    var last;
    while (unsortable.length && (last = _.last(unsortable)).i <= index2) {
      unsortable.pop();
      vs.push(last.vs);
      index2++;
    }
    return index2;
  }
  function compareWithBias(bias) {
    return function(entryV, entryW) {
      if (entryV.barycenter < entryW.barycenter) {
        return -1;
      } else if (entryV.barycenter > entryW.barycenter) {
        return 1;
      }
      return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
    };
  }
  return sort_1;
}
var sortSubgraph_1;
var hasRequiredSortSubgraph;
function requireSortSubgraph() {
  if (hasRequiredSortSubgraph) return sortSubgraph_1;
  hasRequiredSortSubgraph = 1;
  var _ = requireLodash();
  var barycenter = requireBarycenter();
  var resolveConflicts = requireResolveConflicts();
  var sort = requireSort();
  sortSubgraph_1 = sortSubgraph;
  function sortSubgraph(g, v, cg, biasRight) {
    var movable = g.children(v);
    var node = g.node(v);
    var bl = node ? node.borderLeft : void 0;
    var br = node ? node.borderRight : void 0;
    var subgraphs = {};
    if (bl) {
      movable = _.filter(movable, function(w) {
        return w !== bl && w !== br;
      });
    }
    var barycenters = barycenter(g, movable);
    _.forEach(barycenters, function(entry) {
      if (g.children(entry.v).length) {
        var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
        subgraphs[entry.v] = subgraphResult;
        if (_.has(subgraphResult, "barycenter")) {
          mergeBarycenters(entry, subgraphResult);
        }
      }
    });
    var entries = resolveConflicts(barycenters, cg);
    expandSubgraphs(entries, subgraphs);
    var result = sort(entries, biasRight);
    if (bl) {
      result.vs = _.flatten([bl, result.vs, br], true);
      if (g.predecessors(bl).length) {
        var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]);
        if (!_.has(result, "barycenter")) {
          result.barycenter = 0;
          result.weight = 0;
        }
        result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);
        result.weight += 2;
      }
    }
    return result;
  }
  function expandSubgraphs(entries, subgraphs) {
    _.forEach(entries, function(entry) {
      entry.vs = _.flatten(entry.vs.map(function(v) {
        if (subgraphs[v]) {
          return subgraphs[v].vs;
        }
        return v;
      }), true);
    });
  }
  function mergeBarycenters(target, other) {
    if (!_.isUndefined(target.barycenter)) {
      target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight);
      target.weight += other.weight;
    } else {
      target.barycenter = other.barycenter;
      target.weight = other.weight;
    }
  }
  return sortSubgraph_1;
}
var buildLayerGraph_1;
var hasRequiredBuildLayerGraph;
function requireBuildLayerGraph() {
  if (hasRequiredBuildLayerGraph) return buildLayerGraph_1;
  hasRequiredBuildLayerGraph = 1;
  var _ = requireLodash();
  var Graph = requireGraphlib().Graph;
  buildLayerGraph_1 = buildLayerGraph;
  function buildLayerGraph(g, rank, relationship) {
    var root = createRootNode(g), result = new Graph({ compound: true }).setGraph({ root }).setDefaultNodeLabel(function(v) {
      return g.node(v);
    });
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v), parent = g.parent(v);
      if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {
        result.setNode(v);
        result.setParent(v, parent || root);
        _.forEach(g[relationship](v), function(e) {
          var u = e.v === v ? e.w : e.v, edge = result.edge(u, v), weight = !_.isUndefined(edge) ? edge.weight : 0;
          result.setEdge(u, v, { weight: g.edge(e).weight + weight });
        });
        if (_.has(node, "minRank")) {
          result.setNode(v, {
            borderLeft: node.borderLeft[rank],
            borderRight: node.borderRight[rank]
          });
        }
      }
    });
    return result;
  }
  function createRootNode(g) {
    var v;
    while (g.hasNode(v = _.uniqueId("_root"))) ;
    return v;
  }
  return buildLayerGraph_1;
}
var addSubgraphConstraints_1;
var hasRequiredAddSubgraphConstraints;
function requireAddSubgraphConstraints() {
  if (hasRequiredAddSubgraphConstraints) return addSubgraphConstraints_1;
  hasRequiredAddSubgraphConstraints = 1;
  var _ = requireLodash();
  addSubgraphConstraints_1 = addSubgraphConstraints;
  function addSubgraphConstraints(g, cg, vs) {
    var prev = {}, rootPrev;
    _.forEach(vs, function(v) {
      var child = g.parent(v), parent, prevChild;
      while (child) {
        parent = g.parent(child);
        if (parent) {
          prevChild = prev[parent];
          prev[parent] = child;
        } else {
          prevChild = rootPrev;
          rootPrev = child;
        }
        if (prevChild && prevChild !== child) {
          cg.setEdge(prevChild, child);
          return;
        }
        child = parent;
      }
    });
  }
  return addSubgraphConstraints_1;
}
var order_1;
var hasRequiredOrder;
function requireOrder() {
  if (hasRequiredOrder) return order_1;
  hasRequiredOrder = 1;
  var _ = requireLodash();
  var initOrder = requireInitOrder();
  var crossCount = requireCrossCount();
  var sortSubgraph = requireSortSubgraph();
  var buildLayerGraph = requireBuildLayerGraph();
  var addSubgraphConstraints = requireAddSubgraphConstraints();
  var Graph = requireGraphlib().Graph;
  var util2 = requireUtil$1();
  order_1 = order;
  function order(g) {
    var maxRank = util2.maxRank(g), downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), "outEdges");
    var layering = initOrder(g);
    assignOrder(g, layering);
    var bestCC = Number.POSITIVE_INFINITY, best;
    for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
      sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);
      layering = util2.buildLayerMatrix(g);
      var cc = crossCount(g, layering);
      if (cc < bestCC) {
        lastBest = 0;
        best = _.cloneDeep(layering);
        bestCC = cc;
      }
    }
    assignOrder(g, best);
  }
  function buildLayerGraphs(g, ranks, relationship) {
    return _.map(ranks, function(rank) {
      return buildLayerGraph(g, rank, relationship);
    });
  }
  function sweepLayerGraphs(layerGraphs, biasRight) {
    var cg = new Graph();
    _.forEach(layerGraphs, function(lg) {
      var root = lg.graph().root;
      var sorted = sortSubgraph(lg, root, cg, biasRight);
      _.forEach(sorted.vs, function(v, i) {
        lg.node(v).order = i;
      });
      addSubgraphConstraints(lg, cg, sorted.vs);
    });
  }
  function assignOrder(g, layering) {
    _.forEach(layering, function(layer) {
      _.forEach(layer, function(v, i) {
        g.node(v).order = i;
      });
    });
  }
  return order_1;
}
var bk;
var hasRequiredBk;
function requireBk() {
  if (hasRequiredBk) return bk;
  hasRequiredBk = 1;
  var _ = requireLodash();
  var Graph = requireGraphlib().Graph;
  var util2 = requireUtil$1();
  bk = {
    positionX,
    findType1Conflicts,
    findType2Conflicts,
    addConflict,
    hasConflict,
    verticalAlignment,
    horizontalCompaction,
    alignCoordinates,
    findSmallestWidthAlignment,
    balance
  };
  function findType1Conflicts(g, layering) {
    var conflicts = {};
    function visitLayer(prevLayer, layer) {
      var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = _.last(layer);
      _.forEach(layer, function(v, i) {
        var w = findOtherInnerSegmentNode(g, v), k1 = w ? g.node(w).order : prevLayerLength;
        if (w || v === lastNode) {
          _.forEach(layer.slice(scanPos, i + 1), function(scanNode) {
            _.forEach(g.predecessors(scanNode), function(u) {
              var uLabel = g.node(u), uPos = uLabel.order;
              if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {
                addConflict(conflicts, u, scanNode);
              }
            });
          });
          scanPos = i + 1;
          k0 = k1;
        }
      });
      return layer;
    }
    _.reduce(layering, visitLayer);
    return conflicts;
  }
  function findType2Conflicts(g, layering) {
    var conflicts = {};
    function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
      var v;
      _.forEach(_.range(southPos, southEnd), function(i) {
        v = south[i];
        if (g.node(v).dummy) {
          _.forEach(g.predecessors(v), function(u) {
            var uNode = g.node(u);
            if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
              addConflict(conflicts, u, v);
            }
          });
        }
      });
    }
    function visitLayer(north, south) {
      var prevNorthPos = -1, nextNorthPos, southPos = 0;
      _.forEach(south, function(v, southLookahead) {
        if (g.node(v).dummy === "border") {
          var predecessors = g.predecessors(v);
          if (predecessors.length) {
            nextNorthPos = g.node(predecessors[0]).order;
            scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
            southPos = southLookahead;
            prevNorthPos = nextNorthPos;
          }
        }
        scan(south, southPos, south.length, nextNorthPos, north.length);
      });
      return south;
    }
    _.reduce(layering, visitLayer);
    return conflicts;
  }
  function findOtherInnerSegmentNode(g, v) {
    if (g.node(v).dummy) {
      return _.find(g.predecessors(v), function(u) {
        return g.node(u).dummy;
      });
    }
  }
  function addConflict(conflicts, v, w) {
    if (v > w) {
      var tmp = v;
      v = w;
      w = tmp;
    }
    var conflictsV = conflicts[v];
    if (!conflictsV) {
      conflicts[v] = conflictsV = {};
    }
    conflictsV[w] = true;
  }
  function hasConflict(conflicts, v, w) {
    if (v > w) {
      var tmp = v;
      v = w;
      w = tmp;
    }
    return _.has(conflicts[v], w);
  }
  function verticalAlignment(g, layering, conflicts, neighborFn) {
    var root = {}, align = {}, pos = {};
    _.forEach(layering, function(layer) {
      _.forEach(layer, function(v, order) {
        root[v] = v;
        align[v] = v;
        pos[v] = order;
      });
    });
    _.forEach(layering, function(layer) {
      var prevIdx = -1;
      _.forEach(layer, function(v) {
        var ws = neighborFn(v);
        if (ws.length) {
          ws = _.sortBy(ws, function(w2) {
            return pos[w2];
          });
          var mp = (ws.length - 1) / 2;
          for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
            var w = ws[i];
            if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {
              align[w] = v;
              align[v] = root[v] = root[w];
              prevIdx = pos[w];
            }
          }
        }
      });
    });
    return { root, align };
  }
  function horizontalCompaction(g, layering, root, align, reverseSep) {
    var xs = {}, blockG = buildBlockGraph(g, layering, root, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight";
    function iterate(setXsFunc, nextNodesFunc) {
      var stack = blockG.nodes();
      var elem = stack.pop();
      var visited = {};
      while (elem) {
        if (visited[elem]) {
          setXsFunc(elem);
        } else {
          visited[elem] = true;
          stack.push(elem);
          stack = stack.concat(nextNodesFunc(elem));
        }
        elem = stack.pop();
      }
    }
    function pass1(elem) {
      xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
        return Math.max(acc, xs[e.v] + blockG.edge(e));
      }, 0);
    }
    function pass2(elem) {
      var min2 = blockG.outEdges(elem).reduce(function(acc, e) {
        return Math.min(acc, xs[e.w] - blockG.edge(e));
      }, Number.POSITIVE_INFINITY);
      var node = g.node(elem);
      if (min2 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {
        xs[elem] = Math.max(xs[elem], min2);
      }
    }
    iterate(pass1, blockG.predecessors.bind(blockG));
    iterate(pass2, blockG.successors.bind(blockG));
    _.forEach(align, function(v) {
      xs[v] = xs[root[v]];
    });
    return xs;
  }
  function buildBlockGraph(g, layering, root, reverseSep) {
    var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
    _.forEach(layering, function(layer) {
      var u;
      _.forEach(layer, function(v) {
        var vRoot = root[v];
        blockGraph.setNode(vRoot);
        if (u) {
          var uRoot = root[u], prevMax = blockGraph.edge(uRoot, vRoot);
          blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));
        }
        u = v;
      });
    });
    return blockGraph;
  }
  function findSmallestWidthAlignment(g, xss) {
    return _.minBy(_.values(xss), function(xs) {
      var max2 = Number.NEGATIVE_INFINITY;
      var min2 = Number.POSITIVE_INFINITY;
      _.forIn(xs, function(x, v) {
        var halfWidth = width(g, v) / 2;
        max2 = Math.max(x + halfWidth, max2);
        min2 = Math.min(x - halfWidth, min2);
      });
      return max2 - min2;
    });
  }
  function alignCoordinates(xss, alignTo) {
    var alignToVals = _.values(alignTo), alignToMin = _.min(alignToVals), alignToMax = _.max(alignToVals);
    _.forEach(["u", "d"], function(vert) {
      _.forEach(["l", "r"], function(horiz) {
        var alignment = vert + horiz, xs = xss[alignment], delta;
        if (xs === alignTo) return;
        var xsVals = _.values(xs);
        delta = horiz === "l" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);
        if (delta) {
          xss[alignment] = _.mapValues(xs, function(x) {
            return x + delta;
          });
        }
      });
    });
  }
  function balance(xss, align) {
    return _.mapValues(xss.ul, function(ignore, v) {
      if (align) {
        return xss[align.toLowerCase()][v];
      } else {
        var xs = _.sortBy(_.map(xss, v));
        return (xs[1] + xs[2]) / 2;
      }
    });
  }
  function positionX(g) {
    var layering = util2.buildLayerMatrix(g);
    var conflicts = _.merge(
      findType1Conflicts(g, layering),
      findType2Conflicts(g, layering)
    );
    var xss = {};
    var adjustedLayering;
    _.forEach(["u", "d"], function(vert) {
      adjustedLayering = vert === "u" ? layering : _.values(layering).reverse();
      _.forEach(["l", "r"], function(horiz) {
        if (horiz === "r") {
          adjustedLayering = _.map(adjustedLayering, function(inner) {
            return _.values(inner).reverse();
          });
        }
        var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
        var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
        var xs = horizontalCompaction(
          g,
          adjustedLayering,
          align.root,
          align.align,
          horiz === "r"
        );
        if (horiz === "r") {
          xs = _.mapValues(xs, function(x) {
            return -x;
          });
        }
        xss[vert + horiz] = xs;
      });
    });
    var smallestWidth = findSmallestWidthAlignment(g, xss);
    alignCoordinates(xss, smallestWidth);
    return balance(xss, g.graph().align);
  }
  function sep(nodeSep, edgeSep, reverseSep) {
    return function(g, v, w) {
      var vLabel = g.node(v);
      var wLabel = g.node(w);
      var sum = 0;
      var delta;
      sum += vLabel.width / 2;
      if (_.has(vLabel, "labelpos")) {
        switch (vLabel.labelpos.toLowerCase()) {
          case "l":
            delta = -vLabel.width / 2;
            break;
          case "r":
            delta = vLabel.width / 2;
            break;
        }
      }
      if (delta) {
        sum += reverseSep ? delta : -delta;
      }
      delta = 0;
      sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
      sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
      sum += wLabel.width / 2;
      if (_.has(wLabel, "labelpos")) {
        switch (wLabel.labelpos.toLowerCase()) {
          case "l":
            delta = wLabel.width / 2;
            break;
          case "r":
            delta = -wLabel.width / 2;
            break;
        }
      }
      if (delta) {
        sum += reverseSep ? delta : -delta;
      }
      delta = 0;
      return sum;
    };
  }
  function width(g, v) {
    return g.node(v).width;
  }
  return bk;
}
var position_1;
var hasRequiredPosition;
function requirePosition() {
  if (hasRequiredPosition) return position_1;
  hasRequiredPosition = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  var positionX = requireBk().positionX;
  position_1 = position;
  function position(g) {
    g = util2.asNonCompoundGraph(g);
    positionY(g);
    _.forEach(positionX(g), function(x, v) {
      g.node(v).x = x;
    });
  }
  function positionY(g) {
    var layering = util2.buildLayerMatrix(g);
    var rankSep = g.graph().ranksep;
    var prevY = 0;
    _.forEach(layering, function(layer) {
      var maxHeight = _.max(_.map(layer, function(v) {
        return g.node(v).height;
      }));
      _.forEach(layer, function(v) {
        g.node(v).y = prevY + maxHeight / 2;
      });
      prevY += maxHeight + rankSep;
    });
  }
  return position_1;
}
var layout_1;
var hasRequiredLayout;
function requireLayout() {
  if (hasRequiredLayout) return layout_1;
  hasRequiredLayout = 1;
  var _ = requireLodash();
  var acyclic2 = requireAcyclic();
  var normalize2 = requireNormalize();
  var rank = requireRank();
  var normalizeRanks = requireUtil$1().normalizeRanks;
  var parentDummyChains = requireParentDummyChains();
  var removeEmptyRanks = requireUtil$1().removeEmptyRanks;
  var nestingGraph2 = requireNestingGraph();
  var addBorderSegments = requireAddBorderSegments();
  var coordinateSystem2 = requireCoordinateSystem();
  var order = requireOrder();
  var position = requirePosition();
  var util2 = requireUtil$1();
  var Graph = requireGraphlib().Graph;
  layout_1 = layout;
  function layout(g, opts) {
    var time = opts && opts.debugTiming ? util2.time : util2.notime;
    time("layout", function() {
      var layoutGraph = time("  buildLayoutGraph", function() {
        return buildLayoutGraph(g);
      });
      time("  runLayout", function() {
        runLayout(layoutGraph, time);
      });
      time("  updateInputGraph", function() {
        updateInputGraph(g, layoutGraph);
      });
    });
  }
  function runLayout(g, time) {
    time("    makeSpaceForEdgeLabels", function() {
      makeSpaceForEdgeLabels(g);
    });
    time("    removeSelfEdges", function() {
      removeSelfEdges(g);
    });
    time("    acyclic", function() {
      acyclic2.run(g);
    });
    time("    nestingGraph.run", function() {
      nestingGraph2.run(g);
    });
    time("    rank", function() {
      rank(util2.asNonCompoundGraph(g));
    });
    time("    injectEdgeLabelProxies", function() {
      injectEdgeLabelProxies(g);
    });
    time("    removeEmptyRanks", function() {
      removeEmptyRanks(g);
    });
    time("    nestingGraph.cleanup", function() {
      nestingGraph2.cleanup(g);
    });
    time("    normalizeRanks", function() {
      normalizeRanks(g);
    });
    time("    assignRankMinMax", function() {
      assignRankMinMax(g);
    });
    time("    removeEdgeLabelProxies", function() {
      removeEdgeLabelProxies(g);
    });
    time("    normalize.run", function() {
      normalize2.run(g);
    });
    time("    parentDummyChains", function() {
      parentDummyChains(g);
    });
    time("    addBorderSegments", function() {
      addBorderSegments(g);
    });
    time("    order", function() {
      order(g);
    });
    time("    insertSelfEdges", function() {
      insertSelfEdges(g);
    });
    time("    adjustCoordinateSystem", function() {
      coordinateSystem2.adjust(g);
    });
    time("    position", function() {
      position(g);
    });
    time("    positionSelfEdges", function() {
      positionSelfEdges(g);
    });
    time("    removeBorderNodes", function() {
      removeBorderNodes(g);
    });
    time("    normalize.undo", function() {
      normalize2.undo(g);
    });
    time("    fixupEdgeLabelCoords", function() {
      fixupEdgeLabelCoords(g);
    });
    time("    undoCoordinateSystem", function() {
      coordinateSystem2.undo(g);
    });
    time("    translateGraph", function() {
      translateGraph(g);
    });
    time("    assignNodeIntersects", function() {
      assignNodeIntersects(g);
    });
    time("    reversePoints", function() {
      reversePointsForReversedEdges(g);
    });
    time("    acyclic.undo", function() {
      acyclic2.undo(g);
    });
  }
  function updateInputGraph(inputGraph, layoutGraph) {
    _.forEach(inputGraph.nodes(), function(v) {
      var inputLabel = inputGraph.node(v);
      var layoutLabel = layoutGraph.node(v);
      if (inputLabel) {
        inputLabel.x = layoutLabel.x;
        inputLabel.y = layoutLabel.y;
        if (layoutGraph.children(v).length) {
          inputLabel.width = layoutLabel.width;
          inputLabel.height = layoutLabel.height;
        }
      }
    });
    _.forEach(inputGraph.edges(), function(e) {
      var inputLabel = inputGraph.edge(e);
      var layoutLabel = layoutGraph.edge(e);
      inputLabel.points = layoutLabel.points;
      if (_.has(layoutLabel, "x")) {
        inputLabel.x = layoutLabel.x;
        inputLabel.y = layoutLabel.y;
      }
    });
    inputGraph.graph().width = layoutGraph.graph().width;
    inputGraph.graph().height = layoutGraph.graph().height;
  }
  var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
  var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
  var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
  var nodeNumAttrs = ["width", "height"];
  var nodeDefaults = { width: 0, height: 0 };
  var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
  var edgeDefaults = {
    minlen: 1,
    weight: 1,
    width: 0,
    height: 0,
    labeloffset: 10,
    labelpos: "r"
  };
  var edgeAttrs = ["labelpos"];
  function buildLayoutGraph(inputGraph) {
    var g = new Graph({ multigraph: true, compound: true });
    var graph2 = canonicalize(inputGraph.graph());
    g.setGraph(_.merge(
      {},
      graphDefaults,
      selectNumberAttrs(graph2, graphNumAttrs),
      _.pick(graph2, graphAttrs)
    ));
    _.forEach(inputGraph.nodes(), function(v) {
      var node = canonicalize(inputGraph.node(v));
      g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));
      g.setParent(v, inputGraph.parent(v));
    });
    _.forEach(inputGraph.edges(), function(e) {
      var edge = canonicalize(inputGraph.edge(e));
      g.setEdge(e, _.merge(
        {},
        edgeDefaults,
        selectNumberAttrs(edge, edgeNumAttrs),
        _.pick(edge, edgeAttrs)
      ));
    });
    return g;
  }
  function makeSpaceForEdgeLabels(g) {
    var graph2 = g.graph();
    graph2.ranksep /= 2;
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      edge.minlen *= 2;
      if (edge.labelpos.toLowerCase() !== "c") {
        if (graph2.rankdir === "TB" || graph2.rankdir === "BT") {
          edge.width += edge.labeloffset;
        } else {
          edge.height += edge.labeloffset;
        }
      }
    });
  }
  function injectEdgeLabelProxies(g) {
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      if (edge.width && edge.height) {
        var v = g.node(e.v);
        var w = g.node(e.w);
        var label = { rank: (w.rank - v.rank) / 2 + v.rank, e };
        util2.addDummyNode(g, "edge-proxy", label, "_ep");
      }
    });
  }
  function assignRankMinMax(g) {
    var maxRank = 0;
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      if (node.borderTop) {
        node.minRank = g.node(node.borderTop).rank;
        node.maxRank = g.node(node.borderBottom).rank;
        maxRank = _.max(maxRank, node.maxRank);
      }
    });
    g.graph().maxRank = maxRank;
  }
  function removeEdgeLabelProxies(g) {
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      if (node.dummy === "edge-proxy") {
        g.edge(node.e).labelRank = node.rank;
        g.removeNode(v);
      }
    });
  }
  function translateGraph(g) {
    var minX = Number.POSITIVE_INFINITY;
    var maxX = 0;
    var minY = Number.POSITIVE_INFINITY;
    var maxY = 0;
    var graphLabel = g.graph();
    var marginX = graphLabel.marginx || 0;
    var marginY = graphLabel.marginy || 0;
    function getExtremes(attrs) {
      var x = attrs.x;
      var y = attrs.y;
      var w = attrs.width;
      var h = attrs.height;
      minX = Math.min(minX, x - w / 2);
      maxX = Math.max(maxX, x + w / 2);
      minY = Math.min(minY, y - h / 2);
      maxY = Math.max(maxY, y + h / 2);
    }
    _.forEach(g.nodes(), function(v) {
      getExtremes(g.node(v));
    });
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      if (_.has(edge, "x")) {
        getExtremes(edge);
      }
    });
    minX -= marginX;
    minY -= marginY;
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      node.x -= minX;
      node.y -= minY;
    });
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      _.forEach(edge.points, function(p) {
        p.x -= minX;
        p.y -= minY;
      });
      if (_.has(edge, "x")) {
        edge.x -= minX;
      }
      if (_.has(edge, "y")) {
        edge.y -= minY;
      }
    });
    graphLabel.width = maxX - minX + marginX;
    graphLabel.height = maxY - minY + marginY;
  }
  function assignNodeIntersects(g) {
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      var nodeV = g.node(e.v);
      var nodeW = g.node(e.w);
      var p1, p2;
      if (!edge.points) {
        edge.points = [];
        p1 = nodeW;
        p2 = nodeV;
      } else {
        p1 = edge.points[0];
        p2 = edge.points[edge.points.length - 1];
      }
      edge.points.unshift(util2.intersectRect(nodeV, p1));
      edge.points.push(util2.intersectRect(nodeW, p2));
    });
  }
  function fixupEdgeLabelCoords(g) {
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      if (_.has(edge, "x")) {
        if (edge.labelpos === "l" || edge.labelpos === "r") {
          edge.width -= edge.labeloffset;
        }
        switch (edge.labelpos) {
          case "l":
            edge.x -= edge.width / 2 + edge.labeloffset;
            break;
          case "r":
            edge.x += edge.width / 2 + edge.labeloffset;
            break;
        }
      }
    });
  }
  function reversePointsForReversedEdges(g) {
    _.forEach(g.edges(), function(e) {
      var edge = g.edge(e);
      if (edge.reversed) {
        edge.points.reverse();
      }
    });
  }
  function removeBorderNodes(g) {
    _.forEach(g.nodes(), function(v) {
      if (g.children(v).length) {
        var node = g.node(v);
        var t = g.node(node.borderTop);
        var b = g.node(node.borderBottom);
        var l = g.node(_.last(node.borderLeft));
        var r = g.node(_.last(node.borderRight));
        node.width = Math.abs(r.x - l.x);
        node.height = Math.abs(b.y - t.y);
        node.x = l.x + node.width / 2;
        node.y = t.y + node.height / 2;
      }
    });
    _.forEach(g.nodes(), function(v) {
      if (g.node(v).dummy === "border") {
        g.removeNode(v);
      }
    });
  }
  function removeSelfEdges(g) {
    _.forEach(g.edges(), function(e) {
      if (e.v === e.w) {
        var node = g.node(e.v);
        if (!node.selfEdges) {
          node.selfEdges = [];
        }
        node.selfEdges.push({ e, label: g.edge(e) });
        g.removeEdge(e);
      }
    });
  }
  function insertSelfEdges(g) {
    var layers = util2.buildLayerMatrix(g);
    _.forEach(layers, function(layer) {
      var orderShift = 0;
      _.forEach(layer, function(v, i) {
        var node = g.node(v);
        node.order = i + orderShift;
        _.forEach(node.selfEdges, function(selfEdge) {
          util2.addDummyNode(g, "selfedge", {
            width: selfEdge.label.width,
            height: selfEdge.label.height,
            rank: node.rank,
            order: i + ++orderShift,
            e: selfEdge.e,
            label: selfEdge.label
          }, "_se");
        });
        delete node.selfEdges;
      });
    });
  }
  function positionSelfEdges(g) {
    _.forEach(g.nodes(), function(v) {
      var node = g.node(v);
      if (node.dummy === "selfedge") {
        var selfNode = g.node(node.e.v);
        var x = selfNode.x + selfNode.width / 2;
        var y = selfNode.y;
        var dx = node.x - x;
        var dy = selfNode.height / 2;
        g.setEdge(node.e, node.label);
        g.removeNode(v);
        node.label.points = [
          { x: x + 2 * dx / 3, y: y - dy },
          { x: x + 5 * dx / 6, y: y - dy },
          { x: x + dx, y },
          { x: x + 5 * dx / 6, y: y + dy },
          { x: x + 2 * dx / 3, y: y + dy }
        ];
        node.label.x = node.x;
        node.label.y = node.y;
      }
    });
  }
  function selectNumberAttrs(obj, attrs) {
    return _.mapValues(_.pick(obj, attrs), Number);
  }
  function canonicalize(attrs) {
    var newAttrs = {};
    _.forEach(attrs, function(v, k) {
      newAttrs[k.toLowerCase()] = v;
    });
    return newAttrs;
  }
  return layout_1;
}
var debug;
var hasRequiredDebug;
function requireDebug() {
  if (hasRequiredDebug) return debug;
  hasRequiredDebug = 1;
  var _ = requireLodash();
  var util2 = requireUtil$1();
  var Graph = requireGraphlib().Graph;
  debug = {
    debugOrdering
  };
  function debugOrdering(g) {
    var layerMatrix = util2.buildLayerMatrix(g);
    var h = new Graph({ compound: true, multigraph: true }).setGraph({});
    _.forEach(g.nodes(), function(v) {
      h.setNode(v, { label: v });
      h.setParent(v, "layer" + g.node(v).rank);
    });
    _.forEach(g.edges(), function(e) {
      h.setEdge(e.v, e.w, {}, e.name);
    });
    _.forEach(layerMatrix, function(layer, i) {
      var layerV = "layer" + i;
      h.setNode(layerV, { rank: "same" });
      _.reduce(layer, function(u, v) {
        h.setEdge(u, v, { style: "invis" });
        return v;
      });
    });
    return h;
  }
  return debug;
}
var version;
var hasRequiredVersion;
function requireVersion() {
  if (hasRequiredVersion) return version;
  hasRequiredVersion = 1;
  version = "0.8.5";
  return version;
}
var dagre$1;
var hasRequiredDagre;
function requireDagre() {
  if (hasRequiredDagre) return dagre$1;
  hasRequiredDagre = 1;
  dagre$1 = {
    graphlib: requireGraphlib(),
    layout: requireLayout(),
    debug: requireDebug(),
    util: {
      time: requireUtil$1().time,
      notime: requireUtil$1().notime
    },
    version: requireVersion()
  };
  return dagre$1;
}
var dagreExports = requireDagre();
const dagre = /* @__PURE__ */ getDefaultExportFromCjs(dagreExports);
const LANE_PADDING = 48;
const PARENT_WIDTH = 220;
const NODE_HEIGHT = 100;
const BOUNDARY_SIZE = 56;
const BOUNDARY_LABEL_H = 20;
const BOUNDARY_GAP = 12;
const PARENT_BOUNDARY_GAP = 30;
const DAGRE_NODESEP = 60;
const DAGRE_RANKSEP = 80;
const RANK_TOLERANCE = 5;
const GRID_SIZE = 15;
function snapToGrid(value) {
  return Math.round(value / GRID_SIZE) * GRID_SIZE;
}
function buildBoundaryGroups(nodes) {
  const groups = /* @__PURE__ */ new Map();
  for (const node of nodes) {
    if (node.parentNode) {
      const list2 = groups.get(node.parentNode) || [];
      list2.push(node);
      groups.set(node.parentNode, list2);
    }
  }
  return groups;
}
function calculateBoundingBox(boundaries, parentWidth, parentHeight) {
  const count = boundaries.length;
  if (count === 0) {
    return {
      width: parentWidth,
      height: parentHeight,
      offsets: /* @__PURE__ */ new Map()
    };
  }
  const boundaryRowWidth = count * BOUNDARY_SIZE + (count - 1) * BOUNDARY_GAP;
  const boxWidth = Math.max(parentWidth, boundaryRowWidth + 20);
  const boxHeight = parentHeight + PARENT_BOUNDARY_GAP + BOUNDARY_SIZE + BOUNDARY_LABEL_H;
  const rowStartX = (parentWidth - boundaryRowWidth) / 2;
  const boundaryY = parentHeight + PARENT_BOUNDARY_GAP;
  const offsets = /* @__PURE__ */ new Map();
  for (let i = 0; i < count; i++) {
    const x = rowStartX + i * (BOUNDARY_SIZE + BOUNDARY_GAP);
    offsets.set(boundaries[i].id, { x, y: boundaryY });
  }
  return { width: boxWidth, height: boxHeight, offsets };
}
function detectBackEdges(startIds, adjacency) {
  const backEdges = /* @__PURE__ */ new Set();
  const visited = /* @__PURE__ */ new Set();
  const inStack = /* @__PURE__ */ new Set();
  function dfs(nodeId) {
    visited.add(nodeId);
    inStack.add(nodeId);
    for (const neighbor of adjacency.get(nodeId) || []) {
      if (inStack.has(neighbor)) {
        backEdges.add(`${nodeId}->${neighbor}`);
      } else if (!visited.has(neighbor)) {
        dfs(neighbor);
      }
    }
    inStack.delete(nodeId);
  }
  for (const startId of startIds) {
    if (!visited.has(startId)) dfs(startId);
  }
  for (const nodeId of adjacency.keys()) {
    if (!visited.has(nodeId)) dfs(nodeId);
  }
  return backEdges;
}
function correctBoundaryTargetOrdering(topLevelIds, boundaryGroups, candidateEdges, backEdges, positions) {
  const directSucc = /* @__PURE__ */ new Map();
  const boundarySucc = /* @__PURE__ */ new Map();
  for (const edge of candidateEdges) {
    if (backEdges.has(`${edge.source}->${edge.target}`)) continue;
    const map = edge.fromBoundary ? boundarySucc : directSucc;
    const list2 = map.get(edge.source) || [];
    if (!list2.includes(edge.target)) list2.push(edge.target);
    map.set(edge.source, list2);
  }
  const boundaryTargetIds = /* @__PURE__ */ new Set();
  let hasInversions = false;
  for (const [parentId] of boundaryGroups) {
    if (!topLevelIds.has(parentId)) continue;
    const dTargets = directSucc.get(parentId) || [];
    const bTargets = boundarySucc.get(parentId) || [];
    if (dTargets.length === 0 || bTargets.length === 0) continue;
    bTargets.forEach((id) => boundaryTargetIds.add(id));
    const dMaxY = Math.max(...dTargets.map((id) => {
      var _a;
      return ((_a = positions.get(id)) == null ? void 0 : _a.y) ?? 0;
    }));
    const bMinY = Math.min(...bTargets.map((id) => {
      var _a;
      return ((_a = positions.get(id)) == null ? void 0 : _a.y) ?? 0;
    }));
    if (bMinY <= dMaxY) hasInversions = true;
  }
  if (!hasInversions) return;
  const sortedByX = [...positions.entries()].sort((a, b) => a[1].x - b[1].x);
  const ranks = [];
  const nodeToRankIdx = /* @__PURE__ */ new Map();
  for (const [id, pos] of sortedByX) {
    const last = ranks[ranks.length - 1];
    if (last && Math.abs(pos.x - last.x) < RANK_TOLERANCE) {
      last.nodes.push(id);
    } else {
      ranks.push({ x: pos.x, nodes: [id] });
    }
    nodeToRankIdx.set(id, ranks.length - 1);
  }
  const predMap = /* @__PURE__ */ new Map();
  for (const edge of candidateEdges) {
    if (backEdges.has(`${edge.source}->${edge.target}`)) continue;
    const list2 = predMap.get(edge.target) || [];
    if (!list2.includes(edge.source)) list2.push(edge.source);
    predMap.set(edge.target, list2);
  }
  let firstAffectedIdx = ranks.length;
  for (const bt of boundaryTargetIds) {
    const idx = nodeToRankIdx.get(bt);
    if (idx !== void 0 && idx < firstAffectedIdx) firstAffectedIdx = idx;
  }
  for (let i = firstAffectedIdx; i < ranks.length; i++) {
    const nodesInRank = ranks[i].nodes;
    if (nodesInRank.length <= 1) continue;
    const entries = nodesInRank.map((id) => {
      const preds = predMap.get(id) || [];
      let bc;
      if (preds.length === 0) {
        bc = positions.get(id).y;
      } else {
        bc = preds.reduce((s, pid) => {
          var _a;
          return s + (((_a = positions.get(pid)) == null ? void 0 : _a.y) ?? 0);
        }, 0) / preds.length;
      }
      if (boundaryTargetIds.has(id)) bc += 0.1;
      return { id, bc };
    });
    entries.sort((a, b) => a.bc - b.bc);
    const ySlots = nodesInRank.map((id) => positions.get(id).y).sort((a, b) => a - b);
    for (let j = 0; j < entries.length; j++) {
      positions.get(entries[j].id).y = ySlots[j];
    }
  }
}
const getLayoutedElements = (nodes, edges, direction = "LR", swimlanes = []) => {
  var _a;
  const topLevelNodes = [];
  const topLevelIds = /* @__PURE__ */ new Set();
  for (const node of nodes) {
    if (!node.parentNode) {
      topLevelNodes.push(node);
      topLevelIds.add(node.id);
    }
  }
  const boundaryGroups = buildBoundaryGroups(nodes);
  const boundaryToParent = /* @__PURE__ */ new Map();
  for (const node of nodes) {
    if (node.parentNode) {
      boundaryToParent.set(node.id, node.parentNode);
    }
  }
  const startIds = topLevelNodes.filter((n) => {
    var _a2;
    return (_a2 = n.type) == null ? void 0 : _a2.includes("StartEvent");
  }).map((n) => n.id);
  const adjacency = /* @__PURE__ */ new Map();
  for (const id of topLevelIds) {
    adjacency.set(id, []);
  }
  const candidateEdges = [];
  for (const edge of edges) {
    if (edge.sourceHandle === "boundary") continue;
    const sourceIsBoundary = boundaryToParent.has(edge.source);
    const targetIsBoundary = boundaryToParent.has(edge.target);
    const effectiveSource = sourceIsBoundary ? boundaryToParent.get(edge.source) : edge.source;
    const effectiveTarget = targetIsBoundary ? boundaryToParent.get(edge.target) : edge.target;
    if (topLevelIds.has(effectiveSource) && topLevelIds.has(effectiveTarget)) {
      if (effectiveSource === effectiveTarget) continue;
      candidateEdges.push({
        source: effectiveSource,
        target: effectiveTarget,
        fromBoundary: sourceIsBoundary
      });
      const neighbors = adjacency.get(effectiveSource);
      if (neighbors) neighbors.push(effectiveTarget);
    }
  }
  const backEdges = detectBackEdges(startIds, adjacency);
  const dagreEdgeSet = /* @__PURE__ */ new Set();
  const dagreEdges = [];
  for (const edge of candidateEdges) {
    const key = `${edge.source}->${edge.target}`;
    if (backEdges.has(key)) continue;
    if (dagreEdgeSet.has(key)) continue;
    dagreEdgeSet.add(key);
    dagreEdges.push(edge);
  }
  const boundingBoxes = /* @__PURE__ */ new Map();
  for (const node of topLevelNodes) {
    const measuredWidth = node.width ?? PARENT_WIDTH;
    const measuredHeight = node.height ?? NODE_HEIGHT;
    const boundaries = boundaryGroups.get(node.id);
    if (boundaries && boundaries.length > 0) {
      boundingBoxes.set(
        node.id,
        calculateBoundingBox(boundaries, measuredWidth, measuredHeight)
      );
    } else {
      boundingBoxes.set(node.id, {
        width: measuredWidth,
        height: measuredHeight,
        offsets: /* @__PURE__ */ new Map()
      });
    }
  }
  const dagreGraph = new dagre.graphlib.Graph({ compound: true });
  dagreGraph.setDefaultEdgeLabel(() => ({}));
  const isHorizontal = direction === "LR";
  dagreGraph.setGraph({
    rankdir: direction,
    nodesep: DAGRE_NODESEP,
    ranksep: DAGRE_RANKSEP
  });
  const laneByName = /* @__PURE__ */ new Map();
  const laneMemberIds = /* @__PURE__ */ new Map();
  for (const lane of swimlanes) laneByName.set(lane.name, lane);
  for (const node of topLevelNodes) {
    const actor = (_a = node.data) == null ? void 0 : _a.actorType;
    if (actor && laneByName.has(actor)) {
      const lane = laneByName.get(actor);
      const list2 = laneMemberIds.get(lane.id) || [];
      list2.push(node.id);
      laneMemberIds.set(lane.id, list2);
    }
  }
  for (const [laneId] of laneMemberIds) {
    dagreGraph.setNode(laneId, { label: "" });
  }
  for (const node of topLevelNodes) {
    const box = boundingBoxes.get(node.id);
    dagreGraph.setNode(node.id, { width: box.width, height: box.height });
  }
  for (const [laneId, memberIds] of laneMemberIds) {
    for (const memberId of memberIds) {
      dagreGraph.setParent(memberId, laneId);
    }
  }
  for (const edge of dagreEdges) {
    dagreGraph.setEdge(edge.source, edge.target);
  }
  dagre.layout(dagreGraph);
  const correctedPositions = /* @__PURE__ */ new Map();
  for (const node of topLevelNodes) {
    const dn = dagreGraph.node(node.id);
    if (dn) correctedPositions.set(node.id, { x: dn.x, y: dn.y });
  }
  correctBoundaryTargetOrdering(
    topLevelIds,
    boundaryGroups,
    candidateEdges,
    backEdges,
    correctedPositions
  );
  if (laneMemberIds.size > 0) {
    const laneBBoxes = [];
    for (const [laneId, memberIds] of laneMemberIds) {
      let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
      for (const id of memberIds) {
        const pos = correctedPositions.get(id);
        const box = boundingBoxes.get(id);
        if (!pos || !box) continue;
        minX = Math.min(minX, pos.x - box.width / 2);
        minY = Math.min(minY, pos.y - box.height / 2);
        maxX = Math.max(maxX, pos.x + box.width / 2);
        maxY = Math.max(maxY, pos.y + box.height / 2);
      }
      if (isFinite(minX)) {
        laneBBoxes.push({ laneId, memberIds, minX, minY, maxX, maxY });
      }
    }
    if (laneBBoxes.length > 0) {
      laneBBoxes.sort(
        (a, b) => (a.minY + a.maxY) / 2 - (b.minY + b.maxY) / 2
      );
      const sharedMinX = Math.min(...laneBBoxes.map((l) => l.minX));
      const VISIBLE_LANE_GAP = 60;
      const MEMBER_STACK_GAP = 2 * LANE_PADDING + VISIBLE_LANE_GAP;
      const nodeDelta = /* @__PURE__ */ new Map();
      let cursorY = laneBBoxes[0].minY;
      for (const lane of laneBBoxes) {
        const dx = sharedMinX - lane.minX;
        const dy = cursorY - lane.minY;
        for (const id of lane.memberIds) {
          const pos = correctedPositions.get(id);
          if (!pos) continue;
          pos.x += dx;
          pos.y += dy;
          nodeDelta.set(id, { dx, dy });
        }
        const height = lane.maxY - lane.minY;
        cursorY = lane.minY + dy + height + MEMBER_STACK_GAP;
      }
      const predMap = /* @__PURE__ */ new Map();
      for (const edge of candidateEdges) {
        if (backEdges.has(`${edge.source}->${edge.target}`)) continue;
        const list2 = predMap.get(edge.target) || [];
        if (!list2.includes(edge.source)) list2.push(edge.source);
        predMap.set(edge.target, list2);
      }
      let iterations = 0;
      let changed = true;
      while (changed && iterations < topLevelNodes.length + 2) {
        changed = false;
        iterations++;
        for (const node of topLevelNodes) {
          if (nodeDelta.has(node.id)) continue;
          const preds = predMap.get(node.id) || [];
          const knownDeltas = preds.map((p) => nodeDelta.get(p)).filter((d) => !!d);
          if (knownDeltas.length === 0) continue;
          const avgDx = knownDeltas.reduce((s, d) => s + d.dx, 0) / knownDeltas.length;
          const avgDy = knownDeltas.reduce((s, d) => s + d.dy, 0) / knownDeltas.length;
          const pos = correctedPositions.get(node.id);
          if (pos) {
            pos.x += avgDx;
            pos.y += avgDy;
            nodeDelta.set(node.id, { dx: avgDx, dy: avgDy });
            changed = true;
          }
        }
      }
    }
  }
  const laidOutNodes = nodes.map((node) => {
    if (node.parentNode) {
      const parentBox = boundingBoxes.get(node.parentNode);
      if (parentBox) {
        const offset = parentBox.offsets.get(node.id);
        if (offset) {
          return { ...node, position: { x: snapToGrid(offset.x), y: snapToGrid(offset.y) } };
        }
      }
      return node;
    }
    const pos = correctedPositions.get(node.id);
    if (!pos) return node;
    const box = boundingBoxes.get(node.id);
    return {
      ...node,
      targetPosition: isHorizontal ? Position.Left : Position.Top,
      sourcePosition: isHorizontal ? Position.Right : Position.Bottom,
      position: {
        x: snapToGrid(pos.x - box.width / 2),
        y: snapToGrid(pos.y - box.height / 2)
      }
    };
  });
  const sizedLanes = swimlanes.map((lane) => {
    var _a2, _b;
    const members = laidOutNodes.filter(
      (n) => {
        var _a3;
        return !n.parentNode && ((_a3 = n.data) == null ? void 0 : _a3.actorType) === lane.name;
      }
    );
    if (members.length === 0) {
      return { lane, sized: false };
    }
    let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
    for (const m of members) {
      const w = m.width ?? ((_a2 = boundingBoxes.get(m.id)) == null ? void 0 : _a2.width) ?? PARENT_WIDTH;
      const h = m.height ?? ((_b = boundingBoxes.get(m.id)) == null ? void 0 : _b.height) ?? NODE_HEIGHT;
      minX = Math.min(minX, m.position.x);
      minY = Math.min(minY, m.position.y);
      maxX = Math.max(maxX, m.position.x + w);
      maxY = Math.max(maxY, m.position.y + h);
    }
    const updated = {
      ...lane,
      x: snapToGrid(minX - LANE_PADDING),
      y: snapToGrid(minY - LANE_PADDING),
      width: Math.max(MIN_LANE_WIDTH, snapToGrid(maxX - minX + 2 * LANE_PADDING)),
      height: Math.max(MIN_LANE_HEIGHT, snapToGrid(maxY - minY + 2 * LANE_PADDING))
    };
    return { lane: updated, sized: true };
  });
  const commonWidth = Math.max(
    MIN_LANE_WIDTH,
    ...sizedLanes.filter((s) => s.sized).map((s) => s.lane.width)
  );
  const laidOutSwimlanes = sizedLanes.map(
    (s) => s.sized ? { ...s.lane, width: commonWidth } : s.lane
  );
  return { nodes: laidOutNodes, swimlanes: laidOutSwimlanes };
};
const IS_DEV$1 = typeof import.meta !== "undefined" && false;
const safeDeepClone = (obj) => {
  try {
    return JSON.parse(JSON.stringify(obj));
  } catch (e) {
    console.error("Deep clone failed (likely circular reference). Falling back to sanitization.", e);
    if (Array.isArray(obj)) return [...obj];
    return { ...obj };
  }
};
const INTERNAL_NODE_FIELDS = [
  "positionAbsolute",
  "measured",
  "handleBounds",
  "dragging",
  "selected",
  "resizing",
  "width",
  "height",
  "z"
];
const sanitizeNodes = (nodes) => {
  const cleanNodes = safeDeepClone(nodes);
  return cleanNodes.map((node) => {
    const mutable = node;
    INTERNAL_NODE_FIELDS.forEach((field) => {
      delete mutable[field];
    });
    if (!node.position || typeof node.position.x !== "number" || typeof node.position.y !== "number") {
      console.warn(`Node ${node.id} has invalid position, resetting to {0,0}.`);
      node.position = { x: 0, y: 0 };
    }
    return node;
  });
};
const validateGraph = (nodes) => {
  const errors = [];
  const nodeMap = new Map(nodes.map((n) => [n.id, n]));
  nodes.forEach((n) => {
    if (n.parentNode) {
      if (n.parentNode === n.id) {
        const msg = `CRITICAL: Self-Reference detected. Node ${n.id} is its own parent.`;
        console.error(msg);
        errors.push(msg);
      }
      if (!nodeMap.has(n.parentNode) && IS_DEV$1) ;
    }
  });
  nodes.forEach((startNode) => {
    if (!startNode.parentNode) return;
    let currentId = startNode.parentNode;
    const path = [startNode.id];
    const visited = /* @__PURE__ */ new Set([startNode.id]);
    let depth = 0;
    const MAX_DEPTH = 500;
    while (currentId) {
      if (visited.has(currentId)) {
        const cyclePath = [...path, currentId].join(" -> ");
        const msg = `CRITICAL: Cycle Detected in parent hierarchy: ${cyclePath}`;
        console.error(msg);
        errors.push(msg);
        break;
      }
      visited.add(currentId);
      path.push(currentId);
      const parent = nodeMap.get(currentId);
      if (!parent || !parent.parentNode) break;
      currentId = parent.parentNode;
      depth++;
      if (depth > MAX_DEPTH) {
        const msg = `Validation Aborted: Max depth exceeded for node ${startNode.id}. Chain: ${path.join(" -> ")}`;
        console.error(msg);
        errors.push(msg);
        break;
      }
    }
  });
  return errors;
};
const useProcessManagement = (nodes, setNodes, edges, setEdges, swimlanes, setSwimlanes, initialData) => {
  const { fitView } = useReactFlow();
  const { addToast } = useToast();
  const startingData = initialData && initialData.length > 0 ? initialData : [{ id: "proc_1", name: "New Process", nodes: [], edges: [] }];
  const [activeProcessId, setActiveProcessId] = useState(startingData[0].id);
  const [processes, setProcesses] = useState(
    JSON.parse(JSON.stringify(startingData))
  );
  const handleSelectProcess = useCallback((id) => {
    if (id === activeProcessId) return;
    try {
      const currentNodesSanitized = sanitizeNodes(nodes);
      const currentSwimlanesSnapshot = safeDeepClone(swimlanes);
      setProcesses((prev) => prev.map(
        (p) => p.id === activeProcessId ? { ...p, nodes: currentNodesSanitized, edges, swimlanes: currentSwimlanesSnapshot } : p
      ));
      const rawTargetProc = processes.find((p) => p.id === id);
      if (!rawTargetProc) {
        console.error(`Process ${id} not found!`);
        addToast({ type: "error", title: "Error", message: "Process not found." });
        return;
      }
      const targetProc = safeDeepClone(rawTargetProc);
      const graphErrors = validateGraph(targetProc.nodes);
      if (graphErrors.length > 0) {
        if (IS_DEV$1) ;
        addToast({
          type: "warning",
          title: "Graph Auto-Repaired",
          message: `Detected ${graphErrors.length} layout issues. Some groupings may be reset.`
        });
        targetProc.nodes = targetProc.nodes.map((n) => {
          const isProblematic = graphErrors.some((e) => e.includes(n.id));
          if (isProblematic && n.parentNode) {
            if (IS_DEV$1) ;
            const { parentNode: _parentNode, ...rest } = n;
            return { ...rest, position: { x: 0, y: 0 } };
          }
          return n;
        });
      }
      const nodesToLoad = sanitizeNodes(targetProc.nodes);
      const edgesToLoad = targetProc.edges;
      const swimlanesToLoad = Array.isArray(targetProc.swimlanes) ? targetProc.swimlanes : [];
      setNodes(nodesToLoad);
      setEdges(edgesToLoad);
      setSwimlanes(swimlanesToLoad);
      setActiveProcessId(id);
      setTimeout(() => {
        fitView({ duration: 500 });
      }, 50);
    } catch (e) {
      const message = e instanceof Error ? e.message : "Unknown error";
      console.error("Critical Failure Switching Process:", e);
      addToast({ type: "error", title: "System Error", message: "Failed to load process: " + message });
    } finally {
    }
  }, [activeProcessId, nodes, edges, swimlanes, processes, setNodes, setEdges, setSwimlanes, fitView, addToast]);
  const handleCreateProcess = useCallback(() => {
    const currentNodesSanitized = sanitizeNodes(nodes);
    const currentSwimlanesSnapshot = safeDeepClone(swimlanes);
    setProcesses((prev) => prev.map(
      (p) => p.id === activeProcessId ? { ...p, nodes: currentNodesSanitized, edges, swimlanes: currentSwimlanesSnapshot } : p
    ));
    const newId = `proc_${Date.now()}`;
    const newProcess = {
      id: newId,
      name: `Process ${processes.length + 1}`,
      nodes: [],
      edges: [],
      swimlanes: []
    };
    setProcesses((prev) => [...prev, newProcess]);
    setNodes([]);
    setEdges([]);
    setSwimlanes([]);
    setActiveProcessId(newId);
    addToast({ type: "success", title: "Process Created", message: "New blank process initialized." });
  }, [activeProcessId, nodes, edges, swimlanes, processes, setNodes, setEdges, setSwimlanes, addToast]);
  const handleCreateSubProcess = useCallback(() => {
    const currentNodesSanitized = sanitizeNodes(nodes);
    const currentSwimlanesSnapshot = safeDeepClone(swimlanes);
    setProcesses((prev) => prev.map(
      (p) => p.id === activeProcessId ? { ...p, nodes: currentNodesSanitized, edges, swimlanes: currentSwimlanesSnapshot } : p
    ));
    const newId = `subproc_${Date.now()}`;
    const newProcess = {
      id: newId,
      name: `Sub Process ${processes.length + 1}`,
      isSubProcess: true,
      nodes: [],
      edges: [],
      swimlanes: []
    };
    setProcesses((prev) => [...prev, newProcess]);
    setNodes([]);
    setEdges([]);
    setSwimlanes([]);
    setActiveProcessId(newId);
    addToast({ type: "success", title: "Sub-Process Created", message: "New blank sub-process initialized." });
  }, [activeProcessId, nodes, edges, swimlanes, processes, setNodes, setEdges, setSwimlanes, addToast]);
  const handleDeleteProcess = useCallback((id) => {
    if (processes.length <= 1) {
      addToast({ type: "warning", title: "Action Prevented", message: "Cannot delete the last process." });
      return;
    }
    const isDeletingActive = id === activeProcessId;
    const newProcesses = processes.filter((p) => p.id !== id);
    setProcesses(newProcesses);
    if (isDeletingActive) {
      const nextProc = newProcesses[0];
      const cleanNextNodes = sanitizeNodes(nextProc.nodes);
      const nextSwimlanes = Array.isArray(nextProc.swimlanes) ? safeDeepClone(nextProc.swimlanes) : [];
      setNodes(cleanNextNodes);
      setEdges(JSON.parse(JSON.stringify(nextProc.edges)));
      setSwimlanes(nextSwimlanes);
      setActiveProcessId(nextProc.id);
      setTimeout(() => fitView(), 50);
    }
    addToast({ type: "info", title: "Process Deleted", message: "Process definition has been removed." });
  }, [processes, activeProcessId, setNodes, setEdges, setSwimlanes, fitView, addToast]);
  const handleUpdateProcess = useCallback((id, data) => {
    setProcesses((prev) => prev.map(
      (p) => p.id === id ? { ...p, ...data } : p
    ));
  }, []);
  return {
    processes,
    setProcesses,
    activeProcessId,
    setActiveProcessId,
    handleSelectProcess,
    handleCreateProcess,
    handleCreateSubProcess,
    handleDeleteProcess,
    handleUpdateProcess
  };
};
class IdManager {
  constructor() {
    this.uuidToInt = /* @__PURE__ */ new Map();
    this.intToUuid = /* @__PURE__ */ new Map();
    this.nextId = 1;
  }
  reset() {
    this.uuidToInt.clear();
    this.intToUuid.clear();
    this.nextId = 1;
  }
  register(uuid, id) {
    const intId = id !== void 0 ? id : this.nextId++;
    if (id !== void 0 && id >= this.nextId) this.nextId = id + 1;
    this.uuidToInt.set(uuid, intId);
    this.intToUuid.set(intId, uuid);
    return intId;
  }
  /**
   * Returns the engine integer id for a given editor uuid, registering a new
   * mapping on first sight. Named `getOrCreate*` because a miss mutates state;
   * the previous `getInt` name hid that side effect.
   */
  getOrCreateInt(uuid) {
    if (!this.uuidToInt.has(uuid)) {
      return this.register(uuid);
    }
    return this.uuidToInt.get(uuid);
  }
  /**
   * Returns the editor uuid for a given engine integer id, fabricating a
   * stable uuid on first sight (used when loading engine JSON). Named
   * `getOrCreate*` because a miss mutates state.
   */
  getOrCreateUuid(id) {
    if (!this.intToUuid.has(id)) {
      const newUuid = `node_${id}_${Date.now()}_${Math.random().toString(36).substr(2, 5)}`;
      this.register(newUuid, id);
      return newUuid;
    }
    return this.intToUuid.get(id);
  }
}
const idManager = new IdManager();
const toIntOrUndefined = (val) => {
  if (val == null) return void 0;
  const n = Number(val);
  return isNaN(n) ? void 0 : n;
};
const writeErrorHandling = (target, data) => {
  const onEx = toIntOrUndefined(data.onException);
  const retries = toIntOrUndefined(data.retries);
  if (onEx != null) target.OnException = onEx;
  if (retries != null) target.Retries = retries;
  if (data.errorHandling && Array.isArray(data.errorHandling.rules)) {
    target.errorHandling = data.errorHandling;
  }
};
const isNonEmptyObject = (v) => !!v && typeof v === "object" && !Array.isArray(v) && Object.keys(v).length > 0;
const writeDataMapping = (node, inputVariables, outputVariables) => {
  if (isNonEmptyObject(inputVariables)) node.InputVariables = inputVariables;
  if (isNonEmptyObject(outputVariables)) node.OutputVariables = outputVariables;
};
const readErrorHandling = (ext, data) => {
  var _a, _b, _c;
  if (typeof ((_a = ext.Data) == null ? void 0 : _a.OnException) === "number") data.onException = String(ext.Data.OnException);
  if (typeof ((_b = ext.Data) == null ? void 0 : _b.Retries) === "number") data.retries = ext.Data.Retries;
  const eh = (_c = ext.Data) == null ? void 0 : _c.errorHandling;
  if (eh && Array.isArray(eh.rules)) {
    data.errorHandling = typeof eh.ruleSetRef === "string" ? { ruleSetRef: eh.ruleSetRef, rules: eh.rules } : { rules: eh.rules };
  }
};
const getTimerKind = (type) => {
  switch (type) {
    case "date":
      return 2;
    case "cycle":
      return 3;
    case "cron":
      return 3;
    default:
      return 1;
  }
};
const getTimerTypeFromKind = (kind) => {
  switch (kind) {
    case 2:
      return "date";
    case 3:
      return "cycle";
    default:
      return "duration";
  }
};
const DEFAULT_EDGE_STROKE = "#94a3b8";
const INFERRED_LANE_PADDING_X = 80;
const INFERRED_LANE_PADDING_Y = 60;
const INFERRED_NODE_WIDTH = 220;
const INFERRED_NODE_HEIGHT = 100;
const INFERRED_BOUNDARY_SIZE = 56;
const INFERRED_BOUNDARY_LABEL_HEIGHT = 20;
const INFERRED_MIN_LANE_WIDTH = 240;
const INFERRED_MIN_LANE_HEIGHT = 120;
const estimateNodeSize = (node) => {
  var _a;
  if ((_a = node.type) == null ? void 0 : _a.endsWith("BoundaryEvent")) {
    return {
      width: INFERRED_BOUNDARY_SIZE,
      height: INFERRED_BOUNDARY_SIZE + INFERRED_BOUNDARY_LABEL_HEIGHT
    };
  }
  return {
    width: INFERRED_NODE_WIDTH,
    height: INFERRED_NODE_HEIGHT
  };
};
const inferSingleLaneBoundsFromNodes = (nodes) => {
  if (!Array.isArray(nodes) || nodes.length === 0) return null;
  const nodeById = new Map(nodes.map((node) => [node.id, node]));
  const absolutePositionCache = /* @__PURE__ */ new Map();
  const getAbsolutePosition = (node) => {
    var _a, _b;
    const cached = absolutePositionCache.get(node.id);
    if (cached) return cached;
    const own = {
      x: Number((_a = node.position) == null ? void 0 : _a.x) || 0,
      y: Number((_b = node.position) == null ? void 0 : _b.y) || 0
    };
    if (!node.parentNode) {
      absolutePositionCache.set(node.id, own);
      return own;
    }
    const parent = nodeById.get(node.parentNode);
    if (!parent) {
      absolutePositionCache.set(node.id, own);
      return own;
    }
    const parentAbs = getAbsolutePosition(parent);
    const absolute = {
      x: parentAbs.x + own.x,
      y: parentAbs.y + own.y
    };
    absolutePositionCache.set(node.id, absolute);
    return absolute;
  };
  let minX = Number.POSITIVE_INFINITY;
  let minY = Number.POSITIVE_INFINITY;
  let maxX = Number.NEGATIVE_INFINITY;
  let maxY = Number.NEGATIVE_INFINITY;
  nodes.forEach((node) => {
    const position = getAbsolutePosition(node);
    const size = estimateNodeSize(node);
    minX = Math.min(minX, position.x);
    minY = Math.min(minY, position.y);
    maxX = Math.max(maxX, position.x + size.width);
    maxY = Math.max(maxY, position.y + size.height);
  });
  if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
    return null;
  }
  return {
    x: minX - INFERRED_LANE_PADDING_X,
    y: minY - INFERRED_LANE_PADDING_Y,
    width: Math.max(INFERRED_MIN_LANE_WIDTH, maxX - minX + INFERRED_LANE_PADDING_X * 2),
    height: Math.max(INFERRED_MIN_LANE_HEIGHT, maxY - minY + INFERRED_LANE_PADDING_Y * 2)
  };
};
const ALWAYS_INTERRUPTING_BOUNDARIES = /* @__PURE__ */ new Set([
  "ErrorBoundaryEvent",
  "TimerBoundaryEvent"
]);
const mapToEngineType = (editorType, data) => {
  if (editorType.endsWith("BoundaryEvent")) {
    if (ALWAYS_INTERRUPTING_BOUNDARIES.has(editorType)) {
      return getEngineType(editorType);
    }
    const isInterrupting = data.cancelActivity !== false;
    if (!isInterrupting) {
      return `NonInterrupting${editorType}`;
    }
  }
  return getEngineType(editorType);
};
const mapFromEngineType = (engineType, node) => {
  if (engineType.startsWith("NonInterrupting")) {
    return engineType.replace("NonInterrupting", "");
  }
  if (engineType === "BlankStartEvent") {
    if (node.Extensions && node.Extensions.some((e) => e.Name === "PSS.Forms")) {
      return "FormStartEvent";
    }
    return "BlankStartEvent";
  }
  if (node.Extensions && Array.isArray(node.Extensions)) {
    const resolved = resolveEditorType(engineType, node.Extensions);
    if (resolved) return resolved;
  }
  if (engineType === "ServiceTask") return "ServiceTaskREST";
  return engineType;
};
const mapEditorTypeToValueType = (type) => {
  switch (type) {
    case "number":
      return "long";
    case "boolean":
      return "boolean";
    case "date":
      return "date";
    case "select":
      return "enum";
    case "email":
      return "email";
    case "guid":
      return "guid";
    default:
      return "string";
  }
};
const mapEditorTypeToInputType = (type) => {
  switch (type) {
    case "boolean":
      return "checkbox";
    case "select":
      return "select";
    case "date":
      return "datepicker";
    case "textarea":
      return "textarea";
    default:
      return type;
  }
};
const createFormsExtension = (data) => {
  const formSchema = data.formSchema;
  if (!formSchema || !formSchema.fields) return null;
  const buildExtensions = (f) => {
    const ext = { ...f.extensions };
    ext.input = mapEditorTypeToInputType(f.type);
    if (f.group) ext.group = f.group;
    return Object.keys(ext).length > 0 ? ext : void 0;
  };
  return {
    Name: "PSS.Forms",
    Data: {
      Title: data.formTitle,
      Description: data.formDescription,
      Modifiers: data.formModifiers || "{\n\n}",
      FormFields: formSchema.fields.map((f) => ({
        Id: f.key || f.id,
        Label: f.label,
        Required: !!f.required,
        Disabled: !!f.disabled,
        Hidden: !!f.hidden,
        ValueType: f.valueType || mapEditorTypeToValueType(f.type),
        DefaultValue: f.defaultValue || void 0,
        Modifier: f.modifier || void 0,
        Values: f.values && Object.keys(f.values).length > 0 ? f.values : void 0,
        Extensions: buildExtensions(f)
      }))
    }
  };
};
const createStartProcessExtension = (data) => {
  const ext = data.startExtensions && Object.keys(data.startExtensions).length > 0 ? data.startExtensions : void 0;
  return {
    Name: "PSS.StartProcess",
    Data: {
      View: data.startView || "Workflow::GenericStartView",
      Roles: data.startRoles || "*",
      Step: data.startStep || "1",
      Deduplication: data.startDeduplication || "",
      Mode: data.startMode || "end",
      Extensions: ext
    }
  };
};
const createUserTaskExtension = (data) => {
  const typeMap = {
    "generic": "PSS.GenericUserTask",
    "produce": "PSS.BadgeProduceTask",
    "smartbridge": "PSS.SmartBridgeTask",
    "receipt": "PSS.BadgeReceiptView"
  };
  const extName = typeMap[data.userTaskType || "generic"] || "PSS.GenericUserTask";
  const baseData = {
    Assignments: data.assignments || [],
    Mode: "continue",
    Step: data.userTaskStep ?? 1,
    Rejectable: data.userTaskRejectable ?? true,
    Subject: data.userTaskSubject || data.label,
    Object: data.userTaskObject || void 0,
    Modifiers: data.userTaskModifiers || void 0,
    Configuration: data.extensionConfig,
    // Early-Bound eval JSON script
    Relations: data.extensionRelations,
    // Early-Bound eval JSON script
    Priority: data.priority
    // Moved from Editor.Properties
  };
  if (data.userTaskType === "produce") {
    const operations = {};
    if (data.productionOperations && Array.isArray(data.productionOperations)) {
      data.productionOperations.forEach((op) => {
        if (op.key) operations[op.key] = op.value;
      });
    }
    baseData.Production = {
      ProcessKey: data.productionProcessKey,
      Operations: operations
    };
  }
  if (data.userTaskType === "smartbridge") {
    baseData.Job = data.jobScript;
  }
  writeErrorHandling(baseData, data);
  if ((!data.assignments || data.assignments.length === 0) && data.assignee) {
    baseData.AssigneeLegacy = data.assignee;
  }
  return {
    Name: extName,
    Data: baseData
  };
};
const createRestExtension = (data) => {
  const extensions = {};
  if (data.headers) extensions.Headers = data.headers;
  if (data.authentication) extensions.Authentication = data.authentication;
  if (data.bearerToken) extensions.BearerToken = data.bearerToken;
  if (data.apiKey) extensions.ApiKey = data.apiKey;
  const restData = {
    Topic: data.restTopic || "Query",
    Service: data.service,
    Endpoint: data.endpoint,
    Method: (data.method || "GET").toUpperCase(),
    Body: data.requestBody,
    ResultVariable: data.resultVariable
  };
  writeErrorHandling(restData, data);
  if (Object.keys(extensions).length > 0) restData.Extensions = extensions;
  return {
    Name: "PSS.RestTask",
    Data: restData
  };
};
const appendRecipients = (recipients, kind, emailCsv, namesCsv) => {
  if (!emailCsv) return;
  const emails = emailCsv.split(",").map((s) => s.trim());
  const names = (namesCsv || "").split(",").map((s) => s.trim());
  emails.forEach((email, i) => {
    recipients.push({ Kind: kind, Email: email, Name: names[i] || email });
  });
};
const createEmailExtension = (data) => {
  var _a;
  const recipients = [];
  appendRecipients(recipients, "TO", data.to, data.toNames);
  appendRecipients(recipients, "CC", data.cc, data.ccNames);
  appendRecipients(recipients, "BCC", data.bcc, data.bccNames);
  const emailData = {
    Topic: "Mail",
    SenderMail: data.fromEmail,
    SenderName: data.fromName,
    Receipients: recipients,
    Subject: data.subject,
    Content: data.body,
    IsHtml: data.isHtml,
    Attachments: ((_a = data.attachments) == null ? void 0 : _a.map((a) => ({ Url: a }))) || []
  };
  writeErrorHandling(emailData, data);
  return { Name: "PSS.EmailTask", Data: emailData };
};
const createSmsExtension = (data) => {
  const smsData = {
    Topic: "SMS",
    Receiver: data.toPhone,
    Content: data.message
  };
  writeErrorHandling(smsData, data);
  return { Name: "PSS.SmsTask", Data: smsData };
};
const createDatabaseExtension = (data) => {
  const dbData = {
    Topic: "Database",
    ConnectionId: data.connectionId,
    QueryType: data.queryType,
    Query: data.query,
    ResultVariable: data.resultVariable,
    Timeout: data.timeout,
    Parameters: data.parameters
    // {Key, Value, Type} array
  };
  writeErrorHandling(dbData, data);
  return { Name: "PSS.DatabaseTask", Data: dbData };
};
const createMcpExtension = (data) => {
  const mcpData = {
    Topic: "MCP",
    ServerUrl: data.mcpServerUrl,
    ServerName: data.mcpServerName,
    Operation: data.mcpOperation,
    Headers: data.headers,
    // Reusing generic headers field
    ToolName: data.mcpToolName,
    ToolArguments: data.mcpToolArguments,
    ResourceUri: data.mcpResourceUri,
    PromptName: data.mcpPromptName,
    PromptArguments: data.mcpPromptArguments,
    Timeout: data.timeout,
    ResultVariable: data.resultVariable
  };
  writeErrorHandling(mcpData, data);
  return { Name: "PSS.McpTask", Data: mcpData };
};
const createAgentExtension = (data) => {
  const agentData = {
    Topic: "Agent",
    Model: data.model,
    SystemPrompt: data.systemPrompt,
    UserPrompt: data.userPrompt,
    OutputVariable: data.outputVariable
  };
  writeErrorHandling(agentData, data);
  return { Name: "PSS.AgentTask", Data: agentData };
};
const createDecisionExtension = (data) => {
  const decisionData = {
    Topic: "Command",
    Filename: data.decisionFile,
    InputMapping: data.inputMapping,
    ResultVariable: data.resultVariable,
    // Cache schema for simulation/variables
    OutputSchema: data._outputSchema
  };
  writeErrorHandling(decisionData, data);
  return { Name: "PSS.DecisionTask", Data: decisionData };
};
const createDataExtractionExtension = (data) => {
  const hasRules = data.extractionRules && data.extractionRules.length > 0;
  const hasUnpackAll = data.unpackAll === true;
  if (!hasRules && !hasUnpackAll && !data.exampleResponse) return null;
  return {
    Name: "PSS.DataExtraction",
    Data: {
      Example: data.exampleResponse,
      ...hasUnpackAll ? { UnpackAll: true } : {},
      Rules: (data.extractionRules || []).map((rule) => ({
        Method: rule.method || "jsonpath",
        Source: rule.source,
        Target: rule.targetVar,
        Type: rule.type || "auto",
        ...rule.defaultValue !== void 0 && rule.defaultValue !== null && rule.defaultValue !== "" ? { DefaultValue: rule.defaultValue } : {}
      }))
    }
  };
};
const mapEngineToEditorType = (valueType, inputType) => {
  if (inputType === "textarea") return "textarea";
  if (inputType === "select") return "select";
  if (inputType === "checkbox") return "boolean";
  if (inputType === "datepicker" || inputType === "date") return "date";
  if (inputType === "email") return "email";
  if (inputType === "guid") return "guid";
  if (inputType && inputType !== "text") return inputType;
  if (valueType === "boolean") return "boolean";
  if (valueType === "date") return "date";
  if (valueType === "email") return "email";
  if (valueType === "guid" || valueType === "uuid") return "guid";
  if (valueType === "long" || valueType === "number") return "number";
  return "text";
};
const parseStartProcessExtension = (ext, data) => {
  if (!ext.Data) return;
  data.startView = ext.Data.View;
  data.startRoles = ext.Data.Roles;
  data.startStep = ext.Data.Step;
  data.startDeduplication = ext.Data.Deduplication;
  data.startMode = ext.Data.Mode;
  if (ext.Data.Extensions) data.startExtensions = ext.Data.Extensions;
};
const parseFormsExtension = (ext, data) => {
  if (!ext.Data) return;
  data.formTitle = ext.Data.Title;
  data.formDescription = ext.Data.Description;
  if (ext.Data.Modifiers) data.formModifiers = ext.Data.Modifiers;
  if (ext.Data.FormFields) {
    data.formSchema = {
      fields: ext.Data.FormFields.map((f) => {
        const { input, group, ...restExtensions } = f.Extensions || {};
        const hasRestExtensions = Object.keys(restExtensions).length > 0;
        return {
          id: f.Id,
          key: f.Id,
          label: f.Label,
          required: !!f.Required,
          disabled: !!f.Disabled,
          hidden: !!f.Hidden,
          type: mapEngineToEditorType(f.ValueType, input),
          valueType: f.ValueType || void 0,
          defaultValue: f.DefaultValue || void 0,
          modifier: f.Modifier || void 0,
          group: group || void 0,
          values: f.Values && Object.keys(f.Values).length > 0 ? f.Values : void 0,
          extensions: hasRestExtensions ? restExtensions : void 0
        };
      })
    };
  }
};
const parseUserTaskExtension = (ext, data) => {
  if (!ext.Data) return;
  if (ext.Name === "PSS.GenericUserTask") data.userTaskType = "generic";
  if (ext.Name === "PSS.BadgeProduceTask") {
    data.userTaskType = "produce";
    if (ext.Data.Production) {
      data.productionProcessKey = ext.Data.Production.ProcessKey;
      if (ext.Data.Production.Operations) {
        data.productionOperations = Object.entries(ext.Data.Production.Operations).map(([key, value]) => ({
          key,
          value
        }));
      } else {
        data.productionOperations = [];
      }
    }
  }
  if (ext.Name === "PSS.SmartBridgeTask") {
    data.userTaskType = "smartbridge";
    data.jobScript = ext.Data.Job;
  }
  if (ext.Name === "PSS.BadgeReceiptView") data.userTaskType = "receipt";
  data.assignments = ext.Data.Assignments || [];
  data.extensionConfig = ext.Data.Configuration;
  data.extensionRelations = ext.Data.Relations;
  if (ext.Data.Subject) data.userTaskSubject = ext.Data.Subject;
  if (ext.Data.Object) data.userTaskObject = ext.Data.Object;
  if (ext.Data.Modifiers) data.userTaskModifiers = ext.Data.Modifiers;
  if (typeof ext.Data.Step === "number") data.userTaskStep = ext.Data.Step;
  if (typeof ext.Data.Rejectable === "boolean") data.userTaskRejectable = ext.Data.Rejectable;
  if (ext.Data.AssigneeLegacy) data.assignee = ext.Data.AssigneeLegacy;
  if (ext.Data.Priority) data.priority = ext.Data.Priority;
  readErrorHandling(ext, data);
};
const parseRestExtension = (ext, data) => {
  if (!ext.Data) return;
  const reverseMethodMap = ["GET", "POST", "PUT", "DELETE", "PATCH"];
  data.restTopic = ext.Data.Topic;
  data.service = ext.Data.Service;
  data.endpoint = ext.Data.Endpoint || ext.Data.EndPoint;
  data.method = typeof ext.Data.Method === "number" ? reverseMethodMap[ext.Data.Method] || "GET" : ext.Data.Method;
  readErrorHandling(ext, data);
  data.requestBody = ext.Data.Body;
  data.resultVariable = ext.Data.ResultVariable;
  if (ext.Data.Extensions) {
    data.headers = ext.Data.Extensions.Headers;
    data.authentication = ext.Data.Extensions.Authentication;
    data.bearerToken = ext.Data.Extensions.BearerToken;
    data.apiKey = ext.Data.Extensions.ApiKey;
  }
};
const parseEmailExtension = (ext, data) => {
  if (!ext.Data) return;
  data.fromEmail = ext.Data.SenderMail;
  data.fromName = ext.Data.SenderName;
  data.subject = ext.Data.Subject;
  data.body = ext.Data.Content;
  data.isHtml = ext.Data.IsHtml;
  if (ext.Data.Receipients) {
    data.to = ext.Data.Receipients.filter((r) => r.Kind === "TO").map((r) => r.Email).join(", ");
    data.toNames = ext.Data.Receipients.filter((r) => r.Kind === "TO").map((r) => r.Name).join(", ");
    data.cc = ext.Data.Receipients.filter((r) => r.Kind === "CC").map((r) => r.Email).join(", ");
    data.ccNames = ext.Data.Receipients.filter((r) => r.Kind === "CC").map((r) => r.Name).join(", ");
    data.bcc = ext.Data.Receipients.filter((r) => r.Kind === "BCC").map((r) => r.Email).join(", ");
    data.bccNames = ext.Data.Receipients.filter((r) => r.Kind === "BCC").map((r) => r.Name).join(", ");
  }
  if (ext.Data.Attachments) {
    data.attachments = ext.Data.Attachments.map((a) => a.Url);
  }
  readErrorHandling(ext, data);
};
const parseSmsExtension = (ext, data) => {
  if (!ext.Data) return;
  data.toPhone = ext.Data.Receiver;
  data.message = ext.Data.Content;
  readErrorHandling(ext, data);
};
const parseDatabaseExtension = (ext, data) => {
  if (!ext.Data) return;
  data.connectionId = ext.Data.ConnectionId;
  data.queryType = ext.Data.QueryType;
  data.query = ext.Data.Query;
  data.resultVariable = ext.Data.ResultVariable;
  data.timeout = ext.Data.Timeout;
  data.parameters = ext.Data.Parameters;
  readErrorHandling(ext, data);
};
const parseMcpExtension = (ext, data) => {
  if (!ext.Data) return;
  data.mcpServerUrl = ext.Data.ServerUrl;
  data.mcpServerName = ext.Data.ServerName;
  data.mcpOperation = ext.Data.Operation;
  data.headers = ext.Data.Headers;
  data.mcpToolName = ext.Data.ToolName;
  data.mcpToolArguments = ext.Data.ToolArguments;
  data.mcpResourceUri = ext.Data.ResourceUri;
  data.mcpPromptName = ext.Data.PromptName;
  data.mcpPromptArguments = ext.Data.PromptArguments;
  data.timeout = ext.Data.Timeout;
  data.resultVariable = ext.Data.ResultVariable;
  readErrorHandling(ext, data);
};
const parseAgentExtension = (ext, data) => {
  if (!ext.Data) return;
  data.model = ext.Data.Model;
  data.systemPrompt = ext.Data.SystemPrompt;
  data.userPrompt = ext.Data.UserPrompt;
  data.outputVariable = ext.Data.OutputVariable;
  readErrorHandling(ext, data);
};
const parseDecisionExtension = (ext, data) => {
  if (!ext.Data) return;
  data.decisionFile = ext.Data.Filename;
  data.inputMapping = ext.Data.InputMapping;
  data.resultVariable = ext.Data.ResultVariable;
  data._outputSchema = ext.Data.OutputSchema;
  readErrorHandling(ext, data);
};
const parseDataExtractionExtension = (ext, data) => {
  if (!ext.Data) return;
  data.exampleResponse = ext.Data.Example;
  if (ext.Data.UnpackAll === true) data.unpackAll = true;
  if (ext.Data.Rules && Array.isArray(ext.Data.Rules)) {
    data.extractionRules = ext.Data.Rules.map((r) => ({
      method: r.Method || (ext.Data.Format === "xml" ? "xpath" : ext.Data.Format === "text" ? "regex" : "jsonpath"),
      source: r.Source,
      targetVar: r.Target,
      type: r.Type,
      ...r.DefaultValue !== void 0 && r.DefaultValue !== null ? { defaultValue: r.DefaultValue } : {}
    }));
  }
};
const generateWorkflowProject = (processes, projectName = "Workflow Project", ruleSets = []) => {
  const resources = {};
  ruleSets.forEach((rs) => {
    if (!rs.id) return;
    resources[rs.id] = {
      Kind: ERROR_RULESET_KIND,
      Data: JSON.stringify({ name: rs.name, rules: rs.rules, source: rs.source })
    };
  });
  const engineProcesses = processes.map((proc) => {
    idManager.reset();
    const inlinedNodes = proc.nodes.map((node) => {
      var _a;
      const eh = (_a = node.data) == null ? void 0 : _a.errorHandling;
      if (eh && "ruleSetRef" in eh) {
        return { ...node, data: { ...node.data, errorHandling: reinlineFromLibrary(eh, ruleSets) } };
      }
      return node;
    });
    inlinedNodes.forEach((node) => idManager.register(node.id));
    const engineNodes = inlinedNodes.map((node) => {
      var _a;
      const intId = idManager.getOrCreateInt(node.id);
      const {
        // Core Fields (shared across all node types)
        label,
        description,
        actorType,
        messageName,
        messageVariableName,
        messagePayloadVariableName,
        messagePayload,
        correlationScript,
        signalName,
        timerDefinition,
        script,
        resultVariable,
        isMerging,
        exceptionType,
        conditions,
        outputs,
        status,
        // Form Fields (Handled by PSS.Forms)
        formSchema,
        formTitle,
        formDescription,
        formModifiers,
        startView,
        startRoles,
        startStep,
        startDeduplication,
        startMode,
        startExtensions,
        // User Task Fields (Handled by PSS.*UserTask)
        userTaskType,
        assignments,
        extensionConfig,
        extensionRelations,
        userTaskSubject,
        userTaskObject,
        userTaskModifiers,
        userTaskStep,
        userTaskRejectable,
        productionProcessKey,
        productionOperations,
        jobScript,
        assignee,
        priority,
        // REST Fields (Handled by PSS.RestTask)
        restTopic,
        service,
        endpoint,
        method,
        retries,
        onException,
        requestBody,
        headers,
        authentication,
        bearerToken,
        apiKey,
        // Email Fields (Handled by PSS.EmailTask)
        fromEmail,
        fromName,
        to,
        toNames,
        cc,
        ccNames,
        bcc,
        bccNames,
        subject,
        body,
        isHtml,
        attachments,
        // SMS Fields (Handled by PSS.SmsTask)
        toPhone,
        message,
        // DB Fields (Handled by PSS.DatabaseTask)
        connectionId,
        queryType,
        query,
        timeout,
        parameters,
        // LLM Fields (Handled by PSS.AgentTask)
        model,
        systemPrompt,
        userPrompt,
        outputVariable,
        // MCP Fields (Handled by PSS.McpTask)
        mcpServerUrl,
        mcpServerName,
        mcpOperation,
        mcpToolName,
        mcpToolArguments,
        mcpResourceUri,
        mcpPromptName,
        mcpPromptArguments,
        // Decision Fields (Handled by PSS.DecisionTask)
        decisionFile,
        inputMapping,
        _outputSchema,
        // Call Activity Fields
        processName,
        processCollection,
        processVersion,
        keepBusinessKey,
        sequentialLoop,
        collectionName,
        elementName,
        calledElement,
        inputVariables,
        outputVariables,
        // Extraction (Handled by PSS.DataExtraction)
        extractionRules,
        exampleResponse,
        // Script (Handled by EngineNode.Script Property)
        scriptLanguage,
        // Timer (Handled by EngineNode.Timer/Kind)
        timerType,
        timerDate,
        endDate,
        timezone,
        // Editor specific leftovers that should NOT be serialized
        isConnectableTarget,
        isBoundaryCandidate,
        isPotentialBoundaryTarget,
        categoryLabel,
        // Monitor-mode overlay fields (transient, injected at runtime — never persisted)
        engineNodeId,
        monitorMode,
        monitorCount,
        monitorSelected,
        // Boundaries (Handled by type + Activity)
        cancelActivity,
        // Error Handling (ErrorEndEvent)
        errorMessage,
        errorPayload,
        // ServiceTask error-handling ruleset — serialized to Data.errorHandling
        // by writeErrorHandling; pulled out here so it never leaks to Editor.Properties.
        errorHandling,
        // Everything else remains in restData for Editor.Properties
        ...restData
      } = node.data;
      const engineType = mapToEngineType(node.type || "Task", node.data);
      const extensions = [];
      const handledFields = getHandledFields(node.type || "");
      handledFields.forEach((f) => delete restData[f]);
      if (Object.keys(restData).length > 0) {
        extensions.push({
          Name: "Editor.Properties",
          Data: JSON.stringify({
            data: restData
          })
        });
      }
      if (node.data.formSchema) {
        const formsExt = createFormsExtension(node.data);
        if (formsExt) extensions.push(formsExt);
        if (node.type === "FormStartEvent") {
          extensions.push(createStartProcessExtension(node.data));
        }
      }
      if (node.type === "UserTask") {
        const userExt = createUserTaskExtension(node.data);
        if (userExt) extensions.push(userExt);
      } else if (node.type === "ServiceTaskREST") {
        extensions.push(createRestExtension(node.data));
      } else if (node.type === "ServiceTaskEmail") {
        extensions.push(createEmailExtension(node.data));
      } else if (node.type === "ServiceTaskSMS") {
        extensions.push(createSmsExtension(node.data));
      } else if (node.type === "ServiceTaskDB") {
        extensions.push(createDatabaseExtension(node.data));
      } else if (node.type === "ServiceTaskLLM") {
        extensions.push(createAgentExtension(node.data));
      } else if (node.type === "ServiceTaskMCP") {
        extensions.push(createMcpExtension(node.data));
      } else if (node.type === "ServiceTaskRules") {
        extensions.push(createDecisionExtension(node.data));
      } else {
        const handler = getExtensionHandler(node.type || "");
        if (handler) {
          const ext = handler.create(node.data);
          if (ext) extensions.push(ext);
        }
      }
      const extractionExt = createDataExtractionExtension(node.data);
      if (extractionExt) extensions.push(extractionExt);
      let absoluteX = node.position.x;
      let absoluteY = node.position.y;
      if (node.parentNode) {
        const parent = proc.nodes.find((n) => n.id === node.parentNode);
        if (parent) {
          absoluteX += parent.position.x;
          absoluteY += parent.position.y;
        }
      }
      const engineNode = {
        type: engineType,
        Id: intId,
        Key: node.id,
        // Store string ID (Key) for persistence
        X: Math.round(absoluteX),
        Y: Math.round(absoluteY),
        Text: label,
        comment: description,
        Extensions: extensions
      };
      engineNode.ActorType = typeof actorType === "string" && actorType.length > 0 ? actorType : "Actor";
      if (node.data.messageName) {
        if (node.data.messageVariableName || node.data.messagePayloadVariableName || node.data.messagePayload) {
          engineNode.Message = {
            StaticText: node.data.messageName,
            VariableName: node.data.messageVariableName,
            PayloadVariableName: node.data.messagePayloadVariableName,
            Payload: node.data.messagePayload
          };
        } else {
          engineNode.Message = node.data.messageName;
        }
      }
      if (node.data.signalName) engineNode.Signal = node.data.signalName;
      const correlationScriptTypes = ["MessageStartEvent", "IntermediateCatchMessageEvent", "MessageBoundaryEvent"];
      if (correlationScriptTypes.includes(node.type || "") && node.data.correlationScript) {
        engineNode.CorrelationScript = node.data.correlationScript;
      }
      if (node.data.timerDefinition) {
        engineNode.Timer = node.data.timerDefinition;
        engineNode.Kind = getTimerKind(node.data.timerType);
      } else if (node.data.timerDate) {
        engineNode.Timer = node.data.timerDate;
        engineNode.Kind = 2;
      }
      if (node.data.script) {
        engineNode.Script = node.data.script;
      }
      if (node.data.resultVariable) {
        engineNode.ResultVariable = node.data.resultVariable;
      }
      if (node.type === "CallActivity") {
        engineNode.ProcessName = {
          Name: processName || "",
          Collection: processCollection || "",
          Version: processVersion || 0
        };
        engineNode.KeepBusinessKey = !!keepBusinessKey;
        engineNode.SequentialLoop = !!sequentialLoop;
        if (collectionName) engineNode.CollectionName = collectionName;
        if (elementName) engineNode.ElementName = elementName;
        engineNode.AsAsyncCall = false;
        writeDataMapping(engineNode, inputVariables, outputVariables);
      }
      if (node.type === "SubProcess") {
        engineNode.SequentialLoop = !!sequentialLoop;
        if (collectionName) engineNode.CollectionName = collectionName;
        if (elementName) engineNode.ElementName = elementName;
        writeDataMapping(engineNode, inputVariables, outputVariables);
      }
      if ((_a = node.type) == null ? void 0 : _a.endsWith("BoundaryEvent")) {
        if (node.parentNode) {
          engineNode.Activity = idManager.getOrCreateInt(node.parentNode);
        }
        if (node.type === "ErrorBoundaryEvent") {
          if (node.data.exceptionType) engineNode.ErrorName = node.data.exceptionType;
          if (node.data.errorMessage) engineNode.ErrorMessage = node.data.errorMessage;
        }
      }
      const attachedBoundaries = proc.nodes.filter((n) => n.parentNode === node.id);
      if (attachedBoundaries.length > 0) {
        engineNode.BoundaryEvents = attachedBoundaries.map((n) => idManager.getOrCreateInt(n.id));
      }
      if (node.type === "XorGateway" || node.type === "InclusiveGateway") {
        engineNode.IsMerging = !!node.data.isMerging;
        if (node.data.conditions && !engineNode.IsMerging) {
          const defaultCondition = node.data.conditions.find((c) => !c.expression || c.expression.trim() === "");
          if (defaultCondition) {
            const defaultEdge = proc.edges.find((e) => e.source === node.id && e.sourceHandle === String(defaultCondition.path));
            if (defaultEdge) {
              engineNode.DefaultPath = idManager.getOrCreateInt(defaultEdge.target);
            }
          }
        }
        if (node.data.conditions) {
          engineNode.Expressions = {};
          engineNode.ExpressionMapping = {};
          const outgoingEdges = proc.edges.filter((e) => e.source === node.id);
          node.data.conditions.forEach((cond, index2) => {
            let exprName = cond.label || `cond_${index2}`;
            if (node.data.outputs && node.data.outputs[cond.path]) {
              exprName = node.data.outputs[cond.path];
            }
            if (cond.expression && cond.expression.trim() !== "") {
              if (!engineNode.Expressions) engineNode.Expressions = {};
              engineNode.Expressions[exprName] = cond.expression;
              const edge = outgoingEdges.find((e) => e.sourceHandle === String(cond.path));
              if (edge) {
                const targetId = String(idManager.getOrCreateInt(edge.target));
                if (!engineNode.ExpressionMapping) engineNode.ExpressionMapping = {};
                engineNode.ExpressionMapping[targetId] = exprName;
              }
            }
          });
        }
      }
      if (node.type === "ParallelGateway") {
        engineNode.IsMerging = !!node.data.isMerging;
      }
      if (node.type === "ErrorEndEvent") {
        if (errorMessage) engineNode.Message = errorMessage;
        if (errorPayload) engineNode.Error = errorPayload;
      }
      return engineNode;
    });
    const engineConnections = [];
    const engineRecursiveConnections = [];
    const connectionSet = /* @__PURE__ */ new Set();
    proc.edges.forEach((edge) => {
      var _a, _b;
      const targetNode = proc.nodes.find((n) => n.id === edge.target);
      if (((_a = targetNode == null ? void 0 : targetNode.type) == null ? void 0 : _a.endsWith("BoundaryEvent")) && targetNode.parentNode === edge.source) {
        return;
      }
      const fromId = idManager.getOrCreateInt(edge.source);
      const toId = idManager.getOrCreateInt(edge.target);
      const dedupeKey = `${fromId}-${toId}`;
      if (connectionSet.has(dedupeKey)) return;
      connectionSet.add(dedupeKey);
      if ((_b = edge.data) == null ? void 0 : _b.isRecursive) {
        engineRecursiveConnections.push({ From: fromId, To: toId });
        return;
      }
      const sourceNode = proc.nodes.find((n) => n.id === edge.source);
      const conn = {
        From: fromId,
        To: toId,
        StartPoint: 1,
        EndPoint: 3,
        IsDefault: false
      };
      if (sourceNode && (sourceNode.type === "XorGateway" || sourceNode.type === "InclusiveGateway")) {
        const conds = sourceNode.data.conditions || [];
        const matchingCond = conds.find((c) => String(c.path) === edge.sourceHandle);
        if (matchingCond && (!matchingCond.expression || matchingCond.expression.trim() === "")) {
          conn.IsDefault = true;
        } else if (matchingCond && matchingCond.expression && matchingCond.expression.trim() !== "") {
          const outputs = sourceNode.data.outputs || [];
          conn.ExpressionName = outputs[matchingCond.path] || edge.label || "";
        }
      } else {
        const hasExpression = edge.label && typeof edge.label === "string" && edge.label.trim() !== "";
        if (hasExpression) {
          conn.ExpressionName = edge.label;
        }
      }
      engineConnections.push(conn);
    });
    const processExtensions = [];
    if (proc.swimlanes && proc.swimlanes.length > 0) {
      processExtensions.push({
        Name: "Editor.Swimlanes",
        Data: JSON.stringify({ version: 1, lanes: proc.swimlanes })
      });
    }
    const engineProc = {
      Name: proc.name,
      IsSubProcess: !!proc.isSubProcess,
      Nodes: engineNodes,
      Connections: engineConnections,
      RecursiveConnections: engineRecursiveConnections
    };
    if (processExtensions.length > 0) engineProc.Extensions = processExtensions;
    return engineProc;
  });
  return {
    Name: projectName,
    Version: 1,
    Resources: resources,
    Processes: engineProcesses
  };
};
const parseWorkflowProject = (project) => {
  return project.Processes.map((proc, procIndex) => {
    idManager.reset();
    const engineNodeMap = /* @__PURE__ */ new Map();
    const childToParentMap = /* @__PURE__ */ new Map();
    const gatewayEdgeMap = /* @__PURE__ */ new Map();
    const gatewayLabelMap = /* @__PURE__ */ new Map();
    if (proc.Nodes) {
      proc.Nodes.forEach((n) => {
        engineNodeMap.set(n.Id, n);
        if (n.Activity) childToParentMap.set(n.Id, n.Activity);
        if (n.BoundaryEvents) n.BoundaryEvents.forEach((childId) => childToParentMap.set(childId, n.Id));
      });
    }
    const nodes = (proc.Nodes || []).map((node) => {
      let editorData = null;
      let editorType = null;
      let savedPosition = null;
      if (node.Extensions && Array.isArray(node.Extensions)) {
        const ext = node.Extensions.find((e) => (e.Name || e.Key) === "Editor.Properties");
        if (ext && (ext.Data || ext.Value)) {
          try {
            const parsed = JSON.parse(ext.Data || ext.Value);
            editorData = parsed.data;
            editorType = parsed.type;
            savedPosition = parsed.position;
          } catch (_e) {
          }
        }
      }
      let uuid = node.Key;
      if (!uuid) {
        uuid = idManager.getOrCreateUuid(node.Id);
      }
      idManager.register(uuid, node.Id);
      if (!editorData) {
        editorData = {};
      }
      editorData.engineNodeId = node.Id;
      if (!editorData.status) {
        editorData.status = "idle";
      }
      if (!editorData.label && node.Text) editorData.label = node.Text;
      if (!editorData.description && node.comment) editorData.description = node.comment;
      if (!editorType) {
        editorType = mapFromEngineType(node.type, node);
      }
      if (node.Extensions) {
        node.Extensions.forEach((ext) => {
          var _a;
          if (ext.Name === "PSS.Forms") parseFormsExtension(ext, editorData);
          if (ext.Name === "PSS.StartProcess") parseStartProcessExtension(ext, editorData);
          if (ext.Name === "PSS.RestTask") parseRestExtension(ext, editorData);
          if (ext.Name === "PSS.EmailTask") parseEmailExtension(ext, editorData);
          if (ext.Name === "PSS.SmsTask") parseSmsExtension(ext, editorData);
          if (ext.Name === "PSS.DatabaseTask") parseDatabaseExtension(ext, editorData);
          if (ext.Name === "PSS.McpTask") parseMcpExtension(ext, editorData);
          if (ext.Name === "PSS.AgentTask") parseAgentExtension(ext, editorData);
          if (ext.Name === "PSS.DecisionTask") parseDecisionExtension(ext, editorData);
          if (ext.Name === "PSS.DataExtraction") parseDataExtractionExtension(ext, editorData);
          if (ext.Name === "PSS.MessageFilter") editorData.correlationScript = ((_a = ext.Fields) == null ? void 0 : _a.filterScript) || "";
          if (["PSS.GenericUserTask", "PSS.BadgeProduceTask", "PSS.SmartBridgeTask", "PSS.BadgeReceiptView"].includes(ext.Name)) {
            parseUserTaskExtension(ext, editorData);
          }
          if (editorType && ext.Name) {
            const handler = getExtensionHandler(editorType);
            if (handler && handler.name === ext.Name) {
              handler.parse(ext, editorData);
            }
          }
        });
      }
      if (typeof node.ActorType === "string" && node.ActorType.length > 0) {
        editorData.actorType = node.ActorType;
      }
      if (node.type.startsWith("NonInterrupting")) {
        editorData.cancelActivity = false;
      } else if ((editorType == null ? void 0 : editorType.endsWith("BoundaryEvent")) && editorData.cancelActivity === void 0) {
        editorData.cancelActivity = true;
      }
      if (editorType === "XorGateway" || editorType === "InclusiveGateway" || editorType === "ParallelGateway") {
        editorData.isMerging = !!node.IsMerging;
        if (!node.IsMerging && editorType !== "ParallelGateway") {
          const outgoing = [
            ...(proc.Connections || []).filter((c) => c.From === node.Id),
            ...(proc.RecursiveConnections || []).filter((c) => c.From === node.Id)
          ];
          const outputs = [];
          const conditions = [];
          const targetToHandle = /* @__PURE__ */ new Map();
          const targetToLabel = /* @__PURE__ */ new Map();
          outgoing.forEach((conn, idx) => {
            const targetId = conn.To;
            const handleId = String(idx);
            targetToHandle.set(targetId, handleId);
            let label = `Path ${idx + 1}`;
            let expression = "";
            const targetIdStr = String(targetId);
            const connAny = conn;
            if (node.ExpressionMapping && node.ExpressionMapping[targetIdStr]) {
              const exprName = node.ExpressionMapping[targetIdStr];
              label = exprName;
              if (node.Expressions && node.Expressions[exprName]) {
                expression = node.Expressions[exprName];
              }
            } else if (node.DefaultPath === targetId || connAny.IsDefault) {
              label = "default";
            } else if (connAny.ExpressionName) {
              label = connAny.ExpressionName;
              if (node.Expressions && node.Expressions[label]) {
                expression = node.Expressions[label];
              }
            }
            outputs.push(label);
            targetToLabel.set(targetId, label);
            if (expression && expression.trim() !== "") {
              conditions.push({ path: idx, label, expression });
            } else {
              conditions.push({ path: idx, label, expression: "" });
            }
          });
          editorData.outputs = outputs;
          editorData.conditions = conditions;
          if (node.IsMerging !== void 0) editorData.isMerging = node.IsMerging;
          if (outgoing.length > 0) {
            gatewayEdgeMap.set(node.Id, targetToHandle);
            gatewayLabelMap.set(node.Id, targetToLabel);
          }
        }
      }
      if (node.Script && typeof node.Script === "string") {
        editorData.script = node.Script;
        if (!editorData.scriptLanguage) {
          editorData.scriptLanguage = "javascript";
        }
      }
      if (node.Message) {
        if (typeof node.Message === "string") {
          editorData.messageName = node.Message;
        } else {
          editorData.messageName = node.Message.StaticText;
          editorData.messageVariableName = node.Message.VariableName;
          editorData.messagePayloadVariableName = node.Message.PayloadVariableName;
          editorData.messagePayload = node.Message.Payload;
        }
      }
      if (node.Signal) editorData.signalName = node.Signal;
      if (node.CorrelationScript) editorData.correlationScript = node.CorrelationScript;
      if (node.Timer) {
        editorData.timerDefinition = node.Timer;
        if (node.Kind) {
          editorData.timerType = getTimerTypeFromKind(node.Kind);
          if (editorData.timerType === "date") {
            editorData.timerDate = node.Timer;
          }
        } else if (!editorData.timerType) {
          const t = node.Timer.trim();
          if (t.startsWith("R")) editorData.timerType = "cycle";
          else if (t.includes(" ") || t.includes("*")) editorData.timerType = "cron";
          else if (t.startsWith("P") || t.startsWith("-P")) editorData.timerType = "cycle";
          else if (!isNaN(Date.parse(t)) && t.includes("T")) {
            editorData.timerType = "date";
            editorData.timerDate = t;
          } else {
            editorData.timerType = "cycle";
          }
        }
      }
      if (node.ResultVariable && !editorData.resultVariable) editorData.resultVariable = node.ResultVariable;
      if (node.IsMerging !== void 0) editorData.isMerging = node.IsMerging;
      if (editorType === "ErrorBoundaryEvent") {
        if (node.ErrorName) editorData.exceptionType = node.ErrorName;
        if (node.ErrorMessage) editorData.errorMessage = node.ErrorMessage;
      }
      if (editorType === "ErrorEndEvent") {
        if (node.Message && typeof node.Message === "string") {
          editorData.errorMessage = node.Message;
        }
        if (node.Error) {
          editorData.errorPayload = node.Error;
        }
      }
      if (editorType === "CallActivity") {
        if (node.ProcessName) {
          editorData.processName = node.ProcessName.Name;
          editorData.processCollection = node.ProcessName.Collection;
          editorData.processVersion = node.ProcessName.Version;
        }
        if (node.KeepBusinessKey !== void 0) editorData.keepBusinessKey = node.KeepBusinessKey;
        if (node.SequentialLoop !== void 0) editorData.sequentialLoop = node.SequentialLoop;
        if (node.CollectionName !== void 0) editorData.collectionName = node.CollectionName;
        if (node.ElementName !== void 0) editorData.elementName = node.ElementName;
        if (node.InputVariables !== void 0) editorData.inputVariables = node.InputVariables;
        if (node.OutputVariables !== void 0) editorData.outputVariables = node.OutputVariables;
      }
      if (editorType === "SubProcess") {
        if (node.SequentialLoop !== void 0) editorData.sequentialLoop = node.SequentialLoop;
        if (node.CollectionName !== void 0) editorData.collectionName = node.CollectionName;
        if (node.ElementName !== void 0) editorData.elementName = node.ElementName;
        if (node.InputVariables !== void 0) editorData.inputVariables = node.InputVariables;
        if (node.OutputVariables !== void 0) editorData.outputVariables = node.OutputVariables;
      }
      const parentId = childToParentMap.get(node.Id);
      let parentUuid = void 0;
      if (parentId !== void 0 && parentId !== node.Id && engineNodeMap.has(parentId)) {
        parentUuid = idManager.getOrCreateUuid(parentId);
      }
      let position = savedPosition || { x: node.X || 0, y: node.Y || 0 };
      if (!savedPosition && parentUuid && parentId) {
        const parent = engineNodeMap.get(parentId);
        if (parent) {
          position = {
            x: (node.X || 0) - (parent.X || 0),
            y: (node.Y || 0) - (parent.Y || 0)
          };
        }
      }
      return {
        id: uuid,
        type: editorType || "UserTask",
        position,
        data: editorData,
        parentNode: parentUuid,
        zIndex: (editorType == null ? void 0 : editorType.endsWith("BoundaryEvent")) ? 2e3 : void 0,
        extent: parentUuid && !(editorType == null ? void 0 : editorType.endsWith("BoundaryEvent")) ? "parent" : void 0
      };
    });
    nodes.sort((a, b) => {
      const aHasParent = !!a.parentNode;
      const bHasParent = !!b.parentNode;
      if (aHasParent === bHasParent) return 0;
      return aHasParent ? 1 : -1;
    });
    const recursivePairs = /* @__PURE__ */ new Set();
    (proc.RecursiveConnections || []).forEach((conn) => {
      recursivePairs.add(`${conn.From}->${conn.To}`);
    });
    const edges = (proc.Connections || []).map((conn, connIdx) => {
      var _a;
      const source = idManager.getOrCreateUuid(conn.From);
      const target = idManager.getOrCreateUuid(conn.To);
      let sourceHandle = null;
      if (gatewayEdgeMap.has(conn.From)) {
        const mapping = gatewayEdgeMap.get(conn.From);
        if (mapping == null ? void 0 : mapping.has(conn.To)) {
          sourceHandle = mapping.get(conn.To);
        }
      }
      let edgeLabel = conn.ExpressionName;
      if (!edgeLabel && gatewayLabelMap.has(conn.From)) {
        edgeLabel = (_a = gatewayLabelMap.get(conn.From)) == null ? void 0 : _a.get(conn.To);
      }
      const isRecursive = recursivePairs.has(`${conn.From}->${conn.To}`);
      return {
        id: `e_${source}_${target}_${connIdx}`,
        source,
        target,
        sourceHandle: sourceHandle || null,
        label: edgeLabel,
        animated: true,
        style: { stroke: DEFAULT_EDGE_STROKE },
        type: "deletable",
        data: isRecursive ? { isRecursive: true } : void 0
      };
    });
    const connectionPairs = new Set(
      (proc.Connections || []).map((c) => `${c.From}->${c.To}`)
    );
    (proc.RecursiveConnections || []).forEach((conn, idx) => {
      var _a;
      const key = `${conn.From}->${conn.To}`;
      if (connectionPairs.has(key)) return;
      const source = idManager.getOrCreateUuid(conn.From);
      const target = idManager.getOrCreateUuid(conn.To);
      let sourceHandle = null;
      if (gatewayEdgeMap.has(conn.From)) {
        const mapping = gatewayEdgeMap.get(conn.From);
        if (mapping == null ? void 0 : mapping.has(conn.To)) {
          sourceHandle = mapping.get(conn.To);
        }
      }
      let edgeLabel = conn.ExpressionName;
      if (!edgeLabel && gatewayLabelMap.has(conn.From)) {
        edgeLabel = (_a = gatewayLabelMap.get(conn.From)) == null ? void 0 : _a.get(conn.To);
      }
      edges.push({
        id: `e_rec_${source}_${target}_${idx}`,
        source,
        target,
        sourceHandle: sourceHandle || null,
        label: edgeLabel,
        animated: true,
        style: { stroke: DEFAULT_EDGE_STROKE },
        type: "deletable",
        data: { isRecursive: true }
      });
    });
    nodes.forEach((node) => {
      var _a;
      if (((_a = node.type) == null ? void 0 : _a.endsWith("BoundaryEvent")) && node.parentNode) {
        const parent = nodes.find((n) => n.id === node.parentNode);
        if (parent) {
          const edgeId = `e_assoc_${parent.id}_${node.id}`;
          edges.push({
            id: edgeId,
            source: parent.id,
            target: node.id,
            sourceHandle: "boundary",
            targetHandle: null,
            type: "deletable",
            animated: false,
            style: { stroke: DEFAULT_EDGE_STROKE },
            selected: false
          });
        }
      }
    });
    let swimlanes;
    let singleRawLane;
    const procWithExt = proc;
    if (Array.isArray(procWithExt.Extensions)) {
      const ext = procWithExt.Extensions.find(
        (e) => ((e == null ? void 0 : e.Name) || (e == null ? void 0 : e.Key)) === "Editor.Swimlanes"
      );
      if (ext && (ext.Data || ext.Value)) {
        try {
          const parsed = JSON.parse(ext.Data || ext.Value);
          const lanes = Array.isArray(parsed == null ? void 0 : parsed.lanes) ? parsed.lanes : parsed;
          if (Array.isArray(lanes)) {
            const validLanes = lanes.filter((l) => l && typeof l.name === "string");
            if (validLanes.length === 1) singleRawLane = validLanes[0];
            swimlanes = validLanes.map((l) => ({
              id: String(l.id ?? `lane_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`),
              name: String(l.name),
              x: Number.isFinite(Number(l.x)) ? Number(l.x) : 0,
              y: Number.isFinite(Number(l.y)) ? Number(l.y) : 0,
              width: Number.isFinite(Number(l.width)) ? Number(l.width) : 1600,
              height: Number.isFinite(Number(l.height)) ? Number(l.height) : 240,
              color: typeof l.color === "string" ? l.color : void 0
            }));
          }
        } catch (_e) {
        }
      }
    }
    const actorNames = /* @__PURE__ */ new Set();
    nodes.forEach((node) => {
      var _a;
      const actorType = (_a = node.data) == null ? void 0 : _a.actorType;
      if (typeof actorType === "string" && actorType.trim()) {
        actorNames.add(actorType.trim());
      }
    });
    (swimlanes || []).forEach((lane) => {
      if (typeof lane.name === "string" && lane.name.trim()) {
        actorNames.add(lane.name.trim());
      }
    });
    if (actorNames.size === 1) {
      const [actorName] = Array.from(actorNames);
      const existingLane = swimlanes && swimlanes.length === 1 ? swimlanes[0] : void 0;
      const inferredBounds = inferSingleLaneBoundsFromNodes(nodes);
      if (existingLane) {
        existingLane.name = actorName;
        const rawLaneHasExplicitGeometry = Number.isFinite(Number(singleRawLane == null ? void 0 : singleRawLane.x)) && Number.isFinite(Number(singleRawLane == null ? void 0 : singleRawLane.y)) && Number.isFinite(Number(singleRawLane == null ? void 0 : singleRawLane.width)) && Number.isFinite(Number(singleRawLane == null ? void 0 : singleRawLane.height));
        if (!rawLaneHasExplicitGeometry && inferredBounds) {
          existingLane.x = inferredBounds.x;
          existingLane.y = inferredBounds.y;
          existingLane.width = inferredBounds.width;
          existingLane.height = inferredBounds.height;
        }
        swimlanes = [existingLane];
      } else if (inferredBounds) {
        swimlanes = [{
          id: `lane_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
          name: actorName,
          x: inferredBounds.x,
          y: inferredBounds.y,
          width: inferredBounds.width,
          height: inferredBounds.height
        }];
      } else {
        swimlanes = [{
          id: `lane_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
          name: actorName,
          x: 0,
          y: 0,
          width: 240,
          height: 120
        }];
      }
      nodes.forEach((node) => {
        node.data = {
          ...node.data,
          actorType: actorName
        };
      });
    }
    return {
      id: `proc_${Date.now()}_${procIndex}`,
      name: proc.Name || `Imported Process ${procIndex + 1}`,
      isSubProcess: !!proc.IsSubProcess,
      description: "",
      nodes,
      edges,
      swimlanes
    };
  });
};
const parseProjectRuleSets = (project) => {
  const resources = project == null ? void 0 : project.Resources;
  if (!resources || typeof resources !== "object") return [];
  const ruleSets = [];
  for (const [id, res] of Object.entries(resources)) {
    if (!res || res.Kind !== ERROR_RULESET_KIND) continue;
    try {
      const parsed = JSON.parse(res.Data || "{}");
      if (Array.isArray(parsed.rules)) {
        ruleSets.push({
          id,
          name: typeof parsed.name === "string" ? parsed.name : `ruleset ${id}`,
          rules: parsed.rules,
          source: typeof parsed.source === "string" ? parsed.source : void 0
        });
      }
    } catch {
    }
  }
  return ruleSets;
};
const loadProjectWithRuleSets = async (file) => {
  let text;
  try {
    text = await file.text();
  } catch (e) {
    throw new Error("Failed to read file content.", { cause: e });
  }
  if (!text.trim()) throw new Error("File content is empty.");
  let data;
  try {
    data = JSON.parse(text);
  } catch (e) {
    throw new Error("File contains invalid JSON syntax.", { cause: e });
  }
  if (!data || typeof data !== "object" || Array.isArray(data)) {
    throw new Error("Invalid PSS format: Root must be a JSON object.");
  }
  const project = data;
  return { processes: parseWorkflowProject(project), ruleSets: parseProjectRuleSets(project) };
};
const saveProjectToFile = (processes, fileName = "workflow_project", ruleSets = []) => {
  const project = generateWorkflowProject(processes, fileName, ruleSets);
  const jsonString = JSON.stringify(project, null, 2);
  const blob = new Blob([jsonString], { type: "application/json" });
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.download = `${fileName}.bpjs`;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  URL.revokeObjectURL(url);
};
const TASK_TYPE_MAP = {
  userTask: "UserTask",
  task: "UserTask",
  manualTask: "UserTask",
  receiveTask: "UserTask",
  scriptTask: "ScriptTask",
  serviceTask: "ServiceTaskREST",
  sendTask: "ServiceTaskREST",
  businessRuleTask: "ServiceTaskRules",
  subProcess: "SubProcess",
  callActivity: "CallActivity"
};
const GATEWAY_TYPE_MAP = {
  exclusiveGateway: "XorGateway",
  parallelGateway: "ParallelGateway",
  inclusiveGateway: "InclusiveGateway",
  complexGateway: "XorGateway",
  eventBasedGateway: null
  // disabled in PSS
};
const FLOW_ELEMENT_NAMES = /* @__PURE__ */ new Set([
  "startEvent",
  "endEvent",
  "task",
  "userTask",
  "scriptTask",
  "serviceTask",
  "sendTask",
  "receiveTask",
  "manualTask",
  "businessRuleTask",
  "exclusiveGateway",
  "parallelGateway",
  "inclusiveGateway",
  "complexGateway",
  "eventBasedGateway",
  "subProcess",
  "callActivity",
  "intermediateCatchEvent",
  "intermediateThrowEvent",
  "boundaryEvent"
]);
function detectEventType(el, base) {
  const childLocalNames = Array.from(el.children).map((c) => c.localName);
  switch (base) {
    case "start":
      if (childLocalNames.includes("messageEventDefinition")) return "MessageStartEvent";
      if (childLocalNames.includes("timerEventDefinition")) return "TimerStartEvent";
      if (childLocalNames.includes("signalEventDefinition")) return "SignalStartEvent";
      return "BlankStartEvent";
    case "end":
      if (childLocalNames.includes("errorEventDefinition")) return "ErrorEndEvent";
      if (childLocalNames.includes("terminateEventDefinition")) return "TerminateEndEvent";
      if (childLocalNames.includes("messageEventDefinition")) return "MessageEndEvent";
      if (childLocalNames.includes("signalEventDefinition")) return "SignalEndEvent";
      return "BlankEndEvent";
    case "intermediateCatch":
      if (childLocalNames.includes("messageEventDefinition")) return "IntermediateCatchMessageEvent";
      if (childLocalNames.includes("timerEventDefinition")) return "IntermediateCatchTimerEvent";
      if (childLocalNames.includes("signalEventDefinition")) return "IntermediateCatchSignalEvent";
      return null;
    case "intermediateThrow":
      if (childLocalNames.includes("messageEventDefinition")) return "IntermediateThrowMessageEvent";
      if (childLocalNames.includes("signalEventDefinition")) return "IntermediateThrowSignalEvent";
      return null;
    case "boundary":
      if (childLocalNames.includes("errorEventDefinition")) return "ErrorBoundaryEvent";
      if (childLocalNames.includes("messageEventDefinition")) return "MessageBoundaryEvent";
      if (childLocalNames.includes("signalEventDefinition")) return "SignalBoundaryEvent";
      if (childLocalNames.includes("timerEventDefinition")) return "TimerBoundaryEvent";
      return null;
    default:
      return null;
  }
}
const BPMNDI_NS = "http://www.omg.org/spec/BPMN/20100524/DI";
const DC_NS = "http://www.omg.org/spec/DD/20100524/DC";
function buildShapeIndex(doc) {
  const index2 = /* @__PURE__ */ new Map();
  const shapes = doc.getElementsByTagNameNS(BPMNDI_NS, "BPMNShape");
  for (let i = 0; i < shapes.length; i++) {
    const shape = shapes[i];
    const elementId = shape.getAttribute("bpmnElement");
    if (!elementId) continue;
    const boundsEl = shape.getElementsByTagNameNS(DC_NS, "Bounds")[0];
    if (boundsEl) {
      index2.set(elementId, {
        x: parseFloat(boundsEl.getAttribute("x") || "0"),
        y: parseFloat(boundsEl.getAttribute("y") || "0"),
        width: parseFloat(boundsEl.getAttribute("width") || "100"),
        height: parseFloat(boundsEl.getAttribute("height") || "80")
      });
    }
  }
  return index2;
}
function extractEventData(el, pssType) {
  const data = {};
  if (pssType.includes("Message")) {
    const def = Array.from(el.children).find((c) => c.localName === "messageEventDefinition");
    const ref = def == null ? void 0 : def.getAttribute("messageRef");
    if (ref) data.messageName = ref;
  }
  if (pssType.includes("Signal")) {
    const def = Array.from(el.children).find((c) => c.localName === "signalEventDefinition");
    const ref = def == null ? void 0 : def.getAttribute("signalRef");
    if (ref) data.signalName = ref;
  }
  if (pssType.includes("Timer")) {
    const def = Array.from(el.children).find((c) => c.localName === "timerEventDefinition");
    if (def) {
      const expr = def.querySelector("timeDuration") || def.querySelector("timeCycle") || def.querySelector("timeDate");
      if (expr == null ? void 0 : expr.textContent) data.timerDefinition = expr.textContent.trim();
    }
  }
  if (pssType.includes("Error")) {
    const def = Array.from(el.children).find((c) => c.localName === "errorEventDefinition");
    const ref = def == null ? void 0 : def.getAttribute("errorRef");
    if (ref) data.errorMessage = ref;
  }
  return data;
}
function extractTaskData(el, pssType) {
  const data = {};
  if (pssType === "ScriptTask") {
    const format = el.getAttribute("scriptFormat");
    if (format) data.scriptLanguage = format;
    const scriptEl = Array.from(el.children).find((c) => c.localName === "script");
    if (scriptEl == null ? void 0 : scriptEl.textContent) data.script = scriptEl.textContent;
  }
  if (pssType === "CallActivity") {
    const calledElement = el.getAttribute("calledElement");
    if (calledElement) data.calledElement = calledElement;
  }
  return data;
}
function parseProcess(processEl, shapeIndex, warnings) {
  var _a, _b;
  const processId = processEl.getAttribute("id") || `bpmn_process_${Date.now()}`;
  const processName = processEl.getAttribute("name") || processEl.getAttribute("id") || "Imported Process";
  const isSubProcess = processEl.localName === "subProcess";
  const nodes = [];
  const edges = [];
  const mappedNodeIds = /* @__PURE__ */ new Set();
  let autoLayoutCounter = 0;
  const flowElements = Array.from(processEl.children).filter((el) => FLOW_ELEMENT_NAMES.has(el.localName));
  for (const el of flowElements) {
    const localName = el.localName;
    const bpmnId = el.getAttribute("id");
    if (!bpmnId) {
      warnings.push(`Skipped ${localName} element with no id attribute.`);
      continue;
    }
    const bpmnName = el.getAttribute("name") || bpmnId;
    let pssType = null;
    const extraData = {};
    let parentNode = void 0;
    if (localName === "startEvent") {
      pssType = detectEventType(el, "start");
    } else if (localName === "endEvent") {
      pssType = detectEventType(el, "end");
    } else if (localName === "intermediateCatchEvent") {
      pssType = detectEventType(el, "intermediateCatch");
    } else if (localName === "intermediateThrowEvent") {
      pssType = detectEventType(el, "intermediateThrow");
    } else if (localName === "boundaryEvent") {
      pssType = detectEventType(el, "boundary");
      const attachedToRef = el.getAttribute("attachedToRef");
      if (attachedToRef) parentNode = attachedToRef;
      extraData.cancelActivity = el.getAttribute("cancelActivity") !== "false";
      if (!el.getAttribute("cancelActivity") || el.getAttribute("cancelActivity") === "false") {
        if (el.getAttribute("cancelActivity") === "false") {
          warnings.push(`Non-interrupting boundary event '${bpmnId}' imported as interrupting (PSS does not support non-interrupting boundary events).`);
        }
      }
    } else if (Object.prototype.hasOwnProperty.call(GATEWAY_TYPE_MAP, localName)) {
      pssType = GATEWAY_TYPE_MAP[localName];
    } else if (Object.prototype.hasOwnProperty.call(TASK_TYPE_MAP, localName)) {
      pssType = TASK_TYPE_MAP[localName];
    }
    if (pssType === null) {
      warnings.push(`Skipped unsupported element: <${localName}> (id: ${bpmnId})`);
      continue;
    }
    if (localName.includes("Event")) {
      Object.assign(extraData, extractEventData(el, pssType));
    }
    Object.assign(extraData, extractTaskData(el, pssType));
    const docEl = Array.from(el.children).find((c) => c.localName === "documentation");
    if ((_a = docEl == null ? void 0 : docEl.textContent) == null ? void 0 : _a.trim()) extraData.description = docEl.textContent.trim();
    let position;
    const bounds = shapeIndex.get(bpmnId);
    if (bounds) {
      if (parentNode) {
        const parentBounds = shapeIndex.get(parentNode);
        position = parentBounds ? { x: bounds.x - parentBounds.x, y: bounds.y - parentBounds.y } : { x: bounds.x, y: bounds.y };
      } else {
        position = { x: bounds.x, y: bounds.y };
      }
    } else {
      position = { x: autoLayoutCounter % 8 * 220, y: Math.floor(autoLayoutCounter / 8) * 160 };
      autoLayoutCounter++;
      warnings.push(`No diagram position for '${bpmnId}', using auto-layout.`);
    }
    mappedNodeIds.add(bpmnId);
    const node = {
      id: bpmnId,
      type: pssType,
      position,
      data: {
        label: bpmnName,
        ...extraData
      },
      ...parentNode ? { parentNode } : {}
    };
    nodes.push(node);
  }
  const sequenceFlows = Array.from(processEl.children).filter((el) => el.localName === "sequenceFlow");
  for (const flow of sequenceFlows) {
    const flowId = flow.getAttribute("id");
    const sourceRef = flow.getAttribute("sourceRef");
    const targetRef = flow.getAttribute("targetRef");
    if (!flowId || !sourceRef || !targetRef) continue;
    if (!mappedNodeIds.has(sourceRef) || !mappedNodeIds.has(targetRef)) continue;
    const conditionEl = Array.from(flow.children).find((c) => c.localName === "conditionExpression");
    const condition2 = ((_b = conditionEl == null ? void 0 : conditionEl.textContent) == null ? void 0 : _b.trim()) || void 0;
    const name = flow.getAttribute("name") || void 0;
    edges.push({
      id: flowId,
      source: sourceRef,
      target: targetRef,
      ...name ? { label: name } : {},
      ...condition2 ? { data: { expression: condition2 } } : {}
    });
  }
  return { id: processId, name: processName, isSubProcess, nodes, edges };
}
function importBpmnXml(xmlContent) {
  var _a;
  const warnings = [];
  const doc = new DOMParser().parseFromString(xmlContent, "text/xml");
  const parseError = doc.querySelector("parsererror");
  if (parseError) {
    return { processes: [], warnings: [`XML parse error: ${(_a = parseError.textContent) == null ? void 0 : _a.slice(0, 200)}`] };
  }
  const root = doc.documentElement;
  if (root.localName !== "definitions") {
    return { processes: [], warnings: ["Not a valid BPMN 2.0 file: root element must be <definitions>."] };
  }
  const shapeIndex = buildShapeIndex(doc);
  const processEls = Array.from(root.children).filter(
    (el) => el.localName === "process" || el.localName === "subProcess"
  );
  if (processEls.length === 0) {
    return { processes: [], warnings: ["No <process> definitions found in BPMN file."] };
  }
  const processes = processEls.map((el) => parseProcess(el, shapeIndex, warnings));
  const validProcesses = processes.filter((p) => p.nodes.length > 0);
  if (validProcesses.length === 0) {
    warnings.push("All processes were empty or contained only unsupported elements.");
    return { processes, warnings };
  }
  return { processes: validProcesses, warnings };
}
const BPMN_SPEC_NS_PREFIX = "http://www.omg.org/spec/BPMN";
const BPMN_DETECT_HEAD_CHARS = 2e3;
function detectBpmnFormat(content) {
  const head = content.slice(0, BPMN_DETECT_HEAD_CHARS);
  return head.includes(BPMN_SPEC_NS_PREFIX) || head.includes("<definitions") || head.includes("<bpmn:definitions") || head.includes("<bpmn2:definitions");
}
const rules = [];
const registerRule = (rule) => {
  if (rules.some((r) => r.id === rule.id)) {
    throw new Error(
      `[validation] Rule id collision: "${rule.id}" is already registered. Rule ids must be unique across all rule modules.`
    );
  }
  rules.push(rule);
};
const getRules = () => rules;
const edgeData = (e) => e.data;
const isAssociationEdge = (e) => {
  var _a;
  return e.sourceHandle === "boundary" || ((_a = edgeData(e)) == null ? void 0 : _a.isAssociation) === true;
};
const buildLookup = (process) => {
  const nodesById = /* @__PURE__ */ new Map();
  const incomingByNode = /* @__PURE__ */ new Map();
  const outgoingByNode = /* @__PURE__ */ new Map();
  const edgesById = /* @__PURE__ */ new Map();
  process.nodes.forEach((n) => {
    nodesById.set(n.id, n);
    incomingByNode.set(n.id, []);
    outgoingByNode.set(n.id, []);
  });
  process.edges.forEach((e) => {
    edgesById.set(e.id, e);
    if (isAssociationEdge(e)) return;
    const outgoing = outgoingByNode.get(e.source);
    if (outgoing) outgoing.push(e);
    const incoming = incomingByNode.get(e.target);
    if (incoming) incoming.push(e);
  });
  return { nodesById, incomingByNode, outgoingByNode, edgesById };
};
const getIncoming = (lookup, nodeId) => lookup.incomingByNode.get(nodeId) ?? [];
const getOutgoing = (lookup, nodeId) => lookup.outgoingByNode.get(nodeId) ?? [];
const getNode = (lookup, nodeId) => lookup.nodesById.get(nodeId);
const getFlowIncoming = (lookup, nodeId) => getIncoming(lookup, nodeId).filter((e) => {
  var _a;
  return !((_a = edgeData(e)) == null ? void 0 : _a.isRecursive);
});
const getFlowOutgoing = (lookup, nodeId) => getOutgoing(lookup, nodeId).filter((e) => {
  var _a;
  return !((_a = edgeData(e)) == null ? void 0 : _a.isRecursive);
});
const ACTIVITY_TYPES = /* @__PURE__ */ new Set([
  "ScriptTask",
  "UserTask",
  "ServiceTask",
  "ServiceTaskREST",
  "ServiceTaskEmail",
  "ServiceTaskSMS",
  "ServiceTaskDB",
  "ServiceTaskLLM",
  "ServiceTaskMCP",
  "ServiceTaskRules",
  "SubProcess",
  "CallActivity"
]);
const getFamily = (type) => {
  var _a;
  if (!type) return "Unknown";
  const registry2 = getNodeTypes();
  const cat = (_a = registry2[type]) == null ? void 0 : _a.category;
  if (cat === NodeCategory.Start) return "StartEvent";
  if (cat === NodeCategory.End) return "EndEvent";
  if (cat === NodeCategory.Gateway) return "Gateway";
  if (cat === NodeCategory.Boundary) return "BoundaryEvent";
  if (cat === NodeCategory.Task || cat === NodeCategory.Activity) return "Activity";
  if (cat === NodeCategory.Intermediate) {
    return type.includes("Throw") ? "IntermediateThrow" : "IntermediateCatching";
  }
  if (type.endsWith("StartEvent")) return "StartEvent";
  if (type.endsWith("EndEvent")) return "EndEvent";
  if (type.endsWith("BoundaryEvent")) return "BoundaryEvent";
  if (type.endsWith("Gateway")) return "Gateway";
  if (type.startsWith("IntermediateThrow")) return "IntermediateThrow";
  if (type.startsWith("IntermediateCatch")) return "IntermediateCatching";
  if (ACTIVITY_TYPES.has(type)) return "Activity";
  return "Unknown";
};
const isStartEvent = (n) => !!n && getFamily(n.type) === "StartEvent";
const isEndEvent = (n) => !!n && getFamily(n.type) === "EndEvent";
const isActivity = (n) => !!n && getFamily(n.type) === "Activity";
const isBoundaryEvent = (n) => !!n && getFamily(n.type) === "BoundaryEvent";
const isGateway = (n) => !!n && getFamily(n.type) === "Gateway";
const isForkGateway = (n) => {
  var _a;
  return isGateway(n) && !((_a = n == null ? void 0 : n.data) == null ? void 0 : _a.isMerging);
};
const isMergeGateway = (n) => {
  var _a;
  return isGateway(n) && !!((_a = n == null ? void 0 : n.data) == null ? void 0 : _a.isMerging);
};
const labelOf = (n) => {
  var _a, _b;
  if (!n) return "<missing>";
  const typeLabel = ((_a = getNodeTypes()[n.type ?? ""]) == null ? void 0 : _a.label) ?? n.type ?? "node";
  const displayLabel = (_b = n.data) == null ? void 0 : _b.label;
  return displayLabel ? `${displayLabel} (${typeLabel})` : `${typeLabel} ${n.id.slice(0, 8)}`;
};
const rule_1_1_NodeIdUnique = {
  id: "1.1",
  description: "Node Id must be present and unique within a process",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    const seen = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      if (!n.id || typeof n.id !== "string" || n.id.length === 0) {
        issues.push({
          severity: "error",
          rule: "1.1",
          message: `${labelOf(n)} has missing or empty Id.`,
          nodeIds: n.id ? [n.id] : []
        });
        continue;
      }
      seen.set(n.id, (seen.get(n.id) ?? 0) + 1);
    }
    for (const [id, count] of seen) {
      if (count > 1) {
        issues.push({
          severity: "error",
          rule: "1.1",
          message: `Node Id "${id}" is used ${count} times; ids must be unique within a process.`,
          nodeIds: [id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_1_NodeIdUnique);
const rule_1_2_NodeKeyUnique = {
  id: "1.2",
  description: "Node Key must be unique within a process when non-empty",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    const keyToNodes = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      const key = (_a = n.data) == null ? void 0 : _a.key;
      if (typeof key !== "string" || key.length === 0) continue;
      const list2 = keyToNodes.get(key) ?? [];
      list2.push(n.id);
      keyToNodes.set(key, list2);
    }
    for (const [key, ids] of keyToNodes) {
      if (ids.length > 1) {
        issues.push({
          severity: "error",
          rule: "1.2",
          message: `Node Key "${key}" is used by ${ids.length} nodes; keys must be unique within a process.`,
          nodeIds: ids
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_2_NodeKeyUnique);
const rule_1_3_NodeTypeRegistered = {
  id: "1.3",
  description: "Node type must be one of the registered node types",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    const registeredTypes = new Set(Object.keys(getNodeTypes()));
    for (const n of process.nodes) {
      if (!n.type || !registeredTypes.has(n.type)) {
        issues.push({
          severity: "error",
          rule: "1.3",
          message: `${labelOf(n)} has unknown type "${n.type ?? "<missing>"}" — not in registered node types.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_3_NodeTypeRegistered);
const rule_1_4_NodeReferencesResolve = {
  id: "1.4",
  description: "Edge endpoints and parentNode references must point to existing nodes",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    const ids = new Set(process.nodes.map((n) => n.id));
    for (const e of process.edges) {
      if (!ids.has(e.source)) {
        issues.push({
          severity: "error",
          rule: "1.4",
          message: `Edge ${e.id} references missing source node "${e.source}".`,
          edgeIds: [e.id]
        });
      }
      if (!ids.has(e.target)) {
        issues.push({
          severity: "error",
          rule: "1.4",
          message: `Edge ${e.id} references missing target node "${e.target}".`,
          edgeIds: [e.id]
        });
      }
    }
    for (const n of process.nodes) {
      const parent = n.parentNode;
      if (typeof parent === "string" && parent.length > 0 && !ids.has(parent)) {
        issues.push({
          severity: "error",
          rule: "1.4",
          message: `${labelOf(n)} references missing parentNode "${parent}".`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_4_NodeReferencesResolve);
const rule_1_5_ActivityLabelRequired = {
  id: "1.5",
  description: "Activity must have a non-empty label (used as engine Key for runtime correlation)",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "Activity") continue;
      const label = (_a = n.data) == null ? void 0 : _a.label;
      if (typeof label !== "string" || label.trim().length === 0) {
        issues.push({
          severity: "error",
          rule: "1.5",
          message: `${labelOf(n)} is an Activity and must have a non-empty label.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_5_ActivityLabelRequired);
const rule_1_6_NodeLabelPresent = {
  id: "1.6",
  description: "Every node should have a non-empty label",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) === "Activity") continue;
      const label = (_a = n.data) == null ? void 0 : _a.label;
      if (typeof label !== "string" || label.trim().length === 0) {
        issues.push({
          severity: "warning",
          rule: "1.6",
          message: `${labelOf(n)} has no label — add one for readability.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_6_NodeLabelPresent);
const rule_1_7_NodePositionFinite = {
  id: "1.7",
  description: "Node position.x and position.y must be finite numbers",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      const pos = n.position;
      const x = pos == null ? void 0 : pos.x;
      const y = pos == null ? void 0 : pos.y;
      if (typeof x !== "number" || !Number.isFinite(x) || typeof y !== "number" || !Number.isFinite(y)) {
        issues.push({
          severity: "error",
          rule: "1.7",
          message: `${labelOf(n)} has invalid position (x=${x}, y=${y}); coordinates must be finite numbers.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_7_NodePositionFinite);
const effectiveActorType = (n, nodesById) => {
  var _a;
  const own = (_a = n == null ? void 0 : n.data) == null ? void 0 : _a.actorType;
  if (typeof own === "string" && own.trim().length > 0) return own.trim();
  const parentId = n == null ? void 0 : n.parentNode;
  if (parentId) {
    const parent = nodesById.get(parentId);
    if (parent) return effectiveActorType(parent, nodesById);
  }
  return void 0;
};
const rule_1_8_ActorTypeRequired = {
  id: "1.8",
  description: "Every node must define a non-empty actorType (swimlane linkage, task routing)",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    if (!Array.isArray(process.swimlanes) || process.swimlanes.length === 0) return [];
    const issues = [];
    const byId = new Map(process.nodes.map((n) => [n.id, n]));
    for (const n of process.nodes) {
      const actor = effectiveActorType(n, byId);
      if (!actor) {
        issues.push({
          severity: "error",
          rule: "1.8",
          message: `${labelOf(n)} has no actorType — every node must have an actor assigned.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_8_ActorTypeRequired);
const rule_1_9_ActorTypePascalCase = {
  id: "1.9",
  description: "actorType must begin with an uppercase letter (A-Z)",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    if (!Array.isArray(process.swimlanes) || process.swimlanes.length === 0) return [];
    const issues = [];
    for (const n of process.nodes) {
      const actorType = (_a = n.data) == null ? void 0 : _a.actorType;
      if (typeof actorType !== "string" || actorType.length === 0) continue;
      const first = actorType.charAt(0);
      if (first < "A" || first > "Z") {
        issues.push({
          severity: "error",
          rule: "1.9",
          message: `${labelOf(n)} actorType "${actorType}" must start with an uppercase letter.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_1_9_ActorTypePascalCase);
const rule_2_1_EdgeEndpointsExist = {
  id: "2.1",
  description: "Every edge From/To must reference an existing node in the process",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      const src = getNode(lookup, e.source);
      const tgt = getNode(lookup, e.target);
      if (!src) {
        issues.push({
          severity: "error",
          rule: "2.1",
          message: `Edge ${e.id} references missing source node "${e.source}".`,
          edgeIds: [e.id]
        });
      }
      if (!tgt) {
        issues.push({
          severity: "error",
          rule: "2.1",
          message: `Edge ${e.id} references missing target node "${e.target}".`,
          edgeIds: [e.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_1_EdgeEndpointsExist);
const rule_2_2_NoDuplicateFlow = {
  id: "2.2",
  description: "No duplicate (From, To) pair in process edges",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    const seen = /* @__PURE__ */ new Map();
    for (const e of process.edges) {
      const key = `${e.source}->${e.target}`;
      const first = seen.get(key);
      if (first !== void 0) {
        issues.push({
          severity: "error",
          rule: "2.2",
          message: `Duplicate sequence flow ${e.source} -> ${e.target} (first defined as ${first}).`,
          edgeIds: [e.id]
        });
      } else {
        seen.set(key, e.id);
      }
    }
    return issues;
  }
};
registerRule(rule_2_2_NoDuplicateFlow);
const rule_2_3_SourceNotEndEvent = {
  id: "2.3",
  description: "Edge source must not be an EndEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      const src = getNode(lookup, e.source);
      if (src && isEndEvent(src)) {
        issues.push({
          severity: "error",
          rule: "2.3",
          message: `${labelOf(src)} is an EndEvent and cannot have outgoing flow (edge ${e.id}).`,
          edgeIds: [e.id],
          nodeIds: [src.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_3_SourceNotEndEvent);
const rule_2_4_TargetNotStartOrBoundary = {
  id: "2.4",
  description: "Edge target must not be a StartEvent or BoundaryEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      if (isAssociationEdge(e)) continue;
      const tgt = getNode(lookup, e.target);
      if (!tgt) continue;
      if (isStartEvent(tgt)) {
        issues.push({
          severity: "error",
          rule: "2.4",
          message: `${labelOf(tgt)} is a StartEvent and cannot have incoming flow (edge ${e.id}).`,
          edgeIds: [e.id],
          nodeIds: [tgt.id]
        });
      } else if (isBoundaryEvent(tgt)) {
        issues.push({
          severity: "error",
          rule: "2.4",
          message: `${labelOf(tgt)} is a BoundaryEvent — attach via parentNode, not sequence flow (edge ${e.id}).`,
          edgeIds: [e.id],
          nodeIds: [tgt.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_4_TargetNotStartOrBoundary);
const rule_2_5_NoSelfLoop = {
  id: "2.5",
  description: "Edges must not self-loop (source === target)",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      if (e.source === e.target) {
        const n = getNode(lookup, e.source);
        issues.push({
          severity: "error",
          rule: "2.5",
          message: `${n ? labelOf(n) : e.source} has a self-loop edge ${e.id}; cycles must flow through another node and be annotated with RecursiveConnections.`,
          edgeIds: [e.id],
          nodeIds: n ? [n.id] : void 0
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_5_NoSelfLoop);
const isEdgeDefaultAtSource = (source, edgeSourceHandle) => {
  var _a;
  if (!source || edgeSourceHandle == null) return false;
  const conds = ((_a = source.data) == null ? void 0 : _a.conditions) ?? [];
  const match = conds.find((c) => String(c.path) === edgeSourceHandle);
  if (!match) return false;
  return !match.expression || match.expression.trim() === "";
};
const rule_2_7_DefaultOnlyFromXorOrInclusive = {
  id: "2.7",
  description: "Edges with IsDefault=true must originate from an XorGateway or InclusiveGateway",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      const src = getNode(lookup, e.source);
      if (!src) continue;
      if (!isEdgeDefaultAtSource(src, e.sourceHandle)) continue;
      if (src.type !== "XorGateway" && src.type !== "InclusiveGateway") {
        issues.push({
          severity: "error",
          rule: "2.7",
          message: `Edge ${e.id} is marked as default (empty expression) but source ${labelOf(src)} is not an XorGateway or InclusiveGateway.`,
          edgeIds: [e.id],
          nodeIds: [src.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_7_DefaultOnlyFromXorOrInclusive);
const rule_2_8_DefaultPathResolvesToEdge = {
  id: "2.8",
  description: "Each default condition on a gateway must be matched by exactly one outgoing edge whose sourceHandle equals String(cond.path)",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway" && n.type !== "InclusiveGateway") continue;
      const conds = ((_a = n.data) == null ? void 0 : _a.conditions) ?? [];
      const defaultConds = conds.filter((c) => !c.expression || c.expression.trim() === "");
      if (defaultConds.length === 0) continue;
      const outgoing = lookup.outgoingByNode.get(n.id) ?? [];
      for (const cond of defaultConds) {
        const handle = String(cond.path);
        const matching = outgoing.filter((e) => e.sourceHandle === handle);
        if (matching.length === 0) {
          issues.push({
            severity: "error",
            rule: "2.8",
            message: `${labelOf(n)} default condition (path ${cond.path}) has no matching outgoing edge (sourceHandle="${handle}").`,
            nodeIds: [n.id]
          });
        } else if (matching.length > 1) {
          issues.push({
            severity: "error",
            rule: "2.8",
            message: `${labelOf(n)} default condition (path ${cond.path}) matches ${matching.length} outgoing edges; expected exactly one.`,
            nodeIds: [n.id],
            edgeIds: matching.map((e) => e.id)
          });
        } else {
          const edge = matching[0];
          if (!edge.target) {
            issues.push({
              severity: "error",
              rule: "2.8",
              message: `${labelOf(n)} default edge ${edge.id} (path ${cond.path}) has no target; DefaultPath would be unresolvable.`,
              nodeIds: [n.id],
              edgeIds: [edge.id]
            });
          }
        }
      }
    }
    return issues;
  }
};
registerRule(rule_2_8_DefaultPathResolvesToEdge);
const rule_2_9_AtMostOneDefaultPerGateway = {
  id: "2.9",
  description: "At most one default (IsDefault=true) outgoing edge per gateway",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway" && n.type !== "InclusiveGateway") continue;
      const outgoing = lookup.outgoingByNode.get(n.id) ?? [];
      const defaultEdges = outgoing.filter((e) => isEdgeDefaultAtSource(n, e.sourceHandle));
      if (defaultEdges.length > 1) {
        issues.push({
          severity: "error",
          rule: "2.9",
          message: `${labelOf(n)} has ${defaultEdges.length} default outgoing edges; at most one is allowed.`,
          nodeIds: [n.id],
          edgeIds: defaultEdges.map((e) => e.id)
        });
      }
    }
    return issues;
  }
};
registerRule(rule_2_9_AtMostOneDefaultPerGateway);
const rule_3_1_StartEventCardinality = {
  id: "3.1",
  description: "StartEvent must have 0 incoming and exactly 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "StartEvent") continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 0) {
        issues.push({
          severity: "error",
          rule: "3.1",
          message: `${labelOf(n)} must have 0 incoming flows (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.1",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_1_StartEventCardinality);
const rule_3_2_EndEventCardinality = {
  id: "3.2",
  description: "EndEvent must have exactly 1 incoming and 0 outgoing flows",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "EndEvent") continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 1) {
        issues.push({
          severity: "error",
          rule: "3.2",
          message: `${labelOf(n)} must have exactly 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 0) {
        issues.push({
          severity: "error",
          rule: "3.2",
          message: `${labelOf(n)} must have 0 outgoing flows (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_2_EndEventCardinality);
const rule_3_3_ActivityCardinality = {
  id: "3.3",
  description: "Activity must have exactly 1 incoming and 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "Activity") continue;
      const incoming = getIncoming(lookup, n.id).length;
      const outgoing = getOutgoing(lookup, n.id).length;
      if (incoming !== 1) {
        issues.push({
          severity: "error",
          rule: "3.3",
          message: `${labelOf(n)} must have exactly 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.3",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_3_ActivityCardinality);
const rule_3_4_IntermediateCatchingCardinality = {
  id: "3.4",
  description: "IntermediateCatchingEvent must have exactly 1 incoming and 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "IntermediateCatching") continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 1) {
        issues.push({
          severity: "error",
          rule: "3.4",
          message: `${labelOf(n)} must have exactly 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.4",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_4_IntermediateCatchingCardinality);
const rule_3_5_IntermediateThrowCardinality = {
  id: "3.5",
  description: "IntermediateThrow event must have exactly 1 incoming and 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "IntermediateThrow") continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 1) {
        issues.push({
          severity: "error",
          rule: "3.5",
          message: `${labelOf(n)} must have exactly 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.5",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_5_IntermediateThrowCardinality);
const rule_3_6_BoundaryEventCardinality = {
  id: "3.6",
  description: "BoundaryEvent must have 0 incoming and exactly 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "BoundaryEvent") continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 0) {
        issues.push({
          severity: "error",
          rule: "3.6",
          message: `${labelOf(n)} must have 0 incoming flows (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.6",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_6_BoundaryEventCardinality);
const rule_3_7_GatewayForkCardinality = {
  id: "3.7",
  description: "Fork gateway (IsMerging=false) must have exactly 1 incoming and at least 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isForkGateway(n)) continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming !== 1) {
        issues.push({
          severity: "error",
          rule: "3.7",
          message: `${labelOf(n)} must have exactly 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing < 1) {
        issues.push({
          severity: "error",
          rule: "3.7",
          message: `${labelOf(n)} must have at least 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_7_GatewayForkCardinality);
const rule_3_8_GatewayMergeCardinality = {
  id: "3.8",
  description: "Merge gateway (IsMerging=true) must have at least 1 incoming and exactly 1 outgoing flow",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isMergeGateway(n)) continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming < 1) {
        issues.push({
          severity: "error",
          rule: "3.8",
          message: `${labelOf(n)} must have at least 1 incoming flow (found ${incoming}).`,
          nodeIds: [n.id]
        });
      }
      if (outgoing !== 1) {
        issues.push({
          severity: "error",
          rule: "3.8",
          message: `${labelOf(n)} must have exactly 1 outgoing flow (found ${outgoing}).`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_3_8_GatewayMergeCardinality);
const VALID_GATEWAY_TYPES = /* @__PURE__ */ new Set(["XorGateway", "InclusiveGateway", "ParallelGateway"]);
const getConditions = (n) => {
  var _a;
  return ((_a = n == null ? void 0 : n.data) == null ? void 0 : _a.conditions) ?? [];
};
const isEmptyExpression = (expr) => !expr || expr.trim() === "";
const rule_4_1_GatewayKind = {
  id: "4.1",
  description: "Gateway Kind must be XorGateway, InclusiveGateway, or ParallelGateway",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (!isGateway(n)) continue;
      if (!n.type || !VALID_GATEWAY_TYPES.has(n.type)) {
        issues.push({
          severity: "error",
          rule: "4.1",
          message: `${labelOf(n)} has unsupported gateway kind "${n.type ?? "<none>"}"; must be XorGateway, InclusiveGateway, or ParallelGateway.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_1_GatewayKind);
const rule_4_4_GatewayNotBothForkAndMerge = {
  id: "4.4",
  description: "Gateway cannot both fork (>1 outgoing) and merge (>1 incoming) simultaneously",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isGateway(n)) continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (incoming > 1 && outgoing > 1) {
        issues.push({
          severity: "error",
          rule: "4.4",
          message: `${labelOf(n)} has ${incoming} incoming and ${outgoing} outgoing flows; a gateway must be either fork or merge, not both.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_4_GatewayNotBothForkAndMerge);
const rule_4_5_ExpressionKeysResolve = {
  id: "4.5",
  description: "Every condition path on a Xor/Inclusive fork must match an outgoing edge sourceHandle",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isForkGateway(n)) continue;
      if (n.type !== "XorGateway" && n.type !== "InclusiveGateway") continue;
      const conds = getConditions(n);
      const outgoing = getOutgoing(lookup, n.id);
      for (const cond of conds) {
        const handle = String(cond.path);
        const hit = outgoing.some((e) => e.sourceHandle === handle);
        if (!hit) {
          issues.push({
            severity: "error",
            rule: "4.5",
            message: `${labelOf(n)} condition path ${cond.path} has no matching outgoing edge (sourceHandle="${handle}").`,
            nodeIds: [n.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_4_5_ExpressionKeysResolve);
const rule_4_6_DefaultPathTarget = {
  id: "4.6",
  description: "Default outgoing edge on Xor/Inclusive gateway must have a target",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway" && n.type !== "InclusiveGateway") continue;
      const conds = getConditions(n);
      const defaultConds = conds.filter((c) => isEmptyExpression(c.expression));
      if (defaultConds.length === 0) continue;
      const outgoing = getOutgoing(lookup, n.id);
      for (const cond of defaultConds) {
        const handle = String(cond.path);
        const matching = outgoing.find((e) => e.sourceHandle === handle);
        if (matching && !matching.target) {
          issues.push({
            severity: "error",
            rule: "4.6",
            message: `${labelOf(n)} default edge ${matching.id} (path ${cond.path}) has no target; DefaultPath would be unresolvable.`,
            nodeIds: [n.id],
            edgeIds: [matching.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_4_6_DefaultPathTarget);
const rule_4_7_XorAtMostOneDefault = {
  id: "4.7",
  description: "XorGateway must have at most one default (empty-expression) condition",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway") continue;
      const conds = getConditions(n);
      const defaults = conds.filter((c) => isEmptyExpression(c.expression));
      if (defaults.length > 1) {
        issues.push({
          severity: "error",
          rule: "4.7",
          message: `${labelOf(n)} has ${defaults.length} default conditions; at most one is allowed.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_7_XorAtMostOneDefault);
const rule_4_8_ParallelNoConditions = {
  id: "4.8",
  description: "ParallelGateway must not have conditions or default paths",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ParallelGateway") continue;
      const conds = getConditions(n);
      const offending = conds.filter((c) => !isEmptyExpression(c.expression));
      if (offending.length > 0) {
        issues.push({
          severity: "error",
          rule: "4.8",
          message: `${labelOf(n)} is a ParallelGateway and must not carry expressions (found ${offending.length}).`,
          nodeIds: [n.id]
        });
      }
      const outgoing = getOutgoing(lookup, n.id);
      const defaultEdges = outgoing.filter((e) => {
        const cond = conds.find((c) => String(c.path) === e.sourceHandle);
        return cond && isEmptyExpression(cond.expression);
      });
      if (defaultEdges.length > 0) {
        issues.push({
          severity: "error",
          rule: "4.8",
          message: `${labelOf(n)} is a ParallelGateway and must not have default-path edges (found ${defaultEdges.length}).`,
          nodeIds: [n.id],
          edgeIds: defaultEdges.map((e) => e.id)
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_8_ParallelNoConditions);
const rule_4_9_InclusiveForkHasExpression = {
  id: "4.9",
  description: "InclusiveGateway fork must have at least one non-empty expression",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "InclusiveGateway") continue;
      if (!isForkGateway(n)) continue;
      const conds = getConditions(n);
      const hasReal = conds.some((c) => !isEmptyExpression(c.expression));
      if (!hasReal) {
        issues.push({
          severity: "error",
          rule: "4.9",
          message: `${labelOf(n)} is an InclusiveGateway fork with no non-empty expressions; engine returns empty path set.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_9_InclusiveForkHasExpression);
const rule_4_10_XorForkHasRoute = {
  id: "4.10",
  description: "XorGateway fork must have at least one expression or a default path",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway") continue;
      if (!isForkGateway(n)) continue;
      const conds = getConditions(n);
      if (conds.length === 0) {
        issues.push({
          severity: "error",
          rule: "4.10",
          message: `${labelOf(n)} is an XorGateway fork with no conditions; token would silently stall.`,
          nodeIds: [n.id]
        });
        continue;
      }
      const hasReal = conds.some((c) => !isEmptyExpression(c.expression));
      const hasDefault = conds.some((c) => isEmptyExpression(c.expression));
      if (!hasReal && !hasDefault) {
        issues.push({
          severity: "error",
          rule: "4.10",
          message: `${labelOf(n)} is an XorGateway fork with no expressions and no default path.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_10_XorForkHasRoute);
const rule_4_11_ExpressionNotWhitespace = {
  id: "4.11",
  description: "Gateway expressions must be either empty (default) or non-whitespace strings",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "XorGateway" && n.type !== "InclusiveGateway") continue;
      const conds = getConditions(n);
      for (const cond of conds) {
        const expr = cond.expression;
        if (typeof expr !== "string") continue;
        if (expr.length > 0 && expr.trim() === "") {
          issues.push({
            severity: "error",
            rule: "4.11",
            message: `${labelOf(n)} condition path ${cond.path} has a whitespace-only expression; must be non-empty or fully empty (default).`,
            nodeIds: [n.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_4_11_ExpressionNotWhitespace);
const rule_4_13_ParallelForkFanout = {
  id: "4.13",
  description: "ParallelGateway fork should have at least 2 outgoing flows",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ParallelGateway") continue;
      if (!isForkGateway(n)) continue;
      const outgoing = getFlowOutgoing(lookup, n.id).length;
      if (outgoing < 2) {
        issues.push({
          severity: "warning",
          rule: "4.13",
          message: `${labelOf(n)} is a ParallelGateway fork with ${outgoing} outgoing flow(s); typically needs >=2.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_13_ParallelForkFanout);
const rule_4_14_MergeFanIn = {
  id: "4.14",
  description: "Parallel/Inclusive merge should have at least 2 non-recursive incoming flows",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ParallelGateway" && n.type !== "InclusiveGateway") continue;
      if (!isMergeGateway(n)) continue;
      const incoming = getFlowIncoming(lookup, n.id).length;
      if (incoming < 2) {
        const totalIn = getIncoming(lookup, n.id).length;
        issues.push({
          severity: "warning",
          rule: "4.14",
          message: `${labelOf(n)} is a ${n.type} merge with ${incoming} non-recursive incoming (${totalIn} total); typically needs >=2.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_4_14_MergeFanIn);
const rule_5_1_StartEventPresence = {
  id: "5.1",
  description: "Every process must have at least one StartEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const starts = process.nodes.filter((n) => getFamily(n.type) === "StartEvent");
    if (starts.length === 0) {
      return [{
        severity: "error",
        rule: "5.1",
        message: `Process "${process.name}" has no StartEvent.`,
        processId: process.id
      }];
    }
    return [];
  }
};
registerRule(rule_5_1_StartEventPresence);
const rule_5_3_MessageStartEventName = {
  id: "5.3",
  description: "MessageStartEvent requires a non-empty messageName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "MessageStartEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.messageName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "5.3",
          message: `${labelOf(n)} requires a non-empty messageName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_5_3_MessageStartEventName);
const rule_5_4_TimerStartEventConfig = {
  id: "5.4",
  description: "TimerStartEvent requires a timerDefinition or timerDate",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "TimerStartEvent") continue;
      const def = (((_a = n.data) == null ? void 0 : _a.timerDefinition) ?? "").toString().trim();
      const date = (((_b = n.data) == null ? void 0 : _b.timerDate) ?? "").toString().trim();
      if (!def && !date) {
        issues.push({
          severity: "error",
          rule: "5.4",
          message: `${labelOf(n)} requires a timerDefinition or timerDate.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_5_4_TimerStartEventConfig);
const rule_5_5_SignalStartEventName = {
  id: "5.5",
  description: "SignalStartEvent requires a non-empty signalName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "SignalStartEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.signalName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "5.5",
          message: `${labelOf(n)} requires a non-empty signalName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_5_5_SignalStartEventName);
const rule_5_6_ErrorEscalationStartOnlyInSubProcess = {
  id: "5.6",
  description: "ErrorStartEvent/EscalationStartEvent are only valid inside a sub-process",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    if (process.isSubProcess) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type === "ErrorStartEvent" || n.type === "EscalationStartEvent") {
        issues.push({
          severity: "error",
          rule: "5.6",
          message: `${labelOf(n)} is only allowed inside a sub-process (process "${process.name}" is top-level).`,
          nodeIds: [n.id],
          processId: process.id
        });
      }
    }
    return issues;
  }
};
registerRule(rule_5_6_ErrorEscalationStartOnlyInSubProcess);
const PRIMARY_START_TYPES = /* @__PURE__ */ new Set([
  "BlankStartEvent",
  "FormStartEvent",
  "ApiStartEvent",
  "UiStartEvent",
  "MessageStartEvent",
  "TimerStartEvent",
  "SignalStartEvent"
]);
const rule_5_7_SinglePrimaryRootStart = {
  id: "5.7",
  description: "Root process should have exactly one primary start entry",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    if (process.isSubProcess) return [];
    const primaries = process.nodes.filter((n) => n.type && PRIMARY_START_TYPES.has(n.type));
    if (primaries.length > 1) {
      return [{
        severity: "warning",
        rule: "5.7",
        message: `Root process "${process.name}" has ${primaries.length} primary start events; exactly one is recommended.`,
        nodeIds: primaries.map((n) => n.id),
        processId: process.id
      }];
    }
    return [];
  }
};
registerRule(rule_5_7_SinglePrimaryRootStart);
const rule_6_2_MessageEndEventName = {
  id: "6.2",
  description: "MessageEndEvent requires a non-empty messageName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "MessageEndEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.messageName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "6.2",
          message: `${labelOf(n)} requires a non-empty messageName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_6_2_MessageEndEventName);
const rule_6_3_SignalEndEventName = {
  id: "6.3",
  description: "SignalEndEvent requires a non-empty signalName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "SignalEndEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.signalName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "6.3",
          message: `${labelOf(n)} requires a non-empty signalName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_6_3_SignalEndEventName);
const rule_6_4_ErrorEndEventPayload = {
  id: "6.4",
  description: "ErrorEndEvent requires exceptionType or errorMessage",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ErrorEndEvent") continue;
      const exceptionType = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      const errorMessage = (((_b = n.data) == null ? void 0 : _b.errorMessage) ?? "").toString().trim();
      if (!exceptionType && !errorMessage) {
        issues.push({
          severity: "error",
          rule: "6.4",
          message: `${labelOf(n)} requires an exceptionType or errorMessage.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_6_4_ErrorEndEventPayload);
const rule_6_5_EscalationEndEventName = {
  id: "6.5",
  description: "EscalationEndEvent should have an escalationName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "EscalationEndEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.escalationName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "warning",
          rule: "6.5",
          message: `${labelOf(n)} has no escalationName — escalation handling is not wired up.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_6_5_EscalationEndEventName);
const rule_7_2_IntermediateCatchMessage = {
  id: "7.2",
  description: "IntermediateCatchMessageEvent requires a non-empty messageName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateCatchMessageEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.messageName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "7.2",
          message: `${labelOf(n)} requires a non-empty messageName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_2_IntermediateCatchMessage);
const rule_7_3_IntermediateCatchTimer = {
  id: "7.3",
  description: "IntermediateCatchTimerEvent requires a timerDefinition or timerDate",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateCatchTimerEvent") continue;
      const def = (((_a = n.data) == null ? void 0 : _a.timerDefinition) ?? "").toString().trim();
      const date = (((_b = n.data) == null ? void 0 : _b.timerDate) ?? "").toString().trim();
      if (!def && !date) {
        issues.push({
          severity: "error",
          rule: "7.3",
          message: `${labelOf(n)} requires a timerDefinition or timerDate.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_3_IntermediateCatchTimer);
const rule_7_4_IntermediateCatchSignal = {
  id: "7.4",
  description: "IntermediateCatchSignalEvent requires a non-empty signalName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateCatchSignalEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.signalName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "7.4",
          message: `${labelOf(n)} requires a non-empty signalName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_4_IntermediateCatchSignal);
const rule_7_5_IntermediateThrowMessage = {
  id: "7.5",
  description: "IntermediateThrowMessageEvent requires a non-empty messageName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateThrowMessageEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.messageName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "7.5",
          message: `${labelOf(n)} requires a non-empty messageName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_5_IntermediateThrowMessage);
const rule_7_6_IntermediateThrowSignal = {
  id: "7.6",
  description: "IntermediateThrowSignalEvent requires a non-empty signalName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateThrowSignalEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.signalName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "7.6",
          message: `${labelOf(n)} requires a non-empty signalName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_6_IntermediateThrowSignal);
const rule_7_7_IntermediateThrowError = {
  id: "7.7",
  description: "IntermediateThrowErrorEvent requires exceptionType or errorMessage",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateThrowErrorEvent") continue;
      const exceptionType = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      const errorMessage = (((_b = n.data) == null ? void 0 : _b.errorMessage) ?? "").toString().trim();
      if (!exceptionType && !errorMessage) {
        issues.push({
          severity: "error",
          rule: "7.7",
          message: `${labelOf(n)} requires an exceptionType or errorMessage.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_7_IntermediateThrowError);
const rule_7_7b_IntermediateThrowEscalation = {
  id: "7.7b",
  description: "IntermediateThrowEscalationEvent should have an escalationName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "IntermediateThrowEscalationEvent") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.escalationName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "warning",
          rule: "7.7b",
          message: `${labelOf(n)} has no escalationName — escalation handling is not wired up.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_7_7b_IntermediateThrowEscalation);
const rule_8_2_BoundaryParentExists = {
  id: "8.2",
  description: "BoundaryEvent must have a parentNode that exists in the same process",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isBoundaryEvent(n)) continue;
      const parentId = n.parentNode;
      if (!parentId) {
        issues.push({
          severity: "error",
          rule: "8.2",
          message: `${labelOf(n)} has no parentNode — boundary events must attach to an activity.`,
          nodeIds: [n.id]
        });
        continue;
      }
      if (!getNode(lookup, parentId)) {
        issues.push({
          severity: "error",
          rule: "8.2",
          message: `${labelOf(n)} references missing parent "${parentId}" (not found in process "${process.name}").`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_2_BoundaryParentExists);
const rule_8_3_BoundaryHostIsActivity = {
  id: "8.3",
  description: "BoundaryEvent host (parentNode) must be an Activity",
  // NOTE: Covers both constraint 8.3 (host must be Activity) and 8.4
  // (bidirectional activity/boundary linkage consistency) — with parentNode
  // wiring the two checks collapse into a single host-is-Activity assertion.
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isBoundaryEvent(n)) continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const parent = getNode(lookup, parentId);
      if (!parent) continue;
      if (!isActivity(parent)) {
        issues.push({
          severity: "error",
          rule: "8.3",
          message: `${labelOf(n)} is attached to non-activity host ${labelOf(parent)}; boundary events must attach to an Activity.`,
          nodeIds: [n.id, parent.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_3_BoundaryHostIsActivity);
const rule_8_5_ErrorBoundaryIdentification = {
  id: "8.5",
  description: "ErrorBoundaryEvent catch-all without errorMessage is hard to identify",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ErrorBoundaryEvent") continue;
      const exceptionType = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      const errorMessage = (((_b = n.data) == null ? void 0 : _b.errorMessage) ?? "").toString().trim();
      if (!exceptionType && !errorMessage) {
        issues.push({
          severity: "warning",
          rule: "8.5",
          message: `${labelOf(n)}: Catch-all error boundary has no errorMessage for identification.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_5_ErrorBoundaryIdentification);
const rule_8_6_TimerBoundary = {
  id: "8.6",
  description: "TimerBoundaryEvent requires a timerDefinition or timerDate",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "TimerBoundaryEvent") continue;
      const def = (((_a = n.data) == null ? void 0 : _a.timerDefinition) ?? "").toString().trim();
      const date = (((_b = n.data) == null ? void 0 : _b.timerDate) ?? "").toString().trim();
      if (!def && !date) {
        issues.push({
          severity: "error",
          rule: "8.6",
          message: `${labelOf(n)} requires a timerDefinition or timerDate.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_6_TimerBoundary);
const rule_8_7_MessageSignalBoundary = {
  id: "8.7",
  description: "MessageBoundaryEvent/SignalBoundaryEvent require message/signal name",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type === "MessageBoundaryEvent") {
        const name = (((_a = n.data) == null ? void 0 : _a.messageName) ?? "").toString().trim();
        if (!name) {
          issues.push({
            severity: "error",
            rule: "8.7",
            message: `${labelOf(n)} requires a non-empty messageName.`,
            nodeIds: [n.id]
          });
        }
      } else if (n.type === "SignalBoundaryEvent") {
        const name = (((_b = n.data) == null ? void 0 : _b.signalName) ?? "").toString().trim();
        if (!name) {
          issues.push({
            severity: "error",
            rule: "8.7",
            message: `${labelOf(n)} requires a non-empty signalName.`,
            nodeIds: [n.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_8_7_MessageSignalBoundary);
const rule_8_8_InterruptingBoundary = {
  id: "8.8",
  description: "Error/Timer boundary events must be interrupting (cancelActivity=true)",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ErrorBoundaryEvent" && n.type !== "TimerBoundaryEvent") continue;
      if (((_a = n.data) == null ? void 0 : _a.cancelActivity) === false) {
        issues.push({
          severity: "error",
          rule: "8.8",
          message: `${labelOf(n)}: cancelActivity must be true for Error/Timer boundary events.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_8_InterruptingBoundary);
const rule_8_9_SingleCatchAllErrorBoundary = {
  id: "8.9",
  description: "An activity can have at most one catch-all ErrorBoundaryEvent",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    const catchAllsByHost = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      if (n.type !== "ErrorBoundaryEvent") continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const exceptionType = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      if (exceptionType) continue;
      const list2 = catchAllsByHost.get(parentId) ?? [];
      list2.push(n);
      catchAllsByHost.set(parentId, list2);
    }
    for (const [hostId, boundaries] of catchAllsByHost) {
      if (boundaries.length > 1) {
        issues.push({
          severity: "error",
          rule: "8.9",
          message: `Activity "${hostId}" has ${boundaries.length} catch-all ErrorBoundaryEvents; only one is allowed.`,
          nodeIds: [hostId, ...boundaries.map((b) => b.id)]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_9_SingleCatchAllErrorBoundary);
const rule_8_10_BoundaryTargetsHost = {
  id: "8.10",
  description: "Boundary outgoing target equals host activity (infinite-loop risk)",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (!isBoundaryEvent(n)) continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const outgoing = getOutgoing(lookup, n.id);
      for (const edge of outgoing) {
        if (edge.target === parentId) {
          issues.push({
            severity: "warning",
            rule: "8.10",
            message: `${labelOf(n)} outgoing flow targets its host activity — potential infinite loop unless modeled as a RecursiveConnection.`,
            nodeIds: [n.id, parentId],
            edgeIds: [edge.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_8_10_BoundaryTargetsHost);
const rule_8_11_SpecificAndCatchAllAmbiguity = {
  id: "8.11",
  description: "Specific and catch-all error boundaries on the same activity depend on list order",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    const byHost = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      if (n.type !== "ErrorBoundaryEvent") continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const exceptionType = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      const bucket = byHost.get(parentId) ?? { specific: [], catchAll: [] };
      if (exceptionType) bucket.specific.push(n.id);
      else bucket.catchAll.push(n.id);
      byHost.set(parentId, bucket);
    }
    for (const [hostId, bucket] of byHost) {
      if (bucket.specific.length > 0 && bucket.catchAll.length > 0) {
        issues.push({
          severity: "warning",
          rule: "8.11",
          message: `Activity "${hostId}" has both specific and catch-all ErrorBoundaryEvents; matching depends on list order.`,
          nodeIds: [hostId, ...bucket.specific, ...bucket.catchAll]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_8_11_SpecificAndCatchAllAmbiguity);
const rule_9_2_BoundaryAttachment = {
  id: "9.2",
  description: "Boundary nodes attached to an activity (via parentNode) must exist in the same process and be of family BoundaryEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const activity of process.nodes) {
      if (!isActivity(activity)) continue;
      for (const candidate of process.nodes) {
        if (candidate.parentNode !== activity.id) continue;
        if (getFamily(candidate.type) !== "BoundaryEvent") {
          issues.push({
            severity: "error",
            rule: "9.2",
            message: `${labelOf(candidate)} is attached to ${labelOf(activity)} via parentNode but is not a BoundaryEvent.`,
            processId: process.id,
            nodeIds: [candidate.id, activity.id]
          });
        }
      }
    }
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "BoundaryEvent") continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const parent = lookup.nodesById.get(parentId);
      if (!parent) {
        issues.push({
          severity: "error",
          rule: "9.2",
          message: `${labelOf(n)} references non-existent parent node '${parentId}'.`,
          processId: process.id,
          nodeIds: [n.id]
        });
        continue;
      }
      if (!isActivity(parent)) {
        issues.push({
          severity: "error",
          rule: "9.2",
          message: `${labelOf(n)} is attached to ${labelOf(parent)} which is not an Activity.`,
          processId: process.id,
          nodeIds: [n.id, parent.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_9_2_BoundaryAttachment);
const rule_9_3_ScriptResourceReferences = {
  id: "9.3",
  description: "InputScripts/OutputScripts/ExportScripts resource ids — warning until the editor persists a Diagram.Resources dict",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      const d = n.data;
      if (!d) continue;
      const hasAny = Array.isArray(d.inputScripts) && d.inputScripts.length > 0 || Array.isArray(d.outputScripts) && d.outputScripts.length > 0 || Array.isArray(d.exportScripts) && d.exportScripts.length > 0;
      if (!hasAny) continue;
      issues.push({
        severity: "warning",
        rule: "9.3",
        message: `${labelOf(n)}: Script resource referencing is not yet supported by the editor — IDs will not be persisted.`,
        processId: process.id,
        nodeIds: [n.id]
      });
    }
    return issues;
  }
};
registerRule(rule_9_3_ScriptResourceReferences);
const rule_9_4_ScriptTaskEmptyScript = {
  id: "9.4",
  description: "ScriptTask with empty/null script is usually a mistake",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "ScriptTask") continue;
      const script = (_a = n.data) == null ? void 0 : _a.script;
      if (script === void 0 || script === null || script === "") {
        issues.push({
          severity: "warning",
          rule: "9.4",
          message: `${labelOf(n)} has no script — engine will short-circuit to OutputScriptStage.`,
          processId: process.id,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_9_4_ScriptTaskEmptyScript);
const rule_9_5_ImportAllWithInputScripts = {
  id: "9.5",
  description: "ImportAllToActivityContext=true with non-empty InputScripts — scripts will not run in that stage",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      const d = n.data;
      if (!d) continue;
      const importAll = d.importAllToActivityContext === true;
      const inputScripts = d.inputScripts;
      const hasInputs = Array.isArray(inputScripts) && inputScripts.length > 0;
      if (importAll && hasInputs) {
        issues.push({
          severity: "warning",
          rule: "9.5",
          message: `${labelOf(n)}: InputScripts will be ignored when ImportAllToActivityContext is true.`,
          processId: process.id,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_9_5_ImportAllWithInputScripts);
const rule_10_1_ProcessNameRequired = {
  id: "10.1",
  description: "CallActivity requires a non-empty processName",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "CallActivity") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.processName) ?? "").toString().trim();
      if (!name) {
        issues.push({
          severity: "error",
          rule: "10.1",
          message: `${labelOf(n)} requires a non-empty processName.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_10_1_ProcessNameRequired);
const rule_10_2_ProcessNameResolvable = {
  id: "10.2",
  description: "CallActivity.processName must match a process in the diagram",
  scope: "diagram",
  run: (ctx) => {
    var _a;
    const issues = [];
    const processNames = new Set(ctx.processes.map((p) => p.name));
    for (const proc of ctx.processes) {
      for (const n of proc.nodes) {
        if (n.type !== "CallActivity") continue;
        const name = (((_a = n.data) == null ? void 0 : _a.processName) ?? "").toString().trim();
        if (!name) continue;
        if (!processNames.has(name)) {
          issues.push({
            severity: "error",
            rule: "10.2",
            message: `${labelOf(n)} references unknown process "${name}" (not found in diagram).`,
            nodeIds: [n.id],
            processId: proc.id
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_10_2_ProcessNameResolvable);
const rule_10_3_CalledIsSubProcess = {
  id: "10.3",
  description: "CallActivity should call processes marked as sub-processes",
  scope: "diagram",
  run: (ctx) => {
    var _a;
    const issues = [];
    const byName = new Map(ctx.processes.map((p) => [p.name, p]));
    for (const proc of ctx.processes) {
      for (const n of proc.nodes) {
        if (n.type !== "CallActivity") continue;
        const name = (((_a = n.data) == null ? void 0 : _a.processName) ?? "").toString().trim();
        if (!name) continue;
        const called = byName.get(name);
        if (!called) continue;
        if (!called.isSubProcess) {
          issues.push({
            severity: "warning",
            rule: "10.3",
            message: `${labelOf(n)} calls process "${name}" which is not marked as a sub-process.`,
            nodeIds: [n.id],
            processId: proc.id
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_10_3_CalledIsSubProcess);
const rule_10_5_ProcessVersionNonNegative = {
  id: "10.5",
  description: "CallActivity.processVersion must be non-negative",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "CallActivity") continue;
      const version2 = (_a = n.data) == null ? void 0 : _a.processVersion;
      if (typeof version2 === "number" && version2 < 0) {
        issues.push({
          severity: "error",
          rule: "10.5",
          message: `${labelOf(n)} has negative processVersion (${version2}); must be non-negative.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_10_5_ProcessVersionNonNegative);
const rule_10_6_NoCyclicCallGraph = {
  id: "10.6",
  description: "Call graph across processes must not contain cycles",
  scope: "diagram",
  run: (ctx) => {
    var _a;
    const issues = [];
    const processNames = new Set(ctx.processes.map((p) => p.name));
    const graph2 = /* @__PURE__ */ new Map();
    for (const proc of ctx.processes) {
      const targets = /* @__PURE__ */ new Set();
      for (const n of proc.nodes) {
        if (n.type !== "CallActivity") continue;
        const name = (((_a = n.data) == null ? void 0 : _a.processName) ?? "").toString().trim();
        if (name && processNames.has(name)) targets.add(name);
      }
      graph2.set(proc.name, targets);
    }
    const color = /* @__PURE__ */ new Map();
    const reported = /* @__PURE__ */ new Set();
    const dfs = (start) => {
      const stack = [];
      const path = [];
      const onPath = /* @__PURE__ */ new Set();
      const push2 = (node) => {
        color.set(node, 1);
        path.push(node);
        onPath.add(node);
        stack.push({ node, iter: (graph2.get(node) ?? /* @__PURE__ */ new Set()).values() });
      };
      push2(start);
      while (stack.length > 0) {
        const top = stack[stack.length - 1];
        const next = top.iter.next();
        if (next.done) {
          color.set(top.node, 2);
          onPath.delete(top.node);
          path.pop();
          stack.pop();
          continue;
        }
        const child = next.value;
        const c = color.get(child) ?? 0;
        if (c === 1) {
          const startIdx = path.indexOf(child);
          const cyclePath = [...path.slice(startIdx), child];
          const key = [...cyclePath].sort((a, b) => a.localeCompare(b)).join("|");
          if (!reported.has(key)) {
            reported.add(key);
            issues.push({
              severity: "error",
              rule: "10.6",
              message: `Cyclic call graph detected: ${cyclePath.join(" -> ")}`
            });
          }
        } else if (c === 0) {
          push2(child);
        }
      }
    };
    for (const name of graph2.keys()) {
      if ((color.get(name) ?? 0) === 0) dfs(name);
    }
    return issues;
  }
};
registerRule(rule_10_6_NoCyclicCallGraph);
const rule_10_7_NoSelfCall = {
  id: "10.7",
  description: "A process cannot contain a CallActivity that calls itself",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (n.type !== "CallActivity") continue;
      const name = (((_a = n.data) == null ? void 0 : _a.processName) ?? "").toString().trim();
      if (name && name === process.name) {
        issues.push({
          severity: "error",
          rule: "10.7",
          message: `${labelOf(n)} calls its own process "${process.name}" — direct self-call is not allowed.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_10_7_NoSelfCall);
const ALLOWED_SCRIPT_LANGUAGES = /* @__PURE__ */ new Set([void 0, "javascript", "python", "js"]);
const rule_11_1_ResourceIdUniqueness = {
  id: "11.1",
  description: "DiagramResource ids must be unique per diagram (no-op until resources persist)",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const seen = /* @__PURE__ */ new Map();
    for (const p of ctx.processes) {
      const resources = p.resources;
      if (!resources || typeof resources !== "object") continue;
      for (const key of Object.keys(resources)) {
        const list2 = seen.get(key) ?? [];
        list2.push(p.name || p.id);
        seen.set(key, list2);
      }
    }
    for (const [key, procs] of seen) {
      if (procs.length > 1) {
        issues.push({
          severity: "error",
          rule: "11.1",
          message: `Resource id '${key}' is duplicated across processes: ${procs.join(", ")}.`
        });
      }
    }
    return issues;
  }
};
registerRule(rule_11_1_ResourceIdUniqueness);
const rule_11_2_ScriptResourceResolution = {
  id: "11.2",
  description: "InputScripts/OutputScripts/ExportScripts ids must resolve to a diagram-level resource entry",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const allKeys = /* @__PURE__ */ new Set();
    let resourcesPersist = false;
    for (const p of ctx.processes) {
      const resources = p.resources;
      if (resources && typeof resources === "object") {
        resourcesPersist = true;
        for (const key of Object.keys(resources)) allKeys.add(key);
      }
    }
    for (const p of ctx.processes) {
      for (const n of p.nodes) {
        const d = n.data;
        if (!d) continue;
        const lists = [
          ["inputScripts", d.inputScripts],
          ["outputScripts", d.outputScripts],
          ["exportScripts", d.exportScripts]
        ];
        for (const [fieldName, value] of lists) {
          if (!Array.isArray(value) || value.length === 0) continue;
          if (!resourcesPersist) {
            issues.push({
              severity: "warning",
              rule: "11.2",
              message: `${labelOf(n)}: ${fieldName} references resources but the editor does not yet persist Diagram.Resources — IDs will not resolve.`,
              processId: p.id,
              nodeIds: [n.id]
            });
            continue;
          }
          for (const id of value) {
            const key = String(id);
            if (!allKeys.has(key)) {
              issues.push({
                severity: "error",
                rule: "11.2",
                message: `${labelOf(n)}: ${fieldName} references unknown resource id '${key}'.`,
                processId: p.id,
                nodeIds: [n.id]
              });
            }
          }
        }
      }
    }
    return issues;
  }
};
registerRule(rule_11_2_ScriptResourceResolution);
const rule_11_3_ResourceKind = {
  id: "11.3",
  description: "Resource Kind must be in {Expression, Template, InlineScript} (gated on resources persisting)",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const allowed = /* @__PURE__ */ new Set(["Expression", "Template", "InlineScript"]);
    for (const p of ctx.processes) {
      const resources = p.resources;
      if (!resources || typeof resources !== "object") continue;
      for (const [key, res] of Object.entries(resources)) {
        const kind = (res == null ? void 0 : res.Kind) ?? (res == null ? void 0 : res.kind);
        if (typeof kind !== "string") continue;
        if (!allowed.has(kind)) {
          issues.push({
            severity: "error",
            rule: "11.3",
            message: `Resource '${key}' has invalid Kind '${kind}'. Expected one of ${Array.from(allowed).join(", ")}.`
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_11_3_ResourceKind);
const rule_11_4_ScriptLanguage = {
  id: "11.4",
  description: "node.data.scriptLanguage must be undefined or one of {javascript, js, python} — Peak divergence from JS-only doc",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      const d = n.data;
      if (!d) continue;
      const lang = d.scriptLanguage;
      if (!ALLOWED_SCRIPT_LANGUAGES.has(lang)) {
        issues.push({
          severity: "error",
          rule: "11.4",
          message: `${labelOf(n)} has unsupported scriptLanguage '${lang}'. Allowed: javascript, js, python.`,
          processId: process.id,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_11_4_ScriptLanguage);
const rule_11_5_EndEventExportAllWithScripts = {
  id: "11.5",
  description: "EndEvent with ExportAll=true and non-empty ExportScripts — scripts will not run",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      if (getFamily(n.type) !== "EndEvent") continue;
      const d = n.data;
      if (!d) continue;
      const exportAll = d.exportAll === true;
      const exportScripts = d.exportScripts;
      const hasScripts = Array.isArray(exportScripts) && exportScripts.length > 0;
      if (exportAll && hasScripts) {
        issues.push({
          severity: "warning",
          rule: "11.5",
          message: `${labelOf(n)}: ExportScripts ignored when ExportAll is true.`,
          processId: process.id,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_11_5_EndEventExportAllWithScripts);
const rule_12_2_DiagramHasProcess = {
  id: "12.2",
  description: "Diagram must contain at least one process",
  scope: "diagram",
  run: (ctx) => {
    if (ctx.processes.length === 0) {
      return [
        {
          severity: "error",
          rule: "12.2",
          message: "Diagram must contain at least one process."
        }
      ];
    }
    return [];
  }
};
registerRule(rule_12_2_DiagramHasProcess);
const rule_12_3_ProcessNameNonEmpty = {
  id: "12.3",
  description: "Process.name must be non-empty",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const name = process.name;
    if (!name || name.trim() === "") {
      return [
        {
          severity: "error",
          rule: "12.3",
          message: `Process '${process.id}' has an empty name.`,
          processId: process.id
        }
      ];
    }
    return [];
  }
};
registerRule(rule_12_3_ProcessNameNonEmpty);
const rule_12_4_ProcessNameUnique = {
  id: "12.4",
  description: "Process names must be unique within the diagram",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const byName = /* @__PURE__ */ new Map();
    for (const p of ctx.processes) {
      const name = (p.name ?? "").trim();
      if (!name) continue;
      byName.set(name, (byName.get(name) ?? 0) + 1);
    }
    const dupes = Array.from(byName.entries()).filter(([, count]) => count > 1).map(([name]) => name);
    if (dupes.length > 0) {
      issues.push({
        severity: "error",
        rule: "12.4",
        message: `Duplicate process names within diagram: ${dupes.join(", ")}.`
      });
    }
    return issues;
  }
};
registerRule(rule_12_4_ProcessNameUnique);
const rule_12_6_NodeSingleProcess = {
  id: "12.6",
  description: "Every node must be assigned to exactly one process",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const nodeProcesses = /* @__PURE__ */ new Map();
    for (const p of ctx.processes) {
      const label = p.name || p.id;
      for (const n of p.nodes) {
        const list2 = nodeProcesses.get(n.id) ?? [];
        list2.push(label);
        nodeProcesses.set(n.id, list2);
      }
    }
    for (const [nodeId, procs] of nodeProcesses) {
      if (procs.length > 1) {
        issues.push({
          severity: "error",
          rule: "12.6",
          message: `Node '${nodeId}' appears in multiple processes: ${procs.join(", ")}.`,
          nodeIds: [nodeId]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_12_6_NodeSingleProcess);
const rule_12_7_OrphanSubProcess = {
  id: "12.7",
  description: "Sub-process definitions should be referenced by at least one CallActivity",
  scope: "diagram",
  run: (ctx) => {
    var _a;
    const issues = [];
    const referenced = /* @__PURE__ */ new Set();
    for (const p of ctx.processes) {
      for (const n of p.nodes) {
        if (n.type !== "CallActivity") continue;
        const name = (_a = n.data) == null ? void 0 : _a.processName;
        if (typeof name === "string" && name.trim() !== "") {
          referenced.add(name.trim());
        }
      }
    }
    for (const p of ctx.processes) {
      if (!p.isSubProcess) continue;
      const name = (p.name ?? "").trim();
      if (!name) continue;
      if (!referenced.has(name)) {
        issues.push({
          severity: "warning",
          rule: "12.7",
          message: `Sub-process '${name}' is not referenced by any CallActivity.`,
          processId: p.id
        });
      }
    }
    return issues;
  }
};
registerRule(rule_12_7_OrphanSubProcess);
const rule_12_8_UnusedResources = {
  id: "12.8",
  description: "DiagramResource entries unused by any node (gated on resources persisting)",
  scope: "diagram",
  run: (ctx) => {
    const issues = [];
    const allKeys = /* @__PURE__ */ new Set();
    for (const p of ctx.processes) {
      const resources = p.resources;
      if (!resources || typeof resources !== "object") continue;
      for (const key of Object.keys(resources)) allKeys.add(key);
    }
    if (allKeys.size === 0) return issues;
    const used = /* @__PURE__ */ new Set();
    for (const p of ctx.processes) {
      for (const n of p.nodes) {
        const d = n.data;
        if (!d) continue;
        for (const field of ["inputScripts", "outputScripts", "exportScripts"]) {
          const value = d[field];
          if (!Array.isArray(value)) continue;
          for (const id of value) used.add(String(id));
        }
      }
    }
    for (const key of allKeys) {
      if (!used.has(key)) {
        issues.push({
          severity: "warning",
          rule: "12.8",
          message: `Resource '${key}' is defined but never referenced.`
        });
      }
    }
    return issues;
  }
};
registerRule(rule_12_8_UnusedResources);
const bfsForward = (lookup, seeds, boundariesByHost) => {
  const visited = /* @__PURE__ */ new Set();
  const queue = [];
  const push2 = (id) => {
    if (!visited.has(id)) {
      visited.add(id);
      queue.push(id);
    }
  };
  seeds.forEach(push2);
  while (queue.length) {
    const id = queue.shift();
    for (const e of getFlowOutgoing(lookup, id)) push2(e.target);
    if (boundariesByHost) {
      const attached = boundariesByHost.get(id);
      if (attached) attached.forEach(push2);
    }
  }
  return visited;
};
const collectReachable = (process, lookup) => {
  var _a;
  const starts = process.nodes.filter((n) => isStartEvent(n)).map((n) => n.id);
  const boundariesByHost = /* @__PURE__ */ new Map();
  for (const n of process.nodes) {
    const host = n.parentNode;
    if (host && ((_a = n.type) == null ? void 0 : _a.endsWith("BoundaryEvent"))) {
      const list2 = boundariesByHost.get(host) || [];
      list2.push(n.id);
      boundariesByHost.set(host, list2);
    }
  }
  return bfsForward(lookup, starts, boundariesByHost);
};
const rule_13_1_ReachableFromStart = {
  id: "13.1",
  description: "Every non-boundary node must be reachable from some start event",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const reachable = collectReachable(process, lookup);
    const issues = [];
    for (const n of process.nodes) {
      if (isBoundaryEvent(n)) continue;
      if (!reachable.has(n.id)) {
        issues.push({
          severity: "error",
          rule: "13.1",
          message: `${labelOf(n)} is not reachable from any start event.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_13_1_ReachableFromStart);
const rule_13_2_BoundaryReachableViaHost = {
  id: "13.2",
  description: "Every boundary event must attach to an activity that is itself reachable",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const reachable = collectReachable(process, lookup);
    const issues = [];
    for (const n of process.nodes) {
      if (!isBoundaryEvent(n)) continue;
      const parentId = n.parentNode;
      if (!parentId) {
        issues.push({
          severity: "error",
          rule: "13.2",
          message: `${labelOf(n)} is a boundary event with no host activity (parentNode missing).`,
          nodeIds: [n.id]
        });
        continue;
      }
      const host = getNode(lookup, parentId);
      if (!host) {
        issues.push({
          severity: "error",
          rule: "13.2",
          message: `${labelOf(n)} references missing host activity "${parentId}".`,
          nodeIds: [n.id]
        });
        continue;
      }
      if (!reachable.has(host.id)) {
        issues.push({
          severity: "error",
          rule: "13.2",
          message: `${labelOf(n)} is attached to ${labelOf(host)} which is not reachable from any start event.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_13_2_BoundaryReachableViaHost);
const rule_13_3_StartReachesTerminal = {
  id: "13.3",
  description: "At least one start event must reach at least one EndEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const starts = process.nodes.filter((n) => isStartEvent(n));
    if (starts.length === 0) return [];
    const reachable = bfsForward(lookup, starts.map((s) => s.id));
    const anyTerminal = process.nodes.some((n) => isEndEvent(n) && reachable.has(n.id));
    if (anyTerminal) return [];
    return [{
      severity: "error",
      rule: "13.3",
      message: `No start event can reach any terminal (EndEvent) — process has no completion path.`,
      nodeIds: starts.map((s) => s.id)
    }];
  }
};
registerRule(rule_13_3_StartReachesTerminal);
const rule_13_4_ZeroOutgoingMustBeEnd = {
  id: "13.4",
  description: "Nodes with zero outgoing sequence flows must be EndEvent subclasses",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getOutgoing(lookup, n.id).length !== 0) continue;
      if (getFamily(n.type) === "EndEvent") continue;
      issues.push({
        severity: "error",
        rule: "13.4",
        message: `${labelOf(n)} has no outgoing flows but is not an EndEvent.`,
        nodeIds: [n.id]
      });
    }
    return issues;
  }
};
registerRule(rule_13_4_ZeroOutgoingMustBeEnd);
const rule_13_5_ZeroIncomingMustBeStartOrBoundary = {
  id: "13.5",
  description: "Nodes with zero incoming sequence flows must be StartEvent or BoundaryEvent",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const n of process.nodes) {
      if (getFlowIncoming(lookup, n.id).length !== 0) continue;
      const fam = getFamily(n.type);
      if (fam === "StartEvent" || fam === "BoundaryEvent") continue;
      issues.push({
        severity: "error",
        rule: "13.5",
        message: `${labelOf(n)} has no incoming flows but is neither a StartEvent nor a BoundaryEvent.`,
        nodeIds: [n.id]
      });
    }
    return issues;
  }
};
registerRule(rule_13_5_ZeroIncomingMustBeStartOrBoundary);
const rule_13_6_BackEdgesMustBeRecursive = {
  id: "13.6",
  description: "DFS back-edges must be flagged as recursive (data.isRecursive)",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    const WHITE = 0, GRAY = 1, BLACK = 2;
    const color = /* @__PURE__ */ new Map();
    for (const n of process.nodes) color.set(n.id, WHITE);
    const roots = [];
    for (const n of process.nodes) {
      if (isStartEvent(n)) roots.push(n.id);
    }
    for (const n of process.nodes) {
      if (!roots.includes(n.id)) roots.push(n.id);
    }
    const reported = /* @__PURE__ */ new Set();
    const visit = (id) => {
      var _a;
      color.set(id, GRAY);
      for (const e of getOutgoing(lookup, id)) {
        const target = e.target;
        const c = color.get(target) ?? WHITE;
        if (c === GRAY) {
          const isRecursive = !!((_a = e.data) == null ? void 0 : _a.isRecursive);
          if (!isRecursive && !reported.has(e.id)) {
            reported.add(e.id);
            issues.push({
              severity: "error",
              rule: "13.6",
              message: `Edge ${e.id} (${e.source} → ${e.target}) forms a cycle but is not flagged as recursive.`,
              edgeIds: [e.id]
            });
          }
        } else if (c === WHITE) {
          visit(target);
        }
      }
      color.set(id, BLACK);
    };
    for (const root of roots) {
      if (color.get(root) === WHITE) visit(root);
    }
    return issues;
  }
};
registerRule(rule_13_6_BackEdgesMustBeRecursive);
const rule_13_7_RecursiveEdgeMustFormCycle = {
  id: "13.7",
  description: "Every recursive-flagged edge must actually close a cycle back to its source",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const lookup = buildLookup(process);
    const issues = [];
    for (const e of process.edges) {
      if (!((_a = e.data) == null ? void 0 : _a.isRecursive)) continue;
      const visited = /* @__PURE__ */ new Set();
      const stack = [e.target];
      let reachedSource = false;
      while (stack.length) {
        const id = stack.pop();
        if (id === e.source) {
          reachedSource = true;
          break;
        }
        if (visited.has(id)) continue;
        visited.add(id);
        for (const out of getFlowOutgoing(lookup, id)) {
          if (!visited.has(out.target)) stack.push(out.target);
        }
      }
      if (!reachedSource) {
        issues.push({
          severity: "error",
          rule: "13.7",
          message: `Edge ${e.id} (${e.source} → ${e.target}) is flagged recursive but does not form a cycle — no forward path from target back to source.`,
          edgeIds: [e.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_13_7_RecursiveEdgeMustFormCycle);
const rule_13_8_ReachableLeadsToCompletion = {
  id: "13.8",
  description: "Every reachable node should lead to a terminal or intentional wait",
  scope: "process",
  run: (_ctx, process) => {
    if (!process) return [];
    const lookup = buildLookup(process);
    const reachable = collectReachable(process, lookup);
    const issues = [];
    const cache = /* @__PURE__ */ new Map();
    const boundariesByHost = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      if (!isBoundaryEvent(n)) continue;
      const host = n.parentNode;
      if (!host) continue;
      const list2 = boundariesByHost.get(host) ?? [];
      list2.push(n.id);
      boundariesByHost.set(host, list2);
    }
    const isIntentionalWait = (nodeId) => {
      const node = getNode(lookup, nodeId);
      if (!node) return false;
      if (getFamily(node.type) === "IntermediateCatching") return true;
      if (boundariesByHost.has(nodeId)) return true;
      return false;
    };
    const completes = (start) => {
      const cached = cache.get(start);
      if (cached !== void 0) return cached;
      const visited = /* @__PURE__ */ new Set();
      const stack = [start];
      let found = false;
      while (stack.length) {
        const id = stack.pop();
        if (visited.has(id)) continue;
        visited.add(id);
        const node = getNode(lookup, id);
        if (node && isEndEvent(node)) {
          found = true;
          break;
        }
        if (isIntentionalWait(id)) {
          found = true;
          break;
        }
        for (const e of getOutgoing(lookup, id)) {
          if (!visited.has(e.target)) stack.push(e.target);
        }
      }
      cache.set(start, found);
      return found;
    };
    for (const n of process.nodes) {
      if (!reachable.has(n.id)) continue;
      if (isBoundaryEvent(n)) continue;
      if (isEndEvent(n)) continue;
      if (!completes(n.id)) {
        issues.push({
          severity: "warning",
          rule: "13.8",
          message: `${labelOf(n)} has no forward path to a terminal or intentional wait.`,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_13_8_ReachableLeadsToCompletion);
const rule_14_1_RuleSetContent = {
  id: "14.1",
  description: "ServiceTask error-handling ruleset content (throw codes, retry on-exhausted, status tokens, backoff, predicates)",
  scope: "process",
  run: (_ctx, process) => {
    var _a;
    if (!process) return [];
    const issues = [];
    for (const n of process.nodes) {
      const eh = (_a = n.data) == null ? void 0 : _a.errorHandling;
      if (!eh) continue;
      const rules2 = getNodeRules(eh);
      for (const issue of validateRuleSet(rules2)) {
        issues.push({
          severity: issue.severity,
          rule: "14.1",
          message: `${labelOf(n)}: ${issue.ruleIndex >= 0 ? `rule ${issue.ruleIndex + 1} — ` : ""}${issue.message}`,
          processId: process.id,
          nodeIds: [n.id]
        });
      }
    }
    return issues;
  }
};
registerRule(rule_14_1_RuleSetContent);
const rule_14_2_RefIntegrity = {
  id: "14.2",
  description: "A node bound to a project ruleset ($ref) must resolve to an existing ruleset",
  scope: "diagram",
  run: (ctx) => {
    var _a, _b;
    const library = ctx.ruleSets;
    if (!library || library.length === 0) {
      const ids = /* @__PURE__ */ new Set();
      const issues2 = [];
      for (const proc of ctx.processes) {
        for (const n of proc.nodes) {
          const ref = getNodeRef((_a = n.data) == null ? void 0 : _a.errorHandling);
          if (ref && !ids.has(`${proc.id}:${n.id}`)) {
            issues2.push({
              severity: "error",
              rule: "14.2",
              message: `${labelOf(n)} binds to ruleset "${ref}" but no project ruleset library is loaded.`,
              processId: proc.id,
              nodeIds: [n.id]
            });
          }
        }
      }
      return issues2;
    }
    const known = new Set(library.map((r) => r.id));
    const issues = [];
    for (const proc of ctx.processes) {
      for (const n of proc.nodes) {
        const ref = getNodeRef((_b = n.data) == null ? void 0 : _b.errorHandling);
        if (ref && !known.has(ref)) {
          issues.push({
            severity: "error",
            rule: "14.2",
            message: `${labelOf(n)} binds to ruleset "${ref}" which no longer exists in the project.`,
            processId: proc.id,
            nodeIds: [n.id]
          });
        }
      }
    }
    return issues;
  }
};
registerRule(rule_14_2_RefIntegrity);
const rule_14_3_UnusedRuleSet = {
  id: "14.3",
  description: "A project ruleset referenced by zero nodes is dead weight",
  scope: "diagram",
  run: (ctx) => {
    var _a;
    const library = ctx.ruleSets;
    if (!library || library.length === 0) return [];
    const used = /* @__PURE__ */ new Set();
    for (const proc of ctx.processes) {
      for (const n of proc.nodes) {
        const ref = getNodeRef((_a = n.data) == null ? void 0 : _a.errorHandling);
        if (ref) used.add(ref);
      }
    }
    return library.filter((rs) => !used.has(rs.id)).map((rs) => ({
      severity: "warning",
      rule: "14.3",
      message: `Project ruleset «${rs.name}» is not referenced by any node.`
    }));
  }
};
registerRule(rule_14_3_UnusedRuleSet);
const rule_14_4_UncaughtThrow = {
  id: "14.4",
  description: "A ServiceTask ruleset throws an error code with no Error Boundary Event (catch-all or matching) to catch it",
  scope: "process",
  run: (_ctx, process) => {
    var _a, _b;
    if (!process) return [];
    const issues = [];
    const caughtByNode = /* @__PURE__ */ new Map();
    for (const n of process.nodes) {
      if (n.type !== "ErrorBoundaryEvent") continue;
      const parentId = n.parentNode;
      if (!parentId) continue;
      const entry = caughtByNode.get(parentId) || { catchAll: false, codes: /* @__PURE__ */ new Set() };
      const code = (((_a = n.data) == null ? void 0 : _a.exceptionType) ?? "").toString().trim();
      if (code === "") entry.catchAll = true;
      else entry.codes.add(code);
      caughtByNode.set(parentId, entry);
    }
    for (const n of process.nodes) {
      const eh = (_b = n.data) == null ? void 0 : _b.errorHandling;
      if (!eh) continue;
      const thrown = collectThrownCodes(getNodeRules(eh));
      if (thrown.length === 0) continue;
      const caught = caughtByNode.get(n.id);
      if (caught == null ? void 0 : caught.catchAll) continue;
      const uncaught = thrown.filter((code) => !(caught == null ? void 0 : caught.codes.has(code)));
      if (uncaught.length === 0) continue;
      issues.push({
        severity: "warning",
        rule: "14.4",
        message: `${labelOf(n)} can throw ${uncaught.map((c) => `"${c}"`).join(", ")} but no Error Boundary Event on it catches ${uncaught.length === 1 ? "it" : "them"} (add a matching or catch-all error boundary).`,
        processId: process.id,
        nodeIds: [n.id]
      });
    }
    return issues;
  }
};
registerRule(rule_14_4_UncaughtThrow);
const validateDiagram = (processes, ruleSets = []) => {
  var _a, _b;
  const ctx = { processes, ruleSets };
  const issues = [];
  for (const rule of getRules()) {
    try {
      if (rule.scope === "diagram") {
        issues.push(...rule.run(ctx));
      } else {
        for (const proc of processes) {
          const procIssues = rule.run(ctx, proc);
          procIssues.forEach((i) => {
            if (!i.processId) i.processId = proc.id;
          });
          issues.push(...procIssues);
        }
      }
    } catch (err) {
      if (typeof import.meta !== "undefined" && ((_b = (_a = import.meta) == null ? void 0 : _a.env) == null ? void 0 : _b.DEV) === true) {
        console.error(`[validation] Rule ${rule.id} threw:`, err);
      }
      issues.push({
        severity: "error",
        rule: rule.id,
        message: `Validation rule ${rule.id} crashed: ${err instanceof Error ? err.message : String(err)}`
      });
    }
  }
  return issues;
};
const hasBlockingErrors = (issues) => issues.some((i) => i.severity === "error");
const summarize = (issues) => ({
  errors: issues.filter((i) => i.severity === "error").length,
  warnings: issues.filter((i) => i.severity === "warning").length
});
const IS_DEV = typeof import.meta !== "undefined" && false;
const useFileOperations = (options) => {
  const {
    nodes,
    edges,
    processes,
    setProcesses,
    activeProcessId,
    setActiveProcessId,
    setNodes,
    setEdges,
    setIsLoading,
    swimlanes = [],
    setSwimlanes,
    ruleSets = [],
    setRuleSets
  } = options;
  const { fitView } = useReactFlow();
  const { addToast } = useToast();
  const [projectName, setProjectName] = useState("Peak_Workflow_Project");
  const [lastValidationIssues, setLastValidationIssues] = useState([]);
  const handleSaveProject = useCallback(async (options2) => {
    setIsLoading(true);
    try {
      const allProcesses = processes.map(
        (p) => p.id === activeProcessId ? { ...p, nodes, edges, swimlanes } : p
      );
      const issues = validateDiagram(allProcesses, ruleSets);
      setLastValidationIssues(issues);
      const { errors, warnings } = summarize(issues);
      if (hasBlockingErrors(issues) && !(options2 == null ? void 0 : options2.bypassValidation)) {
        if (IS_DEV) ;
        addToast({
          type: "error",
          title: "Save Blocked",
          message: `${errors} error${errors === 1 ? "" : "s"}${warnings ? ` + ${warnings} warning${warnings === 1 ? "" : "s"}` : ""} detected. Fix errors before saving.`
        });
        return { ok: false, issues };
      }
      saveProjectToFile(allProcesses, projectName, ruleSets);
      if (warnings > 0) {
        addToast({
          type: "warning",
          title: "Saved with Warnings",
          message: `Exported with ${warnings} warning${warnings === 1 ? "" : "s"}.`
        });
      } else {
        addToast({ type: "success", title: "Project Saved", message: "Workflow project exported successfully." });
      }
      return { ok: true, issues };
    } catch (error) {
      const message = error instanceof Error ? error.message : "Could not export project.";
      addToast({ type: "error", title: "Save Failed", message });
      return { ok: false, issues: [] };
    } finally {
      setIsLoading(false);
    }
  }, [nodes, edges, swimlanes, processes, activeProcessId, projectName, ruleSets, addToast, setIsLoading]);
  const handleLoadProject = useCallback(async (file) => {
    const name = file.name.toLowerCase();
    const isPss = name.endsWith(".bpjs") || name.endsWith(".json");
    const isBpmn = name.endsWith(".bpmn");
    const isXml = name.endsWith(".xml");
    if (!isPss && !isBpmn && !isXml) {
      addToast({ type: "error", title: "Invalid File Type", message: "Supported formats: .bpjs, .json, .bpmn, .xml" });
      return;
    }
    const MAX_SIZE_MB = 10;
    if (file.size > MAX_SIZE_MB * BYTES_PER_MB) {
      addToast({ type: "error", title: "File Too Large", message: `File exceeds ${MAX_SIZE_MB}MB limit.` });
      return;
    }
    setIsLoading(true);
    try {
      let loadedProcesses;
      if (isPss) {
        const { processes: loaded, ruleSets: loadedRuleSets } = await loadProjectWithRuleSets(file);
        loadedProcesses = loaded;
        if (setRuleSets) setRuleSets(loadedRuleSets);
      } else {
        const text = await file.text();
        if (isXml && !detectBpmnFormat(text)) {
          addToast({ type: "error", title: "Invalid File", message: "XML file does not appear to be a BPMN 2.0 document." });
          return;
        }
        const { processes: processes2, warnings } = importBpmnXml(text);
        loadedProcesses = processes2;
        if (warnings.length > 0 && IS_DEV) ;
      }
      if (!loadedProcesses || loadedProcesses.length === 0) {
        addToast({ type: "error", title: "Import Failed", message: "No valid processes found in file." });
        return;
      }
      const nameWithoutExt = file.name.replace(/\.[^.]+$/, "");
      setProjectName(nameWithoutExt);
      setProcesses(loadedProcesses);
      const firstProc = loadedProcesses[0];
      setNodes(firstProc.nodes);
      setEdges(firstProc.edges);
      if (setSwimlanes) setSwimlanes(firstProc.swimlanes || []);
      setActiveProcessId(firstProc.id);
      setTimeout(() => fitView(), 100);
      addToast({ type: "success", title: "Project Loaded", message: `Successfully loaded ${loadedProcesses.length} process(es).` });
    } catch (error) {
      const message = error instanceof Error ? error.message : "Failed to load project file.";
      console.error("Failed to load project:", error);
      addToast({ type: "error", title: "Import Error", message });
      return;
    } finally {
      setIsLoading(false);
    }
  }, [setNodes, setEdges, setProcesses, setActiveProcessId, fitView, addToast, setIsLoading, setSwimlanes, setRuleSets]);
  return {
    handleSaveProject,
    handleLoadProject,
    projectName,
    validationIssues: lastValidationIssues
  };
};
const useNodeOperations = (nodes, setNodes, setEdges, swimlanes = []) => {
  const { screenToFlowPosition } = useReactFlow();
  const [selectedNodeId, setSelectedNodeId] = useState(null);
  const [isModalOpen, setIsModalOpen] = useState(false);
  const [activeTabId, setActiveTabId] = useState("properties");
  const lastHoveredNodeId = useRef(null);
  const isHighlightingPotentialTargets = useRef(false);
  const selectedNode = useMemo(() => {
    if (!nodes || !Array.isArray(nodes)) return null;
    return nodes.find((n) => n.id === selectedNodeId) || null;
  }, [nodes, selectedNodeId]);
  const setSelectedNode = useCallback((node) => {
    setSelectedNodeId(node ? node.id : null);
  }, []);
  const openModalAtTab = useCallback((nodeId, tabId = "properties") => {
    setSelectedNodeId(nodeId);
    setActiveTabId(tabId);
    setIsModalOpen(true);
  }, []);
  const renameNode = useCallback((oldId, newId) => {
    if (!newId || newId === oldId) return;
    setNodes((nds) => nds.map((n) => {
      if (n.id === oldId) return { ...n, id: newId };
      if (n.parentNode === oldId) return { ...n, parentNode: newId };
      return n;
    }));
    setEdges((eds) => eds.map((e) => {
      let source = e.source;
      let target = e.target;
      if (source === oldId) source = newId;
      if (target === oldId) target = newId;
      return { ...e, source, target };
    }));
    if (selectedNodeId === oldId) {
      setSelectedNodeId(newId);
    }
  }, [selectedNodeId, setNodes, setEdges]);
  const clearHighlights = useCallback(() => {
    setNodes((nds) => nds.map((n) => {
      if (n.data.isBoundaryCandidate || n.data.isPotentialBoundaryTarget) {
        return {
          ...n,
          data: {
            ...n.data,
            isBoundaryCandidate: false,
            isPotentialBoundaryTarget: false
          }
        };
      }
      return n;
    }));
    lastHoveredNodeId.current = null;
    isHighlightingPotentialTargets.current = false;
  }, [setNodes]);
  const onDragOver = useCallback((event) => {
    event.preventDefault();
    event.dataTransfer.dropEffect = "move";
    const type = window.__draggingNodeType;
    if (!type) return;
    const config = getNodeTypes()[type];
    const isBoundary = (config == null ? void 0 : config.category) === NodeCategory.Boundary;
    if (isBoundary) {
      if (!isHighlightingPotentialTargets.current) {
        isHighlightingPotentialTargets.current = true;
        setNodes((nds) => nds.map((n) => {
          const targetConfig = getNodeTypes()[n.type || ""];
          const isEligible = targetConfig && (targetConfig.category === NodeCategory.Task || targetConfig.category === NodeCategory.Activity);
          if (isEligible) {
            return { ...n, data: { ...n.data, isPotentialBoundaryTarget: true } };
          }
          return n;
        }));
      }
      const target = event.target;
      const nodeElement = target.closest(".react-flow__node");
      const targetNodeId = nodeElement == null ? void 0 : nodeElement.getAttribute("data-id");
      if (targetNodeId && targetNodeId !== lastHoveredNodeId.current) {
        const targetNode = nodes.find((n) => n.id === targetNodeId);
        const targetConfig = targetNode ? getNodeTypes()[targetNode.type || ""] : null;
        const isEligible = targetConfig && (targetConfig.category === NodeCategory.Task || targetConfig.category === NodeCategory.Activity);
        if (isEligible) {
          setNodes((nds) => nds.map((n) => {
            if (n.id === lastHoveredNodeId.current) {
              return { ...n, data: { ...n.data, isBoundaryCandidate: false } };
            }
            if (n.id === targetNodeId) {
              return { ...n, data: { ...n.data, isBoundaryCandidate: true } };
            }
            return n;
          }));
          lastHoveredNodeId.current = targetNodeId;
        } else {
          if (lastHoveredNodeId.current) {
            setNodes((nds) => nds.map(
              (n) => n.id === lastHoveredNodeId.current ? { ...n, data: { ...n.data, isBoundaryCandidate: false } } : n
            ));
            lastHoveredNodeId.current = null;
          }
        }
      } else if (!targetNodeId && lastHoveredNodeId.current) {
        setNodes((nds) => nds.map(
          (n) => n.id === lastHoveredNodeId.current ? { ...n, data: { ...n.data, isBoundaryCandidate: false } } : n
        ));
        lastHoveredNodeId.current = null;
      }
    }
  }, [nodes, setNodes]);
  const onDrop = useCallback(
    (event) => {
      event.preventDefault();
      const type = event.dataTransfer.getData("application/reactflow");
      if (typeof type === "undefined" || !type) {
        clearHighlights();
        return;
      }
      const position = screenToFlowPosition({
        x: event.clientX,
        y: event.clientY
      });
      const config = getNodeTypes()[type];
      const isBoundary = (config == null ? void 0 : config.category) === NodeCategory.Boundary;
      const target = event.target;
      const nodeElement = target.closest(".react-flow__node");
      const targetNodeId = nodeElement == null ? void 0 : nodeElement.getAttribute("data-id");
      const targetNode = nodes.find((n) => n.id === targetNodeId);
      const targetConfig = targetNode ? getNodeTypes()[targetNode.type || ""] : null;
      if (isBoundary) {
        const isEligible = targetNode && ((targetConfig == null ? void 0 : targetConfig.category) === NodeCategory.Task || (targetConfig == null ? void 0 : targetConfig.category) === NodeCategory.Activity);
        if (!isEligible) {
          clearHighlights();
          return;
        }
        const relativeX = 110 - 28;
        const relativeY = 64;
        const boundaryNodeId = `node_${Date.now()}`;
        const newBoundaryNode = {
          id: boundaryNodeId,
          type,
          position: { x: relativeX, y: relativeY },
          parentNode: targetNodeId,
          zIndex: 2e3,
          data: {
            label: (config == null ? void 0 : config.label) || type,
            status: "idle",
            cancelActivity: true
          }
          // Crucial: do not set extent: 'parent' so it is not clipped/confined
        };
        setNodes((nds) => nds.concat(newBoundaryNode));
        const edgeId = `e_assoc_${targetNodeId}_${boundaryNodeId}`;
        setEdges((eds) => [
          ...eds,
          {
            id: edgeId,
            source: targetNodeId,
            target: boundaryNodeId,
            sourceHandle: "boundary",
            targetHandle: null,
            type: "default",
            animated: false,
            style: { stroke: DEFAULT_EDGE_STROKE$1 }
          }
        ]);
        clearHighlights();
        return;
      }
      if (config) {
        const width = 220;
        const height = 64;
        position.x -= width / 2;
        position.y -= height / 2;
      }
      const initialData = {
        label: (config == null ? void 0 : config.label) || type,
        status: "idle"
      };
      const defaults = getDefaultData(type);
      if (defaults) Object.assign(initialData, defaults);
      const centerX = position.x + 110;
      const centerY = position.y + 32;
      const lane = swimlaneAtPoint(centerX, centerY, swimlanes);
      initialData.actorType = lane ? lane.name : "Actor";
      const newNode = {
        id: `node_${Date.now()}`,
        type,
        position,
        data: initialData
      };
      setNodes((nds) => nds.concat(newNode));
      if (type === "UserTask") {
        const boundaryNodeId = `node_${Date.now() + 1}`;
        const newBoundaryNode = {
          id: boundaryNodeId,
          type: "ErrorBoundaryEvent",
          position: { x: 110 - 28, y: 64 },
          parentNode: newNode.id,
          zIndex: 2e3,
          data: {
            label: "Task Rejected",
            errorMessage: "UserTaskRejected",
            cancelActivity: true,
            status: "idle"
          }
        };
        setNodes((nds) => nds.concat(newBoundaryNode));
        const edgeId = `e_assoc_${newNode.id}_${boundaryNodeId}`;
        setEdges((eds) => [
          ...eds,
          {
            id: edgeId,
            source: newNode.id,
            target: boundaryNodeId,
            sourceHandle: "boundary",
            targetHandle: null,
            type: "default",
            animated: false,
            style: { stroke: DEFAULT_EDGE_STROKE$1 }
          }
        ]);
      }
      clearHighlights();
    },
    [setNodes, setEdges, screenToFlowPosition, nodes, clearHighlights, swimlanes]
  );
  const onNodeDragStop = useCallback((_, node, draggedNodes) => {
    const batch = draggedNodes && draggedNodes.length > 0 ? draggedNodes : [node];
    const assignments = /* @__PURE__ */ new Map();
    for (const n of batch) {
      if (n.parentNode) continue;
      const halfW = (n.width ?? 220) / 2;
      const halfH = (n.height ?? 64) / 2;
      const lane = swimlaneAtPoint(n.position.x + halfW, n.position.y + halfH, swimlanes);
      if (!lane) continue;
      assignments.set(n.id, lane.name);
    }
    if (assignments.size === 0) return;
    setNodes((nds) => nds.map((n) => {
      const target = assignments.get(n.id);
      if (!target) return n;
      if (n.data.actorType === target) return n;
      return { ...n, data: { ...n.data, actorType: target } };
    }));
  }, [swimlanes, setNodes]);
  const onNodeClick = useCallback((_, node) => {
    setSelectedNodeId(node.id);
  }, []);
  const onPaneClick = useCallback(() => {
    setSelectedNodeId(null);
  }, []);
  const onNodeDoubleClick = useCallback((_, node) => {
    setSelectedNodeId(node.id);
    setActiveTabId("properties");
    setIsModalOpen(true);
  }, []);
  const onNodeContextMenu = useCallback((event, node) => {
    event.preventDefault();
    setNodes(
      (nds) => nds.map((n) => {
        if (n.id === node.id) {
          const hasBreakpoint = !n.data.hasBreakpoint;
          return { ...n, data: { ...n.data, hasBreakpoint } };
        }
        return n;
      })
    );
  }, [setNodes]);
  const updateNodeData = useCallback((id, newData) => {
    setNodes((nds) => {
      const currentNode = nds.find((n) => n.id === id);
      if ((currentNode == null ? void 0 : currentNode.type) === "UserTask" && "userTaskRejectable" in newData) {
        const oldValue = currentNode.data.userTaskRejectable ?? true;
        const newValue = newData.userTaskRejectable ?? true;
        if (oldValue !== newValue) {
          if (newValue) {
            const alreadyExists = nds.some(
              (n) => n.parentNode === id && n.type === "ErrorBoundaryEvent" && n.data.errorMessage === "UserTaskRejected"
            );
            if (!alreadyExists) {
              const boundaryNodeId = `node_${Date.now()}`;
              const relativeX = 110 - 28;
              const relativeY = 64;
              const newBoundaryNode = {
                id: boundaryNodeId,
                type: "ErrorBoundaryEvent",
                position: { x: relativeX, y: relativeY },
                parentNode: id,
                zIndex: 2e3,
                data: {
                  label: "Task Rejected",
                  errorMessage: "UserTaskRejected",
                  cancelActivity: true,
                  status: "idle"
                }
              };
              nds = [...nds, newBoundaryNode];
              const edgeId = `e_assoc_${id}_${boundaryNodeId}`;
              setEdges((eds) => [
                ...eds,
                {
                  id: edgeId,
                  source: id,
                  target: boundaryNodeId,
                  sourceHandle: "boundary",
                  targetHandle: null,
                  type: "default",
                  animated: false,
                  style: { stroke: DEFAULT_EDGE_STROKE$1 }
                }
              ]);
            }
          } else {
            const toRemove = new Set(
              nds.filter((n) => n.parentNode === id && n.type === "ErrorBoundaryEvent" && n.data.errorMessage === "UserTaskRejected").map((n) => n.id)
            );
            if (toRemove.size > 0) {
              nds = nds.filter((n) => !toRemove.has(n.id));
              setEdges((eds) => eds.filter((e) => !toRemove.has(e.source) && !toRemove.has(e.target)));
            }
          }
        }
      }
      return nds.map((node) => {
        if (node.id === id) {
          const updatedNode = { ...node, data: { ...node.data, ...newData } };
          if (newData.outputs && Array.isArray(newData.outputs)) {
            const oldOutputs = node.data.outputs || [];
            setEdges((currentEdges) => currentEdges.map((edge) => {
              if (edge.source !== id) return edge;
              if (edge.sourceHandle && edge.sourceHandle !== "boundary") {
                const index2 = parseInt(edge.sourceHandle);
                if (!isNaN(index2) && newData.outputs[index2]) {
                  return { ...edge, label: newData.outputs[index2] };
                }
              }
              if (edge.label && typeof edge.label === "string") {
                const oldIndex = oldOutputs.indexOf(edge.label);
                if (oldIndex >= 0 && newData.outputs[oldIndex]) {
                  return { ...edge, label: newData.outputs[oldIndex] };
                }
              }
              return edge;
            }));
          }
          return updatedNode;
        }
        return node;
      });
    });
  }, [setNodes, setEdges]);
  return {
    selectedNode,
    setSelectedNode,
    isModalOpen,
    setIsModalOpen,
    activeTabId,
    setActiveTabId,
    openModalAtTab,
    onDragOver,
    onDrop,
    onNodeClick,
    onPaneClick,
    onNodeDoubleClick,
    onNodeContextMenu,
    onNodeDragStop,
    updateNodeData,
    clearHighlights,
    renameNode
  };
};
const useEdgeOperations = (nodes, setNodes, setEdges) => {
  const connectingNodeId = useRef(null);
  const connectingHandleId = useRef(null);
  const resolveGatewayLabel = useCallback((sourceId, sourceHandle) => {
    var _a;
    if (!sourceId || !sourceHandle) return "";
    const sourceNode = nodes.find((n) => n.id === sourceId);
    if (!sourceNode) return "";
    const outputs = (_a = sourceNode.data) == null ? void 0 : _a.outputs;
    if (!Array.isArray(outputs)) return "";
    const handleIdx = parseInt(sourceHandle, 10);
    if (isNaN(handleIdx) || handleIdx < 0 || handleIdx >= outputs.length) return "";
    return outputs[handleIdx] || "";
  }, [nodes]);
  const onConnect = useCallback(
    (params) => setEdges((eds) => {
      const label = resolveGatewayLabel(params.source, params.sourceHandle);
      const animated = params.sourceHandle !== "boundary";
      const style = { stroke: DEFAULT_EDGE_STROKE$1 };
      return addEdge({
        ...params,
        type: "deletable",
        animated,
        label,
        style
      }, eds);
    }),
    [setEdges, resolveGatewayLabel]
  );
  const onConnectStart = useCallback((_, { nodeId, handleId }) => {
    connectingNodeId.current = nodeId;
    connectingHandleId.current = handleId;
    setNodes((nds) => nds.map((node) => {
      if (node.id === nodeId) return node;
      return {
        ...node,
        data: {
          ...node.data,
          isConnectableTarget: true
        }
      };
    }));
  }, [setNodes]);
  const onConnectEnd = useCallback((event) => {
    const target = event.target;
    const targetNodeElement = target.closest(".react-flow__node");
    const isHandle = target.classList.contains("react-flow__handle");
    if (targetNodeElement && !isHandle && connectingNodeId.current) {
      const targetNodeId = targetNodeElement.getAttribute("data-id");
      if (targetNodeId && targetNodeId !== connectingNodeId.current) {
        const label = resolveGatewayLabel(connectingNodeId.current, connectingHandleId.current);
        const animated = connectingHandleId.current !== "boundary";
        const newEdge = {
          id: `e-${connectingNodeId.current}-${targetNodeId}-${Date.now()}`,
          source: connectingNodeId.current,
          target: targetNodeId,
          sourceHandle: connectingHandleId.current,
          type: "deletable",
          animated,
          label,
          style: { stroke: DEFAULT_EDGE_STROKE$1 }
        };
        setEdges((eds) => addEdge(newEdge, eds));
      }
    }
    setNodes((nds) => nds.map((n) => {
      if (!n.data.isConnectableTarget) return n;
      const { isConnectableTarget, ...rest } = n.data;
      return { ...n, data: rest };
    }));
    connectingNodeId.current = null;
    connectingHandleId.current = null;
  }, [setNodes, setEdges, resolveGatewayLabel]);
  return {
    onConnect,
    onConnectStart,
    onConnectEnd
  };
};
const AUTOSAVE_KEY = "peak_workflow_autosave";
const DEBOUNCE_MS = 2e3;
const useAutoSave = (processes, activeProcessId, nodes, edges, onAutoSave) => {
  const [isSaving, setIsSaving] = useState(false);
  const [lastSaved, setLastSaved] = useState(null);
  const timeoutRef = useRef(null);
  const initialMount = useRef(true);
  const performSave = useCallback(() => {
    try {
      const currentSnapshot = processes.map(
        (p) => p.id === activeProcessId ? { ...p, nodes, edges } : p
      );
      const payload = {
        version: 1,
        timestamp: Date.now(),
        activeProcessId,
        processes: currentSnapshot
      };
      localStorage.setItem(AUTOSAVE_KEY, JSON.stringify(payload));
      if (onAutoSave) {
        onAutoSave(payload);
      }
      setLastSaved(/* @__PURE__ */ new Date());
      setIsSaving(false);
    } catch (e) {
      console.error("Auto-save failed", e);
      setIsSaving(false);
      return;
    }
  }, [processes, activeProcessId, nodes, edges, onAutoSave]);
  useEffect(() => {
    if (initialMount.current) {
      initialMount.current = false;
      return;
    }
    if (timeoutRef.current) clearTimeout(timeoutRef.current);
    setIsSaving(true);
    timeoutRef.current = setTimeout(performSave, DEBOUNCE_MS);
    return () => {
      if (timeoutRef.current) clearTimeout(timeoutRef.current);
    };
  }, [processes, activeProcessId, nodes, edges, performSave]);
  return { isSaving, lastSaved };
};
const filterToActiveProcess = (all, activeProcessId) => (
  // Show issues tied to the active process plus diagram-wide issues that
  // have no processId set — cross-process issues still belong to the
  // current view because they reflect the whole file.
  all.filter((i) => !i.processId || i.processId === activeProcessId)
);
const useValidation = ({
  processes,
  activeProcessId,
  nodes,
  edges,
  swimlanes,
  ruleSets,
  debounceMs = 400
}) => {
  const [allIssues, setAllIssues] = useState([]);
  const [isValidating, setIsValidating] = useState(false);
  const timerRef = useRef(null);
  const mergedProcesses = useMemo(
    () => processes.map((p) => p.id === activeProcessId ? { ...p, nodes, edges, swimlanes: swimlanes ?? p.swimlanes } : p),
    [processes, activeProcessId, nodes, edges, swimlanes]
  );
  const run = useMemo(
    () => () => {
      setIsValidating(true);
      try {
        const next = validateDiagram(mergedProcesses, ruleSets);
        setAllIssues(next);
      } catch (err) {
        console.error("[useValidation] validation crashed:", err);
        setAllIssues([]);
      } finally {
        setIsValidating(false);
      }
    },
    [mergedProcesses, ruleSets]
  );
  useEffect(() => {
    if (timerRef.current !== null) window.clearTimeout(timerRef.current);
    timerRef.current = window.setTimeout(run, debounceMs);
    return () => {
      if (timerRef.current !== null) window.clearTimeout(timerRef.current);
    };
  }, [run, debounceMs]);
  const issues = useMemo(() => filterToActiveProcess(allIssues, activeProcessId), [allIssues, activeProcessId]);
  const { errors, warnings } = useMemo(() => summarize(issues), [issues]);
  const processCounts = useMemo(() => {
    const map = {};
    for (const p of processes) map[p.id] = { errors: 0, warnings: 0 };
    for (const i of allIssues) {
      const targets = i.processId ? [i.processId] : processes.map((p) => p.id);
      for (const id of targets) {
        if (!map[id]) map[id] = { errors: 0, warnings: 0 };
        if (i.severity === "error") map[id].errors++;
        else map[id].warnings++;
      }
    }
    return map;
  }, [allIssues, processes]);
  return { issues, allIssues, errors, warnings, processCounts, isValidating, revalidate: run };
};
const MAX_RETURN_OBJECT_SCAN_CHARS = 2e3;
const defaultForType = (type) => {
  switch (type) {
    case "number":
      return 123;
    case "boolean":
      return true;
    case "date":
      return "2025-01-15";
    case "time":
      return "14:30:00";
    case "datetime":
      return "2025-01-15T14:30:00";
    case "email":
      return "user@example.com";
    case "guid":
    case "uuid":
      return "00000000-0000-0000-0000-000000000000";
    case "select":
      return "option1";
    case "checkbox":
      return true;
    case "textarea":
      return "Sample text...";
    default:
      return "sample";
  }
};
const parseExampleResponse = (exampleResponse) => {
  if (exampleResponse === null || exampleResponse === void 0) return void 0;
  if (typeof exampleResponse === "string") {
    try {
      return JSON.parse(exampleResponse);
    } catch (e) {
      return void 0;
    }
  }
  return exampleResponse;
};
const analyzeScriptReturns = (script) => {
  if (!script || typeof script !== "string") return [];
  const variables = /* @__PURE__ */ new Set();
  const cleanScript = script.replace(/\/\/.*$/gm, "").replace(/\/\*[\s\S]*?\*\//g, "");
  const returnIndices = [...cleanScript.matchAll(/return\s*\{/g)].map((m) => m.index);
  for (const startIndex of returnIndices) {
    let braceLevel = 0;
    let objectContent = "";
    let foundStart = false;
    let i = startIndex;
    while (i < cleanScript.length && i < startIndex + MAX_RETURN_OBJECT_SCAN_CHARS) {
      const char = cleanScript[i];
      if (char === "{") {
        if (!foundStart) foundStart = true;
        braceLevel++;
      } else if (char === "}") {
        braceLevel--;
      }
      if (foundStart) {
        objectContent += char;
        if (braceLevel === 0) break;
      }
      i++;
    }
    const keyMatches = objectContent.matchAll(/(?:[{,]\s*)(?:["']?)([\w$]+)(?:["']?)\s*(?::|,|\})/g);
    for (const match of keyMatches) {
      if (match[1]) {
        variables.add(match[1]);
      }
    }
  }
  return Array.from(variables);
};
const getAvailableVariables = (nodes, edges, targetNodeId) => {
  const variables = [];
  const systemVars = [
    { name: "timestamp", type: "number", sourceNodeId: "system", sourceNodeLabel: "System", description: "sys.timestamp – Current execution timestamp (ms)", example: Date.now() },
    { name: "processId", type: "string", sourceNodeId: "system", sourceNodeLabel: "System", description: "sys.processId – Process Instance ID", example: "proc_123" },
    { name: "nodeId", type: "string", sourceNodeId: "system", sourceNodeLabel: "System", description: "sys.nodeId – Current Node ID", example: targetNodeId }
  ];
  variables.push(...systemVars);
  if (!nodes || nodes.length === 0) {
    return variables;
  }
  const visited = /* @__PURE__ */ new Set();
  const queue = [targetNodeId];
  const ancestors = /* @__PURE__ */ new Set();
  const reverseAdjacency = {};
  edges.forEach((edge) => {
    if (!reverseAdjacency[edge.target]) reverseAdjacency[edge.target] = [];
    reverseAdjacency[edge.target].push(edge.source);
  });
  while (queue.length > 0) {
    const currentId = queue.shift();
    if (currentId !== targetNodeId) {
      ancestors.add(currentId);
    }
    const parents = reverseAdjacency[currentId] || [];
    parents.forEach((parentId) => {
      if (!visited.has(parentId)) {
        visited.add(parentId);
        queue.push(parentId);
      }
    });
  }
  nodes.forEach((node) => {
    var _a;
    if (!ancestors.has(node.id)) return;
    const extract = (name, type, desc, example) => {
      if (!name) return;
      const existingIdx = variables.findIndex((v) => v.name === name);
      const def = {
        name,
        type,
        sourceNodeId: node.id,
        sourceNodeLabel: node.data.label || node.id,
        description: desc,
        example
      };
      if (existingIdx >= 0) {
        variables[existingIdx] = def;
      } else {
        variables.push(def);
      }
    };
    if ((_a = node.data.formSchema) == null ? void 0 : _a.fields) {
      node.data.formSchema.fields.forEach((field) => {
        if (field.key) {
          extract(field.key, field.type || "string", `Form field: ${field.label}`, defaultForType(field.type));
        }
      });
    }
    if (node.type === "MessageStartEvent" && node.data.messagePayload) {
      extract("messagePayload", "json", "Incoming message body", node.data.messagePayload);
      try {
        const payload = typeof node.data.messagePayload === "string" ? JSON.parse(node.data.messagePayload) : node.data.messagePayload;
        if (payload && typeof payload === "object") {
          Object.keys(payload).forEach((key) => {
            extract(key, typeof payload[key], "Message Payload Property", payload[key]);
          });
        }
      } catch (_e) {
      }
    }
    if (node.type === "ServiceTaskREST" && node.data.resultVariable) {
      const example = parseExampleResponse(node.data.exampleResponse) ?? { status: 200, data: {} };
      extract(node.data.resultVariable, "json", "API Response", example);
    }
    if (node.type === "ServiceTaskDB" && node.data.resultVariable) {
      const example = parseExampleResponse(node.data.exampleResponse) ?? [{ id: 1 }];
      extract(node.data.resultVariable, "array", "Database Query Result", example);
    }
    if (node.type === "ServiceTaskLLM" && node.data.outputVariable) {
      extract(node.data.outputVariable, "string", "AI Generated Content", "Sample AI response...");
    }
    if (node.type === "ServiceTaskMCP" && node.data.resultVariable) {
      const example = parseExampleResponse(node.data.exampleResponse) ?? { content: "Sample data" };
      extract(node.data.resultVariable, "any", "MCP Operation Result", example);
    }
    if (node.type === "ServiceTaskRules") {
      if (node.data.resultVariable) {
        extract(node.data.resultVariable, "object", "Decision Result Wrapper", { score: 100 });
      }
      if (node.data._outputSchema && Array.isArray(node.data._outputSchema)) {
        node.data._outputSchema.forEach((out) => {
          extract(out.name, out.type, `Decision Output (${node.data.decisionFile})`);
        });
      }
    }
    if (node.type === "CallActivity" && node.data.resultVariable) {
      extract(node.data.resultVariable, "object", "Call Activity Result", {});
    }
    if (node.type === "SubProcess" && node.data.resultVariable) {
      extract(node.data.resultVariable, "object", "Sub Process Result", {});
    }
    if (Array.isArray(node.data.extractionRules) && node.data.extractionRules.length > 0) {
      const rawResultVar = node.data.resultVariable || node.data.outputVariable;
      const resultVar = typeof rawResultVar === "string" ? rawResultVar.trim() : "";
      if (resultVar) {
        const nestedExample = {};
        node.data.extractionRules.forEach((rule) => {
          if (rule.targetVar) {
            nestedExample[rule.targetVar] = "Extracted Value";
          }
        });
        extract(resultVar, "object", `Result of ${node.data.label ?? node.type ?? "Service Task"}`, nestedExample);
      } else {
        node.data.extractionRules.forEach((rule) => {
          if (rule.targetVar) {
            extract(rule.targetVar, rule.type || "auto", `Extracted from ${rule.source}`, "Extracted Value");
          }
        });
      }
    }
    if (node.type === "ScriptTask") {
      if (Array.isArray(node.data.outputVariables)) {
        node.data.outputVariables.forEach((varName) => {
          extract(varName, "unknown", "Explicitly defined script output");
        });
      }
      if (node.data.script) {
        const detectedVars = analyzeScriptReturns(node.data.script);
        detectedVars.forEach((varName) => {
          const existing = variables.find((v) => v.name === varName && v.sourceNodeId === node.id);
          if (!existing) {
            extract(varName, "unknown", "Auto-detected from script return");
          }
        });
      }
    }
  });
  return variables;
};
const SINGLE_LANE_PADDING_X = 80;
const SINGLE_LANE_PADDING_Y = 60;
const SINGLE_LANE_NODE_WIDTH = 220;
const SINGLE_LANE_NODE_HEIGHT = 100;
const SINGLE_LANE_BOUNDARY_SIZE = 56;
const SINGLE_LANE_BOUNDARY_LABEL_HEIGHT = 20;
const estimateInitialNodeSize = (node) => {
  var _a;
  if ((_a = node == null ? void 0 : node.type) == null ? void 0 : _a.endsWith("BoundaryEvent")) {
    return {
      width: SINGLE_LANE_BOUNDARY_SIZE,
      height: SINGLE_LANE_BOUNDARY_SIZE + SINGLE_LANE_BOUNDARY_LABEL_HEIGHT
    };
  }
  return {
    width: SINGLE_LANE_NODE_WIDTH,
    height: SINGLE_LANE_NODE_HEIGHT
  };
};
const inferLaneBoundsFromNodes = (nodes) => {
  if (!Array.isArray(nodes) || nodes.length === 0) {
    return {
      x: 0,
      y: 0,
      width: DEFAULT_LANE_WIDTH,
      height: DEFAULT_LANE_HEIGHT
    };
  }
  const nodeById = new Map(nodes.map((node) => [node.id, node]));
  const absolutePositionCache = /* @__PURE__ */ new Map();
  const getAbsolutePosition = (node) => {
    var _a, _b;
    const cached = absolutePositionCache.get(node.id);
    if (cached) return cached;
    const own = {
      x: Number((_a = node == null ? void 0 : node.position) == null ? void 0 : _a.x) || 0,
      y: Number((_b = node == null ? void 0 : node.position) == null ? void 0 : _b.y) || 0
    };
    if (!(node == null ? void 0 : node.parentNode)) {
      absolutePositionCache.set(node.id, own);
      return own;
    }
    const parent = nodeById.get(node.parentNode);
    if (!parent) {
      absolutePositionCache.set(node.id, own);
      return own;
    }
    const parentAbs = getAbsolutePosition(parent);
    const absolute = {
      x: parentAbs.x + own.x,
      y: parentAbs.y + own.y
    };
    absolutePositionCache.set(node.id, absolute);
    return absolute;
  };
  let minX = Number.POSITIVE_INFINITY;
  let minY = Number.POSITIVE_INFINITY;
  let maxX = Number.NEGATIVE_INFINITY;
  let maxY = Number.NEGATIVE_INFINITY;
  nodes.forEach((node) => {
    const position = getAbsolutePosition(node);
    const size = estimateInitialNodeSize(node);
    minX = Math.min(minX, position.x);
    minY = Math.min(minY, position.y);
    maxX = Math.max(maxX, position.x + size.width);
    maxY = Math.max(maxY, position.y + size.height);
  });
  return {
    x: minX - SINGLE_LANE_PADDING_X,
    y: minY - SINGLE_LANE_PADDING_Y,
    width: Math.max(DEFAULT_LANE_WIDTH, maxX - minX + SINGLE_LANE_PADDING_X * 2),
    height: Math.max(DEFAULT_LANE_HEIGHT, maxY - minY + SINGLE_LANE_PADDING_Y * 2)
  };
};
const useWorkflowEditor = ({ initialData, initialRuleSets, onAutoSave } = {}) => {
  const startingProcess = initialData && initialData.length > 0 ? initialData[0] : { id: "proc_1", name: "New Process", nodes: [], edges: [] };
  const initialProcessClone = JSON.parse(JSON.stringify(startingProcess));
  const clonedNodes = initialProcessClone.nodes || initialProcessClone.Nodes || [];
  const clonedSwimlanes = initialProcessClone.swimlanes;
  const actorNames = /* @__PURE__ */ new Set();
  clonedNodes.forEach((node) => {
    var _a;
    const actorType = (_a = node == null ? void 0 : node.data) == null ? void 0 : _a.actorType;
    if (typeof actorType === "string" && actorType.trim()) {
      actorNames.add(actorType.trim());
    }
  });
  if (Array.isArray(clonedSwimlanes)) {
    clonedSwimlanes.forEach((lane) => {
      if (typeof (lane == null ? void 0 : lane.name) === "string" && lane.name.trim()) {
        actorNames.add(lane.name.trim());
      }
    });
  }
  if (actorNames.size === 1) {
    const [actorName] = Array.from(actorNames);
    initialProcessClone.nodes = clonedNodes.map((node) => ({
      ...node,
      data: {
        ...node.data,
        actorType: actorName
      }
    }));
    const bounds = inferLaneBoundsFromNodes(initialProcessClone.nodes);
    if (Array.isArray(clonedSwimlanes) && clonedSwimlanes.length === 1) {
      const [lane] = clonedSwimlanes;
      const hasExplicitGeometry = Number.isFinite(Number(lane == null ? void 0 : lane.x)) && Number.isFinite(Number(lane == null ? void 0 : lane.y)) && Number.isFinite(Number(lane == null ? void 0 : lane.width)) && Number.isFinite(Number(lane == null ? void 0 : lane.height));
      initialProcessClone.swimlanes = [{
        ...lane,
        name: actorName,
        x: hasExplicitGeometry ? Number(lane.x) : bounds.x,
        y: hasExplicitGeometry ? Number(lane.y) : bounds.y,
        width: hasExplicitGeometry ? Number(lane.width) : bounds.width,
        height: hasExplicitGeometry ? Number(lane.height) : bounds.height,
        color: (lane == null ? void 0 : lane.color) || DEFAULT_LANE_COLOR
      }];
    } else {
      initialProcessClone.swimlanes = [{
        id: `lane_${Date.now()}_0`,
        name: actorName,
        x: bounds.x,
        y: bounds.y,
        width: bounds.width,
        height: bounds.height,
        color: DEFAULT_LANE_COLOR
      }];
    }
  } else if (actorNames.size === 0 && !Array.isArray(clonedSwimlanes)) {
    initialProcessClone.swimlanes = [];
  }
  const { fitView, setCenter } = useReactFlow();
  const [isLoading, setIsLoading] = useState(false);
  const [isDeployModalOpen, setIsDeployModalOpen] = useState(false);
  const [selectedEdgeId, setSelectedEdgeId] = useState(null);
  const [ruleSets, setRuleSets] = useState(initialRuleSets ? [...initialRuleSets] : []);
  const initNodes = initialProcessClone.nodes || initialProcessClone.Nodes || [];
  const initEdges = initialProcessClone.edges || initialProcessClone.Connections || [];
  const [nodes, setNodes, onNodesChange] = useNodesState(initNodes);
  const [edges, setEdges, onEdgesChange] = useEdgesState(initEdges);
  const [swimlanes, setSwimlanes] = useState(() => {
    const restored = initialProcessClone.swimlanes;
    if (Array.isArray(restored) && restored.length > 0) return restored;
    const fromNodes = /* @__PURE__ */ new Set();
    initNodes.forEach((n) => {
      var _a;
      if ((_a = n == null ? void 0 : n.data) == null ? void 0 : _a.actorType) fromNodes.add(n.data.actorType);
    });
    if (fromNodes.size !== 1) return [];
    const [name] = Array.from(fromNodes);
    const bounds = inferLaneBoundsFromNodes(initNodes);
    return [{
      id: `lane_${Date.now()}_0`,
      name,
      x: bounds.x,
      y: bounds.y,
      width: bounds.width,
      height: bounds.height,
      color: DEFAULT_LANE_COLOR
    }];
  });
  const [selectedSwimlaneId, setSelectedSwimlaneId] = useState(null);
  const addSwimlane = useCallback((position) => {
    setSwimlanes((prev) => {
      const existing = new Set(prev.map((l) => l.name));
      let i = prev.length + 1;
      let name = `Actor ${i}`;
      while (existing.has(name)) {
        i++;
        name = `Actor ${i}`;
      }
      const pos = position ?? {
        x: 40,
        y: prev.length > 0 ? Math.max(...prev.map((l) => l.y + l.height)) + 20 : 40
      };
      const lane = {
        id: `lane_${Date.now()}`,
        name,
        x: pos.x,
        y: pos.y,
        width: DEFAULT_LANE_WIDTH,
        height: DEFAULT_LANE_HEIGHT,
        color: DEFAULT_LANE_COLOR
      };
      return [...prev, lane];
    });
  }, []);
  const renameSwimlane = useCallback((id, newName) => {
    setSwimlanes((prev) => {
      const lane = prev.find((l) => l.id === id);
      if (!lane) return prev;
      const oldName = lane.name;
      if (oldName === newName) return prev;
      setNodes((nds) => nds.map(
        (n) => n.data.actorType === oldName ? { ...n, data: { ...n.data, actorType: newName } } : n
      ));
      return prev.map((l) => l.id === id ? { ...l, name: newName } : l);
    });
  }, [setNodes]);
  const moveSwimlaneBy = useCallback((id, dx, dy) => {
    if (dx === 0 && dy === 0) return;
    const lane = swimlanes.find((l) => l.id === id);
    if (!lane) return;
    const actorName = lane.name;
    setSwimlanes((prev) => prev.map((l) => l.id === id ? { ...l, x: l.x + dx, y: l.y + dy } : l));
    setNodes((nds) => nds.map((n) => {
      if (n.data.actorType !== actorName) return n;
      if (n.parentNode) return n;
      return { ...n, position: { x: n.position.x + dx, y: n.position.y + dy } };
    }));
  }, [swimlanes, setNodes]);
  const moveSwimlane = useCallback((id, x, y) => {
    const lane = swimlanes.find((l) => l.id === id);
    if (!lane) return;
    moveSwimlaneBy(id, x - lane.x, y - lane.y);
  }, [swimlanes, moveSwimlaneBy]);
  const resizeSwimlane = useCallback((id, width, height) => {
    setSwimlanes((prev) => prev.map((l) => l.id === id ? { ...l, width, height } : l));
  }, []);
  const setSwimlaneColor = useCallback((id, color) => {
    setSwimlanes((prev) => prev.map((l) => l.id === id ? { ...l, color } : l));
  }, []);
  const removeSwimlane = useCallback((id) => {
    setSwimlanes((prev) => {
      const removed = prev.find((l) => l.id === id);
      if (removed) {
        setNodes((nds) => nds.map((n) => {
          if (n.data.actorType !== removed.name) return n;
          const { actorType, ...rest } = n.data;
          return { ...n, data: rest };
        }));
      }
      return prev.filter((l) => l.id !== id);
    });
    setSelectedSwimlaneId((curr) => curr === id ? null : curr);
  }, [setNodes]);
  const selectedSwimlane = useMemo(
    () => swimlanes.find((l) => l.id === selectedSwimlaneId) || null,
    [swimlanes, selectedSwimlaneId]
  );
  useEffect(() => {
    if (!selectedSwimlaneId) return;
    const onKeyDown = (e) => {
      if (e.key !== "Delete" && e.key !== "Backspace") return;
      const target = e.target;
      const tag = target == null ? void 0 : target.tagName;
      if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT" || target && target.isContentEditable) {
        return;
      }
      e.preventDefault();
      removeSwimlane(selectedSwimlaneId);
    };
    window.addEventListener("keydown", onKeyDown);
    return () => window.removeEventListener("keydown", onKeyDown);
  }, [selectedSwimlaneId, removeSwimlane]);
  const {
    processes,
    setProcesses,
    activeProcessId,
    setActiveProcessId,
    handleSelectProcess,
    handleCreateProcess,
    handleCreateSubProcess,
    handleDeleteProcess,
    handleUpdateProcess
  } = useProcessManagement(nodes, setNodes, edges, setEdges, swimlanes, setSwimlanes, initialData);
  const {
    handleSaveProject,
    handleLoadProject,
    projectName
  } = useFileOperations({
    nodes,
    edges,
    processes,
    setProcesses,
    activeProcessId,
    setActiveProcessId,
    setNodes,
    setEdges,
    setIsLoading,
    swimlanes,
    setSwimlanes,
    ruleSets,
    setRuleSets
  });
  const {
    selectedNode,
    setSelectedNode,
    isModalOpen,
    setIsModalOpen,
    activeTabId,
    setActiveTabId,
    openModalAtTab,
    onDragOver,
    onDrop,
    onNodeClick: originalOnNodeClick,
    onPaneClick: originalOnPaneClick,
    onNodeDoubleClick,
    onNodeContextMenu,
    onNodeDragStop,
    updateNodeData,
    renameNode
  } = useNodeOperations(nodes, setNodes, setEdges, swimlanes);
  const {
    onConnect,
    onConnectStart,
    onConnectEnd
  } = useEdgeOperations(nodes, setNodes, setEdges);
  const onNodeClick = useCallback((e, node) => {
    setSelectedEdgeId(null);
    setSelectedSwimlaneId(null);
    originalOnNodeClick(e, node);
  }, [originalOnNodeClick]);
  const onEdgeClick = useCallback((_e, edge) => {
    setSelectedNode(null);
    setSelectedSwimlaneId(null);
    setSelectedEdgeId(edge.id);
  }, [setSelectedNode]);
  const onPaneClick = useCallback(() => {
    setSelectedEdgeId(null);
    setSelectedSwimlaneId(null);
    originalOnPaneClick();
  }, [originalOnPaneClick]);
  const selectSwimlane = useCallback((id) => {
    setSelectedSwimlaneId(id);
    if (id) {
      setSelectedEdgeId(null);
      setSelectedNode(null);
    }
  }, [setSelectedNode]);
  const onSelectionChange = useCallback((params) => {
    var _a, _b;
    const selNodeId = ((_a = params.nodes[0]) == null ? void 0 : _a.id) ?? null;
    const selEdgeId = ((_b = params.edges[0]) == null ? void 0 : _b.id) ?? null;
    const node = selNodeId ? nodes.find((n) => n.id === selNodeId) ?? null : null;
    setSelectedNode(node);
    setSelectedEdgeId(selEdgeId);
    if (selNodeId || selEdgeId) setSelectedSwimlaneId(null);
  }, [nodes, setSelectedNode]);
  const selectedEdge = useMemo(() => {
    if (!selectedEdgeId) return null;
    return edges.find((e) => e.id === selectedEdgeId) || null;
  }, [edges, selectedEdgeId]);
  const updateEdgeData = useCallback((id, newData) => {
    setEdges((eds) => eds.map((e) => {
      if (e.id === id) {
        return { ...e, ...newData };
      }
      return e;
    }));
  }, [setEdges]);
  const autoSaveState = useAutoSave(processes, activeProcessId, nodes, edges, onAutoSave);
  const validation = useValidation({
    processes,
    activeProcessId,
    nodes,
    edges,
    swimlanes,
    ruleSets
  });
  const variableContext = useMemo(() => {
    if (!selectedNode) return [];
    return getAvailableVariables(nodes, edges, selectedNode.id);
  }, [selectedNode, nodes, edges, isModalOpen]);
  const handleAutoLayout = useCallback(() => {
    try {
      const normalizedNodes = nodes.map((n) => {
        var _a;
        if (n.parentNode) return n;
        const current = (_a = n.data) == null ? void 0 : _a.actorType;
        if (swimlanes.length === 1) {
          const only = swimlanes[0];
          if (current === only.name) return n;
          return { ...n, data: { ...n.data, actorType: only.name } };
        }
        if (swimlanes.length > 1) {
          const w = n.width ?? 220;
          const h = n.height ?? 64;
          const cx = n.position.x + w / 2;
          const cy = n.position.y + h / 2;
          const containing = swimlanes.find((l) => cx >= l.x && cx <= l.x + l.width && cy >= l.y && cy <= l.y + l.height);
          if (containing && current !== containing.name) {
            return { ...n, data: { ...n.data, actorType: containing.name } };
          }
        }
        return n;
      });
      const result = getLayoutedElements(normalizedNodes, edges, "LR", swimlanes);
      setNodes([...result.nodes]);
      setSwimlanes([...result.swimlanes]);
      setTimeout(() => fitView({ duration: 800 }), 10);
    } catch (err) {
      console.error("Auto layout failed:", err);
      return;
    }
  }, [nodes, edges, swimlanes, setNodes, fitView]);
  const focusNode = useCallback((nodeId) => {
    const node = nodes.find((n) => n.id === nodeId);
    if (node) {
      setCenter(node.position.x + 90, node.position.y + 32, { zoom: 1.2, duration: 800 });
    }
  }, [nodes, setCenter]);
  const focusAndSelectNode = useCallback((nodeId) => {
    const target = nodes.find((n) => n.id === nodeId);
    if (!target) return;
    const changes = nodes.map((n) => ({ id: n.id, type: "select", selected: n.id === nodeId }));
    onNodesChange(changes);
    setEdges((eds) => eds.map((e) => e.selected ? { ...e, selected: false } : e));
    setSelectedEdgeId(null);
    setSelectedSwimlaneId(null);
    setCenter(target.position.x + 90, target.position.y + 32, { zoom: 1.2, duration: 800 });
  }, [nodes, onNodesChange, setEdges, setCenter]);
  const currentProcessSnapshot = useCallback(
    () => processes.map((p) => p.id === activeProcessId ? { ...p, nodes, edges, swimlanes } : p),
    [processes, activeProcessId, nodes, edges, swimlanes]
  );
  const createRuleSet = useCallback((seed) => {
    const maxId = ruleSets.reduce((m, r) => Math.max(m, Number(r.id) || 0), 0);
    const created = { id: String(maxId + 1), name: seed.name, rules: seed.rules, source: seed.source };
    setRuleSets((prev) => prev.some((r) => r.id === created.id) ? prev : [...prev, created]);
    return created;
  }, [ruleSets]);
  const updateRuleSet = useCallback((id, patch) => {
    setRuleSets((prev) => prev.map((r) => r.id === id ? { ...r, ...patch } : r));
  }, []);
  const removeRuleSet = useCallback((id) => {
    setRuleSets((prev) => prev.filter((r) => r.id !== id));
  }, []);
  const ruleSetUsageCount = useCallback(
    (id) => countRuleSetUsage(currentProcessSnapshot(), id),
    [currentProcessSnapshot]
  );
  const getProjectData = useCallback(() => {
    return generateWorkflowProject(currentProcessSnapshot(), projectName, ruleSets);
  }, [currentProcessSnapshot, projectName, ruleSets]);
  return {
    nodes,
    setNodes,
    onNodesChange,
    edges,
    setEdges,
    onEdgesChange,
    processes,
    activeProcessId,
    selectedNode,
    setSelectedNode,
    selectedEdge,
    variableContext,
    // Export context
    isModalOpen,
    setIsModalOpen,
    activeTabId,
    setActiveTabId,
    openModalAtTab,
    isDeployModalOpen,
    setIsDeployModalOpen,
    handleSelectProcess,
    handleCreateProcess,
    handleCreateSubProcess,
    handleDeleteProcess,
    handleUpdateProcess,
    handleSaveProject,
    handleLoadProject,
    handleAutoLayout,
    onConnect,
    onConnectStart,
    onConnectEnd,
    onDrop,
    onDragOver,
    onNodeClick,
    onEdgeClick,
    onPaneClick,
    onNodeDoubleClick,
    onNodeContextMenu,
    onNodeDragStop,
    onSelectionChange,
    updateNodeData,
    updateEdgeData,
    renameNode,
    fitView,
    focusNode,
    focusAndSelectNode,
    swimlanes,
    addSwimlane,
    renameSwimlane,
    removeSwimlane,
    moveSwimlane,
    moveSwimlaneBy,
    resizeSwimlane,
    setSwimlaneColor,
    selectedSwimlane,
    selectedSwimlaneId,
    selectSwimlane,
    setIsLoading,
    isLoading,
    autoSaveState,
    getProjectData,
    validation,
    ruleSets,
    createRuleSet,
    updateRuleSet,
    removeRuleSet,
    ruleSetUsageCount
  };
};
const DEFAULT_W = 220;
const DEFAULT_H = 100;
const MIN_DELTA = 20;
function worldCenter(node, byId) {
  const w = node.width ?? DEFAULT_W;
  const h = node.height ?? DEFAULT_H;
  let x = node.position.x + w / 2;
  let y = node.position.y + h / 2;
  if (node.parentNode) {
    const parent = byId.get(node.parentNode);
    if (parent) {
      x += parent.position.x;
      y += parent.position.y;
    }
  }
  return { x, y };
}
function isStartNode(node) {
  var _a;
  return !!((_a = node.type) == null ? void 0 : _a.includes("StartEvent"));
}
function isBoundaryNode(node) {
  return !!node.parentNode;
}
function resolveTargetHandles(nodes, edges) {
  const byId = /* @__PURE__ */ new Map();
  for (const n of nodes) byId.set(n.id, n);
  let anyChanged = false;
  const out = edges.map((edge) => {
    const src = byId.get(edge.source);
    const tgt = byId.get(edge.target);
    if (!src || !tgt) return edge;
    if (isStartNode(tgt)) return edge;
    if (isBoundaryNode(tgt)) return edge;
    const sc = worldCenter(src, byId);
    const tc = worldCenter(tgt, byId);
    const dx = tc.x - sc.x;
    const dy = tc.y - sc.y;
    const srcLeftOfTgt = dx > MIN_DELTA;
    const srcAboveTgt = dy > MIN_DELTA;
    let desired;
    if (srcLeftOfTgt && srcAboveTgt) {
      desired = Math.abs(dx) >= Math.abs(dy) ? "t-left" : "t-top";
    } else if (srcAboveTgt) {
      desired = "t-top";
    } else {
      desired = "t-left";
    }
    if (edge.targetHandle === desired) return edge;
    anyChanged = true;
    return { ...edge, targetHandle: desired };
  });
  return anyChanged ? out : edges;
}
const determineNextNode = (node, edges, actionData, _variables) => {
  const outgoingEdges = edges.filter((e) => e.source === node.id);
  if (actionData && actionData.triggerBoundaryId) {
    const boundaryEdge = edges.find(
      (e) => e.source === node.id && e.sourceHandle === "boundary" && e.target === actionData.triggerBoundaryId
    );
    if (boundaryEdge) {
      return {
        nextNodes: [boundaryEdge.target],
        logs: [`Boundary event triggered: ${actionData.boundaryLabel || "Interruption"}`],
        traversedEdgeIds: [boundaryEdge.id]
      };
    }
  }
  if (outgoingEdges.length === 0) {
    return { nextNodes: [], logs: ["End of flow reached."], traversedEdgeIds: [] };
  }
  switch (node.type) {
    case "XorGateway":
      return handleXorGateway(node, outgoingEdges, actionData);
    case "InclusiveGateway":
      return handleInclusiveGateway(node, outgoingEdges, actionData);
    case "ParallelGateway":
      return handleParallelGateway(node, outgoingEdges);
    case "UserTask":
      return handleUserTask(node, outgoingEdges);
    default: {
      const standardEdges = outgoingEdges.filter((e) => e.sourceHandle !== "boundary");
      if (standardEdges.length > 0) {
        return {
          nextNodes: [standardEdges[0].target],
          logs: [],
          traversedEdgeIds: [standardEdges[0].id]
        };
      }
      return { nextNodes: [], logs: ["No standard outgoing path found."], traversedEdgeIds: [] };
    }
  }
};
const evaluateNode = (node, variables) => {
  if (node.type === "XorGateway") {
    const conditions = node.data.conditions || [];
    let matchIndex = -1;
    for (const cond of conditions) {
      if (cond.expression) {
        if (ExpressionEngine.evaluateCondition(cond.expression, variables)) {
          matchIndex = cond.path;
          break;
        }
      } else if (matchIndex === -1) {
        matchIndex = cond.path;
      }
    }
    if (matchIndex === -1 && conditions.length > 0) {
      matchIndex = conditions[conditions.length - 1].path;
    }
    return String(matchIndex);
  }
  return null;
};
const handleXorGateway = (node, outgoingEdges, actionData) => {
  var _a;
  const selectedPathIndex = actionData == null ? void 0 : actionData.selectedPath;
  const validEdges = outgoingEdges.filter((e) => e.sourceHandle !== "boundary");
  if (node.data.outputs && node.data.outputs[selectedPathIndex]) {
    const targetLabel = node.data.outputs[selectedPathIndex];
    const edge = validEdges.find((e) => e.label === targetLabel);
    if (edge) {
      return {
        nextNodes: [edge.target],
        logs: [`Gateway decision: ${targetLabel}`],
        traversedEdgeIds: [edge.id]
      };
    }
  }
  const edgeByIndex = validEdges[selectedPathIndex];
  if (edgeByIndex) {
    return {
      nextNodes: [edgeByIndex.target],
      logs: [`Gateway decision: Path ${selectedPathIndex + 1} (Matched by Index)`],
      traversedEdgeIds: [edgeByIndex.id]
    };
  }
  return { nextNodes: [], logs: [`Error: Could not find outgoing connection for Path ${selectedPathIndex + 1}. Ensure the connection is labeled "${(_a = node.data.outputs) == null ? void 0 : _a[selectedPathIndex]}" or connected in order.`], traversedEdgeIds: [] };
};
const handleInclusiveGateway = (node, outgoingEdges, actionData) => {
  const selectedPathIndex = actionData == null ? void 0 : actionData.selectedPath;
  const validEdges = outgoingEdges.filter((e) => e.sourceHandle !== "boundary");
  if (selectedPathIndex !== void 0) {
    if (node.data.outputs && node.data.outputs[selectedPathIndex]) {
      const targetLabel = node.data.outputs[selectedPathIndex];
      const edge2 = validEdges.find((e) => e.label === targetLabel);
      if (edge2) {
        return {
          nextNodes: [edge2.target],
          logs: [`Inclusive Gateway: ${targetLabel}`],
          traversedEdgeIds: [edge2.id]
        };
      }
    }
    const edge = validEdges[selectedPathIndex];
    if (edge) return {
      nextNodes: [edge.target],
      logs: [`Inclusive Gateway: Path ${selectedPathIndex + 1}`],
      traversedEdgeIds: [edge.id]
    };
  }
  if (validEdges.length > 0) {
    return {
      nextNodes: [validEdges[0].target],
      logs: ["Inclusive Gateway: Defaulting to first path"],
      traversedEdgeIds: [validEdges[0].id]
    };
  }
  return { nextNodes: [], logs: ["No path found."], traversedEdgeIds: [] };
};
const handleParallelGateway = (node, outgoingEdges, _actionData) => {
  if (node.data.isMerging) {
    const validEdges = outgoingEdges.filter((e) => e.sourceHandle !== "boundary");
    if (validEdges.length > 0) {
      return {
        nextNodes: [validEdges[0].target],
        logs: ["Parallel Merge: Proceeding."],
        traversedEdgeIds: [validEdges[0].id]
      };
    }
    return { nextNodes: [], logs: ["Parallel Merge: No outgoing path."], traversedEdgeIds: [] };
  }
  const standardEdges = outgoingEdges.filter((e) => e.sourceHandle !== "boundary");
  const targets = standardEdges.map((e) => e.target);
  const edgeIds = standardEdges.map((e) => e.id);
  return {
    nextNodes: targets,
    logs: [`Parallel Split: Activating ${targets.length} paths.`],
    traversedEdgeIds: edgeIds
  };
};
const handleUserTask = (_node, outgoingEdges, _actionData) => {
  const nextEdge = outgoingEdges.find((e) => e.sourceHandle !== "boundary");
  if (nextEdge) {
    return {
      nextNodes: [nextEdge.target],
      logs: ["User task completed."],
      traversedEdgeIds: [nextEdge.id]
    };
  }
  return { nextNodes: [], logs: ["No outgoing path."], traversedEdgeIds: [] };
};
const useWorkflowSimulation = ({
  nodes,
  setNodes,
  edges,
  fitView,
  focusNode
}) => {
  const { addToast } = useToast();
  const [simulationState, setSimulationState] = useState({
    isRunning: false,
    currentNodeId: null,
    isWaitingForInput: false,
    logs: [],
    variables: {},
    history: [],
    executionQueue: [],
    visitedEdgeIds: []
  });
  const [suggestedPath, setSuggestedPath] = useState(null);
  const addLog = (message) => {
    setSimulationState((prev) => ({
      ...prev,
      logs: [...prev.logs, message]
    }));
  };
  const startSimulation = () => {
    setNodes((nds) => nds.map((n) => ({ ...n, data: { ...n.data, status: "idle" } })));
    const startNodes = nodes.filter((n) => {
      var _a;
      return (_a = n.type) == null ? void 0 : _a.endsWith("StartEvent");
    });
    if (startNodes.length === 0) {
      addToast({ type: "error", title: "Simulation Failed", message: "No Start Event found. Please add a Start Event to the workflow." });
      return;
    }
    setSimulationState({
      isRunning: true,
      currentNodeId: null,
      isWaitingForInput: false,
      logs: ["Simulation initialized. Waiting for start selection..."],
      variables: {},
      history: [],
      executionQueue: [],
      visitedEdgeIds: []
    });
    addToast({ type: "info", title: "Simulation Mode", message: "Select a start event to begin." });
    setTimeout(() => fitView({ duration: 800 }), 100);
    if (startNodes.length === 1) {
      runSimulationStep(startNodes[0].id);
    }
  };
  const stopSimulation = () => {
    setSimulationState((prev) => ({
      ...prev,
      isRunning: false,
      currentNodeId: null,
      isWaitingForInput: false,
      executionQueue: []
    }));
    setNodes((nds) => nds.map((n) => ({ ...n, data: { ...n.data, status: "idle" } })));
    setTimeout(() => fitView({ duration: 800 }), 100);
  };
  const resetSimulation = () => {
    setNodes((nds) => nds.map((n) => ({ ...n, data: { ...n.data, status: "idle" } })));
    setSimulationState((prev) => ({ ...prev, logs: [], variables: {}, history: [], executionQueue: [], visitedEdgeIds: [] }));
    addLog("Simulation state reset.");
  };
  const runSimulationStep = (nodeId) => {
    const node = nodes.find((n) => n.id === nodeId);
    if (!node) return;
    setSimulationState((prev) => ({
      ...prev,
      history: [...prev.history, {
        nodeId: prev.currentNodeId || "root",
        variables: JSON.parse(JSON.stringify(prev.variables)),
        timestamp: Date.now()
      }],
      currentNodeId: nodeId,
      isWaitingForInput: true
    }));
    setNodes((nds) => nds.map((n) => n.id === nodeId ? { ...n, data: { ...n.data, status: "active" } } : n));
    setTimeout(() => focusNode(nodeId), 100);
    addLog(`Entering node: ${node.data.label}`);
    const suggestion = evaluateNode(node, simulationState.variables);
    setSuggestedPath(suggestion);
  };
  const processQueue = () => {
    setSimulationState((prev) => {
      if (prev.executionQueue.length === 0) return prev;
      const nextId2 = prev.executionQueue[0];
      const remainingQueue = prev.executionQueue.slice(1);
      setNodes((nds) => nds.map((n) => n.id === prev.currentNodeId ? { ...n, data: { ...n.data, status: "waiting" } } : n));
      setTimeout(() => runSimulationStep(nextId2), 50);
      return {
        ...prev,
        executionQueue: remainingQueue
      };
    });
  };
  const handleBack = () => {
    if (simulationState.history.length === 0) return;
    const previousFrame = simulationState.history[simulationState.history.length - 1];
    const newHistory = simulationState.history.slice(0, -1);
    setSimulationState((prev) => ({
      ...prev,
      currentNodeId: previousFrame.nodeId === "root" ? null : previousFrame.nodeId,
      variables: previousFrame.variables,
      history: newHistory,
      isWaitingForInput: previousFrame.nodeId !== "root"
    }));
    if (previousFrame.nodeId !== "root") {
      setNodes((nds) => nds.map((n) => n.id === previousFrame.nodeId ? { ...n, data: { ...n.data, status: "active" } } : { ...n, data: { ...n.data, status: "idle" } }));
      setTimeout(() => focusNode(previousFrame.nodeId), 100);
      return;
    }
    setNodes((nds) => nds.map((n) => ({ ...n, data: { ...n.data, status: "idle" } })));
    setTimeout(() => fitView({ duration: 800 }), 100);
  };
  const finishPath = (updatedVariables, newVisitedEdges) => {
    if (simulationState.executionQueue.length > 0) {
      const nextFromQueue = simulationState.executionQueue[0];
      const remainingQueue = simulationState.executionQueue.slice(1);
      setSimulationState((prev) => ({
        ...prev,
        variables: updatedVariables,
        visitedEdgeIds: newVisitedEdges,
        executionQueue: remainingQueue
      }));
      addLog("Path completed. Switching to pending parallel branch.");
      setTimeout(() => runSimulationStep(nextFromQueue), 50);
      return;
    }
    setSimulationState((prev) => ({
      ...prev,
      variables: updatedVariables,
      visitedEdgeIds: newVisitedEdges
    }));
    addLog("Workflow execution completed.");
    addToast({ type: "success", title: "Completed", message: "Workflow execution finished successfully." });
  };
  const advanceToNext = (nextNodes, updatedVariables, newVisitedEdges) => {
    const [primaryNext, ...additionalNext] = nextNodes;
    setSimulationState((prev) => ({
      ...prev,
      variables: updatedVariables,
      visitedEdgeIds: newVisitedEdges,
      executionQueue: [...prev.executionQueue, ...additionalNext]
    }));
    if (additionalNext.length > 0) {
      addLog(`Queued ${additionalNext.length} parallel branches.`);
    }
    runSimulationStep(primaryNext);
  };
  const handleNext = (data) => {
    const currentNodeId = simulationState.currentNodeId;
    if (!currentNodeId) return;
    const node = nodes.find((n) => n.id === currentNodeId);
    if (!node) return;
    const updatedVariables = { ...simulationState.variables, ...data };
    delete updatedVariables.selectedPath;
    setNodes((nds) => nds.map((n) => n.id === currentNodeId ? { ...n, data: { ...n.data, status: "completed" } } : n));
    const result = determineNextNode(node, edges, data);
    result.logs.forEach((log) => addLog(log));
    const newVisitedEdges = [...simulationState.visitedEdgeIds, ...result.traversedEdgeIds];
    const nextNodes = result.nextNodes;
    if (nextNodes.length === 0) {
      finishPath(updatedVariables, newVisitedEdges);
      return;
    }
    advanceToNext(nextNodes, updatedVariables, newVisitedEdges);
  };
  const handleSimulationAction = (action, data) => {
    switch (action) {
      case "STOP":
        stopSimulation();
        return;
      case "SELECT_START":
        runSimulationStep(data.nodeId);
        return;
      case "PROCESS_QUEUE":
        processQueue();
        return;
      case "BACK":
        handleBack();
        return;
      case "NEXT":
        handleNext(data);
        return;
    }
  };
  return {
    simulationState,
    suggestedPath,
    startSimulation,
    stopSimulation,
    resetSimulation,
    handleSimulationAction
  };
};
const ok = (result) => ({ ok: true, result });
const reject = (reason) => ({ ok: false, rejected: true, reason });
const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
const isFiniteNumber = (v) => typeof v === "number" && Number.isFinite(v);
const compactNode = (n) => {
  var _a, _b;
  return {
    id: n.id,
    type: n.type,
    label: (_a = n.data) == null ? void 0 : _a.label,
    actorType: (_b = n.data) == null ? void 0 : _b.actorType,
    parentNode: n.parentNode,
    position: n.position
  };
};
const compactEdge = (e) => ({
  id: e.id,
  source: e.source,
  target: e.target,
  sourceHandle: e.sourceHandle ?? void 0,
  targetHandle: e.targetHandle ?? void 0,
  label: typeof e.label === "string" ? e.label : void 0
});
const compactIssue = (i) => ({
  severity: i.severity,
  rule: i.rule,
  message: i.message,
  nodeIds: i.nodeIds,
  edgeIds: i.edgeIds
});
let edgeSeq = 0;
const nextId = (prefix) => `${prefix}_${Date.now().toString(36)}_${(edgeSeq++).toString(36)}`;
const errorKey = (i) => `${i.rule}|${i.message}|${(i.nodeIds ?? []).join(",")}|${(i.edgeIds ?? []).join(",")}`;
const newErrors = (baseline, candidate) => {
  const baseKeys = new Set(baseline.filter((i) => i.severity === "error").map(errorKey));
  return candidate.filter((i) => i.severity === "error" && !baseKeys.has(errorKey(i)));
};
const formatErrors = (issues) => issues.map((i) => `[${i.rule}] ${i.message}`).join(" ");
const TOOL_DESCRIPTORS = [
  {
    name: "get_model",
    description: "Return the current workflow process as compact JSON: an array of nodes (id, type, label, actorType, parentNode, position) and edges (id, source, target, label).",
    parameters: { type: "object", properties: {}, additionalProperties: false }
  },
  {
    name: "list_node_types",
    description: "List every node/element type this editor supports, with its category, display label and the engine type it serializes to. Use these exact type keys when adding nodes.",
    parameters: { type: "object", properties: {}, additionalProperties: false }
  },
  {
    name: "add_node",
    description: "Add a new node. `type` must be one of the keys from list_node_types. `label` is required. `position` {x,y} is optional (defaults near origin). Rejects unknown types and blank labels.",
    parameters: {
      type: "object",
      properties: {
        type: { type: "string", description: "Node type key (see list_node_types)." },
        label: { type: "string", description: "Human-readable display label." },
        position: {
          type: "object",
          properties: { x: { type: "number" }, y: { type: "number" } },
          required: ["x", "y"],
          additionalProperties: false
        },
        actorType: { type: "string", description: "Optional swimlane/actor name." },
        data: { type: "object", description: "Optional extra node data fields." }
      },
      required: ["type", "label"],
      additionalProperties: false
    }
  },
  {
    name: "update_node",
    description: "Update a node's data fields (e.g. label, description, config). Merges into existing data. Rejects unknown node ids and non-object data.",
    parameters: {
      type: "object",
      properties: {
        id: { type: "string" },
        data: { type: "object", description: "Partial data fields to merge." }
      },
      required: ["id", "data"],
      additionalProperties: false
    }
  },
  {
    name: "delete_node",
    description: "Delete a node by id. Also removes its attached edges and any child (boundary) nodes. Rejects unknown node ids.",
    parameters: {
      type: "object",
      properties: { id: { type: "string" } },
      required: ["id"],
      additionalProperties: false
    }
  },
  {
    name: "connect_nodes",
    description: "Create a sequence-flow edge from `source` to `target` node id. Optional `label`. Rejects unknown endpoints, self-loops, and duplicate connections.",
    parameters: {
      type: "object",
      properties: {
        source: { type: "string" },
        target: { type: "string" },
        label: { type: "string" }
      },
      required: ["source", "target"],
      additionalProperties: false
    }
  },
  {
    name: "delete_edge",
    description: "Delete an edge by id. Rejects unknown edge ids.",
    parameters: {
      type: "object",
      properties: { id: { type: "string" } },
      required: ["id"],
      additionalProperties: false
    }
  },
  {
    name: "validate",
    description: "Run the editor validation rules over the whole diagram and return the list of issues (severity, rule, message, affected node/edge ids).",
    parameters: { type: "object", properties: {}, additionalProperties: false }
  },
  {
    name: "replace_model",
    description: "Replace the active process nodes + edges from JSON. Validates every node type and edge endpoint BEFORE applying; rejects unknown types or dangling edges without touching the model.",
    parameters: {
      type: "object",
      properties: {
        nodes: { type: "array", items: { type: "object" } },
        edges: { type: "array", items: { type: "object" } }
      },
      required: ["nodes"],
      additionalProperties: false
    }
  }
];
const VIEW_TOOL_DESCRIPTORS = [
  {
    name: "get_ui_state",
    description: "Return the current editor UI state: active process, all process summaries (id/name), the current selection (node/edge/swimlane/none), the React Flow viewport (x,y,zoom) and the advanced-modal state. Read-only.",
    parameters: { type: "object", properties: {}, additionalProperties: false }
  },
  {
    name: "set_viewport",
    description: "Pan/zoom the canvas to an exact React Flow viewport. `zoom` must be a positive number. Does not change the model. This is the low-level scroll/zoom primitive — prefer focus_node or fit_view for element-relative navigation.",
    parameters: {
      type: "object",
      properties: {
        x: { type: "number" },
        y: { type: "number" },
        zoom: { type: "number", description: "Zoom factor (> 0)." },
        durationMs: { type: "number", description: "Optional animation duration in ms." }
      },
      required: ["x", "y", "zoom"],
      additionalProperties: false
    }
  },
  {
    name: "fit_view",
    description: "Fit the diagram into view. With `nodeIds` it fits just those nodes; without it fits the whole process. Rejects unknown node ids. Does not change the model.",
    parameters: {
      type: "object",
      properties: {
        nodeIds: { type: "array", items: { type: "string" }, description: "Optional subset of node ids to fit." },
        padding: { type: "number", description: "Padding fraction (0–1), default ~0.1." },
        durationMs: { type: "number" },
        minZoom: { type: "number" },
        maxZoom: { type: "number" }
      },
      additionalProperties: false
    }
  },
  {
    name: "focus_node",
    description: "Center the camera on a single node, optionally selecting it so the user sees exactly which node is meant. Rejects unknown node ids. Does not change the model.",
    parameters: {
      type: "object",
      properties: {
        id: { type: "string" },
        select: { type: "boolean", description: "Also select the node (default true)." },
        zoom: { type: "number", description: "Optional zoom factor (> 0)." },
        durationMs: { type: "number" }
      },
      required: ["id"],
      additionalProperties: false
    }
  },
  {
    name: "set_selection",
    description: "Select/highlight one element so the user can see what the assistant means, or clear the selection. `kind` 'none' clears; otherwise `id` is required and must reference an existing node/edge/swimlane. Rejects unknown ids. Does not change the model.",
    parameters: {
      type: "object",
      properties: {
        kind: { type: "string", enum: ["node", "edge", "swimlane", "none"] },
        id: { type: "string", description: 'Required unless kind is "none".' }
      },
      required: ["kind"],
      additionalProperties: false
    }
  },
  {
    name: "open_node_editor",
    description: "Select a node and open its advanced editor modal, optionally on a specific tab (e.g. 'properties', 'http', 'routing', 'script', 'errorHandling', 'form'). Rejects unknown node ids. Does not change the model.",
    parameters: {
      type: "object",
      properties: {
        nodeId: { type: "string" },
        tabId: { type: "string", description: "Tab to open, default 'properties'." }
      },
      required: ["nodeId"],
      additionalProperties: false
    }
  },
  {
    name: "switch_process",
    description: "Switch the active process (the read/mutate tools operate on the active process). Rejects unknown process ids. Optionally fits the new process into view. Does not change the model.",
    parameters: {
      type: "object",
      properties: {
        processId: { type: "string" },
        fit: { type: "boolean", description: "Fit the switched-to process into view (default true)." }
      },
      required: ["processId"],
      additionalProperties: false
    }
  }
];
const buildGuidelines = (nodeTypes, hasView) => {
  const byCategory = /* @__PURE__ */ new Map();
  for (const [key, cfg] of Object.entries(nodeTypes)) {
    if (cfg.disabled) continue;
    const list2 = byCategory.get(cfg.category) || [];
    list2.push(key);
    byCategory.set(cfg.category, list2);
  }
  const cats = Array.from(byCategory.entries()).map(([cat, keys]) => `${cat}: ${keys.join(", ")}`).join("; ");
  return "This is a BPMN-like workflow process editor. The model is a directed graph of nodes (start/end events, user/service/script tasks, gateways, call activities, intermediate and boundary events) connected by sequence-flow edges. Each node has a unique id, a type (use the exact keys from list_node_types), a display label and an optional actorType (swimlane). Tools route through the editor’s real mutation + validation logic: adding a node with an unknown type, connecting non-existent nodes, or replacing the model with malformed JSON is rejected with a reason instead of corrupting the diagram. Always call get_model first to see current ids before updating, deleting, or connecting. " + (hasView ? "Navigation/selection tools (focus_node, set_selection, fit_view, set_viewport, open_node_editor, switch_process, get_ui_state) move the camera or change the on-screen selection WITHOUT mutating the model — use them so the user can SEE the node/edge you mean. switch_process changes which process the read/mutate tools operate on. " : "") + `Valid node types by category — ${cats}.`;
};
function createWorkflowAiCapability(access) {
  const tools = access.view ? TOOL_DESCRIPTORS.concat(VIEW_TOOL_DESCRIPTORS) : TOOL_DESCRIPTORS;
  const gate = (currentNodes, currentEdges, nextNodes, nextEdges, apply, onOk) => {
    const baseline = access.validate(currentNodes, currentEdges);
    const candidate = access.validate(nextNodes, nextEdges);
    const introduced = newErrors(baseline, candidate);
    if (introduced.length > 0) {
      return reject(`Change rejected — it would introduce validation errors: ${formatErrors(introduced)}`);
    }
    apply();
    return onOk();
  };
  const invoke = async (toolName, rawArgs) => {
    const args = isObject(rawArgs) ? rawArgs : {};
    const nodeTypes = access.getNodeTypes();
    switch (toolName) {
      case "get_model": {
        const nodes = access.getNodes().map(compactNode);
        const edges = access.getEdges().map(compactEdge);
        return ok({ nodes, edges, nodeCount: nodes.length, edgeCount: edges.length });
      }
      case "list_node_types": {
        const types = Object.entries(nodeTypes).filter(([, cfg]) => !cfg.disabled).map(([key, cfg]) => ({
          type: key,
          label: cfg.label,
          category: cfg.category,
          description: cfg.description
        }));
        return ok({ types });
      }
      case "add_node": {
        const type = args.type;
        const label = args.label;
        if (typeof type !== "string" || !type) return reject("`type` is required and must be a string.");
        if (!nodeTypes[type]) {
          return reject(
            `Unknown node type "${type}". Call list_node_types for valid keys.`
          );
        }
        if (nodeTypes[type].disabled) return reject(`Node type "${type}" is disabled and cannot be added.`);
        if (typeof label !== "string" || !label.trim()) {
          return reject("`label` is required and must be a non-empty string.");
        }
        let position = { x: 0, y: 0 };
        if (args.position !== void 0) {
          const p = args.position;
          if (!isObject(p) || !isFiniteNumber(p.x) || !isFiniteNumber(p.y)) {
            return reject("`position` must be an object with finite numeric x and y.");
          }
          position = { x: p.x, y: p.y };
        }
        if (args.data !== void 0 && !isObject(args.data)) {
          return reject("`data` must be an object when provided.");
        }
        const defaults = access.getDefaultData(type) || {};
        const data = {
          ...defaults,
          ...isObject(args.data) ? args.data : {},
          label: label.trim(),
          status: "idle"
        };
        if (typeof args.actorType === "string" && args.actorType.trim()) {
          data.actorType = args.actorType.trim();
        }
        const id = nextId("node");
        const newNode = { id, type, position, data };
        const curNodes = access.getNodes();
        const curEdges = access.getEdges();
        return gate(
          curNodes,
          curEdges,
          curNodes.concat(newNode),
          curEdges,
          () => access.applyNodes((nds) => nds.concat(newNode)),
          () => ok({ id, type, label: data.label })
        );
      }
      case "update_node": {
        const id = args.id;
        if (typeof id !== "string" || !id) return reject("`id` is required.");
        if (!isObject(args.data)) return reject("`data` must be an object.");
        const existing = access.getNodes().find((n) => n.id === id);
        if (!existing) return reject(`No node with id "${id}".`);
        if ("id" in args.data || "type" in args.data) {
          return reject("`data` may not contain `id` or `type`; use a dedicated path to change identity.");
        }
        const patch = args.data;
        if ("label" in patch && (typeof patch.label !== "string" || !patch.label.trim())) {
          return reject("`label`, if provided, must be a non-empty string.");
        }
        const applyUpdate = (nds) => nds.map((n) => n.id === id ? { ...n, data: { ...n.data, ...patch } } : n);
        const curNodes = access.getNodes();
        const curEdges = access.getEdges();
        return gate(
          curNodes,
          curEdges,
          applyUpdate(curNodes),
          curEdges,
          () => access.applyNodes(applyUpdate),
          () => ok({ id })
        );
      }
      case "delete_node": {
        const id = args.id;
        if (typeof id !== "string" || !id) return reject("`id` is required.");
        const nodes = access.getNodes();
        if (!nodes.some((n) => n.id === id)) return reject(`No node with id "${id}".`);
        const removedIds = /* @__PURE__ */ new Set([id]);
        nodes.forEach((n) => {
          if (n.parentNode === id) removedIds.add(n.id);
        });
        const filterNodes = (nds) => nds.filter((n) => !removedIds.has(n.id));
        const filterEdges = (eds) => eds.filter((e) => !removedIds.has(e.source) && !removedIds.has(e.target));
        const curEdges = access.getEdges();
        return gate(
          nodes,
          curEdges,
          filterNodes(nodes),
          filterEdges(curEdges),
          () => {
            access.applyNodes(filterNodes);
            access.applyEdges(filterEdges);
          },
          () => ok({ id, removed: Array.from(removedIds) })
        );
      }
      case "connect_nodes": {
        const source = args.source;
        const target = args.target;
        if (typeof source !== "string" || !source) return reject("`source` is required.");
        if (typeof target !== "string" || !target) return reject("`target` is required.");
        if (source === target) return reject("Cannot connect a node to itself.");
        const nodes = access.getNodes();
        if (!nodes.some((n) => n.id === source)) return reject(`No source node with id "${source}".`);
        if (!nodes.some((n) => n.id === target)) return reject(`No target node with id "${target}".`);
        const edges = access.getEdges();
        if (edges.some((e) => e.source === source && e.target === target)) {
          return reject(`An edge from "${source}" to "${target}" already exists.`);
        }
        if (args.label !== void 0 && typeof args.label !== "string") {
          return reject("`label`, if provided, must be a string.");
        }
        const edge = {
          id: nextId("e"),
          source,
          target,
          type: "deletable",
          animated: true,
          label: typeof args.label === "string" ? args.label : void 0
        };
        return gate(
          nodes,
          edges,
          nodes,
          edges.concat(edge),
          () => access.applyEdges((eds) => eds.concat(edge)),
          () => ok({ id: edge.id, source, target })
        );
      }
      case "delete_edge": {
        const id = args.id;
        if (typeof id !== "string" || !id) return reject("`id` is required.");
        const curEdges = access.getEdges();
        if (!curEdges.some((e) => e.id === id)) return reject(`No edge with id "${id}".`);
        const curNodes = access.getNodes();
        const filterEdges = (eds) => eds.filter((e) => e.id !== id);
        return gate(
          curNodes,
          curEdges,
          curNodes,
          filterEdges(curEdges),
          () => access.applyEdges(filterEdges),
          () => ok({ id })
        );
      }
      case "validate": {
        const issues = access.validate(access.getNodes(), access.getEdges()).map(compactIssue);
        const errors = issues.filter((i) => i.severity === "error").length;
        const warnings = issues.filter((i) => i.severity === "warning").length;
        return ok({ issues, errors, warnings });
      }
      case "replace_model": {
        const rawNodes = args.nodes;
        const rawEdges = args.edges ?? [];
        if (!Array.isArray(rawNodes)) return reject("`nodes` must be an array.");
        if (!Array.isArray(rawEdges)) return reject("`edges` must be an array.");
        const nextNodes = [];
        const seenIds = /* @__PURE__ */ new Set();
        for (let i = 0; i < rawNodes.length; i++) {
          const raw = rawNodes[i];
          if (!isObject(raw)) return reject(`nodes[${i}] is not an object.`);
          const { id, type } = raw;
          if (typeof id !== "string" || !id) return reject(`nodes[${i}].id is required.`);
          if (seenIds.has(id)) return reject(`Duplicate node id "${id}".`);
          if (typeof type !== "string" || !type) return reject(`nodes[${i}].type is required.`);
          if (!nodeTypes[type]) return reject(`nodes[${i}] has unknown type "${type}".`);
          const data = isObject(raw.data) ? raw.data : void 0;
          const label = data && typeof data.label === "string" && data.label.trim() ? data.label : nodeTypes[type].label;
          const pos = isObject(raw.position) ? raw.position : {};
          const position = {
            x: isFiniteNumber(pos.x) ? pos.x : 0,
            y: isFiniteNumber(pos.y) ? pos.y : 0
          };
          seenIds.add(id);
          nextNodes.push({
            id,
            type,
            position,
            parentNode: typeof raw.parentNode === "string" ? raw.parentNode : void 0,
            data: { ...access.getDefaultData(type) || {}, ...data || {}, label, status: "idle" }
          });
        }
        for (const n of nextNodes) {
          if (n.parentNode && !seenIds.has(n.parentNode)) {
            return reject(`Node "${n.id}" references missing parentNode "${n.parentNode}".`);
          }
        }
        const nextEdges = [];
        const seenEdgeIds = /* @__PURE__ */ new Set();
        for (let i = 0; i < rawEdges.length; i++) {
          const raw = rawEdges[i];
          if (!isObject(raw)) return reject(`edges[${i}] is not an object.`);
          const { source, target } = raw;
          if (typeof source !== "string" || !seenIds.has(source)) {
            return reject(`edges[${i}] has dangling/invalid source "${String(source)}".`);
          }
          if (typeof target !== "string" || !seenIds.has(target)) {
            return reject(`edges[${i}] has dangling/invalid target "${String(target)}".`);
          }
          const id = typeof raw.id === "string" && raw.id ? raw.id : nextId("e");
          if (seenEdgeIds.has(id)) return reject(`Duplicate edge id "${id}".`);
          seenEdgeIds.add(id);
          nextEdges.push({
            id,
            source,
            target,
            type: "deletable",
            animated: true,
            label: typeof raw.label === "string" ? raw.label : void 0,
            sourceHandle: typeof raw.sourceHandle === "string" ? raw.sourceHandle : void 0,
            targetHandle: typeof raw.targetHandle === "string" ? raw.targetHandle : void 0
          });
        }
        return gate(
          access.getNodes(),
          access.getEdges(),
          nextNodes,
          nextEdges,
          () => {
            access.applyNodes(() => nextNodes);
            access.applyEdges(() => nextEdges);
          },
          () => ok({ nodeCount: nextNodes.length, edgeCount: nextEdges.length })
        );
      }
      // --- Navigation / selection / UI (only when the host wired `view`) ---
      case "get_ui_state":
      case "set_viewport":
      case "fit_view":
      case "focus_node":
      case "set_selection":
      case "open_node_editor":
      case "switch_process": {
        const view = access.view;
        if (!view) {
          return reject(`Tool "${toolName}" is unavailable: this editor host did not wire viewport/selection access.`);
        }
        switch (toolName) {
          case "get_ui_state": {
            return ok({
              processes: view.getProcesses(),
              selection: view.getSelection(),
              viewport: view.getViewport(),
              modal: view.getModalState(),
              swimlanes: view.getSwimlanes().map((s) => ({ id: s.id, name: s.name }))
            });
          }
          case "set_viewport": {
            if (!isFiniteNumber(args.x) || !isFiniteNumber(args.y)) {
              return reject("`x` and `y` must be finite numbers.");
            }
            if (!isFiniteNumber(args.zoom) || args.zoom <= 0) {
              return reject("`zoom` must be a finite number greater than 0.");
            }
            const duration = isFiniteNumber(args.durationMs) ? args.durationMs : void 0;
            view.setViewport({ x: args.x, y: args.y, zoom: args.zoom }, duration);
            return ok({ x: args.x, y: args.y, zoom: args.zoom });
          }
          case "fit_view": {
            let nodeIds;
            if (args.nodeIds !== void 0) {
              if (!Array.isArray(args.nodeIds) || !args.nodeIds.every((id) => typeof id === "string")) {
                return reject("`nodeIds` must be an array of strings.");
              }
              const known = new Set(access.getNodes().map((n) => n.id));
              const missing = args.nodeIds.filter((id) => !known.has(id));
              if (missing.length > 0) return reject(`Unknown node id(s): ${missing.join(", ")}.`);
              nodeIds = args.nodeIds;
            }
            if (args.padding !== void 0 && !isFiniteNumber(args.padding)) {
              return reject("`padding` must be a finite number.");
            }
            view.fitView({
              nodeIds,
              padding: isFiniteNumber(args.padding) ? args.padding : void 0,
              durationMs: isFiniteNumber(args.durationMs) ? args.durationMs : void 0,
              minZoom: isFiniteNumber(args.minZoom) ? args.minZoom : void 0,
              maxZoom: isFiniteNumber(args.maxZoom) ? args.maxZoom : void 0
            });
            return ok({ fitted: nodeIds ? nodeIds.length : "all" });
          }
          case "focus_node": {
            const id = args.id;
            if (typeof id !== "string" || !id) return reject("`id` is required.");
            if (!access.getNodes().some((n) => n.id === id)) return reject(`No node with id "${id}".`);
            if (args.zoom !== void 0 && (!isFiniteNumber(args.zoom) || args.zoom <= 0)) {
              return reject("`zoom`, if provided, must be a finite number greater than 0.");
            }
            const duration = isFiniteNumber(args.durationMs) ? args.durationMs : void 0;
            const select = args.select === void 0 ? true : args.select === true;
            view.centerNode(id, isFiniteNumber(args.zoom) ? args.zoom : void 0, duration);
            if (select) view.selectNode(id);
            return ok({ id, selected: select });
          }
          case "set_selection": {
            const kind = args.kind;
            if (kind !== "node" && kind !== "edge" && kind !== "swimlane" && kind !== "none") {
              return reject('`kind` must be one of "node", "edge", "swimlane", "none".');
            }
            if (kind === "none") {
              view.clearSelection();
              return ok({ kind: "none" });
            }
            const id = args.id;
            if (typeof id !== "string" || !id) return reject('`id` is required unless kind is "none".');
            if (kind === "node") {
              if (!access.getNodes().some((n) => n.id === id)) return reject(`No node with id "${id}".`);
              view.selectNode(id);
            } else if (kind === "edge") {
              if (!access.getEdges().some((e) => e.id === id)) return reject(`No edge with id "${id}".`);
              view.selectEdge(id);
            } else {
              if (!view.getSwimlanes().some((s) => s.id === id)) return reject(`No swimlane with id "${id}".`);
              view.selectSwimlane(id);
            }
            return ok({ kind, id });
          }
          case "open_node_editor": {
            const nodeId = args.nodeId;
            if (typeof nodeId !== "string" || !nodeId) return reject("`nodeId` is required.");
            if (!access.getNodes().some((n) => n.id === nodeId)) return reject(`No node with id "${nodeId}".`);
            if (args.tabId !== void 0 && (typeof args.tabId !== "string" || !args.tabId)) {
              return reject("`tabId`, if provided, must be a non-empty string.");
            }
            const tabId = typeof args.tabId === "string" ? args.tabId : void 0;
            view.selectNode(nodeId);
            view.openNodeEditor(nodeId, tabId);
            return ok({ nodeId, tabId: tabId ?? "properties" });
          }
          case "switch_process": {
            const processId = args.processId;
            if (typeof processId !== "string" || !processId) return reject("`processId` is required.");
            const procs = view.getProcesses();
            const target = procs.find((p) => p.id === processId);
            if (!target) return reject(`No process with id "${processId}".`);
            if (!target.active) view.switchProcess(processId);
            if (args.fit === void 0 || args.fit === true) view.fitView({});
            return ok({ processId, name: target.name });
          }
          default:
            return reject(`Unknown tool "${toolName}".`);
        }
      }
      default:
        return reject(`Unknown tool "${toolName}".`);
    }
  };
  return {
    kind: "workflow",
    guidelines: buildGuidelines(access.getNodeTypes(), !!access.view),
    tools,
    invoke
  };
}
const useAiCapability = ({
  nodes,
  edges,
  setNodes,
  setEdges,
  processes,
  activeProcessId,
  swimlanes,
  ruleSets,
  selectedNodeId,
  selectedEdgeId,
  selectedSwimlaneId,
  modalOpen,
  modalNodeId,
  modalTabId,
  fitView,
  focusNode,
  focusAndSelectNode,
  selectNode,
  selectEdge,
  selectSwimlane,
  clearSelection,
  openModalAtTab,
  switchProcess,
  onAiCapabilityReady
}) => {
  const stateRef = useRef({
    nodes,
    edges,
    processes,
    activeProcessId,
    swimlanes,
    ruleSets,
    selectedNodeId,
    selectedEdgeId,
    selectedSwimlaneId,
    modalOpen,
    modalNodeId,
    modalTabId
  });
  stateRef.current = {
    nodes,
    edges,
    processes,
    activeProcessId,
    swimlanes,
    ruleSets,
    selectedNodeId,
    selectedEdgeId,
    selectedSwimlaneId,
    modalOpen,
    modalNodeId,
    modalTabId
  };
  const opsRef = useRef({ fitView, focusNode, focusAndSelectNode, selectNode, selectEdge, selectSwimlane, clearSelection, openModalAtTab, switchProcess });
  opsRef.current = { fitView, focusNode, focusAndSelectNode, selectNode, selectEdge, selectSwimlane, clearSelection, openModalAtTab, switchProcess };
  const reactFlow = useReactFlow();
  const reactFlowRef = useRef(reactFlow);
  reactFlowRef.current = reactFlow;
  const onReadyRef = useRef(onAiCapabilityReady);
  onReadyRef.current = onAiCapabilityReady;
  const capability = useMemo(() => {
    const view = {
      getSwimlanes: () => stateRef.current.swimlanes,
      getProcesses: () => stateRef.current.processes.map((p) => ({ id: p.id, name: p.name, active: p.id === stateRef.current.activeProcessId })),
      getViewport: () => {
        const vp = reactFlowRef.current.getViewport();
        return { x: vp.x, y: vp.y, zoom: vp.zoom };
      },
      getSelection: () => {
        const s = stateRef.current;
        if (s.selectedNodeId) return { kind: "node", id: s.selectedNodeId };
        if (s.selectedEdgeId) return { kind: "edge", id: s.selectedEdgeId };
        if (s.selectedSwimlaneId) return { kind: "swimlane", id: s.selectedSwimlaneId };
        return { kind: "none", id: null };
      },
      getModalState: () => {
        const s = stateRef.current;
        return { open: s.modalOpen, nodeId: s.modalNodeId, tabId: s.modalTabId };
      },
      setViewport: (v, durationMs) => reactFlowRef.current.setViewport({ x: v.x, y: v.y, zoom: v.zoom }, durationMs ? { duration: durationMs } : void 0),
      fitView: (opts) => {
        const nodeArg = opts.nodeIds && opts.nodeIds.length > 0 ? opts.nodeIds.map((id) => ({ id })) : void 0;
        opsRef.current.fitView({
          nodes: nodeArg,
          padding: opts.padding,
          duration: opts.durationMs ?? 600,
          minZoom: opts.minZoom,
          maxZoom: opts.maxZoom
        });
      },
      centerNode: (nodeId, zoom, durationMs) => {
        const node = stateRef.current.nodes.find((n) => n.id === nodeId);
        if (!node) return;
        reactFlowRef.current.setCenter(node.position.x + 90, node.position.y + 32, {
          zoom: zoom ?? 1.2,
          duration: durationMs ?? 800
        });
      },
      selectNode: (nodeId) => opsRef.current.focusAndSelectNode(nodeId),
      selectEdge: (edgeId) => opsRef.current.selectEdge(edgeId),
      selectSwimlane: (swimlaneId) => opsRef.current.selectSwimlane(swimlaneId),
      clearSelection: () => opsRef.current.clearSelection(),
      openNodeEditor: (nodeId, tabId) => opsRef.current.openModalAtTab(nodeId, tabId),
      switchProcess: (processId) => opsRef.current.switchProcess(processId)
    };
    const access = {
      getNodes: () => stateRef.current.nodes,
      getEdges: () => stateRef.current.edges,
      getNodeTypes: () => getNodeTypes(),
      getDefaultData: (type) => getDefaultData(type),
      applyNodes: (updater) => setNodes(updater),
      applyEdges: (updater) => setEdges(updater),
      // Validate a CANDIDATE diagram: splice the supplied nodes/edges into the
      // active process and run the editor's REAL validateDiagram over the whole
      // project (so cross-process + ruleset rules still fire). Other process
      // state (swimlanes) is read from the latest refs.
      validate: (candidateNodes, candidateEdges) => {
        const s = stateRef.current;
        const merged = s.processes.map(
          (p) => p.id === s.activeProcessId ? { ...p, nodes: candidateNodes, edges: candidateEdges, swimlanes: s.swimlanes } : p
        );
        return validateDiagram(merged, s.ruleSets);
      },
      view
    };
    return createWorkflowAiCapability(access);
  }, [setNodes, setEdges]);
  useEffect(() => {
    var _a;
    (_a = onReadyRef.current) == null ? void 0 : _a.call(onReadyRef, capability);
    return () => {
      var _a2;
      return (_a2 = onReadyRef.current) == null ? void 0 : _a2.call(onReadyRef, null);
    };
  }, [capability]);
};
const ControllerContent = ({
  initialData,
  initialRuleSets,
  onBack,
  onSave,
  onSaveAndQuit,
  onAutoSave,
  isLoading: externalLoading = false,
  customComponents = {},
  customNodes,
  aiService,
  directoryService: externalDirectoryService,
  dmnDefinitions,
  callableProcesses,
  monitor,
  onAiCapabilityReady
}) => {
  var _a, _b, _c;
  const [fallbackAi, setFallbackAi] = useState(null);
  const [customNodesVersion, setCustomNodesVersion] = useState(0);
  useEffect(() => {
    if (customNodes) {
      registerNodes(customNodes);
      setCustomNodesVersion((v) => v + 1);
    }
  }, [customNodes]);
  useEffect(() => {
    if (!aiService && !fallbackAi) {
      import("./geminiService-DxibEZqK.js").then((m) => {
        setFallbackAi(m.geminiService);
      });
    }
  }, [aiService, fallbackAi]);
  const editor = useWorkflowEditor({
    initialData,
    initialRuleSets,
    onAutoSave
  });
  const aiSelectEdge = useMemo(
    () => (edgeId) => {
      const edge = editor.edges.find((e) => e.id === edgeId);
      if (edge) editor.onEdgeClick({}, edge);
    },
    [editor.edges, editor.onEdgeClick]
  );
  const aiClearSelection = useMemo(
    () => () => editor.onPaneClick(),
    [editor.onPaneClick]
  );
  useAiCapability({
    nodes: editor.nodes,
    edges: editor.edges,
    setNodes: editor.setNodes,
    setEdges: editor.setEdges,
    processes: editor.processes,
    activeProcessId: editor.activeProcessId,
    swimlanes: editor.swimlanes,
    ruleSets: editor.ruleSets,
    selectedNodeId: ((_a = editor.selectedNode) == null ? void 0 : _a.id) ?? null,
    selectedEdgeId: ((_b = editor.selectedEdge) == null ? void 0 : _b.id) ?? null,
    selectedSwimlaneId: editor.selectedSwimlaneId ?? null,
    modalOpen: editor.isModalOpen,
    modalNodeId: editor.isModalOpen ? ((_c = editor.selectedNode) == null ? void 0 : _c.id) ?? null : null,
    modalTabId: editor.isModalOpen ? editor.activeTabId ?? null : null,
    fitView: editor.fitView,
    focusNode: editor.focusNode,
    focusAndSelectNode: editor.focusAndSelectNode,
    selectNode: editor.focusAndSelectNode,
    selectEdge: aiSelectEdge,
    selectSwimlane: editor.selectSwimlane,
    clearSelection: aiClearSelection,
    openModalAtTab: editor.openModalAtTab,
    switchProcess: editor.handleSelectProcess,
    onAiCapabilityReady
  });
  const resolvedEdges = useMemo(
    () => resolveTargetHandles(editor.nodes, editor.edges),
    [editor.nodes, editor.edges]
  );
  const decoratedNodes = useMemo(() => {
    const usage = /* @__PURE__ */ new Map();
    for (const edge of resolvedEdges) {
      if (edge.targetHandle !== "t-left" && edge.targetHandle !== "t-top") continue;
      const u = usage.get(edge.target) || { left: false, top: false };
      if (edge.targetHandle === "t-left") u.left = true;
      else u.top = true;
      usage.set(edge.target, u);
    }
    const counts = monitor == null ? void 0 : monitor.nodeCounts;
    const selectedId = (monitor == null ? void 0 : monitor.selectedNodeId) ?? null;
    let changed = false;
    const next = editor.nodes.map((n) => {
      var _a2, _b2, _c2, _d, _e;
      const u = usage.get(n.id) || { left: false, top: false };
      const prevUsage = (_a2 = n.data) == null ? void 0 : _a2.targetHandleUsage;
      const usageSame = prevUsage && prevUsage.left === u.left && prevUsage.top === u.top;
      const monitorOn = !!monitor;
      const engineId = (_b2 = n.data) == null ? void 0 : _b2.engineNodeId;
      const count = monitor && engineId != null ? (counts == null ? void 0 : counts[engineId]) ?? 0 : void 0;
      const isSelected = monitor && engineId != null ? selectedId === engineId : void 0;
      const monitorSame = ((_c2 = n.data) == null ? void 0 : _c2.monitorMode) === monitorOn && ((_d = n.data) == null ? void 0 : _d.monitorCount) === count && ((_e = n.data) == null ? void 0 : _e.monitorSelected) === isSelected;
      if (usageSame && monitorSame) return n;
      changed = true;
      return { ...n, data: { ...n.data, targetHandleUsage: u, monitorMode: monitorOn, monitorCount: count, monitorSelected: isSelected } };
    });
    return changed ? next : editor.nodes;
  }, [editor.nodes, resolvedEdges, monitor]);
  const simulator = useWorkflowSimulation({
    nodes: editor.nodes,
    setNodes: editor.setNodes,
    edges: editor.edges,
    fitView: editor.fitView,
    focusNode: editor.focusNode
  });
  const dmnServiceInstance = useMemo(() => {
    return new DmnService(dmnDefinitions || mockDmnFiles);
  }, [dmnDefinitions]);
  const config = useMemo(() => ({
    nodeTypes: getNodeTypes(),
    nodeCategories: NODE_CATEGORIES,
    propertyRegistry: getPropertyRegistry(),
    componentRegistry: { ...defaultComponentRegistry, ...customComponents },
    services: {
      ai: aiService || fallbackAi || {
        generateWorkflowCompletion: async () => "Initializing AI...",
        evaluateCondition: async () => true
      },
      directory: externalDirectoryService || directoryService,
      dmn: dmnServiceInstance,
      callableProcesses
    },
    actions: {
      openModal: editor.openModalAtTab
    },
    errorRulesets: {
      list: editor.ruleSets,
      create: editor.createRuleSet,
      update: editor.updateRuleSet,
      remove: editor.removeRuleSet,
      usageCount: editor.ruleSetUsageCount
    }
  }), [customComponents, customNodesVersion, editor.openModalAtTab, aiService, fallbackAi, dmnServiceInstance, externalDirectoryService, callableProcesses, editor.ruleSets, editor.createRuleSet, editor.updateRuleSet, editor.removeRuleSet, editor.ruleSetUsageCount]);
  const onMonitorNodeClick = useMemo(
    () => (_, node) => {
      var _a2, _b2;
      const engineId = (_a2 = node.data) == null ? void 0 : _a2.engineNodeId;
      if (engineId != null) (_b2 = monitor == null ? void 0 : monitor.onNodeSelect) == null ? void 0 : _b2.call(monitor, engineId);
    },
    [monitor]
  );
  const onNodeClick = monitor ? onMonitorNodeClick : simulator.simulationState.isRunning ? void 0 : editor.onNodeClick;
  const onEdgeClick = monitor || simulator.simulationState.isRunning ? void 0 : editor.onEdgeClick;
  const onPaneClick = monitor || simulator.simulationState.isRunning ? void 0 : editor.onPaneClick;
  const onNodeDoubleClick = monitor || simulator.simulationState.isRunning ? void 0 : editor.onNodeDoubleClick;
  const onNodeContextMenu = monitor || simulator.simulationState.isRunning ? void 0 : editor.onNodeContextMenu;
  const handleExternalSave = async () => {
    if (onSave) {
      editor.setIsLoading(true);
      try {
        await onSave(editor.getProjectData());
      } finally {
        editor.setIsLoading(false);
      }
    }
  };
  const handleSaveAndQuitClick = async () => {
    if (onSaveAndQuit) {
      editor.setIsLoading(true);
      try {
        await onSaveAndQuit(editor.getProjectData());
      } finally {
        editor.setIsLoading(false);
      }
    }
  };
  const handleExport = (opts) => {
    editor.handleSaveProject(opts);
  };
  const isGlobalLoading = editor.isLoading || externalLoading;
  return /* @__PURE__ */ jsx(EditorProvider, { config, children: simulator.simulationState.isRunning ? /* @__PURE__ */ jsx(
    WorkflowSimulator,
    {
      nodes: editor.nodes,
      edges: editor.edges,
      simulationState: simulator.simulationState,
      onToggleSimulation: simulator.stopSimulation,
      onResetSimulation: simulator.resetSimulation,
      onSimulationAction: simulator.handleSimulationAction,
      suggestedPath: simulator.suggestedPath,
      activeProcessId: editor.activeProcessId,
      processes: editor.processes,
      onSelectProcess: editor.handleSelectProcess,
      onCreateProcess: editor.handleCreateProcess,
      onDeleteProcess: editor.handleDeleteProcess,
      onSaveProject: handleExport,
      onLoadProject: editor.handleLoadProject,
      onBack,
      onSave: onSave ? handleExternalSave : void 0,
      onSaveAndQuit: onSaveAndQuit ? handleSaveAndQuitClick : void 0
    }
  ) : /* @__PURE__ */ jsx(
    WorkflowEditor,
    {
      nodes: decoratedNodes,
      edges: resolvedEdges,
      onNodesChange: editor.onNodesChange,
      onEdgesChange: editor.onEdgesChange,
      onConnect: editor.onConnect,
      onConnectStart: editor.onConnectStart,
      onConnectEnd: editor.onConnectEnd,
      onDrop: editor.onDrop,
      onDragOver: editor.onDragOver,
      simulationState: simulator.simulationState,
      onToggleSimulation: simulator.startSimulation,
      onResetSimulation: simulator.resetSimulation,
      activeProcessId: editor.activeProcessId,
      processes: editor.processes,
      onSelectProcess: editor.handleSelectProcess,
      onCreateProcess: editor.handleCreateProcess,
      onCreateSubProcess: editor.handleCreateSubProcess,
      onDeleteProcess: editor.handleDeleteProcess,
      onUpdateProcess: editor.handleUpdateProcess,
      onSaveProject: handleExport,
      onLoadProject: editor.handleLoadProject,
      onAutoLayout: editor.handleAutoLayout,
      onBack,
      onSave: onSave ? handleExternalSave : void 0,
      onSaveAndQuit: onSaveAndQuit ? handleSaveAndQuitClick : void 0,
      onNodeClick,
      onEdgeClick,
      onNodeDoubleClick,
      onNodeContextMenu,
      onNodeDragStop: editor.onNodeDragStop,
      onPaneClick,
      swimlanes: editor.swimlanes,
      selectedSwimlaneId: editor.selectedSwimlaneId,
      selectSwimlane: editor.selectSwimlane,
      addSwimlane: editor.addSwimlane,
      renameSwimlane: editor.renameSwimlane,
      moveSwimlane: editor.moveSwimlane,
      moveSwimlaneBy: editor.moveSwimlaneBy,
      resizeSwimlane: editor.resizeSwimlane,
      setSwimlaneColor: editor.setSwimlaneColor,
      removeSwimlane: editor.removeSwimlane,
      onSelectionChange: editor.onSelectionChange,
      selectedNode: editor.selectedNode,
      selectedEdge: editor.selectedEdge,
      updateNodeData: editor.updateNodeData,
      updateEdgeData: editor.updateEdgeData,
      onRenameNode: editor.renameNode,
      isModalOpen: editor.isModalOpen,
      setIsModalOpen: editor.setIsModalOpen,
      activeTabId: editor.activeTabId,
      setActiveTabId: editor.setActiveTabId,
      isDeployModalOpen: editor.isDeployModalOpen,
      setIsDeployModalOpen: editor.setIsDeployModalOpen,
      monitorMode: !!monitor,
      isLoading: isGlobalLoading,
      autoSaveState: editor.autoSaveState,
      variableContext: editor.variableContext,
      validationIssues: editor.validation.issues,
      validationErrors: editor.validation.errors,
      validationWarnings: editor.validation.warnings,
      processIssueCounts: editor.validation.processCounts,
      onFocusNode: editor.focusAndSelectNode
    }
  ) });
};
const Controller = ({ theme, ...rest }) => {
  return /* @__PURE__ */ jsx(ThemeProvider, { forcedTheme: theme, children: /* @__PURE__ */ jsx(ControllerContent, { ...rest }) });
};
const ErrorFallback = ({ error, resetErrorBoundary }) => {
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center justify-center min-h-screen bg-slate-50 text-slate-900 p-6", children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md bg-white rounded-xl shadow-xl border border-slate-200 overflow-hidden", children: [
    /* @__PURE__ */ jsxs("div", { className: "bg-red-50 p-6 flex flex-col items-center text-center border-b border-red-100", children: [
      /* @__PURE__ */ jsx("div", { className: "w-12 h-12 bg-red-100 text-red-600 rounded-full flex items-center justify-center mb-4", children: /* @__PURE__ */ jsx(TriangleAlert, { size: 24 }) }),
      /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-red-900 mb-1", children: "Application Error" }),
      /* @__PURE__ */ jsx("p", { className: "text-sm text-red-600", children: "Something went wrong while rendering this component." })
    ] }),
    /* @__PURE__ */ jsxs("div", { className: "p-6 space-y-4", children: [
      /* @__PURE__ */ jsx("div", { className: "bg-slate-50 rounded-lg p-4 border border-slate-200", children: /* @__PURE__ */ jsx("p", { className: "text-xs font-mono text-slate-600 break-words", children: (error == null ? void 0 : error.message) || "Unknown error occurred" }) }),
      /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: resetErrorBoundary || (() => window.location.reload()),
            className: "w-full py-2.5 bg-teal-600 hover:bg-teal-700 text-white rounded-lg font-bold flex items-center justify-center gap-2 transition-colors shadow-sm",
            children: [
              /* @__PURE__ */ jsx(RefreshCcw, { size: 16 }),
              " Try Again"
            ]
          }
        ),
        /* @__PURE__ */ jsxs(
          "button",
          {
            onClick: () => window.location.href = "/",
            className: "w-full py-2.5 bg-white border border-slate-200 hover:bg-slate-50 text-slate-600 rounded-lg font-bold flex items-center justify-center gap-2 transition-colors",
            children: [
              /* @__PURE__ */ jsx(House, { size: 16 }),
              " Return Home"
            ]
          }
        )
      ] })
    ] })
  ] }) });
};
class ErrorBoundary extends React.Component {
  constructor() {
    super(...arguments);
    this.state = {
      hasError: false
    };
    this.resetErrorBoundary = () => {
      this.setState({ hasError: false, error: void 0 });
    };
  }
  static getDerivedStateFromError(error) {
    return { hasError: true, error };
  }
  // Standard lifecycle method for catching errors in descendants.
  componentDidCatch(error, errorInfo) {
    console.error("Error caught by boundary:", error, errorInfo);
  }
  render() {
    if (this.state.hasError) {
      if (this.props.fallback) {
        return this.props.fallback;
      }
      return /* @__PURE__ */ jsx(
        ErrorFallback,
        {
          error: this.state.error,
          resetErrorBoundary: this.resetErrorBoundary
        }
      );
    }
    return this.props.children;
  }
}
const isWorkflowProject = (data) => {
  return typeof data === "object" && data !== null && "Processes" in data && Array.isArray(data.Processes);
};
const WorkflowEditorWrapper = (props) => {
  const { initialData, customNodes, ...restProps } = props;
  if (customNodes) registerNodes(customNodes);
  const parsedInitialData = useMemo(() => {
    if (!initialData) return void 0;
    if (isWorkflowProject(initialData)) {
      return parseWorkflowProject(initialData);
    }
    return initialData;
  }, [initialData]);
  const parsedRuleSets = useMemo(() => {
    if (initialData && isWorkflowProject(initialData)) {
      return parseProjectRuleSets(initialData);
    }
    return restProps.initialRuleSets;
  }, [initialData, restProps.initialRuleSets]);
  return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(ToastProvider, { children: /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx("div", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ jsx(Controller, { ...restProps, customNodes, initialData: parsedInitialData, initialRuleSets: parsedRuleSets }) }) }) }) });
};
export {
  ERROR_RULESET_KIND,
  NodeCategory,
  WorkflowEditorWrapper,
  WorkflowEditorWrapper as default
};
//# sourceMappingURL=index.js.map
