@json-to-office/jto 1.2.0 → 1.6.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 (58) hide show
  1. package/dist/cli.js +178 -31
  2. package/dist/cli.js.map +1 -1
  3. package/dist/client/assets/{HomePage-jkIz_s7u.js → HomePage-CeUQIXch.js} +44 -44
  4. package/dist/client/assets/HomePage-CeUQIXch.js.map +1 -0
  5. package/dist/client/assets/{JsonEditorPage-DR8UoROz.js → JsonEditorPage-4LrF2fB9.js} +3 -3
  6. package/dist/client/assets/{JsonEditorPage-DR8UoROz.js.map → JsonEditorPage-4LrF2fB9.js.map} +1 -1
  7. package/dist/client/assets/{MonacoPluginProvider-CE5NPGwN.js → MonacoPluginProvider-Bx_V_FaE.js} +3 -3
  8. package/dist/client/assets/MonacoPluginProvider-Bx_V_FaE.js.map +1 -0
  9. package/dist/client/assets/editor-D-REaAU9.js +9 -0
  10. package/dist/client/assets/editor-D-REaAU9.js.map +1 -0
  11. package/dist/client/assets/editor-monaco-json-BgziSLMV.js +24 -0
  12. package/dist/client/assets/editor-monaco-json-BgziSLMV.js.map +1 -0
  13. package/dist/client/assets/editor-refs-store-vzLK2-Zo.js +2 -0
  14. package/dist/client/assets/{editor-refs-store-DKOJcTAk.js.map → editor-refs-store-vzLK2-Zo.js.map} +1 -1
  15. package/dist/client/assets/index-B7bDnXoC.js +5 -0
  16. package/dist/client/assets/index-B7bDnXoC.js.map +1 -0
  17. package/dist/client/assets/index-CrzIwHLS.css +1 -0
  18. package/dist/client/assets/preview-BGqIip90.js +2 -0
  19. package/dist/client/assets/preview-BGqIip90.js.map +1 -0
  20. package/dist/client/assets/{ui-vendor-DpjQWJgX.js → ui-vendor-Bq4-oNFL.js} +92 -57
  21. package/dist/client/assets/ui-vendor-Bq4-oNFL.js.map +1 -0
  22. package/dist/client/assets/useQualityAnalysis-CowAaoA9.js +6 -0
  23. package/dist/client/assets/useQualityAnalysis-CowAaoA9.js.map +1 -0
  24. package/dist/client/index.html +3 -3
  25. package/dist/client/templates/data-report-presentation.pptx.json +22 -22
  26. package/dist/client/templates/media/vermilion-annual-report/fonts/ClashDisplay-Bold.otf +0 -0
  27. package/dist/client/templates/media/vermilion-annual-report/fonts/ClashDisplay-Light.otf +0 -0
  28. package/dist/client/templates/media/vermilion-annual-report/fonts/ClashDisplay-Medium.otf +0 -0
  29. package/dist/client/templates/media/vermilion-annual-report/fonts/ClashDisplay-Regular.otf +0 -0
  30. package/dist/client/templates/media/vermilion-annual-report/fonts/ClashDisplay-Semibold.otf +0 -0
  31. package/dist/client/templates/media/vermilion-annual-report/fonts/FFL.txt +132 -0
  32. package/dist/client/templates/minimalist-pitch-deck.pptx.json +52 -52
  33. package/dist/client/templates/modern-annual-report-1.docx.json +2 -2
  34. package/dist/client/templates/modern-annual-report-2.docx.json +2 -2
  35. package/dist/client/templates/modern-annual-report-3.docx.json +1 -1
  36. package/dist/client/templates/tech-report.docx.json +8 -8
  37. package/dist/client/templates/themes/corporate.pptx.theme.json +12 -2
  38. package/dist/client/templates/themes/minimal.pptx.theme.json +12 -2
  39. package/dist/client/templates/themes/vibrant.pptx.theme.json +12 -2
  40. package/dist/client/templates/vermilion-annual-report.docx.json +10541 -0
  41. package/package.json +8 -7
  42. package/dist/client/assets/HomePage-jkIz_s7u.js.map +0 -1
  43. package/dist/client/assets/MonacoPluginProvider-CE5NPGwN.js.map +0 -1
  44. package/dist/client/assets/editor-edmvhW9F.js +0 -9
  45. package/dist/client/assets/editor-edmvhW9F.js.map +0 -1
  46. package/dist/client/assets/editor-monaco-json-CAlvfPc7.js +0 -24
  47. package/dist/client/assets/editor-monaco-json-CAlvfPc7.js.map +0 -1
  48. package/dist/client/assets/editor-refs-store-DKOJcTAk.js +0 -2
  49. package/dist/client/assets/index-CNvLzaJ7.css +0 -1
  50. package/dist/client/assets/index-DLlW4q4v.js +0 -5
  51. package/dist/client/assets/index-DLlW4q4v.js.map +0 -1
  52. package/dist/client/assets/preview-zo-CHAU0.js +0 -2
  53. package/dist/client/assets/preview-zo-CHAU0.js.map +0 -1
  54. package/dist/client/assets/ui-vendor-DpjQWJgX.js.map +0 -1
  55. package/dist/client/templates/Alternative deck 16_9.pptx.json +0 -3103
  56. package/dist/client/templates/Brand template 16_9.pptx.json +0 -2013
  57. package/dist/client/templates/Company deck 16_9.pptx.json +0 -6384
  58. package/dist/client/templates/Company deck 4_3.pptx.json +0 -5426
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-vendor-Bq4-oNFL.js","sources":["../../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/shared/src/utils.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/book-open.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/box.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/braces.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/chart-column.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/check.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-check-big.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-check.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle-x.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/circle.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/code-xml.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/copy.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/crosshair.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/ellipsis.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/eye.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-code-2.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-diff.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-json.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-text.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/folder-tree.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/git-compare-arrows.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/grip-vertical.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/hash.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/heading.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/image.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/info.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/layers.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/list-tree.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/list.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/map-pin.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/message-square.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/moon.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/package.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/palette.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/panel-left-close.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/panel-left-open.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/panel-left.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/paperclip.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/pencil.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/pilcrow.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/play.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/plus.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/presentation.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/save.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/search.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/send.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/shield-alert.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/sparkles.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/square.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/sun.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/table.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/trash-2.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/type.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/upload.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/wand-sparkles.js","../../../../../node_modules/.pnpm/lucide-react@0.468.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/x.js","../../../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst BookOpen = createLucideIcon(\"BookOpen\", [\n [\"path\", { d: \"M12 7v14\", key: \"1akyts\" }],\n [\n \"path\",\n {\n d: \"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z\",\n key: \"ruj8y\"\n }\n ]\n]);\n\nexport { BookOpen as default };\n//# sourceMappingURL=book-open.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Box = createLucideIcon(\"Box\", [\n [\n \"path\",\n {\n d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n key: \"hh9hay\"\n }\n ],\n [\"path\", { d: \"m3.3 7 8.7 5 8.7-5\", key: \"g66t2b\" }],\n [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }]\n]);\n\nexport { Box as default };\n//# sourceMappingURL=box.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Braces = createLucideIcon(\"Braces\", [\n [\n \"path\",\n { d: \"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1\", key: \"ezmyqa\" }\n ],\n [\n \"path\",\n {\n d: \"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\",\n key: \"e1hn23\"\n }\n ]\n]);\n\nexport { Braces as default };\n//# sourceMappingURL=braces.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChartColumn = createLucideIcon(\"ChartColumn\", [\n [\"path\", { d: \"M3 3v16a2 2 0 0 0 2 2h16\", key: \"c24i48\" }],\n [\"path\", { d: \"M18 17V9\", key: \"2bz60n\" }],\n [\"path\", { d: \"M13 17V5\", key: \"1frdt8\" }],\n [\"path\", { d: \"M8 17v-3\", key: \"17ska0\" }]\n]);\n\nexport { ChartColumn as default };\n//# sourceMappingURL=chart-column.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronDown = createLucideIcon(\"ChevronDown\", [\n [\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]\n]);\n\nexport { ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronUp = createLucideIcon(\"ChevronUp\", [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]);\n\nexport { ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheckBig = createLucideIcon(\"CircleCheckBig\", [\n [\"path\", { d: \"M21.801 10A10 10 0 1 1 17 3.335\", key: \"yps3ct\" }],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n]);\n\nexport { CircleCheckBig as default };\n//# sourceMappingURL=circle-check-big.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleCheck = createLucideIcon(\"CircleCheck\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n]);\n\nexport { CircleCheck as default };\n//# sourceMappingURL=circle-check.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleX = createLucideIcon(\"CircleX\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"m9 9 6 6\", key: \"z0biqf\" }]\n]);\n\nexport { CircleX as default };\n//# sourceMappingURL=circle-x.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Circle = createLucideIcon(\"Circle\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n]);\n\nexport { Circle as default };\n//# sourceMappingURL=circle.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CodeXml = createLucideIcon(\"CodeXml\", [\n [\"path\", { d: \"m18 16 4-4-4-4\", key: \"1inbqp\" }],\n [\"path\", { d: \"m6 8-4 4 4 4\", key: \"15zrgr\" }],\n [\"path\", { d: \"m14.5 4-5 16\", key: \"e7oirm\" }]\n]);\n\nexport { CodeXml as default };\n//# sourceMappingURL=code-xml.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Crosshair = createLucideIcon(\"Crosshair\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"22\", x2: \"18\", y1: \"12\", y2: \"12\", key: \"l9bcsi\" }],\n [\"line\", { x1: \"6\", x2: \"2\", y1: \"12\", y2: \"12\", key: \"13hhkx\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"6\", y2: \"2\", key: \"10w3f3\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"22\", y2: \"18\", key: \"15g9kq\" }]\n]);\n\nexport { Crosshair as default };\n//# sourceMappingURL=crosshair.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Ellipsis = createLucideIcon(\"Ellipsis\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"19\", cy: \"12\", r: \"1\", key: \"1wjl8i\" }],\n [\"circle\", { cx: \"5\", cy: \"12\", r: \"1\", key: \"1pcz8c\" }]\n]);\n\nexport { Ellipsis as default };\n//# sourceMappingURL=ellipsis.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\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 key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\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 key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\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 key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileCode2 = createLucideIcon(\"FileCode2\", [\n [\"path\", { d: \"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\", key: \"1pf5j1\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"m5 12-3 3 3 3\", key: \"oke12k\" }],\n [\"path\", { d: \"m9 18 3-3-3-3\", key: \"112psh\" }]\n]);\n\nexport { FileCode2 as default };\n//# sourceMappingURL=file-code-2.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileDiff = createLucideIcon(\"FileDiff\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M9 10h6\", key: \"9gxzsh\" }],\n [\"path\", { d: \"M12 13V7\", key: \"h0r20n\" }],\n [\"path\", { d: \"M9 17h6\", key: \"r8uit2\" }]\n]);\n\nexport { FileDiff as default };\n//# sourceMappingURL=file-diff.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileJson = createLucideIcon(\"FileJson\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\n \"path\",\n { d: \"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1\", key: \"1oajmo\" }\n ],\n [\n \"path\",\n { d: \"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1\", key: \"mpwhp6\" }\n ]\n]);\n\nexport { FileJson as default };\n//# sourceMappingURL=file-json.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FolderTree = createLucideIcon(\"FolderTree\", [\n [\n \"path\",\n {\n d: \"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\n key: \"hod4my\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z\",\n key: \"w4yl2u\"\n }\n ],\n [\"path\", { d: \"M3 5a2 2 0 0 0 2 2h3\", key: \"f2jnh7\" }],\n [\"path\", { d: \"M3 3v13a2 2 0 0 0 2 2h3\", key: \"k8epm1\" }]\n]);\n\nexport { FolderTree as default };\n//# sourceMappingURL=folder-tree.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GitCompareArrows = createLucideIcon(\"GitCompareArrows\", [\n [\"circle\", { cx: \"5\", cy: \"6\", r: \"3\", key: \"1qnov2\" }],\n [\"path\", { d: \"M12 6h5a2 2 0 0 1 2 2v7\", key: \"1yj91y\" }],\n [\"path\", { d: \"m15 9-3-3 3-3\", key: \"1lwv8l\" }],\n [\"circle\", { cx: \"19\", cy: \"18\", r: \"3\", key: \"1qljk2\" }],\n [\"path\", { d: \"M12 18H7a2 2 0 0 1-2-2V9\", key: \"16sdep\" }],\n [\"path\", { d: \"m9 15 3 3-3 3\", key: \"1m3kbl\" }]\n]);\n\nexport { GitCompareArrows as default };\n//# sourceMappingURL=git-compare-arrows.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst GripVertical = createLucideIcon(\"GripVertical\", [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n]);\n\nexport { GripVertical as default };\n//# sourceMappingURL=grip-vertical.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Hash = createLucideIcon(\"Hash\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"9\", y2: \"9\", key: \"4lhtct\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"15\", y2: \"15\", key: \"vyu0kd\" }],\n [\"line\", { x1: \"10\", x2: \"8\", y1: \"3\", y2: \"21\", key: \"1ggp8o\" }],\n [\"line\", { x1: \"16\", x2: \"14\", y1: \"3\", y2: \"21\", key: \"weycgp\" }]\n]);\n\nexport { Hash as default };\n//# sourceMappingURL=hash.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Heading = createLucideIcon(\"Heading\", [\n [\"path\", { d: \"M6 12h12\", key: \"8npq4p\" }],\n [\"path\", { d: \"M6 20V4\", key: \"1w1bmo\" }],\n [\"path\", { d: \"M18 20V4\", key: \"o2hl4u\" }]\n]);\n\nexport { Heading as default };\n//# sourceMappingURL=heading.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Image = createLucideIcon(\"Image\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n]);\n\nexport { Image as default };\n//# sourceMappingURL=image.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Layers = createLucideIcon(\"Layers\", [\n [\n \"path\",\n {\n d: \"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\",\n key: \"zw3jo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\",\n key: \"1wduqc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\",\n key: \"kqbvx6\"\n }\n ]\n]);\n\nexport { Layers as default };\n//# sourceMappingURL=layers.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListTree = createLucideIcon(\"ListTree\", [\n [\"path\", { d: \"M21 12h-8\", key: \"1bmf0i\" }],\n [\"path\", { d: \"M21 6H8\", key: \"1pqkrb\" }],\n [\"path\", { d: \"M21 18h-8\", key: \"1tm79t\" }],\n [\"path\", { d: \"M3 6v4c0 1.1.9 2 2 2h3\", key: \"1ywdgy\" }],\n [\"path\", { d: \"M3 10v6c0 1.1.9 2 2 2h3\", key: \"2wc746\" }]\n]);\n\nexport { ListTree as default };\n//# sourceMappingURL=list-tree.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst List = createLucideIcon(\"List\", [\n [\"path\", { d: \"M3 12h.01\", key: \"nlz23k\" }],\n [\"path\", { d: \"M3 18h.01\", key: \"1tta3j\" }],\n [\"path\", { d: \"M3 6h.01\", key: \"1rqtza\" }],\n [\"path\", { d: \"M8 12h13\", key: \"1za7za\" }],\n [\"path\", { d: \"M8 18h13\", key: \"1lx6n3\" }],\n [\"path\", { d: \"M8 6h13\", key: \"ik3vkj\" }]\n]);\n\nexport { List as default };\n//# sourceMappingURL=list.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst LoaderCircle = createLucideIcon(\"LoaderCircle\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]\n]);\n\nexport { LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MapPin = createLucideIcon(\"MapPin\", [\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 key: \"1r0f0z\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"10\", r: \"3\", key: \"ilqhr7\" }]\n]);\n\nexport { MapPin as default };\n//# sourceMappingURL=map-pin.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MessageSquare = createLucideIcon(\"MessageSquare\", [\n [\"path\", { d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\", key: \"1lielz\" }]\n]);\n\nexport { MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Moon = createLucideIcon(\"Moon\", [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\", key: \"a7tn18\" }]\n]);\n\nexport { Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Package = createLucideIcon(\"Package\", [\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 key: \"1a0edw\"\n }\n ],\n [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }],\n [\"path\", { d: \"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7\", key: \"yx3hmr\" }],\n [\"path\", { d: \"m7.5 4.27 9 5.15\", key: \"1c824w\" }]\n]);\n\nexport { Package as default };\n//# sourceMappingURL=package.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Palette = createLucideIcon(\"Palette\", [\n [\"circle\", { cx: \"13.5\", cy: \"6.5\", r: \".5\", fill: \"currentColor\", key: \"1okk4w\" }],\n [\"circle\", { cx: \"17.5\", cy: \"10.5\", r: \".5\", fill: \"currentColor\", key: \"f64h9f\" }],\n [\"circle\", { cx: \"8.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"fotxhn\" }],\n [\"circle\", { cx: \"6.5\", cy: \"12.5\", r: \".5\", fill: \"currentColor\", key: \"qy21gx\" }],\n [\n \"path\",\n {\n d: \"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z\",\n key: \"12rzf8\"\n }\n ]\n]);\n\nexport { Palette as default };\n//# sourceMappingURL=palette.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeftClose = createLucideIcon(\"PanelLeftClose\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"m16 15-3-3 3-3\", key: \"14y99z\" }]\n]);\n\nexport { PanelLeftClose as default };\n//# sourceMappingURL=panel-left-close.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeftOpen = createLucideIcon(\"PanelLeftOpen\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"m14 9 3 3-3 3\", key: \"8010ee\" }]\n]);\n\nexport { PanelLeftOpen as default };\n//# sourceMappingURL=panel-left-open.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Paperclip = createLucideIcon(\"Paperclip\", [\n [\"path\", { d: \"M13.234 20.252 21 12.3\", key: \"1cbrk9\" }],\n [\n \"path\",\n {\n d: \"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486\",\n key: \"1pkts6\"\n }\n ]\n]);\n\nexport { Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pencil = createLucideIcon(\"Pencil\", [\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 key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n]);\n\nexport { Pencil as default };\n//# sourceMappingURL=pencil.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pilcrow = createLucideIcon(\"Pilcrow\", [\n [\"path\", { d: \"M13 4v16\", key: \"8vvj80\" }],\n [\"path\", { d: \"M17 4v16\", key: \"7dpous\" }],\n [\"path\", { d: \"M19 4H9.5a4.5 4.5 0 0 0 0 9H13\", key: \"sh4n9v\" }]\n]);\n\nexport { Pilcrow as default };\n//# sourceMappingURL=pilcrow.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Play = createLucideIcon(\"Play\", [\n [\"polygon\", { points: \"6 3 20 12 6 21 6 3\", key: \"1oa8hb\" }]\n]);\n\nexport { Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"Plus\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Presentation = createLucideIcon(\"Presentation\", [\n [\"path\", { d: \"M2 3h20\", key: \"91anmk\" }],\n [\"path\", { d: \"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3\", key: \"2k9sn8\" }],\n [\"path\", { d: \"m7 21 5-5 5 5\", key: \"bip4we\" }]\n]);\n\nexport { Presentation as default };\n//# sourceMappingURL=presentation.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCcw = createLucideIcon(\"RotateCcw\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n]);\n\nexport { RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Save = createLucideIcon(\"Save\", [\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 key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n]);\n\nexport { Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Search = createLucideIcon(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\nexport { Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Send = createLucideIcon(\"Send\", [\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 key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldAlert = createLucideIcon(\"ShieldAlert\", [\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 key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n]);\n\nexport { ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst SlidersHorizontal = createLucideIcon(\"SlidersHorizontal\", [\n [\"line\", { x1: \"21\", x2: \"14\", y1: \"4\", y2: \"4\", key: \"obuewd\" }],\n [\"line\", { x1: \"10\", x2: \"3\", y1: \"4\", y2: \"4\", key: \"1q6298\" }],\n [\"line\", { x1: \"21\", x2: \"12\", y1: \"12\", y2: \"12\", key: \"1iu8h1\" }],\n [\"line\", { x1: \"8\", x2: \"3\", y1: \"12\", y2: \"12\", key: \"ntss68\" }],\n [\"line\", { x1: \"21\", x2: \"16\", y1: \"20\", y2: \"20\", key: \"14d8ph\" }],\n [\"line\", { x1: \"12\", x2: \"3\", y1: \"20\", y2: \"20\", key: \"m0wm8r\" }],\n [\"line\", { x1: \"14\", x2: \"14\", y1: \"2\", y2: \"6\", key: \"14e1ph\" }],\n [\"line\", { x1: \"8\", x2: \"8\", y1: \"10\", y2: \"14\", key: \"1i6ji0\" }],\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"18\", y2: \"22\", key: \"1lctlv\" }]\n]);\n\nexport { SlidersHorizontal as default };\n//# sourceMappingURL=sliders-horizontal.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sparkles = createLucideIcon(\"Sparkles\", [\n [\n \"path\",\n {\n d: \"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\",\n key: \"4pj2yx\"\n }\n ],\n [\"path\", { d: \"M20 3v4\", key: \"1olli1\" }],\n [\"path\", { d: \"M22 5h-4\", key: \"1gvqau\" }],\n [\"path\", { d: \"M4 17v2\", key: \"vumght\" }],\n [\"path\", { d: \"M5 18H3\", key: \"zchphs\" }]\n]);\n\nexport { Sparkles as default };\n//# sourceMappingURL=sparkles.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Square = createLucideIcon(\"Square\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n]);\n\nexport { Square as default };\n//# sourceMappingURL=square.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sun = createLucideIcon(\"Sun\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n]);\n\nexport { Sun as default };\n//# sourceMappingURL=sun.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Table = createLucideIcon(\"Table\", [\n [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }],\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 9h18\", key: \"1pudct\" }],\n [\"path\", { d: \"M3 15h18\", key: \"5xshup\" }]\n]);\n\nexport { Table as default };\n//# sourceMappingURL=table.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Trash2 = createLucideIcon(\"Trash2\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }],\n [\"line\", { x1: \"10\", x2: \"10\", y1: \"11\", y2: \"17\", key: \"1uufr5\" }],\n [\"line\", { x1: \"14\", x2: \"14\", y1: \"11\", y2: \"17\", key: \"xtxkd\" }]\n]);\n\nexport { Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n 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 key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Type = createLucideIcon(\"Type\", [\n [\"polyline\", { points: \"4 7 4 4 20 4 20 7\", key: \"1nosan\" }],\n [\"line\", { x1: \"9\", x2: \"15\", y1: \"20\", y2: \"20\", key: \"swin9y\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"4\", y2: \"20\", key: \"1tx1rr\" }]\n]);\n\nexport { Type as default };\n//# sourceMappingURL=type.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Upload = createLucideIcon(\"Upload\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n]);\n\nexport { Upload as default };\n//# sourceMappingURL=upload.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst WandSparkles = createLucideIcon(\"WandSparkles\", [\n [\n \"path\",\n {\n d: \"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\",\n key: \"ul74o6\"\n }\n ],\n [\"path\", { d: \"m14 7 3 3\", key: \"1r5n42\" }],\n [\"path\", { d: \"M5 6v4\", key: \"ilb8ba\" }],\n [\"path\", { d: \"M19 14v4\", key: \"blhpug\" }],\n [\"path\", { d: \"M10 2v2\", key: \"7u0qdc\" }],\n [\"path\", { d: \"M7 8H3\", key: \"zfb6yr\" }],\n [\"path\", { d: \"M21 16h-4\", key: \"1cnmox\" }],\n [\"path\", { d: \"M11 3H9\", key: \"1obp7u\" }]\n]);\n\nexport { WandSparkles as default };\n//# sourceMappingURL=wand-sparkles.js.map\n","/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n"],"names":["r","e","t","f","n","o","clsx","toKebabCase","string","mergeClasses","classes","className","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","BookOpen","Box","Braces","ChartColumn","Check","ChevronDown","ChevronRight","ChevronUp","CircleAlert","CircleCheckBig","CircleCheck","CircleX","Circle","CodeXml","Copy","Crosshair","Ellipsis","EyeOff","Eye","FileCode2","FileDiff","FileJson","FileText","FolderTree","GitCompareArrows","GripVertical","Hash","Heading","Image","Info","Layers","ListTree","List","LoaderCircle","MapPin","MessageSquare","Moon","Package","Palette","PanelLeftClose","PanelLeftOpen","PanelLeft","Paperclip","Pencil","Pilcrow","Play","Plus","Presentation","RotateCcw","Save","Search","Send","ShieldAlert","SlidersHorizontal","Sparkles","Square","Sun","Table","Trash2","TriangleAlert","Type","Upload","WandSparkles","X","falsyToString","value","cx","cva","base","config","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69]}
@@ -0,0 +1,6 @@
1
+ import{r as p}from"./react-vendor-BmQ2Ko_D.js";import{p as z,F as S,A as J}from"./index-B7bDnXoC.js";import{b as Y,f as G,d as T}from"./MonacoPluginProvider-Bx_V_FaE.js";import{l as K}from"./HomePage-CeUQIXch.js";const V=["error","warning","info"],N={error:0,warning:1,info:2},O=3;function b(e){return typeof e=="string"&&e in N?N[e]:O}const W=["deterministic","measured","estimated","rendered","evaluative"],X=["add","replace","remove","move","copy","test"],Z="other";function m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function H(e){return m(e)}function y(e){return typeof e=="string"?e:void 0}function A(e){return typeof e=="string"&&V.includes(e)?e:void 0}function B(e){return typeof e=="string"&&W.includes(e)?e:void 0}function ee(e){if(!Array.isArray(e))return;const t=e.filter(r=>typeof r=="string");return t.length>0?t:void 0}function te(e){return m(e)?e:void 0}function re(e){if(!Array.isArray(e))return;const t=[];for(const r of e){if(!m(r))continue;const n=r.op,o=r.path;if(typeof n!="string"||typeof o!="string"||!X.includes(n))continue;const s={op:n,path:o};"value"in r&&(s.value=r.value);const i=y(r.from);i!==void 0&&(s.from=i),t.push(s)}return t.length>0?t:void 0}function ne(e,t){if(!t)return e;const r=`[${t}] `;return e.startsWith(r)?e.slice(r.length):e}function oe(e,t,r){return`${e||"quality"}:${t}:${r}`}function Q(e,t){const r=y(e.code)??"",n=y(e.message)??"";if(!r&&!n)return;const o=y(e.path)??"",s={id:oe(r,o,t),code:r,message:ne(n,r)||r,path:o,severity:e.severity},i=y(e.ruleId);i!==void 0&&(s.ruleId=i);const l=y(e.category);l!==void 0&&(s.category=l);const a=B(e.certainty);a!==void 0&&(s.certainty=a),typeof e.blocking=="boolean"&&(s.blocking=e.blocking);const u=y(e.suggestion);u!==void 0&&(s.suggestion=u);const g=ee(e.relatedPaths);g!==void 0&&(s.relatedPaths=g);const I=te(e.evidence);I!==void 0&&(s.evidence=I);const c=re(e.fixes);return c!==void 0&&(s.fixes=c),s}function Ae(e){const t=[],r=[];if(!Array.isArray(e))return{findings:t,others:r};for(const n of e){if(!H(n))continue;if(n.component!=="quality"){r.push(n);continue}const o=m(n.context)?n.context:{},s=A(o.originalSeverity)??A(n.severity)??"warning",i=Q({code:o.code,message:n.message,path:o.path,severity:s,ruleId:o.ruleId,category:o.category,certainty:o.certainty,blocking:o.blocking,suggestion:o.suggestion,relatedPaths:o.relatedPaths,evidence:o.evidence,fixes:o.fixes},t.length);i&&t.push(i)}return{findings:t,others:r}}function M(e){if(!m(e))return[];const t=e.diagnostics;if(!Array.isArray(t))return[];const r=[];for(const n of t){if(!m(n))continue;const o=Q({code:n.code,message:n.message,path:n.path,severity:A(n.severity)??"warning",ruleId:n.ruleId,category:n.category,certainty:n.certainty,blocking:n.blocking,suggestion:n.suggestion,relatedPaths:n.relatedPaths,evidence:n.evidence,fixes:n.fixes},r.length);o&&r.push(o)}return r}function _(e){const t={error:0,warning:0,info:0};if(!Array.isArray(e))return t;for(const r of e){const n=A(r==null?void 0:r.severity);n&&(t[n]+=1)}return t}function ie(e,t){const r=b(e==null?void 0:e.severity),n=b(t==null?void 0:t.severity);if(r!==n)return r-n;const o=(e==null?void 0:e.path)??"",s=(t==null?void 0:t.path)??"";if(o!==s)return o<s?-1:1;const i=(e==null?void 0:e.code)??"",l=(t==null?void 0:t.code)??"";return i===l?0:i<l?-1:1}function xe(e){const t=new Map;if(!Array.isArray(e))return[];for(const n of e){if(!n)continue;const o=n.category||Z,s=t.get(o);s?s.push(n):t.set(o,[n])}const r=n=>n.reduce((o,s)=>{const i=b(s.severity);return i<o?i:o},O);return Array.from(t.entries()).map(([n,o])=>({category:n,findings:[...o].sort(ie)})).sort((n,o)=>{const s=r(n.findings)-r(o.findings);return s!==0?s:n.category===o.category?0:n.category<o.category?-1:1})}function Ee(e,t){if(!Array.isArray(e))return[];const r=A(t)?b(t):O;return e.filter(n=>b(n==null?void 0:n.severity)<=r)}function Se(e){const t=B(e);if(t)return t.charAt(0).toUpperCase()+t.slice(1)}const Ie=`{
2
+ "rules": {},
3
+ "suppressions": []
4
+ }
5
+ `,se=new Set(["error","warning","info"]);function k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ae(e){const t=(e??"").trim();if(!t)return{ok:!0,policy:void 0};let r;try{r=JSON.parse(t)}catch(a){return{ok:!1,error:`Not valid JSON: ${a.message}`}}if(!k(r))return{ok:!1,error:"A policy must be a JSON object."};if("gate"in r)return{ok:!1,error:'Remove "gate" — it is set by the Gate control above.'};if("profile"in r)return{ok:!1,error:'Remove "profile" — it is set by the Profile control above.'};const n=new Set(["rules","suppressions","maxDiagnostics","onRuleError"]),o=Object.keys(r).find(a=>!n.has(a));if(o!==void 0)return{ok:!1,error:`Unknown key "${o}". A policy takes: ${[...n].join(", ")}.`};const s=new Set(z().map(a=>a.id)),i={};if(r.rules!==void 0){if(!k(r.rules))return{ok:!1,error:'"rules" must be an object keyed by rule id.'};for(const[a,u]of Object.entries(r.rules)){if(!s.has(a))return{ok:!1,error:`Unknown rule "${a}". This format ships: ${[...s].join(", ")}.`};if(!k(u))return{ok:!1,error:`Rule "${a}" must be an object, e.g. { "severity": "warning" }.`};if(u.severity!==void 0&&!se.has(u.severity))return{ok:!1,error:`Rule "${a}" has an invalid severity. Use "error", "warning" or "info".`};if(u.enabled!==void 0&&typeof u.enabled!="boolean")return{ok:!1,error:`Rule "${a}": "enabled" must be true or false.`};if(u.parameters!==void 0&&!k(u.parameters))return{ok:!1,error:`Rule "${a}": "parameters" must be an object.`}}i.rules=r.rules}if(r.suppressions!==void 0){if(!Array.isArray(r.suppressions))return{ok:!1,error:'"suppressions" must be an array.'};for(const[a,u]of r.suppressions.entries()){if(!k(u))return{ok:!1,error:`Suppression ${a} must be an object.`};if(typeof u.reason!="string"||!u.reason.trim())return{ok:!1,error:`Suppression ${a} needs a "reason" saying why the finding is acceptable.`};if(u.pathMatch!==void 0&&u.pathMatch!=="exact"&&u.pathMatch!=="subtree")return{ok:!1,error:`Suppression ${a}: "pathMatch" must be "exact" or "subtree".`}}i.suppressions=r.suppressions}if(r.maxDiagnostics!==void 0){if(!Number.isInteger(r.maxDiagnostics)||r.maxDiagnostics<0)return{ok:!1,error:'"maxDiagnostics" must be a whole number, zero or more.'};i.maxDiagnostics=r.maxDiagnostics}if(r.onRuleError!==void 0){if(r.onRuleError!=="continue"&&r.onRuleError!=="throw")return{ok:!1,error:'"onRuleError" must be "continue" or "throw".'};i.onRuleError=r.onRuleError}return{ok:!0,policy:(i.rules===void 0||Object.keys(i.rules).length===0)&&(i.suppressions===void 0||i.suppressions.length===0)&&i.maxDiagnostics===void 0&&i.onRuleError===void 0?void 0:i}}const ce={docx:[{id:"executive-report",label:"Executive report",description:"Short decision document with strict outline continuity"},{id:"technical-report",label:"Technical report",description:"Portable professional report defaults"},{id:"legal-appendix",label:"Legal appendix",description:"Dense appendix: preserve integrity without editorial taste"}],pptx:[{id:"executive-presentation",label:"Executive presentation",description:"Decision deck optimized for scan speed and projection"},{id:"technical-presentation",label:"Technical presentation",description:"Portable professional presentation defaults"}]};function ue(e){const t=e==null?void 0:e[S];return U(t)?t:void 0}function U(e){return e!==void 0&&ce[S].some(t=>t.id===e)}function le(e,t,r){const n={};U(e)&&(n.profile={id:e,formats:[S]});const o=ae(r),s=o.ok?o.policy:void 0,i=t==="error"||t==="warning"||t==="info";return(s||i)&&(n.policy={...s??{},...i&&{gate:t}}),n.profile||n.policy?n:void 0}let L=0;function fe(){return L+=1,L}function de(e,t){return e!=null&&e.seq>t}const pe=1500;async function ye(e){if(K(e.headers.get("content-type")))try{return await e.json()}catch{return}}function ge(e){if(!e||typeof e!="object")return{};const t=e;return{...typeof t.profileId=="string"?{profileId:t.profileId}:{},...typeof t.blocked=="boolean"?{blocked:t.blocked}:{},...typeof t.truncated=="boolean"?{truncated:t.truncated}:{}}}function ve(e,t){return t!=null&&t.error?t.error:`Quality analysis failed (${e.status}${e.statusText?` ${e.statusText}`:""}).`}function we(){const e=Y(c=>c.setOutput),t=p.useContext(G),r=T(c=>c.qualityProfileIds),n=ue(r),o=T(c=>c.qualityGate),s=T(c=>{var f;return(f=c.qualityPolicies)==null?void 0:f[S]}),i=p.useRef(null),l=p.useRef(null),a=p.useCallback(()=>{var c;i.current!==null&&(clearTimeout(i.current),i.current=null),(c=l.current)==null||c.abort(),l.current=null},[]);p.useEffect(()=>a,[a]);const u=p.useCallback((c,f)=>{de(t.getState().quality,c)||e({quality:f})},[t,e]),g=p.useCallback(async(c,f)=>{var D,$;let v;try{v=JSON.parse(f)}catch{return}(D=l.current)==null||D.abort();const x=new AbortController;l.current=x;const h=fe(),P=le(n,o,s);try{const w=await fetch(J.validate,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonDefinition:v,options:P?{quality:P}:{}}),signal:x.signal}),d=await ye(w);if(x.signal.aborted)return;if(!w.ok){const q=ve(w,d);if((d==null?void 0:d.code)==="QUALITY_GATE_FAILED"){const F=M(d.quality);u(h,{findings:F,counts:_(F),documentName:c,seq:h,blocked:!0,source:"validate",analyzedAt:Date.now(),gateError:q});return}const R=t.getState().quality,E=R&&R.documentName===c?R:void 0;u(h,{...E??{findings:[],counts:{error:0,warning:0,info:0},source:"validate"},documentName:c,seq:h,analyzedAt:Date.now(),blocked:(E==null?void 0:E.blocked)??!1,gateError:void 0,analysisError:q});return}const j=($=d==null?void 0:d.data)==null?void 0:$.qualityAnalysis,C=M(j);u(h,{findings:C,counts:_(C),...ge(j),documentName:c,seq:h,source:"validate",analyzedAt:Date.now()})}catch{}finally{l.current===x&&(l.current=null)}},[u,o,t,s,n]);return{analyze:p.useCallback((c,f,v)=>{if(i.current!==null&&(clearTimeout(i.current),i.current=null),v!=null&&v.immediate){g(c,f);return}i.current=setTimeout(()=>{i.current=null,g(c,f)},pe)},[g]),cancel:a}}export{Ie as E,Ae as a,le as b,_ as c,Ee as d,Se as e,M as f,xe as g,de as i,fe as n,ae as p,ue as s,we as u};
6
+ //# sourceMappingURL=useQualityAnalysis-CowAaoA9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQualityAnalysis-CowAaoA9.js","sources":["../../../src/client/lib/quality-findings.ts","../../../src/client/lib/quality-policy.ts","../../../src/client/lib/quality-profiles.ts","../../../src/client/lib/quality-sequence.ts","../../../src/client/hooks/useQualityAnalysis.ts"],"sourcesContent":["/**\n * The playground's own model of a quality finding.\n *\n * The server hands the same finding over in two shapes: `/validate` returns\n * rich `QualityDiagnostic` objects, while `/generate` flattens each one into a\n * `GenerationWarning` whose real fields live in `context` and whose severity is\n * squashed to `warning | info`. Normalising both here keeps that asymmetry out\n * of the panel, the store and the Monaco markers.\n */\n\nexport type QualitySeverity = 'error' | 'warning' | 'info';\n\nexport type QualityCertainty =\n | 'deterministic'\n | 'measured'\n | 'estimated'\n | 'rendered'\n | 'evaluative';\n\nexport interface QualityFixOp {\n op: 'add' | 'replace' | 'remove' | 'move' | 'copy' | 'test';\n path: string;\n value?: unknown;\n from?: string;\n}\n\nexport interface QualityEvidence {\n actual?: unknown;\n expected?: unknown;\n unit?: string;\n [key: string]: unknown;\n}\n\nexport interface QualityFinding {\n /** Stable within one analysis; used as a React key and for fix dedup. */\n id: string;\n code: string;\n message: string;\n /** RFC 6901 pointer into the authored document. */\n path: string;\n severity: QualitySeverity;\n ruleId?: string;\n category?: string;\n certainty?: QualityCertainty;\n blocking?: boolean;\n suggestion?: string;\n relatedPaths?: readonly string[];\n evidence?: QualityEvidence;\n fixes?: readonly QualityFixOp[];\n}\n\nexport interface GenerationWarningLike {\n component: string;\n message: string;\n severity?: 'warning' | 'info';\n context?: Record<string, unknown>;\n}\n\nconst SEVERITIES: readonly QualitySeverity[] = ['error', 'warning', 'info'];\n\nconst SEVERITY_RANK: Record<string, number> = {\n error: 0,\n warning: 1,\n info: 2,\n};\n\n/**\n * Anything that is not one of the three legal severities sorts last rather\n * than throwing, so a future server-side severity cannot crash the panel.\n */\nconst UNRANKED = 3;\n\nfunction rankOf(severity: unknown): number {\n return typeof severity === 'string' && severity in SEVERITY_RANK\n ? (SEVERITY_RANK[severity] as number)\n : UNRANKED;\n}\n\nconst CERTAINTIES: readonly QualityCertainty[] = [\n 'deterministic',\n 'measured',\n 'estimated',\n 'rendered',\n 'evaluative',\n];\n\nconst FIX_OPS: readonly QualityFixOp['op'][] = [\n 'add',\n 'replace',\n 'remove',\n 'move',\n 'copy',\n 'test',\n];\n\n/** Findings with no category are grouped under this bucket. */\nconst UNCATEGORIZED = 'other';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * The same test as `isRecord` but without the type predicate, for values that\n * are already typed and only need the runtime guard — narrowing them to\n * `Record<string, unknown>` would throw away the declared shape.\n */\nfunction looksLikeObject(value: unknown): boolean {\n return isRecord(value);\n}\n\nfunction asString(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction asSeverity(value: unknown): QualitySeverity | undefined {\n return typeof value === 'string' &&\n (SEVERITIES as readonly string[]).includes(value)\n ? (value as QualitySeverity)\n : undefined;\n}\n\nfunction asCertainty(value: unknown): QualityCertainty | undefined {\n return typeof value === 'string' &&\n (CERTAINTIES as readonly string[]).includes(value)\n ? (value as QualityCertainty)\n : undefined;\n}\n\nfunction asStringArray(value: unknown): readonly string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const strings = value.filter((entry): entry is string => {\n return typeof entry === 'string';\n });\n return strings.length > 0 ? strings : undefined;\n}\n\nfunction asEvidence(value: unknown): QualityEvidence | undefined {\n return isRecord(value) ? (value as QualityEvidence) : undefined;\n}\n\n/**\n * A malformed patch operation is worse than none: the fix button would apply\n * garbage to the author's document, so anything without a legal `op` and a\n * string `path` is discarded rather than passed along.\n */\nfunction asFixes(value: unknown): readonly QualityFixOp[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const fixes: QualityFixOp[] = [];\n for (const entry of value) {\n if (!isRecord(entry)) continue;\n const op = entry['op'];\n const path = entry['path'];\n if (typeof op !== 'string' || typeof path !== 'string') continue;\n if (!(FIX_OPS as readonly string[]).includes(op)) continue;\n const fix: QualityFixOp = { op: op as QualityFixOp['op'], path };\n if ('value' in entry) fix.value = entry['value'];\n const from = asString(entry['from']);\n if (from !== undefined) fix.from = from;\n fixes.push(fix);\n }\n return fixes.length > 0 ? fixes : undefined;\n}\n\n/**\n * The generate path double-encodes the code: the message arrives as\n * \"[W_QUALITY_FONT_SIZE_MIN] Body text is 5pt\" while the code is also in\n * `context.code`. Stripping the prefix keeps the panel from showing the code\n * twice, but only when the two agree — an unrelated bracketed prefix is part\n * of the rule's own wording and must survive.\n */\nfunction stripCodePrefix(message: string, code: string | undefined): string {\n if (!code) return message;\n const prefix = `[${code}] `;\n return message.startsWith(prefix) ? message.slice(prefix.length) : message;\n}\n\n/**\n * Ids must survive a re-render of the same analysis, so they are derived from\n * the finding rather than from a counter or a random value. The index breaks\n * ties between findings that share a code and a path.\n */\nfunction makeId(code: string, path: string, index: number): string {\n return `${code || 'quality'}:${path}:${index}`;\n}\n\nfunction buildFinding(\n fields: {\n code: unknown;\n message: unknown;\n path: unknown;\n severity: QualitySeverity;\n ruleId: unknown;\n category: unknown;\n certainty: unknown;\n blocking: unknown;\n suggestion: unknown;\n relatedPaths: unknown;\n evidence: unknown;\n fixes: unknown;\n },\n index: number\n): QualityFinding | undefined {\n const code = asString(fields.code) ?? '';\n const rawMessage = asString(fields.message) ?? '';\n // Nothing to render and nothing to look up: the entry is not a finding.\n if (!code && !rawMessage) return undefined;\n\n const path = asString(fields.path) ?? '';\n const finding: QualityFinding = {\n id: makeId(code, path, index),\n code,\n // A finding row with no text at all is unreadable, so a code-only entry\n // shows its code rather than rendering blank.\n message: stripCodePrefix(rawMessage, code) || code,\n path,\n severity: fields.severity,\n };\n\n const ruleId = asString(fields.ruleId);\n if (ruleId !== undefined) finding.ruleId = ruleId;\n\n const category = asString(fields.category);\n if (category !== undefined) finding.category = category;\n\n const certainty = asCertainty(fields.certainty);\n if (certainty !== undefined) finding.certainty = certainty;\n\n if (typeof fields.blocking === 'boolean') finding.blocking = fields.blocking;\n\n const suggestion = asString(fields.suggestion);\n if (suggestion !== undefined) finding.suggestion = suggestion;\n\n const relatedPaths = asStringArray(fields.relatedPaths);\n if (relatedPaths !== undefined) finding.relatedPaths = relatedPaths;\n\n const evidence = asEvidence(fields.evidence);\n if (evidence !== undefined) finding.evidence = evidence;\n\n const fixes = asFixes(fields.fixes);\n if (fixes !== undefined) finding.fixes = fixes;\n\n return finding;\n}\n\n/** Split a generate response's warnings into quality findings and everything else. */\nexport function splitQualityWarnings(\n warnings: readonly GenerationWarningLike[] | null | undefined\n): { findings: QualityFinding[]; others: GenerationWarningLike[] } {\n const findings: QualityFinding[] = [];\n const others: GenerationWarningLike[] = [];\n if (!Array.isArray(warnings)) return { findings, others };\n\n for (const warning of warnings) {\n // The array is typed, but it comes off the wire — a null slot is possible.\n if (!looksLikeObject(warning)) continue;\n if (warning.component !== 'quality') {\n others.push(warning);\n continue;\n }\n\n const context = isRecord(warning.context) ? warning.context : {};\n // `context.originalSeverity` is the only place an 'error' survives; the\n // top-level severity was already coerced to warning | info by the server.\n const severity =\n asSeverity(context['originalSeverity']) ??\n asSeverity(warning.severity) ??\n 'warning';\n\n const finding = buildFinding(\n {\n code: context['code'],\n message: warning.message,\n path: context['path'],\n severity,\n ruleId: context['ruleId'],\n category: context['category'],\n certainty: context['certainty'],\n blocking: context['blocking'],\n suggestion: context['suggestion'],\n relatedPaths: context['relatedPaths'],\n evidence: context['evidence'],\n fixes: context['fixes'],\n },\n findings.length\n );\n if (finding) findings.push(finding);\n }\n\n return { findings, others };\n}\n\n/** Findings from a /validate response's qualityAnalysis object. */\nexport function findingsFromAnalysis(analysis: unknown): QualityFinding[] {\n if (!isRecord(analysis)) return [];\n const diagnostics = analysis['diagnostics'];\n if (!Array.isArray(diagnostics)) return [];\n\n const findings: QualityFinding[] = [];\n for (const diagnostic of diagnostics) {\n if (!isRecord(diagnostic)) continue;\n const finding = buildFinding(\n {\n code: diagnostic['code'],\n message: diagnostic['message'],\n path: diagnostic['path'],\n severity: asSeverity(diagnostic['severity']) ?? 'warning',\n ruleId: diagnostic['ruleId'],\n category: diagnostic['category'],\n certainty: diagnostic['certainty'],\n blocking: diagnostic['blocking'],\n suggestion: diagnostic['suggestion'],\n relatedPaths: diagnostic['relatedPaths'],\n evidence: diagnostic['evidence'],\n fixes: diagnostic['fixes'],\n },\n findings.length\n );\n if (finding) findings.push(finding);\n }\n return findings;\n}\n\nexport function countBySeverity(findings: readonly QualityFinding[]): {\n error: number;\n warning: number;\n info: number;\n} {\n const counts = { error: 0, warning: 0, info: 0 };\n if (!Array.isArray(findings)) return counts;\n for (const finding of findings) {\n const severity = asSeverity(finding?.severity);\n if (severity) counts[severity] += 1;\n }\n return counts;\n}\n\n/** error < warning < info, then by path, then by code. For Array.sort. */\nexport function compareFindings(a: QualityFinding, b: QualityFinding): number {\n const rankA = rankOf(a?.severity);\n const rankB = rankOf(b?.severity);\n if (rankA !== rankB) return rankA - rankB;\n const pathA = a?.path ?? '';\n const pathB = b?.path ?? '';\n if (pathA !== pathB) return pathA < pathB ? -1 : 1;\n const codeA = a?.code ?? '';\n const codeB = b?.code ?? '';\n if (codeA === codeB) return 0;\n return codeA < codeB ? -1 : 1;\n}\n\n/** Groups sorted by worst severity within the group, then category name. */\nexport function groupByCategory(\n findings: readonly QualityFinding[]\n): Array<{ category: string; findings: QualityFinding[] }> {\n const groups = new Map<string, QualityFinding[]>();\n if (!Array.isArray(findings)) return [];\n\n for (const finding of findings) {\n if (!finding) continue;\n const category = finding.category || UNCATEGORIZED;\n const bucket = groups.get(category);\n if (bucket) bucket.push(finding);\n else groups.set(category, [finding]);\n }\n\n const worstRank = (group: readonly QualityFinding[]): number => {\n return group.reduce((worst, finding) => {\n const rank = rankOf(finding.severity);\n return rank < worst ? rank : worst;\n }, UNRANKED);\n };\n\n return Array.from(groups.entries())\n .map(([category, bucket]) => ({\n category,\n findings: [...bucket].sort(compareFindings),\n }))\n .sort((a, b) => {\n const rankDelta = worstRank(a.findings) - worstRank(b.findings);\n if (rankDelta !== 0) return rankDelta;\n if (a.category === b.category) return 0;\n return a.category < b.category ? -1 : 1;\n });\n}\n\nexport function filterByMinSeverity(\n findings: readonly QualityFinding[],\n min: QualitySeverity\n): QualityFinding[] {\n if (!Array.isArray(findings)) return [];\n // An unknown threshold must not silently hide findings, so it lets all pass.\n const limit = asSeverity(min) ? rankOf(min) : UNRANKED;\n return findings.filter((finding) => rankOf(finding?.severity) <= limit);\n}\n\n/** Human label for a certainty, e.g. 'measured' -> 'Measured'. */\nexport function certaintyLabel(\n c: QualityCertainty | undefined\n): string | undefined {\n const certainty = asCertainty(c);\n if (!certainty) return undefined;\n return certainty.charAt(0).toUpperCase() + certainty.slice(1);\n}\n","/**\n * The run policy an author writes by hand.\n *\n * The profile and gate controls cover the two settings most runs need; this\n * covers the rest of the contract — per-rule severity, enable/disable and\n * parameters, suppressions, and the diagnostic budget — which until now was\n * reachable only through the CLI's `--quality-policy` file.\n *\n * `gate` is deliberately NOT accepted here. It has a control of its own, and\n * two writable sources for one field means the dropdown either lies or silently\n * loses, so naming it in the JSON is reported as a mistake instead.\n */\n\nimport { rulesForFormat } from './quality-rules';\n\nexport interface QualityRuleConfiguration {\n enabled?: boolean;\n severity?: 'error' | 'warning' | 'info';\n parameters?: Record<string, unknown>;\n}\n\nexport interface QualitySuppression {\n ruleId?: string;\n code?: string;\n path?: string;\n pathMatch?: 'exact' | 'subtree';\n reason: string;\n}\n\nexport interface EditableQualityPolicy {\n rules?: Record<string, QualityRuleConfiguration>;\n suppressions?: QualitySuppression[];\n maxDiagnostics?: number;\n onRuleError?: 'continue' | 'throw';\n}\n\nexport type ParsedQualityPolicy =\n | { ok: true; policy: EditableQualityPolicy | undefined }\n | { ok: false; error: string };\n\n/** What a fresh editor opens on: valid, inert, and a shape to copy. */\nexport const EMPTY_POLICY_TEXT = `{\n \"rules\": {},\n \"suppressions\": []\n}\n`;\n\nconst SEVERITIES = new Set(['error', 'warning', 'info']);\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Parse and check a hand-written policy.\n *\n * Errors are values and name the offending key, because this text is typed by\n * hand and the server's own rejection would arrive as a 400 the panel reports\n * far from the field that caused it.\n */\nexport function parseQualityPolicy(\n text: string | undefined\n): ParsedQualityPolicy {\n const trimmed = (text ?? '').trim();\n if (!trimmed) return { ok: true, policy: undefined };\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(trimmed);\n } catch (error) {\n return { ok: false, error: `Not valid JSON: ${(error as Error).message}` };\n }\n if (!isPlainObject(parsed)) {\n return { ok: false, error: 'A policy must be a JSON object.' };\n }\n\n if ('gate' in parsed) {\n return {\n ok: false,\n error: 'Remove \"gate\" — it is set by the Gate control above.',\n };\n }\n if ('profile' in parsed) {\n return {\n ok: false,\n error: 'Remove \"profile\" — it is set by the Profile control above.',\n };\n }\n\n // Every key below is read by name, so anything else would be dropped in\n // silence — `{\"maxDiagnostic\": 0}` parsed as a valid empty policy and the\n // budget the author asked for never applied. Say so instead.\n const EDITABLE_KEYS = new Set([\n 'rules',\n 'suppressions',\n 'maxDiagnostics',\n 'onRuleError',\n ]);\n const unknownKey = Object.keys(parsed).find((key) => !EDITABLE_KEYS.has(key));\n if (unknownKey !== undefined) {\n return {\n ok: false,\n error: `Unknown key \"${unknownKey}\". A policy takes: ${[...EDITABLE_KEYS].join(', ')}.`,\n };\n }\n\n const known = new Set(rulesForFormat().map((rule) => rule.id));\n const policy: EditableQualityPolicy = {};\n\n if (parsed.rules !== undefined) {\n if (!isPlainObject(parsed.rules)) {\n return {\n ok: false,\n error: '\"rules\" must be an object keyed by rule id.',\n };\n }\n for (const [ruleId, configuration] of Object.entries(parsed.rules)) {\n if (!known.has(ruleId)) {\n return {\n ok: false,\n error: `Unknown rule \"${ruleId}\". This format ships: ${[...known].join(', ')}.`,\n };\n }\n if (!isPlainObject(configuration)) {\n return {\n ok: false,\n error: `Rule \"${ruleId}\" must be an object, e.g. { \"severity\": \"warning\" }.`,\n };\n }\n if (\n configuration.severity !== undefined &&\n !SEVERITIES.has(configuration.severity as string)\n ) {\n return {\n ok: false,\n error: `Rule \"${ruleId}\" has an invalid severity. Use \"error\", \"warning\" or \"info\".`,\n };\n }\n if (\n configuration.enabled !== undefined &&\n typeof configuration.enabled !== 'boolean'\n ) {\n return {\n ok: false,\n error: `Rule \"${ruleId}\": \"enabled\" must be true or false.`,\n };\n }\n if (\n configuration.parameters !== undefined &&\n !isPlainObject(configuration.parameters)\n ) {\n return {\n ok: false,\n error: `Rule \"${ruleId}\": \"parameters\" must be an object.`,\n };\n }\n }\n policy.rules = parsed.rules as Record<string, QualityRuleConfiguration>;\n }\n\n if (parsed.suppressions !== undefined) {\n if (!Array.isArray(parsed.suppressions)) {\n return { ok: false, error: '\"suppressions\" must be an array.' };\n }\n for (const [index, entry] of parsed.suppressions.entries()) {\n if (!isPlainObject(entry)) {\n return { ok: false, error: `Suppression ${index} must be an object.` };\n }\n // The contract makes `reason` mandatory on purpose: a muted finding that\n // nobody has to justify is how a rule quietly stops being enforced.\n if (typeof entry.reason !== 'string' || !entry.reason.trim()) {\n return {\n ok: false,\n error: `Suppression ${index} needs a \"reason\" saying why the finding is acceptable.`,\n };\n }\n if (\n entry.pathMatch !== undefined &&\n entry.pathMatch !== 'exact' &&\n entry.pathMatch !== 'subtree'\n ) {\n return {\n ok: false,\n error: `Suppression ${index}: \"pathMatch\" must be \"exact\" or \"subtree\".`,\n };\n }\n }\n policy.suppressions = parsed.suppressions as QualitySuppression[];\n }\n\n if (parsed.maxDiagnostics !== undefined) {\n if (\n !Number.isInteger(parsed.maxDiagnostics) ||\n (parsed.maxDiagnostics as number) < 0\n ) {\n return {\n ok: false,\n error: '\"maxDiagnostics\" must be a whole number, zero or more.',\n };\n }\n policy.maxDiagnostics = parsed.maxDiagnostics as number;\n }\n\n if (parsed.onRuleError !== undefined) {\n if (parsed.onRuleError !== 'continue' && parsed.onRuleError !== 'throw') {\n return {\n ok: false,\n error: '\"onRuleError\" must be \"continue\" or \"throw\".',\n };\n }\n policy.onRuleError = parsed.onRuleError;\n }\n\n const empty =\n (policy.rules === undefined || Object.keys(policy.rules).length === 0) &&\n (policy.suppressions === undefined || policy.suppressions.length === 0) &&\n policy.maxDiagnostics === undefined &&\n policy.onRuleError === undefined;\n\n return { ok: true, policy: empty ? undefined : policy };\n}\n","/**\n * The shipped quality profiles, and the one place a stored profile id is\n * turned into a request.\n *\n * Settings persist to a single localStorage key shared by both playgrounds\n * (`window.__JTO_FORMAT__` picks the format; the origin is the same), so a\n * profile chosen on the DOCX playground is still in storage when the PPTX one\n * opens. Sending it would be worse than useless: the client stamps\n * `formats: [FORMAT]` itself, so the server's compatibility check passes, the\n * id matches no registered profile, and the analysis silently runs on defaults\n * while the panel and the response both report the profile as active.\n * Resolution therefore happens here, at the point of use, rather than in a\n * component that only guards while it is mounted.\n */\n\nimport { FORMAT, type FormatName } from './env';\nimport { parseQualityPolicy } from './quality-policy';\n\nexport interface QualityProfileChoice {\n id: string;\n label: string;\n description: string;\n}\n\nexport const QUALITY_PROFILES: Record<\n FormatName,\n readonly QualityProfileChoice[]\n> = {\n docx: [\n {\n id: 'executive-report',\n label: 'Executive report',\n description: 'Short decision document with strict outline continuity',\n },\n {\n id: 'technical-report',\n label: 'Technical report',\n description: 'Portable professional report defaults',\n },\n {\n id: 'legal-appendix',\n label: 'Legal appendix',\n description: 'Dense appendix: preserve integrity without editorial taste',\n },\n ],\n pptx: [\n {\n id: 'executive-presentation',\n label: 'Executive presentation',\n description: 'Decision deck optimized for scan speed and projection',\n },\n {\n id: 'technical-presentation',\n label: 'Technical presentation',\n description: 'Portable professional presentation defaults',\n },\n ],\n};\n\n/** The profiles offerable for the format this playground is serving. */\nexport function profilesForFormat(): readonly QualityProfileChoice[] {\n return QUALITY_PROFILES[FORMAT];\n}\n\n/** The profile id stored for this format, if it still names a shipped one. */\nexport function storedProfileId(\n ids: Partial<Record<FormatName, string>> | undefined\n): string | undefined {\n const id = ids?.[FORMAT];\n return isProfileForFormat(id) ? id : undefined;\n}\n\n/** True when `id` names a profile the current format actually ships. */\nexport function isProfileForFormat(id: string | undefined): id is string {\n return id !== undefined && QUALITY_PROFILES[FORMAT].some((p) => p.id === id);\n}\n\nexport interface QualityRequestOptions {\n profile?: { id: string; formats: string[] };\n policy?: Record<string, unknown>;\n}\n\n/**\n * Build the `options.quality` payload for a generate or validate request.\n *\n * Returns undefined when neither a profile nor a gate was asked for, so the\n * request omits the key entirely and the server keeps its own defaults. A\n * profile id belonging to the other format is dropped rather than sent.\n */\nexport function buildQualityOptions(\n profileId: string | undefined,\n gate: string | undefined,\n policyText?: string\n): QualityRequestOptions | undefined {\n const options: QualityRequestOptions = {};\n if (isProfileForFormat(profileId)) {\n options.profile = { id: profileId, formats: [FORMAT] };\n }\n // A policy still being typed is not sent at all: the run keeps working under\n // the last good one rather than failing on every unbalanced brace.\n const parsed = parseQualityPolicy(policyText);\n const authored = parsed.ok ? parsed.policy : undefined;\n const hasGate = gate === 'error' || gate === 'warning' || gate === 'info';\n if (authored || hasGate) {\n options.policy = {\n ...(authored ?? {}),\n // The Gate control owns this field; `parseQualityPolicy` rejects a policy\n // that also names it, so there is nothing here to overwrite.\n ...(hasGate && { gate }),\n };\n }\n return options.profile || options.policy ? options : undefined;\n}\n","/**\n * Ordering tickets for quality analyses.\n *\n * Three independent producers write the same store slice: the editor's\n * debounced validate pass, the preview's immediate re-analysis after a fix,\n * and the build's own findings. Each aborts only its own in-flight request, so\n * per-request cancellation cannot order them against each other — a ~10s build\n * started before an edit still resolves after the validate pass that overtook\n * it, and would otherwise reinstate findings for text the editor no longer\n * holds.\n *\n * Every producer takes a ticket before it starts and drops its result if a\n * higher one has already landed. Tickets are process-wide because the writers\n * are separate hook instances in one bundle; a per-instance counter would\n * compare numbers that mean nothing to each other.\n */\n\nimport type { QualityState } from '../store/output-store';\n\nlet counter = 0;\n\n/** Monotonic, allocated at the moment work starts, not when it finishes. */\nexport function nextQualityTicket(): number {\n counter += 1;\n return counter;\n}\n\n/** True when a newer analysis has already been committed. */\nexport function isStaleQualityTicket(\n current: QualityState | null | undefined,\n ticket: number\n): boolean {\n return current != null && current.seq > ticket;\n}\n","import { useCallback, useContext, useEffect, useRef } from 'react';\nimport { API_ENDPOINTS } from '../config/api';\nimport { FORMAT } from '../lib/env';\nimport { countBySeverity, findingsFromAnalysis } from '../lib/quality-findings';\nimport { buildQualityOptions, storedProfileId } from '../lib/quality-profiles';\nimport {\n isStaleQualityTicket,\n nextQualityTicket,\n} from '../lib/quality-sequence';\nimport type { QualityState } from '../store/output-store';\nimport {\n OutputStoreContext,\n useOutputStore,\n} from '../store/output-store-provider';\nimport { useSettingsStore } from '../store/settings-store-provider';\nimport { isJsonMediaType } from './usePresentationGenerator';\n\n/**\n * Long enough that a burst of typing costs one request rather than one per\n * keystroke, short enough that a pause reads as \"the panel just updated\".\n *\n * The upper bound is not taste: `/api/*` rate-limits on `METHOD:path`, and in\n * production that budget is 100 requests per 15 minutes (server config\n * `RATE_LIMIT_MAX`). One analysis per typing pause has to stay well under\n * ~7 requests/minute sustained or the panel starts answering 429 to the author\n * who is typing the most.\n */\nconst ANALYSIS_DEBOUNCE_MS = 1500;\n\ninterface ValidateResponseBody {\n success?: boolean;\n data?: { valid?: boolean; qualityAnalysis?: unknown };\n error?: string;\n /** `QUALITY_GATE_FAILED` distinguishes a real rejection from a 429 or a 500. */\n code?: string;\n /** Present on a gate failure: the analysis that tripped it. */\n quality?: unknown;\n}\n\n/** The JSON body, or undefined when the response is not JSON at all. */\nasync function readJsonBody(\n response: Response\n): Promise<ValidateResponseBody | undefined> {\n // A proxy that never reached the API answers with its own HTML error page,\n // and parsing that unguarded is what turns a dead backend into\n // `Unexpected token '<'` instead of the status it actually was.\n if (!isJsonMediaType(response.headers.get('content-type'))) return undefined;\n try {\n return (await response.json()) as ValidateResponseBody;\n } catch {\n return undefined;\n }\n}\n\n/**\n * The analysis-level fields, read one at a time.\n *\n * Spreading the server's object into the store would let an unexpected type\n * through to the panel, where a `blocked` that is a string reads as truthy and\n * a `profileId` that is an object renders as `[object Object]`.\n */\nfunction readAnalysisFlags(\n analysis: unknown\n): Pick<QualityState, 'profileId' | 'blocked' | 'truncated'> {\n if (!analysis || typeof analysis !== 'object') return {};\n const source = analysis as Record<string, unknown>;\n return {\n ...(typeof source.profileId === 'string'\n ? { profileId: source.profileId }\n : {}),\n ...(typeof source.blocked === 'boolean' ? { blocked: source.blocked } : {}),\n ...(typeof source.truncated === 'boolean'\n ? { truncated: source.truncated }\n : {}),\n };\n}\n\n/** The API's own message when there is one; the status is all that is left. */\nfunction describeFailure(\n response: Response,\n body: ValidateResponseBody | undefined\n): string {\n if (body?.error) return body.error;\n return `Quality analysis failed (${response.status}${\n response.statusText ? ` ${response.statusText}` : ''\n }).`;\n}\n\n/**\n * Re-run the quality analysis as the document changes, without rendering it.\n *\n * `/validate` returns the rich diagnostics `/generate` flattens into warnings,\n * so this is what keeps the panel current between builds — the author sees the\n * findings move while editing rather than only after asking for bytes.\n */\nexport function useQualityAnalysis(): {\n analyze: (\n documentName: string,\n documentText: string,\n options?: { immediate?: boolean }\n ) => void;\n cancel: () => void;\n} {\n const setOutput = useOutputStore((state) => state.setOutput);\n const outputStore = useContext(OutputStoreContext)!;\n // Read here rather than inside the request so a settings change re-creates\n // `analyze`, and a caller holding the old one cannot keep analysing under a\n // profile the author has already switched away from.\n const profileIds = useSettingsStore((state) => state.qualityProfileIds);\n const profileId = storedProfileId(profileIds);\n const gate = useSettingsStore((state) => state.qualityGate);\n const policyText = useSettingsStore(\n (state) => state.qualityPolicies?.[FORMAT]\n );\n\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const abortRef = useRef<AbortController | null>(null);\n\n const cancel = useCallback(() => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n abortRef.current?.abort();\n abortRef.current = null;\n }, []);\n\n // An analysis that outlives its component would resolve into a store nobody\n // is reading, and worse, overwrite findings a later mount had already put\n // there.\n useEffect(() => cancel, [cancel]);\n\n /**\n * Commit a result unless a newer analysis has already landed.\n *\n * Aborting only reaches this hook instance's own request, and there are\n * several instances plus the build writing the same slice, so the ticket is\n * what actually orders them.\n */\n const commit = useCallback(\n (ticket: number, next: QualityState) => {\n if (isStaleQualityTicket(outputStore.getState().quality, ticket)) return;\n setOutput({ quality: next });\n },\n [outputStore, setOutput]\n );\n\n const run = useCallback(\n async (documentName: string, documentText: string) => {\n let jsonDefinition: unknown;\n try {\n jsonDefinition = JSON.parse(documentText);\n } catch {\n // Half-typed JSON is the normal state of an editor, not something to\n // report. Keep the previous findings on screen: blanking the panel on\n // every unbalanced brace is worse than showing findings one keystroke\n // out of date.\n return;\n }\n\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n const ticket = nextQualityTicket();\n\n const quality = buildQualityOptions(profileId, gate, policyText);\n\n try {\n const response = await fetch(API_ENDPOINTS.validate, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n jsonDefinition,\n options: quality ? { quality } : {},\n }),\n signal: controller.signal,\n });\n const body = await readJsonBody(response);\n\n // A superseded request has already been replaced by a newer one, whose\n // answer is the current one; writing this stale result would undo it.\n if (controller.signal.aborted) return;\n\n if (!response.ok) {\n const message = describeFailure(response, body);\n if (body?.code === 'QUALITY_GATE_FAILED') {\n // A real rejection, and it carries the diagnostics that caused it.\n const findings = findingsFromAnalysis(body.quality);\n commit(ticket, {\n findings,\n counts: countBySeverity(findings),\n documentName,\n seq: ticket,\n blocked: true,\n source: 'validate',\n analyzedAt: Date.now(),\n gateError: message,\n });\n return;\n }\n // Everything else — 429 from the rate limiter, 413, a 500, a dead\n // proxy — says nothing about the document. Reporting it as a gate\n // failure would tell an author with no gate configured that their\n // document was blocked, and discarding the findings alongside it\n // would take away the only thing on screen that was still true.\n // Keeping the findings is only right while they still describe this\n // document. Across a tab switch they describe the previous one, and\n // every finding is a JSON Pointer into a file that is no longer on\n // screen — \"Apply fix\" would patch the wrong document. A stale\n // `blocked` is worse still: a gate rejection from before the switch\n // would keep the new document blocked on a transport error.\n const stored = outputStore.getState().quality;\n const previous =\n stored && stored.documentName === documentName ? stored : undefined;\n commit(ticket, {\n ...(previous ?? {\n findings: [],\n counts: { error: 0, warning: 0, info: 0 },\n source: 'validate' as const,\n }),\n documentName,\n seq: ticket,\n analyzedAt: Date.now(),\n blocked: previous?.blocked ?? false,\n gateError: undefined,\n analysisError: message,\n });\n return;\n }\n\n // `success` is false for a schema-invalid document and for a blocked\n // one, neither of which is a failed request — the analysis, when there\n // is one, is still in `data`.\n const analysis = body?.data?.qualityAnalysis;\n const findings = findingsFromAnalysis(analysis);\n commit(ticket, {\n findings,\n counts: countBySeverity(findings),\n ...readAnalysisFlags(analysis),\n documentName,\n seq: ticket,\n source: 'validate',\n analyzedAt: Date.now(),\n });\n } catch {\n // An abort lands here, and so does a dropped connection. Neither says\n // anything about the document, so the last analysis stands.\n } finally {\n if (abortRef.current === controller) abortRef.current = null;\n }\n },\n [commit, gate, outputStore, policyText, profileId]\n );\n\n const analyze = useCallback(\n (\n documentName: string,\n documentText: string,\n options?: { immediate?: boolean }\n ) => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (options?.immediate) {\n void run(documentName, documentText);\n return;\n }\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void run(documentName, documentText);\n }, ANALYSIS_DEBOUNCE_MS);\n },\n [run]\n );\n\n return { analyze, cancel };\n}\n"],"names":["SEVERITIES","SEVERITY_RANK","UNRANKED","rankOf","severity","CERTAINTIES","FIX_OPS","UNCATEGORIZED","isRecord","value","looksLikeObject","asString","asSeverity","asCertainty","asStringArray","strings","entry","asEvidence","asFixes","fixes","op","path","fix","from","stripCodePrefix","message","code","prefix","makeId","index","buildFinding","fields","rawMessage","finding","ruleId","category","certainty","suggestion","relatedPaths","evidence","splitQualityWarnings","warnings","findings","others","warning","context","findingsFromAnalysis","analysis","diagnostics","diagnostic","countBySeverity","counts","compareFindings","a","b","rankA","rankB","pathA","pathB","codeA","codeB","groupByCategory","groups","bucket","worstRank","group","worst","rank","rankDelta","filterByMinSeverity","min","limit","certaintyLabel","c","EMPTY_POLICY_TEXT","isPlainObject","parseQualityPolicy","text","trimmed","parsed","error","EDITABLE_KEYS","unknownKey","key","known","rulesForFormat","rule","policy","configuration","QUALITY_PROFILES","storedProfileId","ids","id","FORMAT","isProfileForFormat","p","buildQualityOptions","profileId","gate","policyText","options","authored","hasGate","counter","nextQualityTicket","isStaleQualityTicket","current","ticket","ANALYSIS_DEBOUNCE_MS","readJsonBody","response","isJsonMediaType","readAnalysisFlags","source","describeFailure","body","useQualityAnalysis","setOutput","useOutputStore","state","outputStore","useContext","OutputStoreContext","profileIds","useSettingsStore","_a","timerRef","useRef","abortRef","cancel","useCallback","useEffect","commit","next","run","documentName","documentText","jsonDefinition","controller","quality","API_ENDPOINTS","stored","previous","_b"],"mappings":"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"}
@@ -9,14 +9,14 @@
9
9
  <link rel="preconnect" href="https://fonts.googleapis.com" />
