puckeditor-plugin-ai 0.6.6 → 0.6.8
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.css +7 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +158 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +158 -46
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -791,6 +791,13 @@
|
|
|
791
791
|
outline: 2px solid var(--puck-color-azure-04);
|
|
792
792
|
outline-offset: 2px;
|
|
793
793
|
}
|
|
794
|
+
.puck-ai-toggle--disabled {
|
|
795
|
+
cursor: not-allowed;
|
|
796
|
+
opacity: 0.45;
|
|
797
|
+
}
|
|
798
|
+
.puck-ai-toggle--disabled .puck-ai-toggle-input:disabled + .puck-ai-toggle-slider {
|
|
799
|
+
background: var(--puck-color-grey-08);
|
|
800
|
+
}
|
|
794
801
|
.puck-ai-settings-scroll {
|
|
795
802
|
flex: 1;
|
|
796
803
|
overflow-y: auto;
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../styles.css"],"sourcesContent":["/* ============================================================\n Color tokens (subset used by plugin-ai)\n ============================================================ */\n:root {\n --puck-color-azure-01: #00175d;\n --puck-color-azure-02: #002c77;\n --puck-color-azure-03: #014292;\n --puck-color-azure-04: #0158ad;\n --puck-color-azure-05: #3479be;\n --puck-color-azure-06: #6499cf;\n --puck-color-azure-08: #abc7e5;\n --puck-color-azure-10: #e7eef7;\n --puck-color-azure-11: #f3f6fb;\n --puck-color-azure-12: #f7faff;\n --puck-color-green-04: #0c680c;\n --puck-color-green-06: #2faa53;\n --puck-color-grey-01: #181818;\n --puck-color-grey-02: #292929;\n --puck-color-grey-03: #404040;\n --puck-color-grey-04: #5a5a5a;\n --puck-color-grey-05: #767676;\n --puck-color-grey-06: #949494;\n --puck-color-grey-07: #ababab;\n --puck-color-grey-08: #c3c3c3;\n --puck-color-grey-09: #dcdcdc;\n --puck-color-grey-10: #efefef;\n --puck-color-grey-11: #f5f5f5;\n --puck-color-grey-12: #fafafa;\n --puck-color-red-02: #6a0a10;\n --puck-color-red-03: #8a1422;\n --puck-color-red-04: #ac1f35;\n --puck-color-red-05: #bf5366;\n --puck-color-black: #000000;\n --puck-color-white: #ffffff;\n --puck-font-size-xxxs: 0.75rem;\n --puck-font-size-xxs: 0.875rem;\n --puck-font-size-xs: 1rem;\n --puck-font-size-s: 1.125rem;\n --puck-font-size-m: 1.3125rem;\n --puck-font-size-base: var(--puck-font-size-xs);\n --line-height-s: 1.333;\n --line-height-m: 1.5;\n}\n\n/* ============================================================\n Loader\n ============================================================ */\n\n@keyframes puck-ai-loader-spin {\n 0% { transform: rotate(0deg) scale(1); }\n 50% { transform: rotate(180deg) scale(0.8); }\n 100% { transform: rotate(360deg) scale(1); }\n}\n\n.puck-ai-loader {\n background: transparent;\n border-radius: 100%;\n border: 2px solid currentColor;\n border-bottom-color: transparent;\n display: inline-block;\n animation: puck-ai-loader-spin 1s 0s infinite linear;\n animation-fill-mode: both;\n}\n\n/* ============================================================\n Icon button\n ============================================================ */\n\n.puck-ai-icon-button {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: var(--puck-color-grey-08);\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.puck-ai-icon-button:hover {\n background-color: var(--puck-color-azure-11);\n color: var(--puck-color-azure-04);\n}\n\n/* ============================================================\n Chat outer panel (outer wrapper)\n ============================================================ */\n\n.puck-ai-chat {\n background: white;\n height: 100%;\n display: flex;\n flex-direction: column;\n text-align: left;\n}\n\n.puck-ai-chat-header {\n align-items: center;\n display: flex;\n gap: 4px;\n padding: 4px 8px 4px 16px;\n font-weight: 600;\n border-bottom: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-chat-header-title {\n flex: 1;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-header {\n padding: 12px 8px 12px 16px;\n }\n}\n\n/* Placeholder (shown when no messages, inside the chat body default slot) */\n.puck-ai-chat-placeholder {\n align-items: center;\n box-sizing: border-box;\n color: var(--puck-color-grey-06);\n display: none;\n justify-content: center;\n flex-direction: column;\n height: 100%;\n text-align: center;\n padding: 32px;\n gap: 8px;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-placeholder {\n display: flex;\n }\n}\n\n.puck-ai-chat-actions {\n display: flex;\n gap: 8px;\n justify-content: center;\n flex-wrap: wrap;\n margin-top: 4px;\n}\n\n.puck-ai-chat-action,\n.puck-ai-chat-action-outlined {\n border: 1px solid var(--puck-color-azure-04);\n border-radius: 16px;\n padding: 4px 12px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.puck-ai-chat-action {\n background: var(--puck-color-azure-04);\n color: white;\n}\n\n.puck-ai-chat-action:hover {\n opacity: 0.8;\n}\n\n.puck-ai-chat-action-outlined {\n background: transparent;\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chat-action-outlined:hover {\n background: var(--puck-color-azure-11);\n}\n\n/* ============================================================\n ChatBody\n ============================================================ */\n\n.puck-ai-chatbody {\n --chat-background-color: white;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.puck-ai-chatbody-inner {\n background-color: var(--chat-background-color);\n display: flex;\n flex-direction: column;\n position: relative;\n /* flex: 1 + min-height: 0 allows the inner to shrink and scroll correctly */\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-messages {\n display: flex;\n flex-direction: column-reverse;\n padding: 16px;\n overflow: auto;\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody-messages {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.puck-ai-chatbody-form {\n background-color: white;\n padding: 16px;\n flex-shrink: 0;\n}\n\n.puck-ai-chatbody--hide-input .puck-ai-chatbody-form {\n display: none;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n}\n\n@media (min-width: 638px) {\n .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n }\n}\n\n.puck-ai-chatbody-example-prompts {\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n gap: 6px;\n padding-top: 16px;\n width: 100%;\n overflow-x: auto;\n}\n\n.puck-ai-chatbody-example-prompt {\n align-items: center;\n background: white;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 48px;\n cursor: pointer;\n display: flex;\n gap: 4px;\n font-size: var(--puck-font-size-xxxs);\n justify-content: center;\n padding: 6px 12px;\n text-wrap: nowrap;\n text-decoration: none;\n color: inherit;\n}\n\n.puck-ai-chatbody-example-prompt:hover {\n background: var(--puck-color-azure-11);\n border-color: var(--puck-color-azure-08);\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chatbody-example-prompt-arrow {\n display: flex;\n margin-left: auto;\n}\n\n.puck-ai-chatbody-default {\n overflow-y: auto;\n flex-grow: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-default {\n /* Remove from layout entirely so it doesn't steal height from the messages area */\n display: none;\n}\n\n.puck-ai-chatbody-loader {\n padding: 16px;\n padding-top: 0;\n}\n\n.puck-ai-chatbody-error {\n align-items: center;\n display: flex;\n gap: 8px;\n font-size: var(--puck-font-size-xxs);\n margin: 16px;\n}\n\n.puck-ai-chatbody-error-label {\n color: var(--puck-color-red-04);\n}\n\n.puck-ai-chatbody-error-action {\n margin-left: auto;\n}\n\n/* ============================================================\n ChatMessage\n ============================================================ */\n\n.puck-ai-chat-message {\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n overflow-wrap: break-word;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text {\n background: var(--puck-color-azure-10);\n border-radius: 16px;\n color: var(--puck-color-grey-03);\n margin-left: 24px;\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 12px 16px;\n}\n\n.puck-ai-chat-message ul,\n.puck-ai-chat-message ol {\n list-style: decimal;\n margin: 0;\n margin-bottom: 12px;\n margin-top: 12px;\n padding-left: 32px;\n}\n\n.puck-ai-chat-message li {\n margin-bottom: 8px;\n margin-top: 8px;\n padding-left: 8px;\n}\n\n.puck-ai-chat-message h1,\n.puck-ai-chat-message h2,\n.puck-ai-chat-message h3,\n.puck-ai-chat-message h4,\n.puck-ai-chat-message h5,\n.puck-ai-chat-message h6 {\n font-weight: 600;\n}\n\n.puck-ai-chat-message p {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:first-of-type {\n margin-top: 0;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:last-of-type {\n margin-bottom: 0;\n}\n\n.puck-ai-chat-message a {\n color: var(--puck-color-azure-04);\n font-weight: 600;\n text-decoration: none;\n}\n\n.puck-ai-chat-message a:hover {\n color: var(--puck-color-azure-05);\n}\n\n.puck-ai-chat-message hr {\n border-top: none;\n border-bottom-color: var(--puck-color-grey-09);\n margin-bottom: 16px;\n margin-top: 16px;\n}\n\n.puck-ai-chat-message blockquote {\n margin-bottom: 8px;\n margin-top: 8px;\n margin-left: 0;\n border-left: 2px solid var(--puck-color-grey-09);\n padding-left: 16px;\n}\n\n.puck-ai-chat-message-data {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-08);\n border-radius: 16px;\n color: var(--puck-color-grey-05);\n margin-right: 24px;\n padding: 8px 12px;\n margin-top: 4px;\n margin-bottom: 4px;\n}\n\n.puck-ai-chat-message-data-inner {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n\n.puck-ai-chat-message-data-icon {\n display: flex;\n}\n\n.puck-ai-chat-message-file {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-file--user {\n margin-left: 24px;\n}\n\n.puck-ai-chat-message-file-image {\n border-radius: 12px;\n display: block;\n max-height: 220px;\n max-width: 100%;\n object-fit: contain;\n}\n\n.puck-ai-chat-message-file--user .puck-ai-chat-message-file-image {\n background: var(--puck-color-azure-10);\n border: 1px solid var(--puck-color-azure-08);\n}\n\n.puck-ai-chat-message-file-caption {\n color: var(--puck-color-grey-05);\n display: block;\n font-size: var(--puck-font-size-xxxs);\n margin-top: 4px;\n}\n\n.puck-ai-chat-message-file--document {\n background: var(--puck-color-azure-10);\n border-radius: 12px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-file--document a {\n word-break: break-all;\n}\n\n.puck-ai-chat-message-reasoning {\n background: var(--puck-color-grey-11);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 10px;\n color: var(--puck-color-grey-04);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 6px 10px;\n}\n\n.puck-ai-chat-message-reasoning-summary {\n cursor: pointer;\n font-weight: 600;\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.puck-ai-chat-message-reasoning-summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-reasoning-streaming {\n display: inline-flex;\n align-items: center;\n}\n\n.puck-ai-chat-message-reasoning-body {\n border-top: 1px solid var(--puck-color-grey-09);\n margin-top: 8px;\n padding-top: 8px;\n}\n\n.puck-ai-chat-message-reasoning-body p {\n margin: 0 0 6px;\n}\n\n.puck-ai-chat-message-source {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-source-meta {\n color: var(--puck-color-grey-07);\n margin-left: 6px;\n}\n\n.puck-ai-chat-message-step {\n border-top: 1px dashed var(--puck-color-grey-09);\n margin: 8px 0;\n opacity: 0.6;\n}\n\n.puck-ai-chat-message-tool {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 12px;\n margin-bottom: 8px;\n margin-top: 8px;\n margin-right: 24px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-tool-header {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.puck-ai-chat-message-tool-icon {\n color: var(--puck-color-grey-06);\n display: flex;\n}\n\n.puck-ai-chat-message-tool-name {\n font-weight: 600;\n color: var(--puck-color-grey-03);\n}\n\n.puck-ai-chat-message-tool-state {\n align-items: center;\n color: var(--puck-color-grey-05);\n display: inline-flex;\n font-size: var(--puck-font-size-xxxs);\n gap: 6px;\n margin-left: auto;\n}\n\n.puck-ai-chat-message-tool-error {\n color: var(--puck-color-red-04);\n font-size: var(--puck-font-size-xxxs);\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-tool-details {\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-tool-details summary {\n color: var(--puck-color-azure-04);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n list-style: none;\n}\n\n.puck-ai-chat-message-tool-details summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-tool-pre {\n background: var(--puck-color-grey-11);\n border-radius: 6px;\n font-size: 11px;\n line-height: 1.45;\n margin-top: 6px;\n max-height: 200px;\n overflow: auto;\n padding: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.puck-ai-chat-message-data-summary {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw summary {\n color: var(--puck-color-grey-05);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n list-style: none;\n}\n\n.puck-ai-chat-message-data-raw summary::-webkit-details-marker {\n display: none;\n}\n\n/* ============================================================\n Target component banner\n ============================================================ */\n\n.puck-ai-target-banner {\n align-items: center;\n background: var(--puck-color-azure-11);\n border: 1px solid var(--puck-color-azure-09);\n border-radius: 6px;\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 8px;\n padding: 6px 10px;\n font-size: var(--puck-font-size-xxxs);\n line-height: 1.4;\n}\n\n.puck-ai-target-banner-label {\n color: var(--puck-color-azure-05);\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-name {\n color: var(--puck-color-grey-02);\n font-weight: 600;\n}\n\n.puck-ai-target-banner-id {\n color: var(--puck-color-grey-05);\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n background: var(--puck-color-azure-10);\n border-radius: 3px;\n padding: 1px 4px;\n /* Truncate very long IDs */\n max-width: 140px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.puck-ai-target-banner-clear {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 50%;\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n line-height: 1;\n margin-left: auto;\n padding: 0 2px;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-clear:hover {\n color: var(--puck-color-grey-02);\n}\n\n/* ============================================================\n PromptForm\n ============================================================ */\n\n.puck-ai-prompt-form {\n --radius: 9px;\n background-color: var(--puck-color-grey-09);\n border-radius: var(--radius);\n width: 100%;\n}\n\n.puck-ai-prompt-form-inner {\n border-radius: var(--radius);\n padding: 1px;\n position: relative;\n}\n\n.puck-ai-prompt-form--dark {\n background-color: var(--puck-color-grey-02);\n box-shadow: none;\n}\n\n@keyframes puck-ai-glow-loop {\n 0% { transform: translate(-50%, -50%) rotate(0deg); }\n 100% { transform: translate(-50%, -50%) rotate(360deg); }\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow {\n border: 2px solid transparent;\n border-radius: var(--radius);\n -webkit-mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n -webkit-mask-clip: padding-box, border-box;\n mask-clip: padding-box, border-box;\n -webkit-mask-composite: intersect;\n mask-composite: intersect;\n pointer-events: none;\n position: absolute;\n inset: -1px;\n z-index: 0;\n overflow: hidden;\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow::after {\n background: radial-gradient(circle at center, var(--puck-color-azure-06), transparent 50%);\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n aspect-ratio: 1;\n width: 200%;\n animation: puck-ai-glow-loop 3s linear infinite;\n}\n\n.puck-ai-prompt-form-form-inner {\n background-color: white;\n border-radius: 8px;\n position: relative;\n}\n\n.puck-ai-prompt-form-input {\n background-color: transparent;\n border: none;\n display: block;\n resize: none;\n color: var(--puck-color-grey-03);\n padding: 12px 16px;\n padding-left: 16px;\n padding-right: 8px;\n padding-bottom: 4px;\n font-family: inherit;\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n width: 100%;\n box-sizing: border-box;\n}\n\n.puck-ai-prompt-form-input:focus {\n outline: none;\n}\n\n.puck-ai-prompt-form-form-inner:has(.puck-ai-prompt-form-input:focus) {\n outline: 2px solid var(--puck-color-azure-04);\n}\n\n.puck-ai-prompt-form--dark .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-01);\n color: var(--puck-color-grey-08);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-12);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form-actions {\n align-items: flex-end;\n cursor: text;\n display: flex;\n gap: 8px;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px;\n}\n\n.puck-ai-prompt-form-actions-left {\n align-items: center;\n cursor: auto;\n display: flex;\n padding-left: 8px;\n}\n\n.puck-ai-prompt-form-actions-right {\n cursor: auto;\n margin-left: auto;\n}\n\n.puck-ai-prompt-form-action-submit {\n background: var(--puck-color-azure-04);\n border-radius: 48px;\n border: 0;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n align-self: flex-end;\n padding: 4px;\n pointer-events: auto;\n cursor: pointer;\n}\n\n.puck-ai-prompt-form-action-submit:hover {\n background: var(--puck-color-azure-05);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-grey-06);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form--is-loading .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-azure-06);\n cursor: not-allowed;\n}\n\n/* ─── Image attachment button ──────────────────────────────────────────────── */\n\n.puck-ai-image-attach-btn {\n align-items: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--puck-color-grey-05);\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding: 5px;\n transition: background 80ms, color 80ms, border-color 80ms;\n}\n\n.puck-ai-image-attach-btn:hover {\n background: var(--puck-color-grey-11);\n border-color: var(--puck-color-grey-09);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-image-attach-btn:disabled {\n color: var(--puck-color-grey-08);\n cursor: not-allowed;\n}\n\n/* ─── Drag-over state ───────────────────────────────────────────────────────── */\n\n.puck-ai-prompt-form--drag-over .puck-ai-prompt-form-form-inner {\n border-color: var(--puck-color-azure-05);\n background: var(--puck-color-azure-12);\n outline: 2px dashed var(--puck-color-azure-05);\n}\n\n/* ─── Image thumbnails strip ────────────────────────────────────────────────── */\n\n.puck-ai-image-thumbnails {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 8px 10px 0;\n}\n\n.puck-ai-image-thumbnail {\n position: relative;\n border-radius: 6px;\n overflow: hidden;\n width: 56px;\n height: 56px;\n border: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-image-thumbnail img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.puck-ai-image-thumbnail-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.55);\n border: none;\n border-radius: 50%;\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n opacity: 0;\n transition: opacity 120ms;\n}\n\n.puck-ai-image-thumbnail:hover .puck-ai-image-thumbnail-remove {\n opacity: 1;\n}\n\n/* ============================================================\n Toggle switch\n ============================================================ */\n\n.puck-ai-toggle {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n height: 20px;\n position: relative;\n width: 36px;\n}\n\n.puck-ai-toggle-input {\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n}\n\n.puck-ai-toggle-slider {\n background: var(--puck-color-grey-08);\n border-radius: 20px;\n inset: 0;\n position: absolute;\n transition: background 120ms;\n}\n\n.puck-ai-toggle-slider::after {\n background: white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n content: '';\n height: 16px;\n left: 2px;\n position: absolute;\n top: 2px;\n transition: left 120ms;\n width: 16px;\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider {\n background: var(--puck-color-azure-04);\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider::after {\n left: 18px;\n}\n\n.puck-ai-toggle-input:focus-visible + .puck-ai-toggle-slider {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n/* ============================================================\n Settings panel\n ============================================================ */\n\n.puck-ai-settings-scroll {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.puck-ai-settings {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 16px;\n}\n\n.puck-ai-settings-section {\n display: flex;\n flex-direction: column;\n}\n\n.puck-ai-settings-section-title {\n color: var(--puck-color-grey-05);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.06em;\n margin-bottom: 4px;\n text-transform: uppercase;\n}\n\n.puck-ai-settings-row {\n align-items: center;\n border-bottom: 1px solid var(--puck-color-grey-10);\n display: flex;\n gap: 12px;\n justify-content: space-between;\n padding: 10px 0;\n}\n\n.puck-ai-settings-row:last-child {\n border-bottom: none;\n}\n\n.puck-ai-settings-row--column {\n align-items: flex-start;\n flex-direction: column;\n gap: 8px;\n}\n\n.puck-ai-settings-label {\n color: var(--puck-color-grey-02);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 500;\n gap: 2px;\n}\n\n.puck-ai-settings-hint {\n color: var(--puck-color-grey-06);\n font-size: 11px;\n font-weight: 400;\n}\n\n.puck-ai-settings-select {\n appearance: none;\n background-color: var(--puck-color-grey-11);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23767676'/%3E%3C/svg%3E\");\n background-position: right 8px center;\n background-repeat: no-repeat;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n color: var(--puck-color-grey-02);\n cursor: pointer;\n flex-shrink: 0;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n padding: 5px 28px 5px 8px;\n}\n\n.puck-ai-settings-select:focus {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-input-wrap {\n align-items: center;\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n display: flex;\n overflow: hidden;\n width: 100%;\n}\n\n.puck-ai-settings-input-wrap:focus-within {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 0;\n}\n\n.puck-ai-settings-input {\n background: transparent;\n border: none;\n color: var(--puck-color-grey-02);\n flex: 1;\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n min-width: 0;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input:focus {\n outline: none;\n}\n\n.puck-ai-settings-input-action {\n align-items: center;\n appearance: none;\n background: transparent;\n border: none;\n border-left: 1px solid var(--puck-color-grey-09);\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input-action:hover {\n background: var(--puck-color-grey-11);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-settings-link {\n color: var(--puck-color-azure-04);\n font-size: 11px;\n text-decoration: none;\n}\n\n.puck-ai-settings-link:hover {\n color: var(--puck-color-azure-05);\n text-decoration: underline;\n}\n\n.puck-ai-settings-clear-chat {\n align-items: center;\n align-self: flex-start;\n appearance: none;\n background: var(--puck-color-white);\n border: 1px solid var(--puck-color-red-04);\n border-radius: 6px;\n color: var(--puck-color-red-04);\n cursor: pointer;\n display: inline-flex;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n gap: 8px;\n margin-top: 4px;\n padding: 8px 12px;\n}\n\n.puck-ai-settings-clear-chat:hover:not(:disabled) {\n background: var(--puck-color-grey-12);\n}\n\n.puck-ai-settings-clear-chat:focus-visible {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-clear-chat:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../styles.css"],"sourcesContent":["/* ============================================================\n Color tokens (subset used by plugin-ai)\n ============================================================ */\n:root {\n --puck-color-azure-01: #00175d;\n --puck-color-azure-02: #002c77;\n --puck-color-azure-03: #014292;\n --puck-color-azure-04: #0158ad;\n --puck-color-azure-05: #3479be;\n --puck-color-azure-06: #6499cf;\n --puck-color-azure-08: #abc7e5;\n --puck-color-azure-10: #e7eef7;\n --puck-color-azure-11: #f3f6fb;\n --puck-color-azure-12: #f7faff;\n --puck-color-green-04: #0c680c;\n --puck-color-green-06: #2faa53;\n --puck-color-grey-01: #181818;\n --puck-color-grey-02: #292929;\n --puck-color-grey-03: #404040;\n --puck-color-grey-04: #5a5a5a;\n --puck-color-grey-05: #767676;\n --puck-color-grey-06: #949494;\n --puck-color-grey-07: #ababab;\n --puck-color-grey-08: #c3c3c3;\n --puck-color-grey-09: #dcdcdc;\n --puck-color-grey-10: #efefef;\n --puck-color-grey-11: #f5f5f5;\n --puck-color-grey-12: #fafafa;\n --puck-color-red-02: #6a0a10;\n --puck-color-red-03: #8a1422;\n --puck-color-red-04: #ac1f35;\n --puck-color-red-05: #bf5366;\n --puck-color-black: #000000;\n --puck-color-white: #ffffff;\n --puck-font-size-xxxs: 0.75rem;\n --puck-font-size-xxs: 0.875rem;\n --puck-font-size-xs: 1rem;\n --puck-font-size-s: 1.125rem;\n --puck-font-size-m: 1.3125rem;\n --puck-font-size-base: var(--puck-font-size-xs);\n --line-height-s: 1.333;\n --line-height-m: 1.5;\n}\n\n/* ============================================================\n Loader\n ============================================================ */\n\n@keyframes puck-ai-loader-spin {\n 0% { transform: rotate(0deg) scale(1); }\n 50% { transform: rotate(180deg) scale(0.8); }\n 100% { transform: rotate(360deg) scale(1); }\n}\n\n.puck-ai-loader {\n background: transparent;\n border-radius: 100%;\n border: 2px solid currentColor;\n border-bottom-color: transparent;\n display: inline-block;\n animation: puck-ai-loader-spin 1s 0s infinite linear;\n animation-fill-mode: both;\n}\n\n/* ============================================================\n Icon button\n ============================================================ */\n\n.puck-ai-icon-button {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: var(--puck-color-grey-08);\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.puck-ai-icon-button:hover {\n background-color: var(--puck-color-azure-11);\n color: var(--puck-color-azure-04);\n}\n\n/* ============================================================\n Chat outer panel (outer wrapper)\n ============================================================ */\n\n.puck-ai-chat {\n background: white;\n height: 100%;\n display: flex;\n flex-direction: column;\n text-align: left;\n}\n\n.puck-ai-chat-header {\n align-items: center;\n display: flex;\n gap: 4px;\n padding: 4px 8px 4px 16px;\n font-weight: 600;\n border-bottom: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-chat-header-title {\n flex: 1;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-header {\n padding: 12px 8px 12px 16px;\n }\n}\n\n/* Placeholder (shown when no messages, inside the chat body default slot) */\n.puck-ai-chat-placeholder {\n align-items: center;\n box-sizing: border-box;\n color: var(--puck-color-grey-06);\n display: none;\n justify-content: center;\n flex-direction: column;\n height: 100%;\n text-align: center;\n padding: 32px;\n gap: 8px;\n}\n\n@media (min-width: 638px) {\n .puck-ai-chat-placeholder {\n display: flex;\n }\n}\n\n.puck-ai-chat-actions {\n display: flex;\n gap: 8px;\n justify-content: center;\n flex-wrap: wrap;\n margin-top: 4px;\n}\n\n.puck-ai-chat-action,\n.puck-ai-chat-action-outlined {\n border: 1px solid var(--puck-color-azure-04);\n border-radius: 16px;\n padding: 4px 12px;\n font-size: 12px;\n cursor: pointer;\n}\n\n.puck-ai-chat-action {\n background: var(--puck-color-azure-04);\n color: white;\n}\n\n.puck-ai-chat-action:hover {\n opacity: 0.8;\n}\n\n.puck-ai-chat-action-outlined {\n background: transparent;\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chat-action-outlined:hover {\n background: var(--puck-color-azure-11);\n}\n\n/* ============================================================\n ChatBody\n ============================================================ */\n\n.puck-ai-chatbody {\n --chat-background-color: white;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.puck-ai-chatbody-inner {\n background-color: var(--chat-background-color);\n display: flex;\n flex-direction: column;\n position: relative;\n /* flex: 1 + min-height: 0 allows the inner to shrink and scroll correctly */\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-messages {\n display: flex;\n flex-direction: column-reverse;\n padding: 16px;\n overflow: auto;\n flex: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody-messages {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.puck-ai-chatbody-form {\n background-color: white;\n padding: 16px;\n flex-shrink: 0;\n}\n\n.puck-ai-chatbody--hide-input .puck-ai-chatbody-form {\n display: none;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n}\n\n@media (min-width: 638px) {\n .puck-ai-chatbody-form {\n border-top: 1px solid var(--puck-color-grey-09);\n }\n}\n\n.puck-ai-chatbody-example-prompts {\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n gap: 6px;\n padding-top: 16px;\n width: 100%;\n overflow-x: auto;\n}\n\n.puck-ai-chatbody-example-prompt {\n align-items: center;\n background: white;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 48px;\n cursor: pointer;\n display: flex;\n gap: 4px;\n font-size: var(--puck-font-size-xxxs);\n justify-content: center;\n padding: 6px 12px;\n text-wrap: nowrap;\n text-decoration: none;\n color: inherit;\n}\n\n.puck-ai-chatbody-example-prompt:hover {\n background: var(--puck-color-azure-11);\n border-color: var(--puck-color-azure-08);\n color: var(--puck-color-azure-04);\n}\n\n.puck-ai-chatbody-example-prompt-arrow {\n display: flex;\n margin-left: auto;\n}\n\n.puck-ai-chatbody-default {\n overflow-y: auto;\n flex-grow: 1;\n min-height: 0;\n}\n\n.puck-ai-chatbody--has-messages .puck-ai-chatbody-default {\n /* Remove from layout entirely so it doesn't steal height from the messages area */\n display: none;\n}\n\n.puck-ai-chatbody-loader {\n padding: 16px;\n padding-top: 0;\n}\n\n.puck-ai-chatbody-error {\n align-items: center;\n display: flex;\n gap: 8px;\n font-size: var(--puck-font-size-xxs);\n margin: 16px;\n}\n\n.puck-ai-chatbody-error-label {\n color: var(--puck-color-red-04);\n}\n\n.puck-ai-chatbody-error-action {\n margin-left: auto;\n}\n\n/* ============================================================\n ChatMessage\n ============================================================ */\n\n.puck-ai-chat-message {\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n overflow-wrap: break-word;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text {\n background: var(--puck-color-azure-10);\n border-radius: 16px;\n color: var(--puck-color-grey-03);\n margin-left: 24px;\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 12px 16px;\n}\n\n.puck-ai-chat-message ul,\n.puck-ai-chat-message ol {\n list-style: decimal;\n margin: 0;\n margin-bottom: 12px;\n margin-top: 12px;\n padding-left: 32px;\n}\n\n.puck-ai-chat-message li {\n margin-bottom: 8px;\n margin-top: 8px;\n padding-left: 8px;\n}\n\n.puck-ai-chat-message h1,\n.puck-ai-chat-message h2,\n.puck-ai-chat-message h3,\n.puck-ai-chat-message h4,\n.puck-ai-chat-message h5,\n.puck-ai-chat-message h6 {\n font-weight: 600;\n}\n\n.puck-ai-chat-message p {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:first-of-type {\n margin-top: 0;\n}\n\n.puck-ai-chat-message--user-role .puck-ai-chat-message-text > *:last-of-type {\n margin-bottom: 0;\n}\n\n.puck-ai-chat-message a {\n color: var(--puck-color-azure-04);\n font-weight: 600;\n text-decoration: none;\n}\n\n.puck-ai-chat-message a:hover {\n color: var(--puck-color-azure-05);\n}\n\n.puck-ai-chat-message hr {\n border-top: none;\n border-bottom-color: var(--puck-color-grey-09);\n margin-bottom: 16px;\n margin-top: 16px;\n}\n\n.puck-ai-chat-message blockquote {\n margin-bottom: 8px;\n margin-top: 8px;\n margin-left: 0;\n border-left: 2px solid var(--puck-color-grey-09);\n padding-left: 16px;\n}\n\n.puck-ai-chat-message-data {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-08);\n border-radius: 16px;\n color: var(--puck-color-grey-05);\n margin-right: 24px;\n padding: 8px 12px;\n margin-top: 4px;\n margin-bottom: 4px;\n}\n\n.puck-ai-chat-message-data-inner {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n\n.puck-ai-chat-message-data-icon {\n display: flex;\n}\n\n.puck-ai-chat-message-file {\n margin-bottom: 8px;\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-file--user {\n margin-left: 24px;\n}\n\n.puck-ai-chat-message-file-image {\n border-radius: 12px;\n display: block;\n max-height: 220px;\n max-width: 100%;\n object-fit: contain;\n}\n\n.puck-ai-chat-message-file--user .puck-ai-chat-message-file-image {\n background: var(--puck-color-azure-10);\n border: 1px solid var(--puck-color-azure-08);\n}\n\n.puck-ai-chat-message-file-caption {\n color: var(--puck-color-grey-05);\n display: block;\n font-size: var(--puck-font-size-xxxs);\n margin-top: 4px;\n}\n\n.puck-ai-chat-message-file--document {\n background: var(--puck-color-azure-10);\n border-radius: 12px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-file--document a {\n word-break: break-all;\n}\n\n.puck-ai-chat-message-reasoning {\n background: var(--puck-color-grey-11);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 10px;\n color: var(--puck-color-grey-04);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 8px;\n margin-top: 8px;\n padding: 6px 10px;\n}\n\n.puck-ai-chat-message-reasoning-summary {\n cursor: pointer;\n font-weight: 600;\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.puck-ai-chat-message-reasoning-summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-reasoning-streaming {\n display: inline-flex;\n align-items: center;\n}\n\n.puck-ai-chat-message-reasoning-body {\n border-top: 1px solid var(--puck-color-grey-09);\n margin-top: 8px;\n padding-top: 8px;\n}\n\n.puck-ai-chat-message-reasoning-body p {\n margin: 0 0 6px;\n}\n\n.puck-ai-chat-message-source {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-source-meta {\n color: var(--puck-color-grey-07);\n margin-left: 6px;\n}\n\n.puck-ai-chat-message-step {\n border-top: 1px dashed var(--puck-color-grey-09);\n margin: 8px 0;\n opacity: 0.6;\n}\n\n.puck-ai-chat-message-tool {\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 12px;\n margin-bottom: 8px;\n margin-top: 8px;\n margin-right: 24px;\n padding: 8px 12px;\n}\n\n.puck-ai-chat-message-tool-header {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.puck-ai-chat-message-tool-icon {\n color: var(--puck-color-grey-06);\n display: flex;\n}\n\n.puck-ai-chat-message-tool-name {\n font-weight: 600;\n color: var(--puck-color-grey-03);\n}\n\n.puck-ai-chat-message-tool-state {\n align-items: center;\n color: var(--puck-color-grey-05);\n display: inline-flex;\n font-size: var(--puck-font-size-xxxs);\n gap: 6px;\n margin-left: auto;\n}\n\n.puck-ai-chat-message-tool-error {\n color: var(--puck-color-red-04);\n font-size: var(--puck-font-size-xxxs);\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-tool-details {\n margin-top: 8px;\n}\n\n.puck-ai-chat-message-tool-details summary {\n color: var(--puck-color-azure-04);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n list-style: none;\n}\n\n.puck-ai-chat-message-tool-details summary::-webkit-details-marker {\n display: none;\n}\n\n.puck-ai-chat-message-tool-pre {\n background: var(--puck-color-grey-11);\n border-radius: 6px;\n font-size: 11px;\n line-height: 1.45;\n margin-top: 6px;\n max-height: 200px;\n overflow: auto;\n padding: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.puck-ai-chat-message-data-summary {\n color: var(--puck-color-grey-05);\n font-size: var(--puck-font-size-xxxs);\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw {\n margin-bottom: 6px;\n margin-top: 6px;\n}\n\n.puck-ai-chat-message-data-raw summary {\n color: var(--puck-color-grey-05);\n cursor: pointer;\n font-size: var(--puck-font-size-xxxs);\n list-style: none;\n}\n\n.puck-ai-chat-message-data-raw summary::-webkit-details-marker {\n display: none;\n}\n\n/* ============================================================\n Target component banner\n ============================================================ */\n\n.puck-ai-target-banner {\n align-items: center;\n background: var(--puck-color-azure-11);\n border: 1px solid var(--puck-color-azure-09);\n border-radius: 6px;\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 8px;\n padding: 6px 10px;\n font-size: var(--puck-font-size-xxxs);\n line-height: 1.4;\n}\n\n.puck-ai-target-banner-label {\n color: var(--puck-color-azure-05);\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-name {\n color: var(--puck-color-grey-02);\n font-weight: 600;\n}\n\n.puck-ai-target-banner-id {\n color: var(--puck-color-grey-05);\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n background: var(--puck-color-azure-10);\n border-radius: 3px;\n padding: 1px 4px;\n /* Truncate very long IDs */\n max-width: 140px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.puck-ai-target-banner-clear {\n appearance: none;\n background: transparent;\n border: none;\n border-radius: 50%;\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n line-height: 1;\n margin-left: auto;\n padding: 0 2px;\n flex-shrink: 0;\n}\n\n.puck-ai-target-banner-clear:hover {\n color: var(--puck-color-grey-02);\n}\n\n/* ============================================================\n PromptForm\n ============================================================ */\n\n.puck-ai-prompt-form {\n --radius: 9px;\n background-color: var(--puck-color-grey-09);\n border-radius: var(--radius);\n width: 100%;\n}\n\n.puck-ai-prompt-form-inner {\n border-radius: var(--radius);\n padding: 1px;\n position: relative;\n}\n\n.puck-ai-prompt-form--dark {\n background-color: var(--puck-color-grey-02);\n box-shadow: none;\n}\n\n@keyframes puck-ai-glow-loop {\n 0% { transform: translate(-50%, -50%) rotate(0deg); }\n 100% { transform: translate(-50%, -50%) rotate(360deg); }\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow {\n border: 2px solid transparent;\n border-radius: var(--radius);\n -webkit-mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n mask: linear-gradient(transparent, transparent), linear-gradient(white, white);\n -webkit-mask-clip: padding-box, border-box;\n mask-clip: padding-box, border-box;\n -webkit-mask-composite: intersect;\n mask-composite: intersect;\n pointer-events: none;\n position: absolute;\n inset: -1px;\n z-index: 0;\n overflow: hidden;\n}\n\n.puck-ai-prompt-form--glow .puck-ai-prompt-form-glow::after {\n background: radial-gradient(circle at center, var(--puck-color-azure-06), transparent 50%);\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n aspect-ratio: 1;\n width: 200%;\n animation: puck-ai-glow-loop 3s linear infinite;\n}\n\n.puck-ai-prompt-form-form-inner {\n background-color: white;\n border-radius: 8px;\n position: relative;\n}\n\n.puck-ai-prompt-form-input {\n background-color: transparent;\n border: none;\n display: block;\n resize: none;\n color: var(--puck-color-grey-03);\n padding: 12px 16px;\n padding-left: 16px;\n padding-right: 8px;\n padding-bottom: 4px;\n font-family: inherit;\n font-size: var(--puck-font-size-xs);\n line-height: var(--line-height-s);\n width: 100%;\n box-sizing: border-box;\n}\n\n.puck-ai-prompt-form-input:focus {\n outline: none;\n}\n\n.puck-ai-prompt-form-form-inner:has(.puck-ai-prompt-form-input:focus) {\n outline: 2px solid var(--puck-color-azure-04);\n}\n\n.puck-ai-prompt-form--dark .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-01);\n color: var(--puck-color-grey-08);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-input {\n background-color: var(--puck-color-grey-12);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form-actions {\n align-items: flex-end;\n cursor: text;\n display: flex;\n gap: 8px;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px;\n}\n\n.puck-ai-prompt-form-actions-left {\n align-items: center;\n cursor: auto;\n display: flex;\n padding-left: 8px;\n}\n\n.puck-ai-prompt-form-actions-right {\n cursor: auto;\n margin-left: auto;\n}\n\n.puck-ai-prompt-form-action-submit {\n background: var(--puck-color-azure-04);\n border-radius: 48px;\n border: 0;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n align-self: flex-end;\n padding: 4px;\n pointer-events: auto;\n cursor: pointer;\n}\n\n.puck-ai-prompt-form-action-submit:hover {\n background: var(--puck-color-azure-05);\n}\n\n.puck-ai-prompt-form--is-disabled .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-grey-06);\n cursor: not-allowed;\n}\n\n.puck-ai-prompt-form--is-loading .puck-ai-prompt-form-action-submit {\n background-color: var(--puck-color-azure-06);\n cursor: not-allowed;\n}\n\n/* ─── Image attachment button ──────────────────────────────────────────────── */\n\n.puck-ai-image-attach-btn {\n align-items: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--puck-color-grey-05);\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding: 5px;\n transition: background 80ms, color 80ms, border-color 80ms;\n}\n\n.puck-ai-image-attach-btn:hover {\n background: var(--puck-color-grey-11);\n border-color: var(--puck-color-grey-09);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-image-attach-btn:disabled {\n color: var(--puck-color-grey-08);\n cursor: not-allowed;\n}\n\n/* ─── Drag-over state ───────────────────────────────────────────────────────── */\n\n.puck-ai-prompt-form--drag-over .puck-ai-prompt-form-form-inner {\n border-color: var(--puck-color-azure-05);\n background: var(--puck-color-azure-12);\n outline: 2px dashed var(--puck-color-azure-05);\n}\n\n/* ─── Image thumbnails strip ────────────────────────────────────────────────── */\n\n.puck-ai-image-thumbnails {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 8px 10px 0;\n}\n\n.puck-ai-image-thumbnail {\n position: relative;\n border-radius: 6px;\n overflow: hidden;\n width: 56px;\n height: 56px;\n border: 1px solid var(--puck-color-grey-09);\n flex-shrink: 0;\n}\n\n.puck-ai-image-thumbnail img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.puck-ai-image-thumbnail-remove {\n position: absolute;\n top: 2px;\n right: 2px;\n background: rgba(0, 0, 0, 0.55);\n border: none;\n border-radius: 50%;\n color: #fff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n opacity: 0;\n transition: opacity 120ms;\n}\n\n.puck-ai-image-thumbnail:hover .puck-ai-image-thumbnail-remove {\n opacity: 1;\n}\n\n/* ============================================================\n Toggle switch\n ============================================================ */\n\n.puck-ai-toggle {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n height: 20px;\n position: relative;\n width: 36px;\n}\n\n.puck-ai-toggle-input {\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n}\n\n.puck-ai-toggle-slider {\n background: var(--puck-color-grey-08);\n border-radius: 20px;\n inset: 0;\n position: absolute;\n transition: background 120ms;\n}\n\n.puck-ai-toggle-slider::after {\n background: white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n content: '';\n height: 16px;\n left: 2px;\n position: absolute;\n top: 2px;\n transition: left 120ms;\n width: 16px;\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider {\n background: var(--puck-color-azure-04);\n}\n\n.puck-ai-toggle-input:checked + .puck-ai-toggle-slider::after {\n left: 18px;\n}\n\n.puck-ai-toggle-input:focus-visible + .puck-ai-toggle-slider {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n\n.puck-ai-toggle--disabled .puck-ai-toggle-input:disabled + .puck-ai-toggle-slider {\n background: var(--puck-color-grey-08);\n}\n\n/* ============================================================\n Settings panel\n ============================================================ */\n\n.puck-ai-settings-scroll {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.puck-ai-settings {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 16px;\n}\n\n.puck-ai-settings-section {\n display: flex;\n flex-direction: column;\n}\n\n.puck-ai-settings-section-title {\n color: var(--puck-color-grey-05);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.06em;\n margin-bottom: 4px;\n text-transform: uppercase;\n}\n\n.puck-ai-settings-row {\n align-items: center;\n border-bottom: 1px solid var(--puck-color-grey-10);\n display: flex;\n gap: 12px;\n justify-content: space-between;\n padding: 10px 0;\n}\n\n.puck-ai-settings-row:last-child {\n border-bottom: none;\n}\n\n.puck-ai-settings-row--column {\n align-items: flex-start;\n flex-direction: column;\n gap: 8px;\n}\n\n.puck-ai-settings-label {\n color: var(--puck-color-grey-02);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 500;\n gap: 2px;\n}\n\n.puck-ai-settings-hint {\n color: var(--puck-color-grey-06);\n font-size: 11px;\n font-weight: 400;\n}\n\n.puck-ai-settings-select {\n appearance: none;\n background-color: var(--puck-color-grey-11);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23767676'/%3E%3C/svg%3E\");\n background-position: right 8px center;\n background-repeat: no-repeat;\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n color: var(--puck-color-grey-02);\n cursor: pointer;\n flex-shrink: 0;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n padding: 5px 28px 5px 8px;\n}\n\n.puck-ai-settings-select:focus {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-input-wrap {\n align-items: center;\n background: var(--puck-color-grey-12);\n border: 1px solid var(--puck-color-grey-09);\n border-radius: 6px;\n display: flex;\n overflow: hidden;\n width: 100%;\n}\n\n.puck-ai-settings-input-wrap:focus-within {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 0;\n}\n\n.puck-ai-settings-input {\n background: transparent;\n border: none;\n color: var(--puck-color-grey-02);\n flex: 1;\n font-family: var(--puck-font-family-monospaced, monospace);\n font-size: 11px;\n min-width: 0;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input:focus {\n outline: none;\n}\n\n.puck-ai-settings-input-action {\n align-items: center;\n appearance: none;\n background: transparent;\n border: none;\n border-left: 1px solid var(--puck-color-grey-09);\n color: var(--puck-color-grey-06);\n cursor: pointer;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n padding: 7px 8px;\n}\n\n.puck-ai-settings-input-action:hover {\n background: var(--puck-color-grey-11);\n color: var(--puck-color-grey-02);\n}\n\n.puck-ai-settings-link {\n color: var(--puck-color-azure-04);\n font-size: 11px;\n text-decoration: none;\n}\n\n.puck-ai-settings-link:hover {\n color: var(--puck-color-azure-05);\n text-decoration: underline;\n}\n\n.puck-ai-settings-clear-chat {\n align-items: center;\n align-self: flex-start;\n appearance: none;\n background: var(--puck-color-white);\n border: 1px solid var(--puck-color-red-04);\n border-radius: 6px;\n color: var(--puck-color-red-04);\n cursor: pointer;\n display: inline-flex;\n font-family: inherit;\n font-size: var(--puck-font-size-xxxs);\n font-weight: 600;\n gap: 8px;\n margin-top: 4px;\n padding: 8px 12px;\n}\n\n.puck-ai-settings-clear-chat:hover:not(:disabled) {\n background: var(--puck-color-grey-12);\n}\n\n.puck-ai-settings-clear-chat:focus-visible {\n outline: 2px solid var(--puck-color-azure-04);\n outline-offset: 2px;\n}\n\n.puck-ai-settings-clear-chat:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -189,6 +189,18 @@ type AiSettings = {
|
|
|
189
189
|
urlContext: boolean;
|
|
190
190
|
googleSearch: boolean;
|
|
191
191
|
enterpriseWebSearch: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* When a migration source URL is present, run Browser Rendering (Puppeteer/Worker) to capture
|
|
194
|
+
* a viewport screenshot and DOM bundle for the model. When off, migration URLs still enable
|
|
195
|
+
* URL context only — no `runBrowserMigrationPipeline` on the server.
|
|
196
|
+
*/
|
|
197
|
+
browserCapture: boolean;
|
|
198
|
+
/**
|
|
199
|
+
* When migrating from a page URL, run the full browser pipeline (DOM bundle + structured IR).
|
|
200
|
+
* Slower and uses more Worker time; leave off for screenshot-only + Vertex url_context.
|
|
201
|
+
* Only applies when {@link AiSettings.browserCapture} is enabled.
|
|
202
|
+
*/
|
|
203
|
+
pageMigrationIr: boolean;
|
|
192
204
|
figmaToken: string;
|
|
193
205
|
};
|
|
194
206
|
type AiPluginProps = {
|
package/dist/index.d.ts
CHANGED
|
@@ -189,6 +189,18 @@ type AiSettings = {
|
|
|
189
189
|
urlContext: boolean;
|
|
190
190
|
googleSearch: boolean;
|
|
191
191
|
enterpriseWebSearch: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* When a migration source URL is present, run Browser Rendering (Puppeteer/Worker) to capture
|
|
194
|
+
* a viewport screenshot and DOM bundle for the model. When off, migration URLs still enable
|
|
195
|
+
* URL context only — no `runBrowserMigrationPipeline` on the server.
|
|
196
|
+
*/
|
|
197
|
+
browserCapture: boolean;
|
|
198
|
+
/**
|
|
199
|
+
* When migrating from a page URL, run the full browser pipeline (DOM bundle + structured IR).
|
|
200
|
+
* Slower and uses more Worker time; leave off for screenshot-only + Vertex url_context.
|
|
201
|
+
* Only applies when {@link AiSettings.browserCapture} is enabled.
|
|
202
|
+
*/
|
|
203
|
+
pageMigrationIr: boolean;
|
|
192
204
|
figmaToken: string;
|
|
193
205
|
};
|
|
194
206
|
type AiPluginProps = {
|
package/dist/index.js
CHANGED
|
@@ -345,6 +345,8 @@ var DEFAULT_AI_SETTINGS = {
|
|
|
345
345
|
urlContext: false,
|
|
346
346
|
googleSearch: false,
|
|
347
347
|
enterpriseWebSearch: false,
|
|
348
|
+
browserCapture: false,
|
|
349
|
+
pageMigrationIr: false,
|
|
348
350
|
figmaToken: ""
|
|
349
351
|
};
|
|
350
352
|
var AI_SETTINGS_STORAGE_KEY = "puck-ai-settings";
|
|
@@ -415,12 +417,52 @@ var applyArrayDefaults = (oldProps, newProps, fields) => {
|
|
|
415
417
|
}
|
|
416
418
|
return updatedProps;
|
|
417
419
|
};
|
|
420
|
+
var scheduleReplacePropsAfterAddInsert = (operation, {
|
|
421
|
+
getState,
|
|
422
|
+
dispatchAction,
|
|
423
|
+
config
|
|
424
|
+
}) => {
|
|
425
|
+
const maxAttempts = 8;
|
|
426
|
+
const tryApply = (attempt) => {
|
|
427
|
+
var _a, _b, _c, _d, _e;
|
|
428
|
+
const existing = getItemById(getState(), operation.id);
|
|
429
|
+
if (existing) {
|
|
430
|
+
const newData = __spreadProps(__spreadValues({}, existing), {
|
|
431
|
+
props: applyArrayDefaults(
|
|
432
|
+
existing.props,
|
|
433
|
+
operation.props,
|
|
434
|
+
(_b = (_a = config.components[existing.type]) == null ? void 0 : _a.fields) != null ? _b : {}
|
|
435
|
+
)
|
|
436
|
+
});
|
|
437
|
+
dispatchAction({
|
|
438
|
+
type: "replace",
|
|
439
|
+
destinationIndex: operation.index,
|
|
440
|
+
destinationZone: operation.zone,
|
|
441
|
+
data: newData,
|
|
442
|
+
recordHistory: false
|
|
443
|
+
});
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
446
|
+
if (attempt >= maxAttempts) {
|
|
447
|
+
const zoneOk = Boolean((_e = (_d = (_c = getState()) == null ? void 0 : _c.indexes) == null ? void 0 : _d.zones) == null ? void 0 : _e[operation.zone]);
|
|
448
|
+
console.error(
|
|
449
|
+
"Puck AI: could not find inserted item after add.",
|
|
450
|
+
zoneOk ? "State may not have synced yet." : `Target zone may be invalid or not yet in the tree: ${operation.zone}`,
|
|
451
|
+
operation
|
|
452
|
+
);
|
|
453
|
+
return;
|
|
454
|
+
}
|
|
455
|
+
const delay = attempt === 0 ? 0 : attempt === 1 ? 0 : attempt === 2 ? 10 : attempt === 3 ? 50 : attempt === 4 ? 100 : 200;
|
|
456
|
+
setTimeout(() => tryApply(attempt + 1), delay);
|
|
457
|
+
};
|
|
458
|
+
queueMicrotask(() => tryApply(0));
|
|
459
|
+
};
|
|
418
460
|
var dispatchOp = (operation, {
|
|
419
461
|
getState,
|
|
420
462
|
dispatchAction,
|
|
421
463
|
config
|
|
422
464
|
}) => {
|
|
423
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
465
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
424
466
|
const state = getState();
|
|
425
467
|
try {
|
|
426
468
|
if (operation.op === "add") {
|
|
@@ -433,25 +475,10 @@ var dispatchOp = (operation, {
|
|
|
433
475
|
id: operation.id,
|
|
434
476
|
recordHistory: false
|
|
435
477
|
});
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
);
|
|
441
|
-
}
|
|
442
|
-
const newData = __spreadProps(__spreadValues({}, existing), {
|
|
443
|
-
props: applyArrayDefaults(
|
|
444
|
-
existing.props,
|
|
445
|
-
operation.props,
|
|
446
|
-
(_b = (_a = config.components[existing.type]) == null ? void 0 : _a.fields) != null ? _b : {}
|
|
447
|
-
)
|
|
448
|
-
});
|
|
449
|
-
dispatchAction({
|
|
450
|
-
type: "replace",
|
|
451
|
-
destinationIndex: operation.index,
|
|
452
|
-
destinationZone: operation.zone,
|
|
453
|
-
data: newData,
|
|
454
|
-
recordHistory: false
|
|
478
|
+
scheduleReplacePropsAfterAddInsert(operation, {
|
|
479
|
+
getState,
|
|
480
|
+
dispatchAction,
|
|
481
|
+
config
|
|
455
482
|
});
|
|
456
483
|
}
|
|
457
484
|
} else if (operation.op === "update") {
|
|
@@ -466,7 +493,7 @@ var dispatchOp = (operation, {
|
|
|
466
493
|
props: applyArrayDefaults(
|
|
467
494
|
existing.props,
|
|
468
495
|
operation.props,
|
|
469
|
-
(
|
|
496
|
+
(_b = (_a = config.components[existing.type]) == null ? void 0 : _a.fields) != null ? _b : {}
|
|
470
497
|
)
|
|
471
498
|
});
|
|
472
499
|
dispatchAction({
|
|
@@ -477,8 +504,8 @@ var dispatchOp = (operation, {
|
|
|
477
504
|
recordHistory: false
|
|
478
505
|
});
|
|
479
506
|
} else if (operation.op === "updateRoot") {
|
|
480
|
-
const existing = (
|
|
481
|
-
const defaultProps = (
|
|
507
|
+
const existing = (_c = state == null ? void 0 : state.data) == null ? void 0 : _c.root;
|
|
508
|
+
const defaultProps = (_e = (_d = config.root) == null ? void 0 : _d.defaultProps) != null ? _e : {};
|
|
482
509
|
dispatchAction({
|
|
483
510
|
type: "replaceRoot",
|
|
484
511
|
root: __spreadProps(__spreadValues({}, existing), {
|
|
@@ -528,7 +555,7 @@ var dispatchOp = (operation, {
|
|
|
528
555
|
recordHistory: false
|
|
529
556
|
});
|
|
530
557
|
} else if (operation.op === "reset") {
|
|
531
|
-
const defaultRootProps = (
|
|
558
|
+
const defaultRootProps = (_g = (_f = config.root) == null ? void 0 : _f.defaultProps) != null ? _g : {};
|
|
532
559
|
dispatchAction({
|
|
533
560
|
type: "setData",
|
|
534
561
|
data: { content: [], root: defaultRootProps },
|
|
@@ -606,14 +633,32 @@ function FileMessagePart({
|
|
|
606
633
|
}
|
|
607
634
|
);
|
|
608
635
|
}
|
|
609
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "puck-ai-chat-message-file puck-ai-chat-message-file--document", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "puck-ai-chat-message-file puck-ai-chat-message-file--document", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
637
|
+
"a",
|
|
638
|
+
{
|
|
639
|
+
href: part.url,
|
|
640
|
+
target: "_blank",
|
|
641
|
+
rel: "noopener noreferrer",
|
|
642
|
+
download: part.filename,
|
|
643
|
+
children: (_b = part.filename) != null ? _b : part.mediaType
|
|
644
|
+
}
|
|
645
|
+
) });
|
|
610
646
|
}
|
|
611
|
-
function ReasoningMessagePart({
|
|
647
|
+
function ReasoningMessagePart({
|
|
648
|
+
part
|
|
649
|
+
}) {
|
|
612
650
|
const streaming = part.state === "streaming";
|
|
613
651
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", { className: "puck-ai-chat-message-reasoning", open: streaming, children: [
|
|
614
652
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", { className: "puck-ai-chat-message-reasoning-summary", children: [
|
|
615
653
|
"Reasoning",
|
|
616
|
-
streaming ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
654
|
+
streaming ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
655
|
+
"span",
|
|
656
|
+
{
|
|
657
|
+
className: "puck-ai-chat-message-reasoning-streaming",
|
|
658
|
+
"aria-live": "polite",
|
|
659
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loader, { size: 12 })
|
|
660
|
+
}
|
|
661
|
+
) : null
|
|
617
662
|
] }),
|
|
618
663
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "puck-ai-chat-message-reasoning-body", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_markdown.default, { children: part.text }) })
|
|
619
664
|
] });
|
|
@@ -674,7 +719,8 @@ function DataMessagePart({ part }) {
|
|
|
674
719
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-chat-message-data-summary", children: [
|
|
675
720
|
"Tokens: in ",
|
|
676
721
|
(_b = (_a = d.tokenUsage) == null ? void 0 : _a.inputTokens) != null ? _b : "\u2014",
|
|
677
|
-
" \xB7 out
|
|
722
|
+
" \xB7 out",
|
|
723
|
+
" ",
|
|
678
724
|
(_d = (_c = d.tokenUsage) == null ? void 0 : _c.outputTokens) != null ? _d : "\u2014",
|
|
679
725
|
d.totalCost !== void 0 ? ` \xB7 cost ${d.totalCost}` : ""
|
|
680
726
|
] });
|
|
@@ -1176,21 +1222,30 @@ function ScrollTracking({ children }) {
|
|
|
1176
1222
|
function Toggle({
|
|
1177
1223
|
checked,
|
|
1178
1224
|
onChange,
|
|
1179
|
-
id
|
|
1225
|
+
id,
|
|
1226
|
+
disabled
|
|
1180
1227
|
}) {
|
|
1181
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
{
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1229
|
+
"label",
|
|
1230
|
+
{
|
|
1231
|
+
className: `puck-ai-toggle${disabled ? " puck-ai-toggle--disabled" : ""}`,
|
|
1232
|
+
htmlFor: id,
|
|
1233
|
+
children: [
|
|
1234
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1235
|
+
"input",
|
|
1236
|
+
{
|
|
1237
|
+
type: "checkbox",
|
|
1238
|
+
id,
|
|
1239
|
+
checked,
|
|
1240
|
+
disabled,
|
|
1241
|
+
onChange: (e) => onChange(e.target.checked),
|
|
1242
|
+
className: "puck-ai-toggle-input"
|
|
1243
|
+
}
|
|
1244
|
+
),
|
|
1245
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "puck-ai-toggle-slider" })
|
|
1246
|
+
]
|
|
1247
|
+
}
|
|
1248
|
+
);
|
|
1194
1249
|
}
|
|
1195
1250
|
function SettingsPanel({
|
|
1196
1251
|
settings,
|
|
@@ -1251,6 +1306,51 @@ function SettingsPanel({
|
|
|
1251
1306
|
}
|
|
1252
1307
|
)
|
|
1253
1308
|
] }),
|
|
1309
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-settings-row", children: [
|
|
1310
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1311
|
+
"label",
|
|
1312
|
+
{
|
|
1313
|
+
className: "puck-ai-settings-label",
|
|
1314
|
+
htmlFor: "puck-ai-browser-capture",
|
|
1315
|
+
children: [
|
|
1316
|
+
"Browser capture",
|
|
1317
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "puck-ai-settings-hint", children: "Run server-side browser migration (screenshot + DOM bundle) when a migration URL is in the prompt. Turn off to use URL context only without Worker/Puppeteer." })
|
|
1318
|
+
]
|
|
1319
|
+
}
|
|
1320
|
+
),
|
|
1321
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1322
|
+
Toggle,
|
|
1323
|
+
{
|
|
1324
|
+
id: "puck-ai-browser-capture",
|
|
1325
|
+
checked: settings.browserCapture,
|
|
1326
|
+
onChange: (v) => onChange(__spreadValues({
|
|
1327
|
+
browserCapture: v
|
|
1328
|
+
}, v ? {} : { pageMigrationIr: false }))
|
|
1329
|
+
}
|
|
1330
|
+
)
|
|
1331
|
+
] }),
|
|
1332
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-settings-row", children: [
|
|
1333
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1334
|
+
"label",
|
|
1335
|
+
{
|
|
1336
|
+
className: "puck-ai-settings-label",
|
|
1337
|
+
htmlFor: "puck-ai-page-migration-ir",
|
|
1338
|
+
children: [
|
|
1339
|
+
"Page migration IR",
|
|
1340
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "puck-ai-settings-hint", children: "Full DOM bundle + structured plan when a source URL is captured (slower; screenshot-only when off). Requires Browser capture." })
|
|
1341
|
+
]
|
|
1342
|
+
}
|
|
1343
|
+
),
|
|
1344
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1345
|
+
Toggle,
|
|
1346
|
+
{
|
|
1347
|
+
id: "puck-ai-page-migration-ir",
|
|
1348
|
+
disabled: !settings.browserCapture,
|
|
1349
|
+
checked: settings.pageMigrationIr,
|
|
1350
|
+
onChange: (v) => onChange({ pageMigrationIr: v })
|
|
1351
|
+
}
|
|
1352
|
+
)
|
|
1353
|
+
] }),
|
|
1254
1354
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-settings-row", children: [
|
|
1255
1355
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1256
1356
|
"label",
|
|
@@ -1346,10 +1446,17 @@ function SettingsPanel({
|
|
|
1346
1446
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-settings-section", children: [
|
|
1347
1447
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "puck-ai-settings-section-title", children: "Chat" }),
|
|
1348
1448
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "puck-ai-settings-row puck-ai-settings-row--column", children: [
|
|
1349
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1350
|
-
"
|
|
1351
|
-
|
|
1352
|
-
|
|
1449
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1450
|
+
"label",
|
|
1451
|
+
{
|
|
1452
|
+
className: "puck-ai-settings-label",
|
|
1453
|
+
htmlFor: "puck-ai-clear-chat",
|
|
1454
|
+
children: [
|
|
1455
|
+
"Clear chat history",
|
|
1456
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "puck-ai-settings-hint", children: "Remove all messages and reset the conversation context for this session." })
|
|
1457
|
+
]
|
|
1458
|
+
}
|
|
1459
|
+
),
|
|
1353
1460
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1354
1461
|
"button",
|
|
1355
1462
|
{
|
|
@@ -1498,6 +1605,11 @@ function Chat({
|
|
|
1498
1605
|
if (currentSettings.thinkingLevel !== "none")
|
|
1499
1606
|
geminiConfig.thinkingLevel = currentSettings.thinkingLevel;
|
|
1500
1607
|
if (currentSettings.urlContext) geminiConfig.urlContext = true;
|
|
1608
|
+
if (currentSettings.browserCapture) {
|
|
1609
|
+
geminiConfig.browserCapture = true;
|
|
1610
|
+
if (currentSettings.pageMigrationIr)
|
|
1611
|
+
geminiConfig.pageMigrationIr = true;
|
|
1612
|
+
}
|
|
1501
1613
|
if (currentSettings.googleSearch) geminiConfig.googleSearch = true;
|
|
1502
1614
|
if (currentSettings.enterpriseWebSearch)
|
|
1503
1615
|
geminiConfig.enterpriseWebSearch = true;
|