@schmitech/chatbot-widget 0.5.3 → 0.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 (64) hide show
  1. package/dist/_basePickBy-C3-QE0dl-5eQ6L29l.js +152 -0
  2. package/dist/_baseUniq-CstiM9Lp-AFR_Ns0a.js +615 -0
  3. package/dist/arc-W3NKKXLI-DHbDwLx0.js +84 -0
  4. package/dist/architecture-U656AL7Q-fn9wJZsH-BLoGjtkP.js +6 -0
  5. package/dist/architectureDiagram-VXUJARFQ-zzJsgPC6-C4OfUE0m.js +4667 -0
  6. package/dist/blockDiagram-VD42YOAC-D-In4h7h-BYXdRmeG.js +2266 -0
  7. package/dist/c4Diagram-YG6GDRKO-DBs8r9gh-BdLuHgPT.js +1582 -0
  8. package/dist/channel-RBWQyMSg-Cx0HUumY.js +6 -0
  9. package/dist/chatbot-widget.bundle.js +4473 -1556
  10. package/dist/chatbot-widget.css +1 -1
  11. package/dist/chatbot-widget.es.js +12 -63659
  12. package/dist/chatbot-widget.umd.js +4472 -1555
  13. package/dist/chunk-4BX2VUAB-BqD7w0AR-CbA2613c.js +10 -0
  14. package/dist/chunk-55IACEB6-D8pvDVEJ-DrL4SJSR.js +9 -0
  15. package/dist/chunk-B4BG7PRW-Dwma1pSy-BWjG5dc6.js +1375 -0
  16. package/dist/chunk-DI55MBZ5-BY2XXvZz-DbAvz3Pq.js +1383 -0
  17. package/dist/chunk-FMBD7UC4-BeiLbQ8U-BNaZTCv4.js +20 -0
  18. package/dist/chunk-QN33PNHL-BkO3hOeq-DkU1EzGA.js +21 -0
  19. package/dist/chunk-QZHKN3VN-Cwlo2qTG-DMmeZmp5.js +16 -0
  20. package/dist/chunk-TZMSLE5B-BnXK-OiF-RfzVsOBe.js +65 -0
  21. package/dist/classDiagram-2ON5EDUG-Crd6O69V-kCZrFOLN.js +17 -0
  22. package/dist/classDiagram-v2-WZHVMYZB-Crd6O69V-kCZrFOLN.js +17 -0
  23. package/dist/clone-CfLgyC8S-DsDOh4B4.js +9 -0
  24. package/dist/config/index.d.ts +4 -2
  25. package/dist/cose-bilkent-S5V4N54A-DKeVcPDK-de_7nZTY.js +2609 -0
  26. package/dist/cytoscape.esm-CjI2IsL8-Be2K4mI6.js +18723 -0
  27. package/dist/dagre-6UL2VRFP-BPf604Df-BhZs6zCq.js +448 -0
  28. package/dist/diagram-PSM6KHXK-DeLcpEV3-qb4rujeN.js +532 -0
  29. package/dist/diagram-QEK2KX5R-C_5RR1NJ-C5kZWmRl.js +222 -0
  30. package/dist/diagram-S2PKOQOG-DVx43aon-4nlw6iDz.js +144 -0
  31. package/dist/erDiagram-Q2GNP2WA-DgUeO5_h-DHc9Yphl.js +841 -0
  32. package/dist/flowDiagram-NV44I4VS-C5HQUzU9-DHjbmAtJ.js +1628 -0
  33. package/dist/ganttDiagram-JELNMOA3-DgSZ1ixF-C3hJs_k9.js +1936 -0
  34. package/dist/gitGraph-F6HP7TQM-UL7-Bx1s-Cog5rj3j.js +6 -0
  35. package/dist/gitGraphDiagram-NY62KEGX-DY5loT9K-CEcKQNrM.js +713 -0
  36. package/dist/graph-BfwqPHx6-DErF9dBN.js +248 -0
  37. package/dist/index-B5s_uaP2.js +124168 -0
  38. package/dist/index-BAOVR-xx-thst7Pu6.js +13251 -0
  39. package/dist/info-NVLQJR56-BsqQ0RXQ-BcYgZCCY.js +6 -0
  40. package/dist/infoDiagram-WHAUD3N6-DIqQ6vCk-BuiAAMSH.js +25 -0
  41. package/dist/journeyDiagram-XKPGCS4Q-DXjg3S3r-Byi_TGXs.js +835 -0
  42. package/dist/kanban-definition-3W4ZIXB7-Uxt7Am6n-jy96nA-g.js +721 -0
  43. package/dist/layout-CSfkE668-BjigbqJL.js +1333 -0
  44. package/dist/mermaid-parser.core-LjuO4CL3-BLqmPe8-.js +12891 -0
  45. package/dist/mindmap-definition-VGOIOE7T-DXwVuAPE-SK4e1Sse.js +787 -0
  46. package/dist/packet-BFZMPI3H-DJWkrKrV-BamBev9S.js +6 -0
  47. package/dist/pie-7BOR55EZ-DC8hTFwn-D1bcIQbR.js +6 -0
  48. package/dist/pieDiagram-ADFJNKIX-Cj0EHHtj-Dbr09c-S.js +161 -0
  49. package/dist/quadrantDiagram-AYHSOK5B-CnLDz007-Ci0DQl2T.js +1024 -0
  50. package/dist/radar-NHE76QYJ-Bijk-Fk9-9nAmDCMr.js +6 -0
  51. package/dist/requirementDiagram-UZGBJVZJ-rDaI-8Be-CSEc4S33.js +851 -0
  52. package/dist/sankeyDiagram-TZEHDZUN-A0YO8ixs-Zj8Z0j0n.js +810 -0
  53. package/dist/sequenceDiagram-WL72ISMW-BFF7TtP7-Dcofckjv.js +2519 -0
  54. package/dist/shared/styles.d.ts +1 -1
  55. package/dist/stateDiagram-FKZM4ZOC-ofFsB7HJ-BJBX12rE.js +264 -0
  56. package/dist/stateDiagram-v2-4FDKWEC3-CEZFbksU-BywmU88h.js +17 -0
  57. package/dist/timeline-definition-IT6M3QCI-5W361ZNm-MP_ufVe7.js +800 -0
  58. package/dist/treemap-KMMF4GRG-pGRoYcSn-BeZ7sXgP.js +6 -0
  59. package/dist/ui/Message.d.ts +1 -5
  60. package/dist/ui/MessagesList.d.ts +1 -5
  61. package/dist/utils/contentFiltering.d.ts +12 -0
  62. package/dist/xychartDiagram-PRI3JC2R-CSr0GxaP-DBgCtplP.js +1297 -0
  63. package/package.json +3 -3
  64. package/dist/ui/TypingEffect.d.ts +0 -18