10
10
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11
11
  <title>JSON to Office</title>
12
- <script type="module" crossorigin src="/assets/index-DLlW4q4v.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-B7bDnXoC.js"></script>
13
13
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-BmQ2Ko_D.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/query-vendor--rhYD8mC.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/radix-ui-DFNP5I4e.js">
16
- <link rel="modulepreload" crossorigin href="/assets/ui-vendor-DpjQWJgX.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/ui-vendor-Bq4-oNFL.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/monaco-editor-DJsdM0WK.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/state-vendor-Cq67_JbF.js">
19
- <link rel="stylesheet" crossorigin href="/assets/index-CNvLzaJ7.css">
19
+ <link rel="stylesheet" crossorigin href="/assets/index-CrzIwHLS.css">
20
20
  </head>
21
21
  <body>
22
22
  <div id="root"></div>
@@ -314,7 +314,7 @@
314
314
  "fontSize": 12,
315
315
  "fontFace": "Space Grotesk",
316
316
  "fontWeight": 500,
317
- "color": "background",
317
+ "color": "accent6",
318
318
  "lineSpacingMultiple": 0.9
319
319
  }
320
320
  },
@@ -329,7 +329,7 @@
329
329
  "fontSize": 12,
330
330
  "fontFace": "Space Grotesk",
