@runtypelabs/persona 4.7.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/animations/glyph-cycle.cjs +2 -2
  2. package/dist/animations/glyph-cycle.d.cts +1 -1
  3. package/dist/animations/glyph-cycle.d.ts +1 -1
  4. package/dist/animations/glyph-cycle.js +2 -2
  5. package/dist/animations/{types-CSmiKRVa.d.cts → types-BsZtXPKK.d.cts} +43 -3
  6. package/dist/animations/{types-CSmiKRVa.d.ts → types-BsZtXPKK.d.ts} +43 -3
  7. package/dist/animations/wipe.cjs +2 -2
  8. package/dist/animations/wipe.d.cts +1 -1
  9. package/dist/animations/wipe.d.ts +1 -1
  10. package/dist/chunk-5EIIHQLQ.js +1 -0
  11. package/dist/codegen.cjs +12 -12
  12. package/dist/codegen.js +14 -14
  13. package/dist/index.cjs +91 -68
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +877 -172
  16. package/dist/index.d.ts +877 -172
  17. package/dist/index.global.js +81 -57
  18. package/dist/index.global.js.map +1 -1
  19. package/dist/index.js +91 -68
  20. package/dist/index.js.map +1 -1
  21. package/dist/install.global.js +1 -1
  22. package/dist/install.global.js.map +1 -1
  23. package/dist/launcher.global.js +3 -2
  24. package/dist/launcher.global.js.map +1 -1
  25. package/dist/markdown-parsers.js +24 -24
  26. package/dist/plugin-kit.cjs +1 -1
  27. package/dist/plugin-kit.js +1 -1
  28. package/dist/runtype-tts-entry-UJAEF7NZ.js +1 -0
  29. package/dist/runtype-tts.js +1 -1
  30. package/dist/session-reconnect-JKIJBHS5.js +1 -0
  31. package/dist/smart-dom-reader.cjs +17 -17
  32. package/dist/smart-dom-reader.d.cts +753 -15
  33. package/dist/smart-dom-reader.d.ts +753 -15
  34. package/dist/smart-dom-reader.js +17 -17
  35. package/dist/testing.cjs +3 -3
  36. package/dist/testing.js +3 -3
  37. package/dist/theme-editor-preview.cjs +81 -58
  38. package/dist/theme-editor-preview.d.cts +761 -15
  39. package/dist/theme-editor-preview.d.ts +761 -15
  40. package/dist/theme-editor-preview.js +81 -58
  41. package/dist/theme-editor.cjs +6 -6
  42. package/dist/theme-editor.d.cts +753 -15
  43. package/dist/theme-editor.d.ts +753 -15
  44. package/dist/theme-editor.js +10 -10
  45. package/dist/theme-reference.cjs +1 -1
  46. package/dist/theme-reference.d.cts +74 -0
  47. package/dist/theme-reference.d.ts +74 -0
  48. package/dist/theme-reference.js +1 -1
  49. package/dist/voice-worklet-player.cjs +2 -2
  50. package/dist/voice-worklet-player.js +2 -2
  51. package/dist/webmcp-polyfill.js +2 -2
  52. package/dist/widget.css +1 -1
  53. package/package.json +2 -3
  54. package/src/artifacts-session.test.ts +178 -0
  55. package/src/client.test.ts +186 -1
  56. package/src/client.ts +92 -9
  57. package/src/components/artifact-card.test.ts +333 -0
  58. package/src/components/artifact-card.ts +75 -28
  59. package/src/components/artifact-inline.test.ts +1328 -0
  60. package/src/components/artifact-inline.ts +920 -0
  61. package/src/components/artifact-pane.test.ts +1042 -0
  62. package/src/components/artifact-pane.ts +440 -131
  63. package/src/components/artifact-preview.test.ts +1155 -0
  64. package/src/components/artifact-preview.ts +994 -0
  65. package/src/components/pill-composer-builder.test.ts +6 -2
  66. package/src/components/pill-composer-builder.ts +6 -6
  67. package/src/components/reasoning-bubble.ts +1 -13
  68. package/src/components/registry.ts +38 -3
  69. package/src/components/tool-bubble.ts +1 -13
  70. package/src/defaults.ts +1 -0
  71. package/src/generated/runtype-openapi-contract.ts +55 -3
  72. package/src/index-core.ts +20 -1
  73. package/src/index.ts +8 -0
  74. package/src/markdown-parsers-loader.test.ts +158 -0
  75. package/src/markdown-parsers-loader.ts +74 -9
  76. package/src/runtime/host-layout.test.ts +163 -0
  77. package/src/runtime/host-layout.ts +110 -7
  78. package/src/runtime/init.ts +18 -61
  79. package/src/session.ts +76 -22
  80. package/src/styles/widget.css +773 -26
  81. package/src/theme-editor/preview.ts +2 -0
  82. package/src/theme-editor/sections.test.ts +26 -1
  83. package/src/theme-editor/sections.ts +10 -2
  84. package/src/theme-reference.ts +2 -2
  85. package/src/tool-call-display-defaults.test.ts +1 -0
  86. package/src/types/theme.ts +77 -0
  87. package/src/types.ts +516 -17
  88. package/src/ui.artifact-pane-gating.test.ts +636 -0
  89. package/src/ui.component-directive.test.ts +104 -0
  90. package/src/ui.composer-bar.test.ts +60 -2
  91. package/src/ui.detached-panel.test.ts +1049 -0
  92. package/src/ui.tool-display.test.ts +51 -0
  93. package/src/ui.ts +698 -109
  94. package/src/utils/artifact-custom-actions.ts +128 -0
  95. package/src/utils/artifact-display.test.ts +42 -0
  96. package/src/utils/artifact-display.ts +84 -0
  97. package/src/utils/artifact-file.test.ts +116 -0
  98. package/src/utils/artifact-file.ts +117 -0
  99. package/src/utils/artifact-gate.test.ts +112 -5
  100. package/src/utils/artifact-gate.ts +39 -14
  101. package/src/utils/artifact-loading-status.ts +55 -0
  102. package/src/utils/artifact-status-label.ts +190 -0
  103. package/src/utils/buttons.ts +7 -1
  104. package/src/utils/code-highlight.test.ts +186 -0
  105. package/src/utils/code-highlight.ts +400 -0
  106. package/src/utils/icons.ts +2 -0
  107. package/src/utils/roving-tablist.test.ts +152 -0
  108. package/src/utils/roving-tablist.ts +111 -0
  109. package/src/utils/spinner.ts +45 -0
  110. package/src/utils/theme.test.ts +48 -0
  111. package/src/utils/theme.ts +7 -0
  112. package/src/utils/tokens.ts +91 -0
  113. package/src/utils/tool-loading-animation.test.ts +32 -0
  114. package/src/utils/tool-loading-animation.ts +24 -0
  115. package/dist/chunk-DFBSCFYN.js +0 -1
  116. package/dist/runtype-tts-entry-HFUV2UF7.js +0 -1
  117. package/dist/session-reconnect-U77QFUR7.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/launcher-global.ts","../src/utils/dom.ts","../src/utils/positioning.ts","../src/utils/dock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/activity.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-left.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-up-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/at-sign.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ban.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bell.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bookmark.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bot.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/building.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/calendar-days.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/calendar.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/camera.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-left.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/circle-check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/circle-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clipboard-copy.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clipboard.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/copy.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/credit-card.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/dollar-sign.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/download.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ellipsis-vertical.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ellipsis.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/eye-off.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/external-link.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/eye.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-code.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-spreadsheet.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-text.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/files.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/film.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/flag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/folder-open.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/folder.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/funnel.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/gift.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/globe.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/hash.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/headphones.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/heart.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/history.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/house.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/image-plus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/image.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/info.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/key.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/link.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/loader-circle.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/loader.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/lock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/mail.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/map-pin.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/maximize.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/menu.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/message-circle.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/message-square.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/mic.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/minimize.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/minus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/monitor.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/moon.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/package.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/paperclip.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/pause.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/pencil.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/percent.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/phone.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/play.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/plus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/receipt.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/refresh-cw.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/rotate-cw.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/save.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/search.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/send.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/settings.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/share.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-alert.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shopping-bag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shopping-cart.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/smartphone.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/sparkles.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/square.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/star.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/store.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/sun.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/tag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/thumbs-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/thumbs-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/timer.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/trash-2.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/trash.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/triangle-alert.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/truck.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/upload.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/user.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/volume-2.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/volume-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/wallet.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/zap.ts","../src/utils/icons.ts","../src/utils/constants.ts","../src/components/launcher.ts","../src/utils/deep-merge.ts","../src/defaults.ts","../src/utils/tokens.ts","../src/utils/theme.ts"],"sourcesContent":["/**\n * Critical-path launcher entry: built to `launcher.global.js` (IIFE).\n *\n * Ships ONLY the real collapsed launcher (`createLauncherButton`) plus the\n * theme application path, so the launcher paints pixel-identically to the full\n * widget from a tiny bundle. The heavy conversation panel is deferred until\n * first open by the installer (Phase 2).\n *\n * The full Lucide icon registry is kept on purpose: any *supported* icon a site\n * configures (`launcher.agentIconName` / `callToActionIconName`) must render at\n * first paint with no flash, and the only synchronously-available source is this\n * bundle. See the \"Deferred Launcher Loading\" pattern in CLAUDE.md.\n *\n * Public global (via tsup `--global-name AgentWidgetLauncher`):\n *\n * window.AgentWidgetLauncher.mount({ target, config, onOpen })\n * → { root, element, update, destroy }\n */\nimport { createLauncherButton } from \"./components/launcher\";\nimport { applyThemeVariables } from \"./utils/theme\";\nimport { DEFAULT_LAUNCHER_CONFIG } from \"./defaults\";\nimport type { AgentWidgetConfig } from \"./types\";\n\nexport interface AgentWidgetLauncherMountOptions {\n /** Where to mount. Defaults to `document.body` (the floating launcher is `position: fixed`). */\n target?: string | HTMLElement;\n /** The same widget config the full widget will receive: drives theme, icons, position, copy. */\n config?: AgentWidgetConfig;\n /** Called when the launcher is clicked; the installer loads the full widget and opens the panel. */\n onOpen: () => void;\n}\n\nexport interface AgentWidgetLauncherHandle {\n /** The `[data-persona-root]` wrapper that carries the theme CSS variables. */\n root: HTMLElement;\n /** The launcher button element itself. */\n element: HTMLButtonElement;\n /** Re-apply theme + re-render the launcher with new config. */\n update: (config: AgentWidgetConfig) => void;\n /** Remove the critical launcher (called at handoff once the full widget is mounted). */\n destroy: () => void;\n}\n\n/**\n * Marks the critical launcher's wrapper so the installer can find/remove it at\n * handoff without disturbing the full widget's own `[data-persona-root]`.\n */\nexport const CRITICAL_LAUNCHER_ATTR = \"data-persona-launcher-critical\";\n\nconst resolveTarget = (target?: string | HTMLElement): HTMLElement => {\n if (target instanceof HTMLElement) return target;\n if (typeof target === \"string\") {\n const el = document.querySelector<HTMLElement>(target);\n if (el) return el;\n }\n return document.body;\n};\n\nconst mergeCriticalLauncherConfig = (\n config?: AgentWidgetConfig\n): AgentWidgetConfig => ({\n ...config,\n launcher: {\n ...DEFAULT_LAUNCHER_CONFIG,\n ...config?.launcher,\n dock: {\n ...DEFAULT_LAUNCHER_CONFIG.dock,\n ...config?.launcher?.dock,\n },\n },\n});\n\n/**\n * Mount the real collapsed launcher from the critical bundle.\n *\n * Mirrors the full widget's DOM exactly (`runtime/init.ts` + `ui.ts`): a\n * `[data-persona-root]` wrapper carries the theme CSS variables and the launcher\n * button is its child. Keeping the theme vars on the wrapper (not the button)\n * leaves the button's own inline style byte-identical to the full widget's, so\n * the eventual mount-then-remove handoff is invisible.\n */\nexport const mount = (\n options: AgentWidgetLauncherMountOptions\n): AgentWidgetLauncherHandle => {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n throw new Error(\n \"AgentWidgetLauncher can only be mounted in a browser environment\"\n );\n }\n\n const { onOpen } = options;\n const target = resolveTarget(options.target);\n\n // Render from the same launcher defaults the full widget uses without pulling\n // the full widget default object into the critical bundle.\n const config = mergeCriticalLauncherConfig(options.config);\n\n const root = document.createElement(\"div\");\n root.setAttribute(\"data-persona-root\", \"true\");\n root.setAttribute(CRITICAL_LAUNCHER_ATTR, \"true\");\n applyThemeVariables(root, config);\n\n const launcher = createLauncherButton(config, onOpen);\n root.appendChild(launcher.element);\n target.appendChild(root);\n\n return {\n root,\n element: launcher.element,\n update: (next: AgentWidgetConfig) => {\n const merged = mergeCriticalLauncherConfig(next);\n applyThemeVariables(root, merged);\n launcher.update(merged);\n },\n destroy: () => {\n launcher.destroy();\n root.remove();\n },\n };\n};\n\n// Note: the `window.AgentWidgetLauncher` global is created by tsup's\n// `--global-name AgentWidgetLauncher` at build time. The installer\n// (`install.ts`) declares the `Window` augmentation it needs; this entry never\n// reads the global, so re-declaring it here would only create a cross-file type\n// conflict.\n","/**\n * DOM utility functions\n */\nexport const createElement = <K extends keyof HTMLElementTagNameMap>(\n tag: K,\n className?: string\n): HTMLElementTagNameMap[K] => {\n const element = document.createElement(tag);\n if (className) {\n element.className = className;\n }\n return element;\n};\n\nexport const createElementInDocument = <K extends keyof HTMLElementTagNameMap>(\n documentRef: Document,\n tag: K,\n className?: string\n): HTMLElementTagNameMap[K] => {\n const element = documentRef.createElement(tag);\n if (className) {\n element.className = className;\n }\n return element;\n};\n\nexport const createFragment = (): DocumentFragment => {\n return document.createDocumentFragment();\n};\n\nexport interface CreateNodeOptions {\n /** Sets `element.className`. */\n className?: string;\n /** Sets `element.textContent` before any `children` are appended. */\n text?: string;\n /** Attribute name → value pairs applied via `setAttribute`. */\n attrs?: Record<string, string>;\n /**\n * Inline styles. Nullish (`undefined`/`null`) values are skipped so callers\n * can inline conditionals (e.g. `borderColor: cfg.borderColor`) without an\n * `if` per property. Note this only *sets* values, it never clears them, so\n * prefer it for constructing fresh elements rather than re-styling live ones.\n */\n style?: Partial<CSSStyleDeclaration>;\n}\n\n/**\n * Ergonomic element factory that bundles the className + attribute + style +\n * children boilerplate the widget's DOM builders otherwise repeat by hand.\n *\n * `createElement` stays the right tool for the simple `(tag, className)` case;\n * reach for `createNode` when a node also needs attributes, inline styles, or\n * up-front children. Nullish `children` are skipped so callers can inline\n * conditionals (e.g. `maybeIcon && el`).\n */\nexport const createNode = <K extends keyof HTMLElementTagNameMap>(\n tag: K,\n options: CreateNodeOptions = {},\n ...children: Array<Node | string | null | undefined>\n): HTMLElementTagNameMap[K] => {\n const element = document.createElement(tag);\n\n if (options.className) {\n element.className = options.className;\n }\n if (options.text !== undefined) {\n element.textContent = options.text;\n }\n if (options.attrs) {\n for (const [name, value] of Object.entries(options.attrs)) {\n element.setAttribute(name, value);\n }\n }\n if (options.style) {\n const style = element.style as unknown as Record<string, string>;\n const source = options.style as Record<string, string | null | undefined>;\n for (const property of Object.keys(source)) {\n const value = source[property];\n if (value != null) {\n style[property] = value;\n }\n }\n }\n\n const appendable = children.filter(\n (child): child is Node | string => child != null\n );\n if (appendable.length > 0) {\n element.append(...appendable);\n }\n\n return element;\n};\n\n/**\n * Join truthy class-name fragments into a single space-separated string\n * (the clsx / classnames pattern). Falsy fragments\n * (`false` / `null` / `undefined` / `\"\"`) are dropped, so conditional classes\n * read inline as `cond && \"persona-foo\"` instead of imperative\n * `classList.add(...)` branches.\n */\nexport const cx = (\n ...parts: Array<string | false | null | undefined>\n): string => parts.filter(Boolean).join(\" \");\n\n\n\n\n\n\n\n","export const positionMap: Record<\n \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\",\n string\n> = {\n \"bottom-right\": \"persona-bottom-6 persona-right-6\",\n \"bottom-left\": \"persona-bottom-6 persona-left-6\",\n \"top-right\": \"persona-top-6 persona-right-6\",\n \"top-left\": \"persona-top-6 persona-left-6\"\n};\n\n\n\n\n\n\n\n\n","import type { AgentWidgetConfig, AgentWidgetDockConfig } from \"../types\";\n\nconst DEFAULT_DOCK_CONFIG: Required<AgentWidgetDockConfig> = {\n side: \"right\",\n width: \"420px\",\n animate: true,\n reveal: \"resize\",\n maxHeight: \"100dvh\",\n};\n\nexport const isDockedMountMode = (config?: AgentWidgetConfig): boolean =>\n (config?.launcher?.mountMode ?? \"floating\") === \"docked\";\n\nexport const isComposerBarMountMode = (config?: AgentWidgetConfig): boolean =>\n (config?.launcher?.mountMode ?? \"floating\") === \"composer-bar\";\n\n/**\n * Resolved dock layout. For `reveal: \"resize\"`, when the panel is closed the dock column is `0px`.\n * For `reveal: \"overlay\"`, the panel overlays with `transform`. For `reveal: \"push\"`, a sliding track\n * moves content and panel together without width animation on the main column. For `emerge`,\n * the dock column still animates like `resize` but the widget stays `dock.width` wide inside the slot.\n * Unknown keys on `launcher.dock` (e.g. legacy `collapsedWidth`) are ignored.\n */\nexport const resolveDockConfig = (\n config?: AgentWidgetConfig\n): Required<AgentWidgetDockConfig> => {\n const dock = config?.launcher?.dock;\n return {\n side: dock?.side ?? DEFAULT_DOCK_CONFIG.side,\n width: dock?.width ?? DEFAULT_DOCK_CONFIG.width,\n animate: dock?.animate ?? DEFAULT_DOCK_CONFIG.animate,\n reveal: dock?.reveal ?? DEFAULT_DOCK_CONFIG.reveal,\n maxHeight: dock?.maxHeight ?? DEFAULT_DOCK_CONFIG.maxHeight,\n };\n};\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Activity: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Activity;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown: IconNode = [\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'm19 12-7 7-7-7' }],\n];\n\nexport default ArrowDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeft: IconNode = [\n ['path', { d: 'm12 19-7-7 7-7' }],\n ['path', { d: 'M19 12H5' }],\n];\n\nexport default ArrowLeft;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRight: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'm12 5 7 7-7 7' }],\n];\n\nexport default ArrowRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyA3aDEwdjEwIiAvPgogIDxwYXRoIGQ9Ik03IDE3IDE3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpRight: IconNode = [\n ['path', { d: 'M7 7h10v10' }],\n ['path', { d: 'M7 17 17 7' }],\n];\n\nexport default ArrowUpRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSAxMiA3LTcgNyA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOVY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp: IconNode = [\n ['path', { d: 'm5 12 7-7 7 7' }],\n ['path', { d: 'M12 19V5' }],\n];\n\nexport default ArrowUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name at-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/at-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AtSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8' }],\n];\n\nexport default AtSign;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ban: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M4.929 4.929 19.07 19.071' }],\n];\n\nexport default Ban;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bell: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Bell;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bookmark: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default Bookmark;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bot: IconNode = [\n ['path', { d: 'M12 8V4H8' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M15 13v2' }],\n ['path', { d: 'M9 13v2' }],\n];\n\nexport default Bot;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgNmguMDEiIC8+CiAgPHBhdGggZD0iTTggMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNOCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIiAvPgogIDxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/building\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building: IconNode = [\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M12 6h.01' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M16 6h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M8 6h.01' }],\n ['path', { d: 'M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Building;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-days\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTggMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-days\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarDays: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M8 18h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M16 18h.01' }],\n];\n\nexport default CalendarDays;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default Calendar;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Camera: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '3' }],\n];\n\nexport default Camera;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Check: IconNode = [['path', { d: 'M20 6 9 17l-5-5' }]];\n\nexport default Check;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronDown: IconNode = [['path', { d: 'm6 9 6 6 6-6' }]];\n\nexport default ChevronDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLeft: IconNode = [['path', { d: 'm15 18-6-6 6-6' }]];\n\nexport default ChevronLeft;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronRight: IconNode = [['path', { d: 'm9 18 6-6-6-6' }]];\n\nexport default ChevronRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronUp: IconNode = [['path', { d: 'm18 15-6-6-6 6' }]];\n\nexport default ChevronUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheck: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default CircleCheck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleX: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default CircleX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNEgxMSIgLz4KICA8cGF0aCBkPSJtMTUgMTAtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCopy: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M21 14H11' }],\n ['path', { d: 'm15 10-4 4 4 4' }],\n];\n\nexport default ClipboardCopy;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clipboard: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['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' }],\n];\n\nexport default Clipboard;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 6v6l4 2' }],\n];\n\nexport default Clock;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copy: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default Copy;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name credit-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjUiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIxMCIgeTI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/credit-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreditCard: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '2' }],\n ['line', { x1: '2', x2: '22', y1: '10', y2: '10' }],\n];\n\nexport default CreditCard;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DollarSign: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6' }],\n];\n\nexport default DollarSign;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWMyIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJtNyAxMCA1IDUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Download: IconNode = [\n ['path', { d: 'M12 15V3' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'm7 10 5 5 5-5' }],\n];\n\nexport default Download;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EllipsisVertical: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n];\n\nexport default EllipsisVertical;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ellipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n];\n\nexport default Ellipsis;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeOff: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242' }],\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default EyeOff;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name external-link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ExternalLink: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'M10 14 21 3' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' }],\n];\n\nexport default ExternalLink;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eye: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Eye;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTIuNSA4IDE1bDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMi41IDIgMi41LTIgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCode: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12.5 8 15l2 2.5' }],\n ['path', { d: 'm14 12.5 2 2.5-2 2.5' }],\n];\n\nexport default FileCode;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-spreadsheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDIiIC8+CiAgPHBhdGggZD0iTTE0IDE3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-spreadsheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSpreadsheet: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h2' }],\n ['path', { d: 'M14 13h2' }],\n ['path', { d: 'M8 17h2' }],\n ['path', { d: 'M14 17h2' }],\n];\n\nexport default FileSpreadsheet;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileText: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 9H8' }],\n ['path', { d: 'M16 13H8' }],\n ['path', { d: 'M16 17H8' }],\n];\n\nexport default FileText;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst File: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default File;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name files\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgiIC8+CiAgPHBhdGggZD0iTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiIgLz4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Files: IconNode = [\n ['path', { d: 'M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n ['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' }],\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Files;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name film\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDN2MTgiIC8+CiAgPHBhdGggZD0iTTMgNy41aDQiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTgiIC8+CiAgPHBhdGggZD0iTTMgMTYuNWg0IiAvPgogIDxwYXRoIGQ9Ik0xNyAzdjE4IiAvPgogIDxwYXRoIGQ9Ik0xNyA3LjVoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/film\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Film: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 3v18' }],\n ['path', { d: 'M3 7.5h4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 16.5h4' }],\n ['path', { d: 'M17 3v18' }],\n ['path', { d: 'M17 7.5h4' }],\n ['path', { d: 'M17 16.5h4' }],\n];\n\nexport default Film;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flag: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Flag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpen: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default FolderOpen;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folder: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Folder;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Funnel: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Funnel;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMjAgMTF2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgLz4KICA8cGF0aCBkPSJNNy41IDdhMSAxIDAgMCAxIDAtNUE0LjggOCAwIDAgMSAxMiA3YTQuOCA4IDAgMCAxIDQuNS01IDEgMSAwIDAgMSAwIDUiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/gift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gift: IconNode = [\n ['path', { d: 'M12 7v14' }],\n ['path', { d: 'M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8' }],\n ['path', { d: 'M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5' }],\n ['rect', { x: '3', y: '7', width: '18', height: '4', rx: '1' }],\n];\n\nexport default Gift;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Globe: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default Globe;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjQiIHgyPSIyMCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjEwIiB4Mj0iOCIgeTE9IjMiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hash: IconNode = [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21' }],\n];\n\nexport default Hash;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headphones: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Headphones;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heart: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Heart;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name history\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djVsNCAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/history\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst History: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M12 7v5l4 2' }],\n];\n\nexport default History;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgiIC8+CiAgPHBhdGggZD0iTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst House: IconNode = [\n ['path', { d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default House;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAydjYiIC8+CiAgPHBhdGggZD0iTTIxIDExLjVWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcuNSIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlus: IconNode = [\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n ['path', { d: 'M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Image: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default Image;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Info: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 16v-4' }],\n ['path', { d: 'M12 8h.01' }],\n];\n\nexport default Info;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCIgLz4KICA8cGF0aCBkPSJtMjEgMi05LjYgOS42IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE1LjUiIHI9IjUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Key: IconNode = [\n ['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' }],\n ['path', { d: 'm21 2-9.6 9.6' }],\n ['circle', { cx: '7.5', cy: '15.5', r: '5.5' }],\n];\n\nexport default Key;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link: IconNode = [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' }],\n];\n\nexport default Link;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderCircle: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56' }]];\n\nexport default LoaderCircle;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDcuOCAyLjktMi45IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmg0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDE2LjIgMi45IDIuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtNC45IDE5LjEgMi45LTIuOSIgLz4KICA8cGF0aCBkPSJNMiAxMmg0IiAvPgogIDxwYXRoIGQ9Im00LjkgNC45IDIuOSAyLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Loader: IconNode = [\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm16.2 7.8 2.9-2.9' }],\n ['path', { d: 'M18 12h4' }],\n ['path', { d: 'm16.2 16.2 2.9 2.9' }],\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm4.9 19.1 2.9-2.9' }],\n ['path', { d: 'M2 12h4' }],\n ['path', { d: 'm4.9 4.9 2.9 2.9' }],\n];\n\nexport default Loader;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lock: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4' }],\n];\n\nexport default Lock;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mail: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Mail;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPin: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n];\n\nexport default MapPin;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyIgLz4KICA8cGF0aCBkPSJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2h-3' }],\n ['path', { d: 'M3 16v3a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M16 21h3a2 2 0 0 0 2-2v-3' }],\n];\n\nexport default Maximize;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA1aDE2IiAvPgogIDxwYXRoIGQ9Ik00IDEyaDE2IiAvPgogIDxwYXRoIGQ9Ik00IDE5aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Menu: IconNode = [\n ['path', { d: 'M4 5h16' }],\n ['path', { d: 'M4 12h16' }],\n ['path', { d: 'M4 19h16' }],\n];\n\nexport default Menu;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircle: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default MessageCircle;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquare: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default MessageSquare;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMyIgcng9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mic: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3' }],\n];\n\nexport default Mic;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyIgLz4KICA8cGF0aCBkPSJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/minimize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize: IconNode = [\n ['path', { d: 'M8 3v3a2 2 0 0 1-2 2H3' }],\n ['path', { d: 'M21 8h-3a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'M3 16h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M16 21v-3a2 2 0 0 1 2-2h3' }],\n];\n\nexport default Minimize;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minus: IconNode = [['path', { d: 'M5 12h14' }]];\n\nexport default Minus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Monitor: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21' }],\n];\n\nexport default Monitor;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Moon: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Moon;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxwYXRoIGQ9Im03LjUgNC4yNyA5IDUuMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/package\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M12 22V12' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n];\n\nexport default Package;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paperclip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paperclip: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Paperclip;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjUiIGhlaWdodD0iMTgiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjUiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjE4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pause: IconNode = [\n ['rect', { x: '14', y: '3', width: '5', height: '18', rx: '1' }],\n ['rect', { x: '5', y: '3', width: '5', height: '18', rx: '1' }],\n];\n\nexport default Pause;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pencil: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default Pencil;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSI1IiB5MT0iNSIgeTI9IjE5IiAvPgogIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Percent: IconNode = [\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n ['circle', { cx: '6.5', cy: '6.5', r: '2.5' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Percent;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Phone: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Phone;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Play: IconNode = [\n [\n 'path',\n { 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' },\n ],\n];\n\nexport default Play;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plus: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'M12 5v14' }],\n];\n\nexport default Plus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdWNyIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAwIDAgMCA0aDRhMiAyIDAgMCAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Receipt: IconNode = [\n ['path', { d: 'M12 17V7' }],\n ['path', { d: 'M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Receipt;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16' }],\n ['path', { d: 'M8 16H3v5' }],\n];\n\nexport default RefreshCw;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rotate-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n];\n\nexport default RotateCw;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Save: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7' }],\n];\n\nexport default Save;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Search: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default Search;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Send: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939' }],\n];\n\nexport default Send;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS42NzEgNC4xMzZhMi4zNCAyLjM0IDAgMCAxIDQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwIDMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMSAyLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwIDMuODMxIDIuMzQgMi4zNCAwIDAgMS0yLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMC0zLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEtNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAtMy4zMi0xLjkxNSAyLjM0IDIuMzQgMCAwIDEtMi4zMy00LjAzMyAyLjM0IDIuMzQgMCAwIDAgMC0zLjgzMUEyLjM0IDIuMzQgMCAwIDEgNi4zNSA2LjA1MWEyLjM0IDIuMzQgMCAwIDAgMy4zMTktMS45MTUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Settings;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMyIgLz4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share: IconNode = [\n ['path', { d: 'M12 2v13' }],\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8' }],\n];\n\nexport default Share;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldAlert: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default ShieldAlert;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldCheck: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default ShieldCheck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgOS41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDkuNSA1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldX: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default ShieldX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shield: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Shield;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-bag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhNCA0IDAgMCAxLTggMCIgLz4KICA8cGF0aCBkPSJNMy4xMDMgNi4wMzRoMTcuNzk0IiAvPgogIDxwYXRoIGQ9Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-bag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBag: IconNode = [\n ['path', { d: 'M16 10a4 4 0 0 1-8 0' }],\n ['path', { d: 'M3.103 6.034h17.794' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default ShoppingBag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-cart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMjEiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIyMSIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shopping-cart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingCart: IconNode = [\n ['circle', { cx: '8', cy: '21', r: '1' }],\n ['circle', { cx: '19', cy: '21', r: '1' }],\n [\n 'path',\n { 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' },\n ],\n];\n\nexport default ShoppingCart;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smartphone: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12 18h.01' }],\n];\n\nexport default Smartphone;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgogIDxwYXRoIGQ9Ik0yMCAydjQiIC8+CiAgPHBhdGggZD0iTTIyIDRoLTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkles: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M20 2v4' }],\n ['path', { d: 'M22 4h-4' }],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default Sparkles;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Square: IconNode = [['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }]];\n\nexport default Square;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Star: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Star;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name store\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCIgLz4KICA8cGF0aCBkPSJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/store\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Store: IconNode = [\n ['path', { d: 'M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5' }],\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05' }],\n];\n\nexport default Store;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sun: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n];\n\nexport default Sun;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tag: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thumbs-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsDown: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M17 14V2' }],\n];\n\nexport default ThumbsDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiIgLz4KICA8cGF0aCBkPSJNNyAxMHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsUp: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M7 10v12' }],\n];\n\nexport default ThumbsUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Timer: IconNode = [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11' }],\n ['circle', { cx: '12', cy: '14', r: '8' }],\n];\n\nexport default Timer;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTQgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash2: IconNode = [\n ['path', { d: 'M10 11v6' }],\n ['path', { d: 'M14 11v6' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash2;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash: IconNode = [\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleAlert: IconNode = [\n ['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' }],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default TriangleAlert;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTE1IDE4SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/truck\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Truck: IconNode = [\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M15 18H9' }],\n [\n 'path',\n { 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' },\n ],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Truck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtMTcgOC01LTUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Upload: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm17 8-5-5-5 5' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n];\n\nexport default Upload;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst User: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '12', cy: '7', r: '4' }],\n];\n\nexport default User;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume2: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n ['path', { d: 'M19.364 18.364a9 9 0 0 0 0-12.728' }],\n];\n\nexport default Volume2;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMTYiIHkxPSI5IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMjIiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeX: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['line', { x1: '22', x2: '16', y1: '9', y2: '15' }],\n ['line', { x1: '16', x2: '22', y1: '9', y2: '15' }],\n];\n\nexport default VolumeX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIiAvPgogIDxwYXRoIGQ9Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wallet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallet: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }],\n];\n\nexport default Wallet;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst X: IconNode = [\n ['path', { d: 'M18 6 6 18' }],\n ['path', { d: 'm6 6 12 12' }],\n];\n\nexport default X;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Zap: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Zap;\n","import type { IconNode } from \"lucide\";\nimport {\n // ---------- Mandatory (referenced as string literals in widget source) ----------\n Activity,\n ArrowDown,\n ArrowUp,\n ArrowUpRight,\n Bot,\n ChevronDown,\n ChevronUp,\n ChevronRight,\n ChevronLeft,\n Check,\n Clipboard,\n ClipboardCopy,\n Copy,\n File as FileIcon,\n FileCode,\n FileSpreadsheet,\n FileText,\n ImagePlus,\n Loader,\n LoaderCircle,\n Mic,\n Paperclip,\n RefreshCw,\n Search,\n Send,\n ShieldAlert,\n ShieldCheck,\n ShieldX,\n Square,\n ThumbsDown,\n ThumbsUp,\n Upload,\n Volume2,\n X,\n // ---------- Forms / inputs ----------\n User,\n Mail,\n Phone,\n Calendar,\n Clock,\n Building,\n MapPin,\n Lock,\n Key,\n CreditCard,\n AtSign,\n Hash,\n Globe,\n Link,\n // ---------- Status / feedback ----------\n CircleCheck,\n CircleX,\n TriangleAlert,\n Info,\n Ban,\n Shield,\n // ---------- Navigation ----------\n ArrowLeft,\n ArrowRight,\n ExternalLink,\n Ellipsis,\n EllipsisVertical,\n Menu,\n House,\n // ---------- Actions ----------\n Plus,\n Minus,\n Pencil,\n Trash,\n Trash2,\n Save,\n Download,\n Share,\n Funnel,\n Settings,\n RotateCw,\n Maximize,\n Minimize,\n // ---------- Commerce ----------\n ShoppingCart,\n ShoppingBag,\n Package,\n Truck,\n Tag,\n Gift,\n Receipt,\n Wallet,\n Store,\n DollarSign,\n Percent,\n // ---------- Media ----------\n Play,\n Pause,\n VolumeX,\n Camera,\n Image as ImageIcon,\n Film,\n Headphones,\n // ---------- Social / Comms ----------\n MessageCircle,\n MessageSquare,\n Bell,\n Heart,\n Star,\n Eye,\n EyeOff,\n Bookmark,\n // ---------- Time ----------\n CalendarDays,\n History,\n Timer,\n // ---------- Files ----------\n Folder,\n FolderOpen,\n Files,\n // ---------- Decorative ----------\n Sparkles,\n Zap,\n Sun,\n Moon,\n Flag,\n // ---------- Devices ----------\n Monitor,\n Smartphone,\n} from \"lucide\";\n\n/**\n * Curated registry of lucide icons available to `renderLucideIcon`.\n *\n * The widget used to do `import * as icons from \"lucide\"` and look up\n * icons dynamically by string. That defeated tree-shaking, so the IIFE\n * (CDN/script-tag) bundle shipped all 1640 lucide icons (~400KB of icon\n * data) regardless of which we actually used. This explicit registry\n * lets the bundler drop any icon not listed here.\n *\n * Trade-off: `renderLucideIcon(name)` is now a *closed set*. Names not\n * in this map return `null` and log a warning, exactly as a typo did\n * before. The registry is intentionally generous (~110 icons) so that\n * custom `ComponentRenderer` authors rarely hit a missing-icon dead end.\n *\n * To add icons: add a named import above and a row in `LUCIDE_ICONS`,\n * keyed by the lucide kebab-case name (matches their filename and\n * https://lucide.dev/icons).\n *\n * See `packages/widget/docs/icon-registry-shortlist.md` for the full\n * curation rationale and which icons were considered but excluded.\n */\nconst LUCIDE_ICONS = {\n // Mandatory\n \"activity\": Activity,\n \"arrow-down\": ArrowDown,\n \"arrow-up\": ArrowUp,\n \"arrow-up-right\": ArrowUpRight,\n \"bot\": Bot,\n \"chevron-down\": ChevronDown,\n \"chevron-up\": ChevronUp,\n \"chevron-right\": ChevronRight,\n \"chevron-left\": ChevronLeft,\n \"check\": Check,\n \"clipboard\": Clipboard,\n \"clipboard-copy\": ClipboardCopy,\n \"copy\": Copy,\n \"file\": FileIcon,\n \"file-code\": FileCode,\n \"file-spreadsheet\": FileSpreadsheet,\n \"file-text\": FileText,\n \"image-plus\": ImagePlus,\n \"loader\": Loader,\n \"loader-circle\": LoaderCircle,\n \"mic\": Mic,\n \"paperclip\": Paperclip,\n \"refresh-cw\": RefreshCw,\n \"search\": Search,\n \"send\": Send,\n \"shield-alert\": ShieldAlert,\n \"shield-check\": ShieldCheck,\n \"shield-x\": ShieldX,\n \"square\": Square,\n \"thumbs-down\": ThumbsDown,\n \"thumbs-up\": ThumbsUp,\n \"upload\": Upload,\n \"volume-2\": Volume2,\n \"x\": X,\n // Forms / inputs\n \"user\": User,\n \"mail\": Mail,\n \"phone\": Phone,\n \"calendar\": Calendar,\n \"clock\": Clock,\n \"building\": Building,\n \"map-pin\": MapPin,\n \"lock\": Lock,\n \"key\": Key,\n \"credit-card\": CreditCard,\n \"at-sign\": AtSign,\n \"hash\": Hash,\n \"globe\": Globe,\n \"link\": Link,\n // Status / feedback\n \"circle-check\": CircleCheck,\n \"circle-x\": CircleX,\n \"triangle-alert\": TriangleAlert,\n \"info\": Info,\n \"ban\": Ban,\n \"shield\": Shield,\n // Navigation\n \"arrow-left\": ArrowLeft,\n \"arrow-right\": ArrowRight,\n \"external-link\": ExternalLink,\n \"ellipsis\": Ellipsis,\n \"ellipsis-vertical\": EllipsisVertical,\n \"menu\": Menu,\n \"house\": House,\n // Actions\n \"plus\": Plus,\n \"minus\": Minus,\n \"pencil\": Pencil,\n \"trash\": Trash,\n \"trash-2\": Trash2,\n \"save\": Save,\n \"download\": Download,\n \"share\": Share,\n \"funnel\": Funnel,\n \"settings\": Settings,\n \"rotate-cw\": RotateCw,\n \"maximize\": Maximize,\n \"minimize\": Minimize,\n // Commerce\n \"shopping-cart\": ShoppingCart,\n \"shopping-bag\": ShoppingBag,\n \"package\": Package,\n \"truck\": Truck,\n \"tag\": Tag,\n \"gift\": Gift,\n \"receipt\": Receipt,\n \"wallet\": Wallet,\n \"store\": Store,\n \"dollar-sign\": DollarSign,\n \"percent\": Percent,\n // Media\n \"play\": Play,\n \"pause\": Pause,\n \"volume-x\": VolumeX,\n \"camera\": Camera,\n \"image\": ImageIcon,\n \"film\": Film,\n \"headphones\": Headphones,\n // Social / Comms\n \"message-circle\": MessageCircle,\n \"message-square\": MessageSquare,\n \"bell\": Bell,\n \"heart\": Heart,\n \"star\": Star,\n \"eye\": Eye,\n \"eye-off\": EyeOff,\n \"bookmark\": Bookmark,\n // Time\n \"calendar-days\": CalendarDays,\n \"history\": History,\n \"timer\": Timer,\n // Files\n \"folder\": Folder,\n \"folder-open\": FolderOpen,\n \"files\": Files,\n // Decorative\n \"sparkles\": Sparkles,\n \"zap\": Zap,\n \"sun\": Sun,\n \"moon\": Moon,\n \"flag\": Flag,\n // Devices\n \"monitor\": Monitor,\n \"smartphone\": Smartphone,\n} as const satisfies Record<string, IconNode>;\n\n/**\n * Names of lucide icons that ship with the widget. Names not in this\n * union return `null` from `renderLucideIcon` (with a console warning).\n */\nexport type IconName = keyof typeof LUCIDE_ICONS;\n\n/**\n * Renders a lucide icon as an inline SVG element. Works inside Shadow\n * DOM and requires no CSS.\n *\n * @param iconName - A lucide kebab-case name from the registry. See\n * `IconName` for the full list, or `docs/icon-registry-shortlist.md`\n * for rationale.\n * @param size - The size in pixels (number) or any CSS length string.\n * @param color - Stroke color (default: \"currentColor\").\n * @param strokeWidth - Stroke width (default: 2).\n * @returns SVGElement, or null if the name is not in the registry.\n */\nexport const renderLucideIcon = (\n iconName: IconName | (string & {}),\n size: number | string = 24,\n color: string = \"currentColor\",\n strokeWidth: number = 2\n): SVGElement | null => {\n const iconData = (LUCIDE_ICONS as Record<string, IconNode | undefined>)[iconName];\n if (!iconData) {\n console.warn(\n `Lucide icon \"${iconName}\" is not in the Persona registry. ` +\n `Add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`\n );\n return null;\n }\n return createSvgFromIconData(iconData, size, color, strokeWidth);\n};\n\nfunction createSvgFromIconData(\n iconData: IconNode,\n size: number | string,\n color: string,\n strokeWidth: number\n): SVGElement | null {\n if (!Array.isArray(iconData)) return null;\n\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"width\", String(size));\n svg.setAttribute(\"height\", String(size));\n svg.setAttribute(\"viewBox\", \"0 0 24 24\");\n svg.setAttribute(\"fill\", \"none\");\n svg.setAttribute(\"stroke\", color);\n svg.setAttribute(\"stroke-width\", String(strokeWidth));\n svg.setAttribute(\"stroke-linecap\", \"round\");\n svg.setAttribute(\"stroke-linejoin\", \"round\");\n svg.setAttribute(\"aria-hidden\", \"true\");\n\n // IconNode shape: [[\"path\", {\"d\": \"...\"}], [\"circle\", {\"cx\": \"...\"}], ...]\n iconData.forEach((elementData) => {\n if (!Array.isArray(elementData) || elementData.length < 2) return;\n const tagName = elementData[0] as string;\n const attrs = elementData[1] as Record<string, string> | undefined;\n if (!attrs) return;\n const element = document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n Object.entries(attrs).forEach(([key, value]) => {\n // Skip 'stroke' so the parent SVG's stroke attribute drives color uniformly\n if (key !== \"stroke\") element.setAttribute(key, String(value));\n });\n svg.appendChild(element);\n });\n\n return svg;\n}\n","import { AgentWidgetSessionStatus } from \"../session\";\n\nexport const statusCopy: Record<AgentWidgetSessionStatus, string> = {\n idle: \"Online\",\n connecting: \"Connecting…\",\n connected: \"Streaming…\",\n error: \"Offline\",\n paused: \"Connection lost…\",\n resuming: \"Reconnecting…\"\n};\n\n/**\n * Default z-index for widget overlays. Used for the floating panel, launcher\n * button, sidebar, mobile fullscreen, and docked mobile fullscreen modes.\n * Integrators can override via `launcher.zIndex`.\n */\nexport const DEFAULT_OVERLAY_Z_INDEX = 100000;\n\n/**\n * Z-index for elements portaled to document.body (tooltips, dropdowns).\n * Must be above the widget overlay so portaled UI is not clipped.\n */\nexport const PORTALED_OVERLAY_Z_INDEX = DEFAULT_OVERLAY_Z_INDEX + 1;\n\n\n\n\n\n\n\n\n","import { createElement } from \"../utils/dom\";\nimport { AgentWidgetConfig } from \"../types\";\nimport { positionMap } from \"../utils/positioning\";\nimport { isDockedMountMode } from \"../utils/dock\";\nimport { renderLucideIcon } from \"../utils/icons\";\nimport { DEFAULT_OVERLAY_Z_INDEX } from \"../utils/constants\";\n\nexport interface LauncherButton {\n element: HTMLButtonElement;\n update: (config: AgentWidgetConfig) => void;\n destroy: () => void;\n}\n\nexport const createLauncherButton = (\n config: AgentWidgetConfig | undefined,\n onToggle: () => void\n): LauncherButton => {\n const button = createElement(\"button\") as HTMLButtonElement;\n button.type = \"button\";\n button.innerHTML = `\n <span class=\"persona-inline-flex persona-items-center persona-justify-center persona-rounded-full persona-bg-persona-primary persona-text-white\" data-role=\"launcher-icon\">💬</span>\n <img data-role=\"launcher-image\" class=\"persona-rounded-full persona-object-cover\" alt=\"\" style=\"display:none\" />\n <span class=\"persona-flex persona-min-w-0 persona-flex-1 persona-flex-col persona-items-start persona-text-left\">\n <span class=\"persona-block persona-w-full persona-truncate persona-text-sm persona-font-semibold persona-text-persona-primary\" data-role=\"launcher-title\"></span>\n <span class=\"persona-block persona-w-full persona-truncate persona-text-xs persona-text-persona-muted\" data-role=\"launcher-subtitle\"></span>\n </span>\n <span class=\"persona-ml-2 persona-grid persona-place-items-center persona-rounded-full persona-bg-persona-primary persona-text-persona-call-to-action\" data-role=\"launcher-call-to-action-icon\">↗</span>\n `;\n button.addEventListener(\"click\", onToggle);\n\n const update = (newConfig: AgentWidgetConfig) => {\n const launcher = newConfig.launcher ?? {};\n const dockedMode = isDockedMountMode(newConfig);\n\n const titleEl = button.querySelector(\"[data-role='launcher-title']\");\n if (titleEl) {\n const t = launcher.title ?? \"Chat Assistant\";\n titleEl.textContent = t;\n titleEl.setAttribute(\"title\", t);\n }\n\n const subtitleEl = button.querySelector(\"[data-role='launcher-subtitle']\");\n if (subtitleEl) {\n const s = launcher.subtitle ?? \"Here to help you get answers fast\";\n subtitleEl.textContent = s;\n subtitleEl.setAttribute(\"title\", s);\n }\n\n // Hide/show text container\n const textContainer = button.querySelector(\".persona-flex-col\");\n if (textContainer) {\n if (launcher.textHidden || dockedMode) {\n (textContainer as HTMLElement).style.display = \"none\";\n } else {\n (textContainer as HTMLElement).style.display = \"\";\n }\n }\n\n const icon = button.querySelector<HTMLSpanElement>(\"[data-role='launcher-icon']\");\n if (icon) {\n if (launcher.agentIconHidden) {\n icon.style.display = \"none\";\n } else {\n const iconSize = launcher.agentIconSize ?? \"40px\";\n icon.style.height = iconSize;\n icon.style.width = iconSize;\n\n // Optional custom background color for the agent icon circle. When set,\n // override the default primary-color background; otherwise restore it.\n if (launcher.agentIconBackgroundColor) {\n icon.style.backgroundColor = launcher.agentIconBackgroundColor;\n icon.classList.remove(\"persona-bg-persona-primary\");\n } else {\n icon.style.backgroundColor = \"\";\n icon.classList.add(\"persona-bg-persona-primary\");\n }\n\n // Clear existing content\n icon.innerHTML = \"\";\n \n // Render icon based on priority: Lucide icon > iconUrl > agentIconText\n if (launcher.agentIconName) {\n // Use Lucide icon\n const iconSizeNum = parseFloat(iconSize) || 24;\n const iconSvg = renderLucideIcon(launcher.agentIconName, iconSizeNum * 0.6, \"var(--persona-text-inverse, #ffffff)\", 2);\n if (iconSvg) {\n icon.appendChild(iconSvg);\n icon.style.display = \"\";\n } else {\n // Fallback to agentIconText if Lucide icon fails\n icon.textContent = launcher.agentIconText ?? \"💬\";\n icon.style.display = \"\";\n }\n } else if (launcher.iconUrl) {\n // Use image URL - hide icon span and show img\n icon.style.display = \"none\";\n } else {\n // Use text/emoji\n icon.textContent = launcher.agentIconText ?? \"💬\";\n icon.style.display = \"\";\n }\n }\n }\n\n const img = button.querySelector<HTMLImageElement>(\"[data-role='launcher-image']\");\n if (img) {\n const iconSize = launcher.agentIconSize ?? \"40px\";\n img.style.height = iconSize;\n img.style.width = iconSize;\n if (launcher.iconUrl && !launcher.agentIconName && !launcher.agentIconHidden) {\n // Only show image if not using Lucide icon and not hidden\n img.src = launcher.iconUrl;\n img.style.display = \"block\";\n } else {\n img.style.display = \"none\";\n }\n }\n\n const callToActionIconEl = button.querySelector<HTMLSpanElement>(\"[data-role='launcher-call-to-action-icon']\");\n if (callToActionIconEl) {\n const callToActionIconSize = launcher.callToActionIconSize ?? \"32px\";\n callToActionIconEl.style.height = callToActionIconSize;\n callToActionIconEl.style.width = callToActionIconSize;\n \n // Apply background color if configured\n if (launcher.callToActionIconBackgroundColor) {\n callToActionIconEl.style.backgroundColor = launcher.callToActionIconBackgroundColor;\n callToActionIconEl.classList.remove(\"persona-bg-persona-primary\");\n } else {\n callToActionIconEl.style.backgroundColor = \"\";\n callToActionIconEl.classList.add(\"persona-bg-persona-primary\");\n }\n\n // Apply foreground/icon color if configured\n if (launcher.callToActionIconColor) {\n callToActionIconEl.style.color = launcher.callToActionIconColor;\n callToActionIconEl.classList.remove(\"persona-text-persona-call-to-action\");\n } else {\n callToActionIconEl.style.color = \"\";\n callToActionIconEl.classList.add(\"persona-text-persona-call-to-action\");\n }\n \n // Calculate padding to adjust icon size\n let paddingTotal = 0;\n if (launcher.callToActionIconPadding) {\n callToActionIconEl.style.boxSizing = \"border-box\";\n callToActionIconEl.style.padding = launcher.callToActionIconPadding;\n // Parse padding value to calculate total padding (padding applies to both sides)\n const paddingValue = parseFloat(launcher.callToActionIconPadding) || 0;\n paddingTotal = paddingValue * 2; // padding on both sides\n } else {\n callToActionIconEl.style.boxSizing = \"\";\n callToActionIconEl.style.padding = \"\";\n }\n \n if (launcher.callToActionIconHidden) {\n callToActionIconEl.style.display = \"none\";\n } else {\n callToActionIconEl.style.display = dockedMode ? \"none\" : \"\";\n \n // Clear existing content\n callToActionIconEl.innerHTML = \"\";\n \n // Use Lucide icon if provided, otherwise fall back to text\n if (launcher.callToActionIconName) {\n // Calculate actual icon size by subtracting padding\n const containerSize = parseFloat(callToActionIconSize) || 24;\n const iconSize = Math.max(containerSize - paddingTotal, 8); // Ensure minimum size of 8px\n const iconSvg = renderLucideIcon(launcher.callToActionIconName, iconSize, \"currentColor\", 2);\n if (iconSvg) {\n callToActionIconEl.appendChild(iconSvg);\n } else {\n // Fallback to text if icon fails to render\n callToActionIconEl.textContent = launcher.callToActionIconText ?? \"↗\";\n }\n } else {\n callToActionIconEl.textContent = launcher.callToActionIconText ?? \"↗\";\n }\n }\n }\n\n const positionClass =\n launcher.position && positionMap[launcher.position]\n ? positionMap[launcher.position]\n : positionMap[\"bottom-right\"];\n\n const floatingBase =\n \"persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-surface persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer\";\n const dockedBase =\n \"persona-relative persona-mt-4 persona-mb-4 persona-mx-auto persona-flex persona-items-center persona-justify-center persona-rounded-launcher persona-bg-persona-surface persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer\";\n\n button.className = dockedMode ? dockedBase : `${floatingBase} ${positionClass}`;\n\n if (!dockedMode) {\n button.style.zIndex = String(launcher.zIndex ?? DEFAULT_OVERLAY_Z_INDEX);\n }\n\n // Apply launcher border and shadow from config (with defaults matching previous Tailwind classes)\n const defaultBorder = \"1px solid var(--persona-border, #e5e7eb)\";\n const defaultShadow = \"var(--persona-launcher-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1))\";\n\n button.style.border = launcher.border ?? defaultBorder;\n button.style.boxShadow =\n launcher.shadow !== undefined\n ? (launcher.shadow.trim() === \"\" ? \"none\" : launcher.shadow)\n : defaultShadow;\n\n if (dockedMode) {\n // Docked mode uses a 0px column when closed and hides this button; keep no hit target.\n button.style.width = \"0\";\n button.style.minWidth = \"0\";\n button.style.maxWidth = \"0\";\n button.style.padding = \"0\";\n button.style.overflow = \"hidden\";\n button.style.border = \"none\";\n button.style.boxShadow = \"none\";\n } else {\n button.style.width = \"\";\n button.style.minWidth = \"\";\n button.style.maxWidth = launcher.collapsedMaxWidth ?? \"\";\n button.style.justifyContent = \"\";\n button.style.padding = \"\";\n button.style.overflow = \"\";\n }\n };\n\n const destroy = () => {\n button.removeEventListener(\"click\", onToggle);\n button.remove();\n };\n\n // Initial update\n if (config) {\n update(config);\n }\n\n return {\n element: button,\n update,\n destroy\n };\n};\n","const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\n/**\n * Deep-merge plain objects. Arrays and non-objects are replaced by override.\n */\nexport function deepMerge<T extends Record<string, unknown>>(\n base: T | undefined,\n override: Record<string, unknown> | undefined\n): T | Record<string, unknown> | undefined {\n if (!base) return override;\n if (!override) return base;\n\n const merged: Record<string, unknown> = { ...base };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = merged[key];\n if (isObject(existing) && isObject(value)) {\n merged[key] = deepMerge(existing, value);\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n}\n","import type { AgentWidgetConfig, AgentWidgetLauncherConfig } from \"./types\";\nimport type { DeepPartial, PersonaTheme } from \"./types/theme\";\nimport { deepMerge } from \"./utils/deep-merge\";\n\n/**\n * Default width for the floating launcher panel (when not overridden).\n * Benchmarks: many chat products use ~300–400px; 400px is a frequent “standard” default.\n * We use 440px to better fit code/JSON and structured replies while staying responsive via `min(..., 100vw)`.\n */\nexport const DEFAULT_FLOATING_LAUNCHER_WIDTH = \"min(440px, calc(100vw - 24px))\";\n\n/** Max width cap paired with {@link DEFAULT_FLOATING_LAUNCHER_WIDTH} for theme defaults. */\nexport const DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH = \"440px\";\n\nexport const DEFAULT_LAUNCHER_CONFIG: AgentWidgetLauncherConfig = {\n enabled: true,\n mountMode: \"floating\",\n dock: {\n side: \"right\",\n width: \"420px\",\n },\n title: \"Chat Assistant\",\n subtitle: \"Here to help you get answers fast\",\n agentIconText: \"💬\",\n agentIconName: \"bot\",\n headerIconName: \"bot\",\n position: \"bottom-right\",\n width: DEFAULT_FLOATING_LAUNCHER_WIDTH,\n heightOffset: 0,\n autoExpand: false,\n callToActionIconHidden: false,\n agentIconSize: \"40px\",\n headerIconSize: \"40px\",\n closeButtonSize: \"32px\",\n // Zero out browser-default <button> padding so the icon gets the full\n // 32x32 content box, matching clearChat.paddingX/Y below. Without this,\n // UA stylesheets add ~1-2px vertical and ~6px horizontal padding that\n // eats into the border-box width and shrinks the rendered icon.\n closeButtonPaddingX: \"0px\",\n closeButtonPaddingY: \"0px\",\n callToActionIconName: \"arrow-up-right\",\n callToActionIconText: \"\",\n callToActionIconSize: \"32px\",\n callToActionIconPadding: \"5px\",\n callToActionIconColor: undefined,\n callToActionIconBackgroundColor: undefined,\n // closeButtonColor / clearChat.iconColor omitted so theme.components.header.actionIconForeground applies.\n closeButtonBackgroundColor: \"transparent\",\n clearChat: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n enabled: true,\n placement: \"inline\",\n iconName: \"refresh-cw\",\n size: \"32px\",\n showTooltip: true,\n tooltipText: \"Clear chat\",\n paddingX: \"0px\",\n paddingY: \"0px\",\n },\n headerIconHidden: false,\n border: undefined,\n shadow:\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)\",\n};\n\n/**\n * Default widget configuration\n * Single source of truth for all default values\n */\nexport const DEFAULT_WIDGET_CONFIG: Partial<AgentWidgetConfig> = {\n apiUrl: \"https://api.runtype.com/api/chat/dispatch\",\n // Client token mode defaults (optional, only used when clientToken is set)\n clientToken: undefined,\n agentId: undefined,\n target: undefined,\n theme: undefined,\n darkTheme: undefined,\n colorScheme: \"light\",\n launcher: DEFAULT_LAUNCHER_CONFIG,\n copy: {\n welcomeTitle: \"Hello 👋\",\n welcomeSubtitle: \"Ask anything about your account or products.\",\n inputPlaceholder: \"How can I help...\",\n sendButtonLabel: \"Send\",\n },\n sendButton: {\n borderWidth: \"0px\",\n paddingX: \"12px\",\n paddingY: \"10px\",\n borderColor: undefined,\n useIcon: true,\n iconText: \"↑\",\n size: \"40px\",\n showTooltip: true,\n tooltipText: \"Send message\",\n iconName: \"send\",\n },\n statusIndicator: {\n visible: true,\n idleText: \"Online\",\n connectingText: \"Connecting…\",\n connectedText: \"Streaming…\",\n errorText: \"Offline\",\n },\n voiceRecognition: {\n enabled: true,\n pauseDuration: 2000,\n iconName: \"mic\",\n iconSize: \"39px\",\n borderWidth: \"0px\",\n paddingX: \"9px\",\n paddingY: \"14px\",\n iconColor: undefined,\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n recordingIconColor: undefined,\n recordingBackgroundColor: undefined,\n recordingBorderColor: \"transparent\",\n showTooltip: true,\n tooltipText: \"Start voice recognition\",\n },\n features: {\n showReasoning: true,\n showToolCalls: true,\n scrollToBottom: {\n enabled: true,\n iconName: \"arrow-down\",\n label: \"\",\n },\n scrollBehavior: {\n // ChatGPT-style default: pin the just-sent message near the top and let\n // the reply stream into the space below. Restore the old \"stick to the\n // bottom\" behavior with `mode: \"follow\"`.\n mode: \"anchor-top\",\n anchorTopOffset: 16,\n // Surface the unread count + \"streaming below\" hint while pinned, so the\n // reader still sees activity arriving off-screen under the pinned turn.\n // (Suppressed by default historically; opted on alongside the anchor-top\n // default so the default UX keeps the affordance.)\n showActivityWhilePinned: true,\n },\n toolCallDisplay: {\n collapsedMode: \"tool-call\",\n activePreview: false,\n grouped: false,\n previewMaxLines: 3,\n expandable: true,\n loadingAnimation: \"none\",\n },\n reasoningDisplay: {\n activePreview: false,\n previewMaxLines: 3,\n expandable: true,\n loadingAnimation: \"none\",\n },\n streamAnimation: {\n type: \"none\",\n placeholder: \"none\",\n speed: 120,\n duration: 1800,\n },\n askUserQuestion: {\n enabled: true,\n slideInMs: 180,\n freeTextLabel: \"Other…\",\n freeTextPlaceholder: \"Type your answer…\",\n submitLabel: \"Send\",\n },\n },\n suggestionChips: [\n \"What can you help me with?\",\n \"Tell me about your features\",\n \"How does this work?\",\n ],\n suggestionChipsConfig: {\n fontFamily: \"sans-serif\",\n fontWeight: \"500\",\n paddingX: \"12px\",\n paddingY: \"6px\",\n },\n layout: {\n header: {\n layout: \"default\",\n showIcon: true,\n showTitle: true,\n showSubtitle: true,\n showCloseButton: true,\n showClearChat: true,\n },\n messages: {\n layout: \"bubble\",\n avatar: {\n show: false,\n position: \"left\",\n },\n timestamp: {\n show: false,\n position: \"below\",\n },\n groupConsecutive: false,\n },\n slots: {},\n },\n markdown: {\n options: {\n gfm: true,\n breaks: true,\n },\n disableDefaultStyles: false,\n },\n messageActions: {\n enabled: true,\n showCopy: true,\n showUpvote: false, // Requires backend - disabled by default\n showDownvote: false, // Requires backend - disabled by default\n visibility: \"hover\",\n align: \"right\",\n layout: \"pill-inside\",\n },\n debug: false,\n};\n\nfunction mergeThemePartials(\n base: DeepPartial<PersonaTheme> | undefined,\n override: DeepPartial<PersonaTheme> | undefined\n): DeepPartial<PersonaTheme> | undefined {\n if (!base && !override) return undefined;\n if (!base) return override;\n if (!override) return base;\n return deepMerge(\n base as Record<string, unknown>,\n override as Record<string, unknown>\n ) as DeepPartial<PersonaTheme>;\n}\n\n/**\n * Helper to deep merge user config with defaults\n * This ensures all default values are present while allowing selective overrides\n */\nexport function mergeWithDefaults(\n config?: Partial<AgentWidgetConfig>\n): Partial<AgentWidgetConfig> {\n if (!config) return DEFAULT_WIDGET_CONFIG;\n\n return {\n ...DEFAULT_WIDGET_CONFIG,\n ...config,\n theme: mergeThemePartials(DEFAULT_WIDGET_CONFIG.theme, config.theme),\n darkTheme: mergeThemePartials(DEFAULT_WIDGET_CONFIG.darkTheme, config.darkTheme),\n launcher: {\n ...DEFAULT_WIDGET_CONFIG.launcher,\n ...config.launcher,\n dock: {\n ...DEFAULT_WIDGET_CONFIG.launcher?.dock,\n ...config.launcher?.dock,\n },\n clearChat: {\n ...DEFAULT_WIDGET_CONFIG.launcher?.clearChat,\n ...config.launcher?.clearChat,\n },\n },\n copy: {\n ...DEFAULT_WIDGET_CONFIG.copy,\n ...config.copy,\n },\n sendButton: {\n ...DEFAULT_WIDGET_CONFIG.sendButton,\n ...config.sendButton,\n },\n statusIndicator: {\n ...DEFAULT_WIDGET_CONFIG.statusIndicator,\n ...config.statusIndicator,\n },\n voiceRecognition: {\n ...DEFAULT_WIDGET_CONFIG.voiceRecognition,\n ...config.voiceRecognition,\n },\n features: (() => {\n const da = DEFAULT_WIDGET_CONFIG.features?.artifacts;\n const ca = config.features?.artifacts;\n const dsb = DEFAULT_WIDGET_CONFIG.features?.scrollToBottom;\n const csb = config.features?.scrollToBottom;\n const dsc = DEFAULT_WIDGET_CONFIG.features?.scrollBehavior;\n const csc = config.features?.scrollBehavior;\n const dsa = DEFAULT_WIDGET_CONFIG.features?.streamAnimation;\n const csa = config.features?.streamAnimation;\n const dau = DEFAULT_WIDGET_CONFIG.features?.askUserQuestion;\n const cau = config.features?.askUserQuestion;\n const mergedArtifacts =\n da === undefined && ca === undefined\n ? undefined\n : {\n ...da,\n ...ca,\n layout: {\n ...da?.layout,\n ...ca?.layout,\n },\n };\n const mergedScrollToBottom =\n dsb === undefined && csb === undefined\n ? undefined\n : {\n ...dsb,\n ...csb,\n };\n const mergedScrollBehavior =\n dsc === undefined && csc === undefined\n ? undefined\n : {\n ...dsc,\n ...csc,\n };\n const mergedStreamAnimation =\n dsa === undefined && csa === undefined\n ? undefined\n : {\n ...dsa,\n ...csa,\n };\n const mergedAskUserQuestion =\n dau === undefined && cau === undefined\n ? undefined\n : {\n ...dau,\n ...cau,\n styles: {\n ...dau?.styles,\n ...cau?.styles,\n },\n };\n return {\n ...DEFAULT_WIDGET_CONFIG.features,\n ...config.features,\n ...(mergedScrollToBottom !== undefined ? { scrollToBottom: mergedScrollToBottom } : {}),\n ...(mergedScrollBehavior !== undefined ? { scrollBehavior: mergedScrollBehavior } : {}),\n ...(mergedArtifacts !== undefined ? { artifacts: mergedArtifacts } : {}),\n ...(mergedStreamAnimation !== undefined ? { streamAnimation: mergedStreamAnimation } : {}),\n ...(mergedAskUserQuestion !== undefined ? { askUserQuestion: mergedAskUserQuestion } : {}),\n };\n })(),\n suggestionChips: config.suggestionChips ?? DEFAULT_WIDGET_CONFIG.suggestionChips,\n suggestionChipsConfig: {\n ...DEFAULT_WIDGET_CONFIG.suggestionChipsConfig,\n ...config.suggestionChipsConfig,\n },\n layout: {\n ...DEFAULT_WIDGET_CONFIG.layout,\n ...config.layout,\n header: {\n ...DEFAULT_WIDGET_CONFIG.layout?.header,\n ...config.layout?.header,\n },\n messages: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages,\n ...config.layout?.messages,\n avatar: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages?.avatar,\n ...config.layout?.messages?.avatar,\n },\n timestamp: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages?.timestamp,\n ...config.layout?.messages?.timestamp,\n },\n },\n slots: {\n ...DEFAULT_WIDGET_CONFIG.layout?.slots,\n ...config.layout?.slots,\n },\n },\n markdown: {\n ...DEFAULT_WIDGET_CONFIG.markdown,\n ...config.markdown,\n options: {\n ...DEFAULT_WIDGET_CONFIG.markdown?.options,\n ...config.markdown?.options,\n },\n },\n messageActions: {\n ...DEFAULT_WIDGET_CONFIG.messageActions,\n ...config.messageActions,\n },\n };\n}\n","import type {\n DeepPartial,\n PersonaTheme,\n ResolvedToken,\n ThemeValidationResult,\n ThemeValidationError,\n CreateThemeOptions,\n ComponentTokens,\n SemanticTokens,\n} from '../types/theme';\nimport {\n DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,\n DEFAULT_FLOATING_LAUNCHER_WIDTH,\n} from '../defaults';\n\nexport const DEFAULT_PALETTE = {\n colors: {\n primary: {\n 50: '#ffffff',\n 100: '#f5f5f5',\n 200: '#d4d4d4',\n 300: '#a3a3a3',\n 400: '#737373',\n 500: '#171717',\n 600: '#0f0f0f',\n 700: '#0a0a0a',\n 800: '#050505',\n 900: '#030303',\n 950: '#000000',\n },\n secondary: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065',\n },\n accent: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712',\n },\n success: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n warning: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n error: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n info: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n 950: '#172554',\n },\n },\n spacing: {\n 0: '0px',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 32: '8rem',\n 40: '10rem',\n 48: '12rem',\n 56: '14rem',\n 64: '16rem',\n },\n typography: {\n fontFamily: {\n sans: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n serif: 'Georgia, Cambria, \"Times New Roman\", Times, serif',\n mono: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.625',\n },\n },\n shadows: {\n none: 'none',\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n },\n borders: {\n none: 'none',\n sm: '1px solid',\n md: '2px solid',\n lg: '4px solid',\n },\n radius: {\n none: '0px',\n sm: '0.125rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n full: '9999px',\n },\n};\n\nexport const DEFAULT_SEMANTIC: SemanticTokens = {\n colors: {\n primary: 'palette.colors.primary.500',\n secondary: 'palette.colors.secondary.500',\n // Links/Focus role: solid primary\n accent: 'palette.colors.primary.600',\n // Surfaces role: soft gray\n surface: 'palette.colors.gray.50',\n background: 'palette.colors.gray.50',\n container: 'palette.colors.gray.50',\n text: 'palette.colors.gray.900',\n textMuted: 'palette.colors.gray.500',\n textInverse: 'palette.colors.gray.50',\n // Borders role: soft gray\n border: 'palette.colors.gray.200',\n divider: 'palette.colors.gray.200',\n interactive: {\n // Primary Actions role: solid primary\n default: 'palette.colors.primary.600',\n hover: 'palette.colors.primary.700',\n // Links/Focus role: solid primary\n focus: 'palette.colors.primary.600',\n active: 'palette.colors.primary.600',\n disabled: 'palette.colors.gray.300',\n },\n feedback: {\n success: 'palette.colors.success.500',\n warning: 'palette.colors.warning.500',\n error: 'palette.colors.error.500',\n info: 'palette.colors.info.500',\n },\n },\n spacing: {\n xs: 'palette.spacing.1',\n sm: 'palette.spacing.2',\n md: 'palette.spacing.4',\n lg: 'palette.spacing.6',\n xl: 'palette.spacing.8',\n '2xl': 'palette.spacing.10',\n },\n typography: {\n fontFamily: 'palette.typography.fontFamily.sans',\n fontSize: 'palette.typography.fontSize.base',\n fontWeight: 'palette.typography.fontWeight.normal',\n lineHeight: 'palette.typography.lineHeight.normal',\n },\n};\n\nexport const DEFAULT_COMPONENTS: ComponentTokens = {\n button: {\n primary: {\n // Primary Actions role: solid primary\n background: 'palette.colors.primary.500',\n foreground: 'palette.colors.primary.50',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n },\n secondary: {\n background: 'semantic.colors.surface',\n foreground: 'semantic.colors.secondary',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n },\n ghost: {\n background: 'transparent',\n foreground: 'semantic.colors.text',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n },\n input: {\n // Input role: soft gray\n background: 'palette.colors.gray.50',\n placeholder: 'palette.colors.gray.400',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n focus: {\n border: 'palette.colors.gray.400',\n ring: 'palette.colors.gray.400',\n },\n },\n launcher: {\n background: 'palette.colors.primary.500',\n foreground: 'palette.colors.primary.50',\n border: 'palette.colors.gray.200',\n size: '60px',\n iconSize: '28px',\n borderRadius: 'palette.radius.full',\n shadow: 'palette.shadows.lg',\n },\n panel: {\n width: DEFAULT_FLOATING_LAUNCHER_WIDTH,\n maxWidth: DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,\n height: '600px',\n maxHeight: 'calc(100vh - 80px)',\n borderRadius: 'palette.radius.xl',\n shadow: 'palette.shadows.xl',\n },\n header: {\n // Header role: solid primary\n background: 'palette.colors.primary.500',\n border: 'palette.colors.primary.600',\n borderRadius: 'palette.radius.xl palette.radius.xl 0 0',\n padding: 'semantic.spacing.md',\n iconBackground: 'palette.colors.primary.600',\n iconForeground: 'palette.colors.primary.50',\n titleForeground: 'palette.colors.primary.50',\n subtitleForeground: 'palette.colors.primary.200',\n actionIconForeground: 'palette.colors.primary.200',\n },\n message: {\n user: {\n // User Messages role: solid primary\n background: 'palette.colors.primary.500',\n text: 'palette.colors.primary.50',\n borderRadius: 'palette.radius.lg',\n shadow: 'palette.shadows.sm',\n },\n assistant: {\n // Assistant Messages role: soft gray\n background: 'palette.colors.gray.50',\n text: 'palette.colors.gray.900',\n borderRadius: 'palette.radius.lg',\n border: 'palette.colors.gray.200',\n shadow: 'palette.shadows.sm',\n },\n border: 'semantic.colors.border',\n },\n introCard: {\n // Defaults preserve the legacy `persona-shadow-sm` look exactly so existing\n // pages render unchanged when no token is set.\n background: 'semantic.colors.surface',\n borderRadius: 'palette.radius.2xl',\n padding: 'semantic.spacing.lg',\n shadow: '0 5px 15px rgba(15, 23, 42, 0.08)',\n },\n toolBubble: {\n shadow: 'palette.shadows.sm',\n },\n reasoningBubble: {\n shadow: 'palette.shadows.sm',\n },\n composer: {\n shadow: 'palette.shadows.none',\n },\n markdown: {\n inlineCode: {\n background: 'palette.colors.gray.50',\n foreground: 'palette.colors.gray.900',\n },\n link: {\n // Links/Focus role: solid primary\n foreground: 'palette.colors.primary.600',\n },\n prose: {\n fontFamily: 'inherit',\n },\n codeBlock: {\n background: 'semantic.colors.container',\n borderColor: 'semantic.colors.border',\n textColor: 'inherit',\n },\n table: {\n headerBackground: 'semantic.colors.container',\n borderColor: 'semantic.colors.border',\n },\n hr: {\n color: 'semantic.colors.divider',\n },\n blockquote: {\n borderColor: 'palette.colors.gray.900',\n background: 'transparent',\n textColor: 'palette.colors.gray.500',\n },\n },\n collapsibleWidget: {\n container: 'palette.colors.gray.50',\n surface: 'semantic.colors.surface',\n border: 'semantic.colors.border',\n },\n voice: {\n recording: {\n indicator: 'palette.colors.error.500',\n background: 'palette.colors.error.50',\n border: 'palette.colors.error.200',\n },\n processing: {\n icon: 'palette.colors.primary.500',\n background: 'palette.colors.primary.50',\n },\n speaking: {\n icon: 'palette.colors.success.500',\n },\n },\n // Neutral surface card (components/approval-actions.ts). The primary action\n // anchors to the brand primary; deny is a neutral tinted button. Consumers who\n // themed these (or set config.approval.* color overrides) still win.\n approval: {\n requested: {\n background: 'semantic.colors.surface',\n border: 'semantic.colors.border',\n text: 'palette.colors.gray.900',\n shadow: '0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)',\n },\n approve: {\n background: 'semantic.colors.primary',\n foreground: 'semantic.colors.textInverse',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n deny: {\n background: 'semantic.colors.container',\n foreground: 'semantic.colors.text',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n },\n attachment: {\n image: {\n background: 'palette.colors.gray.100',\n border: 'palette.colors.gray.200',\n },\n },\n scrollToBottom: {\n background: 'components.button.primary.background',\n foreground: 'components.button.primary.foreground',\n border: 'semantic.colors.primary',\n size: '40px',\n borderRadius: 'palette.radius.full',\n shadow: 'palette.shadows.sm',\n padding: '0.5rem 0.875rem',\n gap: '0.5rem',\n fontSize: '0.875rem',\n iconSize: '14px',\n },\n artifact: {\n pane: {\n background: 'semantic.colors.container',\n toolbarBackground: 'semantic.colors.container',\n },\n },\n};\n\nexport function resolveTokenValue(theme: PersonaTheme, path: string): string | undefined {\n if (\n !path.startsWith('palette.') &&\n !path.startsWith('semantic.') &&\n !path.startsWith('components.')\n ) {\n return path;\n }\n\n const parts = path.split('.');\n let current: any = theme;\n\n for (const part of parts) {\n if (current === undefined || current === null) {\n return undefined;\n }\n current = current[part];\n }\n\n if (\n typeof current === 'string' &&\n (current.startsWith('palette.') ||\n current.startsWith('semantic.') ||\n current.startsWith('components.'))\n ) {\n return resolveTokenValue(theme, current);\n }\n\n return current;\n}\n\nexport function resolveTokens(theme: PersonaTheme): Record<string, ResolvedToken> {\n const resolved: Record<string, ResolvedToken> = {};\n\n function resolveObject(obj: any, prefix: string) {\n for (const [key, value] of Object.entries(obj)) {\n const path = `${prefix}.${key}`;\n\n if (typeof value === 'string') {\n const resolvedValue = resolveTokenValue(theme, value);\n if (resolvedValue !== undefined) {\n resolved[path] = {\n path,\n value: resolvedValue,\n type:\n prefix.includes('color')\n ? 'color'\n : prefix.includes('spacing')\n ? 'spacing'\n : prefix.includes('typography')\n ? 'typography'\n : prefix.includes('shadow')\n ? 'shadow'\n : prefix.includes('border')\n ? 'border'\n : 'color',\n };\n }\n } else if (typeof value === 'object' && value !== null) {\n resolveObject(value, path);\n }\n }\n }\n\n resolveObject(theme.palette, 'palette');\n resolveObject(theme.semantic, 'semantic');\n resolveObject(theme.components, 'components');\n\n return resolved;\n}\n\nexport function validateTheme(theme: Partial<PersonaTheme>): ThemeValidationResult {\n const errors: ThemeValidationError[] = [];\n const warnings: ThemeValidationError[] = [];\n\n if (!theme.palette) {\n errors.push({\n path: 'palette',\n message: 'Theme must include a palette',\n severity: 'error',\n });\n }\n\n if (!theme.semantic) {\n warnings.push({\n path: 'semantic',\n message: 'No semantic tokens defined - defaults will be used',\n severity: 'warning',\n });\n }\n\n if (!theme.components) {\n warnings.push({\n path: 'components',\n message: 'No component tokens defined - defaults will be used',\n severity: 'warning',\n });\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n };\n}\n\nfunction mergeRecords(\n base: Record<string, unknown>,\n override: Record<string, unknown>\n): Record<string, unknown> {\n const result = { ...base };\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n if (existing && typeof existing === 'object' && !Array.isArray(existing) &&\n value && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = mergeRecords(\n existing as Record<string, unknown>,\n value as Record<string, unknown>\n );\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\nfunction deepMergeComponents(\n base: ComponentTokens,\n override?: Partial<ComponentTokens>\n): ComponentTokens {\n if (!override) return base;\n return mergeRecords(\n base as unknown as Record<string, unknown>,\n override as unknown as Record<string, unknown>\n ) as unknown as ComponentTokens;\n}\n\nexport function createTheme(\n userConfig?: DeepPartial<PersonaTheme>,\n options: CreateThemeOptions = {}\n): PersonaTheme {\n const baseTheme: PersonaTheme = {\n palette: DEFAULT_PALETTE as PersonaTheme['palette'],\n semantic: DEFAULT_SEMANTIC as PersonaTheme['semantic'],\n components: DEFAULT_COMPONENTS as PersonaTheme['components'],\n };\n\n let theme: PersonaTheme = {\n palette: {\n ...baseTheme.palette,\n ...userConfig?.palette,\n colors: {\n ...baseTheme.palette.colors,\n ...userConfig?.palette?.colors,\n },\n spacing: {\n ...baseTheme.palette.spacing,\n ...userConfig?.palette?.spacing,\n },\n typography: {\n ...baseTheme.palette.typography,\n ...userConfig?.palette?.typography,\n },\n shadows: {\n ...baseTheme.palette.shadows,\n ...userConfig?.palette?.shadows,\n },\n borders: {\n ...baseTheme.palette.borders,\n ...userConfig?.palette?.borders,\n },\n radius: {\n ...baseTheme.palette.radius,\n ...userConfig?.palette?.radius,\n },\n },\n semantic: {\n ...baseTheme.semantic,\n ...userConfig?.semantic,\n colors: {\n ...baseTheme.semantic.colors,\n ...userConfig?.semantic?.colors,\n interactive: {\n ...baseTheme.semantic.colors.interactive,\n ...userConfig?.semantic?.colors?.interactive,\n },\n feedback: {\n ...baseTheme.semantic.colors.feedback,\n ...userConfig?.semantic?.colors?.feedback,\n },\n },\n spacing: {\n ...baseTheme.semantic.spacing,\n ...userConfig?.semantic?.spacing,\n },\n typography: {\n ...baseTheme.semantic.typography,\n ...userConfig?.semantic?.typography,\n },\n },\n components: deepMergeComponents(\n baseTheme.components,\n userConfig?.components as Partial<ComponentTokens> | undefined\n ),\n } as PersonaTheme;\n\n if (options.validate !== false) {\n const validation = validateTheme(theme);\n if (!validation.valid) {\n throw new Error(\n `Theme validation failed: ${validation.errors.map((e) => e.message).join(', ')}`\n );\n }\n }\n\n if (options.plugins) {\n for (const plugin of options.plugins) {\n theme = plugin.transform(theme);\n }\n }\n\n return theme;\n}\n\nexport function themeToCssVariables(theme: PersonaTheme): Record<string, string> {\n const resolved = resolveTokens(theme);\n const cssVars: Record<string, string> = {};\n\n for (const [path, token] of Object.entries(resolved)) {\n const varName = path.replace(/\\./g, '-');\n cssVars[`--persona-${varName}`] = token.value;\n }\n\n cssVars['--persona-primary'] = cssVars['--persona-semantic-colors-primary'] ?? cssVars['--persona-palette-colors-primary-500'];\n cssVars['--persona-secondary'] = cssVars['--persona-semantic-colors-secondary'] ?? cssVars['--persona-palette-colors-secondary-500'];\n cssVars['--persona-accent'] = cssVars['--persona-semantic-colors-accent'] ?? cssVars['--persona-palette-colors-accent-500'];\n cssVars['--persona-surface'] = cssVars['--persona-semantic-colors-surface'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-background'] = cssVars['--persona-semantic-colors-background'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-container'] = cssVars['--persona-semantic-colors-container'] ?? cssVars['--persona-palette-colors-gray-100'];\n cssVars['--persona-text'] = cssVars['--persona-semantic-colors-text'] ?? cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-text-muted'] = cssVars['--persona-semantic-colors-text-muted'] ?? cssVars['--persona-palette-colors-gray-500'];\n cssVars['--persona-text-inverse'] = cssVars['--persona-semantic-colors-text-inverse'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-border'] = cssVars['--persona-semantic-colors-border'] ?? cssVars['--persona-palette-colors-gray-200'];\n cssVars['--persona-divider'] = cssVars['--persona-semantic-colors-divider'] ?? cssVars['--persona-palette-colors-gray-200'];\n cssVars['--persona-muted'] = cssVars['--persona-text-muted'];\n\n cssVars['--persona-voice-recording-indicator'] = cssVars['--persona-components-voice-recording-indicator'] ?? cssVars['--persona-palette-colors-error-500'];\n cssVars['--persona-voice-recording-bg'] = cssVars['--persona-components-voice-recording-background'] ?? cssVars['--persona-palette-colors-error-50'];\n cssVars['--persona-voice-processing-icon'] = cssVars['--persona-components-voice-processing-icon'] ?? cssVars['--persona-palette-colors-primary-500'];\n cssVars['--persona-voice-speaking-icon'] = cssVars['--persona-components-voice-speaking-icon'] ?? cssVars['--persona-palette-colors-success-500'];\n\n cssVars['--persona-approval-bg'] = cssVars['--persona-components-approval-requested-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-approval-border'] = cssVars['--persona-components-approval-requested-border'] ?? cssVars['--persona-border'];\n cssVars['--persona-approval-text'] = cssVars['--persona-components-approval-requested-text'] ?? cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-approval-shadow'] = cssVars['--persona-components-approval-requested-shadow'] ?? '0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)';\n cssVars['--persona-approval-approve-bg'] = cssVars['--persona-components-approval-approve-background'] ?? cssVars['--persona-button-primary-bg'];\n cssVars['--persona-approval-deny-bg'] = cssVars['--persona-components-approval-deny-background'] ?? cssVars['--persona-container'];\n\n cssVars['--persona-attachment-image-bg'] = cssVars['--persona-components-attachment-image-background'] ?? cssVars['--persona-palette-colors-gray-100'];\n cssVars['--persona-attachment-image-border'] = cssVars['--persona-components-attachment-image-border'] ?? cssVars['--persona-palette-colors-gray-200'];\n\n // Typography shorthand aliases\n cssVars['--persona-font-family'] = cssVars['--persona-semantic-typography-fontFamily'] ?? cssVars['--persona-palette-typography-fontFamily-sans'];\n cssVars['--persona-font-size'] = cssVars['--persona-semantic-typography-fontSize'] ?? cssVars['--persona-palette-typography-fontSize-base'];\n cssVars['--persona-font-weight'] = cssVars['--persona-semantic-typography-fontWeight'] ?? cssVars['--persona-palette-typography-fontWeight-normal'];\n cssVars['--persona-line-height'] = cssVars['--persona-semantic-typography-lineHeight'] ?? cssVars['--persona-palette-typography-lineHeight-normal'];\n\n cssVars['--persona-input-font-family'] = cssVars['--persona-font-family'];\n cssVars['--persona-input-font-weight'] = cssVars['--persona-font-weight'];\n\n // Radius aliases used throughout the existing widget CSS.\n cssVars['--persona-radius-sm'] = cssVars['--persona-palette-radius-sm'] ?? '0.125rem';\n cssVars['--persona-radius-md'] = cssVars['--persona-palette-radius-md'] ?? '0.375rem';\n cssVars['--persona-radius-lg'] = cssVars['--persona-palette-radius-lg'] ?? '0.5rem';\n cssVars['--persona-radius-xl'] = cssVars['--persona-palette-radius-xl'] ?? '0.75rem';\n cssVars['--persona-radius-full'] = cssVars['--persona-palette-radius-full'] ?? '9999px';\n cssVars['--persona-launcher-radius'] =\n cssVars['--persona-components-launcher-borderRadius'] ??\n cssVars['--persona-palette-radius-full'] ??\n '9999px';\n cssVars['--persona-launcher-bg'] =\n cssVars['--persona-components-launcher-background'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-launcher-fg'] =\n cssVars['--persona-components-launcher-foreground'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-launcher-border'] =\n cssVars['--persona-components-launcher-border'] ??\n cssVars['--persona-border'];\n cssVars['--persona-button-primary-bg'] =\n cssVars['--persona-components-button-primary-background'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-button-primary-fg'] =\n cssVars['--persona-components-button-primary-foreground'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-button-radius'] =\n cssVars['--persona-components-button-primary-borderRadius'] ??\n cssVars['--persona-palette-radius-full'] ??\n '9999px';\n cssVars['--persona-panel-radius'] =\n cssVars['--persona-components-panel-borderRadius'] ??\n cssVars['--persona-radius-xl'] ??\n '0.75rem';\n cssVars['--persona-panel-border'] =\n cssVars['--persona-components-panel-border'] ?? `1px solid ${cssVars['--persona-border']}`;\n cssVars['--persona-panel-shadow'] =\n cssVars['--persona-components-panel-shadow'] ??\n cssVars['--persona-palette-shadows-xl'] ??\n '0 25px 50px -12px rgba(0, 0, 0, 0.25)';\n cssVars['--persona-launcher-shadow'] =\n cssVars['--persona-components-launcher-shadow'] ??\n '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)';\n cssVars['--persona-input-radius'] =\n cssVars['--persona-components-input-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n cssVars['--persona-message-user-radius'] =\n cssVars['--persona-components-message-user-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n cssVars['--persona-message-assistant-radius'] =\n cssVars['--persona-components-message-assistant-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n\n // Component-level color overrides: these map component tokens to\n // dedicated CSS variables that the widget CSS reads for individual elements.\n cssVars['--persona-header-bg'] =\n cssVars['--persona-components-header-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-header-border'] =\n cssVars['--persona-components-header-border'] ?? cssVars['--persona-divider'];\n cssVars['--persona-header-icon-bg'] =\n cssVars['--persona-components-header-iconBackground'] ?? cssVars['--persona-primary'];\n cssVars['--persona-header-icon-fg'] =\n cssVars['--persona-components-header-iconForeground'] ?? cssVars['--persona-text-inverse'];\n cssVars['--persona-header-title-fg'] =\n cssVars['--persona-components-header-titleForeground'] ?? cssVars['--persona-primary'];\n cssVars['--persona-header-subtitle-fg'] =\n cssVars['--persona-components-header-subtitleForeground'] ?? cssVars['--persona-text-muted'];\n cssVars['--persona-header-action-icon-fg'] =\n cssVars['--persona-components-header-actionIconForeground'] ?? cssVars['--persona-muted'];\n\n const headerTokens = theme.components?.header;\n if (headerTokens?.shadow) cssVars['--persona-header-shadow'] = headerTokens.shadow;\n if (headerTokens?.borderBottom) cssVars['--persona-header-border-bottom'] = headerTokens.borderBottom;\n\n // Intro card aliases: short names the panel inline-styles read directly.\n // The full-path `--persona-components-introCard-*` variables auto-emit above;\n // these mirror them with sensible fallbacks so existing pages keep their look.\n const introCardTokens = theme.components?.introCard;\n cssVars['--persona-intro-card-bg'] =\n cssVars['--persona-components-introCard-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-intro-card-radius'] =\n cssVars['--persona-components-introCard-borderRadius'] ?? '1rem';\n cssVars['--persona-intro-card-padding'] =\n cssVars['--persona-components-introCard-padding'] ?? '1.5rem';\n cssVars['--persona-intro-card-shadow'] =\n introCardTokens?.shadow\n ?? cssVars['--persona-components-introCard-shadow']\n ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n\n cssVars['--persona-input-background'] =\n cssVars['--persona-components-input-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-input-placeholder'] =\n cssVars['--persona-components-input-placeholder'] ?? cssVars['--persona-text-muted'];\n\n cssVars['--persona-message-user-bg'] =\n cssVars['--persona-components-message-user-background'] ?? cssVars['--persona-accent'];\n cssVars['--persona-message-user-text'] =\n cssVars['--persona-components-message-user-text'] ?? cssVars['--persona-text-inverse'];\n cssVars['--persona-message-user-shadow'] =\n cssVars['--persona-components-message-user-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-message-assistant-bg'] =\n cssVars['--persona-components-message-assistant-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-message-assistant-text'] =\n cssVars['--persona-components-message-assistant-text'] ?? cssVars['--persona-text'];\n cssVars['--persona-message-assistant-border'] =\n cssVars['--persona-components-message-assistant-border'] ?? cssVars['--persona-border'];\n cssVars['--persona-message-assistant-shadow'] =\n cssVars['--persona-components-message-assistant-shadow'] ?? '0 1px 2px 0 rgb(0 0 0 / 0.05)';\n cssVars['--persona-scroll-to-bottom-bg'] =\n cssVars['--persona-components-scrollToBottom-background'] ??\n cssVars['--persona-button-primary-bg'] ??\n cssVars['--persona-accent'];\n cssVars['--persona-scroll-to-bottom-fg'] =\n cssVars['--persona-components-scrollToBottom-foreground'] ??\n cssVars['--persona-button-primary-fg'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-scroll-to-bottom-border'] =\n cssVars['--persona-components-scrollToBottom-border'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-scroll-to-bottom-size'] =\n cssVars['--persona-components-scrollToBottom-size'] ??\n '40px';\n cssVars['--persona-scroll-to-bottom-radius'] =\n cssVars['--persona-components-scrollToBottom-borderRadius'] ??\n cssVars['--persona-button-radius'] ??\n cssVars['--persona-radius-full'] ??\n '9999px';\n cssVars['--persona-scroll-to-bottom-shadow'] =\n cssVars['--persona-components-scrollToBottom-shadow'] ??\n cssVars['--persona-palette-shadows-sm'] ??\n '0 1px 2px 0 rgb(0 0 0 / 0.05)';\n cssVars['--persona-scroll-to-bottom-padding'] =\n cssVars['--persona-components-scrollToBottom-padding'] ??\n '0.5rem 0.875rem';\n cssVars['--persona-scroll-to-bottom-gap'] =\n cssVars['--persona-components-scrollToBottom-gap'] ??\n '0.5rem';\n cssVars['--persona-scroll-to-bottom-font-size'] =\n cssVars['--persona-components-scrollToBottom-fontSize'] ??\n cssVars['--persona-palette-typography-fontSize-sm'] ??\n '0.875rem';\n cssVars['--persona-scroll-to-bottom-icon-size'] =\n cssVars['--persona-components-scrollToBottom-iconSize'] ??\n '14px';\n\n cssVars['--persona-tool-bubble-shadow'] =\n cssVars['--persona-components-toolBubble-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-reasoning-bubble-shadow'] =\n cssVars['--persona-components-reasoningBubble-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-composer-shadow'] =\n cssVars['--persona-components-composer-shadow'] ?? 'none';\n\n cssVars['--persona-md-inline-code-bg'] =\n cssVars['--persona-components-markdown-inlineCode-background'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-inline-code-color'] =\n cssVars['--persona-components-markdown-inlineCode-foreground'] ?? cssVars['--persona-text'];\n\n cssVars['--persona-md-link-color'] =\n cssVars['--persona-components-markdown-link-foreground'] ??\n cssVars['--persona-accent'] ??\n '#0f0f0f';\n\n const mdH1Size = cssVars['--persona-components-markdown-heading-h1-fontSize'];\n if (mdH1Size) cssVars['--persona-md-h1-size'] = mdH1Size;\n const mdH1Weight = cssVars['--persona-components-markdown-heading-h1-fontWeight'];\n if (mdH1Weight) cssVars['--persona-md-h1-weight'] = mdH1Weight;\n const mdH2Size = cssVars['--persona-components-markdown-heading-h2-fontSize'];\n if (mdH2Size) cssVars['--persona-md-h2-size'] = mdH2Size;\n const mdH2Weight = cssVars['--persona-components-markdown-heading-h2-fontWeight'];\n if (mdH2Weight) cssVars['--persona-md-h2-weight'] = mdH2Weight;\n\n const mdProseFont = cssVars['--persona-components-markdown-prose-fontFamily'];\n if (mdProseFont && mdProseFont !== 'inherit') {\n cssVars['--persona-md-prose-font-family'] = mdProseFont;\n }\n\n // Markdown code block\n cssVars['--persona-md-code-block-bg'] =\n cssVars['--persona-components-markdown-codeBlock-background'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-code-block-border-color'] =\n cssVars['--persona-components-markdown-codeBlock-borderColor'] ?? cssVars['--persona-border'];\n cssVars['--persona-md-code-block-text-color'] =\n cssVars['--persona-components-markdown-codeBlock-textColor'] ?? 'inherit';\n\n // Markdown table\n cssVars['--persona-md-table-header-bg'] =\n cssVars['--persona-components-markdown-table-headerBackground'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-table-border-color'] =\n cssVars['--persona-components-markdown-table-borderColor'] ?? cssVars['--persona-border'];\n\n // Markdown HR\n cssVars['--persona-md-hr-color'] =\n cssVars['--persona-components-markdown-hr-color'] ?? cssVars['--persona-divider'];\n\n // Markdown blockquote\n cssVars['--persona-md-blockquote-border-color'] =\n cssVars['--persona-components-markdown-blockquote-borderColor'] ??\n cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-md-blockquote-bg'] =\n cssVars['--persona-components-markdown-blockquote-background'] ?? 'transparent';\n cssVars['--persona-md-blockquote-text-color'] =\n cssVars['--persona-components-markdown-blockquote-textColor'] ??\n cssVars['--persona-palette-colors-gray-500'];\n\n // Collapsible widget chrome (tool/reasoning/approval bubbles)\n cssVars['--cw-container'] =\n cssVars['--persona-components-collapsibleWidget-container'] ?? cssVars['--persona-surface'];\n cssVars['--cw-surface'] =\n cssVars['--persona-components-collapsibleWidget-surface'] ?? cssVars['--persona-surface'];\n cssVars['--cw-border'] =\n cssVars['--persona-components-collapsibleWidget-border'] ?? cssVars['--persona-border'];\n\n // Message border\n cssVars['--persona-message-border'] =\n cssVars['--persona-components-message-border'] ?? cssVars['--persona-border'];\n\n // Icon button tokens\n const components = theme.components;\n const iconBtn = components?.iconButton;\n if (iconBtn) {\n if (iconBtn.background) cssVars['--persona-icon-btn-bg'] = iconBtn.background;\n if (iconBtn.border) cssVars['--persona-icon-btn-border'] = iconBtn.border;\n if (iconBtn.color) cssVars['--persona-icon-btn-color'] = iconBtn.color;\n if (iconBtn.padding) cssVars['--persona-icon-btn-padding'] = iconBtn.padding;\n if (iconBtn.borderRadius) cssVars['--persona-icon-btn-radius'] = iconBtn.borderRadius;\n if (iconBtn.hoverBackground) cssVars['--persona-icon-btn-hover-bg'] = iconBtn.hoverBackground;\n if (iconBtn.hoverColor) cssVars['--persona-icon-btn-hover-color'] = iconBtn.hoverColor;\n if (iconBtn.activeBackground) cssVars['--persona-icon-btn-active-bg'] = iconBtn.activeBackground;\n if (iconBtn.activeBorder) cssVars['--persona-icon-btn-active-border'] = iconBtn.activeBorder;\n }\n\n // Label button tokens\n const labelBtn = components?.labelButton;\n if (labelBtn) {\n if (labelBtn.background) cssVars['--persona-label-btn-bg'] = labelBtn.background;\n if (labelBtn.border) cssVars['--persona-label-btn-border'] = labelBtn.border;\n if (labelBtn.color) cssVars['--persona-label-btn-color'] = labelBtn.color;\n if (labelBtn.padding) cssVars['--persona-label-btn-padding'] = labelBtn.padding;\n if (labelBtn.borderRadius) cssVars['--persona-label-btn-radius'] = labelBtn.borderRadius;\n if (labelBtn.hoverBackground) cssVars['--persona-label-btn-hover-bg'] = labelBtn.hoverBackground;\n if (labelBtn.fontSize) cssVars['--persona-label-btn-font-size'] = labelBtn.fontSize;\n if (labelBtn.gap) cssVars['--persona-label-btn-gap'] = labelBtn.gap;\n }\n\n // Toggle group tokens\n const toggleGrp = components?.toggleGroup;\n if (toggleGrp) {\n if (toggleGrp.gap) cssVars['--persona-toggle-group-gap'] = toggleGrp.gap;\n if (toggleGrp.borderRadius) cssVars['--persona-toggle-group-radius'] = toggleGrp.borderRadius;\n }\n\n // Artifact tokens\n const artifact = components?.artifact;\n if (artifact?.toolbar) {\n const t = artifact.toolbar;\n if (t.iconHoverColor) cssVars['--persona-artifact-toolbar-icon-hover-color'] = t.iconHoverColor;\n if (t.iconHoverBackground) cssVars['--persona-artifact-toolbar-icon-hover-bg'] = t.iconHoverBackground;\n if (t.iconPadding) cssVars['--persona-artifact-toolbar-icon-padding'] = t.iconPadding;\n if (t.iconBorderRadius) cssVars['--persona-artifact-toolbar-icon-radius'] = t.iconBorderRadius;\n if (t.iconBorder) cssVars['--persona-artifact-toolbar-icon-border'] = t.iconBorder;\n if (t.toggleGroupGap) cssVars['--persona-artifact-toolbar-toggle-group-gap'] = t.toggleGroupGap;\n if (t.toggleBorderRadius) cssVars['--persona-artifact-toolbar-toggle-radius'] = t.toggleBorderRadius;\n if (t.copyBackground) cssVars['--persona-artifact-toolbar-copy-bg'] = t.copyBackground;\n if (t.copyBorder) cssVars['--persona-artifact-toolbar-copy-border'] = t.copyBorder;\n if (t.copyColor) cssVars['--persona-artifact-toolbar-copy-color'] = t.copyColor;\n if (t.copyBorderRadius) cssVars['--persona-artifact-toolbar-copy-radius'] = t.copyBorderRadius;\n if (t.copyPadding) cssVars['--persona-artifact-toolbar-copy-padding'] = t.copyPadding;\n if (t.copyMenuBackground) {\n cssVars['--persona-artifact-toolbar-copy-menu-bg'] = t.copyMenuBackground;\n cssVars['--persona-dropdown-bg'] = cssVars['--persona-dropdown-bg'] ?? t.copyMenuBackground;\n }\n if (t.copyMenuBorder) {\n cssVars['--persona-artifact-toolbar-copy-menu-border'] = t.copyMenuBorder;\n cssVars['--persona-dropdown-border'] = cssVars['--persona-dropdown-border'] ?? t.copyMenuBorder;\n }\n if (t.copyMenuShadow) {\n cssVars['--persona-artifact-toolbar-copy-menu-shadow'] = t.copyMenuShadow;\n cssVars['--persona-dropdown-shadow'] = cssVars['--persona-dropdown-shadow'] ?? t.copyMenuShadow;\n }\n if (t.copyMenuBorderRadius) {\n cssVars['--persona-artifact-toolbar-copy-menu-radius'] = t.copyMenuBorderRadius;\n cssVars['--persona-dropdown-radius'] = cssVars['--persona-dropdown-radius'] ?? t.copyMenuBorderRadius;\n }\n if (t.copyMenuItemHoverBackground) {\n cssVars['--persona-artifact-toolbar-copy-menu-item-hover-bg'] = t.copyMenuItemHoverBackground;\n cssVars['--persona-dropdown-item-hover-bg'] = cssVars['--persona-dropdown-item-hover-bg'] ?? t.copyMenuItemHoverBackground;\n }\n if (t.iconBackground) cssVars['--persona-artifact-toolbar-icon-bg'] = t.iconBackground;\n if (t.toolbarBorder) cssVars['--persona-artifact-toolbar-border'] = t.toolbarBorder;\n }\n if (artifact?.tab) {\n const t = artifact.tab;\n if (t.background) cssVars['--persona-artifact-tab-bg'] = t.background;\n if (t.activeBackground) cssVars['--persona-artifact-tab-active-bg'] = t.activeBackground;\n if (t.activeBorder) cssVars['--persona-artifact-tab-active-border'] = t.activeBorder;\n if (t.borderRadius) cssVars['--persona-artifact-tab-radius'] = t.borderRadius;\n if (t.textColor) cssVars['--persona-artifact-tab-color'] = t.textColor;\n if (t.hoverBackground) cssVars['--persona-artifact-tab-hover-bg'] = t.hoverBackground;\n if (t.listBackground) cssVars['--persona-artifact-tab-list-bg'] = t.listBackground;\n if (t.listBorderColor) cssVars['--persona-artifact-tab-list-border-color'] = t.listBorderColor;\n if (t.listPadding) cssVars['--persona-artifact-tab-list-padding'] = t.listPadding;\n }\n if (artifact?.pane) {\n const t = artifact.pane;\n if (t.toolbarBackground) {\n const toolbarBg =\n resolveTokenValue(theme, t.toolbarBackground) ?? t.toolbarBackground;\n cssVars['--persona-artifact-toolbar-bg'] = toolbarBg;\n }\n }\n\n return cssVars;\n}\n\nexport function applyThemeVariables(element: HTMLElement, theme: PersonaTheme): void {\n const cssVars = themeToCssVariables(theme);\n\n for (const [name, value] of Object.entries(cssVars)) {\n element.style.setProperty(name, value);\n }\n}\n\n/**\n * Stable `data-persona-theme-zone` values applied to key widget regions.\n * Visual editors should use `[data-persona-theme-zone=\"header\"]` selectors\n * rather than internal class names.\n */\nexport const THEME_ZONES = {\n header: 'Widget header bar',\n messages: 'Message list area',\n 'user-message': 'User message bubble',\n 'assistant-message': 'Assistant message bubble',\n composer: 'Footer / composer area',\n container: 'Main widget container',\n 'artifact-pane': 'Artifact sidebar',\n 'artifact-toolbar': 'Artifact toolbar',\n} as const;\n\nexport type ThemeZone = keyof typeof THEME_ZONES;\n","import type { DeepPartial, PersonaTheme } from '../types/theme';\nimport type { AgentWidgetConfig } from '../types';\nimport { createTheme, resolveTokens, themeToCssVariables } from './tokens';\nimport { deepMerge } from './deep-merge';\n\nexport type ColorScheme = 'light' | 'dark' | 'auto';\n\nexport interface PersonaWidgetConfig {\n theme?: DeepPartial<PersonaTheme>;\n darkTheme?: DeepPartial<PersonaTheme>;\n colorScheme?: ColorScheme;\n}\n\ntype WidgetConfig = PersonaWidgetConfig | AgentWidgetConfig;\n\nconst DARK_PALETTE = {\n colors: {\n primary: {\n 50: '#ffffff',\n 100: '#f5f5f5',\n 200: '#d4d4d4',\n 300: '#a3a3a3',\n 400: '#737373',\n 500: '#171717',\n 600: '#0f0f0f',\n 700: '#0a0a0a',\n 800: '#050505',\n 900: '#030303',\n 950: '#000000',\n },\n secondary: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065',\n },\n accent: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712',\n },\n success: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n warning: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n error: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n },\n};\n\n/**\n * Normalize theme config for merging; rejects non-objects.\n */\nconst normalizeThemeConfig = (\n theme: DeepPartial<PersonaTheme> | Record<string, unknown> | undefined\n): DeepPartial<PersonaTheme> | undefined => {\n if (!theme || typeof theme !== 'object' || Array.isArray(theme)) return undefined;\n return theme as DeepPartial<PersonaTheme>;\n};\n\nexport const detectColorScheme = (): 'light' | 'dark' => {\n if (typeof document !== 'undefined' && document.documentElement.classList.contains('dark')) {\n return 'dark';\n }\n\n if (typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n};\n\nconst getColorSchemeFromConfig = (config?: WidgetConfig): 'light' | 'dark' => {\n const colorScheme = config?.colorScheme ?? 'light';\n\n if (colorScheme === 'light') return 'light';\n if (colorScheme === 'dark') return 'dark';\n\n return detectColorScheme();\n};\n\nexport const getColorScheme = (config?: WidgetConfig): 'light' | 'dark' => {\n return getColorSchemeFromConfig(config);\n};\n\nexport const createLightTheme = (userConfig?: DeepPartial<PersonaTheme>): PersonaTheme => {\n return createTheme(userConfig);\n};\n\nexport const createDarkTheme = (userConfig?: DeepPartial<PersonaTheme>): PersonaTheme => {\n const baseTheme = createTheme(undefined, { validate: false });\n \n return createTheme(\n {\n ...userConfig,\n palette: {\n ...baseTheme.palette,\n colors: {\n ...DARK_PALETTE.colors,\n ...userConfig?.palette?.colors,\n },\n },\n },\n { validate: false }\n );\n};\n\nexport const getActiveTheme = (config?: WidgetConfig): PersonaTheme => {\n const scheme = getColorScheme(config);\n const lightThemeConfig = normalizeThemeConfig(config?.theme);\n const darkThemeConfig = normalizeThemeConfig(config?.darkTheme);\n\n if (scheme === 'dark') {\n return createDarkTheme(\n deepMerge(\n (lightThemeConfig ?? {}) as Record<string, unknown>,\n (darkThemeConfig ?? {}) as Record<string, unknown>\n ) as DeepPartial<PersonaTheme>\n );\n }\n\n return createLightTheme(lightThemeConfig);\n};\n\nexport const getCssVariables = (theme: PersonaTheme): Record<string, string> => {\n return themeToCssVariables(theme);\n};\n\nexport const applyThemeVariables = (\n element: HTMLElement,\n config?: WidgetConfig\n): void => {\n const theme = getActiveTheme(config);\n const cssVars = getCssVariables(theme);\n\n for (const [name, value] of Object.entries(cssVars)) {\n element.style.setProperty(name, value);\n }\n};\n\nexport const createThemeObserver = (\n callback: (scheme: 'light' | 'dark') => void\n): (() => void) => {\n const cleanupFns: Array<() => void> = [];\n\n if (typeof document !== 'undefined' && typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => {\n callback(detectColorScheme());\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n\n cleanupFns.push(() => observer.disconnect());\n }\n\n if (typeof window !== 'undefined' && window.matchMedia) {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = () => callback(detectColorScheme());\n\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handleChange);\n cleanupFns.push(() => mediaQuery.removeEventListener('change', handleChange));\n } else if (mediaQuery.addListener) {\n mediaQuery.addListener(handleChange);\n cleanupFns.push(() => mediaQuery.removeListener(handleChange));\n }\n }\n\n return () => {\n cleanupFns.forEach((fn) => fn());\n };\n};\n\nexport { createTheme, resolveTokens, themeToCssVariables };\n"],"mappings":"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","names":["launcher_global_exports","__export","CRITICAL_LAUNCHER_ATTR","mount","createElement","tag","className","element","positionMap","isDockedMountMode","config","_a","_b","Activity","ArrowDown","ArrowLeft","ArrowRight","ArrowUpRight","ArrowUp","AtSign","Ban","Bell","Bookmark","Bot","Building","CalendarDays","Calendar","Camera","Check","ChevronDown","ChevronLeft","ChevronRight","ChevronUp","CircleCheck","CircleX","ClipboardCopy","Clipboard","Clock","Copy","CreditCard","DollarSign","Download","EllipsisVertical","Ellipsis","EyeOff","ExternalLink","Eye","FileCode","FileSpreadsheet","FileText","File","Files","Film","Flag","FolderOpen","Folder","Funnel","Gift","Globe","Hash","Headphones","Heart","History","House","ImagePlus","Image","Info","Key","Link","LoaderCircle","Loader","Lock","Mail","MapPin","Maximize","Menu","MessageCircle","MessageSquare","Mic","Minimize","Minus","Monitor","Moon","Package","Paperclip","Pause","Pencil","Percent","Phone","Play","Plus","Receipt","RefreshCw","RotateCw","Save","Search","Send","Settings","Share","ShieldAlert","ShieldCheck","ShieldX","Shield","ShoppingBag","ShoppingCart","Smartphone","Sparkles","Square","Star","Store","Sun","Tag","ThumbsDown","ThumbsUp","Timer","Trash2","Trash","TriangleAlert","Truck","Upload","User","Volume2","VolumeX","Wallet","X","Zap","LUCIDE_ICONS","Activity","ArrowDown","ArrowUp","ArrowUpRight","Bot","ChevronDown","ChevronUp","ChevronRight","ChevronLeft","Check","Clipboard","ClipboardCopy","Copy","File","FileCode","FileSpreadsheet","FileText","ImagePlus","Loader","LoaderCircle","Mic","Paperclip","RefreshCw","Search","Send","ShieldAlert","ShieldCheck","ShieldX","Square","ThumbsDown","ThumbsUp","Upload","Volume2","X","User","Mail","Phone","Calendar","Clock","Building","MapPin","Lock","Key","CreditCard","AtSign","Hash","Globe","Link","CircleCheck","CircleX","TriangleAlert","Info","Ban","Shield","ArrowLeft","ArrowRight","ExternalLink","Ellipsis","EllipsisVertical","Menu","House","Plus","Minus","Pencil","Trash","Trash2","Save","Download","Share","Funnel","Settings","RotateCw","Maximize","Minimize","ShoppingCart","ShoppingBag","Package","Truck","Tag","Gift","Receipt","Wallet","Store","DollarSign","Percent","Play","Pause","VolumeX","Camera","Image","Film","Headphones","MessageCircle","MessageSquare","Bell","Heart","Star","Eye","EyeOff","Bookmark","CalendarDays","History","Timer","Folder","FolderOpen","Files","Sparkles","Zap","Sun","Moon","Flag","Monitor","Smartphone","renderLucideIcon","iconName","size","color","strokeWidth","iconData","createSvgFromIconData","svg","elementData","tagName","attrs","element","key","value","DEFAULT_OVERLAY_Z_INDEX","PORTALED_OVERLAY_Z_INDEX","createLauncherButton","config","onToggle","button","createElement","update","newConfig","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","launcher","dockedMode","isDockedMountMode","titleEl","t","subtitleEl","s","textContainer","icon","iconSize","iconSizeNum","iconSvg","renderLucideIcon","img","callToActionIconEl","callToActionIconSize","paddingTotal","containerSize","positionClass","positionMap","floatingBase","dockedBase","DEFAULT_OVERLAY_Z_INDEX","defaultBorder","defaultShadow","destroy","isObject","value","deepMerge","base","override","merged","key","existing","DEFAULT_FLOATING_LAUNCHER_WIDTH","DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH","DEFAULT_LAUNCHER_CONFIG","DEFAULT_PALETTE","DEFAULT_SEMANTIC","DEFAULT_COMPONENTS","DEFAULT_FLOATING_LAUNCHER_WIDTH","DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH","resolveTokenValue","theme","path","parts","current","part","resolveTokens","resolved","resolveObject","obj","prefix","key","value","resolvedValue","validateTheme","errors","warnings","mergeRecords","base","override","result","existing","deepMergeComponents","createTheme","userConfig","options","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","baseTheme","validation","e","plugin","themeToCssVariables","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","cssVars","token","varName","headerTokens","introCardTokens","mdH1Size","mdH1Weight","mdH2Size","mdH2Weight","mdProseFont","components","iconBtn","labelBtn","toggleGrp","artifact","toolbarBg","DARK_PALETTE","normalizeThemeConfig","theme","detectColorScheme","_a","getColorSchemeFromConfig","config","colorScheme","getColorScheme","createLightTheme","userConfig","createTheme","createDarkTheme","baseTheme","getActiveTheme","scheme","lightThemeConfig","darkThemeConfig","deepMerge","getCssVariables","themeToCssVariables","applyThemeVariables","element","cssVars","name","value","CRITICAL_LAUNCHER_ATTR","resolveTarget","target","el","mergeCriticalLauncherConfig","config","_a","DEFAULT_LAUNCHER_CONFIG","mount","options","onOpen","root","applyThemeVariables","launcher","createLauncherButton","next","merged"]}