@@ -51,7 +51,7 @@ export declare let CHAT_CONSTANTS: {
51
51
  /**
52
52
  * Global CSS styles for the ChatWidget component
53
53
  */
54
- export declare const CHAT_WIDGET_STYLES = "\n body, button, input, textarea {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n }\n \n /* Complete focus ring removal - covers all browsers and scenarios */\n textarea,\n textarea:focus,\n textarea:focus-visible,\n input,\n input:focus,\n input:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n border-color: inherit !important;\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n -webkit-tap-highlight-color: transparent !important;\n }\n \n /* Alternative: Uncomment for subtle light focus ring instead of complete removal */\n /*\n textarea:focus,\n textarea:focus-visible {\n outline: 2px solid rgba(203, 213, 225, 0.4) !important;\n outline-offset: -1px !important;\n box-shadow: 0 0 0 1px rgba(203, 213, 225, 0.2) !important;\n }\n */\n \n /* Remove webkit/safari specific styling */\n textarea::-webkit-input-placeholder,\n input::-webkit-input-placeholder {\n -webkit-appearance: none;\n }\n \n /* Ensure buttons also don't show focus rings */\n button:focus,\n button:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n }\n\n /* Enhanced animations for modern feel */\n @keyframes slideInUp {\n 0% { \n opacity: 0; \n transform: translateY(20px) scale(0.95); \n }\n 100% { \n opacity: 1; \n transform: translateY(0) scale(1); \n }\n }\n\n @keyframes slideOutDown {\n 0% { \n opacity: 1; \n transform: translateY(0) scale(1); \n }\n 100% { \n opacity: 0; \n transform: translateY(20px) scale(0.95); \n }\n }\n\n .animate-slide-in-up {\n animation: slideInUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n .animate-slide-out-down {\n animation: slideOutDown 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes pulseGlow {\n 0%, 100% { \n box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);\n }\n 50% { \n box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);\n }\n }\n\n .animate-pulse-glow {\n animation: pulseGlow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n\n @keyframes messageEntry {\n 0% { \n opacity: 0; \n transform: translateY(10px) scale(0.98);\n }\n 100% { \n opacity: 1; \n transform: translateY(0) scale(1);\n }\n }\n\n .animate-message-entry {\n animation: messageEntry 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes buttonHover {\n 0% { transform: translateY(0) scale(1); }\n 100% { transform: translateY(-2px) scale(1.05); }\n }\n\n .animate-button-hover:hover {\n animation: buttonHover 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n \n @keyframes fadeInOut {\n 0% { opacity: 0; transform: translateY(4px); }\n 20% { opacity: 1; transform: translateY(0); }\n 80% { opacity: 1; transform: translateY(0); }\n 100% { opacity: 0; transform: translateY(-4px); }\n }\n .animate-fade-in-out {\n animation: fadeInOut 2s ease-in-out forwards;\n }\n \n @keyframes bounce-gentle {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-8px); }\n }\n .animate-bounce-gentle {\n animation: bounce-gentle 3s ease-in-out infinite;\n animation-delay: 2s;\n }\n\n @keyframes float {\n 0%, 100% { transform: translateY(0px) rotate(0deg) scale(1); }\n 25% { transform: translateY(-8px) rotate(2deg) scale(1.02); }\n 50% { transform: translateY(-4px) rotate(-1deg) scale(1); }\n 75% { transform: translateY(-6px) rotate(1deg) scale(1.01); }\n }\n .animate-float {\n animation: float 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n \n /* Modern typing dots animation */\n @keyframes dotWave {\n 0%, 60%, 100% {\n transform: translateY(0) scale(1);\n background-color: #9ca3af;\n }\n 30% {\n transform: translateY(-10px) scale(1.1);\n background-color: #6b7280;\n }\n }\n \n .typing-dots-container {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 0;\n }\n \n .typing-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #9ca3af;\n animation: dotWave 1.4s ease-in-out infinite;\n }\n \n .typing-dot:nth-child(1) {\n animation-delay: 0s;\n }\n \n .typing-dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n .typing-dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n /* Glassmorphism effects */\n .glass-effect {\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background: rgba(255, 255, 255, 0.8);\n border: 1px solid rgba(255, 255, 255, 0.3);\n }\n\n .glass-effect-dark {\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background: rgba(30, 41, 59, 0.8);\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n /* Custom scrollbar */\n .custom-scrollbar::-webkit-scrollbar {\n width: 6px;\n }\n\n .custom-scrollbar::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n }\n\n .custom-scrollbar::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 3px;\n transition: background 0.2s ease;\n }\n\n .custom-scrollbar::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n\n /* Enhanced shadows */\n .shadow-elegant {\n box-shadow: \n 0 10px 25px -5px rgba(0, 0, 0, 0.1),\n 0 8px 10px -6px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(255, 255, 255, 0.05);\n }\n\n .shadow-soft {\n box-shadow: \n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n }\n\n .shadow-floating {\n box-shadow: \n 0 20px 25px -5px rgba(0, 0, 0, 0.1),\n 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n }\n \n .prose {\n max-width: 100%;\n }\n \n .prose > * {\n margin-top: 0 !important;\n margin-bottom: 0.5em !important;\n }\n \n .prose p {\n margin: 0 0 0.5em 0 !important;\n padding: 0;\n line-height: 1.6;\n }\n \n .prose p:last-child {\n margin-bottom: 0 !important;\n }\n \n .prose ul,\n .prose ol {\n margin-top: 0.5em !important;\n margin-bottom: 0.5em !important;\n padding-left: 1.5em !important;\n }\n \n .prose li {\n margin-bottom: 0.25em !important;\n padding-left: 0.25em !important;\n line-height: 1.5;\n }\n \n .prose li p {\n margin: 0 !important;\n }\n \n .prose li + li {\n margin-top: 0.1em !important;\n }\n \n .prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {\n margin-top: 1em !important;\n margin-bottom: 0.5em !important;\n font-weight: 600;\n }\n\n /* Button enhancements */\n .btn-modern {\n position: relative;\n overflow: hidden;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .btn-modern::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0));\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .btn-modern:hover::before {\n opacity: 1;\n }\n\n /* Input enhancements */\n .input-modern {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .input-modern:focus {\n transform: translateY(-1px);\n }\n ";
54
+ export declare const CHAT_WIDGET_STYLES = "\n body, button, input, textarea {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n }\n \n /* Complete focus ring removal - covers all browsers and scenarios */\n textarea,\n textarea:focus,\n textarea:focus-visible,\n input,\n input:focus,\n input:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n border-color: inherit !important;\n -webkit-appearance: none !important;\n -moz-appearance: none !important;\n -webkit-tap-highlight-color: transparent !important;\n }\n \n /* Alternative: Uncomment for subtle light focus ring instead of complete removal */\n /*\n textarea:focus,\n textarea:focus-visible {\n outline: 2px solid rgba(203, 213, 225, 0.4) !important;\n outline-offset: -1px !important;\n box-shadow: 0 0 0 1px rgba(203, 213, 225, 0.2) !important;\n }\n */\n \n /* Remove webkit/safari specific styling */\n textarea::-webkit-input-placeholder,\n input::-webkit-input-placeholder {\n -webkit-appearance: none;\n }\n \n /* Ensure buttons also don't show focus rings */\n button:focus,\n button:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n }\n\n /* Enhanced animations for modern feel */\n @keyframes slideInUp {\n 0% { \n opacity: 0; \n transform: translateY(20px) scale(0.95); \n }\n 100% { \n opacity: 1; \n transform: translateY(0) scale(1); \n }\n }\n\n @keyframes slideOutDown {\n 0% { \n opacity: 1; \n transform: translateY(0) scale(1); \n }\n 100% { \n opacity: 0; \n transform: translateY(20px) scale(0.95); \n }\n }\n\n .animate-slide-in-up {\n animation: slideInUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n .animate-slide-out-down {\n animation: slideOutDown 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes pulseGlow {\n 0%, 100% { \n box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);\n }\n 50% { \n box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);\n }\n }\n\n .animate-pulse-glow {\n animation: pulseGlow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n\n @keyframes messageEntry {\n 0% { \n opacity: 0; \n transform: translateY(10px) scale(0.98);\n }\n 100% { \n opacity: 1; \n transform: translateY(0) scale(1);\n }\n }\n\n .animate-message-entry {\n animation: messageEntry 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes buttonHover {\n 0% { transform: translateY(0) scale(1); }\n 100% { transform: translateY(-2px) scale(1.05); }\n }\n\n .animate-button-hover:hover {\n animation: buttonHover 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n \n @keyframes fadeInOut {\n 0% { opacity: 0; transform: translateY(4px); }\n 20% { opacity: 1; transform: translateY(0); }\n 80% { opacity: 1; transform: translateY(0); }\n 100% { opacity: 0; transform: translateY(-4px); }\n }\n .animate-fade-in-out {\n animation: fadeInOut 2s ease-in-out forwards;\n }\n \n @keyframes bounce-gentle {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-8px); }\n }\n .animate-bounce-gentle {\n animation: bounce-gentle 3s ease-in-out infinite;\n animation-delay: 2s;\n }\n\n @keyframes float {\n 0%, 100% { transform: translateY(0px) rotate(0deg) scale(1); }\n 25% { transform: translateY(-8px) rotate(2deg) scale(1.02); }\n 50% { transform: translateY(-4px) rotate(-1deg) scale(1); }\n 75% { transform: translateY(-6px) rotate(1deg) scale(1.01); }\n }\n .animate-float {\n animation: float 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n \n /* Modern typing dots animation */\n @keyframes dotWave {\n 0%, 60%, 100% {\n transform: translateY(0) scale(1);\n background-color: #9ca3af;\n }\n 30% {\n transform: translateY(-10px) scale(1.1);\n background-color: #6b7280;\n }\n }\n \n .typing-dots-container {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 0;\n }\n \n .typing-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #9ca3af;\n animation: dotWave 1.4s ease-in-out infinite;\n }\n \n .typing-dot:nth-child(1) {\n animation-delay: 0s;\n }\n \n .typing-dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n .typing-dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n /* Glassmorphism effects */\n .glass-effect {\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background: rgba(255, 255, 255, 0.8);\n border: 1px solid rgba(255, 255, 255, 0.3);\n }\n\n .glass-effect-dark {\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n background: rgba(30, 41, 59, 0.8);\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n /* Custom scrollbar */\n .custom-scrollbar::-webkit-scrollbar {\n width: 6px;\n }\n\n .custom-scrollbar::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n }\n\n .custom-scrollbar::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 3px;\n transition: background 0.2s ease;\n }\n\n .custom-scrollbar::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n\n /* Horizontal scrollbar for markdown content (tables, code blocks, etc.) */\n .markdown-content-wrapper {\n overflow-x: scroll !important; /* Use 'scroll' to always show scrollbar when content overflows */\n overflow-y: visible !important;\n -webkit-overflow-scrolling: touch;\n /* Force scrollbar to always be visible when content overflows */\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.15);\n }\n\n /* WebKit scrollbar - always visible when overflow */\n .markdown-content-wrapper::-webkit-scrollbar {\n height: 12px;\n width: 12px;\n /* Force scrollbar to always display */\n display: block;\n -webkit-appearance: none;\n }\n\n .markdown-content-wrapper::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.15);\n border-radius: 6px;\n margin: 4px;\n /* Make track always visible */\n -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1);\n }\n\n .markdown-content-wrapper::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.4);\n border-radius: 6px;\n border: 2px solid transparent;\n background-clip: padding-box;\n transition: background 0.2s ease;\n /* Ensure thumb is always visible */\n min-height: 20px;\n }\n\n .markdown-content-wrapper::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.6);\n background-clip: padding-box;\n }\n\n .markdown-content-wrapper::-webkit-scrollbar-thumb:active {\n background: rgba(0, 0, 0, 0.7);\n }\n\n .markdown-content-wrapper::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0.1);\n }\n\n /* Ensure scrollbar styling is consistent across browsers */\n @supports (-webkit-appearance: none) {\n .markdown-content-wrapper::-webkit-scrollbar {\n -webkit-appearance: none;\n }\n }\n\n /* Force scrollbar to always be visible when content overflows (macOS workaround) */\n .markdown-content-wrapper.has-horizontal-scroll {\n /* Reserve space for scrollbar */\n scrollbar-gutter: stable;\n }\n\n .markdown-content-wrapper.has-horizontal-scroll::-webkit-scrollbar {\n /* Force scrollbar to always be visible */\n display: block !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n\n .markdown-content-wrapper.has-horizontal-scroll::-webkit-scrollbar-track {\n /* Make track more visible */\n background: rgba(0, 0, 0, 0.2) !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n\n .markdown-content-wrapper.has-horizontal-scroll::-webkit-scrollbar-thumb {\n /* Make thumb more visible */\n background: rgba(0, 0, 0, 0.5) !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n\n /* Enhanced shadows */\n .shadow-elegant {\n box-shadow: \n 0 10px 25px -5px rgba(0, 0, 0, 0.1),\n 0 8px 10px -6px rgba(0, 0, 0, 0.1),\n 0 0 0 1px rgba(255, 255, 255, 0.05);\n }\n\n .shadow-soft {\n box-shadow: \n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n }\n\n .shadow-floating {\n box-shadow: \n 0 20px 25px -5px rgba(0, 0, 0, 0.1),\n 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n }\n \n .prose {\n max-width: 100%;\n }\n \n .prose > * {\n margin-top: 0 !important;\n margin-bottom: 0.5em !important;\n }\n \n .prose p {\n margin: 0 0 0.5em 0 !important;\n padding: 0;\n line-height: 1.6;\n }\n \n .prose p:last-child {\n margin-bottom: 0 !important;\n }\n \n .prose ul,\n .prose ol {\n margin-top: 0.5em !important;\n margin-bottom: 0.5em !important;\n padding-left: 1.5em !important;\n }\n \n .prose li {\n margin-bottom: 0.25em !important;\n padding-left: 0.25em !important;\n line-height: 1.5;\n }\n \n .prose li p {\n margin: 0 !important;\n }\n \n .prose li + li {\n margin-top: 0.1em !important;\n }\n \n .prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {\n margin-top: 1em !important;\n margin-bottom: 0.5em !important;\n font-weight: 600;\n }\n\n /* Button enhancements */\n .btn-modern {\n position: relative;\n overflow: hidden;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .btn-modern::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0));\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .btn-modern:hover::before {\n opacity: 1;\n }\n\n /* Input enhancements */\n .input-modern {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .input-modern:focus {\n transform: translateY(-1px);\n }\n ";
55
55
  /**
56
56
  * Helper functions for responsive window dimensions
57
57
  */
@@ -0,0 +1,264 @@
1
+ import { U as G, B as A, M } from "./chunk-DI55MBZ5-BY2XXvZz-DbAvz3Pq.js";
2
+ import { x as y, p as t, f as v, a as k, G as U, n as H, av as O, aC as P, az as R, v as C } from "./index-B5s_uaP2.js";
3
+ import { L as I } from "./graph-BfwqPHx6-DErF9dBN.js";
4
+ import { o as $ } from "./layout-CSfkE668-BjigbqJL.js";
5
+ typeof window < "u" && (window.global = window);
6
+ var W = /* @__PURE__ */ y((e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), "drawStartState"), j = /* @__PURE__ */ y((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"), F = /* @__PURE__ */ y((e, n) => {
7
+ const g = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(n.id), s = g.node().getBBox();
8
+ return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", s.width + 2 * t().state.padding).attr("height", s.height + 2 * t().state.padding).attr("rx", t().state.radius), g;
9
+ }, "drawSimpleState"), J = /* @__PURE__ */ y((e, n) => {
10
+ const g = /* @__PURE__ */ y(function(o, u, b) {
11
+ const m = o.append("tspan").attr("x", 2 * t().state.padding).text(u);
12
+ b || m.attr("dy", t().state.textHeight);
13
+ }, "addTspan"), s = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 1.3 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(n.descriptions[0]).node().getBBox(), d = s.height, c = e.append("text").attr("x", t().state.padding).attr(
14
+ "y",
15
+ d + t().state.padding * 0.4 + t().state.dividerMargin + t().state.textHeight
16
+ ).attr("class", "state-description");
17
+ let l = !0, a = !0;
18
+ n.descriptions.forEach(function(o) {
19
+ l || (g(c, o, a), a = !1), l = !1;
20
+ });
21
+ const r = e.append("line").attr("x1", t().state.padding).attr("y1", t().state.padding + d + t().state.dividerMargin / 2).attr("y2", t().state.padding + d + t().state.dividerMargin / 2).attr("class", "descr-divider"), x = c.node().getBBox(), h = Math.max(x.width, s.width);
22
+ return r.attr("x2", h + 3 * t().state.padding), e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", h + 2 * t().state.padding).attr("height", x.height + d + 2 * t().state.padding).attr("rx", t().state.radius), e;
23
+ }, "drawDescrState"), Y = /* @__PURE__ */ y((e, n, g) => {
24
+ const s = t().state.padding, d = 2 * t().state.padding, c = e.node().getBBox(), l = c.width, a = c.x, r = e.append("text").attr("x", 0).attr("y", t().state.titleShift).attr("font-size", t().state.fontSize).attr("class", "state-title").text(n.id), x = r.node().getBBox().width + d;
25
+ let h = Math.max(x, l);
26
+ h === l && (h = h + d);
27
+ let o;
28
+ const u = e.node().getBBox();
29
+ n.doc, o = a - s, x > l && (o = (l - h) / 2 + s), Math.abs(a - u.x) < s && x > l && (o = a - (x - l) / 2);
30
+ const b = 1 - t().state.textHeight;
31
+ return e.insert("rect", ":first-child").attr("x", o).attr("y", b).attr("class", g ? "alt-composit" : "composit").attr("width", h).attr(
32
+ "height",
33
+ u.height + t().state.textHeight + t().state.titleShift + 1
34
+ ).attr("rx", "0"), r.attr("x", o + s), x <= l && r.attr("x", a + (h - d) / 2 - x / 2 + s), e.insert("rect", ":first-child").attr("x", o).attr(
35
+ "y",
36
+ t().state.titleShift - t().state.textHeight - t().state.padding
37
+ ).attr("width", h).attr("height", t().state.textHeight * 3).attr("rx", t().state.radius), e.insert("rect", ":first-child").attr("x", o).attr(
38
+ "y",
39
+ t().state.titleShift - t().state.textHeight - t().state.padding
40
+ ).attr("width", h).attr("height", u.height + 3 + 2 * t().state.textHeight).attr("rx", t().state.radius), e;
41
+ }, "addTitleAndBox"), X = /* @__PURE__ */ y((e) => (e.append("circle").attr("class", "end-state-outer").attr("r", t().state.sizeUnit + t().state.miniPadding).attr(
42
+ "cx",
43
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
44
+ ).attr(
45
+ "cy",
46
+ t().state.padding + t().state.sizeUnit + t().state.miniPadding
47
+ ), e.append("circle").attr("class", "end-state-inner").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit + 2).attr("cy", t().state.padding + t().state.sizeUnit + 2)), "drawEndState"), q = /* @__PURE__ */ y((e, n) => {
48
+ let g = t().state.forkWidth, s = t().state.forkHeight;
49
+ if (n.parentId) {
50
+ let d = g;
51
+ g = s, s = d;
52
+ }
53
+ return e.append("rect").style("stroke", "black").style("fill", "black").attr("width", g).attr("height", s).attr("x", t().state.padding).attr("y", t().state.padding);
54
+ }, "drawForkJoinState"), Z = /* @__PURE__ */ y((e, n, g, s) => {
55
+ let d = 0;
56
+ const c = s.append("text");
57
+ c.style("text-anchor", "start"), c.attr("class", "noteText");
58
+ let l = e.replace(/\r\n/g, "<br/>");
59
+ l = l.replace(/\n/g, "<br/>");
60
+ const a = l.split(H.lineBreakRegex);
61
+ let r = 1.25 * t().state.noteMargin;
62
+ for (const x of a) {
63
+ const h = x.trim();
64
+ if (h.length > 0) {
65
+ const o = c.append("tspan");
66
+ if (o.text(h), r === 0) {
67
+ const u = o.node().getBBox();
68
+ r += u.height;
69
+ }
70
+ d += r, o.attr("x", n + t().state.noteMargin), o.attr("y", g + d + 1.25 * t().state.noteMargin);
71
+ }
72
+ }
73
+ return { textWidth: c.node().getBBox().width, textHeight: d };
74
+ }, "_drawLongText"), _ = /* @__PURE__ */ y((e, n) => {
75
+ n.attr("class", "state-note");
76
+ const g = n.append("rect").attr("x", 0).attr("y", t().state.padding), s = n.append("g"), { textWidth: d, textHeight: c } = Z(e, 0, 0, s);
77
+ return g.attr("height", c + 2 * t().state.noteMargin), g.attr("width", d + t().state.noteMargin * 2), g;
78
+ }, "drawNote"), T = /* @__PURE__ */ y(function(e, n) {
79
+ const g = n.id, s = {
80
+ id: g,
81
+ label: n.id,
82
+ width: 0,
83
+ height: 0
84
+ }, d = e.append("g").attr("id", g).attr("class", "stateGroup");
85
+ n.type === "start" && W(d), n.type === "end" && X(d), (n.type === "fork" || n.type === "join") && q(d, n), n.type === "note" && _(n.note.text, d), n.type === "divider" && j(d), n.type === "default" && n.descriptions.length === 0 && F(d, n), n.type === "default" && n.descriptions.length > 0 && J(d, n);
86
+ const c = d.node().getBBox();
87
+ return s.width = c.width + 2 * t().state.padding, s.height = c.height + 2 * t().state.padding, s;
88
+ }, "drawState"), L = 0, K = /* @__PURE__ */ y(function(e, n, g) {
89
+ const s = /* @__PURE__ */ y(function(r) {
90
+ switch (r) {
91
+ case M.relationType.AGGREGATION:
92
+ return "aggregation";
93
+ case M.relationType.EXTENSION:
94
+ return "extension";
95
+ case M.relationType.COMPOSITION:
96
+ return "composition";
97
+ case M.relationType.DEPENDENCY:
98
+ return "dependency";
99
+ }
100
+ }, "getRelationType");
101
+ n.points = n.points.filter((r) => !Number.isNaN(r.y));
102
+ const d = n.points, c = O().x(function(r) {
103
+ return r.x;
104
+ }).y(function(r) {
105
+ return r.y;
106
+ }).curve(P), l = e.append("path").attr("d", c(d)).attr("id", "edge" + L).attr("class", "transition");
107
+ let a = "";
108
+ if (t().state.arrowMarkerAbsolute && (a = R(!0)), l.attr(
109
+ "marker-end",
110
+ "url(" + a + "#" + s(M.relationType.DEPENDENCY) + "End)"
111
+ ), g.title !== void 0) {
112
+ const r = e.append("g").attr("class", "stateLabel"), { x, y: h } = C.calcLabelPosition(n.points), o = H.getRows(g.title);
113
+ let u = 0;
114
+ const b = [];
115
+ let m = 0, S = 0;
116
+ for (let f = 0; f <= o.length; f++) {
117
+ const p = r.append("text").attr("text-anchor", "middle").text(o[f]).attr("x", x).attr("y", h + u), w = p.node().getBBox();
118
+ m = Math.max(m, w.width), S = Math.min(S, w.x), k.info(w.x, x, h + u), u === 0 && (u = p.node().getBBox().height, k.info("Title height", u, h)), b.push(p);
119
+ }
120
+ let N = u * o.length;
121
+ if (o.length > 1) {
122
+ const f = (o.length - 1) * u * 0.5;
123
+ b.forEach((p, w) => p.attr("y", h + w * u - f)), N = u * o.length;
124
+ }
125
+ const i = r.node().getBBox();
126
+ r.insert("rect", ":first-child").attr("class", "box").attr("x", x - m / 2 - t().state.padding / 2).attr("y", h - N / 2 - t().state.padding / 2 - 3.5).attr("width", m + t().state.padding).attr("height", N + t().state.padding), k.info(i);
127
+ }
128
+ L++;
129
+ }, "drawEdge"), B, z = {}, Q = /* @__PURE__ */ y(function() {
130
+ }, "setConf"), V = /* @__PURE__ */ y(function(e) {
131
+ e.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
132
+ }, "insertMarkers"), tt = /* @__PURE__ */ y(function(e, n, g, s) {
133
+ B = t().state;
134
+ const d = t().securityLevel;
135
+ let c;
136
+ d === "sandbox" && (c = v("#i" + n));
137
+ const l = d === "sandbox" ? v(c.nodes()[0].contentDocument.body) : v("body"), a = d === "sandbox" ? c.nodes()[0].contentDocument : document;
138
+ k.debug("Rendering diagram " + e);
139
+ const r = l.select(`[id='${n}']`);
140
+ V(r);
141
+ const x = s.db.getRootDoc();
142
+ D(x, r, void 0, !1, l, a, s);
143
+ const h = B.padding, o = r.node().getBBox(), u = o.width + h * 2, b = o.height + h * 2, m = u * 1.75;
144
+ U(r, b, m, B.useMaxWidth), r.attr(
145
+ "viewBox",
146
+ `${o.x - B.padding} ${o.y - B.padding} ` + u + " " + b
147
+ );
148
+ }, "draw"), et = /* @__PURE__ */ y((e) => e ? e.length * B.fontSizeFactor : 1, "getLabelWidth"), D = /* @__PURE__ */ y((e, n, g, s, d, c, l) => {
149
+ const a = new I({
150
+ compound: !0,
151
+ multigraph: !0
152
+ });
153
+ let r, x = !0;
154
+ for (r = 0; r < e.length; r++)
155
+ if (e[r].stmt === "relation") {
156
+ x = !1;
157
+ break;
158
+ }
159
+ g ? a.setGraph({
160
+ rankdir: "LR",
161
+ multigraph: !0,
162
+ compound: !0,
163
+ // acyclicer: 'greedy',
164
+ ranker: "tight-tree",
165
+ ranksep: x ? 1 : B.edgeLengthFactor,
166
+ nodeSep: x ? 1 : 50,
167
+ isMultiGraph: !0
168
+ // ranksep: 5,
169
+ // nodesep: 1
170
+ }) : a.setGraph({
171
+ rankdir: "TB",
172
+ multigraph: !0,
173
+ compound: !0,
174
+ // isCompound: true,
175
+ // acyclicer: 'greedy',
176
+ // ranker: 'longest-path'
177
+ ranksep: x ? 1 : B.edgeLengthFactor,
178
+ nodeSep: x ? 1 : 50,
179
+ ranker: "tight-tree",
180
+ // ranker: 'network-simplex'
181
+ isMultiGraph: !0
182
+ }), a.setDefaultEdgeLabel(function() {
183
+ return {};
184
+ });
185
+ const h = l.db.getStates(), o = l.db.getRelations(), u = Object.keys(h);
186
+ for (const i of u) {
187
+ const f = h[i];
188
+ g && (f.parentId = g);
189
+ let p;
190
+ if (f.doc) {
191
+ let w = n.append("g").attr("id", f.id).attr("class", "stateGroup");
192
+ p = D(f.doc, w, f.id, !s, d, c, l);
193
+ {
194
+ w = Y(w, f, s);
195
+ let E = w.node().getBBox();
196
+ p.width = E.width, p.height = E.height + B.padding / 2, z[f.id] = { y: B.compositTitleSize };
197
+ }
198
+ } else
199
+ p = T(n, f, a);
200
+ if (f.note) {
201
+ const w = {
202
+ descriptions: [],
203
+ id: f.id + "-note",
204
+ note: f.note,
205
+ type: "note"
206
+ }, E = T(n, w, a);
207
+ f.note.position === "left of" ? (a.setNode(p.id + "-note", E), a.setNode(p.id, p)) : (a.setNode(p.id, p), a.setNode(p.id + "-note", E)), a.setParent(p.id, p.id + "-group"), a.setParent(p.id + "-note", p.id + "-group");
208
+ } else
209
+ a.setNode(p.id, p);
210
+ }
211
+ k.debug("Count=", a.nodeCount(), a);
212
+ let b = 0;
213
+ o.forEach(function(i) {
214
+ b++, k.debug("Setting edge", i), a.setEdge(
215
+ i.id1,
216
+ i.id2,
217
+ {
218
+ relation: i,
219
+ width: et(i.title),
220
+ height: B.labelHeight * H.getRows(i.title).length,
221
+ labelpos: "c"
222
+ },
223
+ "id" + b
224
+ );
225
+ }), $(a), k.debug("Graph after layout", a.nodes());
226
+ const m = n.node();
227
+ a.nodes().forEach(function(i) {
228
+ i !== void 0 && a.node(i) !== void 0 ? (k.warn("Node " + i + ": " + JSON.stringify(a.node(i))), d.select("#" + m.id + " #" + i).attr(
229
+ "transform",
230
+ "translate(" + (a.node(i).x - a.node(i).width / 2) + "," + (a.node(i).y + (z[i] ? z[i].y : 0) - a.node(i).height / 2) + " )"
231
+ ), d.select("#" + m.id + " #" + i).attr("data-x-shift", a.node(i).x - a.node(i).width / 2), c.querySelectorAll("#" + m.id + " #" + i + " .divider").forEach((f) => {
232
+ const p = f.parentElement;
233
+ let w = 0, E = 0;
234
+ p && (p.parentElement && (w = p.parentElement.getBBox().width), E = parseInt(p.getAttribute("data-x-shift"), 10), Number.isNaN(E) && (E = 0)), f.setAttribute("x1", 0 - E + 8), f.setAttribute("x2", w - E - 8);
235
+ })) : k.debug("No Node " + i + ": " + JSON.stringify(a.node(i)));
236
+ });
237
+ let S = m.getBBox();
238
+ a.edges().forEach(function(i) {
239
+ i !== void 0 && a.edge(i) !== void 0 && (k.debug("Edge " + i.v + " -> " + i.w + ": " + JSON.stringify(a.edge(i))), K(n, a.edge(i), a.edge(i).relation));
240
+ }), S = m.getBBox();
241
+ const N = {
242
+ id: g || "root",
243
+ label: g || "root",
244
+ width: 0,
245
+ height: 0
246
+ };
247
+ return N.width = S.width + 2 * B.padding, N.height = S.height + 2 * B.padding, k.debug("Doc rendered", N, a), N;
248
+ }, "renderDoc"), at = {
249
+ setConf: Q,
250
+ draw: tt
251
+ }, st = {
252
+ parser: A,
253
+ get db() {
254
+ return new M(1);
255
+ },
256
+ renderer: at,
257
+ styles: G,
258
+ init: /* @__PURE__ */ y((e) => {
259
+ e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
260
+ }, "init")
261
+ };
262
+ export {
263
+ st as diagram
264
+ };
@@ -0,0 +1,17 @@
1
+ import { U as e, V as a, B as t, M as o } from "./chunk-DI55MBZ5-BY2XXvZz-DbAvz3Pq.js";
2
+ import { x as s } from "./index-B5s_uaP2.js";
3
+ typeof window < "u" && (window.global = window);
4
+ var w = {
5
+ parser: t,
6
+ get db() {
7
+ return new o(2);
8
+ },
9
+ renderer: a,
10
+ styles: e,
11
+ init: /* @__PURE__ */ s((r) => {
12
+ r.state || (r.state = {}), r.state.arrowMarkerAbsolute = r.arrowMarkerAbsolute;
13
+ }, "init")
14
+ };
15
+ export {
16
+ w as diagram
17
+ };