331
331
  "fontWeight": 500,
332
- "color": "background",
332
+ "color": "accent6",
333
333
  "lineSpacingMultiple": 0.9
334
334
  }
335
335
  },
@@ -353,7 +353,7 @@
353
353
  "y": 5.079,
354
354
  "w": 4.964,
355
355
  "h": 1.232,
356
- "color": "background",
356
+ "color": "accent6",
357
357
  "lineSpacingMultiple": 1.4,
358
358
  "style": "body"
359
359
  }
@@ -408,7 +408,7 @@
408
408
  "fontSize": 44,
409
409
  "fontFace": "Space Grotesk",
410
410
  "fontWeight": 500,
411
- "color": "background",
411
+ "color": "accent6",
412
412
  "align": "right",
413
413
  "lineSpacingMultiple": 0.9
414
414
  }
@@ -424,7 +424,7 @@
424
424
  "fontSize": 44,
425
425
  "fontFace": "Space Grotesk",
426
426
  "fontWeight": 500,
427
- "color": "background",
427
+ "color": "accent6",
428
428
  "align": "right",
429
429
  "lineSpacingMultiple": 0.9
430
430
  }
@@ -440,7 +440,7 @@
440
440
  "fontSize": 44,
441
441
  "fontFace": "Space Grotesk",
