fixdog 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +80 -433
- package/dist/api/client.d.ts +74 -0
- package/dist/components/ConversationalInputReact.d.ts +26 -0
- package/dist/components/ElementInfoDisplayReact.d.ts +9 -0
- package/dist/components/FixdogSidebarReact.d.ts +29 -0
- package/dist/fiber.d.ts +9 -0
- package/dist/index.cjs.js +33 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +6 -158
- package/dist/index.esm.js +29 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/inspector-B4F5CBT7.cjs.js +1159 -0
- package/dist/inspector-B4F5CBT7.cjs.js.map +1 -0
- package/dist/inspector-BL2pNjn-.cjs.js +1173 -0
- package/dist/inspector-BL2pNjn-.cjs.js.map +1 -0
- package/dist/inspector-Bg6uSvk0.esm.js +1273 -0
- package/dist/inspector-Bg6uSvk0.esm.js.map +1 -0
- package/dist/inspector-BuOffbVc.cjs.js +1280 -0
- package/dist/inspector-BuOffbVc.cjs.js.map +1 -0
- package/dist/inspector-CNgFkZOU.esm.js +1185 -0
- package/dist/inspector-CNgFkZOU.esm.js.map +1 -0
- package/dist/inspector-CPF1N9dL.esm.js +1185 -0
- package/dist/inspector-CPF1N9dL.esm.js.map +1 -0
- package/dist/inspector-CPGK5Lg7.esm.js +1155 -0
- package/dist/inspector-CPGK5Lg7.esm.js.map +1 -0
- package/dist/inspector-CWcTSREy.cjs.js +1174 -0
- package/dist/inspector-CWcTSREy.cjs.js.map +1 -0
- package/dist/inspector-Cn_bl9Io.cjs.js +1189 -0
- package/dist/inspector-Cn_bl9Io.cjs.js.map +1 -0
- package/dist/inspector-D9DuXirp.cjs.js +1189 -0
- package/dist/inspector-D9DuXirp.cjs.js.map +1 -0
- package/dist/inspector-DQEtAjyM.esm.js +1129 -0
- package/dist/inspector-DQEtAjyM.esm.js.map +1 -0
- package/dist/inspector-DVlU9p44.cjs.js +1189 -0
- package/dist/inspector-DVlU9p44.cjs.js.map +1 -0
- package/dist/inspector-DaRVppX9.cjs.js +1134 -0
- package/dist/inspector-DaRVppX9.cjs.js.map +1 -0
- package/dist/inspector-huqtI2MD.esm.js +1170 -0
- package/dist/inspector-huqtI2MD.esm.js.map +1 -0
- package/dist/inspector-spoCY1tf.esm.js +1169 -0
- package/dist/inspector-spoCY1tf.esm.js.map +1 -0
- package/dist/inspector-tY1kJK5_.esm.js +1185 -0
- package/dist/inspector-tY1kJK5_.esm.js.map +1 -0
- package/dist/inspector.d.ts +43 -0
- package/dist/keyboard.d.ts +10 -0
- package/dist/overlay.d.ts +31 -0
- package/dist/react/InspectorProvider.d.ts +6 -0
- package/dist/react/index.cjs.js +32 -0
- package/dist/react/index.cjs.js.map +1 -0
- package/dist/react/index.esm.js +30 -0
- package/dist/react/index.esm.js.map +1 -0
- package/dist/sidebar/SidebarRuntime.d.ts +8 -0
- package/dist/sidebar-runtime.esm.js +2122 -0
- package/dist/sidebar-runtime.esm.js.map +1 -0
- package/dist/sidebar-runtime.iife.js +2991 -0
- package/dist/styles/sidebarStyles.d.ts +2 -0
- package/dist/styles.d.ts +8 -0
- package/dist/types/sidebar.d.ts +62 -0
- package/dist/types.d.ts +47 -0
- package/dist/utils/cookies.d.ts +10 -0
- package/dist/utils/devMode.d.ts +17 -0
- package/dist/utils/sessionStorage.d.ts +19 -0
- package/package.json +57 -40
- package/USAGE.md +0 -77
- package/dist/client/index.d.mts +0 -110
- package/dist/client/index.d.ts +0 -110
- package/dist/client/index.js +0 -1601
- package/dist/client/index.mjs +0 -1582
- package/dist/client/init.d.mts +0 -67
- package/dist/client/init.d.ts +0 -67
- package/dist/client/init.js +0 -1609
- package/dist/client/init.mjs +0 -1593
- package/dist/index.d.mts +0 -158
- package/dist/index.js +0 -1635
- package/dist/index.mjs +0 -1606
- package/src/api/client.ts +0 -141
- package/src/client/index.ts +0 -75
- package/src/client/init.tsx +0 -78
- package/src/components/ConversationalInputReact.tsx +0 -406
- package/src/components/ElementInfoDisplayReact.tsx +0 -84
- package/src/components/UiDogSidebarReact.tsx +0 -49
- package/src/element-detector.ts +0 -186
- package/src/index.ts +0 -228
- package/src/instrument.ts +0 -171
- package/src/sidebar-initializer.ts +0 -171
- package/src/source-resolver.ts +0 -121
- package/src/styles/sidebarStyles.ts +0 -597
- package/src/types/css.d.ts +0 -9
- package/src/types/sidebar.ts +0 -56
- package/src/types.ts +0 -119
- package/tsconfig.json +0 -23
- package/tsup.config.ts +0 -40
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const sidebarStyles = "/* Fixdog Sidebar Styles */\n\n/* CSS Variables - Dark Theme (default) */\n.fixdog-dark {\n --fixdog-bg: #13140a;\n --fixdog-bg-secondary: rgba(0, 0, 0, 0.3);\n --fixdog-bg-tertiary: rgba(0, 0, 0, 0.4);\n --fixdog-border: rgba(255, 255, 255, 0.1);\n --fixdog-border-strong: rgba(255, 255, 255, 0.15);\n --fixdog-text: #ffffff;\n --fixdog-text-secondary: rgba(255, 255, 255, 0.7);\n --fixdog-text-muted: rgba(255, 255, 255, 0.5);\n --fixdog-accent: #3b82f6;\n --fixdog-accent-hover: #2563eb;\n --fixdog-success: #10b981;\n --fixdog-success-hover: #059669;\n --fixdog-warning: #f59e0b;\n --fixdog-error: #ef4444;\n --fixdog-shadow: rgba(0, 0, 0, 0.5);\n --fixdog-modal-bg: rgba(30, 30, 20, 0.98);\n}\n\n/* CSS Variables - Light Theme */\n.fixdog-light {\n --fixdog-bg: #f8f9fa;\n --fixdog-bg-secondary: #ffffff;\n --fixdog-bg-tertiary: #e9ecef;\n --fixdog-border: rgba(0, 0, 0, 0.1);\n --fixdog-border-strong: rgba(0, 0, 0, 0.15);\n --fixdog-text: #1a1a1a;\n --fixdog-text-secondary: #4a4a4a;\n --fixdog-text-muted: #6b7280;\n --fixdog-accent: #2563eb;\n --fixdog-accent-hover: #1d4ed8;\n --fixdog-success: #059669;\n --fixdog-success-hover: #047857;\n --fixdog-warning: #d97706;\n --fixdog-error: #dc2626;\n --fixdog-shadow: rgba(0, 0, 0, 0.12);\n --fixdog-modal-bg: #ffffff;\n}\n\n/* Overlay */\n.fixdog-sidebar-overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 999999;\n pointer-events: none;\n}\n\n/* Main Sidebar Container */\n.fixdog-sidebar {\n position: fixed;\n right: 0;\n top: 0;\n width: 420px;\n max-width: 100vw;\n height: 100vh;\n background: var(--fixdog-bg, #13140a);\n box-shadow: -4px 0 24px var(--fixdog-shadow, rgba(0, 0, 0, 0.5));\n display: flex;\n flex-direction: column;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n font-size: 14px;\n color: var(--fixdog-text, #ffffff);\n pointer-events: auto;\n animation: fixdog-slide-in-right 0.3s ease-out;\n overflow: hidden;\n border-left: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.1));\n}\n\n.fixdog-side-left {\n left: 0;\n right: auto;\n box-shadow: 4px 0 24px var(--fixdog-shadow, rgba(0, 0, 0, 0.5));\n border-left: none;\n border-right: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.1));\n animation: fixdog-slide-in-left 0.3s ease-out;\n}\n\n.fixdog-side-right {\n right: 0;\n left: auto;\n animation: fixdog-slide-in-right 0.3s ease-out;\n}\n\n@keyframes fixdog-slide-in-right {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n@keyframes fixdog-slide-in-left {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n/* Icon spin animation */\n@keyframes fixdog-icon-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.fixdog-icon-spin {\n animation: fixdog-icon-spin 1s linear infinite;\n}\n\n/* Top Bar - Pinned session and theme controls */\n.fixdog-top-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--fixdog-bg-secondary, rgba(0, 0, 0, 0.3));\n border-bottom: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n flex-shrink: 0;\n gap: 12px;\n}\n\n.fixdog-session-top {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.fixdog-top-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.fixdog-theme-toggle,\n.fixdog-side-toggle {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.1));\n border-radius: 8px;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.fixdog-theme-toggle:hover,\n.fixdog-side-toggle:hover {\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.4));\n color: var(--fixdog-text, #ffffff);\n border-color: var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n}\n\n/* Light mode theme toggle */\n.fixdog-light .fixdog-theme-toggle,\n.fixdog-light .fixdog-side-toggle {\n border-color: #d1d5db;\n color: #4b5563;\n}\n\n.fixdog-light .fixdog-theme-toggle:hover,\n.fixdog-light .fixdog-side-toggle:hover {\n background: #f3f4f6;\n color: #1f2937;\n border-color: #9ca3af;\n}\n\n.fixdog-pr-chip {\n font-size: 11px;\n font-weight: 500;\n color: var(--fixdog-accent, #3b82f6);\n text-decoration: none;\n padding: 4px 10px;\n border-radius: 6px;\n background: rgba(59, 130, 246, 0.1);\n transition: all 0.2s;\n white-space: nowrap;\n}\n\n.fixdog-pr-chip:hover {\n background: rgba(59, 130, 246, 0.2);\n}\n\n/* Header */\n.fixdog-sidebar-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 20px 24px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.15);\n background: rgba(0, 0, 0, 0.3);\n flex-shrink: 0;\n}\n\n.fixdog-sidebar-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #ffffff;\n letter-spacing: -0.01em;\n}\n\n.fixdog-close-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n font-size: 28px;\n line-height: 1;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n flex-shrink: 0;\n margin-left: 12px;\n}\n\n.fixdog-close-btn:hover {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text, #ffffff);\n}\n\n/* Light mode close button */\n.fixdog-light .fixdog-close-btn {\n color: #6b7280;\n}\n\n.fixdog-light .fixdog-close-btn:hover {\n background: #f3f4f6;\n color: #1f2937;\n}\n\n/* Content Area */\n.fixdog-sidebar-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 24px;\n scrollbar-width: thin;\n scrollbar-color: rgba(255, 255, 255, 0.2) transparent;\n}\n\n.fixdog-sidebar-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.fixdog-sidebar-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.fixdog-sidebar-content::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2);\n border-radius: 4px;\n}\n\n.fixdog-sidebar-content::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n/* Element Info Section */\n.fixdog-element-info-section {\n padding: 16px 20px;\n border-bottom: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n flex-shrink: 0;\n background: var(--fixdog-bg-secondary, rgba(0, 0, 0, 0.2));\n margin-top: 0;\n}\n\n/* Element Info Section */\n.fixdog-element-info {\n margin-bottom: 0;\n}\n\n.fixdog-element-info-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.fixdog-element-info-title {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--fixdog-text, rgba(255, 255, 255, 0.9));\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.fixdog-toggle-view-btn {\n padding: 6px 14px;\n font-size: 12px;\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text, #ffffff);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n font-weight: 500;\n}\n\n.fixdog-toggle-view-btn:hover {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.2));\n border-color: var(--fixdog-border-strong, rgba(255, 255, 255, 0.3));\n}\n\n/* Light mode toggle view button */\n.fixdog-light .fixdog-toggle-view-btn {\n background: #f3f4f6;\n border-color: #d1d5db;\n color: #374151;\n}\n\n.fixdog-light .fixdog-toggle-view-btn:hover {\n background: #e5e7eb;\n border-color: #9ca3af;\n}\n\n.fixdog-element-info-content {\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.3));\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n border-radius: 8px;\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n}\n\n/* Light mode element info content */\n.fixdog-light .fixdog-element-info-content {\n background: #ffffff;\n border-color: #e5e7eb;\n}\n\n.fixdog-file-location {\n font-family: \"SF Mono\", Monaco, Menlo, Consolas, monospace;\n font-size: 13px;\n color: var(--fixdog-text, #ffffff);\n word-break: break-word;\n}\n\n.fixdog-info-row {\n display: flex;\n margin-bottom: 12px;\n line-height: 1.6;\n}\n\n.fixdog-info-row:last-of-type {\n margin-bottom: 0;\n}\n\n.fixdog-info-row:last-child {\n margin-bottom: 0;\n}\n\n.fixdog-info-label {\n flex-shrink: 0;\n width: 100px;\n font-weight: 500;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.75));\n font-size: 13px;\n}\n\n.fixdog-info-value {\n flex: 1;\n color: var(--fixdog-text, #ffffff);\n word-break: break-word;\n font-size: 13px;\n}\n\n.fixdog-component-name {\n font-weight: 600;\n color: var(--fixdog-accent, #60a5fa);\n}\n\n.fixdog-file-path {\n font-family: \"SF Mono\", Monaco, Menlo, Consolas, monospace;\n font-size: 12px;\n}\n\n.fixdog-mono {\n font-family: \"SF Mono\", Monaco, Menlo, Consolas, monospace;\n font-size: 12px;\n}\n\n.fixdog-detailed-section {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.1));\n}\n\n.fixdog-code-preview {\n flex-direction: column;\n}\n\n.fixdog-code-placeholder {\n margin-top: 6px;\n padding: 8px;\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.3));\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.8));\n border-radius: 4px;\n font-family: \"SF Mono\", Monaco, Menlo, Consolas, monospace;\n font-size: 12px;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Chat Container */\n.fixdog-chat-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n}\n\n/* Messages Container */\n.fixdog-messages-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 16px 20px;\n scrollbar-width: thin;\n scrollbar-color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.2)) transparent;\n}\n\n.fixdog-messages-container::-webkit-scrollbar {\n width: 8px;\n}\n\n.fixdog-messages-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.fixdog-messages-container::-webkit-scrollbar-thumb {\n background: var(--fixdog-text-muted, rgba(255, 255, 255, 0.2));\n border-radius: 4px;\n}\n\n.fixdog-messages-container::-webkit-scrollbar-thumb:hover {\n background: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.3));\n}\n\n/* Empty State */\n.fixdog-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 200px;\n width: 100%;\n}\n\n.fixdog-empty-state-text {\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.6));\n font-size: 14px;\n text-align: center;\n}\n\n/* Secret Prompt */\n.fixdog-secret-prompt {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n padding: 24px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.fixdog-secret-title {\n font-size: 16px;\n font-weight: 600;\n color: #ffffff;\n}\n\n.fixdog-secret-description {\n font-size: 13px;\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.6));\n text-align: center;\n}\n\n.fixdog-secret-input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n}\n\n.fixdog-secret-input {\n width: 100%;\n padding: 10px 14px;\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n border-radius: 8px;\n font-family: inherit;\n font-size: 14px;\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.4));\n color: var(--fixdog-text, #ffffff);\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n box-sizing: border-box;\n}\n\n.fixdog-secret-input::placeholder {\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n}\n\n.fixdog-secret-input:focus {\n outline: none;\n border-color: var(--fixdog-accent, #60a5fa);\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.5));\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);\n}\n\n/* Light mode secret input */\n.fixdog-light .fixdog-secret-input {\n background: #ffffff;\n border-color: #d1d5db;\n}\n\n.fixdog-light .fixdog-secret-input:focus {\n background: #ffffff;\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.fixdog-secret-submit-btn {\n width: 100%;\n padding: 10px 16px;\n font-size: 14px;\n font-weight: 500;\n color: #ffffff;\n background: var(--fixdog-accent, #3b82f6);\n border: none;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.fixdog-secret-submit-btn:hover:not(:disabled) {\n background: var(--fixdog-accent-hover, #2563eb);\n}\n\n.fixdog-secret-submit-btn:disabled {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.4));\n cursor: not-allowed;\n}\n\n/* Light mode disabled button */\n.fixdog-light .fixdog-secret-submit-btn:disabled {\n background: #e5e7eb;\n color: #9ca3af;\n}\n\n/* Messages */\n.fixdog-message {\n margin-bottom: 16px;\n display: flex;\n animation: fixdog-message-fade-in 0.2s ease-out;\n}\n\n@keyframes fixdog-message-fade-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.fixdog-message-user {\n justify-content: flex-end;\n}\n\n.fixdog-message-assistant {\n justify-content: flex-start;\n}\n\n/* Message Bubbles */\n.fixdog-message-bubble {\n max-width: 80%;\n padding: 12px 16px;\n border-radius: 12px;\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.fixdog-message-user .fixdog-message-bubble {\n background: rgba(59, 130, 246, 0.15);\n border: 1px solid rgba(59, 130, 246, 0.25);\n color: var(--fixdog-accent, #3b82f6);\n}\n\n.fixdog-light .fixdog-message-user .fixdog-message-bubble {\n background: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n}\n\n.fixdog-message-assistant .fixdog-message-bubble {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.08));\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.9));\n}\n\n.fixdog-message-content {\n line-height: 1.6;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 14px;\n}\n\n.fixdog-message-content.fixdog-message-error {\n color: #fca5a5;\n}\n\n/* Loading Message */\n.fixdog-message-loading {\n display: flex;\n align-items: center;\n gap: 10px;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n font-size: 14px;\n}\n\n.fixdog-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n border-top-color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.8));\n border-radius: 50%;\n animation: fixdog-spin 0.8s linear infinite;\n}\n\n.fixdog-spinner-small {\n width: 14px;\n height: 14px;\n border: 2px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.3));\n border-top-color: var(--fixdog-text, #ffffff);\n border-radius: 50%;\n animation: fixdog-spin 0.8s linear infinite;\n}\n\n/* Light mode spinner */\n.fixdog-light .fixdog-spinner {\n border-color: #e5e7eb;\n border-top-color: #4b5563;\n}\n\n.fixdog-light .fixdog-spinner-small {\n border-color: #d1d5db;\n border-top-color: #374151;\n}\n\n@keyframes fixdog-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Fixed Input Footer */\n.fixdog-input-footer-fixed {\n flex-shrink: 0;\n padding: 16px 20px;\n border-top: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n background: var(--fixdog-bg-secondary, rgba(0, 0, 0, 0.3));\n}\n\n.fixdog-input-wrapper {\n position: relative;\n margin-bottom: 8px;\n}\n\n.fixdog-textarea {\n width: 100%;\n padding: 10px 60px 10px 14px;\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n border-radius: 8px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n resize: none;\n min-height: 44px;\n max-height: 200px;\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.4));\n color: var(--fixdog-text, #ffffff);\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n box-sizing: border-box;\n overflow-wrap: break-word;\n word-wrap: break-word;\n overflow-y: auto;\n}\n\n.fixdog-textarea::placeholder {\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n}\n\n.fixdog-textarea:focus {\n outline: none;\n border-color: var(--fixdog-accent, #60a5fa);\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.5));\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);\n}\n\n.fixdog-textarea:disabled {\n background: var(--fixdog-bg-secondary, rgba(0, 0, 0, 0.2));\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n cursor: not-allowed;\n}\n\n.fixdog-submit-btn {\n position: absolute;\n bottom: 10px;\n right: 6px;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n font-size: 14px;\n font-weight: 500;\n color: #ffffff;\n background: #3b82f6;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n.fixdog-submit-btn:active {\n transform: translateY(1px);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n}\n\n.fixdog-submit-btn:hover:not(:disabled) {\n background: #2563eb;\n}\n\n.fixdog-submit-btn:disabled {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.3));\n cursor: not-allowed;\n}\n\n/* Light mode submit button disabled */\n.fixdog-light .fixdog-submit-btn:disabled {\n background: #e5e7eb;\n color: #9ca3af;\n}\n\n.fixdog-submit-btn svg {\n stroke: currentColor;\n}\n\n.fixdog-input-hint {\n font-size: 11px;\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n text-align: center;\n margin-top: 4px;\n}\n\n.fixdog-send-to-dev-section {\n margin-top: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.fixdog-send-to-dev-btn {\n width: 100%;\n padding: 10px 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: #ffffff;\n background: #10b981;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n.fixdog-send-to-dev-btn:hover:not(:disabled) {\n background: #059669;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);\n}\n\n.fixdog-send-to-dev-btn:active:not(:disabled) {\n transform: translateY(1px);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n}\n\n.fixdog-send-to-dev-btn:disabled {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n cursor: not-allowed;\n}\n\n/* Light mode send-to-dev disabled */\n.fixdog-light .fixdog-send-to-dev-btn:disabled {\n background: #e5e7eb;\n color: #9ca3af;\n}\n\n.fixdog-send-to-dev-btn svg {\n stroke: currentColor;\n}\n\n.fixdog-pr-link {\n display: block;\n text-align: center;\n font-size: 13px;\n font-weight: 500;\n color: #60a5fa;\n text-decoration: none;\n padding: 6px;\n border-radius: 6px;\n transition: all 0.2s;\n}\n\n.fixdog-pr-link:hover {\n background: rgba(96, 165, 250, 0.1);\n color: #93c5fd;\n text-decoration: underline;\n}\n\n.fixdog-retry-btn {\n margin-top: 8px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: #ffffff;\n background: #ef4444;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.2s;\n}\n\n.fixdog-retry-btn:hover {\n background: #dc2626;\n}\n\n/* Footer */\n.fixdog-sidebar-footer {\n padding: 16px 24px;\n border-top: 1px solid rgba(255, 255, 255, 0.15);\n background: rgba(0, 0, 0, 0.3);\n text-align: center;\n flex-shrink: 0;\n}\n\n.fixdog-footer-text {\n font-size: 12px;\n color: rgba(255, 255, 255, 0.7);\n}\n\n.fixdog-footer-link {\n color: #60a5fa;\n text-decoration: none;\n font-weight: 500;\n}\n\n.fixdog-footer-link:hover {\n text-decoration: underline;\n color: #93c5fd;\n}\n\n/* Selected Components List */\n.fixdog-selected-components-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-height: 200px;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.2)) transparent;\n}\n\n.fixdog-selected-components-list::-webkit-scrollbar {\n width: 6px;\n}\n\n.fixdog-selected-components-list::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.fixdog-selected-components-list::-webkit-scrollbar-thumb {\n background: var(--fixdog-text-muted, rgba(255, 255, 255, 0.2));\n border-radius: 3px;\n}\n\n/* Light mode scrollbar */\n.fixdog-light .fixdog-selected-components-list {\n scrollbar-color: #d1d5db transparent;\n}\n\n.fixdog-light .fixdog-selected-components-list::-webkit-scrollbar-thumb {\n background: #d1d5db;\n}\n\n.fixdog-selected-component-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.3));\n border: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.1));\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.fixdog-selected-component-item:hover {\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.4));\n border-color: var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n}\n\n/* Light mode component items */\n.fixdog-light .fixdog-selected-component-item {\n background: #ffffff;\n border-color: #e5e7eb;\n}\n\n.fixdog-light .fixdog-selected-component-item:hover {\n background: #f9fafb;\n border-color: #d1d5db;\n}\n\n.fixdog-component-chip-wrapper {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.fixdog-component-chip {\n width: 24px;\n height: 24px;\n min-width: 24px;\n background: #3b82f6;\n color: #ffffff;\n font-size: 12px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.fixdog-component-chip:hover {\n background: #2563eb;\n transform: scale(1.1);\n}\n\n.fixdog-component-details {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.fixdog-component-name-label {\n font-weight: 600;\n color: var(--fixdog-accent, #60a5fa);\n font-size: 13px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.fixdog-component-file-label {\n font-family: \"SF Mono\", Monaco, Menlo, Consolas, monospace;\n font-size: 11px;\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.6));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.fixdog-remove-component-btn {\n width: 24px;\n height: 24px;\n min-width: 24px;\n border: none;\n background: transparent;\n font-size: 18px;\n line-height: 1;\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n margin-left: 8px;\n}\n\n.fixdog-remove-component-btn:hover {\n background: rgba(239, 68, 68, 0.2);\n color: var(--fixdog-error, #ef4444);\n}\n\n.fixdog-selection-hint {\n margin-top: 12px;\n font-size: 11px;\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n text-align: center;\n}\n\n/* Chip Input Styles */\n.fixdog-chip-input-container {\n position: relative;\n width: 100%;\n}\n\n.fixdog-chip-input {\n width: 100%;\n min-height: 80px;\n max-height: 200px;\n padding: 12px 14px 44px 14px;\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.2));\n border-radius: 8px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.4));\n color: var(--fixdog-text, #ffffff);\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n box-sizing: border-box;\n overflow-y: auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n.fixdog-chip-input:empty::before {\n content: attr(data-placeholder);\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n pointer-events: none;\n}\n\n.fixdog-chip-input:focus {\n outline: none;\n border-color: var(--fixdog-accent, #60a5fa);\n background: var(--fixdog-bg-tertiary, rgba(0, 0, 0, 0.5));\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);\n}\n\n.fixdog-chip-input[data-disabled=\"true\"] {\n background: var(--fixdog-bg-secondary, rgba(0, 0, 0, 0.2));\n color: var(--fixdog-text-muted, rgba(255, 255, 255, 0.5));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Light mode chip input */\n.fixdog-light .fixdog-chip-input {\n background: #ffffff;\n border-color: #d1d5db;\n}\n\n.fixdog-light .fixdog-chip-input:focus {\n background: #ffffff;\n border-color: var(--fixdog-accent);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n/* Inline chip in input */\n.fixdog-inline-chip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n background: #3b82f6;\n color: #ffffff;\n font-size: 11px;\n font-weight: 700;\n border-radius: 50%;\n margin: 0 2px;\n vertical-align: middle;\n user-select: none;\n cursor: default;\n}\n\n/* Message display chip */\n.fixdog-message-chip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n background: #3b82f6;\n color: #ffffff;\n font-size: 10px;\n font-weight: 700;\n border-radius: 50%;\n margin: 0 2px;\n vertical-align: middle;\n}\n\n/* Session elements in top bar */\n.fixdog-session-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--fixdog-text-muted, rgba(255, 255, 255, 0.3));\n transition: background 0.2s;\n flex-shrink: 0;\n}\n\n.fixdog-session-dot.active {\n background: var(--fixdog-success, #22c55e);\n box-shadow: 0 0 6px rgba(34, 197, 94, 0.5);\n}\n\n.fixdog-session-label {\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n font-weight: 500;\n font-size: 12px;\n white-space: nowrap;\n}\n\n.fixdog-new-session-btn {\n font-size: 11px;\n font-weight: 500;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n border: 1px solid var(--fixdog-border, rgba(255, 255, 255, 0.15));\n padding: 5px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n}\n\n.fixdog-new-session-btn:hover {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.15));\n color: var(--fixdog-text, #ffffff);\n border-color: var(--fixdog-border-strong, rgba(255, 255, 255, 0.25));\n}\n\n.fixdog-new-session-btn.primary {\n background: var(--fixdog-accent, #3b82f6);\n color: #ffffff;\n border-color: var(--fixdog-accent, #3b82f6);\n font-weight: 600;\n}\n\n.fixdog-new-session-btn.primary:hover {\n background: var(--fixdog-accent-hover, #2563eb);\n border-color: var(--fixdog-accent-hover, #2563eb);\n}\n\n/* Light mode session button */\n.fixdog-light .fixdog-new-session-btn {\n background: #f3f4f6;\n color: #4b5563;\n border-color: #d1d5db;\n}\n\n.fixdog-light .fixdog-new-session-btn:hover {\n background: #e5e7eb;\n color: #1f2937;\n border-color: #9ca3af;\n}\n\n/* Inline Modal - inside chat container */\n.fixdog-inline-modal {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n padding: 20px;\n margin: 0 16px 16px 16px;\n background: var(--fixdog-modal-bg, rgba(30, 30, 20, 0.98));\n border: 1px solid var(--fixdog-warning, rgba(255, 200, 100, 0.3));\n border-radius: 12px;\n box-shadow: 0 4px 20px var(--fixdog-shadow, rgba(0, 0, 0, 0.4));\n animation: fixdog-modal-slide-in 0.2s ease-out;\n}\n\n/* Light mode modal adjustments */\n.fixdog-light .fixdog-inline-modal {\n border-color: var(--fixdog-border-strong);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);\n}\n\n.fixdog-inline-modal.error {\n border-color: var(--fixdog-error, #ef4444);\n}\n\n@keyframes fixdog-modal-slide-in {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.fixdog-inline-modal-icon {\n color: var(--fixdog-warning, #f59e0b);\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.fixdog-inline-modal.error .fixdog-inline-modal-icon {\n color: var(--fixdog-error, #ef4444);\n}\n\n.fixdog-inline-modal-content {\n text-align: center;\n}\n\n.fixdog-inline-modal-title {\n font-size: 15px;\n font-weight: 600;\n color: var(--fixdog-text, #ffffff);\n margin-bottom: 6px;\n}\n\n.fixdog-inline-modal-body {\n font-size: 13px;\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.7));\n line-height: 1.5;\n}\n\n.fixdog-inline-modal-actions {\n display: flex;\n gap: 10px;\n margin-top: 4px;\n}\n\n.fixdog-inline-modal-btn {\n padding: 8px 16px;\n font-size: 13px;\n font-weight: 500;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.fixdog-inline-modal-btn.cancel {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.1));\n color: var(--fixdog-text-secondary, rgba(255, 255, 255, 0.8));\n border: 1px solid var(--fixdog-border-strong, rgba(255, 255, 255, 0.15));\n}\n\n.fixdog-inline-modal-btn.cancel:hover {\n background: var(--fixdog-bg-tertiary, rgba(255, 255, 255, 0.15));\n color: var(--fixdog-text, #ffffff);\n}\n\n/* Light mode cancel button */\n.fixdog-light .fixdog-inline-modal-btn.cancel {\n background: #f3f4f6;\n color: #374151;\n border-color: #d1d5db;\n}\n\n.fixdog-light .fixdog-inline-modal-btn.cancel:hover {\n background: #e5e7eb;\n color: #1f2937;\n}\n\n.fixdog-inline-modal-btn.confirm {\n background: var(--fixdog-warning, #f59e0b);\n color: #000000;\n font-weight: 600;\n}\n\n.fixdog-inline-modal-btn.confirm:hover {\n background: #d97706;\n}\n\n.fixdog-inline-modal-btn.confirm.success {\n background: var(--fixdog-success, #10b981);\n color: #ffffff;\n}\n\n.fixdog-inline-modal-btn.confirm.success:hover {\n background: var(--fixdog-success-hover, #059669);\n}\n\n/* Mobile Responsive */\n@media (max-width: 768px) {\n .fixdog-sidebar {\n width: 100vw;\n }\n\n .fixdog-session-status-bar {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .fixdog-session-status-right {\n width: 100%;\n justify-content: flex-end;\n }\n}";
|
|
2
|
+
export default sidebarStyles;
|
package/dist/styles.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OverlayOptions } from './types';
|
|
2
|
+
export declare const STYLE_ELEMENT_ID = "fixdog-sdk-styles";
|
|
3
|
+
export declare const OVERLAY_CLASS = "fixdog-overlay";
|
|
4
|
+
export declare const TOOLTIP_CLASS = "fixdog-tooltip";
|
|
5
|
+
export declare const HIGHLIGHT_CLASS = "fixdog-highlight";
|
|
6
|
+
export declare const SELECTION_CLASS = "fixdog-selection";
|
|
7
|
+
export declare const SELECTION_BADGE_CLASS = "fixdog-selection-badge";
|
|
8
|
+
export declare const baseStyles: (options: OverlayOptions) => string;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface ElementInfo {
|
|
2
|
+
componentName: string;
|
|
3
|
+
filePath: string;
|
|
4
|
+
line: number;
|
|
5
|
+
column: number;
|
|
6
|
+
componentTree?: string[];
|
|
7
|
+
box?: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
code?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SelectedComponent {
|
|
16
|
+
id: number;
|
|
17
|
+
editorUrl: string;
|
|
18
|
+
elementInfo: ElementInfo;
|
|
19
|
+
elementRef?: Element;
|
|
20
|
+
}
|
|
21
|
+
export interface SidebarState {
|
|
22
|
+
isOpen: boolean;
|
|
23
|
+
elementInfo: ElementInfo | null;
|
|
24
|
+
editorUrl: string | null;
|
|
25
|
+
selectedComponents: SelectedComponent[];
|
|
26
|
+
}
|
|
27
|
+
export type ViewMode = "minimal" | "detailed";
|
|
28
|
+
export interface ApiConfig {
|
|
29
|
+
endpoint: string;
|
|
30
|
+
timeout?: number;
|
|
31
|
+
}
|
|
32
|
+
export interface UiDogSidebarEvent {
|
|
33
|
+
editorUrl: string;
|
|
34
|
+
elementInfo: ElementInfo;
|
|
35
|
+
selectedComponent?: SelectedComponent;
|
|
36
|
+
}
|
|
37
|
+
export interface UiDogAddComponentEvent {
|
|
38
|
+
selectedComponent: SelectedComponent;
|
|
39
|
+
}
|
|
40
|
+
export interface UiDogRemoveComponentEvent {
|
|
41
|
+
componentId: number;
|
|
42
|
+
}
|
|
43
|
+
export interface UiDogClearSelectionsEvent {
|
|
44
|
+
}
|
|
45
|
+
declare global {
|
|
46
|
+
interface Window {
|
|
47
|
+
__FIXDOG_SIDEBAR__?: {
|
|
48
|
+
isOpen: boolean;
|
|
49
|
+
currentElement: any;
|
|
50
|
+
editorUrl: string | null;
|
|
51
|
+
selectedComponents: SelectedComponent[];
|
|
52
|
+
};
|
|
53
|
+
__FIXDOG_LAST_ELEMENT__?: ElementInfo;
|
|
54
|
+
__FIXDOG_SELECTED_COMPONENTS__?: SelectedComponent[];
|
|
55
|
+
}
|
|
56
|
+
interface WindowEventMap {
|
|
57
|
+
"fixdog:open-sidebar": CustomEvent<UiDogSidebarEvent>;
|
|
58
|
+
"fixdog:add-component": CustomEvent<UiDogAddComponentEvent>;
|
|
59
|
+
"fixdog:remove-component": CustomEvent<UiDogRemoveComponentEvent>;
|
|
60
|
+
"fixdog:clear-selections": CustomEvent<UiDogClearSelectionsEvent>;
|
|
61
|
+
}
|
|
62
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface SourceInfo {
|
|
2
|
+
componentName: string;
|
|
3
|
+
fileName: string;
|
|
4
|
+
lineNumber: number;
|
|
5
|
+
columnNumber: number;
|
|
6
|
+
fiber?: any;
|
|
7
|
+
element?: Element | null;
|
|
8
|
+
}
|
|
9
|
+
export type TooltipPosition = 'auto' | 'top' | 'bottom';
|
|
10
|
+
export interface InspectorOptions {
|
|
11
|
+
/** Called when user clicks (or programmatically triggers) a component. */
|
|
12
|
+
onClick?: (info: SourceInfo) => void;
|
|
13
|
+
/** Called when hovered info changes; null when leaving React tree. */
|
|
14
|
+
onHover?: (info: SourceInfo | null) => void;
|
|
15
|
+
/** Keyboard shortcut to toggle persistent inspect mode. Default: ctrl+shift+x */
|
|
16
|
+
shortcut?: string;
|
|
17
|
+
/** Enable option/alt+click inspection. Default: true */
|
|
18
|
+
useOptionClick?: boolean;
|
|
19
|
+
/** Enable inspector. Default: true in development only. */
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
/** z-index applied to overlay elements. Default: 999999 */
|
|
22
|
+
zIndex?: number;
|
|
23
|
+
/** Border color for highlight. Default: React blue (#61dafb) */
|
|
24
|
+
borderColor?: string;
|
|
25
|
+
/** Tooltip position preference. Default: auto */
|
|
26
|
+
tooltipPosition?: TooltipPosition;
|
|
27
|
+
/** Enable sidebar mode. Default: true */
|
|
28
|
+
enableSidebar?: boolean;
|
|
29
|
+
/** API endpoint for sidebar chat. Default: http://localhost:3000 */
|
|
30
|
+
apiEndpoint?: string;
|
|
31
|
+
/** Project identifier required by backend auth */
|
|
32
|
+
projectId?: string;
|
|
33
|
+
/** Model identifier to use for chat requests */
|
|
34
|
+
modelId?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface OverlayOptions {
|
|
37
|
+
zIndex: number;
|
|
38
|
+
borderColor: string;
|
|
39
|
+
tooltipPosition: TooltipPosition;
|
|
40
|
+
}
|
|
41
|
+
export interface InspectorState {
|
|
42
|
+
active: boolean;
|
|
43
|
+
persistent: boolean;
|
|
44
|
+
}
|
|
45
|
+
export type Nullable<T> = T | null;
|
|
46
|
+
export declare const DEFAULT_SHORTCUT = "ctrl+shift+x";
|
|
47
|
+
export declare const DEFAULT_OPTIONS: Required<Pick<InspectorOptions, 'shortcut' | 'useOptionClick' | 'enabled' | 'zIndex' | 'borderColor' | 'tooltipPosition' | 'enableSidebar' | 'apiEndpoint'>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the stored secret from cookies
|
|
3
|
+
* @returns The secret string or null if not set
|
|
4
|
+
*/
|
|
5
|
+
export declare function getSecret(): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Store the secret in a persistent cookie (no expiry)
|
|
8
|
+
* @param secret The secret to store
|
|
9
|
+
*/
|
|
10
|
+
export declare function setSecret(secret: string): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development mode detection utility
|
|
3
|
+
* Checks multiple signals to determine if the host app is in development mode
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Determines if the host application is running in development mode.
|
|
7
|
+
* Uses strict detection - only returns true if explicitly in dev mode.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isDevMode(): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Log message to display when not in dev mode
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEV_MODE_WARNING = "[fixdog] app not in dev mode, please run fixdog in dev mode";
|
|
14
|
+
/**
|
|
15
|
+
* Resets the cached dev mode result (useful for testing)
|
|
16
|
+
*/
|
|
17
|
+
export declare function resetDevModeCache(): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface StoredSession {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
modelId?: string;
|
|
4
|
+
savedAt: number;
|
|
5
|
+
}
|
|
6
|
+
export interface StoredPr {
|
|
7
|
+
prUrl: string;
|
|
8
|
+
branchName?: string;
|
|
9
|
+
savedAt: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function loadSession(projectId: string): StoredSession | null;
|
|
12
|
+
export declare function saveSession(projectId: string, session: StoredSession): void;
|
|
13
|
+
export declare function clearSession(projectId: string): void;
|
|
14
|
+
export declare function loadLastPr(projectId: string): StoredPr | null;
|
|
15
|
+
export declare function saveLastPr(projectId: string, pr: StoredPr): void;
|
|
16
|
+
export declare function clearLastPr(projectId: string): void;
|
|
17
|
+
export type Theme = "dark" | "light";
|
|
18
|
+
export declare function loadTheme(): Theme;
|
|
19
|
+
export declare function saveTheme(theme: Theme): void;
|
package/package.json
CHANGED
|
@@ -1,57 +1,74 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fixdog",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Option+Click any React component to see its source location",
|
|
5
|
+
"main": "dist/index.cjs.js",
|
|
6
|
+
"module": "dist/index.esm.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
8
9
|
"exports": {
|
|
9
10
|
".": {
|
|
10
|
-
"
|
|
11
|
-
"
|
|
11
|
+
"import": "./dist/index.esm.js",
|
|
12
|
+
"require": "./dist/index.cjs.js",
|
|
12
13
|
"types": "./dist/index.d.ts"
|
|
13
14
|
},
|
|
14
|
-
"./
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"types": "./dist/
|
|
18
|
-
}
|
|
19
|
-
"./init": {
|
|
20
|
-
"require": "./dist/client/init.js",
|
|
21
|
-
"import": "./dist/client/init.mjs",
|
|
22
|
-
"types": "./dist/client/init.d.ts"
|
|
23
|
-
},
|
|
24
|
-
"./package.json": "./package.json"
|
|
15
|
+
"./react": {
|
|
16
|
+
"import": "./dist/react/index.esm.js",
|
|
17
|
+
"require": "./dist/react/index.cjs.js",
|
|
18
|
+
"types": "./dist/react/index.d.ts"
|
|
19
|
+
}
|
|
25
20
|
},
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
26
25
|
"scripts": {
|
|
27
|
-
"build": "
|
|
28
|
-
"dev": "
|
|
26
|
+
"build": "rollup -c && rollup -c",
|
|
27
|
+
"dev": "rollup -c -w",
|
|
29
28
|
"prepublishOnly": "npm run build"
|
|
30
29
|
},
|
|
31
|
-
"keywords": [
|
|
32
|
-
"uidog",
|
|
33
|
-
"nextjs",
|
|
34
|
-
"react",
|
|
35
|
-
"devtools",
|
|
36
|
-
"bippy",
|
|
37
|
-
"element-inspector",
|
|
38
|
-
"source-location"
|
|
39
|
-
],
|
|
40
|
-
"author": "Infi-PC",
|
|
41
|
-
"license": "MIT",
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"bippy": "^0.5.25"
|
|
44
|
-
},
|
|
45
30
|
"peerDependencies": {
|
|
46
|
-
"
|
|
47
|
-
"react": ">=
|
|
48
|
-
|
|
31
|
+
"react": ">=16.8.0",
|
|
32
|
+
"react-dom": ">=16.8.0"
|
|
33
|
+
},
|
|
34
|
+
"peerDependenciesMeta": {
|
|
35
|
+
"react": {
|
|
36
|
+
"optional": true
|
|
37
|
+
},
|
|
38
|
+
"react-dom": {
|
|
39
|
+
"optional": true
|
|
40
|
+
}
|
|
49
41
|
},
|
|
50
42
|
"devDependencies": {
|
|
51
|
-
"@
|
|
43
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
44
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
45
|
+
"@rollup/plugin-replace": "^6.0.3",
|
|
46
|
+
"@rollup/plugin-typescript": "^11.1.0",
|
|
47
|
+
"@types/node": "^22.10.1",
|
|
52
48
|
"@types/react": "^18.2.0",
|
|
53
49
|
"@types/react-dom": "^18.2.0",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
50
|
+
"react": "^18.2.0",
|
|
51
|
+
"react-dom": "^18.2.0",
|
|
52
|
+
"rollup": "^4.0.0",
|
|
53
|
+
"tslib": "^2.6.2",
|
|
54
|
+
"typescript": "^5.0.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"source-map-js": "^1.0.2"
|
|
58
|
+
},
|
|
59
|
+
"keywords": [
|
|
60
|
+
"react",
|
|
61
|
+
"devtools",
|
|
62
|
+
"inspector",
|
|
63
|
+
"debug",
|
|
64
|
+
"source",
|
|
65
|
+
"nextjs",
|
|
66
|
+
"developer-experience",
|
|
67
|
+
"fixdog"
|
|
68
|
+
],
|
|
69
|
+
"repository": {
|
|
70
|
+
"type": "git",
|
|
71
|
+
"url": "https://github.com/username/fixdog-sdk"
|
|
72
|
+
},
|
|
73
|
+
"license": "MIT"
|
|
57
74
|
}
|
package/USAGE.md
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Usage Guide
|
|
2
|
-
|
|
3
|
-
## Next.js
|
|
4
|
-
|
|
5
|
-
### Next.js 15.3+ (recommended)
|
|
6
|
-
|
|
7
|
-
1. Create `instrumentation-client.ts` at project root:
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
import "uidog-sdk-next/client";
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
2. Run `npm run dev` and use Alt+click in the browser.
|
|
14
|
-
|
|
15
|
-
### Next.js 14.x – 15.2
|
|
16
|
-
|
|
17
|
-
- App Router (`app/layout.tsx`), first import:
|
|
18
|
-
|
|
19
|
-
```ts
|
|
20
|
-
import "uidog-sdk-next/client";
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
- Pages Router (`pages/_app.tsx`), first import:
|
|
24
|
-
|
|
25
|
-
```ts
|
|
26
|
-
import "uidog-sdk-next/client"; // must be first!
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
- Start dev server and Alt+click.
|
|
30
|
-
|
|
31
|
-
### Optional: Provider config (sidebar, editor, modifier)
|
|
32
|
-
|
|
33
|
-
```tsx
|
|
34
|
-
// app/layout.tsx or pages/_app.tsx
|
|
35
|
-
import "uidog-sdk-next/client";
|
|
36
|
-
import { UiDogProvider } from "uidog-sdk-next/init";
|
|
37
|
-
|
|
38
|
-
export default function RootLayout({ children }) {
|
|
39
|
-
return (
|
|
40
|
-
<UiDogProvider
|
|
41
|
-
editor="cursor"
|
|
42
|
-
modifier="alt"
|
|
43
|
-
enableSidebar={true}
|
|
44
|
-
apiEndpoint="https://api.ui.dog"
|
|
45
|
-
>
|
|
46
|
-
{children}
|
|
47
|
-
</UiDogProvider>
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Vite (React)
|
|
53
|
-
|
|
54
|
-
Load the client only in dev and **before React mounts**.
|
|
55
|
-
|
|
56
|
-
```ts
|
|
57
|
-
// src/main.tsx (or entry), top of file
|
|
58
|
-
if (import.meta.env.DEV) {
|
|
59
|
-
import("uidog-sdk-next/client");
|
|
60
|
-
}
|
|
61
|
-
// then your normal React render
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Start Vite with `npm run dev` and Alt+click elements in the browser.
|
|
65
|
-
|
|
66
|
-
## How to use
|
|
67
|
-
|
|
68
|
-
1. Run the dev server.
|
|
69
|
-
2. Hold **Alt** (default modifier) and hover to see highlight.
|
|
70
|
-
3. **Alt+click** an element to open the sidebar.
|
|
71
|
-
4. Sidebar shows source file/line when available; otherwise a DOM snapshot (for server-rendered or library DOM).
|
|
72
|
-
|
|
73
|
-
## Notes & limits
|
|
74
|
-
|
|
75
|
-
- Dev-only; production builds strip source metadata.
|
|
76
|
-
- Server Components and library DOM won’t have source locations; the sidebar shows a DOM snapshot instead.
|
|
77
|
-
- The import must run before any React import so Bippy can hook DevTools.
|
package/dist/client/index.d.mts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
type ElementInfoKind = "source" | "dom";
|
|
2
|
-
interface DomSnapshot {
|
|
3
|
-
outerHTML: string;
|
|
4
|
-
text: string;
|
|
5
|
-
attributes: Record<string, string>;
|
|
6
|
-
}
|
|
7
|
-
interface ElementInfo {
|
|
8
|
-
kind: ElementInfoKind;
|
|
9
|
-
componentName?: string;
|
|
10
|
-
filePath?: string;
|
|
11
|
-
line?: number;
|
|
12
|
-
column?: number;
|
|
13
|
-
domSnapshot?: DomSnapshot;
|
|
14
|
-
box?: {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
width: number;
|
|
18
|
-
height: number;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
type EditorType = "vscode" | "vscode-insiders" | "cursor" | "webstorm" | "atom" | "sublime";
|
|
22
|
-
interface UiDogNextOptions {
|
|
23
|
-
/**
|
|
24
|
-
* Editor to open when clicking elements
|
|
25
|
-
* @default 'cursor'
|
|
26
|
-
*/
|
|
27
|
-
editor?: EditorType;
|
|
28
|
-
/**
|
|
29
|
-
* Project root path for resolving file paths
|
|
30
|
-
*/
|
|
31
|
-
projectPath?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Modifier key for element selection
|
|
34
|
-
* @default 'alt'
|
|
35
|
-
*/
|
|
36
|
-
modifier?: "alt" | "ctrl" | "meta" | "shift";
|
|
37
|
-
/**
|
|
38
|
-
* Enable sidebar mode
|
|
39
|
-
* @default true
|
|
40
|
-
*/
|
|
41
|
-
enableSidebar?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* API endpoint for edit requests
|
|
44
|
-
* @default 'https://api.ui.dog'
|
|
45
|
-
*/
|
|
46
|
-
apiEndpoint?: string;
|
|
47
|
-
}
|
|
48
|
-
declare global {
|
|
49
|
-
interface Window {
|
|
50
|
-
__UIDOG_NEXT_INITIALIZED__?: boolean;
|
|
51
|
-
__UIDOG_SIDEBAR__?: {
|
|
52
|
-
isOpen: boolean;
|
|
53
|
-
elementInfo: ElementInfo | null;
|
|
54
|
-
editorUrl: string | null;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* UiDog SDK for Next.js - Main entry point
|
|
61
|
-
*
|
|
62
|
-
* Uses Bippy to hook into React's internals for element source detection,
|
|
63
|
-
* providing a seamless developer experience for inspecting component locations.
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Initialize UiDog for Next.js
|
|
68
|
-
*
|
|
69
|
-
* This function sets up Bippy instrumentation, element detection, and the sidebar UI.
|
|
70
|
-
* It should be called early in your application's lifecycle, ideally via
|
|
71
|
-
* instrumentation-client.ts (Next.js 15.3+) or at the top of _app.tsx.
|
|
72
|
-
*/
|
|
73
|
-
declare function initializeUiDogNext(options?: UiDogNextOptions): void;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Client entry point for UiDog Next.js integration
|
|
77
|
-
*
|
|
78
|
-
* This file is designed to be imported in:
|
|
79
|
-
* - Next.js 15.3+: instrumentation-client.ts at project root
|
|
80
|
-
* - Next.js 14.x / Pages Router: top of _app.tsx (must be first import)
|
|
81
|
-
*
|
|
82
|
-
* IMPORTANT: This file MUST be imported BEFORE React loads to properly
|
|
83
|
-
* install Bippy's React DevTools hook.
|
|
84
|
-
*
|
|
85
|
-
* Usage:
|
|
86
|
-
* ```typescript
|
|
87
|
-
* // instrumentation-client.ts (Next.js 15.3+)
|
|
88
|
-
* import 'uidog-sdk-next/client';
|
|
89
|
-
* ```
|
|
90
|
-
*
|
|
91
|
-
* ```typescript
|
|
92
|
-
* // pages/_app.tsx (Next.js 14.x / Pages Router)
|
|
93
|
-
* import 'uidog-sdk-next/client'; // MUST be first import
|
|
94
|
-
* import type { AppProps } from 'next/app';
|
|
95
|
-
* // ... rest of your imports
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Configure UiDog options before initialization
|
|
101
|
-
* Call this before auto-initialization happens (at DOMContentLoaded)
|
|
102
|
-
*/
|
|
103
|
-
declare function configureUiDogNext(options: UiDogNextOptions): void;
|
|
104
|
-
/**
|
|
105
|
-
* Disable auto-initialization
|
|
106
|
-
* Use this if you want to manually initialize UiDog later
|
|
107
|
-
*/
|
|
108
|
-
declare function disableAutoInit(): void;
|
|
109
|
-
|
|
110
|
-
export { UiDogNextOptions, configureUiDogNext, disableAutoInit, initializeUiDogNext };
|
package/dist/client/index.d.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
type ElementInfoKind = "source" | "dom";
|
|
2
|
-
interface DomSnapshot {
|
|
3
|
-
outerHTML: string;
|
|
4
|
-
text: string;
|
|
5
|
-
attributes: Record<string, string>;
|
|
6
|
-
}
|
|
7
|
-
interface ElementInfo {
|
|
8
|
-
kind: ElementInfoKind;
|
|
9
|
-
componentName?: string;
|
|
10
|
-
filePath?: string;
|
|
11
|
-
line?: number;
|
|
12
|
-
column?: number;
|
|
13
|
-
domSnapshot?: DomSnapshot;
|
|
14
|
-
box?: {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
width: number;
|
|
18
|
-
height: number;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
type EditorType = "vscode" | "vscode-insiders" | "cursor" | "webstorm" | "atom" | "sublime";
|
|
22
|
-
interface UiDogNextOptions {
|
|
23
|
-
/**
|
|
24
|
-
* Editor to open when clicking elements
|
|
25
|
-
* @default 'cursor'
|
|
26
|
-
*/
|
|
27
|
-
editor?: EditorType;
|
|
28
|
-
/**
|
|
29
|
-
* Project root path for resolving file paths
|
|
30
|
-
*/
|
|
31
|
-
projectPath?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Modifier key for element selection
|
|
34
|
-
* @default 'alt'
|
|
35
|
-
*/
|
|
36
|
-
modifier?: "alt" | "ctrl" | "meta" | "shift";
|
|
37
|
-
/**
|
|
38
|
-
* Enable sidebar mode
|
|
39
|
-
* @default true
|
|
40
|
-
*/
|
|
41
|
-
enableSidebar?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* API endpoint for edit requests
|
|
44
|
-
* @default 'https://api.ui.dog'
|
|
45
|
-
*/
|
|
46
|
-
apiEndpoint?: string;
|
|
47
|
-
}
|
|
48
|
-
declare global {
|
|
49
|
-
interface Window {
|
|
50
|
-
__UIDOG_NEXT_INITIALIZED__?: boolean;
|
|
51
|
-
__UIDOG_SIDEBAR__?: {
|
|
52
|
-
isOpen: boolean;
|
|
53
|
-
elementInfo: ElementInfo | null;
|
|
54
|
-
editorUrl: string | null;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* UiDog SDK for Next.js - Main entry point
|
|
61
|
-
*
|
|
62
|
-
* Uses Bippy to hook into React's internals for element source detection,
|
|
63
|
-
* providing a seamless developer experience for inspecting component locations.
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Initialize UiDog for Next.js
|
|
68
|
-
*
|
|
69
|
-
* This function sets up Bippy instrumentation, element detection, and the sidebar UI.
|
|
70
|
-
* It should be called early in your application's lifecycle, ideally via
|
|
71
|
-
* instrumentation-client.ts (Next.js 15.3+) or at the top of _app.tsx.
|
|
72
|
-
*/
|
|
73
|
-
declare function initializeUiDogNext(options?: UiDogNextOptions): void;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Client entry point for UiDog Next.js integration
|
|
77
|
-
*
|
|
78
|
-
* This file is designed to be imported in:
|
|
79
|
-
* - Next.js 15.3+: instrumentation-client.ts at project root
|
|
80
|
-
* - Next.js 14.x / Pages Router: top of _app.tsx (must be first import)
|
|
81
|
-
*
|
|
82
|
-
* IMPORTANT: This file MUST be imported BEFORE React loads to properly
|
|
83
|
-
* install Bippy's React DevTools hook.
|
|
84
|
-
*
|
|
85
|
-
* Usage:
|
|
86
|
-
* ```typescript
|
|
87
|
-
* // instrumentation-client.ts (Next.js 15.3+)
|
|
88
|
-
* import 'uidog-sdk-next/client';
|
|
89
|
-
* ```
|
|
90
|
-
*
|
|
91
|
-
* ```typescript
|
|
92
|
-
* // pages/_app.tsx (Next.js 14.x / Pages Router)
|
|
93
|
-
* import 'uidog-sdk-next/client'; // MUST be first import
|
|
94
|
-
* import type { AppProps } from 'next/app';
|
|
95
|
-
* // ... rest of your imports
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Configure UiDog options before initialization
|
|
101
|
-
* Call this before auto-initialization happens (at DOMContentLoaded)
|
|
102
|
-
*/
|
|
103
|
-
declare function configureUiDogNext(options: UiDogNextOptions): void;
|
|
104
|
-
/**
|
|
105
|
-
* Disable auto-initialization
|
|
106
|
-
* Use this if you want to manually initialize UiDog later
|
|
107
|
-
*/
|
|
108
|
-
declare function disableAutoInit(): void;
|
|
109
|
-
|
|
110
|
-
export { UiDogNextOptions, configureUiDogNext, disableAutoInit, initializeUiDogNext };
|