react-visual-feedback 2.2.5 → 2.2.6
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/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/index.css +0 -1
- package/dist/index.esm.css +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-visual-feedback",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.6",
|
|
4
4
|
"description": "A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
package/dist/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.feedback-light{--feedback-overlay-bg:rgba(0,0,0,.03);--feedback-backdrop-bg:rgba(0,0,0,.6);--feedback-modal-bg:#fff;--feedback-modal-border:#e5e7eb;--feedback-text-primary:#111827;--feedback-text-secondary:#6b7280;--feedback-text-tertiary:#9ca3af;--feedback-border:#d1d5db;--feedback-border-focus:#3b82f6;--feedback-input-bg:#fff;--feedback-input-disabled-bg:#f9fafb;--feedback-btn-cancel-bg:#f3f4f6;--feedback-btn-cancel-hover:#e5e7eb;--feedback-btn-cancel-text:#374151;--feedback-btn-primary-bg:#3b82f6;--feedback-btn-primary-hover:#2563eb;--feedback-btn-primary-text:#fff;--feedback-btn-disabled-bg:#9ca3af;--feedback-highlight-border:#3b82f6;--feedback-highlight-bg:rgba(59,130,246,.1);--feedback-highlight-shadow:rgba(59,130,246,.25);--feedback-tooltip-bg:#1f2937;--feedback-tooltip-text:#fff;--feedback-error-bg:#fef2f2;--feedback-error-border:#fca5a5;--feedback-error-text:#dc2626;--feedback-screenshot-border:#e5e7eb;--feedback-screenshot-bg:#f9fafb;--feedback-shadow:rgba(0,0,0,.1);--feedback-close-hover-bg:#f3f4f6}.feedback-dark{--feedback-overlay-bg:rgba(0,0,0,.2);--feedback-backdrop-bg:rgba(0,0,0,.8);--feedback-modal-bg:#1f2937;--feedback-modal-border:#374151;--feedback-text-primary:#f9fafb;--feedback-text-secondary:#d1d5db;--feedback-text-tertiary:#9ca3af;--feedback-border:#4b5563;--feedback-border-focus:#60a5fa;--feedback-input-bg:#111827;--feedback-input-disabled-bg:#374151;--feedback-btn-cancel-bg:#374151;--feedback-btn-cancel-hover:#4b5563;--feedback-btn-cancel-text:#d1d5db;--feedback-btn-primary-bg:#3b82f6;--feedback-btn-primary-hover:#2563eb;--feedback-btn-primary-text:#fff;--feedback-btn-disabled-bg:#4b5563;--feedback-highlight-border:#60a5fa;--feedback-highlight-bg:rgba(96,165,250,.15);--feedback-highlight-shadow:rgba(96,165,250,.3);--feedback-tooltip-bg:#374151;--feedback-tooltip-text:#f9fafb;--feedback-error-bg:#7f1d1d;--feedback-error-border:#dc2626;--feedback-error-text:#fca5a5;--feedback-screenshot-border:#374151;--feedback-screenshot-bg:#111827;--feedback-shadow:rgba(0,0,0,.4);--feedback-close-hover-bg:#374151}body.feedback-mode-active{cursor:crosshair!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.feedback-overlay{background:var(--feedback-overlay-bg);bottom:0;cursor:crosshair;left:0;pointer-events:none;position:fixed;right:0;top:0;transition:background .2s ease;z-index:999998}.feedback-highlight{background:var(--feedback-highlight-bg);border:2px solid var(--feedback-highlight-border);border-radius:4px;box-shadow:0 0 0 4px var(--feedback-highlight-shadow),0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);pointer-events:none;position:absolute;transition:all .15s cubic-bezier(.4,0,.2,1);z-index:999999}.feedback-tooltip{backdrop-filter:blur(10px);background:var(--feedback-tooltip-bg);border-radius:8px;box-shadow:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.2);color:var(--feedback-tooltip-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:13px;font-weight:500;padding:8px 14px;pointer-events:none;position:fixed;transition:all .15s ease;white-space:nowrap;z-index:1000000}.feedback-backdrop{animation:fadeIn .2s ease;backdrop-filter:blur(4px);background:var(--feedback-backdrop-bg);bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000001}.feedback-modal{animation:slideUp .3s cubic-bezier(.16,1,.3,1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;left:50%;max-height:85vh;max-width:1000px;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1000002}.feedback-modal-content{background:var(--feedback-modal-bg);border-radius:16px;box-shadow:0 20px 25px -5px var(--feedback-shadow),0 10px 10px -5px var(--feedback-shadow),0 0 0 1px var(--feedback-modal-border);display:flex;flex-direction:column;max-height:85vh;overflow:hidden;padding:28px}.feedback-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.feedback-title-wrapper{flex:1}.feedback-title{color:var(--feedback-text-primary);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:0 0 4px}.feedback-subtitle{font-size:14px;font-weight:400;margin:0}.feedback-close,.feedback-subtitle{color:var(--feedback-text-secondary)}.feedback-close{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:8px;transition:all .2s}.feedback-close:hover{background:var(--feedback-close-hover-bg);color:var(--feedback-text-primary);transform:scale(1.05)}.feedback-close:active{transform:scale(.95)}.feedback-body{display:flex;flex:1;gap:24px;min-height:0;overflow:auto}.feedback-screenshot-container{display:flex;flex:1;flex-direction:column;gap:12px;min-width:0}.feedback-screenshot-label{color:var(--feedback-text-secondary);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.feedback-screenshot{align-items:center;background:var(--feedback-screenshot-bg);border:2px solid var(--feedback-screenshot-border);border-radius:12px;box-sizing:border-box;display:flex;justify-content:center;max-height:500px;overflow:auto;padding:16px;width:100%}.feedback-screenshot-img{border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);display:block;height:auto;width:100%}.feedback-form-container{gap:16px;min-width:320px}.feedback-form,.feedback-form-container{display:flex;flex:1;flex-direction:column}.feedback-form{gap:10px;min-height:0}.feedback-label{color:var(--feedback-text-primary);display:block;font-size:14px;font-weight:600;margin:0}.feedback-required{color:#ef4444;margin-left:4px}.feedback-textarea{background:var(--feedback-input-bg);border:2px solid var(--feedback-border);border-radius:10px;box-sizing:border-box;color:var(--feedback-text-primary);flex:1;font-family:inherit;font-size:14px;line-height:1.6;min-height:180px;padding:14px;resize:vertical;transition:all .2s ease;width:100%}.feedback-textarea::placeholder{color:var(--feedback-text-tertiary)}.feedback-textarea:focus{border-color:var(--feedback-border-focus);box-shadow:0 0 0 4px var(--feedback-highlight-bg);outline:none;transform:scale(1.005)}.feedback-textarea:disabled{background:var(--feedback-input-disabled-bg);color:var(--feedback-text-secondary);cursor:not-allowed;opacity:.7}.feedback-error{align-items:center;animation:slideDown .3s ease;background:var(--feedback-error-bg);border:1px solid var(--feedback-error-border);border-radius:8px;color:var(--feedback-error-text);display:flex;font-size:13px;font-weight:500;gap:8px;padding:12px 14px}.feedback-error svg{flex-shrink:0}.feedback-actions{display:flex;flex-shrink:0;gap:12px;justify-content:flex-end}.feedback-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:120px;padding:12px 24px;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.feedback-cancel{background:var(--feedback-btn-cancel-bg);border:1px solid var(--feedback-border);color:var(--feedback-btn-cancel-text)}.feedback-cancel:hover:not(:disabled){background:var(--feedback-btn-cancel-hover);box-shadow:0 4px 6px -1px var(--feedback-shadow);transform:translateY(-1px)}.feedback-cancel:active:not(:disabled){transform:translateY(0)}.feedback-submit{background:var(--feedback-btn-primary-bg);color:var(--feedback-btn-primary-text)}.feedback-submit:hover:not(:disabled){background:var(--feedback-btn-primary-hover);box-shadow:0 10px 15px -3px rgba(59,130,246,.3),0 4px 6px -2px rgba(59,130,246,.2);transform:translateY(-2px)}.feedback-submit:active:not(:disabled){transform:translateY(0)}.feedback-submit:disabled{background:var(--feedback-btn-disabled-bg);cursor:not-allowed;opacity:.6;transform:none}.feedback-loading{animation:spin 1s linear infinite}@media (max-width:768px){.feedback-modal{max-width:95%;width:95%}.feedback-modal-content{padding:20px}.feedback-body{flex-direction:column}.feedback-screenshot-container{flex:none;max-height:250px}.feedback-screenshot{max-height:250px;padding:12px}.feedback-form-container{min-width:0}.feedback-title{font-size:18px}.feedback-subtitle{font-size:13px}.feedback-actions{flex-direction:column-reverse}.feedback-btn{min-width:0;width:100%}}@media (max-width:480px){.feedback-modal-content{padding:16px}.feedback-header{margin-bottom:16px}.feedback-body{gap:16px}.feedback-textarea{min-height:150px}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-45%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.feedback-btn:focus-visible,.feedback-close:focus-visible,.feedback-textarea:focus-visible{outline:3px solid var(--feedback-border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.feedback-backdrop,.feedback-highlight,.feedback-modal,.feedback-overlay,.feedback-tooltip{display:none!important}}.feedback-mode-toggle{border-bottom:1px solid var(--feedback-border);display:flex;gap:8px;padding:12px 24px}.feedback-mode-btn{background-color:var(--feedback-bg);border:2px solid var(--feedback-border);border-radius:8px;color:var(--feedback-text-secondary);cursor:pointer;flex:1;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.feedback-mode-btn:hover:not(:disabled){background-color:var(--feedback-bg-hover);border-color:var(--feedback-primary)}.feedback-mode-btn.active{background-color:var(--feedback-primary);border-color:var(--feedback-primary);color:#fff}.feedback-mode-btn:disabled{cursor:not-allowed;opacity:.5}.feedback-canvas-overlay{cursor:crosshair;height:100%;left:0;position:fixed;top:0;touch-action:none;width:100%;z-index:9999}.feedback-canvas{display:block;height:100%;width:100%}.feedback-canvas-tools{backdrop-filter:blur(10px);background-color:rgba(17,24,39,.95);border-radius:16px;bottom:24px;box-shadow:0 8px 32px rgba(0,0,0,.3);display:flex;gap:12px;left:50%;padding:12px 16px;position:fixed;transform:translateX(-50%);z-index:10000}.feedback-canvas-tool-btn{align-items:center;background-color:hsla(0,0%,100%,.1);border:2px solid hsla(0,0%,100%,.2);border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.feedback-canvas-tool-btn:hover{background-color:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4)}.feedback-canvas-tool-btn.active{background-color:rgba(59,130,246,.8);border-color:#3b82f6}.feedback-canvas-tool-btn:disabled{cursor:not-allowed;opacity:.5}.feedback-canvas-done-btn{align-items:center;background-color:#10b981;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.feedback-canvas-done-btn:hover{background-color:#059669}
|
package/dist/index.esm.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.feedback-light{--feedback-overlay-bg:rgba(0,0,0,.03);--feedback-backdrop-bg:rgba(0,0,0,.6);--feedback-modal-bg:#fff;--feedback-modal-border:#e5e7eb;--feedback-text-primary:#111827;--feedback-text-secondary:#6b7280;--feedback-text-tertiary:#9ca3af;--feedback-border:#d1d5db;--feedback-border-focus:#3b82f6;--feedback-input-bg:#fff;--feedback-input-disabled-bg:#f9fafb;--feedback-btn-cancel-bg:#f3f4f6;--feedback-btn-cancel-hover:#e5e7eb;--feedback-btn-cancel-text:#374151;--feedback-btn-primary-bg:#3b82f6;--feedback-btn-primary-hover:#2563eb;--feedback-btn-primary-text:#fff;--feedback-btn-disabled-bg:#9ca3af;--feedback-highlight-border:#3b82f6;--feedback-highlight-bg:rgba(59,130,246,.1);--feedback-highlight-shadow:rgba(59,130,246,.25);--feedback-tooltip-bg:#1f2937;--feedback-tooltip-text:#fff;--feedback-error-bg:#fef2f2;--feedback-error-border:#fca5a5;--feedback-error-text:#dc2626;--feedback-screenshot-border:#e5e7eb;--feedback-screenshot-bg:#f9fafb;--feedback-shadow:rgba(0,0,0,.1);--feedback-close-hover-bg:#f3f4f6}.feedback-dark{--feedback-overlay-bg:rgba(0,0,0,.2);--feedback-backdrop-bg:rgba(0,0,0,.8);--feedback-modal-bg:#1f2937;--feedback-modal-border:#374151;--feedback-text-primary:#f9fafb;--feedback-text-secondary:#d1d5db;--feedback-text-tertiary:#9ca3af;--feedback-border:#4b5563;--feedback-border-focus:#60a5fa;--feedback-input-bg:#111827;--feedback-input-disabled-bg:#374151;--feedback-btn-cancel-bg:#374151;--feedback-btn-cancel-hover:#4b5563;--feedback-btn-cancel-text:#d1d5db;--feedback-btn-primary-bg:#3b82f6;--feedback-btn-primary-hover:#2563eb;--feedback-btn-primary-text:#fff;--feedback-btn-disabled-bg:#4b5563;--feedback-highlight-border:#60a5fa;--feedback-highlight-bg:rgba(96,165,250,.15);--feedback-highlight-shadow:rgba(96,165,250,.3);--feedback-tooltip-bg:#374151;--feedback-tooltip-text:#f9fafb;--feedback-error-bg:#7f1d1d;--feedback-error-border:#dc2626;--feedback-error-text:#fca5a5;--feedback-screenshot-border:#374151;--feedback-screenshot-bg:#111827;--feedback-shadow:rgba(0,0,0,.4);--feedback-close-hover-bg:#374151}body.feedback-mode-active{cursor:crosshair!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.feedback-overlay{background:var(--feedback-overlay-bg);bottom:0;cursor:crosshair;left:0;pointer-events:none;position:fixed;right:0;top:0;transition:background .2s ease;z-index:999998}.feedback-highlight{background:var(--feedback-highlight-bg);border:2px solid var(--feedback-highlight-border);border-radius:4px;box-shadow:0 0 0 4px var(--feedback-highlight-shadow),0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);pointer-events:none;position:absolute;transition:all .15s cubic-bezier(.4,0,.2,1);z-index:999999}.feedback-tooltip{backdrop-filter:blur(10px);background:var(--feedback-tooltip-bg);border-radius:8px;box-shadow:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.2);color:var(--feedback-tooltip-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:13px;font-weight:500;padding:8px 14px;pointer-events:none;position:fixed;transition:all .15s ease;white-space:nowrap;z-index:1000000}.feedback-backdrop{animation:fadeIn .2s ease;backdrop-filter:blur(4px);background:var(--feedback-backdrop-bg);bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000001}.feedback-modal{animation:slideUp .3s cubic-bezier(.16,1,.3,1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;left:50%;max-height:85vh;max-width:1000px;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1000002}.feedback-modal-content{background:var(--feedback-modal-bg);border-radius:16px;box-shadow:0 20px 25px -5px var(--feedback-shadow),0 10px 10px -5px var(--feedback-shadow),0 0 0 1px var(--feedback-modal-border);display:flex;flex-direction:column;max-height:85vh;overflow:hidden;padding:28px}.feedback-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.feedback-title-wrapper{flex:1}.feedback-title{color:var(--feedback-text-primary);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:0 0 4px}.feedback-subtitle{font-size:14px;font-weight:400;margin:0}.feedback-close,.feedback-subtitle{color:var(--feedback-text-secondary)}.feedback-close{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:8px;transition:all .2s}.feedback-close:hover{background:var(--feedback-close-hover-bg);color:var(--feedback-text-primary);transform:scale(1.05)}.feedback-close:active{transform:scale(.95)}.feedback-body{display:flex;flex:1;gap:24px;min-height:0;overflow:auto}.feedback-screenshot-container{display:flex;flex:1;flex-direction:column;gap:12px;min-width:0}.feedback-screenshot-label{color:var(--feedback-text-secondary);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.feedback-screenshot{align-items:center;background:var(--feedback-screenshot-bg);border:2px solid var(--feedback-screenshot-border);border-radius:12px;box-sizing:border-box;display:flex;justify-content:center;max-height:500px;overflow:auto;padding:16px;width:100%}.feedback-screenshot-img{border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);display:block;height:auto;width:100%}.feedback-form-container{gap:16px;min-width:320px}.feedback-form,.feedback-form-container{display:flex;flex:1;flex-direction:column}.feedback-form{gap:10px;min-height:0}.feedback-label{color:var(--feedback-text-primary);display:block;font-size:14px;font-weight:600;margin:0}.feedback-required{color:#ef4444;margin-left:4px}.feedback-textarea{background:var(--feedback-input-bg);border:2px solid var(--feedback-border);border-radius:10px;box-sizing:border-box;color:var(--feedback-text-primary);flex:1;font-family:inherit;font-size:14px;line-height:1.6;min-height:180px;padding:14px;resize:vertical;transition:all .2s ease;width:100%}.feedback-textarea::placeholder{color:var(--feedback-text-tertiary)}.feedback-textarea:focus{border-color:var(--feedback-border-focus);box-shadow:0 0 0 4px var(--feedback-highlight-bg);outline:none;transform:scale(1.005)}.feedback-textarea:disabled{background:var(--feedback-input-disabled-bg);color:var(--feedback-text-secondary);cursor:not-allowed;opacity:.7}.feedback-error{align-items:center;animation:slideDown .3s ease;background:var(--feedback-error-bg);border:1px solid var(--feedback-error-border);border-radius:8px;color:var(--feedback-error-text);display:flex;font-size:13px;font-weight:500;gap:8px;padding:12px 14px}.feedback-error svg{flex-shrink:0}.feedback-actions{display:flex;flex-shrink:0;gap:12px;justify-content:flex-end}.feedback-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:120px;padding:12px 24px;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.feedback-cancel{background:var(--feedback-btn-cancel-bg);border:1px solid var(--feedback-border);color:var(--feedback-btn-cancel-text)}.feedback-cancel:hover:not(:disabled){background:var(--feedback-btn-cancel-hover);box-shadow:0 4px 6px -1px var(--feedback-shadow);transform:translateY(-1px)}.feedback-cancel:active:not(:disabled){transform:translateY(0)}.feedback-submit{background:var(--feedback-btn-primary-bg);color:var(--feedback-btn-primary-text)}.feedback-submit:hover:not(:disabled){background:var(--feedback-btn-primary-hover);box-shadow:0 10px 15px -3px rgba(59,130,246,.3),0 4px 6px -2px rgba(59,130,246,.2);transform:translateY(-2px)}.feedback-submit:active:not(:disabled){transform:translateY(0)}.feedback-submit:disabled{background:var(--feedback-btn-disabled-bg);cursor:not-allowed;opacity:.6;transform:none}.feedback-loading{animation:spin 1s linear infinite}@media (max-width:768px){.feedback-modal{max-width:95%;width:95%}.feedback-modal-content{padding:20px}.feedback-body{flex-direction:column}.feedback-screenshot-container{flex:none;max-height:250px}.feedback-screenshot{max-height:250px;padding:12px}.feedback-form-container{min-width:0}.feedback-title{font-size:18px}.feedback-subtitle{font-size:13px}.feedback-actions{flex-direction:column-reverse}.feedback-btn{min-width:0;width:100%}}@media (max-width:480px){.feedback-modal-content{padding:16px}.feedback-header{margin-bottom:16px}.feedback-body{gap:16px}.feedback-textarea{min-height:150px}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-45%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.feedback-btn:focus-visible,.feedback-close:focus-visible,.feedback-textarea:focus-visible{outline:3px solid var(--feedback-border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.feedback-backdrop,.feedback-highlight,.feedback-modal,.feedback-overlay,.feedback-tooltip{display:none!important}}.feedback-mode-toggle{border-bottom:1px solid var(--feedback-border);display:flex;gap:8px;padding:12px 24px}.feedback-mode-btn{background-color:var(--feedback-bg);border:2px solid var(--feedback-border);border-radius:8px;color:var(--feedback-text-secondary);cursor:pointer;flex:1;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.feedback-mode-btn:hover:not(:disabled){background-color:var(--feedback-bg-hover);border-color:var(--feedback-primary)}.feedback-mode-btn.active{background-color:var(--feedback-primary);border-color:var(--feedback-primary);color:#fff}.feedback-mode-btn:disabled{cursor:not-allowed;opacity:.5}.feedback-canvas-overlay{cursor:crosshair;height:100%;left:0;position:fixed;top:0;touch-action:none;width:100%;z-index:9999}.feedback-canvas{display:block;height:100%;width:100%}.feedback-canvas-tools{backdrop-filter:blur(10px);background-color:rgba(17,24,39,.95);border-radius:16px;bottom:24px;box-shadow:0 8px 32px rgba(0,0,0,.3);display:flex;gap:12px;left:50%;padding:12px 16px;position:fixed;transform:translateX(-50%);z-index:10000}.feedback-canvas-tool-btn{align-items:center;background-color:hsla(0,0%,100%,.1);border:2px solid hsla(0,0%,100%,.2);border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.feedback-canvas-tool-btn:hover{background-color:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4)}.feedback-canvas-tool-btn.active{background-color:rgba(59,130,246,.8);border-color:#3b82f6}.feedback-canvas-tool-btn:disabled{cursor:not-allowed;opacity:.5}.feedback-canvas-done-btn{align-items:center;background-color:#10b981;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.feedback-canvas-done-btn:hover{background-color:#059669}
|