442
442
  "fontWeight": 500,
443
- "color": "background",
443
+ "color": "accent6",
444
444
  "align": "right",
445
445
  "lineSpacingMultiple": 0.9
446
446
  }
@@ -807,7 +807,7 @@
807
807
  "y": 0.736,
808
808
  "w": 1.82,
809
809
  "h": 0.3,
810
- "color": "background",
810
+ "color": "accent6",
811
811
  "lineSpacingMultiple": 0.9,
812
812
  "style": "heading3"
813
813
  }
@@ -832,7 +832,7 @@
832
832
  "y": 3.855,
833
833
  "w": 4.5280000000000005,
834
834
  "h": 0.666,
835
- "color": "background",
835
+ "color": "accent6",
836
836
  "lineSpacingMultiple": 1.4,
837
837
  "style": "body"
838
838
  }
@@ -857,7 +857,7 @@
857
857
  "y": 5.547,
858
858
  "w": 2.856,
859
859
  "h": 0.666,
860
- "color": "background",
860
+ "color": "accent6",
861
861
  "lineSpacingMultiple": 1.4,
862
862
  "style": "body"
863
863
  }
@@ -1082,7 +1082,7 @@
1082
1082
  "fontSize": 9,
1083
1083
  "fontFace": "Space Grotesk",