1
+ {"version":3,"sources":["../src/launcher-global.ts","../src/utils/dom.ts","../src/utils/positioning.ts","../src/utils/dock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/activity.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-left.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-up-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/arrow-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/at-sign.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ban.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bell.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bookmark.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/bot.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/building.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/calendar-days.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/calendar.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/camera.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-left.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-right.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/chevron-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/circle-check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/circle-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clipboard-copy.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clipboard.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/clock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/code-xml.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/copy.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/credit-card.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/dollar-sign.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/download.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ellipsis-vertical.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/ellipsis.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/eye-off.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/external-link.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/eye.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-code.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-spreadsheet.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file-text.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/file.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/files.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/film.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/flag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/folder-open.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/folder.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/funnel.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/gift.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/globe.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/hash.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/headphones.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/heart.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/history.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/house.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/image-plus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/image.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/info.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/key.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/link.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/loader-circle.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/loader.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/lock.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/mail.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/map-pin.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/maximize.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/menu.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/message-circle.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/message-square.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/mic.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/minimize.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/minus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/monitor.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/moon.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/package.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/paperclip.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/pause.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/pencil.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/percent.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/phone.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/play.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/plus.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/receipt.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/refresh-cw.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/rotate-cw.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/save.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/search.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/send.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/settings.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/share.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-alert.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-check.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shield.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shopping-bag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/shopping-cart.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/smartphone.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/sparkles.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/square.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/star.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/store.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/sun.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/tag.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/thumbs-down.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/thumbs-up.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/timer.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/trash-2.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/trash.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/triangle-alert.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/truck.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/upload.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/user.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/volume-2.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/volume-x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/wallet.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/x.ts","../../../node_modules/.pnpm/lucide@1.18.0/node_modules/lucide/src/icons/zap.ts","../src/utils/icons.ts","../src/utils/constants.ts","../src/components/launcher.ts","../src/utils/deep-merge.ts","../src/defaults.ts","../src/utils/tokens.ts","../src/utils/theme.ts"],"sourcesContent":["/**\n * Critical-path launcher entry: built to `launcher.global.js` (IIFE).\n *\n * Ships ONLY the real collapsed launcher (`createLauncherButton`) plus the\n * theme application path, so the launcher paints pixel-identically to the full\n * widget from a tiny bundle. The heavy conversation panel is deferred until\n * first open by the installer (Phase 2).\n *\n * The full Lucide icon registry is kept on purpose: any *supported* icon a site\n * configures (`launcher.agentIconName` / `callToActionIconName`) must render at\n * first paint with no flash, and the only synchronously-available source is this\n * bundle. See the \"Deferred Launcher Loading\" pattern in CLAUDE.md.\n *\n * Public global (via tsup `--global-name AgentWidgetLauncher`):\n *\n * window.AgentWidgetLauncher.mount({ target, config, onOpen })\n * → { root, element, update, destroy }\n */\nimport { createLauncherButton } from \"./components/launcher\";\nimport { applyThemeVariables } from \"./utils/theme\";\nimport { DEFAULT_LAUNCHER_CONFIG } from \"./defaults\";\nimport type { AgentWidgetConfig } from \"./types\";\n\nexport interface AgentWidgetLauncherMountOptions {\n /** Where to mount. Defaults to `document.body` (the floating launcher is `position: fixed`). */\n target?: string | HTMLElement;\n /** The same widget config the full widget will receive: drives theme, icons, position, copy. */\n config?: AgentWidgetConfig;\n /** Called when the launcher is clicked; the installer loads the full widget and opens the panel. */\n onOpen: () => void;\n}\n\nexport interface AgentWidgetLauncherHandle {\n /** The `[data-persona-root]` wrapper that carries the theme CSS variables. */\n root: HTMLElement;\n /** The launcher button element itself. */\n element: HTMLButtonElement;\n /** Re-apply theme + re-render the launcher with new config. */\n update: (config: AgentWidgetConfig) => void;\n /** Remove the critical launcher (called at handoff once the full widget is mounted). */\n destroy: () => void;\n}\n\n/**\n * Marks the critical launcher's wrapper so the installer can find/remove it at\n * handoff without disturbing the full widget's own `[data-persona-root]`.\n */\nexport const CRITICAL_LAUNCHER_ATTR = \"data-persona-launcher-critical\";\n\nconst resolveTarget = (target?: string | HTMLElement): HTMLElement => {\n if (target instanceof HTMLElement) return target;\n if (typeof target === \"string\") {\n const el = document.querySelector<HTMLElement>(target);\n if (el) return el;\n }\n return document.body;\n};\n\nconst mergeCriticalLauncherConfig = (\n config?: AgentWidgetConfig\n): AgentWidgetConfig => ({\n ...config,\n launcher: {\n ...DEFAULT_LAUNCHER_CONFIG,\n ...config?.launcher,\n dock: {\n ...DEFAULT_LAUNCHER_CONFIG.dock,\n ...config?.launcher?.dock,\n },\n },\n});\n\n/**\n * Mount the real collapsed launcher from the critical bundle.\n *\n * Mirrors the full widget's DOM exactly (`runtime/init.ts` + `ui.ts`): a\n * `[data-persona-root]` wrapper carries the theme CSS variables and the launcher\n * button is its child. Keeping the theme vars on the wrapper (not the button)\n * leaves the button's own inline style byte-identical to the full widget's, so\n * the eventual mount-then-remove handoff is invisible.\n */\nexport const mount = (\n options: AgentWidgetLauncherMountOptions\n): AgentWidgetLauncherHandle => {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n throw new Error(\n \"AgentWidgetLauncher can only be mounted in a browser environment\"\n );\n }\n\n const { onOpen } = options;\n const target = resolveTarget(options.target);\n\n // Render from the same launcher defaults the full widget uses without pulling\n // the full widget default object into the critical bundle.\n const config = mergeCriticalLauncherConfig(options.config);\n\n const root = document.createElement(\"div\");\n root.setAttribute(\"data-persona-root\", \"true\");\n root.setAttribute(CRITICAL_LAUNCHER_ATTR, \"true\");\n applyThemeVariables(root, config);\n\n const launcher = createLauncherButton(config, onOpen);\n root.appendChild(launcher.element);\n target.appendChild(root);\n\n return {\n root,\n element: launcher.element,\n update: (next: AgentWidgetConfig) => {\n const merged = mergeCriticalLauncherConfig(next);\n applyThemeVariables(root, merged);\n launcher.update(merged);\n },\n destroy: () => {\n launcher.destroy();\n root.remove();\n },\n };\n};\n\n// Note: the `window.AgentWidgetLauncher` global is created by tsup's\n// `--global-name AgentWidgetLauncher` at build time. The installer\n// (`install.ts`) declares the `Window` augmentation it needs; this entry never\n// reads the global, so re-declaring it here would only create a cross-file type\n// conflict.\n","/**\n * DOM utility functions\n */\nexport const createElement = <K extends keyof HTMLElementTagNameMap>(\n tag: K,\n className?: string\n): HTMLElementTagNameMap[K] => {\n const element = document.createElement(tag);\n if (className) {\n element.className = className;\n }\n return element;\n};\n\nexport const createElementInDocument = <K extends keyof HTMLElementTagNameMap>(\n documentRef: Document,\n tag: K,\n className?: string\n): HTMLElementTagNameMap[K] => {\n const element = documentRef.createElement(tag);\n if (className) {\n element.className = className;\n }\n return element;\n};\n\nexport const createFragment = (): DocumentFragment => {\n return document.createDocumentFragment();\n};\n\nexport interface CreateNodeOptions {\n /** Sets `element.className`. */\n className?: string;\n /** Sets `element.textContent` before any `children` are appended. */\n text?: string;\n /** Attribute name → value pairs applied via `setAttribute`. */\n attrs?: Record<string, string>;\n /**\n * Inline styles. Nullish (`undefined`/`null`) values are skipped so callers\n * can inline conditionals (e.g. `borderColor: cfg.borderColor`) without an\n * `if` per property. Note this only *sets* values, it never clears them, so\n * prefer it for constructing fresh elements rather than re-styling live ones.\n */\n style?: Partial<CSSStyleDeclaration>;\n}\n\n/**\n * Ergonomic element factory that bundles the className + attribute + style +\n * children boilerplate the widget's DOM builders otherwise repeat by hand.\n *\n * `createElement` stays the right tool for the simple `(tag, className)` case;\n * reach for `createNode` when a node also needs attributes, inline styles, or\n * up-front children. Nullish `children` are skipped so callers can inline\n * conditionals (e.g. `maybeIcon && el`).\n */\nexport const createNode = <K extends keyof HTMLElementTagNameMap>(\n tag: K,\n options: CreateNodeOptions = {},\n ...children: Array<Node | string | null | undefined>\n): HTMLElementTagNameMap[K] => {\n const element = document.createElement(tag);\n\n if (options.className) {\n element.className = options.className;\n }\n if (options.text !== undefined) {\n element.textContent = options.text;\n }\n if (options.attrs) {\n for (const [name, value] of Object.entries(options.attrs)) {\n element.setAttribute(name, value);\n }\n }\n if (options.style) {\n const style = element.style as unknown as Record<string, string>;\n const source = options.style as Record<string, string | null | undefined>;\n for (const property of Object.keys(source)) {\n const value = source[property];\n if (value != null) {\n style[property] = value;\n }\n }\n }\n\n const appendable = children.filter(\n (child): child is Node | string => child != null\n );\n if (appendable.length > 0) {\n element.append(...appendable);\n }\n\n return element;\n};\n\n/**\n * Join truthy class-name fragments into a single space-separated string\n * (the clsx / classnames pattern). Falsy fragments\n * (`false` / `null` / `undefined` / `\"\"`) are dropped, so conditional classes\n * read inline as `cond && \"persona-foo\"` instead of imperative\n * `classList.add(...)` branches.\n */\nexport const cx = (\n ...parts: Array<string | false | null | undefined>\n): string => parts.filter(Boolean).join(\" \");\n\n\n\n\n\n\n\n","export const positionMap: Record<\n \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\",\n string\n> = {\n \"bottom-right\": \"persona-bottom-6 persona-right-6\",\n \"bottom-left\": \"persona-bottom-6 persona-left-6\",\n \"top-right\": \"persona-top-6 persona-right-6\",\n \"top-left\": \"persona-top-6 persona-left-6\"\n};\n\n\n\n\n\n\n\n\n","import type { AgentWidgetConfig, AgentWidgetDockConfig } from \"../types\";\n\nconst DEFAULT_DOCK_CONFIG: Required<AgentWidgetDockConfig> = {\n side: \"right\",\n width: \"420px\",\n animate: true,\n reveal: \"resize\",\n maxHeight: \"100dvh\",\n};\n\nexport const isDockedMountMode = (config?: AgentWidgetConfig): boolean =>\n (config?.launcher?.mountMode ?? \"floating\") === \"docked\";\n\nexport const isComposerBarMountMode = (config?: AgentWidgetConfig): boolean =>\n (config?.launcher?.mountMode ?? \"floating\") === \"composer-bar\";\n\n/**\n * Resolved dock layout. For `reveal: \"resize\"`, when the panel is closed the dock column is `0px`.\n * For `reveal: \"overlay\"`, the panel overlays with `transform`. For `reveal: \"push\"`, a sliding track\n * moves content and panel together without width animation on the main column. For `emerge`,\n * the dock column still animates like `resize` but the widget stays `dock.width` wide inside the slot.\n * Unknown keys on `launcher.dock` (e.g. legacy `collapsedWidth`) are ignored.\n */\nexport const resolveDockConfig = (\n config?: AgentWidgetConfig\n): Required<AgentWidgetDockConfig> => {\n const dock = config?.launcher?.dock;\n return {\n side: dock?.side ?? DEFAULT_DOCK_CONFIG.side,\n width: dock?.width ?? DEFAULT_DOCK_CONFIG.width,\n animate: dock?.animate ?? DEFAULT_DOCK_CONFIG.animate,\n reveal: dock?.reveal ?? DEFAULT_DOCK_CONFIG.reveal,\n maxHeight: dock?.maxHeight ?? DEFAULT_DOCK_CONFIG.maxHeight,\n };\n};\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Activity: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Activity;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown: IconNode = [\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'm19 12-7 7-7-7' }],\n];\n\nexport default ArrowDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeft: IconNode = [\n ['path', { d: 'm12 19-7-7 7-7' }],\n ['path', { d: 'M19 12H5' }],\n];\n\nexport default ArrowLeft;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRight: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'm12 5 7 7-7 7' }],\n];\n\nexport default ArrowRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyA3aDEwdjEwIiAvPgogIDxwYXRoIGQ9Ik03IDE3IDE3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpRight: IconNode = [\n ['path', { d: 'M7 7h10v10' }],\n ['path', { d: 'M7 17 17 7' }],\n];\n\nexport default ArrowUpRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSAxMiA3LTcgNyA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOVY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp: IconNode = [\n ['path', { d: 'm5 12 7-7 7 7' }],\n ['path', { d: 'M12 19V5' }],\n];\n\nexport default ArrowUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name at-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/at-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AtSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8' }],\n];\n\nexport default AtSign;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ban: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M4.929 4.929 19.07 19.071' }],\n];\n\nexport default Ban;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bell: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Bell;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bookmark: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default Bookmark;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bot: IconNode = [\n ['path', { d: 'M12 8V4H8' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M15 13v2' }],\n ['path', { d: 'M9 13v2' }],\n];\n\nexport default Bot;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgNmguMDEiIC8+CiAgPHBhdGggZD0iTTggMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNOCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIiAvPgogIDxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/building\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building: IconNode = [\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M12 6h.01' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M16 6h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M8 6h.01' }],\n ['path', { d: 'M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Building;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-days\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTggMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-days\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarDays: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M8 18h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M16 18h.01' }],\n];\n\nexport default CalendarDays;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default Calendar;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Camera: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '3' }],\n];\n\nexport default Camera;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Check: IconNode = [['path', { d: 'M20 6 9 17l-5-5' }]];\n\nexport default Check;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronDown: IconNode = [['path', { d: 'm6 9 6 6 6-6' }]];\n\nexport default ChevronDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLeft: IconNode = [['path', { d: 'm15 18-6-6 6-6' }]];\n\nexport default ChevronLeft;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronRight: IconNode = [['path', { d: 'm9 18 6-6-6-6' }]];\n\nexport default ChevronRight;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronUp: IconNode = [['path', { d: 'm18 15-6-6-6 6' }]];\n\nexport default ChevronUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheck: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default CircleCheck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleX: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default CircleX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNEgxMSIgLz4KICA8cGF0aCBkPSJtMTUgMTAtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCopy: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M21 14H11' }],\n ['path', { d: 'm15 10-4 4 4 4' }],\n];\n\nexport default ClipboardCopy;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clipboard: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['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' }],\n];\n\nexport default Clipboard;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 6v6l4 2' }],\n];\n\nexport default Clock;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name code-xml\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CodeXml: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4' }],\n ['path', { d: 'm6 8-4 4 4 4' }],\n ['path', { d: 'm14.5 4-5 16' }],\n];\n\nexport default CodeXml;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copy: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default Copy;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name credit-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjUiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIxMCIgeTI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/credit-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreditCard: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '2' }],\n ['line', { x1: '2', x2: '22', y1: '10', y2: '10' }],\n];\n\nexport default CreditCard;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DollarSign: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6' }],\n];\n\nexport default DollarSign;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWMyIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJtNyAxMCA1IDUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Download: IconNode = [\n ['path', { d: 'M12 15V3' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'm7 10 5 5 5-5' }],\n];\n\nexport default Download;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EllipsisVertical: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n];\n\nexport default EllipsisVertical;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ellipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n];\n\nexport default Ellipsis;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeOff: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242' }],\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default EyeOff;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name external-link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ExternalLink: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'M10 14 21 3' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' }],\n];\n\nexport default ExternalLink;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eye: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Eye;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTIuNSA4IDE1bDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMi41IDIgMi41LTIgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCode: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12.5 8 15l2 2.5' }],\n ['path', { d: 'm14 12.5 2 2.5-2 2.5' }],\n];\n\nexport default FileCode;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-spreadsheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDIiIC8+CiAgPHBhdGggZD0iTTE0IDE3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-spreadsheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSpreadsheet: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h2' }],\n ['path', { d: 'M14 13h2' }],\n ['path', { d: 'M8 17h2' }],\n ['path', { d: 'M14 17h2' }],\n];\n\nexport default FileSpreadsheet;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileText: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 9H8' }],\n ['path', { d: 'M16 13H8' }],\n ['path', { d: 'M16 17H8' }],\n];\n\nexport default FileText;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst File: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default File;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name files\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgiIC8+CiAgPHBhdGggZD0iTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiIgLz4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Files: IconNode = [\n ['path', { d: 'M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n ['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' }],\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Files;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name film\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDN2MTgiIC8+CiAgPHBhdGggZD0iTTMgNy41aDQiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTgiIC8+CiAgPHBhdGggZD0iTTMgMTYuNWg0IiAvPgogIDxwYXRoIGQ9Ik0xNyAzdjE4IiAvPgogIDxwYXRoIGQ9Ik0xNyA3LjVoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/film\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Film: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 3v18' }],\n ['path', { d: 'M3 7.5h4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 16.5h4' }],\n ['path', { d: 'M17 3v18' }],\n ['path', { d: 'M17 7.5h4' }],\n ['path', { d: 'M17 16.5h4' }],\n];\n\nexport default Film;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flag: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Flag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpen: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default FolderOpen;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folder: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Folder;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Funnel: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Funnel;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMjAgMTF2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgLz4KICA8cGF0aCBkPSJNNy41IDdhMSAxIDAgMCAxIDAtNUE0LjggOCAwIDAgMSAxMiA3YTQuOCA4IDAgMCAxIDQuNS01IDEgMSAwIDAgMSAwIDUiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/gift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gift: IconNode = [\n ['path', { d: 'M12 7v14' }],\n ['path', { d: 'M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8' }],\n ['path', { d: 'M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5' }],\n ['rect', { x: '3', y: '7', width: '18', height: '4', rx: '1' }],\n];\n\nexport default Gift;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Globe: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default Globe;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjQiIHgyPSIyMCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjEwIiB4Mj0iOCIgeTE9IjMiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hash: IconNode = [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21' }],\n];\n\nexport default Hash;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headphones: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Headphones;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heart: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Heart;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name history\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djVsNCAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/history\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst History: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M12 7v5l4 2' }],\n];\n\nexport default History;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgiIC8+CiAgPHBhdGggZD0iTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst House: IconNode = [\n ['path', { d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default House;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAydjYiIC8+CiAgPHBhdGggZD0iTTIxIDExLjVWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcuNSIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlus: IconNode = [\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n ['path', { d: 'M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Image: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default Image;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Info: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 16v-4' }],\n ['path', { d: 'M12 8h.01' }],\n];\n\nexport default Info;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCIgLz4KICA8cGF0aCBkPSJtMjEgMi05LjYgOS42IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE1LjUiIHI9IjUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Key: IconNode = [\n ['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' }],\n ['path', { d: 'm21 2-9.6 9.6' }],\n ['circle', { cx: '7.5', cy: '15.5', r: '5.5' }],\n];\n\nexport default Key;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link: IconNode = [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' }],\n];\n\nexport default Link;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderCircle: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56' }]];\n\nexport default LoaderCircle;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDcuOCAyLjktMi45IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmg0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDE2LjIgMi45IDIuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtNC45IDE5LjEgMi45LTIuOSIgLz4KICA8cGF0aCBkPSJNMiAxMmg0IiAvPgogIDxwYXRoIGQ9Im00LjkgNC45IDIuOSAyLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Loader: IconNode = [\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm16.2 7.8 2.9-2.9' }],\n ['path', { d: 'M18 12h4' }],\n ['path', { d: 'm16.2 16.2 2.9 2.9' }],\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm4.9 19.1 2.9-2.9' }],\n ['path', { d: 'M2 12h4' }],\n ['path', { d: 'm4.9 4.9 2.9 2.9' }],\n];\n\nexport default Loader;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lock: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4' }],\n];\n\nexport default Lock;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mail: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Mail;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPin: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n];\n\nexport default MapPin;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyIgLz4KICA8cGF0aCBkPSJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2h-3' }],\n ['path', { d: 'M3 16v3a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M16 21h3a2 2 0 0 0 2-2v-3' }],\n];\n\nexport default Maximize;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA1aDE2IiAvPgogIDxwYXRoIGQ9Ik00IDEyaDE2IiAvPgogIDxwYXRoIGQ9Ik00IDE5aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Menu: IconNode = [\n ['path', { d: 'M4 5h16' }],\n ['path', { d: 'M4 12h16' }],\n ['path', { d: 'M4 19h16' }],\n];\n\nexport default Menu;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircle: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default MessageCircle;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquare: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default MessageSquare;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMyIgcng9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mic: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3' }],\n];\n\nexport default Mic;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyIgLz4KICA8cGF0aCBkPSJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/minimize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize: IconNode = [\n ['path', { d: 'M8 3v3a2 2 0 0 1-2 2H3' }],\n ['path', { d: 'M21 8h-3a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'M3 16h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M16 21v-3a2 2 0 0 1 2-2h3' }],\n];\n\nexport default Minimize;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minus: IconNode = [['path', { d: 'M5 12h14' }]];\n\nexport default Minus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Monitor: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21' }],\n];\n\nexport default Monitor;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Moon: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Moon;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxwYXRoIGQ9Im03LjUgNC4yNyA5IDUuMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/package\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M12 22V12' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n];\n\nexport default Package;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paperclip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paperclip: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Paperclip;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjUiIGhlaWdodD0iMTgiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjUiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjE4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pause: IconNode = [\n ['rect', { x: '14', y: '3', width: '5', height: '18', rx: '1' }],\n ['rect', { x: '5', y: '3', width: '5', height: '18', rx: '1' }],\n];\n\nexport default Pause;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pencil: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default Pencil;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSI1IiB5MT0iNSIgeTI9IjE5IiAvPgogIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Percent: IconNode = [\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n ['circle', { cx: '6.5', cy: '6.5', r: '2.5' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Percent;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Phone: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Phone;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Play: IconNode = [\n [\n 'path',\n { 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' },\n ],\n];\n\nexport default Play;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plus: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'M12 5v14' }],\n];\n\nexport default Plus;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdWNyIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAwIDAgMCA0aDRhMiAyIDAgMCAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Receipt: IconNode = [\n ['path', { d: 'M12 17V7' }],\n ['path', { d: 'M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Receipt;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16' }],\n ['path', { d: 'M8 16H3v5' }],\n];\n\nexport default RefreshCw;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rotate-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n];\n\nexport default RotateCw;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Save: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7' }],\n];\n\nexport default Save;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Search: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default Search;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Send: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939' }],\n];\n\nexport default Send;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS42NzEgNC4xMzZhMi4zNCAyLjM0IDAgMCAxIDQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwIDMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMSAyLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwIDMuODMxIDIuMzQgMi4zNCAwIDAgMS0yLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMC0zLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEtNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAtMy4zMi0xLjkxNSAyLjM0IDIuMzQgMCAwIDEtMi4zMy00LjAzMyAyLjM0IDIuMzQgMCAwIDAgMC0zLjgzMUEyLjM0IDIuMzQgMCAwIDEgNi4zNSA2LjA1MWEyLjM0IDIuMzQgMCAwIDAgMy4zMTktMS45MTUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Settings;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMyIgLz4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share: IconNode = [\n ['path', { d: 'M12 2v13' }],\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8' }],\n];\n\nexport default Share;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldAlert: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default ShieldAlert;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldCheck: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default ShieldCheck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgOS41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDkuNSA1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldX: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default ShieldX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shield: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Shield;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-bag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhNCA0IDAgMCAxLTggMCIgLz4KICA8cGF0aCBkPSJNMy4xMDMgNi4wMzRoMTcuNzk0IiAvPgogIDxwYXRoIGQ9Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-bag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBag: IconNode = [\n ['path', { d: 'M16 10a4 4 0 0 1-8 0' }],\n ['path', { d: 'M3.103 6.034h17.794' }],\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default ShoppingBag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-cart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMjEiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIyMSIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shopping-cart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingCart: IconNode = [\n ['circle', { cx: '8', cy: '21', r: '1' }],\n ['circle', { cx: '19', cy: '21', r: '1' }],\n [\n 'path',\n { 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' },\n ],\n];\n\nexport default ShoppingCart;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smartphone: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12 18h.01' }],\n];\n\nexport default Smartphone;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgogIDxwYXRoIGQ9Ik0yMCAydjQiIC8+CiAgPHBhdGggZD0iTTIyIDRoLTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkles: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M20 2v4' }],\n ['path', { d: 'M22 4h-4' }],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default Sparkles;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Square: IconNode = [['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }]];\n\nexport default Square;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Star: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Star;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name store\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCIgLz4KICA8cGF0aCBkPSJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/store\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Store: IconNode = [\n ['path', { d: 'M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5' }],\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05' }],\n];\n\nexport default Store;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sun: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n];\n\nexport default Sun;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tag: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tag;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thumbs-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsDown: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M17 14V2' }],\n];\n\nexport default ThumbsDown;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiIgLz4KICA8cGF0aCBkPSJNNyAxMHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsUp: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M7 10v12' }],\n];\n\nexport default ThumbsUp;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Timer: IconNode = [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11' }],\n ['circle', { cx: '12', cy: '14', r: '8' }],\n];\n\nexport default Timer;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTQgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash2: IconNode = [\n ['path', { d: 'M10 11v6' }],\n ['path', { d: 'M14 11v6' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash2;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash: IconNode = [\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleAlert: IconNode = [\n ['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' }],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default TriangleAlert;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTE1IDE4SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/truck\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Truck: IconNode = [\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M15 18H9' }],\n [\n 'path',\n { 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' },\n ],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Truck;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtMTcgOC01LTUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Upload: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm17 8-5-5-5 5' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n];\n\nexport default Upload;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst User: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '12', cy: '7', r: '4' }],\n];\n\nexport default User;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume2: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n ['path', { d: 'M19.364 18.364a9 9 0 0 0 0-12.728' }],\n];\n\nexport default Volume2;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMTYiIHkxPSI5IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMjIiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeX: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['line', { x1: '22', x2: '16', y1: '9', y2: '15' }],\n ['line', { x1: '16', x2: '22', y1: '9', y2: '15' }],\n];\n\nexport default VolumeX;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIiAvPgogIDxwYXRoIGQ9Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wallet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallet: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n ['path', { d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }],\n];\n\nexport default Wallet;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst X: IconNode = [\n ['path', { d: 'M18 6 6 18' }],\n ['path', { d: 'm6 6 12 12' }],\n];\n\nexport default X;\n","import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Zap: IconNode = [\n [\n 'path',\n {\n 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',\n },\n ],\n];\n\nexport default Zap;\n","import type { IconNode } from \"lucide\";\nimport {\n // ---------- Mandatory (referenced as string literals in widget source) ----------\n Activity,\n ArrowDown,\n ArrowUp,\n ArrowUpRight,\n Bot,\n ChevronDown,\n ChevronUp,\n ChevronRight,\n ChevronLeft,\n Check,\n Clipboard,\n ClipboardCopy,\n CodeXml,\n Copy,\n File as FileIcon,\n FileCode,\n FileSpreadsheet,\n FileText,\n ImagePlus,\n Loader,\n LoaderCircle,\n Mic,\n Paperclip,\n RefreshCw,\n Search,\n Send,\n ShieldAlert,\n ShieldCheck,\n ShieldX,\n Square,\n ThumbsDown,\n ThumbsUp,\n Upload,\n Volume2,\n X,\n // ---------- Forms / inputs ----------\n User,\n Mail,\n Phone,\n Calendar,\n Clock,\n Building,\n MapPin,\n Lock,\n Key,\n CreditCard,\n AtSign,\n Hash,\n Globe,\n Link,\n // ---------- Status / feedback ----------\n CircleCheck,\n CircleX,\n TriangleAlert,\n Info,\n Ban,\n Shield,\n // ---------- Navigation ----------\n ArrowLeft,\n ArrowRight,\n ExternalLink,\n Ellipsis,\n EllipsisVertical,\n Menu,\n House,\n // ---------- Actions ----------\n Plus,\n Minus,\n Pencil,\n Trash,\n Trash2,\n Save,\n Download,\n Share,\n Funnel,\n Settings,\n RotateCw,\n Maximize,\n Minimize,\n // ---------- Commerce ----------\n ShoppingCart,\n ShoppingBag,\n Package,\n Truck,\n Tag,\n Gift,\n Receipt,\n Wallet,\n Store,\n DollarSign,\n Percent,\n // ---------- Media ----------\n Play,\n Pause,\n VolumeX,\n Camera,\n Image as ImageIcon,\n Film,\n Headphones,\n // ---------- Social / Comms ----------\n MessageCircle,\n MessageSquare,\n Bell,\n Heart,\n Star,\n Eye,\n EyeOff,\n Bookmark,\n // ---------- Time ----------\n CalendarDays,\n History,\n Timer,\n // ---------- Files ----------\n Folder,\n FolderOpen,\n Files,\n // ---------- Decorative ----------\n Sparkles,\n Zap,\n Sun,\n Moon,\n Flag,\n // ---------- Devices ----------\n Monitor,\n Smartphone,\n} from \"lucide\";\n\n/**\n * Curated registry of lucide icons available to `renderLucideIcon`.\n *\n * The widget used to do `import * as icons from \"lucide\"` and look up\n * icons dynamically by string. That defeated tree-shaking, so the IIFE\n * (CDN/script-tag) bundle shipped all 1640 lucide icons (~400KB of icon\n * data) regardless of which we actually used. This explicit registry\n * lets the bundler drop any icon not listed here.\n *\n * Trade-off: `renderLucideIcon(name)` is now a *closed set*. Names not\n * in this map return `null` and log a warning, exactly as a typo did\n * before. The registry is intentionally generous (~110 icons) so that\n * custom `ComponentRenderer` authors rarely hit a missing-icon dead end.\n *\n * To add icons: add a named import above and a row in `LUCIDE_ICONS`,\n * keyed by the lucide kebab-case name (matches their filename and\n * https://lucide.dev/icons).\n *\n * See `packages/widget/docs/icon-registry-shortlist.md` for the full\n * curation rationale and which icons were considered but excluded.\n */\nconst LUCIDE_ICONS = {\n // Mandatory\n \"activity\": Activity,\n \"arrow-down\": ArrowDown,\n \"arrow-up\": ArrowUp,\n \"arrow-up-right\": ArrowUpRight,\n \"bot\": Bot,\n \"chevron-down\": ChevronDown,\n \"chevron-up\": ChevronUp,\n \"chevron-right\": ChevronRight,\n \"chevron-left\": ChevronLeft,\n \"check\": Check,\n \"clipboard\": Clipboard,\n \"clipboard-copy\": ClipboardCopy,\n \"code-xml\": CodeXml,\n \"copy\": Copy,\n \"file\": FileIcon,\n \"file-code\": FileCode,\n \"file-spreadsheet\": FileSpreadsheet,\n \"file-text\": FileText,\n \"image-plus\": ImagePlus,\n \"loader\": Loader,\n \"loader-circle\": LoaderCircle,\n \"mic\": Mic,\n \"paperclip\": Paperclip,\n \"refresh-cw\": RefreshCw,\n \"search\": Search,\n \"send\": Send,\n \"shield-alert\": ShieldAlert,\n \"shield-check\": ShieldCheck,\n \"shield-x\": ShieldX,\n \"square\": Square,\n \"thumbs-down\": ThumbsDown,\n \"thumbs-up\": ThumbsUp,\n \"upload\": Upload,\n \"volume-2\": Volume2,\n \"x\": X,\n // Forms / inputs\n \"user\": User,\n \"mail\": Mail,\n \"phone\": Phone,\n \"calendar\": Calendar,\n \"clock\": Clock,\n \"building\": Building,\n \"map-pin\": MapPin,\n \"lock\": Lock,\n \"key\": Key,\n \"credit-card\": CreditCard,\n \"at-sign\": AtSign,\n \"hash\": Hash,\n \"globe\": Globe,\n \"link\": Link,\n // Status / feedback\n \"circle-check\": CircleCheck,\n \"circle-x\": CircleX,\n \"triangle-alert\": TriangleAlert,\n \"info\": Info,\n \"ban\": Ban,\n \"shield\": Shield,\n // Navigation\n \"arrow-left\": ArrowLeft,\n \"arrow-right\": ArrowRight,\n \"external-link\": ExternalLink,\n \"ellipsis\": Ellipsis,\n \"ellipsis-vertical\": EllipsisVertical,\n \"menu\": Menu,\n \"house\": House,\n // Actions\n \"plus\": Plus,\n \"minus\": Minus,\n \"pencil\": Pencil,\n \"trash\": Trash,\n \"trash-2\": Trash2,\n \"save\": Save,\n \"download\": Download,\n \"share\": Share,\n \"funnel\": Funnel,\n \"settings\": Settings,\n \"rotate-cw\": RotateCw,\n \"maximize\": Maximize,\n \"minimize\": Minimize,\n // Commerce\n \"shopping-cart\": ShoppingCart,\n \"shopping-bag\": ShoppingBag,\n \"package\": Package,\n \"truck\": Truck,\n \"tag\": Tag,\n \"gift\": Gift,\n \"receipt\": Receipt,\n \"wallet\": Wallet,\n \"store\": Store,\n \"dollar-sign\": DollarSign,\n \"percent\": Percent,\n // Media\n \"play\": Play,\n \"pause\": Pause,\n \"volume-x\": VolumeX,\n \"camera\": Camera,\n \"image\": ImageIcon,\n \"film\": Film,\n \"headphones\": Headphones,\n // Social / Comms\n \"message-circle\": MessageCircle,\n \"message-square\": MessageSquare,\n \"bell\": Bell,\n \"heart\": Heart,\n \"star\": Star,\n \"eye\": Eye,\n \"eye-off\": EyeOff,\n \"bookmark\": Bookmark,\n // Time\n \"calendar-days\": CalendarDays,\n \"history\": History,\n \"timer\": Timer,\n // Files\n \"folder\": Folder,\n \"folder-open\": FolderOpen,\n \"files\": Files,\n // Decorative\n \"sparkles\": Sparkles,\n \"zap\": Zap,\n \"sun\": Sun,\n \"moon\": Moon,\n \"flag\": Flag,\n // Devices\n \"monitor\": Monitor,\n \"smartphone\": Smartphone,\n} as const satisfies Record<string, IconNode>;\n\n/**\n * Names of lucide icons that ship with the widget. Names not in this\n * union return `null` from `renderLucideIcon` (with a console warning).\n */\nexport type IconName = keyof typeof LUCIDE_ICONS;\n\n/**\n * Renders a lucide icon as an inline SVG element. Works inside Shadow\n * DOM and requires no CSS.\n *\n * @param iconName - A lucide kebab-case name from the registry. See\n * `IconName` for the full list, or `docs/icon-registry-shortlist.md`\n * for rationale.\n * @param size - The size in pixels (number) or any CSS length string.\n * @param color - Stroke color (default: \"currentColor\").\n * @param strokeWidth - Stroke width (default: 2).\n * @returns SVGElement, or null if the name is not in the registry.\n */\nexport const renderLucideIcon = (\n iconName: IconName | (string & {}),\n size: number | string = 24,\n color: string = \"currentColor\",\n strokeWidth: number = 2\n): SVGElement | null => {\n const iconData = (LUCIDE_ICONS as Record<string, IconNode | undefined>)[iconName];\n if (!iconData) {\n console.warn(\n `Lucide icon \"${iconName}\" is not in the Persona registry. ` +\n `Add it to packages/widget/src/utils/icons.ts (see docs/icon-registry-shortlist.md).`\n );\n return null;\n }\n return createSvgFromIconData(iconData, size, color, strokeWidth);\n};\n\nfunction createSvgFromIconData(\n iconData: IconNode,\n size: number | string,\n color: string,\n strokeWidth: number\n): SVGElement | null {\n if (!Array.isArray(iconData)) return null;\n\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"width\", String(size));\n svg.setAttribute(\"height\", String(size));\n svg.setAttribute(\"viewBox\", \"0 0 24 24\");\n svg.setAttribute(\"fill\", \"none\");\n svg.setAttribute(\"stroke\", color);\n svg.setAttribute(\"stroke-width\", String(strokeWidth));\n svg.setAttribute(\"stroke-linecap\", \"round\");\n svg.setAttribute(\"stroke-linejoin\", \"round\");\n svg.setAttribute(\"aria-hidden\", \"true\");\n\n // IconNode shape: [[\"path\", {\"d\": \"...\"}], [\"circle\", {\"cx\": \"...\"}], ...]\n iconData.forEach((elementData) => {\n if (!Array.isArray(elementData) || elementData.length < 2) return;\n const tagName = elementData[0] as string;\n const attrs = elementData[1] as Record<string, string> | undefined;\n if (!attrs) return;\n const element = document.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n Object.entries(attrs).forEach(([key, value]) => {\n // Skip 'stroke' so the parent SVG's stroke attribute drives color uniformly\n if (key !== \"stroke\") element.setAttribute(key, String(value));\n });\n svg.appendChild(element);\n });\n\n return svg;\n}\n","import { AgentWidgetSessionStatus } from \"../session\";\n\nexport const statusCopy: Record<AgentWidgetSessionStatus, string> = {\n idle: \"Online\",\n connecting: \"Connecting…\",\n connected: \"Streaming…\",\n error: \"Offline\",\n paused: \"Connection lost…\",\n resuming: \"Reconnecting…\"\n};\n\n/**\n * Default z-index for widget overlays. Used for the floating panel, launcher\n * button, sidebar, mobile fullscreen, and docked mobile fullscreen modes.\n * Integrators can override via `launcher.zIndex`.\n */\nexport const DEFAULT_OVERLAY_Z_INDEX = 100000;\n\n/**\n * Z-index for elements portaled to document.body (tooltips, dropdowns).\n * Must be above the widget overlay so portaled UI is not clipped.\n */\nexport const PORTALED_OVERLAY_Z_INDEX = DEFAULT_OVERLAY_Z_INDEX + 1;\n\n\n\n\n\n\n\n\n","import { createElement } from \"../utils/dom\";\nimport { AgentWidgetConfig } from \"../types\";\nimport { positionMap } from \"../utils/positioning\";\nimport { isDockedMountMode } from \"../utils/dock\";\nimport { renderLucideIcon } from \"../utils/icons\";\nimport { DEFAULT_OVERLAY_Z_INDEX } from \"../utils/constants\";\n\nexport interface LauncherButton {\n element: HTMLButtonElement;\n update: (config: AgentWidgetConfig) => void;\n destroy: () => void;\n}\n\nexport const createLauncherButton = (\n config: AgentWidgetConfig | undefined,\n onToggle: () => void\n): LauncherButton => {\n const button = createElement(\"button\") as HTMLButtonElement;\n button.type = \"button\";\n button.innerHTML = `\n <span class=\"persona-inline-flex persona-items-center persona-justify-center persona-rounded-full persona-bg-persona-primary persona-text-white\" data-role=\"launcher-icon\">💬</span>\n <img data-role=\"launcher-image\" class=\"persona-rounded-full persona-object-cover\" alt=\"\" style=\"display:none\" />\n <span class=\"persona-flex persona-min-w-0 persona-flex-1 persona-flex-col persona-items-start persona-text-left\">\n <span class=\"persona-block persona-w-full persona-truncate persona-text-sm persona-font-semibold persona-text-persona-primary\" data-role=\"launcher-title\"></span>\n <span class=\"persona-block persona-w-full persona-truncate persona-text-xs persona-text-persona-muted\" data-role=\"launcher-subtitle\"></span>\n </span>\n <span class=\"persona-ml-2 persona-grid persona-place-items-center persona-rounded-full persona-bg-persona-primary persona-text-persona-call-to-action\" data-role=\"launcher-call-to-action-icon\">↗</span>\n `;\n button.addEventListener(\"click\", onToggle);\n\n const update = (newConfig: AgentWidgetConfig) => {\n const launcher = newConfig.launcher ?? {};\n const dockedMode = isDockedMountMode(newConfig);\n\n const titleEl = button.querySelector(\"[data-role='launcher-title']\");\n if (titleEl) {\n const t = launcher.title ?? \"Chat Assistant\";\n titleEl.textContent = t;\n titleEl.setAttribute(\"title\", t);\n }\n\n const subtitleEl = button.querySelector(\"[data-role='launcher-subtitle']\");\n if (subtitleEl) {\n const s = launcher.subtitle ?? \"Here to help you get answers fast\";\n subtitleEl.textContent = s;\n subtitleEl.setAttribute(\"title\", s);\n }\n\n // Hide/show text container\n const textContainer = button.querySelector(\".persona-flex-col\");\n if (textContainer) {\n if (launcher.textHidden || dockedMode) {\n (textContainer as HTMLElement).style.display = \"none\";\n } else {\n (textContainer as HTMLElement).style.display = \"\";\n }\n }\n\n const icon = button.querySelector<HTMLSpanElement>(\"[data-role='launcher-icon']\");\n if (icon) {\n if (launcher.agentIconHidden) {\n icon.style.display = \"none\";\n } else {\n const iconSize = launcher.agentIconSize ?? \"40px\";\n icon.style.height = iconSize;\n icon.style.width = iconSize;\n\n // Optional custom background color for the agent icon circle. When set,\n // override the default primary-color background; otherwise restore it.\n if (launcher.agentIconBackgroundColor) {\n icon.style.backgroundColor = launcher.agentIconBackgroundColor;\n icon.classList.remove(\"persona-bg-persona-primary\");\n } else {\n icon.style.backgroundColor = \"\";\n icon.classList.add(\"persona-bg-persona-primary\");\n }\n\n // Clear existing content\n icon.innerHTML = \"\";\n \n // Render icon based on priority: Lucide icon > iconUrl > agentIconText\n if (launcher.agentIconName) {\n // Use Lucide icon\n const iconSizeNum = parseFloat(iconSize) || 24;\n const iconSvg = renderLucideIcon(launcher.agentIconName, iconSizeNum * 0.6, \"var(--persona-text-inverse, #ffffff)\", 2);\n if (iconSvg) {\n icon.appendChild(iconSvg);\n icon.style.display = \"\";\n } else {\n // Fallback to agentIconText if Lucide icon fails\n icon.textContent = launcher.agentIconText ?? \"💬\";\n icon.style.display = \"\";\n }\n } else if (launcher.iconUrl) {\n // Use image URL - hide icon span and show img\n icon.style.display = \"none\";\n } else {\n // Use text/emoji\n icon.textContent = launcher.agentIconText ?? \"💬\";\n icon.style.display = \"\";\n }\n }\n }\n\n const img = button.querySelector<HTMLImageElement>(\"[data-role='launcher-image']\");\n if (img) {\n const iconSize = launcher.agentIconSize ?? \"40px\";\n img.style.height = iconSize;\n img.style.width = iconSize;\n if (launcher.iconUrl && !launcher.agentIconName && !launcher.agentIconHidden) {\n // Only show image if not using Lucide icon and not hidden\n img.src = launcher.iconUrl;\n img.style.display = \"block\";\n } else {\n img.style.display = \"none\";\n }\n }\n\n const callToActionIconEl = button.querySelector<HTMLSpanElement>(\"[data-role='launcher-call-to-action-icon']\");\n if (callToActionIconEl) {\n const callToActionIconSize = launcher.callToActionIconSize ?? \"32px\";\n callToActionIconEl.style.height = callToActionIconSize;\n callToActionIconEl.style.width = callToActionIconSize;\n \n // Apply background color if configured\n if (launcher.callToActionIconBackgroundColor) {\n callToActionIconEl.style.backgroundColor = launcher.callToActionIconBackgroundColor;\n callToActionIconEl.classList.remove(\"persona-bg-persona-primary\");\n } else {\n callToActionIconEl.style.backgroundColor = \"\";\n callToActionIconEl.classList.add(\"persona-bg-persona-primary\");\n }\n\n // Apply foreground/icon color if configured\n if (launcher.callToActionIconColor) {\n callToActionIconEl.style.color = launcher.callToActionIconColor;\n callToActionIconEl.classList.remove(\"persona-text-persona-call-to-action\");\n } else {\n callToActionIconEl.style.color = \"\";\n callToActionIconEl.classList.add(\"persona-text-persona-call-to-action\");\n }\n \n // Calculate padding to adjust icon size\n let paddingTotal = 0;\n if (launcher.callToActionIconPadding) {\n callToActionIconEl.style.boxSizing = \"border-box\";\n callToActionIconEl.style.padding = launcher.callToActionIconPadding;\n // Parse padding value to calculate total padding (padding applies to both sides)\n const paddingValue = parseFloat(launcher.callToActionIconPadding) || 0;\n paddingTotal = paddingValue * 2; // padding on both sides\n } else {\n callToActionIconEl.style.boxSizing = \"\";\n callToActionIconEl.style.padding = \"\";\n }\n \n if (launcher.callToActionIconHidden) {\n callToActionIconEl.style.display = \"none\";\n } else {\n callToActionIconEl.style.display = dockedMode ? \"none\" : \"\";\n \n // Clear existing content\n callToActionIconEl.innerHTML = \"\";\n \n // Use Lucide icon if provided, otherwise fall back to text\n if (launcher.callToActionIconName) {\n // Calculate actual icon size by subtracting padding\n const containerSize = parseFloat(callToActionIconSize) || 24;\n const iconSize = Math.max(containerSize - paddingTotal, 8); // Ensure minimum size of 8px\n const iconSvg = renderLucideIcon(launcher.callToActionIconName, iconSize, \"currentColor\", 2);\n if (iconSvg) {\n callToActionIconEl.appendChild(iconSvg);\n } else {\n // Fallback to text if icon fails to render\n callToActionIconEl.textContent = launcher.callToActionIconText ?? \"↗\";\n }\n } else {\n callToActionIconEl.textContent = launcher.callToActionIconText ?? \"↗\";\n }\n }\n }\n\n const positionClass =\n launcher.position && positionMap[launcher.position]\n ? positionMap[launcher.position]\n : positionMap[\"bottom-right\"];\n\n const floatingBase =\n \"persona-fixed persona-flex persona-items-center persona-gap-3 persona-rounded-launcher persona-bg-persona-surface persona-py-2.5 persona-pl-3 persona-pr-3 persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer\";\n const dockedBase =\n \"persona-relative persona-mt-4 persona-mb-4 persona-mx-auto persona-flex persona-items-center persona-justify-center persona-rounded-launcher persona-bg-persona-surface persona-transition hover:persona-translate-y-[-2px] persona-cursor-pointer\";\n\n button.className = dockedMode ? dockedBase : `${floatingBase} ${positionClass}`;\n\n if (!dockedMode) {\n button.style.zIndex = String(launcher.zIndex ?? DEFAULT_OVERLAY_Z_INDEX);\n }\n\n // Apply launcher border and shadow from config (with defaults matching previous Tailwind classes)\n const defaultBorder = \"1px solid var(--persona-border, #e5e7eb)\";\n const defaultShadow = \"var(--persona-launcher-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1))\";\n\n button.style.border = launcher.border ?? defaultBorder;\n button.style.boxShadow =\n launcher.shadow !== undefined\n ? (launcher.shadow.trim() === \"\" ? \"none\" : launcher.shadow)\n : defaultShadow;\n\n if (dockedMode) {\n // Docked mode uses a 0px column when closed and hides this button; keep no hit target.\n button.style.width = \"0\";\n button.style.minWidth = \"0\";\n button.style.maxWidth = \"0\";\n button.style.padding = \"0\";\n button.style.overflow = \"hidden\";\n button.style.border = \"none\";\n button.style.boxShadow = \"none\";\n } else {\n button.style.width = \"\";\n button.style.minWidth = \"\";\n button.style.maxWidth = launcher.collapsedMaxWidth ?? \"\";\n button.style.justifyContent = \"\";\n button.style.padding = \"\";\n button.style.overflow = \"\";\n }\n };\n\n const destroy = () => {\n button.removeEventListener(\"click\", onToggle);\n button.remove();\n };\n\n // Initial update\n if (config) {\n update(config);\n }\n\n return {\n element: button,\n update,\n destroy\n };\n};\n","const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\n/**\n * Deep-merge plain objects. Arrays and non-objects are replaced by override.\n */\nexport function deepMerge<T extends Record<string, unknown>>(\n base: T | undefined,\n override: Record<string, unknown> | undefined\n): T | Record<string, unknown> | undefined {\n if (!base) return override;\n if (!override) return base;\n\n const merged: Record<string, unknown> = { ...base };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = merged[key];\n if (isObject(existing) && isObject(value)) {\n merged[key] = deepMerge(existing, value);\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n}\n","import type { AgentWidgetConfig, AgentWidgetLauncherConfig } from \"./types\";\nimport type { DeepPartial, PersonaTheme } from \"./types/theme\";\nimport { deepMerge } from \"./utils/deep-merge\";\n\n/**\n * Default width for the floating launcher panel (when not overridden).\n * Benchmarks: many chat products use ~300–400px; 400px is a frequent “standard” default.\n * We use 440px to better fit code/JSON and structured replies while staying responsive via `min(..., 100vw)`.\n */\nexport const DEFAULT_FLOATING_LAUNCHER_WIDTH = \"min(440px, calc(100vw - 24px))\";\n\n/** Max width cap paired with {@link DEFAULT_FLOATING_LAUNCHER_WIDTH} for theme defaults. */\nexport const DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH = \"440px\";\n\nexport const DEFAULT_LAUNCHER_CONFIG: AgentWidgetLauncherConfig = {\n enabled: true,\n mountMode: \"floating\",\n dock: {\n side: \"right\",\n width: \"420px\",\n },\n title: \"Chat Assistant\",\n subtitle: \"Here to help you get answers fast\",\n agentIconText: \"💬\",\n agentIconName: \"bot\",\n headerIconName: \"bot\",\n position: \"bottom-right\",\n width: DEFAULT_FLOATING_LAUNCHER_WIDTH,\n heightOffset: 0,\n autoExpand: false,\n callToActionIconHidden: false,\n agentIconSize: \"40px\",\n headerIconSize: \"40px\",\n closeButtonSize: \"32px\",\n // Zero out browser-default <button> padding so the icon gets the full\n // 32x32 content box, matching clearChat.paddingX/Y below. Without this,\n // UA stylesheets add ~1-2px vertical and ~6px horizontal padding that\n // eats into the border-box width and shrinks the rendered icon.\n closeButtonPaddingX: \"0px\",\n closeButtonPaddingY: \"0px\",\n callToActionIconName: \"arrow-up-right\",\n callToActionIconText: \"\",\n callToActionIconSize: \"32px\",\n callToActionIconPadding: \"5px\",\n callToActionIconColor: undefined,\n callToActionIconBackgroundColor: undefined,\n // closeButtonColor / clearChat.iconColor omitted so theme.components.header.actionIconForeground applies.\n closeButtonBackgroundColor: \"transparent\",\n clearChat: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n enabled: true,\n placement: \"inline\",\n iconName: \"refresh-cw\",\n size: \"32px\",\n showTooltip: true,\n tooltipText: \"Clear chat\",\n paddingX: \"0px\",\n paddingY: \"0px\",\n },\n headerIconHidden: false,\n border: undefined,\n shadow:\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)\",\n};\n\n/**\n * Default widget configuration\n * Single source of truth for all default values\n */\nexport const DEFAULT_WIDGET_CONFIG: Partial<AgentWidgetConfig> = {\n apiUrl: \"https://api.runtype.com/api/chat/dispatch\",\n // Client token mode defaults (optional, only used when clientToken is set)\n clientToken: undefined,\n agentId: undefined,\n target: undefined,\n theme: undefined,\n darkTheme: undefined,\n colorScheme: \"light\",\n launcher: DEFAULT_LAUNCHER_CONFIG,\n copy: {\n welcomeTitle: \"Hello 👋\",\n welcomeSubtitle: \"Ask anything about your account or products.\",\n inputPlaceholder: \"How can I help...\",\n sendButtonLabel: \"Send\",\n },\n sendButton: {\n borderWidth: \"0px\",\n paddingX: \"12px\",\n paddingY: \"10px\",\n borderColor: undefined,\n useIcon: true,\n iconText: \"↑\",\n size: \"40px\",\n showTooltip: true,\n tooltipText: \"Send message\",\n iconName: \"send\",\n },\n statusIndicator: {\n visible: true,\n idleText: \"Online\",\n connectingText: \"Connecting…\",\n connectedText: \"Streaming…\",\n errorText: \"Offline\",\n },\n voiceRecognition: {\n enabled: true,\n pauseDuration: 2000,\n iconName: \"mic\",\n iconSize: \"39px\",\n borderWidth: \"0px\",\n paddingX: \"9px\",\n paddingY: \"14px\",\n iconColor: undefined,\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n recordingIconColor: undefined,\n recordingBackgroundColor: undefined,\n recordingBorderColor: \"transparent\",\n showTooltip: true,\n tooltipText: \"Start voice recognition\",\n },\n features: {\n showReasoning: true,\n showToolCalls: true,\n scrollToBottom: {\n enabled: true,\n iconName: \"arrow-down\",\n label: \"\",\n },\n scrollBehavior: {\n // ChatGPT-style default: pin the just-sent message near the top and let\n // the reply stream into the space below. Restore the old \"stick to the\n // bottom\" behavior with `mode: \"follow\"`.\n mode: \"anchor-top\",\n anchorTopOffset: 16,\n // Surface the unread count + \"streaming below\" hint while pinned, so the\n // reader still sees activity arriving off-screen under the pinned turn.\n // (Suppressed by default historically; opted on alongside the anchor-top\n // default so the default UX keeps the affordance.)\n showActivityWhilePinned: true,\n },\n toolCallDisplay: {\n collapsedMode: \"tool-call\",\n activePreview: false,\n grouped: false,\n groupedMode: \"stack\",\n previewMaxLines: 3,\n expandable: true,\n loadingAnimation: \"none\",\n },\n reasoningDisplay: {\n activePreview: false,\n previewMaxLines: 3,\n expandable: true,\n loadingAnimation: \"none\",\n },\n streamAnimation: {\n type: \"none\",\n placeholder: \"none\",\n speed: 120,\n duration: 1800,\n },\n askUserQuestion: {\n enabled: true,\n slideInMs: 180,\n freeTextLabel: \"Other…\",\n freeTextPlaceholder: \"Type your answer…\",\n submitLabel: \"Send\",\n },\n },\n suggestionChips: [\n \"What can you help me with?\",\n \"Tell me about your features\",\n \"How does this work?\",\n ],\n suggestionChipsConfig: {\n fontFamily: \"sans-serif\",\n fontWeight: \"500\",\n paddingX: \"12px\",\n paddingY: \"6px\",\n },\n layout: {\n header: {\n layout: \"default\",\n showIcon: true,\n showTitle: true,\n showSubtitle: true,\n showCloseButton: true,\n showClearChat: true,\n },\n messages: {\n layout: \"bubble\",\n avatar: {\n show: false,\n position: \"left\",\n },\n timestamp: {\n show: false,\n position: \"below\",\n },\n groupConsecutive: false,\n },\n slots: {},\n },\n markdown: {\n options: {\n gfm: true,\n breaks: true,\n },\n disableDefaultStyles: false,\n },\n messageActions: {\n enabled: true,\n showCopy: true,\n showUpvote: false, // Requires backend - disabled by default\n showDownvote: false, // Requires backend - disabled by default\n visibility: \"hover\",\n align: \"right\",\n layout: \"pill-inside\",\n },\n debug: false,\n};\n\nfunction mergeThemePartials(\n base: DeepPartial<PersonaTheme> | undefined,\n override: DeepPartial<PersonaTheme> | undefined\n): DeepPartial<PersonaTheme> | undefined {\n if (!base && !override) return undefined;\n if (!base) return override;\n if (!override) return base;\n return deepMerge(\n base as Record<string, unknown>,\n override as Record<string, unknown>\n ) as DeepPartial<PersonaTheme>;\n}\n\n/**\n * Helper to deep merge user config with defaults\n * This ensures all default values are present while allowing selective overrides\n */\nexport function mergeWithDefaults(\n config?: Partial<AgentWidgetConfig>\n): Partial<AgentWidgetConfig> {\n if (!config) return DEFAULT_WIDGET_CONFIG;\n\n return {\n ...DEFAULT_WIDGET_CONFIG,\n ...config,\n theme: mergeThemePartials(DEFAULT_WIDGET_CONFIG.theme, config.theme),\n darkTheme: mergeThemePartials(DEFAULT_WIDGET_CONFIG.darkTheme, config.darkTheme),\n launcher: {\n ...DEFAULT_WIDGET_CONFIG.launcher,\n ...config.launcher,\n dock: {\n ...DEFAULT_WIDGET_CONFIG.launcher?.dock,\n ...config.launcher?.dock,\n },\n clearChat: {\n ...DEFAULT_WIDGET_CONFIG.launcher?.clearChat,\n ...config.launcher?.clearChat,\n },\n },\n copy: {\n ...DEFAULT_WIDGET_CONFIG.copy,\n ...config.copy,\n },\n sendButton: {\n ...DEFAULT_WIDGET_CONFIG.sendButton,\n ...config.sendButton,\n },\n statusIndicator: {\n ...DEFAULT_WIDGET_CONFIG.statusIndicator,\n ...config.statusIndicator,\n },\n voiceRecognition: {\n ...DEFAULT_WIDGET_CONFIG.voiceRecognition,\n ...config.voiceRecognition,\n },\n features: (() => {\n const da = DEFAULT_WIDGET_CONFIG.features?.artifacts;\n const ca = config.features?.artifacts;\n const dsb = DEFAULT_WIDGET_CONFIG.features?.scrollToBottom;\n const csb = config.features?.scrollToBottom;\n const dsc = DEFAULT_WIDGET_CONFIG.features?.scrollBehavior;\n const csc = config.features?.scrollBehavior;\n const dsa = DEFAULT_WIDGET_CONFIG.features?.streamAnimation;\n const csa = config.features?.streamAnimation;\n const dau = DEFAULT_WIDGET_CONFIG.features?.askUserQuestion;\n const cau = config.features?.askUserQuestion;\n const mergedArtifacts =\n da === undefined && ca === undefined\n ? undefined\n : {\n ...da,\n ...ca,\n layout: {\n ...da?.layout,\n ...ca?.layout,\n },\n };\n const mergedScrollToBottom =\n dsb === undefined && csb === undefined\n ? undefined\n : {\n ...dsb,\n ...csb,\n };\n const mergedScrollBehavior =\n dsc === undefined && csc === undefined\n ? undefined\n : {\n ...dsc,\n ...csc,\n };\n const mergedStreamAnimation =\n dsa === undefined && csa === undefined\n ? undefined\n : {\n ...dsa,\n ...csa,\n };\n const mergedAskUserQuestion =\n dau === undefined && cau === undefined\n ? undefined\n : {\n ...dau,\n ...cau,\n styles: {\n ...dau?.styles,\n ...cau?.styles,\n },\n };\n return {\n ...DEFAULT_WIDGET_CONFIG.features,\n ...config.features,\n ...(mergedScrollToBottom !== undefined ? { scrollToBottom: mergedScrollToBottom } : {}),\n ...(mergedScrollBehavior !== undefined ? { scrollBehavior: mergedScrollBehavior } : {}),\n ...(mergedArtifacts !== undefined ? { artifacts: mergedArtifacts } : {}),\n ...(mergedStreamAnimation !== undefined ? { streamAnimation: mergedStreamAnimation } : {}),\n ...(mergedAskUserQuestion !== undefined ? { askUserQuestion: mergedAskUserQuestion } : {}),\n };\n })(),\n suggestionChips: config.suggestionChips ?? DEFAULT_WIDGET_CONFIG.suggestionChips,\n suggestionChipsConfig: {\n ...DEFAULT_WIDGET_CONFIG.suggestionChipsConfig,\n ...config.suggestionChipsConfig,\n },\n layout: {\n ...DEFAULT_WIDGET_CONFIG.layout,\n ...config.layout,\n header: {\n ...DEFAULT_WIDGET_CONFIG.layout?.header,\n ...config.layout?.header,\n },\n messages: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages,\n ...config.layout?.messages,\n avatar: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages?.avatar,\n ...config.layout?.messages?.avatar,\n },\n timestamp: {\n ...DEFAULT_WIDGET_CONFIG.layout?.messages?.timestamp,\n ...config.layout?.messages?.timestamp,\n },\n },\n slots: {\n ...DEFAULT_WIDGET_CONFIG.layout?.slots,\n ...config.layout?.slots,\n },\n },\n markdown: {\n ...DEFAULT_WIDGET_CONFIG.markdown,\n ...config.markdown,\n options: {\n ...DEFAULT_WIDGET_CONFIG.markdown?.options,\n ...config.markdown?.options,\n },\n },\n messageActions: {\n ...DEFAULT_WIDGET_CONFIG.messageActions,\n ...config.messageActions,\n },\n };\n}\n","import type {\n DeepPartial,\n PersonaTheme,\n ResolvedToken,\n ThemeValidationResult,\n ThemeValidationError,\n CreateThemeOptions,\n ComponentTokens,\n SemanticTokens,\n} from '../types/theme';\nimport {\n DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,\n DEFAULT_FLOATING_LAUNCHER_WIDTH,\n} from '../defaults';\n\n// Detached/docked panel defaults, shared by the panel token defaults, the alias\n// fallbacks below, host-layout, the theme editor, and the artifact gate.\nexport const DEFAULT_PANEL_INSET = '16px';\nexport const DEFAULT_PANEL_CANVAS_BACKGROUND = 'transparent';\n\nexport const DEFAULT_PALETTE = {\n colors: {\n primary: {\n 50: '#ffffff',\n 100: '#f5f5f5',\n 200: '#d4d4d4',\n 300: '#a3a3a3',\n 400: '#737373',\n 500: '#171717',\n 600: '#0f0f0f',\n 700: '#0a0a0a',\n 800: '#050505',\n 900: '#030303',\n 950: '#000000',\n },\n secondary: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065',\n },\n accent: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712',\n },\n success: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n warning: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n error: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n info: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n 950: '#172554',\n },\n },\n spacing: {\n 0: '0px',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 32: '8rem',\n 40: '10rem',\n 48: '12rem',\n 56: '14rem',\n 64: '16rem',\n },\n typography: {\n fontFamily: {\n sans: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n serif: 'Georgia, Cambria, \"Times New Roman\", Times, serif',\n mono: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.625',\n },\n },\n shadows: {\n none: 'none',\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n },\n borders: {\n none: 'none',\n sm: '1px solid',\n md: '2px solid',\n lg: '4px solid',\n },\n radius: {\n none: '0px',\n sm: '0.125rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n full: '9999px',\n },\n};\n\nexport const DEFAULT_SEMANTIC: SemanticTokens = {\n colors: {\n primary: 'palette.colors.primary.500',\n secondary: 'palette.colors.secondary.500',\n // Links/Focus role: solid primary\n accent: 'palette.colors.primary.600',\n // Surfaces role: soft gray\n surface: 'palette.colors.gray.50',\n background: 'palette.colors.gray.50',\n container: 'palette.colors.gray.50',\n text: 'palette.colors.gray.900',\n textMuted: 'palette.colors.gray.500',\n textInverse: 'palette.colors.gray.50',\n // Borders role: soft gray\n border: 'palette.colors.gray.200',\n divider: 'palette.colors.gray.200',\n interactive: {\n // Primary Actions role: solid primary\n default: 'palette.colors.primary.600',\n hover: 'palette.colors.primary.700',\n // Links/Focus role: solid primary\n focus: 'palette.colors.primary.600',\n active: 'palette.colors.primary.600',\n disabled: 'palette.colors.gray.300',\n },\n feedback: {\n success: 'palette.colors.success.500',\n warning: 'palette.colors.warning.500',\n error: 'palette.colors.error.500',\n info: 'palette.colors.info.500',\n },\n },\n spacing: {\n xs: 'palette.spacing.1',\n sm: 'palette.spacing.2',\n md: 'palette.spacing.4',\n lg: 'palette.spacing.6',\n xl: 'palette.spacing.8',\n '2xl': 'palette.spacing.10',\n },\n typography: {\n fontFamily: 'palette.typography.fontFamily.sans',\n fontSize: 'palette.typography.fontSize.base',\n fontWeight: 'palette.typography.fontWeight.normal',\n lineHeight: 'palette.typography.lineHeight.normal',\n },\n};\n\nexport const DEFAULT_COMPONENTS: ComponentTokens = {\n button: {\n primary: {\n // Primary Actions role: solid primary\n background: 'palette.colors.primary.500',\n foreground: 'palette.colors.primary.50',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n },\n secondary: {\n background: 'semantic.colors.surface',\n foreground: 'semantic.colors.secondary',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n },\n ghost: {\n background: 'transparent',\n foreground: 'semantic.colors.text',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n },\n input: {\n // Input role: soft gray\n background: 'palette.colors.gray.50',\n placeholder: 'palette.colors.gray.400',\n borderRadius: 'palette.radius.lg',\n padding: 'semantic.spacing.md',\n focus: {\n border: 'palette.colors.gray.400',\n ring: 'palette.colors.gray.400',\n },\n },\n launcher: {\n background: 'palette.colors.primary.500',\n foreground: 'palette.colors.primary.50',\n border: 'palette.colors.gray.200',\n size: '60px',\n iconSize: '28px',\n borderRadius: 'palette.radius.full',\n shadow: 'palette.shadows.lg',\n },\n panel: {\n width: DEFAULT_FLOATING_LAUNCHER_WIDTH,\n maxWidth: DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH,\n height: '600px',\n maxHeight: 'calc(100vh - 80px)',\n borderRadius: 'palette.radius.xl',\n shadow: 'palette.shadows.xl',\n inset: DEFAULT_PANEL_INSET,\n canvasBackground: DEFAULT_PANEL_CANVAS_BACKGROUND,\n },\n header: {\n // Header role: solid primary\n background: 'palette.colors.primary.500',\n border: 'palette.colors.primary.600',\n borderRadius: 'palette.radius.xl palette.radius.xl 0 0',\n padding: 'semantic.spacing.md',\n iconBackground: 'palette.colors.primary.600',\n iconForeground: 'palette.colors.primary.50',\n titleForeground: 'palette.colors.primary.50',\n subtitleForeground: 'palette.colors.primary.200',\n actionIconForeground: 'palette.colors.primary.200',\n },\n message: {\n user: {\n // User Messages role: solid primary\n background: 'palette.colors.primary.500',\n text: 'palette.colors.primary.50',\n borderRadius: 'palette.radius.lg',\n shadow: 'palette.shadows.sm',\n },\n assistant: {\n // Assistant Messages role: soft gray\n background: 'palette.colors.gray.50',\n text: 'palette.colors.gray.900',\n borderRadius: 'palette.radius.lg',\n border: 'palette.colors.gray.200',\n shadow: 'palette.shadows.sm',\n },\n border: 'semantic.colors.border',\n },\n introCard: {\n // Defaults preserve the legacy `persona-shadow-sm` look exactly so existing\n // pages render unchanged when no token is set.\n background: 'semantic.colors.surface',\n borderRadius: 'palette.radius.2xl',\n padding: 'semantic.spacing.lg',\n shadow: '0 5px 15px rgba(15, 23, 42, 0.08)',\n },\n toolBubble: {\n shadow: 'palette.shadows.sm',\n },\n reasoningBubble: {\n shadow: 'palette.shadows.sm',\n },\n composer: {\n shadow: 'palette.shadows.none',\n },\n markdown: {\n inlineCode: {\n background: 'palette.colors.gray.50',\n foreground: 'palette.colors.gray.900',\n },\n link: {\n // Links/Focus role: solid primary\n foreground: 'palette.colors.primary.600',\n },\n prose: {\n fontFamily: 'inherit',\n },\n codeBlock: {\n background: 'semantic.colors.container',\n borderColor: 'semantic.colors.border',\n textColor: 'inherit',\n },\n table: {\n headerBackground: 'semantic.colors.container',\n borderColor: 'semantic.colors.border',\n },\n hr: {\n color: 'semantic.colors.divider',\n },\n blockquote: {\n borderColor: 'palette.colors.gray.900',\n background: 'transparent',\n textColor: 'palette.colors.gray.500',\n },\n },\n collapsibleWidget: {\n container: 'palette.colors.gray.50',\n surface: 'semantic.colors.surface',\n border: 'semantic.colors.border',\n },\n voice: {\n recording: {\n indicator: 'palette.colors.error.500',\n background: 'palette.colors.error.50',\n border: 'palette.colors.error.200',\n },\n processing: {\n icon: 'palette.colors.primary.500',\n background: 'palette.colors.primary.50',\n },\n speaking: {\n icon: 'palette.colors.success.500',\n },\n },\n // Neutral surface card (components/approval-actions.ts). The primary action\n // anchors to the brand primary; deny is a neutral tinted button. Consumers who\n // themed these (or set config.approval.* color overrides) still win.\n approval: {\n requested: {\n background: 'semantic.colors.surface',\n border: 'semantic.colors.border',\n text: 'palette.colors.gray.900',\n shadow: '0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)',\n },\n approve: {\n background: 'semantic.colors.primary',\n foreground: 'semantic.colors.textInverse',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n deny: {\n background: 'semantic.colors.container',\n foreground: 'semantic.colors.text',\n borderRadius: 'palette.radius.md',\n padding: 'semantic.spacing.sm',\n },\n },\n attachment: {\n image: {\n background: 'palette.colors.gray.100',\n border: 'palette.colors.gray.200',\n },\n },\n scrollToBottom: {\n background: 'components.button.primary.background',\n foreground: 'components.button.primary.foreground',\n border: 'semantic.colors.primary',\n size: '40px',\n borderRadius: 'palette.radius.full',\n shadow: 'palette.shadows.sm',\n padding: '0.5rem 0.875rem',\n gap: '0.5rem',\n fontSize: '0.875rem',\n iconSize: '14px',\n },\n artifact: {\n pane: {\n background: 'semantic.colors.container',\n toolbarBackground: 'semantic.colors.container',\n },\n },\n};\n\nexport function resolveTokenValue(theme: PersonaTheme, path: string): string | undefined {\n if (\n !path.startsWith('palette.') &&\n !path.startsWith('semantic.') &&\n !path.startsWith('components.')\n ) {\n return path;\n }\n\n const parts = path.split('.');\n let current: any = theme;\n\n for (const part of parts) {\n if (current === undefined || current === null) {\n return undefined;\n }\n current = current[part];\n }\n\n if (\n typeof current === 'string' &&\n (current.startsWith('palette.') ||\n current.startsWith('semantic.') ||\n current.startsWith('components.'))\n ) {\n return resolveTokenValue(theme, current);\n }\n\n return current;\n}\n\nexport function resolveTokens(theme: PersonaTheme): Record<string, ResolvedToken> {\n const resolved: Record<string, ResolvedToken> = {};\n\n function resolveObject(obj: any, prefix: string) {\n for (const [key, value] of Object.entries(obj)) {\n const path = `${prefix}.${key}`;\n\n if (typeof value === 'string') {\n const resolvedValue = resolveTokenValue(theme, value);\n if (resolvedValue !== undefined) {\n resolved[path] = {\n path,\n value: resolvedValue,\n type:\n prefix.includes('color')\n ? 'color'\n : prefix.includes('spacing')\n ? 'spacing'\n : prefix.includes('typography')\n ? 'typography'\n : prefix.includes('shadow')\n ? 'shadow'\n : prefix.includes('border')\n ? 'border'\n : 'color',\n };\n }\n } else if (typeof value === 'object' && value !== null) {\n resolveObject(value, path);\n }\n }\n }\n\n resolveObject(theme.palette, 'palette');\n resolveObject(theme.semantic, 'semantic');\n resolveObject(theme.components, 'components');\n\n return resolved;\n}\n\nexport function validateTheme(theme: Partial<PersonaTheme>): ThemeValidationResult {\n const errors: ThemeValidationError[] = [];\n const warnings: ThemeValidationError[] = [];\n\n if (!theme.palette) {\n errors.push({\n path: 'palette',\n message: 'Theme must include a palette',\n severity: 'error',\n });\n }\n\n if (!theme.semantic) {\n warnings.push({\n path: 'semantic',\n message: 'No semantic tokens defined - defaults will be used',\n severity: 'warning',\n });\n }\n\n if (!theme.components) {\n warnings.push({\n path: 'components',\n message: 'No component tokens defined - defaults will be used',\n severity: 'warning',\n });\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n };\n}\n\nfunction mergeRecords(\n base: Record<string, unknown>,\n override: Record<string, unknown>\n): Record<string, unknown> {\n const result = { ...base };\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n if (existing && typeof existing === 'object' && !Array.isArray(existing) &&\n value && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = mergeRecords(\n existing as Record<string, unknown>,\n value as Record<string, unknown>\n );\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n\nfunction deepMergeComponents(\n base: ComponentTokens,\n override?: Partial<ComponentTokens>\n): ComponentTokens {\n if (!override) return base;\n return mergeRecords(\n base as unknown as Record<string, unknown>,\n override as unknown as Record<string, unknown>\n ) as unknown as ComponentTokens;\n}\n\nexport function createTheme(\n userConfig?: DeepPartial<PersonaTheme>,\n options: CreateThemeOptions = {}\n): PersonaTheme {\n const baseTheme: PersonaTheme = {\n palette: DEFAULT_PALETTE as PersonaTheme['palette'],\n semantic: DEFAULT_SEMANTIC as PersonaTheme['semantic'],\n components: DEFAULT_COMPONENTS as PersonaTheme['components'],\n };\n\n let theme: PersonaTheme = {\n palette: {\n ...baseTheme.palette,\n ...userConfig?.palette,\n colors: {\n ...baseTheme.palette.colors,\n ...userConfig?.palette?.colors,\n },\n spacing: {\n ...baseTheme.palette.spacing,\n ...userConfig?.palette?.spacing,\n },\n typography: {\n ...baseTheme.palette.typography,\n ...userConfig?.palette?.typography,\n },\n shadows: {\n ...baseTheme.palette.shadows,\n ...userConfig?.palette?.shadows,\n },\n borders: {\n ...baseTheme.palette.borders,\n ...userConfig?.palette?.borders,\n },\n radius: {\n ...baseTheme.palette.radius,\n ...userConfig?.palette?.radius,\n },\n },\n semantic: {\n ...baseTheme.semantic,\n ...userConfig?.semantic,\n colors: {\n ...baseTheme.semantic.colors,\n ...userConfig?.semantic?.colors,\n interactive: {\n ...baseTheme.semantic.colors.interactive,\n ...userConfig?.semantic?.colors?.interactive,\n },\n feedback: {\n ...baseTheme.semantic.colors.feedback,\n ...userConfig?.semantic?.colors?.feedback,\n },\n },\n spacing: {\n ...baseTheme.semantic.spacing,\n ...userConfig?.semantic?.spacing,\n },\n typography: {\n ...baseTheme.semantic.typography,\n ...userConfig?.semantic?.typography,\n },\n },\n components: deepMergeComponents(\n baseTheme.components,\n userConfig?.components as Partial<ComponentTokens> | undefined\n ),\n } as PersonaTheme;\n\n if (options.validate !== false) {\n const validation = validateTheme(theme);\n if (!validation.valid) {\n throw new Error(\n `Theme validation failed: ${validation.errors.map((e) => e.message).join(', ')}`\n );\n }\n }\n\n if (options.plugins) {\n for (const plugin of options.plugins) {\n theme = plugin.transform(theme);\n }\n }\n\n return theme;\n}\n\nexport function themeToCssVariables(theme: PersonaTheme): Record<string, string> {\n const resolved = resolveTokens(theme);\n const cssVars: Record<string, string> = {};\n\n for (const [path, token] of Object.entries(resolved)) {\n const varName = path.replace(/\\./g, '-');\n cssVars[`--persona-${varName}`] = token.value;\n }\n\n cssVars['--persona-primary'] = cssVars['--persona-semantic-colors-primary'] ?? cssVars['--persona-palette-colors-primary-500'];\n cssVars['--persona-secondary'] = cssVars['--persona-semantic-colors-secondary'] ?? cssVars['--persona-palette-colors-secondary-500'];\n cssVars['--persona-accent'] = cssVars['--persona-semantic-colors-accent'] ?? cssVars['--persona-palette-colors-accent-500'];\n cssVars['--persona-surface'] = cssVars['--persona-semantic-colors-surface'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-background'] = cssVars['--persona-semantic-colors-background'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-container'] = cssVars['--persona-semantic-colors-container'] ?? cssVars['--persona-palette-colors-gray-100'];\n cssVars['--persona-text'] = cssVars['--persona-semantic-colors-text'] ?? cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-text-muted'] = cssVars['--persona-semantic-colors-text-muted'] ?? cssVars['--persona-palette-colors-gray-500'];\n cssVars['--persona-text-inverse'] = cssVars['--persona-semantic-colors-text-inverse'] ?? cssVars['--persona-palette-colors-gray-50'];\n cssVars['--persona-border'] = cssVars['--persona-semantic-colors-border'] ?? cssVars['--persona-palette-colors-gray-200'];\n cssVars['--persona-divider'] = cssVars['--persona-semantic-colors-divider'] ?? cssVars['--persona-palette-colors-gray-200'];\n cssVars['--persona-muted'] = cssVars['--persona-text-muted'];\n\n cssVars['--persona-voice-recording-indicator'] = cssVars['--persona-components-voice-recording-indicator'] ?? cssVars['--persona-palette-colors-error-500'];\n cssVars['--persona-voice-recording-bg'] = cssVars['--persona-components-voice-recording-background'] ?? cssVars['--persona-palette-colors-error-50'];\n cssVars['--persona-voice-processing-icon'] = cssVars['--persona-components-voice-processing-icon'] ?? cssVars['--persona-palette-colors-primary-500'];\n cssVars['--persona-voice-speaking-icon'] = cssVars['--persona-components-voice-speaking-icon'] ?? cssVars['--persona-palette-colors-success-500'];\n\n cssVars['--persona-approval-bg'] = cssVars['--persona-components-approval-requested-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-approval-border'] = cssVars['--persona-components-approval-requested-border'] ?? cssVars['--persona-border'];\n cssVars['--persona-approval-text'] = cssVars['--persona-components-approval-requested-text'] ?? cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-approval-shadow'] = cssVars['--persona-components-approval-requested-shadow'] ?? '0 1px 2px 0 rgba(11, 11, 11, 0.06), 0 2px 8px 0 rgba(11, 11, 11, 0.04)';\n cssVars['--persona-approval-approve-bg'] = cssVars['--persona-components-approval-approve-background'] ?? cssVars['--persona-button-primary-bg'];\n cssVars['--persona-approval-deny-bg'] = cssVars['--persona-components-approval-deny-background'] ?? cssVars['--persona-container'];\n\n cssVars['--persona-attachment-image-bg'] = cssVars['--persona-components-attachment-image-background'] ?? cssVars['--persona-palette-colors-gray-100'];\n cssVars['--persona-attachment-image-border'] = cssVars['--persona-components-attachment-image-border'] ?? cssVars['--persona-palette-colors-gray-200'];\n\n // Typography shorthand aliases\n cssVars['--persona-font-family'] = cssVars['--persona-semantic-typography-fontFamily'] ?? cssVars['--persona-palette-typography-fontFamily-sans'];\n cssVars['--persona-font-size'] = cssVars['--persona-semantic-typography-fontSize'] ?? cssVars['--persona-palette-typography-fontSize-base'];\n cssVars['--persona-font-weight'] = cssVars['--persona-semantic-typography-fontWeight'] ?? cssVars['--persona-palette-typography-fontWeight-normal'];\n cssVars['--persona-line-height'] = cssVars['--persona-semantic-typography-lineHeight'] ?? cssVars['--persona-palette-typography-lineHeight-normal'];\n\n cssVars['--persona-input-font-family'] = cssVars['--persona-font-family'];\n cssVars['--persona-input-font-weight'] = cssVars['--persona-font-weight'];\n\n // Radius aliases used throughout the existing widget CSS.\n cssVars['--persona-radius-sm'] = cssVars['--persona-palette-radius-sm'] ?? '0.125rem';\n cssVars['--persona-radius-md'] = cssVars['--persona-palette-radius-md'] ?? '0.375rem';\n cssVars['--persona-radius-lg'] = cssVars['--persona-palette-radius-lg'] ?? '0.5rem';\n cssVars['--persona-radius-xl'] = cssVars['--persona-palette-radius-xl'] ?? '0.75rem';\n cssVars['--persona-radius-full'] = cssVars['--persona-palette-radius-full'] ?? '9999px';\n cssVars['--persona-launcher-radius'] =\n cssVars['--persona-components-launcher-borderRadius'] ??\n cssVars['--persona-palette-radius-full'] ??\n '9999px';\n cssVars['--persona-launcher-bg'] =\n cssVars['--persona-components-launcher-background'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-launcher-fg'] =\n cssVars['--persona-components-launcher-foreground'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-launcher-border'] =\n cssVars['--persona-components-launcher-border'] ??\n cssVars['--persona-border'];\n cssVars['--persona-button-primary-bg'] =\n cssVars['--persona-components-button-primary-background'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-button-primary-fg'] =\n cssVars['--persona-components-button-primary-foreground'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-button-radius'] =\n cssVars['--persona-components-button-primary-borderRadius'] ??\n cssVars['--persona-palette-radius-full'] ??\n '9999px';\n cssVars['--persona-panel-radius'] =\n cssVars['--persona-components-panel-borderRadius'] ??\n cssVars['--persona-radius-xl'] ??\n '0.75rem';\n cssVars['--persona-panel-border'] =\n cssVars['--persona-components-panel-border'] ?? `1px solid ${cssVars['--persona-border']}`;\n cssVars['--persona-panel-shadow'] =\n cssVars['--persona-components-panel-shadow'] ??\n cssVars['--persona-palette-shadows-xl'] ??\n '0 25px 50px -12px rgba(0, 0, 0, 0.25)';\n cssVars['--persona-panel-inset'] =\n cssVars['--persona-components-panel-inset'] ?? DEFAULT_PANEL_INSET;\n cssVars['--persona-panel-canvas-bg'] =\n cssVars['--persona-components-panel-canvasBackground'] ?? DEFAULT_PANEL_CANVAS_BACKGROUND;\n cssVars['--persona-launcher-shadow'] =\n cssVars['--persona-components-launcher-shadow'] ??\n '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)';\n cssVars['--persona-input-radius'] =\n cssVars['--persona-components-input-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n cssVars['--persona-message-user-radius'] =\n cssVars['--persona-components-message-user-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n cssVars['--persona-message-assistant-radius'] =\n cssVars['--persona-components-message-assistant-borderRadius'] ??\n cssVars['--persona-radius-lg'] ??\n '0.5rem';\n\n // Component-level color overrides: these map component tokens to\n // dedicated CSS variables that the widget CSS reads for individual elements.\n cssVars['--persona-header-bg'] =\n cssVars['--persona-components-header-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-header-border'] =\n cssVars['--persona-components-header-border'] ?? cssVars['--persona-divider'];\n cssVars['--persona-header-icon-bg'] =\n cssVars['--persona-components-header-iconBackground'] ?? cssVars['--persona-primary'];\n cssVars['--persona-header-icon-fg'] =\n cssVars['--persona-components-header-iconForeground'] ?? cssVars['--persona-text-inverse'];\n cssVars['--persona-header-title-fg'] =\n cssVars['--persona-components-header-titleForeground'] ?? cssVars['--persona-primary'];\n cssVars['--persona-header-subtitle-fg'] =\n cssVars['--persona-components-header-subtitleForeground'] ?? cssVars['--persona-text-muted'];\n cssVars['--persona-header-action-icon-fg'] =\n cssVars['--persona-components-header-actionIconForeground'] ?? cssVars['--persona-muted'];\n\n const headerTokens = theme.components?.header;\n if (headerTokens?.shadow) cssVars['--persona-header-shadow'] = headerTokens.shadow;\n if (headerTokens?.borderBottom) cssVars['--persona-header-border-bottom'] = headerTokens.borderBottom;\n\n // Intro card aliases: short names the panel inline-styles read directly.\n // The full-path `--persona-components-introCard-*` variables auto-emit above;\n // these mirror them with sensible fallbacks so existing pages keep their look.\n const introCardTokens = theme.components?.introCard;\n cssVars['--persona-intro-card-bg'] =\n cssVars['--persona-components-introCard-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-intro-card-radius'] =\n cssVars['--persona-components-introCard-borderRadius'] ?? '1rem';\n cssVars['--persona-intro-card-padding'] =\n cssVars['--persona-components-introCard-padding'] ?? '1.5rem';\n cssVars['--persona-intro-card-shadow'] =\n introCardTokens?.shadow\n ?? cssVars['--persona-components-introCard-shadow']\n ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n\n cssVars['--persona-input-background'] =\n cssVars['--persona-components-input-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-input-placeholder'] =\n cssVars['--persona-components-input-placeholder'] ?? cssVars['--persona-text-muted'];\n\n cssVars['--persona-message-user-bg'] =\n cssVars['--persona-components-message-user-background'] ?? cssVars['--persona-accent'];\n cssVars['--persona-message-user-text'] =\n cssVars['--persona-components-message-user-text'] ?? cssVars['--persona-text-inverse'];\n cssVars['--persona-message-user-shadow'] =\n cssVars['--persona-components-message-user-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-message-assistant-bg'] =\n cssVars['--persona-components-message-assistant-background'] ?? cssVars['--persona-surface'];\n cssVars['--persona-message-assistant-text'] =\n cssVars['--persona-components-message-assistant-text'] ?? cssVars['--persona-text'];\n cssVars['--persona-message-assistant-border'] =\n cssVars['--persona-components-message-assistant-border'] ?? cssVars['--persona-border'];\n cssVars['--persona-message-assistant-shadow'] =\n cssVars['--persona-components-message-assistant-shadow'] ?? '0 1px 2px 0 rgb(0 0 0 / 0.05)';\n cssVars['--persona-scroll-to-bottom-bg'] =\n cssVars['--persona-components-scrollToBottom-background'] ??\n cssVars['--persona-button-primary-bg'] ??\n cssVars['--persona-accent'];\n cssVars['--persona-scroll-to-bottom-fg'] =\n cssVars['--persona-components-scrollToBottom-foreground'] ??\n cssVars['--persona-button-primary-fg'] ??\n cssVars['--persona-text-inverse'];\n cssVars['--persona-scroll-to-bottom-border'] =\n cssVars['--persona-components-scrollToBottom-border'] ??\n cssVars['--persona-primary'];\n cssVars['--persona-scroll-to-bottom-size'] =\n cssVars['--persona-components-scrollToBottom-size'] ??\n '40px';\n cssVars['--persona-scroll-to-bottom-radius'] =\n cssVars['--persona-components-scrollToBottom-borderRadius'] ??\n cssVars['--persona-button-radius'] ??\n cssVars['--persona-radius-full'] ??\n '9999px';\n cssVars['--persona-scroll-to-bottom-shadow'] =\n cssVars['--persona-components-scrollToBottom-shadow'] ??\n cssVars['--persona-palette-shadows-sm'] ??\n '0 1px 2px 0 rgb(0 0 0 / 0.05)';\n cssVars['--persona-scroll-to-bottom-padding'] =\n cssVars['--persona-components-scrollToBottom-padding'] ??\n '0.5rem 0.875rem';\n cssVars['--persona-scroll-to-bottom-gap'] =\n cssVars['--persona-components-scrollToBottom-gap'] ??\n '0.5rem';\n cssVars['--persona-scroll-to-bottom-font-size'] =\n cssVars['--persona-components-scrollToBottom-fontSize'] ??\n cssVars['--persona-palette-typography-fontSize-sm'] ??\n '0.875rem';\n cssVars['--persona-scroll-to-bottom-icon-size'] =\n cssVars['--persona-components-scrollToBottom-iconSize'] ??\n '14px';\n\n cssVars['--persona-tool-bubble-shadow'] =\n cssVars['--persona-components-toolBubble-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-reasoning-bubble-shadow'] =\n cssVars['--persona-components-reasoningBubble-shadow'] ?? '0 5px 15px rgba(15, 23, 42, 0.08)';\n cssVars['--persona-composer-shadow'] =\n cssVars['--persona-components-composer-shadow'] ?? 'none';\n\n cssVars['--persona-md-inline-code-bg'] =\n cssVars['--persona-components-markdown-inlineCode-background'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-inline-code-color'] =\n cssVars['--persona-components-markdown-inlineCode-foreground'] ?? cssVars['--persona-text'];\n\n cssVars['--persona-md-link-color'] =\n cssVars['--persona-components-markdown-link-foreground'] ??\n cssVars['--persona-accent'] ??\n '#0f0f0f';\n\n const mdH1Size = cssVars['--persona-components-markdown-heading-h1-fontSize'];\n if (mdH1Size) cssVars['--persona-md-h1-size'] = mdH1Size;\n const mdH1Weight = cssVars['--persona-components-markdown-heading-h1-fontWeight'];\n if (mdH1Weight) cssVars['--persona-md-h1-weight'] = mdH1Weight;\n const mdH2Size = cssVars['--persona-components-markdown-heading-h2-fontSize'];\n if (mdH2Size) cssVars['--persona-md-h2-size'] = mdH2Size;\n const mdH2Weight = cssVars['--persona-components-markdown-heading-h2-fontWeight'];\n if (mdH2Weight) cssVars['--persona-md-h2-weight'] = mdH2Weight;\n\n const mdProseFont = cssVars['--persona-components-markdown-prose-fontFamily'];\n if (mdProseFont && mdProseFont !== 'inherit') {\n cssVars['--persona-md-prose-font-family'] = mdProseFont;\n }\n\n // Markdown code block\n cssVars['--persona-md-code-block-bg'] =\n cssVars['--persona-components-markdown-codeBlock-background'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-code-block-border-color'] =\n cssVars['--persona-components-markdown-codeBlock-borderColor'] ?? cssVars['--persona-border'];\n cssVars['--persona-md-code-block-text-color'] =\n cssVars['--persona-components-markdown-codeBlock-textColor'] ?? 'inherit';\n\n // Markdown table\n cssVars['--persona-md-table-header-bg'] =\n cssVars['--persona-components-markdown-table-headerBackground'] ?? cssVars['--persona-container'];\n cssVars['--persona-md-table-border-color'] =\n cssVars['--persona-components-markdown-table-borderColor'] ?? cssVars['--persona-border'];\n\n // Markdown HR\n cssVars['--persona-md-hr-color'] =\n cssVars['--persona-components-markdown-hr-color'] ?? cssVars['--persona-divider'];\n\n // Markdown blockquote\n cssVars['--persona-md-blockquote-border-color'] =\n cssVars['--persona-components-markdown-blockquote-borderColor'] ??\n cssVars['--persona-palette-colors-gray-900'];\n cssVars['--persona-md-blockquote-bg'] =\n cssVars['--persona-components-markdown-blockquote-background'] ?? 'transparent';\n cssVars['--persona-md-blockquote-text-color'] =\n cssVars['--persona-components-markdown-blockquote-textColor'] ??\n cssVars['--persona-palette-colors-gray-500'];\n\n // Collapsible widget chrome (tool/reasoning/approval bubbles)\n cssVars['--cw-container'] =\n cssVars['--persona-components-collapsibleWidget-container'] ?? cssVars['--persona-surface'];\n cssVars['--cw-surface'] =\n cssVars['--persona-components-collapsibleWidget-surface'] ?? cssVars['--persona-surface'];\n cssVars['--cw-border'] =\n cssVars['--persona-components-collapsibleWidget-border'] ?? cssVars['--persona-border'];\n\n // Message border\n cssVars['--persona-message-border'] =\n cssVars['--persona-components-message-border'] ?? cssVars['--persona-border'];\n\n // Icon button tokens\n const components = theme.components;\n const iconBtn = components?.iconButton;\n if (iconBtn) {\n if (iconBtn.background) cssVars['--persona-icon-btn-bg'] = iconBtn.background;\n if (iconBtn.border) cssVars['--persona-icon-btn-border'] = iconBtn.border;\n if (iconBtn.color) cssVars['--persona-icon-btn-color'] = iconBtn.color;\n if (iconBtn.padding) cssVars['--persona-icon-btn-padding'] = iconBtn.padding;\n if (iconBtn.borderRadius) cssVars['--persona-icon-btn-radius'] = iconBtn.borderRadius;\n if (iconBtn.hoverBackground) cssVars['--persona-icon-btn-hover-bg'] = iconBtn.hoverBackground;\n if (iconBtn.hoverColor) cssVars['--persona-icon-btn-hover-color'] = iconBtn.hoverColor;\n if (iconBtn.activeBackground) cssVars['--persona-icon-btn-active-bg'] = iconBtn.activeBackground;\n if (iconBtn.activeBorder) cssVars['--persona-icon-btn-active-border'] = iconBtn.activeBorder;\n }\n\n // Label button tokens\n const labelBtn = components?.labelButton;\n if (labelBtn) {\n if (labelBtn.background) cssVars['--persona-label-btn-bg'] = labelBtn.background;\n if (labelBtn.border) cssVars['--persona-label-btn-border'] = labelBtn.border;\n if (labelBtn.color) cssVars['--persona-label-btn-color'] = labelBtn.color;\n if (labelBtn.padding) cssVars['--persona-label-btn-padding'] = labelBtn.padding;\n if (labelBtn.borderRadius) cssVars['--persona-label-btn-radius'] = labelBtn.borderRadius;\n if (labelBtn.hoverBackground) cssVars['--persona-label-btn-hover-bg'] = labelBtn.hoverBackground;\n if (labelBtn.fontSize) cssVars['--persona-label-btn-font-size'] = labelBtn.fontSize;\n if (labelBtn.gap) cssVars['--persona-label-btn-gap'] = labelBtn.gap;\n }\n\n // Toggle group tokens\n const toggleGrp = components?.toggleGroup;\n if (toggleGrp) {\n if (toggleGrp.gap) cssVars['--persona-toggle-group-gap'] = toggleGrp.gap;\n if (toggleGrp.borderRadius) cssVars['--persona-toggle-group-radius'] = toggleGrp.borderRadius;\n }\n\n // Artifact tokens\n const artifact = components?.artifact;\n if (artifact?.toolbar) {\n const t = artifact.toolbar;\n if (t.iconHoverColor) cssVars['--persona-artifact-toolbar-icon-hover-color'] = t.iconHoverColor;\n if (t.iconHoverBackground) cssVars['--persona-artifact-toolbar-icon-hover-bg'] = t.iconHoverBackground;\n if (t.iconPadding) cssVars['--persona-artifact-toolbar-icon-padding'] = t.iconPadding;\n if (t.iconBorderRadius) cssVars['--persona-artifact-toolbar-icon-radius'] = t.iconBorderRadius;\n if (t.iconBorder) cssVars['--persona-artifact-toolbar-icon-border'] = t.iconBorder;\n if (t.toggleGroupGap) cssVars['--persona-artifact-toolbar-toggle-group-gap'] = t.toggleGroupGap;\n if (t.toggleBorderRadius) cssVars['--persona-artifact-toolbar-toggle-radius'] = t.toggleBorderRadius;\n if (t.toggleGroupPadding) cssVars['--persona-artifact-toolbar-toggle-group-padding'] = t.toggleGroupPadding;\n if (t.toggleGroupBorder) cssVars['--persona-artifact-toolbar-toggle-group-border'] = t.toggleGroupBorder;\n if (t.toggleGroupBorderRadius) cssVars['--persona-artifact-toolbar-toggle-group-radius'] = t.toggleGroupBorderRadius;\n if (t.toggleGroupBackground) cssVars['--persona-artifact-toolbar-toggle-group-bg'] = resolveTokenValue(theme, t.toggleGroupBackground) ?? t.toggleGroupBackground;\n if (t.copyBackground) cssVars['--persona-artifact-toolbar-copy-bg'] = t.copyBackground;\n if (t.copyBorder) cssVars['--persona-artifact-toolbar-copy-border'] = t.copyBorder;\n if (t.copyColor) cssVars['--persona-artifact-toolbar-copy-color'] = t.copyColor;\n if (t.copyBorderRadius) cssVars['--persona-artifact-toolbar-copy-radius'] = t.copyBorderRadius;\n if (t.copyPadding) cssVars['--persona-artifact-toolbar-copy-padding'] = t.copyPadding;\n if (t.copyMenuBackground) {\n cssVars['--persona-artifact-toolbar-copy-menu-bg'] = t.copyMenuBackground;\n cssVars['--persona-dropdown-bg'] = cssVars['--persona-dropdown-bg'] ?? t.copyMenuBackground;\n }\n if (t.copyMenuBorder) {\n cssVars['--persona-artifact-toolbar-copy-menu-border'] = t.copyMenuBorder;\n cssVars['--persona-dropdown-border'] = cssVars['--persona-dropdown-border'] ?? t.copyMenuBorder;\n }\n if (t.copyMenuShadow) {\n cssVars['--persona-artifact-toolbar-copy-menu-shadow'] = t.copyMenuShadow;\n cssVars['--persona-dropdown-shadow'] = cssVars['--persona-dropdown-shadow'] ?? t.copyMenuShadow;\n }\n if (t.copyMenuBorderRadius) {\n cssVars['--persona-artifact-toolbar-copy-menu-radius'] = t.copyMenuBorderRadius;\n cssVars['--persona-dropdown-radius'] = cssVars['--persona-dropdown-radius'] ?? t.copyMenuBorderRadius;\n }\n if (t.copyMenuItemHoverBackground) {\n cssVars['--persona-artifact-toolbar-copy-menu-item-hover-bg'] = t.copyMenuItemHoverBackground;\n cssVars['--persona-dropdown-item-hover-bg'] = cssVars['--persona-dropdown-item-hover-bg'] ?? t.copyMenuItemHoverBackground;\n }\n if (t.iconBackground) cssVars['--persona-artifact-toolbar-icon-bg'] = t.iconBackground;\n if (t.toolbarBorder) cssVars['--persona-artifact-toolbar-border'] = t.toolbarBorder;\n }\n if (artifact?.tab) {\n const t = artifact.tab;\n if (t.background) cssVars['--persona-artifact-tab-bg'] = t.background;\n if (t.activeBackground) cssVars['--persona-artifact-tab-active-bg'] = t.activeBackground;\n if (t.activeBorder) cssVars['--persona-artifact-tab-active-border'] = t.activeBorder;\n if (t.borderRadius) cssVars['--persona-artifact-tab-radius'] = t.borderRadius;\n if (t.textColor) cssVars['--persona-artifact-tab-color'] = t.textColor;\n if (t.hoverBackground) cssVars['--persona-artifact-tab-hover-bg'] = t.hoverBackground;\n if (t.listBackground) cssVars['--persona-artifact-tab-list-bg'] = t.listBackground;\n if (t.listBorderColor) cssVars['--persona-artifact-tab-list-border-color'] = t.listBorderColor;\n if (t.listPadding) cssVars['--persona-artifact-tab-list-padding'] = t.listPadding;\n }\n if (artifact?.pane) {\n const t = artifact.pane;\n if (t.toolbarBackground) {\n const toolbarBg =\n resolveTokenValue(theme, t.toolbarBackground) ?? t.toolbarBackground;\n cssVars['--persona-artifact-toolbar-bg'] = toolbarBg;\n }\n }\n if (artifact?.card) {\n const t = artifact.card;\n if (t.background) cssVars['--persona-artifact-card-bg'] = t.background;\n if (t.border) cssVars['--persona-artifact-card-border'] = t.border;\n if (t.borderRadius) cssVars['--persona-artifact-card-radius'] = t.borderRadius;\n if (t.hoverBackground) cssVars['--persona-artifact-card-hover-bg'] = t.hoverBackground;\n if (t.hoverBorderColor) cssVars['--persona-artifact-card-hover-border'] = t.hoverBorderColor;\n }\n if (artifact?.inline) {\n const t = artifact.inline;\n if (t.background) {\n cssVars['--persona-artifact-inline-bg'] =\n resolveTokenValue(theme, t.background) ?? t.background;\n }\n if (t.border) cssVars['--persona-artifact-inline-border'] = t.border;\n if (t.borderRadius) cssVars['--persona-artifact-inline-radius'] = t.borderRadius;\n if (t.chromeBackground) {\n cssVars['--persona-artifact-inline-chrome-bg'] =\n resolveTokenValue(theme, t.chromeBackground) ?? t.chromeBackground;\n }\n if (t.chromeBorder) {\n cssVars['--persona-artifact-inline-chrome-border'] =\n resolveTokenValue(theme, t.chromeBorder) ?? t.chromeBorder;\n }\n if (t.titleColor) {\n cssVars['--persona-artifact-inline-title-color'] =\n resolveTokenValue(theme, t.titleColor) ?? t.titleColor;\n }\n if (t.mutedColor) {\n cssVars['--persona-artifact-inline-muted-color'] =\n resolveTokenValue(theme, t.mutedColor) ?? t.mutedColor;\n }\n if (t.frameHeight) cssVars['--persona-artifact-inline-frame-height'] = t.frameHeight;\n }\n\n // Code (syntax-highlighted artifact source view) tokens.\n const code = components?.code;\n if (code) {\n if (code.keywordColor) cssVars['--persona-code-keyword-color'] = code.keywordColor;\n if (code.stringColor) cssVars['--persona-code-string-color'] = code.stringColor;\n if (code.commentColor) cssVars['--persona-code-comment-color'] = code.commentColor;\n if (code.numberColor) cssVars['--persona-code-number-color'] = code.numberColor;\n if (code.tagColor) cssVars['--persona-code-tag-color'] = code.tagColor;\n if (code.attrColor) cssVars['--persona-code-attr-color'] = code.attrColor;\n if (code.propertyColor) cssVars['--persona-code-property-color'] = code.propertyColor;\n if (code.lineNumberColor) cssVars['--persona-code-line-number-color'] = code.lineNumberColor;\n if (code.gutterBorderColor) cssVars['--persona-code-gutter-border-color'] = code.gutterBorderColor;\n if (code.background)\n cssVars['--persona-code-bg'] = resolveTokenValue(theme, code.background) ?? code.background;\n }\n\n // Interactive-state defaults. The default preset resolves container === surface,\n // which turns every hover/active rule that falls back to --persona-container\n // into a visual no-op; anchor those states one gray step down in that case.\n // Component config emitted above must keep winning, so only fill vars not set.\n const stateSurface = cssVars['--persona-surface'];\n const stateContainer = cssVars['--persona-container'];\n const gray100 = cssVars['--persona-palette-colors-gray-100'] ?? '#f3f4f6';\n const gray200 = cssVars['--persona-palette-colors-gray-200'] ?? '#e5e7eb';\n const gray300 = cssVars['--persona-palette-colors-gray-300'] ?? '#d1d5db';\n const flatTheme = !stateContainer || stateContainer === stateSurface;\n const hoverBgDefault = flatTheme ? gray100 : stateContainer;\n const activeBgDefault = flatTheme ? gray200 : stateContainer;\n cssVars['--persona-icon-btn-hover-bg'] = cssVars['--persona-icon-btn-hover-bg'] ?? hoverBgDefault;\n cssVars['--persona-icon-btn-active-bg'] = cssVars['--persona-icon-btn-active-bg'] ?? activeBgDefault;\n if (flatTheme) {\n cssVars['--persona-icon-btn-active-border'] =\n cssVars['--persona-icon-btn-active-border'] ?? gray300;\n }\n cssVars['--persona-label-btn-hover-bg'] = cssVars['--persona-label-btn-hover-bg'] ?? hoverBgDefault;\n cssVars['--persona-artifact-tab-hover-bg'] =\n cssVars['--persona-artifact-tab-hover-bg'] ?? hoverBgDefault;\n cssVars['--persona-artifact-card-hover-bg'] =\n cssVars['--persona-artifact-card-hover-bg'] ?? hoverBgDefault;\n\n return cssVars;\n}\n\nexport function applyThemeVariables(element: HTMLElement, theme: PersonaTheme): void {\n const cssVars = themeToCssVariables(theme);\n\n for (const [name, value] of Object.entries(cssVars)) {\n element.style.setProperty(name, value);\n }\n}\n\n/**\n * Stable `data-persona-theme-zone` values applied to key widget regions.\n * Visual editors should use `[data-persona-theme-zone=\"header\"]` selectors\n * rather than internal class names.\n */\nexport const THEME_ZONES = {\n header: 'Widget header bar',\n messages: 'Message list area',\n 'user-message': 'User message bubble',\n 'assistant-message': 'Assistant message bubble',\n composer: 'Footer / composer area',\n container: 'Main widget container',\n 'artifact-pane': 'Artifact sidebar',\n 'artifact-toolbar': 'Artifact toolbar',\n 'artifact-inline': 'Inline artifact block',\n 'artifact-inline-chrome': 'Inline artifact title bar',\n} as const;\n\nexport type ThemeZone = keyof typeof THEME_ZONES;\n","import type { DeepPartial, PersonaTheme } from '../types/theme';\nimport type { AgentWidgetConfig } from '../types';\nimport { createTheme, resolveTokens, themeToCssVariables } from './tokens';\nimport { deepMerge } from './deep-merge';\n\nexport type ColorScheme = 'light' | 'dark' | 'auto';\n\nexport interface PersonaWidgetConfig {\n theme?: DeepPartial<PersonaTheme>;\n darkTheme?: DeepPartial<PersonaTheme>;\n colorScheme?: ColorScheme;\n}\n\ntype WidgetConfig = PersonaWidgetConfig | AgentWidgetConfig;\n\nconst DARK_PALETTE = {\n colors: {\n primary: {\n 50: '#ffffff',\n 100: '#f5f5f5',\n 200: '#d4d4d4',\n 300: '#a3a3a3',\n 400: '#737373',\n 500: '#171717',\n 600: '#0f0f0f',\n 700: '#0a0a0a',\n 800: '#050505',\n 900: '#030303',\n 950: '#000000',\n },\n secondary: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065',\n },\n accent: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712',\n },\n success: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n warning: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n error: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n },\n};\n\n/**\n * Normalize theme config for merging; rejects non-objects.\n */\nconst normalizeThemeConfig = (\n theme: DeepPartial<PersonaTheme> | Record<string, unknown> | undefined\n): DeepPartial<PersonaTheme> | undefined => {\n if (!theme || typeof theme !== 'object' || Array.isArray(theme)) return undefined;\n return theme as DeepPartial<PersonaTheme>;\n};\n\nexport const detectColorScheme = (): 'light' | 'dark' => {\n if (typeof document !== 'undefined' && document.documentElement.classList.contains('dark')) {\n return 'dark';\n }\n\n if (typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n};\n\nconst getColorSchemeFromConfig = (config?: WidgetConfig): 'light' | 'dark' => {\n const colorScheme = config?.colorScheme ?? 'light';\n\n if (colorScheme === 'light') return 'light';\n if (colorScheme === 'dark') return 'dark';\n\n return detectColorScheme();\n};\n\nexport const getColorScheme = (config?: WidgetConfig): 'light' | 'dark' => {\n return getColorSchemeFromConfig(config);\n};\n\nexport const createLightTheme = (userConfig?: DeepPartial<PersonaTheme>): PersonaTheme => {\n return createTheme(userConfig);\n};\n\nexport const createDarkTheme = (userConfig?: DeepPartial<PersonaTheme>): PersonaTheme => {\n const baseTheme = createTheme(undefined, { validate: false });\n \n return createTheme(\n {\n ...userConfig,\n palette: {\n ...baseTheme.palette,\n colors: {\n ...DARK_PALETTE.colors,\n ...userConfig?.palette?.colors,\n },\n },\n },\n { validate: false }\n );\n};\n\nexport const getActiveTheme = (config?: WidgetConfig): PersonaTheme => {\n const scheme = getColorScheme(config);\n const lightThemeConfig = normalizeThemeConfig(config?.theme);\n const darkThemeConfig = normalizeThemeConfig(config?.darkTheme);\n\n if (scheme === 'dark') {\n return createDarkTheme(\n deepMerge(\n (lightThemeConfig ?? {}) as Record<string, unknown>,\n (darkThemeConfig ?? {}) as Record<string, unknown>\n ) as DeepPartial<PersonaTheme>\n );\n }\n\n return createLightTheme(lightThemeConfig);\n};\n\nexport const getCssVariables = (theme: PersonaTheme): Record<string, string> => {\n return themeToCssVariables(theme);\n};\n\nexport const applyThemeVariables = (\n element: HTMLElement,\n config?: WidgetConfig\n): void => {\n const theme = getActiveTheme(config);\n const cssVars = getCssVariables(theme);\n\n for (const [name, value] of Object.entries(cssVars)) {\n element.style.setProperty(name, value);\n }\n\n // Stamp the resolved scheme so stylesheet rules can key scheme-specific\n // defaults (e.g. the syntax-highlight palette) off the widget's own color\n // scheme instead of the OS prefers-color-scheme, which diverges whenever a\n // host pins colorScheme. Re-applied on every theme application, so live\n // config updates and theme-observer callbacks keep it current.\n element.setAttribute(\"data-persona-color-scheme\", getColorScheme(config));\n};\n\nexport const createThemeObserver = (\n callback: (scheme: 'light' | 'dark') => void\n): (() => void) => {\n const cleanupFns: Array<() => void> = [];\n\n if (typeof document !== 'undefined' && typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => {\n callback(detectColorScheme());\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n\n cleanupFns.push(() => observer.disconnect());\n }\n\n if (typeof window !== 'undefined' && window.matchMedia) {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = () => callback(detectColorScheme());\n\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handleChange);\n cleanupFns.push(() => mediaQuery.removeEventListener('change', handleChange));\n } else if (mediaQuery.addListener) {\n mediaQuery.addListener(handleChange);\n cleanupFns.push(() => mediaQuery.removeListener(handleChange));\n }\n }\n\n return () => {\n cleanupFns.forEach((fn) => fn());\n };\n};\n\nexport { createTheme, resolveTokens, themeToCssVariables };\n"],"mappings":"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","names":["launcher_global_exports","__export","CRITICAL_LAUNCHER_ATTR","mount","createElement","tag","className","element","positionMap","isDockedMountMode","config","Activity","ArrowDown","ArrowLeft","ArrowRight","ArrowUpRight","ArrowUp","AtSign","Ban","Bell","Bookmark","Bot","Building","CalendarDays","Calendar","Camera","Check","ChevronDown","ChevronLeft","ChevronRight","ChevronUp","CircleCheck","CircleX","ClipboardCopy","Clipboard","Clock","CodeXml","Copy","CreditCard","DollarSign","Download","EllipsisVertical","Ellipsis","EyeOff","ExternalLink","Eye","FileCode","FileSpreadsheet","FileText","File","Files","Film","Flag","FolderOpen","Folder","Funnel","Gift","Globe","Hash","Headphones","Heart","History","House","ImagePlus","Image","Info","Key","Link","LoaderCircle","Loader","Lock","Mail","MapPin","Maximize","Menu","MessageCircle","MessageSquare","Mic","Minimize","Minus","Monitor","Moon","Package","Paperclip","Pause","Pencil","Percent","Phone","Play","Plus","Receipt","RefreshCw","RotateCw","Save","Search","Send","Settings","Share","ShieldAlert","ShieldCheck","ShieldX","Shield","ShoppingBag","ShoppingCart","Smartphone","Sparkles","Square","Star","Store","Sun","Tag","ThumbsDown","ThumbsUp","Timer","Trash2","Trash","TriangleAlert","Truck","Upload","User","Volume2","VolumeX","Wallet","X","Zap","LUCIDE_ICONS","Activity","ArrowDown","ArrowUp","ArrowUpRight","Bot","ChevronDown","ChevronUp","ChevronRight","ChevronLeft","Check","Clipboard","ClipboardCopy","CodeXml","Copy","File","FileCode","FileSpreadsheet","FileText","ImagePlus","Loader","LoaderCircle","Mic","Paperclip","RefreshCw","Search","Send","ShieldAlert","ShieldCheck","ShieldX","Square","ThumbsDown","ThumbsUp","Upload","Volume2","X","User","Mail","Phone","Calendar","Clock","Building","MapPin","Lock","Key","CreditCard","AtSign","Hash","Globe","Link","CircleCheck","CircleX","TriangleAlert","Info","Ban","Shield","ArrowLeft","ArrowRight","ExternalLink","Ellipsis","EllipsisVertical","Menu","House","Plus","Minus","Pencil","Trash","Trash2","Save","Download","Share","Funnel","Settings","RotateCw","Maximize","Minimize","ShoppingCart","ShoppingBag","Package","Truck","Tag","Gift","Receipt","Wallet","Store","DollarSign","Percent","Play","Pause","VolumeX","Camera","Image","Film","Headphones","MessageCircle","MessageSquare","Bell","Heart","Star","Eye","EyeOff","Bookmark","CalendarDays","History","Timer","Folder","FolderOpen","Files","Sparkles","Zap","Sun","Moon","Flag","Monitor","Smartphone","renderLucideIcon","iconName","size","color","strokeWidth","iconData","createSvgFromIconData","svg","elementData","tagName","attrs","element","key","value","DEFAULT_OVERLAY_Z_INDEX","PORTALED_OVERLAY_Z_INDEX","createLauncherButton","config","onToggle","button","createElement","update","newConfig","launcher","dockedMode","isDockedMountMode","titleEl","t","subtitleEl","s","textContainer","icon","iconSize","iconSizeNum","iconSvg","renderLucideIcon","img","callToActionIconEl","callToActionIconSize","paddingTotal","containerSize","positionClass","positionMap","floatingBase","dockedBase","DEFAULT_OVERLAY_Z_INDEX","defaultBorder","defaultShadow","destroy","isObject","value","deepMerge","base","override","merged","key","existing","DEFAULT_FLOATING_LAUNCHER_WIDTH","DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH","DEFAULT_LAUNCHER_CONFIG","DEFAULT_PANEL_INSET","DEFAULT_PANEL_CANVAS_BACKGROUND","DEFAULT_PALETTE","DEFAULT_SEMANTIC","DEFAULT_COMPONENTS","DEFAULT_FLOATING_LAUNCHER_WIDTH","DEFAULT_FLOATING_LAUNCHER_MAX_WIDTH","resolveTokenValue","theme","path","parts","current","part","resolveTokens","resolved","resolveObject","obj","prefix","key","value","resolvedValue","validateTheme","errors","warnings","mergeRecords","base","override","result","existing","deepMergeComponents","createTheme","userConfig","options","baseTheme","validation","e","plugin","themeToCssVariables","cssVars","token","varName","headerTokens","introCardTokens","mdH1Size","mdH1Weight","mdH2Size","mdH2Weight","mdProseFont","components","iconBtn","labelBtn","toggleGrp","artifact","t","toolbarBg","code","stateSurface","stateContainer","gray100","gray200","gray300","flatTheme","hoverBgDefault","activeBgDefault","DARK_PALETTE","normalizeThemeConfig","theme","detectColorScheme","getColorSchemeFromConfig","config","colorScheme","getColorScheme","createLightTheme","userConfig","createTheme","createDarkTheme","baseTheme","getActiveTheme","scheme","lightThemeConfig","darkThemeConfig","deepMerge","getCssVariables","themeToCssVariables","applyThemeVariables","element","cssVars","name","value","CRITICAL_LAUNCHER_ATTR","resolveTarget","target","el","mergeCriticalLauncherConfig","config","DEFAULT_LAUNCHER_CONFIG","mount","options","onOpen","root","applyThemeVariables","launcher","createLauncherButton","next","merged"]}