1084
1084
  "fontWeight": 500,
1085
- "color": "text2",
1085
+ "color": "background",
1086
1086
  "align": "right"
1087
1087
  }
1088
1088
  }
@@ -1375,7 +1375,7 @@
1375
1375
  "fontSize": 16,
1376
1376
  "fontFace": "Space Grotesk",
1377
1377
  "fontWeight": 500,
1378
- "color": "background",
1378
+ "color": "accent6",
1379
1379
  "lineSpacingMultiple": 0.9
1380
1380
  }
1381
1381
  },
@@ -1390,7 +1390,7 @@
1390
1390
  "fontSize": 12,
1391
1391
  "fontFace": "Space Grotesk",
1392
1392
  "fontWeight": 500,
1393
- "color": "background",
1393
+ "color": "accent6",
1394
1394
  "lineSpacingMultiple": 0.9
1395
1395
  }
1396
1396
  },
@@ -1405,7 +1405,7 @@
1405
1405
  "fontSize": 12,
1406
1406
  "fontFace": "Space Grotesk",
1407
1407
  "fontWeight": 500,
1408
- "color": "background",
1408
+ "color": "accent6",
1409
1409
  "lineSpacingMultiple": 0.9
1410
1410
  }
1411
1411
  },
@@ -1419,7 +1419,7 @@
1419
1419
  "h": 1.75,
1420
1420
  "fontSize": 14,
1421
1421
  "fontFace": "Space Grotesk",
1422
- "color": "background",
1422
+ "color": "accent6",
1423
1423
  "lineSpacingMultiple": 1.4
1424
1424
  }
1425
1425
  },
@@ -1863,7 +1863,7 @@
1863
1863
  "h": 0.35,
1864
1864
  "fontSize": 15,
1865
1865
  "fontFace": "Space Grotesk",
1866
- "color": "accent6",
1866
+ "color": "background",
1867
1867
  "align": "center",
1868
1868
  "lineSpacingMultiple": 0.9
1869
1869
  }
@@ -2418,7 +2418,7 @@
2418
2418
  "y": 0.915,
2419
2419
  "w": 3.028,
2420
2420
  "h": 1.515,
2421
- "color": "background",
2421
+ "color": "accent6",
2422
2422
  "lineSpacingMultiple": 1.4,
2423
2423
  "style": "body"
2424
2424
  }
@@ -2434,7 +2434,7 @@
2434
2434
  "fontSize": 16,
2435
2435
  "fontFace": "Space Grotesk",
2436
2436
  "fontWeight": 500,
2437
- "color": "background",
2437
+ "color": "accent6",
2438
2438
  "lineSpacingMultiple": 0.9
2439
2439
  }
2440
2440
  },
@@ -2458,7 +2458,7 @@
2458
2458
  "y": 5.869,
2459
2459
  "w": 0.9200000000000002,
2460
2460
  "h": 0.6,
2461
- "color": "background",
2461
+ "color": "accent6",
2462
2462
  "lineSpacingMultiple": 0.9,
2463
2463
  "style": "heading3"
2464
2464
  }
@@ -2592,7 +2592,7 @@
2592
2592
  "fontSize": 16,
2593
2593
  "fontFace": "Space Grotesk",
2594
2594
  "fontWeight": 500,
2595
- "color": "background",
2595
+ "color": "accent6",
2596
2596
  "lineSpacingMultiple": 0.9
2597
2597
  }
2598
2598
  },
@@ -2606,7 +2606,7 @@
2606
2606
  "h": 1.42,
2607
2607
  "fontSize": 14,
2608
2608
  "fontFace": "Space Grotesk",
2609
- "color": "background",
2609
+ "color": "accent6",
2610
2610
  "lineSpacingMultiple": 1.4
2611
2611
  }
2612
2612
  },
@@ -2877,7 +2877,7 @@
2877
2877
  "y": 0.67,
2878
2878
  "w": 4.746,
2879
2879
  "h": 1.232,
2880
- "color": "background",
2880
+ "color": "accent6",
2881
2881
  "lineSpacingMultiple": 1.4,
2882
2882
  "style": "body"
2883
2883
  }
@@ -3243,7 +3243,7 @@
3243
3243
  "fontSize": 9,
3244
3244
  "fontFace": "Space Grotesk",
3245
3245
  "fontWeight": 500,
3246
- "color": "text2",
3246
+ "color": "background",
3247
3247
  "align": "right"
3248
3248
  }
3249
3249
  }