@syntrologie/runtime-sdk 2.1.0-canary.9 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CAPABILITIES.md +142 -93
- package/dist/SmartCanvasApp.d.ts +1 -3
- package/dist/SmartCanvasApp.js +16 -10
- package/dist/SmartCanvasApp.js.map +1 -1
- package/dist/SmartCanvasElement.d.ts +0 -2
- package/dist/SmartCanvasElement.js +3 -8
- package/dist/SmartCanvasElement.js.map +1 -1
- package/dist/actions/executors/index.js +4 -1
- package/dist/actions/executors/index.js.map +1 -1
- package/dist/actions/executors/tour.js +2 -2
- package/dist/actions/executors/tour.js.map +1 -1
- package/dist/actions/validation.js +5 -30
- package/dist/actions/validation.js.map +1 -1
- package/dist/adaptives/adaptive-chatbot/index.js +7 -5
- package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
- package/dist/adaptives/adaptive-content/index.js +22 -0
- package/dist/adaptives/adaptive-content/index.js.map +7 -0
- package/dist/adaptives/adaptive-faq/index.js +11 -0
- package/dist/adaptives/adaptive-faq/index.js.map +7 -0
- package/dist/adaptives/adaptive-gamification/index.js +2 -0
- package/dist/adaptives/adaptive-gamification/index.js.map +7 -0
- package/dist/adaptives/adaptive-nav/index.js +12 -0
- package/dist/adaptives/adaptive-nav/index.js.map +7 -0
- package/dist/adaptives/adaptive-overlays/index.js +94 -0
- package/dist/adaptives/adaptive-overlays/index.js.map +7 -0
- package/dist/api.d.ts +1 -9
- package/dist/api.js +5 -5
- package/dist/api.js.map +1 -1
- package/dist/apps/AppLoader.d.ts +5 -0
- package/dist/apps/AppLoader.js +28 -3
- package/dist/apps/AppLoader.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/types.d.ts +26 -0
- package/dist/blocks/data/ComparisonBlock.js +12 -9
- package/dist/blocks/data/ComparisonBlock.js.map +1 -1
- package/dist/blocks/data/StatsBlock.js +11 -10
- package/dist/blocks/data/StatsBlock.js.map +1 -1
- package/dist/blocks/index.d.ts +9 -5
- package/dist/blocks/index.js +2 -2
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/interactive/ChecklistBlock.js +13 -12
- package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
- package/dist/blocks/interactive/RatingBlock.js +20 -12
- package/dist/blocks/interactive/RatingBlock.js.map +1 -1
- package/dist/blocks/notification/NotificationBlock.js +24 -23
- package/dist/blocks/notification/NotificationBlock.js.map +1 -1
- package/dist/blocks/theme-tokens.d.ts +23 -0
- package/dist/blocks/theme-tokens.js +25 -0
- package/dist/blocks/theme-tokens.js.map +1 -0
- package/dist/bootstrap.js +9 -4
- package/dist/bootstrap.js.map +1 -1
- package/dist/components/ShadowCanvasOverlay.d.ts +6 -3
- package/dist/components/ShadowCanvasOverlay.js +180 -105
- package/dist/components/ShadowCanvasOverlay.js.map +1 -1
- package/dist/components/TileCard.d.ts +1 -5
- package/dist/components/TileCard.js +61 -286
- package/dist/components/TileCard.js.map +1 -1
- package/dist/components/TileWheel.js +3 -5
- package/dist/components/TileWheel.js.map +1 -1
- package/dist/configFetcher.d.ts +5 -1
- package/dist/configFetcher.js +33 -2
- package/dist/configFetcher.js.map +1 -1
- package/dist/context/ContextManager.js +3 -2
- package/dist/context/ContextManager.js.map +1 -1
- package/dist/decisions/engine.d.ts +4 -0
- package/dist/decisions/engine.js +6 -1
- package/dist/decisions/engine.js.map +1 -1
- package/dist/decisions/schema.d.ts +241 -0
- package/dist/decisions/schema.js +8 -0
- package/dist/decisions/schema.js.map +1 -1
- package/dist/decisions/strategies/rules.js +14 -0
- package/dist/decisions/strategies/rules.js.map +1 -1
- package/dist/decisions/types.d.ts +21 -1
- package/dist/editorLoader.d.ts +2 -2
- package/dist/editorLoader.js +25 -4
- package/dist/editorLoader.js.map +1 -1
- package/dist/events/EventAccumulator.d.ts +29 -0
- package/dist/events/EventAccumulator.js +101 -0
- package/dist/events/EventAccumulator.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +1 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/normalizers/posthog.js +12 -4
- package/dist/events/normalizers/posthog.js.map +1 -1
- package/dist/events/types.d.ts +4 -0
- package/dist/events/types.js +5 -0
- package/dist/events/types.js.map +1 -1
- package/dist/experiments/adapters/growthbook.d.ts +2 -1
- package/dist/experiments/adapters/growthbook.js +11 -23
- package/dist/experiments/adapters/growthbook.js.map +1 -1
- package/dist/experiments/types.d.ts +5 -0
- package/dist/fetchers/experimentsFetcher.d.ts +23 -1
- package/dist/fetchers/experimentsFetcher.js +48 -1
- package/dist/fetchers/experimentsFetcher.js.map +1 -1
- package/dist/fetchers/mergeConfigs.d.ts +29 -0
- package/dist/fetchers/mergeConfigs.js +38 -0
- package/dist/fetchers/mergeConfigs.js.map +1 -0
- package/dist/hooks/useShadowCanvasConfig.js +1 -1
- package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/dist/notifications/NotificationToastStack.d.ts +8 -0
- package/dist/notifications/NotificationToastStack.js +118 -0
- package/dist/notifications/NotificationToastStack.js.map +1 -0
- package/dist/notifications/index.d.ts +9 -0
- package/dist/notifications/index.js +6 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/matcher.d.ts +25 -0
- package/dist/notifications/matcher.js +66 -0
- package/dist/notifications/matcher.js.map +1 -0
- package/dist/notifications/types.d.ts +64 -0
- package/dist/notifications/types.js +13 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/notifications/useNotifications.d.ts +19 -0
- package/dist/notifications/useNotifications.js +104 -0
- package/dist/notifications/useNotifications.js.map +1 -0
- package/dist/notifications/useNotifyWatcher.d.ts +15 -0
- package/dist/notifications/useNotifyWatcher.js +62 -0
- package/dist/notifications/useNotifyWatcher.js.map +1 -0
- package/dist/overlays/runtime/overlay/runner.js +2 -2
- package/dist/overlays/runtime/overlay/runner.js.map +1 -1
- package/dist/render/RenderContext.js +5 -3
- package/dist/render/RenderContext.js.map +1 -1
- package/dist/render/types.d.ts +2 -3
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.js +28 -12
- package/dist/runtime.js.map +1 -1
- package/dist/smart-canvas.esm.js +105 -88
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +18310 -18722
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +105 -88
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/theme/defaultTheme.d.ts +5 -0
- package/dist/theme/defaultTheme.js +19 -1
- package/dist/theme/defaultTheme.js.map +1 -1
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.d.ts +7 -0
- package/dist/types.d.ts +13 -100
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/widgets/WidgetRegistry.d.ts +6 -1
- package/dist/widgets/WidgetRegistry.js +12 -4
- package/dist/widgets/WidgetRegistry.js.map +1 -1
- package/package.json +4 -3
- package/schema/canvas-config.schema.json +34 -69
- package/schema/event-catalog.schema.json +157 -0
- package/scripts/validate-config.mjs +20 -13
- package/dist/adaptives/faq/index.js +0 -11
- package/dist/adaptives/faq/index.js.map +0 -7
- package/dist/adaptives/gamification/index.js +0 -2
- package/dist/adaptives/gamification/index.js.map +0 -7
- package/dist/adaptives/nav/index.js +0 -11
- package/dist/adaptives/nav/index.js.map +0 -7
|
@@ -4,27 +4,6 @@
|
|
|
4
4
|
* Validates action steps before execution.
|
|
5
5
|
*/
|
|
6
6
|
import { hasExecutor } from './executors';
|
|
7
|
-
/** Known action kinds */
|
|
8
|
-
const VALID_KINDS = [
|
|
9
|
-
'overlays:highlight',
|
|
10
|
-
'overlays:pulse',
|
|
11
|
-
'overlays:badge',
|
|
12
|
-
'overlays:tooltip',
|
|
13
|
-
'overlays:modal',
|
|
14
|
-
'content:insertHtml',
|
|
15
|
-
'content:setText',
|
|
16
|
-
'content:setAttr',
|
|
17
|
-
'content:addClass',
|
|
18
|
-
'content:removeClass',
|
|
19
|
-
'content:setStyle',
|
|
20
|
-
'core:mountWidget',
|
|
21
|
-
'core:wait',
|
|
22
|
-
'core:sequence',
|
|
23
|
-
'core:parallel',
|
|
24
|
-
'core:tour',
|
|
25
|
-
'navigation:scrollTo',
|
|
26
|
-
'navigation:navigate',
|
|
27
|
-
];
|
|
28
7
|
/** Dangerous attribute names that should not be set */
|
|
29
8
|
const DANGEROUS_ATTRS = new Set([
|
|
30
9
|
'onclick',
|
|
@@ -66,7 +45,11 @@ export function validateAction(action) {
|
|
|
66
45
|
});
|
|
67
46
|
return { valid: false, errors, warnings };
|
|
68
47
|
}
|
|
69
|
-
|
|
48
|
+
// The executor registry is the source of truth for valid action kinds.
|
|
49
|
+
// Core executors are registered at startup; app executors are registered
|
|
50
|
+
// dynamically when apps activate via AppRegistry.activate().
|
|
51
|
+
// core:mountWidget is special-cased (handled by ActionEngine, not ExecutorRegistry).
|
|
52
|
+
if (!hasExecutor(kind) && kind !== 'core:mountWidget') {
|
|
70
53
|
errors.push({
|
|
71
54
|
code: 'UNKNOWN_KIND',
|
|
72
55
|
message: `Unknown action kind: ${kind}`,
|
|
@@ -74,14 +57,6 @@ export function validateAction(action) {
|
|
|
74
57
|
});
|
|
75
58
|
return { valid: false, errors, warnings };
|
|
76
59
|
}
|
|
77
|
-
// Check executor exists
|
|
78
|
-
if (!hasExecutor(kind) && kind !== 'core:mountWidget') {
|
|
79
|
-
errors.push({
|
|
80
|
-
code: 'NO_EXECUTOR',
|
|
81
|
-
message: `No executor registered for action kind: ${kind}`,
|
|
82
|
-
field: 'kind',
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
60
|
// Kind-specific validation
|
|
86
61
|
switch (kind) {
|
|
87
62
|
case 'overlays:highlight':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/actions/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/actions/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
function m(...t){return t.filter(Boolean).join(" ")}function Y(){return typeof SynOS<"u"&&SynOS.React||{}}function Q(t,n,s){var o=Y(),a=n||{},l=a.children;return delete a.children,s!==void 0&&(a.key=s),Array.isArray(l)?o.createElement.apply(null,[t,a].concat(l)):l!==void 0?o.createElement(t,a,l):o.createElement(t,a)}var r=Q,i=Q,be=Y().Fragment;function q({children:t}){return r("div",{className:"se-flex se-flex-col se-h-full se-font-sans",children:t})}function z({title:t,subtitle:n,onBack:s}){return i("div",{className:"se-p-4 se-border-b se-border-border-primary se-flex se-items-center se-gap-3",children:[r("button",{onClick:s,className:"se-px-3 se-py-1.5 se-rounded-md se-border se-border-btn-neutral-border se-bg-transparent se-text-btn-neutral-text se-text-sm se-cursor-pointer hover:se-text-btn-neutral-text-hover",children:"\u2190 Back"}),i("div",{children:[r("h2",{className:"se-m-0 se-text-base se-font-semibold se-text-text-primary",children:t}),n&&r("p",{className:"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary",children:n})]})]})}function U({children:t}){return r("div",{className:"se-flex-1 se-overflow-auto se-p-6",children:t})}function G({onSave:t,onPublish:n}){return i("div",{className:"se-py-3 se-px-4 se-border-t se-border-border-primary se-flex se-gap-2",children:[r("button",{onClick:t,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-blue-5/15 se-text-blue-5 se-text-base se-font-semibold se-cursor-pointer",children:"Save Draft"}),r("button",{onClick:n,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-green-4 se-text-white se-text-base se-font-semibold se-cursor-pointer",children:"Publish"})]})}function M(){return typeof SynOS<"u"&&SynOS.React||{}}var Z=new Proxy({},{get:function(t,n){return M()[n]}});function w(){return M().useState.apply(null,arguments)}function _(){return M().useEffect.apply(null,arguments)}function O(){return M().useCallback.apply(null,arguments)}function h(){return M().useRef.apply(null,arguments)}var N=M(),Le=N.Fragment,Oe=N.Suspense,Te=N.Children,Fe=N.Component,We=N.PureComponent;function D({label:t,className:n,...s}){return i("div",{children:[t&&r("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),r("input",{...s,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function J({label:t,className:n,...s}){return i("div",{children:[t&&r("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),r("textarea",{...s,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function ge({config:t,onChange:n,editor:s}){let o=t,a=h(!1);_(()=>{!a.current&&(s.initialEditKey!=null||s.initialCreate)&&(a.current=!0,s.clearInitialState?.())},[s]);let l=(u,v)=>{n({...t,[u]:v}),s.setDirty(!0)};return i(q,{children:[r(z,{title:"Chat Assistant",subtitle:"Configure AI chat assistant",onBack:()=>s.navigateHome()}),i(U,{children:[i("div",{className:"se-mb-6",children:[r("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"API Configuration"}),r(D,{label:"Backend URL",type:"text",value:o.backendUrl||"",onChange:u=>l("backendUrl",u.target.value),placeholder:"/api/chat/message"}),r(D,{label:"MLflow Run ID (optional)",type:"text",value:o.mlflowRunId||"",onChange:u=>l("mlflowRunId",u.target.value),placeholder:"e.g., abc123"})]}),i("div",{className:"se-mb-6",children:[r("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"Chat Settings"}),r(J,{label:"Greeting Message",value:o.greeting||"",onChange:u=>l("greeting",u.target.value),placeholder:"Hi! How can I help?"}),r(D,{label:"Max History (messages sent to backend)",type:"number",value:o.maxHistory||20,onChange:u=>l("maxHistory",parseInt(u.target.value,10)),min:1,max:100})]})]}),r(G,{onSave:()=>s.save(),onPublish:()=>s.publish()})]})}var ee={title:"Chat Assistant",icon:"\u{1F4AC}",description:"AI chat assistant with action execution"},te=ge;var b={white:"#ffffff",black:"#000000"},f={0:"#2c0b0a",1:"#5b1715",2:"#89221f",3:"#b72e2a",4:"#d44844",5:"#dd6d69",6:"#e5918f",7:"#eeb6b4",8:"#f6dada",9:"#faebea"},e={0:"#07080a",1:"#0f1318",2:"#0e1114",3:"#1c222a",4:"#2b333f",5:"#394454",6:"#475569",7:"#677384",8:"#87919f",9:"#a8afba",10:"#cbd0d7",11:"#e8eaee",12:"#f6f7f9"},c={0:"#07230a",1:"#0e4514",2:"#16681e",3:"#1d8a28",4:"#24ad32",5:"#4fbd5a",6:"#7acd82",7:"#a5deab",8:"#d0eed3",9:"#e5f6e7"},g={0:"#301f09",1:"#5f3e12",2:"#8f5e1b",3:"#be7d24",4:"#ee9c2d",5:"#f1b057",6:"#f5c481",7:"#f8d7ab",8:"#fcebd5",9:"#fdf5ea"},d={0:"#330707",1:"#660f0e",2:"#991616",3:"#cc1e1d",4:"#ff2524",5:"#ff5150",6:"#ff7c7c",7:"#ffa8a7",8:"#ffd3d3",9:"#ffe9e9"},I={0:"#051533",1:"#0a2a66",2:"#0f3f98",3:"#1454cb",4:"#1969fe",5:"#4787fe",6:"#75a5fe",7:"#a3c3ff",8:"#d1e1ff",9:"#e8f0ff"},A={0:"#662500",1:"#993d00",2:"#cc5800",3:"#ff7700",4:"#fea85d",5:"#fec58f",6:"#ffd6ae",7:"#fee6cd",8:"#fff1e1",9:"#fff8f0"},y={0:"#151229",1:"#2a2452",2:"#40357c",3:"#5547a5",4:"#6a59ce",5:"#887ad8",6:"#a69be2",7:"#c3bdeb",8:"#e1def5",9:"#f0eefa"},$={0:"#37091f",1:"#69123c",2:"#9b1c58",3:"#cd2575",4:"#ff2e92",5:"#ff58a8",6:"#ff82be",7:"#ffabd3",8:"#ffd5e9",9:"#ffeaf4"};var er={primary:e[10],secondary:e[9],tertiary:e[8]},tr={primary:e[2],secondary:e[0]},rr={primary:e[4],secondary:e[3]},sr={primary:{text:b.white,icon:b.white,border:f[3],backgroundDefault:f[3],backgroundHover:f[2]},neutral:{text:e[10],textHover:b.white,icon:e[10],iconHover:b.white,border:e[4],background:e[2]},link:{text:b.white,icon:b.white,hover:f[5]},error:{text:d[5],hover:d[6]},success:{text:c[5],hover:c[6]}},nr={slateGrey:{content:e[10],pillOutline:e[10],borderPrimary:e[5],borderSecondary:e[5],background:e[3]},brand:{content:f[9],pillOutline:f[9],borderPrimary:f[6],borderSecondary:f[6],background:f[0]},red:{content:d[8],pillOutline:d[4],borderPrimary:d[2],borderSecondary:d[2],background:d[0]},yellow:{content:g[8],pillOutline:g[4],borderPrimary:g[2],borderSecondary:g[2],background:g[0]},green:{content:c[8],pillOutline:c[4],borderPrimary:c[2],borderSecondary:c[2],background:c[0]},purple:{content:y[8],pillOutline:y[4],borderPrimary:y[2],borderSecondary:y[2],background:y[0]},blue:{content:I[8],pillOutline:I[4],borderPrimary:I[2],borderSecondary:I[2],background:I[0]},orange:{content:A[8],pillOutline:A[4],borderPrimary:A[2],borderSecondary:A[2],background:A[0]},pink:{content:$[8],pillOutline:$[4],borderPrimary:$[2],borderSecondary:$[2],background:$[0]}},or={green:{content:c[8],border:c[2],background:c[0]},yellow:{content:g[8],border:g[2],background:g[0]},red:{content:d[8],border:d[2],background:d[0]}},ar={green:{content:c[1],background:c[9]},yellow:{content:g[1],background:g[9]},red:{content:d[1],background:d[9]}},ir={content:e[10],border:e[4],background:"#1c2124"},lr={backgroundDefault:e[2],backgroundHover:e[1],selected:e[3]},cr={background:e[2],icon:e[10],borderDefault:e[4],borderSelected:f[3],textLabel:e[9],textPlaceholder:e[8],textHint:e[8]},dr={backgroundDefault:e[2],backgroundDisabled:e[0],textLabel:e[9],textPlaceholder:e[8],textHint:e[8],textError:d[5],iconDefault:e[9],iconPlaceholder:e[10],iconError:d[5],borderDefault:e[4],borderSelected:f[3],borderError:d[5]},ur={handleDefault:b.white,handleDisabled:e[10],off:{backgroundDefault:e[4],backgroundHover:e[5],backgroundDisabled:e[4]},on:{backgroundDefault:c[3],backgroundHover:c[2],backgroundDisabled:e[4]}},pr={off:{backgroundDefault:"#00000000",backgroundHover:e[5],backgroundDisabled:e[2],border:e[6]},on:{backgroundDefault:c[0],backgroundHover:c[1],backgroundDisabled:e[2],border:c[3]}},fr={content:e[10],background:e[4]},mr={background:e[4],active:c[3]},br={background:e[1],content:e[9],border:e[4]},xr={backgroundDefault:e[1],backgroundHover:e[3],backgroundActive:e[4],border:e[4],contentPrimary:e[10],contentSecondary:e[9],contentTertiary:e[8]},gr={background:e[1],content:e[9],border:e[4]},hr={activeBackground:e[3],activeContent:f[5],inactiveContent:e[9],border:e[4]},yr={header:{textDefault:e[9],textHover:e[8],backgroundDefault:e[1]},border:e[4],cell:{textPrimary:e[10],textSecondary:e[9],backgroundDefault:e[2],backgroundHover:e[1]}},vr={textPrimaryDefault:e[10],textPrimaryHover:e[10],textSecondaryDefault:e[8],textSecondaryHover:e[9],iconPrimary:e[10],iconSecondary:e[8]},kr={background:c[1],active:c[5]},wr={textDefault:e[10],textSelected:b.white,textDisabled:e[7],backgroundDefault:e[2],backgroundMiddle:e[3],backgroundSelected:f[3],border:e[4]},Cr=e[9];function re(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var Hr=new Proxy({},{get:function(t,n){return re()[n]}});function V(){return re().createRoot.apply(null,arguments)}var se=/```json\s*\n([\s\S]*?)```/g;function ne(t){let n=[],s=t,o=[],a;for(se.lastIndex=0;(a=se.exec(t))!==null;)o.push({fullMatch:a[0],json:a[1],index:a.index});for(let l=o.length-1;l>=0;l--){let{fullMatch:u,json:v}=o[l],p;try{p=JSON.parse(v)}catch{continue}typeof p=="object"&&p!==null&&"kind"in p&&typeof p.kind=="string"&&(n.unshift(p),s=s.replace(u,""))}return s=s.replace(/\n{3,}/g,`
|
|
2
|
+
|
|
3
|
+
`).trim(),{displayText:s,actions:n}}var P=class extends Error{constructor(n){super(n),this.name="AuthError"}};function he(){let t=document.cookie.match(/stytch_session_jwt=([^;]*)/);if(!t||!t[1])throw new P("No authentication token found");let n=localStorage.getItem("syntrologie_workspace_id");if(!n)throw new P("No workspace ID found");return{Authorization:`Bearer ${t[1]}`,"X-Workspace-Id":n}}async function oe(t,n){let s=he(),o=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",...s},body:JSON.stringify(n)});if(!o.ok)throw o.status===401?new P("Session expired or unauthorized"):new Error(`Chat request failed: ${o.status} ${o.statusText}`);return o.json()}var ye=0;function X(){return`msg-${Date.now()}-${++ye}`}function ae(t){let{backendUrl:n,tileId:s,runtime:o,greeting:a,maxHistory:l=20,mlflowRunId:u,config:v}=t,[p,C]=w(()=>a?[{id:X(),role:"assistant",text:a,timestamp:Date.now()}]:[]),[T,k]=w(!1),[S,j]=w(null),E=h(null),ce=O(async ue=>{let F=ue.trim();if(!F)return;j(null);let K={id:X(),role:"user",text:F,timestamp:Date.now()};C(H=>[...H,K]),k(!0);try{let W=[...p,K].slice(-l).map(R=>({role:R.role,content:R.text})),pe=await oe(n,{message:F,history:W,mlflow_run_id:u,current_config:v}),{displayText:fe,actions:L}=ne(pe.response),me={id:X(),role:"assistant",text:fe,timestamp:Date.now()};C(R=>[...R,me]),L.length>0&&(E.current?.isApplied()&&await E.current.revertAll(),E.current=await o.actions.applyBatch(L),o.events.publish("chatbot.actions_applied",{count:L.length,kinds:L.map(R=>R.kind),tileId:s}))}catch(H){let W=H instanceof Error?H.message:"An unexpected error occurred";j(W)}finally{k(!1)}},[n,p,l,u,v,o,s]),de=O(()=>{C([]),j(null),E.current?.isApplied()&&(E.current.revertAll(),E.current=null),sessionStorage.removeItem(`syntro:chatbot:history:${s}`)},[s]);return{messages:p,isLoading:T,error:S,sendMessage:ce,clearMessages:de}}var x={container:{display:"flex",flexDirection:"column",height:"100%",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"14px"},messageList:{flex:1,overflowY:"auto",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"},messageBubble:{maxWidth:"85%",padding:"8px 12px",borderRadius:"12px",lineHeight:1.5,wordBreak:"break-word"},userMessage:{alignSelf:"flex-end",backgroundColor:y[4],color:b.white,borderBottomRightRadius:"4px"},assistantMessage:{alignSelf:"flex-start",backgroundColor:"rgba(255, 255, 255, 0.08)",color:e[10],borderBottomLeftRadius:"4px"},loadingDots:{alignSelf:"flex-start",padding:"8px 16px",backgroundColor:"rgba(255, 255, 255, 0.05)",borderRadius:"12px",color:e[8],fontSize:"13px"},errorBanner:{padding:"8px 12px",backgroundColor:"rgba(239, 68, 68, 0.1)",color:d[4],fontSize:"13px",borderRadius:"8px",margin:"0 12px"},inputForm:{display:"flex",gap:"8px",padding:"12px",borderTop:"1px solid rgba(255, 255, 255, 0.06)"},input:{flex:1,padding:"8px 12px",borderRadius:"8px",border:"1px solid rgba(255, 255, 255, 0.1)",backgroundColor:"rgba(0, 0, 0, 0.2)",color:e[12],fontSize:"14px",outline:"none",fontFamily:"inherit"},sendButton:{padding:"8px 16px",borderRadius:"8px",border:"none",backgroundColor:y[4],color:b.white,fontWeight:600,fontSize:"13px",cursor:"pointer",whiteSpace:"nowrap"},sendButtonDisabled:{opacity:.5,cursor:"not-allowed"}};function ve({message:t}){let n=t.role==="user",s={...x.messageBubble,...n?x.userMessage:x.assistantMessage};return r("div",{style:s,children:t.text})}function ke({config:t,runtime:n,tileId:s}){let{messages:o,isLoading:a,error:l,sendMessage:u,clearMessages:v}=ae({backendUrl:t.backendUrl,tileId:s,runtime:n,greeting:t.greeting,maxHistory:t.maxHistory,mlflowRunId:t.mlflowRunId}),p=h(null),C=h(null);_(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[o,a]);let T=k=>{k.preventDefault();let S=C.current;if(!S||!S.value.trim()||a)return;let j=S.value;S.value="",u(j)};return i("div",{style:x.container,"data-testid":"chat-assistant",children:[i("div",{ref:p,style:x.messageList,children:[o.map(k=>r(ve,{message:k},k.id)),a&&r("div",{style:x.loadingDots,children:"Thinking..."})]}),l&&r("div",{style:x.errorBanner,children:l}),i("form",{onSubmit:T,style:x.inputForm,children:[r("input",{ref:C,style:x.input,placeholder:"Ask anything...",disabled:a,"data-testid":"chat-input"}),r("button",{type:"submit",disabled:a,style:{...x.sendButton,...a?x.sendButtonDisabled:{}},"data-testid":"chat-send",children:"Send"})]})]})}var ie={mount(t,n){let{config:s,runtime:o,tileId:a="chatbot-widget"}=n||{};if(s&&o&&typeof V=="function"){let l=V(t);return l.render(Z.createElement(ke,{config:s,runtime:o,tileId:a})),()=>{l.unmount()}}return!s||!o?(t.innerHTML=`<div style="padding: 16px; color: ${e[8]};">Chat widget requires config and runtime.</div>`,()=>{t.innerHTML=""}):(t.innerHTML=`
|
|
4
|
+
<div style="padding: 16px; font-family: system-ui; color: ${e[10]};">
|
|
5
|
+
<p style="margin: 0 0 8px; color: ${e[8]};">${s.greeting||"Hi! How can I help?"}</p>
|
|
6
|
+
<p style="margin: 0; font-size: 12px; color: ${e[7]};">Chat widget mounted. Awaiting React renderer.</p>
|
|
5
7
|
</div>
|
|
6
|
-
`,()=>{t.innerHTML=""})}};var
|
|
8
|
+
`,()=>{t.innerHTML=""})}};var B={id:"adaptive-chatbot",version:"1.0.0",name:"Chat Assistant",description:"AI chat assistant with action execution capabilities",executors:[],widgets:[{id:"adaptive-chatbot:assistant",component:ie,metadata:{name:"Chat Assistant",description:"AI-powered chat assistant that can execute DOM actions",icon:"\u{1F4AC}"}}]};var le={id:"adaptive-chatbot",version:B.version,name:B.name,description:B.description,runtime:{actions:[],widgets:B.widgets},editor:{component:te,panel:ee},metadata:{isBuiltIn:!1}};if(typeof window<"u"){let t=window.SynOS?.appRegistry;t&&typeof t.register=="function"&&t.register(le)}var Jr=le;export{Jr as default,le as manifest};
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../adaptives/adaptive-chatbot/src/
|
|
4
|
-
"sourcesContent": ["/**\n * Adaptive Chatbot - ChatAssistant Component\n *\n * Main React component for the AI chat assistant widget.\n * Renders a message list with auto-scroll, loading indicator, and input form.\n */\n\nimport React, { useRef, useEffect } from 'react';\n\nimport type { ChatMessage, ChatbotWidgetRuntime, ChatbotConfig } from './types';\nimport { useChat } from './useChat';\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n container: {\n display: 'flex',\n flexDirection: 'column' as const,\n height: '100%',\n fontFamily: 'system-ui, -apple-system, sans-serif',\n fontSize: '14px',\n },\n messageList: {\n flex: 1,\n overflowY: 'auto' as const,\n padding: '12px',\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '8px',\n },\n messageBubble: {\n maxWidth: '85%',\n padding: '8px 12px',\n borderRadius: '12px',\n lineHeight: 1.5,\n wordBreak: 'break-word' as const,\n },\n userMessage: {\n alignSelf: 'flex-end' as const,\n backgroundColor: '#6366f1',\n color: '#ffffff',\n borderBottomRightRadius: '4px',\n },\n assistantMessage: {\n alignSelf: 'flex-start' as const,\n backgroundColor: 'rgba(255, 255, 255, 0.08)',\n color: '#e2e8f0',\n borderBottomLeftRadius: '4px',\n },\n loadingDots: {\n alignSelf: 'flex-start' as const,\n padding: '8px 16px',\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n borderRadius: '12px',\n color: '#94a3b8',\n fontSize: '13px',\n },\n errorBanner: {\n padding: '8px 12px',\n backgroundColor: 'rgba(239, 68, 68, 0.1)',\n color: '#ef4444',\n fontSize: '13px',\n borderRadius: '8px',\n margin: '0 12px',\n },\n inputForm: {\n display: 'flex',\n gap: '8px',\n padding: '12px',\n borderTop: '1px solid rgba(255, 255, 255, 0.06)',\n },\n input: {\n flex: 1,\n padding: '8px 12px',\n borderRadius: '8px',\n border: '1px solid rgba(255, 255, 255, 0.1)',\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n color: '#f1f5f9',\n fontSize: '14px',\n outline: 'none',\n fontFamily: 'inherit',\n },\n sendButton: {\n padding: '8px 16px',\n borderRadius: '8px',\n border: 'none',\n backgroundColor: '#6366f1',\n color: '#ffffff',\n fontWeight: 600,\n fontSize: '13px',\n cursor: 'pointer',\n whiteSpace: 'nowrap' as const,\n },\n sendButtonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed' as const,\n },\n};\n\n// ============================================================================\n// MessageBubble Component\n// ============================================================================\n\nfunction MessageBubble({ message }: { message: ChatMessage }) {\n const isUser = message.role === 'user';\n const bubbleStyle = {\n ...styles.messageBubble,\n ...(isUser ? styles.userMessage : styles.assistantMessage),\n };\n\n return <div style={bubbleStyle}>{message.text}</div>;\n}\n\n// ============================================================================\n// ChatAssistant Component\n// ============================================================================\n\nexport interface ChatAssistantProps {\n config: ChatbotConfig;\n runtime: ChatbotWidgetRuntime;\n tileId: string;\n}\n\nexport function ChatAssistant({ config, runtime, tileId }: ChatAssistantProps) {\n const {\n messages,\n isLoading,\n error,\n sendMessage,\n clearMessages: _clearMessages,\n } = useChat({\n backendUrl: config.backendUrl,\n tileId,\n runtime,\n greeting: config.greeting,\n maxHistory: config.maxHistory,\n mlflowRunId: config.mlflowRunId,\n });\n\n const messageListRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Auto-scroll to bottom on new messages\n useEffect(() => {\n if (messageListRef.current) {\n messageListRef.current.scrollTop = messageListRef.current.scrollHeight;\n }\n }, [messages, isLoading]);\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const input = inputRef.current;\n if (!input || !input.value.trim() || isLoading) return;\n\n const text = input.value;\n input.value = '';\n sendMessage(text);\n };\n\n return (\n <div style={styles.container} data-testid=\"chat-assistant\">\n {/* Message list */}\n <div ref={messageListRef} style={styles.messageList}>\n {messages.map((msg) => (\n <MessageBubble key={msg.id} message={msg} />\n ))}\n {isLoading && <div style={styles.loadingDots}>Thinking...</div>}\n </div>\n\n {/* Error banner */}\n {error && <div style={styles.errorBanner}>{error}</div>}\n\n {/* Input form */}\n <form onSubmit={handleSubmit} style={styles.inputForm}>\n <input\n ref={inputRef}\n style={styles.input}\n placeholder=\"Ask anything...\"\n disabled={isLoading}\n data-testid=\"chat-input\"\n />\n <button\n type=\"submit\"\n disabled={isLoading}\n style={{\n ...styles.sendButton,\n ...(isLoading ? styles.sendButtonDisabled : {}),\n }}\n data-testid=\"chat-send\"\n >\n Send\n </button>\n </form>\n </div>\n );\n}\n\n// ============================================================================\n// Mountable Widget Interface\n// ============================================================================\n\nexport const ChatAssistantMountableWidget = {\n mount(container: HTMLElement, mountConfig?: Record<string, unknown>) {\n const {\n config,\n runtime,\n tileId: _tileId = 'chatbot-widget',\n } = (mountConfig || {}) as {\n config?: ChatbotConfig;\n runtime?: ChatbotWidgetRuntime;\n tileId?: string;\n };\n\n if (!config || !runtime) {\n container.innerHTML =\n '<div style=\"padding: 16px; color: #94a3b8;\">Chat widget requires config and runtime.</div>';\n return () => {\n container.innerHTML = '';\n };\n }\n\n // Simple HTML fallback \u2014 full React rendering is handled by the runtime\n container.innerHTML = `\n <div style=\"padding: 16px; font-family: system-ui; color: #e2e8f0;\">\n <p style=\"margin: 0 0 8px; color: #94a3b8;\">${config.greeting || 'Hi! How can I help?'}</p>\n <p style=\"margin: 0; font-size: 12px; color: #64748b;\">Chat widget mounted. Awaiting React renderer.</p>\n </div>\n `;\n\n return () => {\n container.innerHTML = '';\n };\n },\n};\n\nexport default ChatAssistant;\n", "/**\n * Adaptive Chatbot - useChat Hook\n *\n * React hook managing chat message state, API communication,\n * history management, and action execution via the runtime ActionEngine.\n */\n\nimport { useState, useCallback, useRef } from 'react';\n\nimport { parseActions } from './actionParser';\nimport { sendMessage } from './apiClient';\nimport type { ChatMessage, ChatbotWidgetRuntime, BatchActionHandle } from './types';\n\nexport interface UseChatOptions {\n backendUrl: string;\n tileId: string;\n runtime: ChatbotWidgetRuntime;\n greeting?: string;\n maxHistory?: number;\n mlflowRunId?: string;\n config?: Record<string, unknown>;\n}\n\nexport interface UseChatReturn {\n messages: ChatMessage[];\n isLoading: boolean;\n error: string | null;\n sendMessage: (text: string) => Promise<void>;\n clearMessages: () => void;\n}\n\nlet nextId = 0;\nfunction generateId(): string {\n return `msg-${Date.now()}-${++nextId}`;\n}\n\nexport function useChat(options: UseChatOptions): UseChatReturn {\n const { backendUrl, tileId, runtime, greeting, maxHistory = 20, mlflowRunId, config } = options;\n\n const [messages, setMessages] = useState<ChatMessage[]>(() => {\n if (greeting) {\n return [\n {\n id: generateId(),\n role: 'assistant' as const,\n text: greeting,\n timestamp: Date.now(),\n },\n ];\n }\n return [];\n });\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const batchHandleRef = useRef<BatchActionHandle | null>(null);\n\n const send = useCallback(\n async (text: string) => {\n const trimmed = text.trim();\n if (!trimmed) return;\n\n setError(null);\n\n const userMessage: ChatMessage = {\n id: generateId(),\n role: 'user',\n text: trimmed,\n timestamp: Date.now(),\n };\n\n setMessages((prev) => [...prev, userMessage]);\n setIsLoading(true);\n\n try {\n // Build history from current messages + new user message\n const currentMessages = [...messages, userMessage];\n const historySlice = currentMessages.slice(-maxHistory).map((m) => ({\n role: m.role,\n content: m.text,\n }));\n\n const response = await sendMessage(backendUrl, {\n message: trimmed,\n history: historySlice,\n mlflow_run_id: mlflowRunId,\n current_config: config,\n });\n\n // Parse actions from the LLM response\n const { displayText, actions } = parseActions(response.response);\n\n const assistantMessage: ChatMessage = {\n id: generateId(),\n role: 'assistant',\n text: displayText,\n timestamp: Date.now(),\n };\n\n setMessages((prev) => [...prev, assistantMessage]);\n\n // Execute actions if present\n if (actions.length > 0) {\n // Revert previous batch\n if (batchHandleRef.current?.isApplied()) {\n await batchHandleRef.current.revertAll();\n }\n\n batchHandleRef.current = await runtime.actions.applyBatch(actions);\n\n runtime.events.publish('chatbot.actions_applied', {\n count: actions.length,\n kinds: actions.map((a) => a.kind),\n tileId,\n });\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n setError(message);\n } finally {\n setIsLoading(false);\n }\n },\n [backendUrl, messages, maxHistory, mlflowRunId, config, runtime, tileId]\n );\n\n const clearMessages = useCallback(() => {\n setMessages([]);\n setError(null);\n // Revert any active actions\n if (batchHandleRef.current?.isApplied()) {\n batchHandleRef.current.revertAll();\n batchHandleRef.current = null;\n }\n sessionStorage.removeItem(`syntro:chatbot:history:${tileId}`);\n }, [tileId]);\n\n return {\n messages,\n isLoading,\n error,\n sendMessage: send,\n clearMessages,\n };\n}\n", "/**\n * Adaptive Chatbot - Runtime Module\n *\n * Runtime manifest for the AI chat assistant adaptive.\n * This is a widget-based adaptive with no action executors.\n */\n\nimport { ChatAssistantMountableWidget } from './ChatAssistant';\n\n// ============================================================================\n// App Runtime Manifest\n// ============================================================================\n\nexport const runtime = {\n id: 'adaptive-chatbot',\n version: '1.0.0',\n name: 'Chat Assistant',\n description: 'AI chat assistant with action execution capabilities',\n\n /** No action executors \u2014 chatbot uses existing action kinds via applyBatch */\n executors: [],\n\n /** Widget definitions for the runtime's WidgetRegistry */\n widgets: [\n {\n id: 'adaptive-chatbot:assistant',\n component: ChatAssistantMountableWidget,\n metadata: {\n name: 'Chat Assistant',\n description: 'AI-powered chat assistant that can execute DOM actions',\n icon: '\uD83D\uDCAC',\n },\n },\n ],\n};\n\nexport default runtime;\n", "/**\n * CDN Entry Point for Adaptive Chatbot\n *\n * This module is bundled for CDN delivery and self-registers with the global\n * SynOS app registry when loaded dynamically via the AppLoader.\n */\n\nimport { runtime } from './runtime';\n\n/**\n * App manifest for registry registration.\n * Follows the AppManifest interface expected by AppLoader/AppRegistry.\n */\nexport const manifest = {\n id: 'adaptive-chatbot',\n version: runtime.version,\n name: runtime.name,\n description: runtime.description,\n runtime: {\n actions: [],\n widgets: runtime.widgets,\n },\n metadata: {\n isBuiltIn: false,\n },\n};\n\n/**\n * Self-register with global registry if available.\n * This happens when loaded via script tag (UMD).\n */\nif (typeof window !== 'undefined') {\n const globalRegistry = (window as any).__SYNOS_APP_REGISTRY__;\n if (globalRegistry && typeof globalRegistry.register === 'function') {\n globalRegistry.register(manifest);\n }\n}\n\nexport default manifest;\n"],
|
|
5
|
-
"mappings": "AAOA,OAAgB,UAAAA,EAAQ,aAAAC,MAAiB,QCAzC,OAAS,YAAAC,EAAU,eAAAC,EAAa,UAAAC,MAAc,QDyGrC,cAAAC,EAoDH,QAAAC,MApDG,oBA2FF,IAAMC,EAA+B,CAC1C,MAAMC,EAAwBC,EAAuC,CACnE,GAAM,CACJ,OAAAC,EACA,QAAAC,EACA,OAAQC,EAAU,gBACpB,EAAKH,GAAe,CAAC,EAMrB,MAAI,CAACC,GAAU,CAACC,GACdH,EAAU,UACR,6FACK,IAAM,CACXA,EAAU,UAAY,EACxB,IAIFA,EAAU,UAAY;AAAA;AAAA,sDAE4BE,EAAO,UAAY,qBAAqB;AAAA;AAAA;AAAA,MAKnF,IAAM,CACXF,EAAU,UAAY,EACxB,EACF,CACF,EE9NO,IAAMK,EAAU,CACrB,GAAI,mBACJ,QAAS,QACT,KAAM,iBACN,YAAa,uDAGb,UAAW,CAAC,EAGZ,QAAS,CACP,CACE,GAAI,6BACJ,UAAWC,EACX,SAAU,CACR,KAAM,iBACN,YAAa,yDACb,KAAM,WACR,CACF,CACF,CACF,ECrBO,IAAMC,EAAW,CACtB,GAAI,mBACJ,QAASC,EAAQ,QACjB,KAAMA,EAAQ,KACd,YAAaA,EAAQ,YACrB,QAAS,CACP,QAAS,CAAC,EACV,QAASA,EAAQ,OACnB,EACA,SAAU,CACR,UAAW,EACb,CACF,EAMA,GAAI,OAAO,OAAW,IAAa,CACjC,IAAMC,EAAkB,OAAe,uBACnCA,GAAkB,OAAOA,EAAe,UAAa,YACvDA,EAAe,SAASF,CAAQ,CAEpC,CAEA,IAAOG,EAAQH",
|
|
6
|
-
"names": ["useRef", "useEffect", "useState", "
|
|
3
|
+
"sources": ["../../../../adaptives/shared-editor-ui/dist/cn.js", "syntro-react:react/jsx-runtime", "../../../../adaptives/shared-editor-ui/dist/components/EditorLayout.js", "../../../../adaptives/shared-editor-ui/dist/components/EditorHeader.js", "../../../../adaptives/shared-editor-ui/dist/components/EditorBody.js", "../../../../adaptives/shared-editor-ui/dist/components/EditorFooter.js", "syntro-react:react", "../../../../adaptives/shared-editor-ui/dist/components/EditorInput.js", "../../../../adaptives/shared-editor-ui/dist/components/EditorTextarea.js", "../../../../adaptives/adaptive-chatbot/src/editor.tsx", "../../../../../design-system/dist/tokens/colors.js", "syntro-react:react-dom/client", "../../../../adaptives/adaptive-chatbot/src/actionParser.ts", "../../../../adaptives/adaptive-chatbot/src/apiClient.ts", "../../../../adaptives/adaptive-chatbot/src/useChat.ts", "../../../../adaptives/adaptive-chatbot/src/ChatAssistant.tsx", "../../../../adaptives/adaptive-chatbot/src/runtime.ts", "../../../../adaptives/adaptive-chatbot/src/cdn.ts"],
|
|
4
|
+
"sourcesContent": ["export function cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\n", "\n function _R() {\n return (typeof SynOS !== 'undefined' && SynOS.React) || {};\n }\n function _jsx(type, props, key) {\n var R = _R();\n var p = props || {};\n var c = p.children;\n delete p.children;\n if (key !== undefined) p.key = key;\n return Array.isArray(c)\n ? R.createElement.apply(null, [type, p].concat(c))\n : c !== undefined\n ? R.createElement(type, p, c)\n : R.createElement(type, p);\n }\n export var jsx = _jsx;\n export var jsxs = _jsx;\n export var Fragment = _R().Fragment;\n ", "import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function EditorLayout({ children }) {\n return _jsx(\"div\", { className: \"se-flex se-flex-col se-h-full se-font-sans\", children: children });\n}\n", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function EditorHeader({ title, subtitle, onBack }) {\n return (_jsxs(\"div\", { className: \"se-p-4 se-border-b se-border-border-primary se-flex se-items-center se-gap-3\", children: [_jsx(\"button\", { onClick: onBack, className: \"se-px-3 se-py-1.5 se-rounded-md se-border se-border-btn-neutral-border se-bg-transparent se-text-btn-neutral-text se-text-sm se-cursor-pointer hover:se-text-btn-neutral-text-hover\", children: \"\\u2190 Back\" }), _jsxs(\"div\", { children: [_jsx(\"h2\", { className: \"se-m-0 se-text-base se-font-semibold se-text-text-primary\", children: title }), subtitle && (_jsx(\"p\", { className: \"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary\", children: subtitle }))] })] }));\n}\n", "import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function EditorBody({ children }) {\n return _jsx(\"div\", { className: \"se-flex-1 se-overflow-auto se-p-6\", children: children });\n}\n", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function EditorFooter({ onSave, onPublish }) {\n return (_jsxs(\"div\", { className: \"se-py-3 se-px-4 se-border-t se-border-border-primary se-flex se-gap-2\", children: [_jsx(\"button\", { onClick: onSave, className: \"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-blue-5/15 se-text-blue-5 se-text-base se-font-semibold se-cursor-pointer\", children: \"Save Draft\" }), _jsx(\"button\", { onClick: onPublish, className: \"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-green-4 se-text-white se-text-base se-font-semibold se-cursor-pointer\", children: \"Publish\" })] }));\n}\n", "\n function _R() {\n return (typeof SynOS !== 'undefined' && SynOS.React) || {};\n }\n\n // Default export \u2014 lazy proxy for React.* access\n export default new Proxy({}, { get: function(_, k) { return _R()[k]; } });\n\n // Hooks \u2014 lazy function wrappers (resolve at call time)\n export function useState() { return _R().useState.apply(null, arguments); }\n export function useEffect() { return _R().useEffect.apply(null, arguments); }\n export function useMemo() { return _R().useMemo.apply(null, arguments); }\n export function useCallback() { return _R().useCallback.apply(null, arguments); }\n export function useRef() { return _R().useRef.apply(null, arguments); }\n export function useContext() { return _R().useContext.apply(null, arguments); }\n export function useReducer() { return _R().useReducer.apply(null, arguments); }\n export function useLayoutEffect() { return _R().useLayoutEffect.apply(null, arguments); }\n export function useId() { return _R().useId.apply(null, arguments); }\n\n // Creation APIs \u2014 lazy function wrappers\n export function createElement() { return _R().createElement.apply(null, arguments); }\n export function createContext() { return _R().createContext.apply(null, arguments); }\n export function forwardRef() { return _R().forwardRef.apply(null, arguments); }\n export function memo() { return _R().memo.apply(null, arguments); }\n export function lazy() { return _R().lazy.apply(null, arguments); }\n export function isValidElement() { return _R().isValidElement.apply(null, arguments); }\n export function cloneElement() { return _R().cloneElement.apply(null, arguments); }\n\n // Component types \u2014 resolved at module eval (runtime loads first)\n var _r = _R();\n export var Fragment = _r.Fragment;\n export var Suspense = _r.Suspense;\n export var Children = _r.Children;\n export var Component = _r.Component;\n export var PureComponent = _r.PureComponent;\n ", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cn } from '../cn';\nexport function EditorInput({ label, className, ...props }) {\n return (_jsxs(\"div\", { children: [label && (_jsx(\"label\", { className: \"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block\", children: label })), _jsx(\"input\", { ...props, className: cn('se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-box-border', 'placeholder:se-text-input-field-text-placeholder', 'focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected', 'disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50', className) })] }));\n}\n", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cn } from '../cn';\nexport function EditorTextarea({ label, className, ...props }) {\n return (_jsxs(\"div\", { children: [label && (_jsx(\"label\", { className: \"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block\", children: label })), _jsx(\"textarea\", { ...props, className: cn('se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-box-border', 'placeholder:se-text-input-field-text-placeholder', 'focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected', 'disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50', className) })] }));\n}\n", "/**\n * Adaptive Chatbot - Editor Component\n *\n * Visual editor panel for configuring chatbot tile props.\n */\n\nimport {\n EditorLayout,\n EditorHeader,\n EditorBody,\n EditorFooter,\n EditorInput,\n EditorTextarea,\n} from '@syntrologie/shared-editor-ui';\nimport React, { useEffect, useRef } from 'react';\n\nimport type { EditorPanelProps, ChatbotConfig } from './types';\n\n// ============================================================================\n// ChatbotEditor Component\n// ============================================================================\n\nexport function ChatbotEditor({ config, onChange, editor }: EditorPanelProps) {\n const typedConfig = config as unknown as Partial<ChatbotConfig>;\n\n // Consume initial navigation payload on mount (chatbot is form-based, no sub-items)\n const initialConsumed = useRef(false);\n useEffect(() => {\n if (!initialConsumed.current && (editor.initialEditKey != null || editor.initialCreate)) {\n initialConsumed.current = true;\n editor.clearInitialState?.();\n }\n }, [editor]);\n\n const handleChange = (field: string, value: string | number) => {\n onChange({ ...config, [field]: value });\n editor.setDirty(true);\n };\n\n return (\n <EditorLayout>\n <EditorHeader\n title=\"Chat Assistant\"\n subtitle=\"Configure AI chat assistant\"\n onBack={() => editor.navigateHome()}\n />\n\n <EditorBody>\n {/* API Configuration */}\n <div className=\"se-mb-6\">\n <div className=\"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3\">\n API Configuration\n </div>\n\n <EditorInput\n label=\"Backend URL\"\n type=\"text\"\n value={typedConfig.backendUrl || ''}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleChange('backendUrl', e.target.value)\n }\n placeholder=\"/api/chat/message\"\n />\n\n <EditorInput\n label=\"MLflow Run ID (optional)\"\n type=\"text\"\n value={typedConfig.mlflowRunId || ''}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleChange('mlflowRunId', e.target.value)\n }\n placeholder=\"e.g., abc123\"\n />\n </div>\n\n {/* Chat Settings */}\n <div className=\"se-mb-6\">\n <div className=\"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3\">\n Chat Settings\n </div>\n\n <EditorTextarea\n label=\"Greeting Message\"\n value={typedConfig.greeting || ''}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) =>\n handleChange('greeting', e.target.value)\n }\n placeholder=\"Hi! How can I help?\"\n />\n\n <EditorInput\n label=\"Max History (messages sent to backend)\"\n type=\"number\"\n value={typedConfig.maxHistory || 20}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleChange('maxHistory', parseInt(e.target.value, 10))\n }\n min={1}\n max={100}\n />\n </div>\n </EditorBody>\n\n <EditorFooter onSave={() => editor.save()} onPublish={() => editor.publish()} />\n </EditorLayout>\n );\n}\n\n/**\n * Editor panel configuration for the app registry.\n */\nexport const editorPanel = {\n title: 'Chat Assistant',\n icon: '\\u{1F4AC}',\n description: 'AI chat assistant with action execution',\n};\n\nexport default ChatbotEditor;\n", "/**\n * Syntro Design System - Color Tokens\n *\n * This file contains all color tokens from the Figma design system.\n * Colors are organized by scale and semantic meaning.\n *\n * @see https://www.figma.com/design/U0Ol5vM7FQvgPfIgCAgxgb/Design-System\n */\n// ============================================================================\n// BASE COLORS\n// ============================================================================\nexport const base = {\n white: '#ffffff',\n black: '#000000',\n};\n// ============================================================================\n// BRAND COLORS\n// ============================================================================\nexport const brand = {\n 0: '#2c0b0a',\n 1: '#5b1715',\n 2: '#89221f',\n 3: '#b72e2a',\n 4: '#d44844',\n 5: '#dd6d69',\n 6: '#e5918f',\n 7: '#eeb6b4',\n 8: '#f6dada',\n 9: '#faebea',\n};\n// ============================================================================\n// NEUTRAL COLORS\n// ============================================================================\nexport const slateGrey = {\n 0: '#07080a',\n 1: '#0f1318',\n 2: '#0e1114',\n 3: '#1c222a',\n 4: '#2b333f',\n 5: '#394454',\n 6: '#475569',\n 7: '#677384',\n 8: '#87919f',\n 9: '#a8afba',\n 10: '#cbd0d7',\n 11: '#e8eaee',\n 12: '#f6f7f9',\n};\n// ============================================================================\n// SEMANTIC COLOR SCALES\n// ============================================================================\nexport const green = {\n 0: '#07230a',\n 1: '#0e4514',\n 2: '#16681e',\n 3: '#1d8a28',\n 4: '#24ad32',\n 5: '#4fbd5a',\n 6: '#7acd82',\n 7: '#a5deab',\n 8: '#d0eed3',\n 9: '#e5f6e7',\n};\nexport const yellow = {\n 0: '#301f09',\n 1: '#5f3e12',\n 2: '#8f5e1b',\n 3: '#be7d24',\n 4: '#ee9c2d',\n 5: '#f1b057',\n 6: '#f5c481',\n 7: '#f8d7ab',\n 8: '#fcebd5',\n 9: '#fdf5ea',\n};\nexport const red = {\n 0: '#330707',\n 1: '#660f0e',\n 2: '#991616',\n 3: '#cc1e1d',\n 4: '#ff2524',\n 5: '#ff5150',\n 6: '#ff7c7c',\n 7: '#ffa8a7',\n 8: '#ffd3d3',\n 9: '#ffe9e9',\n};\nexport const blue = {\n 0: '#051533',\n 1: '#0a2a66',\n 2: '#0f3f98',\n 3: '#1454cb',\n 4: '#1969fe',\n 5: '#4787fe',\n 6: '#75a5fe',\n 7: '#a3c3ff',\n 8: '#d1e1ff',\n 9: '#e8f0ff',\n};\nexport const orange = {\n 0: '#662500',\n 1: '#993d00',\n 2: '#cc5800',\n 3: '#ff7700',\n 4: '#fea85d',\n 5: '#fec58f',\n 6: '#ffd6ae',\n 7: '#fee6cd',\n 8: '#fff1e1',\n 9: '#fff8f0',\n};\nexport const purple = {\n 0: '#151229',\n 1: '#2a2452',\n 2: '#40357c',\n 3: '#5547a5',\n 4: '#6a59ce',\n 5: '#887ad8',\n 6: '#a69be2',\n 7: '#c3bdeb',\n 8: '#e1def5',\n 9: '#f0eefa',\n};\nexport const pink = {\n 0: '#37091f',\n 1: '#69123c',\n 2: '#9b1c58',\n 3: '#cd2575',\n 4: '#ff2e92',\n 5: '#ff58a8',\n 6: '#ff82be',\n 7: '#ffabd3',\n 8: '#ffd5e9',\n 9: '#ffeaf4',\n};\n// ============================================================================\n// LEGACY COLORS (Being phased out)\n// ============================================================================\nexport const legacy = {\n aqua: {\n 0: '#0c5f8d',\n 1: '#146b99',\n 2: '#1d78a6',\n 3: '#2e89b6',\n 4: '#4a9fc4',\n 5: '#6bb4d1',\n 6: '#93cce0',\n 7: '#bddff0',\n 8: '#dceef8',\n 9: '#f2f8fc',\n },\n violet: {\n 0: '#6927da',\n 1: '#7839ee',\n 2: '#875bf7',\n 3: '#a48afb',\n 4: '#c3b4fd',\n 5: '#ddd6fe',\n 6: '#ece9fe',\n 7: '#f5f3ff',\n 8: '#fbfaff',\n },\n fuchsia: {\n 0: '#9f1ab1',\n 1: '#ba24d5',\n 2: '#d444f1',\n 3: '#e478fa',\n 4: '#eeaafd',\n 5: '#f6d0fe',\n 6: '#fbe8ff',\n 7: '#fdf4ff',\n 8: '#fefaff',\n },\n pink: {\n 0: '#a10f5f',\n 1: '#dd2590',\n 2: '#ee46bc',\n 3: '#f670c7',\n 4: '#faa7e0',\n 5: '#fcceee',\n 6: '#fce7f6',\n 7: '#fdf2fa',\n 8: '#fef6fb',\n },\n};\n// ============================================================================\n// TEXT TOKENS\n// ============================================================================\nexport const text = {\n primary: slateGrey[10],\n secondary: slateGrey[9],\n tertiary: slateGrey[8],\n};\n// ============================================================================\n// BACKGROUND TOKENS\n// ============================================================================\nexport const background = {\n primary: slateGrey[2],\n secondary: slateGrey[0],\n};\n// ============================================================================\n// BORDER TOKENS\n// ============================================================================\nexport const border = {\n primary: slateGrey[4],\n secondary: slateGrey[3],\n};\n// ============================================================================\n// BUTTON TOKENS\n// ============================================================================\nexport const button = {\n primary: {\n text: base.white,\n icon: base.white,\n border: brand[3],\n backgroundDefault: brand[3],\n backgroundHover: brand[2],\n },\n neutral: {\n text: slateGrey[10],\n textHover: base.white,\n icon: slateGrey[10],\n iconHover: base.white,\n border: slateGrey[4],\n background: slateGrey[2],\n },\n link: {\n text: base.white,\n icon: base.white,\n hover: brand[5],\n },\n error: {\n text: red[5],\n hover: red[6],\n },\n success: {\n text: green[5],\n hover: green[6],\n },\n};\n// ============================================================================\n// BADGE TOKENS\n// ============================================================================\nexport const badge = {\n slateGrey: {\n content: slateGrey[10],\n pillOutline: slateGrey[10],\n borderPrimary: slateGrey[5],\n borderSecondary: slateGrey[5],\n background: slateGrey[3],\n },\n brand: {\n content: brand[9],\n pillOutline: brand[9],\n borderPrimary: brand[6],\n borderSecondary: brand[6],\n background: brand[0],\n },\n red: {\n content: red[8],\n pillOutline: red[4],\n borderPrimary: red[2],\n borderSecondary: red[2],\n background: red[0],\n },\n yellow: {\n content: yellow[8],\n pillOutline: yellow[4],\n borderPrimary: yellow[2],\n borderSecondary: yellow[2],\n background: yellow[0],\n },\n green: {\n content: green[8],\n pillOutline: green[4],\n borderPrimary: green[2],\n borderSecondary: green[2],\n background: green[0],\n },\n purple: {\n content: purple[8],\n pillOutline: purple[4],\n borderPrimary: purple[2],\n borderSecondary: purple[2],\n background: purple[0],\n },\n blue: {\n content: blue[8],\n pillOutline: blue[4],\n borderPrimary: blue[2],\n borderSecondary: blue[2],\n background: blue[0],\n },\n orange: {\n content: orange[8],\n pillOutline: orange[4],\n borderPrimary: orange[2],\n borderSecondary: orange[2],\n background: orange[0],\n },\n pink: {\n content: pink[8],\n pillOutline: pink[4],\n borderPrimary: pink[2],\n borderSecondary: pink[2],\n background: pink[0],\n },\n};\n// ============================================================================\n// BADGE BANNER TOKENS\n// ============================================================================\nexport const badgeBanner = {\n green: {\n content: green[8],\n border: green[2],\n background: green[0],\n },\n yellow: {\n content: yellow[8],\n border: yellow[2],\n background: yellow[0],\n },\n red: {\n content: red[8],\n border: red[2],\n background: red[0],\n },\n};\n// ============================================================================\n// ALERT TOKENS\n// ============================================================================\nexport const alert = {\n green: {\n content: green[1],\n background: green[9],\n },\n yellow: {\n content: yellow[1],\n background: yellow[9],\n },\n red: {\n content: red[1],\n background: red[9],\n },\n};\n// ============================================================================\n// TAG TOKENS\n// ============================================================================\nexport const tag = {\n content: slateGrey[10],\n border: slateGrey[4],\n background: '#1c2124',\n};\n// ============================================================================\n// MENU TOKENS\n// ============================================================================\nexport const menu = {\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n selected: slateGrey[3],\n};\n// ============================================================================\n// INPUT/DROPDOWN TOKENS\n// ============================================================================\nexport const inputDropdown = {\n background: slateGrey[2],\n icon: slateGrey[10],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n};\nexport const inputField = {\n backgroundDefault: slateGrey[2],\n backgroundDisabled: slateGrey[0],\n textLabel: slateGrey[9],\n textPlaceholder: slateGrey[8],\n textHint: slateGrey[8],\n textError: red[5],\n iconDefault: slateGrey[9],\n iconPlaceholder: slateGrey[10],\n iconError: red[5],\n borderDefault: slateGrey[4],\n borderSelected: brand[3],\n borderError: red[5],\n};\n// ============================================================================\n// TOGGLE TOKENS\n// ============================================================================\nexport const toggle = {\n handleDefault: base.white,\n handleDisabled: slateGrey[10],\n off: {\n backgroundDefault: slateGrey[4],\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[4],\n },\n on: {\n backgroundDefault: green[3],\n backgroundHover: green[2],\n backgroundDisabled: slateGrey[4],\n },\n};\n// ============================================================================\n// CHECKBOX TOKENS\n// ============================================================================\nexport const checkbox = {\n off: {\n backgroundDefault: '#00000000',\n backgroundHover: slateGrey[5],\n backgroundDisabled: slateGrey[2],\n border: slateGrey[6],\n },\n on: {\n backgroundDefault: green[0],\n backgroundHover: green[1],\n backgroundDisabled: slateGrey[2],\n border: green[3],\n },\n};\n// ============================================================================\n// AVATAR TOKENS\n// ============================================================================\nexport const avatar = {\n content: slateGrey[10],\n background: slateGrey[4],\n};\n// ============================================================================\n// PROGRESS BAR & SLIDER TOKENS\n// ============================================================================\nexport const progressBarSlider = {\n background: slateGrey[4],\n active: green[3],\n};\n// ============================================================================\n// CARD TOKENS\n// ============================================================================\nexport const card = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// SIDEBAR TOKENS\n// ============================================================================\nexport const sidebar = {\n backgroundDefault: slateGrey[1],\n backgroundHover: slateGrey[3],\n backgroundActive: slateGrey[4],\n border: slateGrey[4],\n contentPrimary: slateGrey[10],\n contentSecondary: slateGrey[9],\n contentTertiary: slateGrey[8],\n};\n// ============================================================================\n// MODAL TOKENS\n// ============================================================================\nexport const modal = {\n background: slateGrey[1],\n content: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TAB TOKENS\n// ============================================================================\nexport const tab = {\n activeBackground: slateGrey[3],\n activeContent: brand[5],\n inactiveContent: slateGrey[9],\n border: slateGrey[4],\n};\n// ============================================================================\n// TABLE TOKENS\n// ============================================================================\nexport const table = {\n header: {\n textDefault: slateGrey[9],\n textHover: slateGrey[8],\n backgroundDefault: slateGrey[1],\n },\n border: slateGrey[4],\n cell: {\n textPrimary: slateGrey[10],\n textSecondary: slateGrey[9],\n backgroundDefault: slateGrey[2],\n backgroundHover: slateGrey[1],\n },\n};\n// ============================================================================\n// BREADCRUMBS TOKENS\n// ============================================================================\nexport const breadcrumbs = {\n textPrimaryDefault: slateGrey[10],\n textPrimaryHover: slateGrey[10],\n textSecondaryDefault: slateGrey[8],\n textSecondaryHover: slateGrey[9],\n iconPrimary: slateGrey[10],\n iconSecondary: slateGrey[8],\n};\n// ============================================================================\n// LOADING INDICATOR TOKENS\n// ============================================================================\nexport const loadingIndicator = {\n background: green[1],\n active: green[5],\n};\n// ============================================================================\n// DATE PICKER TOKENS\n// ============================================================================\nexport const datePicker = {\n textDefault: slateGrey[10],\n textSelected: base.white,\n textDisabled: slateGrey[7],\n backgroundDefault: slateGrey[2],\n backgroundMiddle: slateGrey[3],\n backgroundSelected: brand[3],\n border: slateGrey[4],\n};\n// ============================================================================\n// MISC TOKENS\n// ============================================================================\nexport const scroll = slateGrey[9];\n// ============================================================================\n// EXPORTS\n// ============================================================================\nexport const colors = {\n base,\n brand,\n slateGrey,\n green,\n yellow,\n red,\n blue,\n orange,\n purple,\n pink,\n legacy,\n text,\n background,\n border,\n button,\n badge,\n badgeBanner,\n alert,\n tag,\n menu,\n inputDropdown,\n inputField,\n toggle,\n checkbox,\n avatar,\n progressBarSlider,\n card,\n sidebar,\n modal,\n tab,\n table,\n breadcrumbs,\n loadingIndicator,\n datePicker,\n scroll,\n};\nexport default colors;\n", "\n function _RD() {\n return (typeof SynOS !== 'undefined' && SynOS.ReactDOM) || {};\n }\n export default new Proxy({}, { get: function(_, k) { return _RD()[k]; } });\n export function createRoot() { return _RD().createRoot.apply(null, arguments); }\n export function hydrateRoot() { return _RD().hydrateRoot.apply(null, arguments); }\n export function createPortal() { return _RD().createPortal.apply(null, arguments); }\n export function flushSync() { return _RD().flushSync.apply(null, arguments); }\n ", "/**\n * Adaptive Chatbot - Action Parser\n *\n * Extracts JSON action blocks from LLM markdown responses.\n * Actions are identified by having a `kind` field in a ```json code fence.\n */\n\nimport type { ActionBlock, ParsedResponse } from './types';\n\nconst JSON_FENCE_RE = /```json\\s*\\n([\\s\\S]*?)```/g;\n\n/**\n * Parse an LLM response, extracting action blocks from JSON code fences.\n *\n * - Blocks with a `kind` field are treated as actions and removed from display text.\n * - Blocks without `kind` or with invalid JSON are left in the display text.\n */\nexport function parseActions(input: string): ParsedResponse {\n const actions: ActionBlock[] = [];\n let displayText = input;\n\n // Collect matches in reverse order so we can splice display text without index shifting\n const matches: Array<{ fullMatch: string; json: string; index: number }> = [];\n let match: RegExpExecArray | null;\n\n // Reset regex state\n JSON_FENCE_RE.lastIndex = 0;\n while ((match = JSON_FENCE_RE.exec(input)) !== null) {\n matches.push({\n fullMatch: match[0],\n json: match[1],\n index: match.index,\n });\n }\n\n // Process in reverse to preserve indices when removing from displayText\n for (let i = matches.length - 1; i >= 0; i--) {\n const { fullMatch, json } = matches[i];\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(json);\n } catch {\n // Malformed JSON \u2014 leave in display text\n continue;\n }\n\n if (\n typeof parsed === 'object' &&\n parsed !== null &&\n 'kind' in parsed &&\n typeof (parsed as Record<string, unknown>).kind === 'string'\n ) {\n actions.unshift(parsed as ActionBlock);\n // Remove the action block from display text\n displayText = displayText.replace(fullMatch, '');\n }\n }\n\n // Clean up extra blank lines left from removed blocks\n displayText = displayText.replace(/\\n{3,}/g, '\\n\\n').trim();\n\n return { displayText, actions };\n}\n", "/**\n * Adaptive Chatbot - API Client\n *\n * Auth-aware fetch client that reads Stytch JWT from cookies\n * and workspace ID from localStorage.\n */\n\nimport type { ChatApiRequest, ChatApiResponse } from './types';\n\nexport class AuthError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AuthError';\n }\n}\n\n/**\n * Read auth credentials from browser cookie and localStorage.\n * Throws AuthError if credentials are missing.\n */\nexport function getAuthHeaders(): { Authorization: string; 'X-Workspace-Id': string } {\n const cookieMatch = document.cookie.match(/stytch_session_jwt=([^;]*)/);\n if (!cookieMatch || !cookieMatch[1]) {\n throw new AuthError('No authentication token found');\n }\n\n const workspaceId = localStorage.getItem('syntrologie_workspace_id');\n if (!workspaceId) {\n throw new AuthError('No workspace ID found');\n }\n\n return {\n Authorization: `Bearer ${cookieMatch[1]}`,\n 'X-Workspace-Id': workspaceId,\n };\n}\n\n/**\n * Send a chat message to the backend.\n */\nexport async function sendMessage(url: string, request: ChatApiRequest): Promise<ChatApiResponse> {\n const authHeaders = getAuthHeaders();\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...authHeaders,\n },\n body: JSON.stringify(request),\n });\n\n if (!response.ok) {\n if (response.status === 401) {\n throw new AuthError('Session expired or unauthorized');\n }\n throw new Error(`Chat request failed: ${response.status} ${response.statusText}`);\n }\n\n return response.json();\n}\n", "/**\n * Adaptive Chatbot - useChat Hook\n *\n * React hook managing chat message state, API communication,\n * history management, and action execution via the runtime ActionEngine.\n */\n\nimport { useState, useCallback, useRef } from 'react';\n\nimport { parseActions } from './actionParser';\nimport { sendMessage } from './apiClient';\nimport type { ChatMessage, ChatbotWidgetRuntime, BatchActionHandle } from './types';\n\nexport interface UseChatOptions {\n backendUrl: string;\n tileId: string;\n runtime: ChatbotWidgetRuntime;\n greeting?: string;\n maxHistory?: number;\n mlflowRunId?: string;\n config?: Record<string, unknown>;\n}\n\nexport interface UseChatReturn {\n messages: ChatMessage[];\n isLoading: boolean;\n error: string | null;\n sendMessage: (text: string) => Promise<void>;\n clearMessages: () => void;\n}\n\nlet nextId = 0;\nfunction generateId(): string {\n return `msg-${Date.now()}-${++nextId}`;\n}\n\nexport function useChat(options: UseChatOptions): UseChatReturn {\n const { backendUrl, tileId, runtime, greeting, maxHistory = 20, mlflowRunId, config } = options;\n\n const [messages, setMessages] = useState<ChatMessage[]>(() => {\n if (greeting) {\n return [\n {\n id: generateId(),\n role: 'assistant' as const,\n text: greeting,\n timestamp: Date.now(),\n },\n ];\n }\n return [];\n });\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const batchHandleRef = useRef<BatchActionHandle | null>(null);\n\n const send = useCallback(\n async (text: string) => {\n const trimmed = text.trim();\n if (!trimmed) return;\n\n setError(null);\n\n const userMessage: ChatMessage = {\n id: generateId(),\n role: 'user',\n text: trimmed,\n timestamp: Date.now(),\n };\n\n setMessages((prev) => [...prev, userMessage]);\n setIsLoading(true);\n\n try {\n // Build history from current messages + new user message\n const currentMessages = [...messages, userMessage];\n const historySlice = currentMessages.slice(-maxHistory).map((m) => ({\n role: m.role,\n content: m.text,\n }));\n\n const response = await sendMessage(backendUrl, {\n message: trimmed,\n history: historySlice,\n mlflow_run_id: mlflowRunId,\n current_config: config,\n });\n\n // Parse actions from the LLM response\n const { displayText, actions } = parseActions(response.response);\n\n const assistantMessage: ChatMessage = {\n id: generateId(),\n role: 'assistant',\n text: displayText,\n timestamp: Date.now(),\n };\n\n setMessages((prev) => [...prev, assistantMessage]);\n\n // Execute actions if present\n if (actions.length > 0) {\n // Revert previous batch\n if (batchHandleRef.current?.isApplied()) {\n await batchHandleRef.current.revertAll();\n }\n\n batchHandleRef.current = await runtime.actions.applyBatch(actions);\n\n runtime.events.publish('chatbot.actions_applied', {\n count: actions.length,\n kinds: actions.map((a) => a.kind),\n tileId,\n });\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n setError(message);\n } finally {\n setIsLoading(false);\n }\n },\n [backendUrl, messages, maxHistory, mlflowRunId, config, runtime, tileId]\n );\n\n const clearMessages = useCallback(() => {\n setMessages([]);\n setError(null);\n // Revert any active actions\n if (batchHandleRef.current?.isApplied()) {\n batchHandleRef.current.revertAll();\n batchHandleRef.current = null;\n }\n sessionStorage.removeItem(`syntro:chatbot:history:${tileId}`);\n }, [tileId]);\n\n return {\n messages,\n isLoading,\n error,\n sendMessage: send,\n clearMessages,\n };\n}\n", "/**\n * Adaptive Chatbot - ChatAssistant Component\n *\n * Main React component for the AI chat assistant widget.\n * Renders a message list with auto-scroll, loading indicator, and input form.\n */\n\nimport { base, slateGrey, purple, red } from '@syntro/design-system/tokens';\nimport React, { useRef, useEffect } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport type { ChatMessage, ChatbotWidgetRuntime, ChatbotConfig } from './types';\nimport { useChat } from './useChat';\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n container: {\n display: 'flex',\n flexDirection: 'column' as const,\n height: '100%',\n fontFamily: 'system-ui, -apple-system, sans-serif',\n fontSize: '14px',\n },\n messageList: {\n flex: 1,\n overflowY: 'auto' as const,\n padding: '12px',\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '8px',\n },\n messageBubble: {\n maxWidth: '85%',\n padding: '8px 12px',\n borderRadius: '12px',\n lineHeight: 1.5,\n wordBreak: 'break-word' as const,\n },\n userMessage: {\n alignSelf: 'flex-end' as const,\n backgroundColor: purple[4],\n color: base.white,\n borderBottomRightRadius: '4px',\n },\n assistantMessage: {\n alignSelf: 'flex-start' as const,\n backgroundColor: 'rgba(255, 255, 255, 0.08)',\n color: slateGrey[10],\n borderBottomLeftRadius: '4px',\n },\n loadingDots: {\n alignSelf: 'flex-start' as const,\n padding: '8px 16px',\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n borderRadius: '12px',\n color: slateGrey[8],\n fontSize: '13px',\n },\n errorBanner: {\n padding: '8px 12px',\n backgroundColor: 'rgba(239, 68, 68, 0.1)',\n color: red[4],\n fontSize: '13px',\n borderRadius: '8px',\n margin: '0 12px',\n },\n inputForm: {\n display: 'flex',\n gap: '8px',\n padding: '12px',\n borderTop: '1px solid rgba(255, 255, 255, 0.06)',\n },\n input: {\n flex: 1,\n padding: '8px 12px',\n borderRadius: '8px',\n border: '1px solid rgba(255, 255, 255, 0.1)',\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n color: slateGrey[12],\n fontSize: '14px',\n outline: 'none',\n fontFamily: 'inherit',\n },\n sendButton: {\n padding: '8px 16px',\n borderRadius: '8px',\n border: 'none',\n backgroundColor: purple[4],\n color: base.white,\n fontWeight: 600,\n fontSize: '13px',\n cursor: 'pointer',\n whiteSpace: 'nowrap' as const,\n },\n sendButtonDisabled: {\n opacity: 0.5,\n cursor: 'not-allowed' as const,\n },\n};\n\n// ============================================================================\n// MessageBubble Component\n// ============================================================================\n\nfunction MessageBubble({ message }: { message: ChatMessage }) {\n const isUser = message.role === 'user';\n const bubbleStyle = {\n ...styles.messageBubble,\n ...(isUser ? styles.userMessage : styles.assistantMessage),\n };\n\n return <div style={bubbleStyle}>{message.text}</div>;\n}\n\n// ============================================================================\n// ChatAssistant Component\n// ============================================================================\n\nexport interface ChatAssistantProps {\n config: ChatbotConfig;\n runtime: ChatbotWidgetRuntime;\n tileId: string;\n}\n\nexport function ChatAssistant({ config, runtime, tileId }: ChatAssistantProps) {\n const {\n messages,\n isLoading,\n error,\n sendMessage,\n clearMessages: _clearMessages,\n } = useChat({\n backendUrl: config.backendUrl,\n tileId,\n runtime,\n greeting: config.greeting,\n maxHistory: config.maxHistory,\n mlflowRunId: config.mlflowRunId,\n });\n\n const messageListRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Auto-scroll to bottom on new messages\n useEffect(() => {\n if (messageListRef.current) {\n messageListRef.current.scrollTop = messageListRef.current.scrollHeight;\n }\n }, [messages, isLoading]);\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const input = inputRef.current;\n if (!input || !input.value.trim() || isLoading) return;\n\n const text = input.value;\n input.value = '';\n sendMessage(text);\n };\n\n return (\n <div style={styles.container} data-testid=\"chat-assistant\">\n {/* Message list */}\n <div ref={messageListRef} style={styles.messageList}>\n {messages.map((msg) => (\n <MessageBubble key={msg.id} message={msg} />\n ))}\n {isLoading && <div style={styles.loadingDots}>Thinking...</div>}\n </div>\n\n {/* Error banner */}\n {error && <div style={styles.errorBanner}>{error}</div>}\n\n {/* Input form */}\n <form onSubmit={handleSubmit} style={styles.inputForm}>\n <input\n ref={inputRef}\n style={styles.input}\n placeholder=\"Ask anything...\"\n disabled={isLoading}\n data-testid=\"chat-input\"\n />\n <button\n type=\"submit\"\n disabled={isLoading}\n style={{\n ...styles.sendButton,\n ...(isLoading ? styles.sendButtonDisabled : {}),\n }}\n data-testid=\"chat-send\"\n >\n Send\n </button>\n </form>\n </div>\n );\n}\n\n// ============================================================================\n// Mountable Widget Interface\n// ============================================================================\n\nexport const ChatAssistantMountableWidget = {\n mount(container: HTMLElement, mountConfig?: Record<string, unknown>) {\n const {\n config,\n runtime,\n tileId = 'chatbot-widget',\n } = (mountConfig || {}) as {\n config?: ChatbotConfig;\n runtime?: ChatbotWidgetRuntime;\n tileId?: string;\n };\n\n // React rendering when config + runtime + ReactDOM are available\n if (config && runtime && typeof createRoot === 'function') {\n const root = createRoot(container);\n root.render(\n React.createElement(ChatAssistant, {\n config,\n runtime,\n tileId,\n })\n );\n return () => {\n root.unmount();\n };\n }\n\n if (!config || !runtime) {\n container.innerHTML = `<div style=\"padding: 16px; color: ${slateGrey[8]};\">Chat widget requires config and runtime.</div>`;\n return () => {\n container.innerHTML = '';\n };\n }\n\n // HTML fallback\n container.innerHTML = `\n <div style=\"padding: 16px; font-family: system-ui; color: ${slateGrey[10]};\">\n <p style=\"margin: 0 0 8px; color: ${slateGrey[8]};\">${config.greeting || 'Hi! How can I help?'}</p>\n <p style=\"margin: 0; font-size: 12px; color: ${slateGrey[7]};\">Chat widget mounted. Awaiting React renderer.</p>\n </div>\n `;\n\n return () => {\n container.innerHTML = '';\n };\n },\n};\n\nexport default ChatAssistant;\n", "/**\n * Adaptive Chatbot - Runtime Module\n *\n * Runtime manifest for the AI chat assistant adaptive.\n * This is a widget-based adaptive with no action executors.\n */\n\nimport { ChatAssistantMountableWidget } from './ChatAssistant';\n\n// ============================================================================\n// App Runtime Manifest\n// ============================================================================\n\nexport const runtime = {\n id: 'adaptive-chatbot',\n version: '1.0.0',\n name: 'Chat Assistant',\n description: 'AI chat assistant with action execution capabilities',\n\n /** No action executors \u2014 chatbot uses existing action kinds via applyBatch */\n executors: [],\n\n /** Widget definitions for the runtime's WidgetRegistry */\n widgets: [\n {\n id: 'adaptive-chatbot:assistant',\n component: ChatAssistantMountableWidget,\n metadata: {\n name: 'Chat Assistant',\n description: 'AI-powered chat assistant that can execute DOM actions',\n icon: '\uD83D\uDCAC',\n },\n },\n ],\n};\n\nexport default runtime;\n", "/**\n * CDN Entry Point for Adaptive Chatbot\n *\n * This module is bundled for CDN delivery and self-registers with the global\n * SynOS app registry when loaded dynamically via the AppLoader.\n */\n\nimport ChatbotEditor, { editorPanel } from './editor';\nimport { runtime } from './runtime';\n\n/**\n * App manifest for registry registration.\n * Follows the AppManifest interface expected by AppLoader/AppRegistry.\n */\nexport const manifest = {\n id: 'adaptive-chatbot',\n version: runtime.version,\n name: runtime.name,\n description: runtime.description,\n runtime: {\n actions: [],\n widgets: runtime.widgets,\n },\n editor: { component: ChatbotEditor, panel: editorPanel },\n metadata: {\n isBuiltIn: false,\n },\n};\n\n/**\n * Self-register with global registry if available.\n * This happens when loaded via script tag (UMD).\n */\nif (typeof window !== 'undefined') {\n const registry = (window as any).SynOS?.appRegistry;\n if (registry && typeof registry.register === 'function') {\n registry.register(manifest);\n }\n}\n\nexport default manifest;\n"],
|
|
5
|
+
"mappings": "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AAQ,CACjB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EAIaC,EAAY,CACrB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,GAAI,UACJ,GAAI,UACJ,GAAI,SACR,EAIaC,EAAQ,CACjB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAS,CAClB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAM,CACf,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAO,CAChB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAS,CAClB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAS,CAClB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EACaC,EAAO,CAChB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,SACP,EAsDO,IAAMC,GAAO,CAChB,QAASC,EAAU,EAAE,EACrB,UAAWA,EAAU,CAAC,EACtB,SAAUA,EAAU,CAAC,CACzB,EAIaC,GAAa,CACtB,QAASD,EAAU,CAAC,EAC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",
|
|
6
|
+
"names": ["cn", "classes", "_R", "_jsx", "type", "props", "key", "R", "p", "c", "jsx", "jsxs", "Fragment", "EditorLayout", "children", "jsx", "EditorHeader", "title", "subtitle", "onBack", "jsxs", "jsx", "EditorBody", "children", "jsx", "EditorFooter", "onSave", "onPublish", "jsxs", "jsx", "_R", "react_default", "_", "k", "useState", "useEffect", "useCallback", "_R", "useRef", "_r", "_R", "Fragment", "Suspense", "Children", "Component", "PureComponent", "EditorInput", "label", "className", "props", "jsxs", "jsx", "cn", "EditorTextarea", "label", "className", "props", "jsxs", "jsx", "cn", "ChatbotEditor", "config", "onChange", "editor", "typedConfig", "initialConsumed", "useRef", "useEffect", "handleChange", "field", "value", "jsxs", "EditorLayout", "jsx", "EditorHeader", "EditorBody", "EditorInput", "e", "EditorTextarea", "EditorFooter", "editorPanel", "editor_default", "base", "brand", "slateGrey", "green", "yellow", "red", "blue", "orange", "purple", "pink", "text", "slateGrey", "background", "border", "button", "base", "brand", "red", "green", "badge", "yellow", "purple", "blue", "orange", "pink", "badgeBanner", "alert", "tag", "menu", "inputDropdown", "inputField", "toggle", "checkbox", "avatar", "progressBarSlider", "card", "sidebar", "modal", "tab", "table", "breadcrumbs", "loadingIndicator", "datePicker", "scroll", "_RD", "client_default", "_", "k", "createRoot", "JSON_FENCE_RE", "parseActions", "input", "actions", "displayText", "matches", "match", "i", "fullMatch", "json", "parsed", "AuthError", "message", "getAuthHeaders", "cookieMatch", "workspaceId", "sendMessage", "url", "request", "authHeaders", "response", "nextId", "generateId", "useChat", "options", "backendUrl", "tileId", "runtime", "greeting", "maxHistory", "mlflowRunId", "config", "messages", "setMessages", "useState", "isLoading", "setIsLoading", "error", "setError", "batchHandleRef", "useRef", "send", "useCallback", "text", "trimmed", "userMessage", "prev", "historySlice", "m", "response", "sendMessage", "displayText", "actions", "parseActions", "assistantMessage", "a", "err", "message", "clearMessages", "styles", "purple", "base", "slateGrey", "red", "MessageBubble", "message", "isUser", "bubbleStyle", "jsx", "ChatAssistant", "config", "runtime", "tileId", "messages", "isLoading", "error", "sendMessage", "_clearMessages", "useChat", "messageListRef", "useRef", "inputRef", "useEffect", "handleSubmit", "e", "input", "text", "jsxs", "msg", "ChatAssistantMountableWidget", "container", "mountConfig", "createRoot", "root", "react_default", "runtime", "ChatAssistantMountableWidget", "manifest", "runtime", "editor_default", "editorPanel", "registry", "cdn_default"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
function S(...e){return e.filter(Boolean).join(" ")}function je(){return typeof SynOS<"u"&&SynOS.React||{}}function Ze(e,t,a){var o=je(),r=t||{},s=r.children;return delete r.children,a!==void 0&&(r.key=a),Array.isArray(s)?o.createElement.apply(null,[e,r].concat(s)):s!==void 0?o.createElement(e,r,s):o.createElement(e,r)}var l=Ze,n=Ze,N=je().Fragment;function me({children:e}){return l("div",{className:"se-flex se-flex-col se-h-full se-font-sans",children:e})}function Le({title:e,subtitle:t,onBack:a}){return n("div",{className:"se-p-4 se-border-b se-border-border-primary se-flex se-items-center se-gap-3",children:[l("button",{onClick:a,className:"se-px-3 se-py-1.5 se-rounded-md se-border se-border-btn-neutral-border se-bg-transparent se-text-btn-neutral-text se-text-sm se-cursor-pointer hover:se-text-btn-neutral-text-hover",children:"\u2190 Back"}),n("div",{children:[l("h2",{className:"se-m-0 se-text-base se-font-semibold se-text-text-primary",children:e}),t&&l("p",{className:"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary",children:t})]})]})}function xe({children:e}){return l("div",{className:"se-flex-1 se-overflow-auto se-p-6",children:e})}function Ie({onSave:e,onPublish:t}){return n("div",{className:"se-py-3 se-px-4 se-border-t se-border-border-primary se-flex se-gap-2",children:[l("button",{onClick:e,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-blue-5/15 se-text-blue-5 se-text-base se-font-semibold se-cursor-pointer",children:"Save Draft"}),l("button",{onClick:t,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-green-4 se-text-white se-text-base se-font-semibold se-cursor-pointer",children:"Publish"})]})}function ge({children:e,itemKey:t,onMouseEnter:a,onMouseLeave:o,className:r,validated:s}){return l("div",{"data-item-key":t,onMouseEnter:a,onMouseLeave:o,className:S("se-py-2 se-px-2.5 se-rounded-lg se-border se-bg-card-bg se-shadow-sm se-mb-1 se-text-sm se-text-text-primary",s?"se-border-green-4/40 se-shadow-glow-green":"se-border-border-primary",r),children:e})}function Ce({found:e}){return l("span",{className:S("se-w-2 se-h-2 se-rounded-full se-shrink-0 se-inline-block",e?"se-bg-green-4":"se-bg-text-tertiary"),title:e?"Found on this page":"Not found on this page"})}function v(){return typeof SynOS<"u"&&SynOS.React||{}}var co=new Proxy({},{get:function(e,t){return v()[t]}});function w(){return v().useState.apply(null,arguments)}function T(){return v().useEffect.apply(null,arguments)}function I(){return v().useCallback.apply(null,arguments)}function E(){return v().useRef.apply(null,arguments)}function G(){return v().createElement.apply(null,arguments)}function re(){return v().forwardRef.apply(null,arguments)}var z=v(),po=z.Fragment,mo=z.Suspense,Lo=z.Children,xo=z.Component,Io=z.PureComponent;function he({count:e,children:t}){let[a,o]=w(!1);return n("div",{className:"se-mt-4 se-cursor-pointer se-select-none",children:[n("div",{className:"se-text-xs se-font-semibold se-text-text-tertiary se-flex se-items-center se-gap-1.5 se-cursor-pointer",onClick:()=>o(!a),children:[l("span",{children:a?"\u25BE":"\u25B8"}),n("span",{children:["Dismissed (",e,")"]})]}),a&&l("div",{className:"se-mt-1.5",children:t})]})}function Se({label:e,count:t,className:a}){return n("div",{className:S("se-text-xs se-font-bold se-text-text-secondary se-uppercase se-tracking-wide se-py-1 se-pb-2 se-flex se-items-center se-justify-between",a),children:[l("span",{children:e}),l("span",{className:"se-text-xs se-text-text-tertiary se-bg-badge-slate-bg se-px-1.5 se-py-0.5 se-rounded-lg",children:t})]})}function we({mode:e,onToggle:t}){return n("div",{className:"se-flex se-mb-3 se-rounded-lg se-overflow-hidden se-border se-border-border-primary",children:[l("button",{onClick:()=>t("before"),className:S("se-flex-1 se-py-1.5 se-px-3 se-border-none se-text-sm se-font-semibold se-cursor-pointer",e==="before"?"se-bg-blue-5/20 se-text-blue-5":"se-bg-transparent se-text-text-secondary"),children:"Before"}),l("button",{onClick:()=>t("after"),className:S("se-flex-1 se-py-1.5 se-px-3 se-border-none se-border-l se-border-border-primary se-text-sm se-font-semibold se-cursor-pointer",e==="after"?"se-bg-blue-5/20 se-text-blue-5":"se-bg-transparent se-text-text-secondary"),children:"After"})]})}function W({label:e,className:t,...a}){return n("div",{children:[e&&l("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:e}),l("input",{...a,className:S("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t)})]})}function V({label:e,className:t,...a}){return n("div",{children:[e&&l("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:e}),l("textarea",{...a,className:S("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t)})]})}function ke({label:e,className:t,children:a,...o}){return n("div",{children:[e&&l("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:e}),l("select",{...o,className:S("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-mb-2","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t),children:a})]})}function be({onClick:e,label:t="\u2190 List"}){return l("button",{onClick:e,className:"se-py-1.5 se-px-3 se-rounded-md se-border se-border-btn-neutral-border se-bg-transparent se-text-btn-neutral-text se-text-sm se-cursor-pointer se-mt-2 hover:se-text-btn-neutral-text-hover",children:t})}function ye({message:e}){return l("div",{className:"se-text-center se-py-8 se-px-4 se-text-text-secondary se-text-sm",children:e})}var Je=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),le=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();var Qe={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ye=re(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:u,...f},c)=>G("svg",{ref:c,...Qe,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:le("lucide",r),...f},[...u.map(([g,m])=>G(g,m)),...Array.isArray(s)?s:[s]]));var y=(e,t)=>{let a=re(({className:o,...r},s)=>G(Ye,{ref:s,iconNode:t,className:le(`lucide-${Je(e)}`,o),...r}));return a.displayName=`${e}`,a};var $=y("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]);var _=y("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var X=y("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);var K=y("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var j=y("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var Z=y("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);function ea(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var $r=new Proxy({},{get:function(e,t){return ea()[t]}});function aa(){return ea().createPortal.apply(null,arguments)}function se(e){return typeof e=="object"&&e!==null&&e.nodeType===Node.ELEMENT_NODE}var F={NONE:"",DESCENDANT:" ",CHILD:" > "},p={id:"id",class:"class",tag:"tag",attribute:"attribute",nthchild:"nthchild",nthoftype:"nthoftype"};function ta(e,t){return Object.values(e).includes(t)}var Za="CssSelectorGenerator";function q(e="unknown problem",...t){console.warn(`${Za}: ${e}`,...t)}var Ja={selectors:[p.id,p.class,p.tag,p.attribute],includeTag:!1,whitelist:[],blacklist:[],combineWithinSelector:!0,combineBetweenSelectors:!0,root:null,maxCombinations:Number.POSITIVE_INFINITY,maxCandidates:Number.POSITIVE_INFINITY,useScope:!1};function Qa(e){return Array.isArray(e)?e.filter(t=>ta(p,t)):[]}function Ae(e){return e instanceof RegExp}function Ya(e){return["string","function"].includes(typeof e)||Ae(e)}function oa(e){return Array.isArray(e)?e.filter(Ya):[]}function et(e){return e instanceof Node}function ra(e){let t=[Node.DOCUMENT_NODE,Node.DOCUMENT_FRAGMENT_NODE,Node.ELEMENT_NODE];return et(e)&&t.includes(e.nodeType)}function Me(e,t){if(ra(e))return e.contains(t)||q("element root mismatch","Provided root does not contain the element. This will most likely result in producing a fallback selector using element's real root node. If you plan to use the selector using provided root (e.g. `root.querySelector`), it will not work as intended."),e;let a=t.getRootNode({composed:!1});return ra(a)?(a!==document&&q("shadow root inferred","You did not provide a root and the element is a child of Shadow DOM. This will produce a selector using ShadowRoot as a root. If you plan to use the selector using document as a root (e.g. `document.querySelector`), it will not work as intended."),a):J(t)}function Pe(e){return typeof e=="number"?e:Number.POSITIVE_INFINITY}function la(e,t={}){let a=Object.assign(Object.assign({},Ja),t);return{selectors:Qa(a.selectors),whitelist:oa(a.whitelist),blacklist:oa(a.blacklist),root:Me(a.root,e),combineWithinSelector:!!a.combineWithinSelector,combineBetweenSelectors:!!a.combineBetweenSelectors,includeTag:!!a.includeTag,maxCombinations:Pe(a.maxCombinations),maxCandidates:Pe(a.maxCandidates),useScope:!!a.useScope,maxResults:Pe(a.maxResults)}}function M(e=[]){let[t=[],...a]=e;return a.length===0?t:a.reduce((o,r)=>o.filter(s=>r.includes(s)),t)}function sa(e){return[].concat(...e)}function at(e){return e.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".+")}function Q(e){let t=e.map(a=>{if(Ae(a))return o=>a.test(o);if(typeof a=="function")return o=>{let r=a(o);return typeof r!="boolean"?(q("pattern matcher function invalid","Provided pattern matching function does not return boolean. It's result will be ignored.",a),!1):r};if(typeof a=="string"){let o=new RegExp("^"+at(a)+"$");return r=>o.test(r)}return q("pattern matcher invalid","Pattern matching only accepts strings, regular expressions and/or functions. This item is invalid and will be ignored.",a),()=>!1});return a=>t.some(o=>o(a))}function Y(e,t,a){let o=Array.from(Me(a,e[0]).querySelectorAll(t));return o.length===e.length&&e.every(r=>o.includes(r))}function Be(e,t){t=t??J(e);let a=[],o=e;for(;se(o)&&o!==t;)a.push(o),o=o.parentElement;return a}function ua(e,t){return M(e.map(a=>Be(a,t)))}function J(e){return e.ownerDocument.querySelector(":root")}var ue=", ",da=new RegExp(["^$","\\s"].join("|")),fa=new RegExp(["^$"].join("|")),de=[p.nthoftype,p.tag,p.id,p.class,p.attribute,p.nthchild];var tt=Q(["class","id","ng-*"]);function ot({name:e}){return`[${e}]`}function rt({name:e,value:t}){return`[${e}='${t}']`}function lt({nodeName:e,nodeValue:t},a){let o=a.tagName.toLowerCase();return["input","option"].includes(o)&&e==="value"||e==="src"&&t?.startsWith("data:")?!1:!tt(e)}function st({nodeName:e,nodeValue:t}){return{name:R(e),value:R(t??void 0)}}function Re(e){let t=Array.from(e.attributes).filter(a=>lt(a,e)).map(st);return[...t.map(ot),...t.map(rt)]}function na(e){let t=e.map(Re);return M(t)}function ve(e){var t;return((t=e.getAttribute("class"))!==null&&t!==void 0?t:"").trim().split(/\s+/).filter(a=>!fa.test(a)).map(a=>`.${R(a)}`)}function ia(e){let t=e.map(ve);return M(t)}function De(e){var t;let a=(t=e.getAttribute("id"))!==null&&t!==void 0?t:"",o=`#${R(a)}`,r=e.getRootNode({composed:!1});return!da.test(a)&&Y([e],o,r)?[o]:[]}function ca(e){return e.length===0||e.length>1?[]:De(e[0])}function Te(e){var t;let a=(t=e.parentElement)===null||t===void 0?void 0:t.children;if(a){for(let o=0;o<a.length;o++)if(a[o]===e)return[`:nth-child(${String(o+1)})`]}return[]}function pa(e){return M(e.map(Te))}function Fe(e){return[R(e.tagName.toLowerCase())]}function fe(e){let t=[...new Set(sa(e.map(Fe)))];return t.length===0||t.length>1?[]:[t[0]]}function Ee(e){let t=fe([e])[0],a=e.parentElement;if(a){let r=Array.from(a.children).filter(s=>s.tagName.toLowerCase()===t).indexOf(e);if(r>-1)return[`${t}:nth-of-type(${String(r+1)})`]}return[]}function ma(e){return M(e.map(Ee))}function*Oe(e=[],{maxResults:t=Number.POSITIVE_INFINITY}={}){let a=0,o=qe(1);for(;o.length<=e.length&&a<t;)a+=1,yield o.map(s=>e[s]),o=ut(o,e.length-1)}function La(e=[],{maxResults:t=Number.POSITIVE_INFINITY}={}){return Array.from(Oe(e,{maxResults:t}))}function ut(e=[],t=0){let a=e.length;if(a===0)return[];let o=[...e];o[a-1]+=1;for(let r=a-1;r>=0;r--)if(o[r]>t){if(r===0)return qe(a+1);o[r-1]++,o[r]=o[r-1]+1}return o[a-1]>t?qe(a+1):o}function qe(e=1){return Array.from(Array(e).keys())}function*xa(e={}){let t=Object.entries(e);if(t.length===0)return;let a=[{index:t.length-1,partial:{}}];for(;a.length>0;){let o=a.pop();if(!o)break;let{index:r,partial:s}=o;if(r<0){yield s;continue}let[u,f]=t[r];for(let c=f.length-1;c>=0;c--)a.push({index:r-1,partial:Object.assign(Object.assign({},s),{[u]:f[c]})})}}var dt="3a".toUpperCase(),ft=/[ !"#$%&'()\[\]{|}<>*+,./;=?@^`~\\]/;function R(e=""){return CSS?CSS.escape(e):nt(e)}function nt(e=""){return e.split("").map(t=>t===":"?`\\${dt} `:ft.test(t)?`\\${t}`:escape(t).replace(/%/g,"\\")).join("")}var it={tag:fe,id:ca,class:ia,attribute:na,nthchild:pa,nthoftype:ma},ct={tag:Fe,id:De,class:ve,attribute:Re,nthchild:Te,nthoftype:Ee};function Ia(e,t){return ct[t](e)}function pt(e,t){let a=it[t];return a(e)}function mt(e=[],t,a){return e.filter(o=>a(o)||!t(o))}function Lt(e=[],t){return e.sort((a,o)=>{let r=t(a),s=t(o);return r&&!s?-1:!r&&s?1:0})}function*xt(e,t){let a=new Set,o=It(e,t);for(let r of St(o,t))a.has(r)||(a.add(r),yield r)}function It(e,t){let{blacklist:a,whitelist:o,combineWithinSelector:r,maxCombinations:s}=t,u=Q(a),f=Q(o),c=(g,m)=>{let k=pt(e,m),C=mt(k,u,f),L=Lt(C,f);return g[m]=r?Array.from(Oe(L,{maxResults:s})):L.map(b=>[b]),g};return gt(t).reduce(c,{})}function gt(e){let{selectors:t,includeTag:a}=e,o=[...t];return a&&!o.includes("tag")&&o.push("tag"),o}function Ct(e){return e.includes(p.tag)||e.includes(p.nthoftype)?[...e]:[...e,p.tag]}function ht(e){let{selectors:t,combineBetweenSelectors:a,includeTag:o,maxCandidates:r}=e,s=a?La(t,{maxResults:r}):t.map(u=>[u]);return o?s.map(Ct):s}function*St(e,t){for(let a of ht(t))yield*wt(a,e)}function*wt(e,t){let a={};for(let o of e){let r=t[o];r&&r.length>0&&(a[o]=r)}for(let o of xa(a))yield bt(o)}function kt(e,t){return t[e]?t[e].join(""):""}function bt(e={}){let t=[...de];return e[p.tag]&&e[p.nthoftype]&&t.splice(t.indexOf(p.tag),1),t.map(a=>kt(a,e)).join("")}function yt(e,t){return[...e.map(a=>t+F.DESCENDANT+a),...e.map(a=>t+F.CHILD+a)]}function*Pt(e,t){if(t==="")yield*e;else for(let a of e)yield*yt([a],t)}function*At(e,t,a="",o){let r=xt(e,o);for(let s of Pt(r,a))Y(e,s,t)&&(yield s)}function*Mt(e,t,a="",o){if(e.length===0)return null;let r=[e.length>1?e:[],...ua(e,t).map(s=>[s])];for(let s of r)for(let u of At(s,t,a,o))yield{foundElements:s,selector:u}}function*ga({elements:e,root:t,rootSelector:a="",options:o}){let r=t,s=a,u=!0;for(;u;){let f=!1;for(let c of Mt(e,r,s,o)){let{foundElements:g,selector:m}=c;if(f=!0,Y(e,m,t))yield m;else{r=g[0],s=m;break}}f||(u=!1)}}function Ca(e){(e instanceof NodeList||e instanceof HTMLCollection)&&(e=Array.from(e));let t=(Array.isArray(e)?e:[e]).filter(se);return[...new Set(t)]}function Bt(e){return{value:e,include:!1}}function ha(e,t,a=F.NONE){let o={};return t.forEach(r=>{Reflect.set(o,r,Ia(e,r).map(Bt))}),{element:e,operator:a,selectors:o}}function Sa({selectors:e,operator:t}){let a=[...de];e[p.tag]&&e[p.nthoftype]&&(a=a.filter(r=>r!==p.tag));let o="";return a.forEach(r=>{var s;((s=e[r])!==null&&s!==void 0?s:[]).forEach(({value:f,include:c})=>{c&&(o+=f)})}),t+o}function Rt(e,t){let o=Be(e,t).reverse().map(r=>{var s;let u=ha(r,[p.nthchild],F.CHILD);return((s=u.selectors.nthchild)!==null&&s!==void 0?s:[]).forEach(f=>{f.include=!0}),u});return[t?":scope":":root",...o.map(Sa)].join("")}function wa(e,t){return e.map(a=>Rt(a,t)).join(ue)}function He(e,t={}){let a=Object.assign(Object.assign({},t),{maxResults:1});return vt(e,a).next().value}function*vt(e,t={}){var a;let o=Ca(e),r=la(o[0],t),s=(a=r.root)!==null&&a!==void 0?a:J(o[0]),u=0;for(let f of ga({elements:o,options:r,root:s,rootSelector:""}))if(yield f,u++,u>=r.maxResults)return;o.length>1&&(yield o.map(f=>He(f,r)).join(ue),u++,u>=r.maxResults)||(yield wa(o,r.useScope?s:void 0))}var Dt={includeTag:!0,preferTestIds:!0,maxCombinations:100};function Ue(e,t={}){let a={...Dt,...t},o=[];o.push("id"),a.preferTestIds&&o.push("attribute"),o.push("class"),o.push("tag"),o.push("nthchild"),o.push("nthoftype");try{return He(e,{selectors:o,includeTag:a.includeTag,maxCombinations:a.maxCombinations,blacklist:[/^[a-z]+-[a-f0-9]{5,}$/i,/^_[a-zA-Z0-9]+$/,/^svelte-[a-z0-9]+$/i,/^vue-[a-z0-9]+$/i,/^emotion-[0-9]+$/,/^sc-[a-zA-Z]+$/,/^(is-|has-|js-)/,/^(active|selected|focused|disabled|hidden|visible)$/,/^(fade|slide|animate)/,/-(enter|leave|active)(-active|-done)?$/],whitelist:[/^data-testid$/,/^data-cy$/,/^data-test$/,/^data-qa$/,/^aria-label$/,/^role$/,/^name$/,/^type$/,/^href$/]})}catch(r){return console.warn("[SelectorGenerator] Failed to generate selector:",r),Tt(e)}}function Tt(e){let t=[],a=e;for(;a&&a!==document.body&&a!==document.documentElement;){let o=a.tagName.toLowerCase();if(a.id){o=`#${CSS.escape(a.id)}`,t.unshift(o);break}let r=a.parentElement;if(r){let u=Array.from(r.children).indexOf(a)+1;o+=`:nth-child(${u})`}t.unshift(o),a=r}return t.join(" > ")}function ka(e,t){try{return document.querySelector(e)===t}catch{return!1}}function ne(e){let t=e.tagName.toLowerCase(),a=e.id?`#${e.id}`:"",o=e.className&&typeof e.className=="string"?`.${e.className.split(" ").filter(u=>u&&!Ft(u)).slice(0,2).join(".")}`:"",r=e.textContent?.trim().slice(0,30)||"",s=r?` "${r}${r.length>=30?"...":""}"`:"";return`${t}${a}${o}${s}`.trim()}function Ft(e){return[/^[a-z]+-[a-f0-9]{5,}$/i,/^_[a-zA-Z0-9]+$/,/^svelte-[a-z0-9]+$/i,/^vue-[a-z0-9]+$/i,/^emotion-[0-9]+$/,/^sc-[a-zA-Z]+$/].some(a=>a.test(e))}var ba="#3b82f6",Et="rgba(59, 130, 246, 0.1)";function ya({isActive:e,onPick:t,onCancel:a,excludeSelector:o="[data-syntro-editor-panel], [data-shadow-canvas-id], .syntro-tooltip, .syntro-modal, .syntro-highlight, [data-syntro-anchor-picker]"}){let[r,s]=w(null),[u,f]=w(""),c=E(null),g=I(L=>{let b=c.current;b&&(b.style.pointerEvents="none");let P=document.elementFromPoint(L.clientX,L.clientY);if(b&&(b.style.pointerEvents="auto"),!P){s(null),f("");return}if(o&&P.closest(o)){s(null),f("");return}if(["HTML","BODY","HEAD"].includes(P.tagName)){s(null),f("");return}s(P);let ae=Ue(P);f(ae)},[o]),m=I(L=>{if(L.preventDefault(),L.stopPropagation(),r&&u)if(ka(u,r))t({element:r,selector:u,description:ne(r)});else{let b=Ue(r);t({element:r,selector:b,description:ne(r)})}},[r,u,t]),k=I(L=>{L.key==="Escape"&&(L.preventDefault(),a())},[a]);if(T(()=>{if(e)return document.addEventListener("mousemove",g,!0),document.addEventListener("click",m,!0),document.addEventListener("keydown",k,!0),()=>{document.removeEventListener("mousemove",g,!0),document.removeEventListener("click",m,!0),document.removeEventListener("keydown",k,!0)}},[e,g,m,k]),!e)return null;let C=r?.getBoundingClientRect();return aa(n("div",{ref:c,"data-syntro-anchor-picker":!0,style:{position:"fixed",inset:0,cursor:"crosshair",zIndex:2147483647},children:[l("div",{style:{position:"absolute",inset:0,background:"rgba(0, 0, 0, 0.05)",pointerEvents:"none"}}),r&&C&&l("div",{style:{position:"fixed",left:C.left-2,top:C.top-2,width:C.width+4,height:C.height+4,border:`2px solid ${ba}`,backgroundColor:Et,borderRadius:"4px",boxShadow:"0 0 0 9999px rgba(0, 0, 0, 0.15)",pointerEvents:"none",transition:"all 0.1s ease-out"}}),r&&C&&n("div",{style:{position:"fixed",left:Math.max(8,Math.min(C.left,window.innerWidth-320)),top:Math.max(8,C.top-68),backgroundColor:"#1e293b",color:"#e2e8f0",padding:"8px 12px",borderRadius:"6px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.3)",zIndex:1,fontFamily:"monospace",fontSize:"12px",maxWidth:"300px",pointerEvents:"none"},children:[l("div",{style:{fontSize:"11px",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"4px",color:"#94a3b8"},children:"Click to select"}),l("div",{style:{color:"#38bdf8",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u}),l("div",{style:{marginTop:"4px",color:"#cbd5e1",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ne(r)})]}),n("div",{style:{position:"fixed",bottom:0,left:0,right:0,display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:"#1e293b",color:"#e2e8f0",padding:"12px 20px",boxShadow:"0 -4px 12px rgba(0, 0, 0, 0.2)",fontSize:"14px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[n("div",{style:{display:"flex",alignItems:"center",gap:"16px"},children:[l("span",{style:{padding:"4px 12px",borderRadius:"4px",fontWeight:600,color:"#fff",backgroundColor:ba},children:"Element Picker"}),l("span",{style:{color:"#cbd5e1"},children:"Hover over an element and click to select it"})]}),n("button",{onClick:L=>{L.stopPropagation(),a()},style:{background:"transparent",border:"1px solid #475569",color:"#e2e8f0",padding:"8px 16px",borderRadius:"6px",cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"8px",fontFamily:"inherit"},children:[l("kbd",{style:{padding:"2px 6px",borderRadius:"3px",backgroundColor:"#334155",fontSize:"12px"},children:"ESC"}),"Cancel"]})]})]}),document.body)}function qt(e){if(!e)return"(no target)";if(e.startsWith("#")){let a=e.slice(1),o=["hero-","main-","page-","app-","section-"];for(let r of o)if(a.startsWith(r)){a=a.slice(r.length);break}return Pa(a,50)}let t=e.match(/\[data-testid="([^"]+)"\]/);return t?`${t[1]} element`:Pa(e,50)}function Pa(e,t){return e.length<=t?e:`${e.slice(0,t)}...`}function Aa(e,t){return e.length<=t?`"${e}"`:`"${e.slice(0,t)}..."`}function Ma(e,t){let a=qt(t.anchorId||"");switch(e){case"textReplacements":{let o=t.text||"";return`Change ${a} to ${Aa(o,40)}`}case"attributeChanges":{let o=t.attr||"",r=t.value||"";return`Set ${a} ${o} to ${Aa(r,40)}`}case"styleChanges":{let o=t.styles||{},r=Object.keys(o).length;return`Restyle ${a} (${r} ${r===1?"property":"properties"})`}case"htmlInsertions":return`Insert HTML ${t.position||"append"} ${a}`;case"classAdditions":return`Add class "${t.className||""}" to ${a}`;case"classRemovals":return`Remove class "${t.className||""}" from ${a}`;default:return`Unknown change on ${a}`}}function va(e,t){return`${e}:${t}`}function Ot(e){let[t,a]=e.split(":");return{section:t,index:Number(a)}}var Ge={textReplacements:Z,attributeChanges:j,styleChanges:X,htmlInsertions:$,classAdditions:K,classRemovals:_};function Ne({section:e,className:t}){let a=Ge[e];return l(a,{size:16,className:t})}function Ba(e){let t=[],a=Object.keys(Ge);for(let o of a)(e[o]||[]).forEach((s,u)=>{let f=s;t.push({key:va(o,u),section:o,index:u,summary:Ma(o,f),anchorId:f.anchorId||""})});return t}function Ra(e,t){let a={...e},o=Object.keys(Ge);for(let r of o){let u=(e[r]||[]).filter((f,c)=>!t.has(va(r,c)));(u.length>0||e[r]!==void 0)&&(a[r]=u)}return a}function Ht(e){let[t,a]=w(new Map),o=E(e);return o.current=e,T(()=>{let r=()=>{let u=new Map;for(let f of o.current){if(!f.anchorId){u.set(f.key,{found:!1,element:null});continue}try{let c=document.querySelector(f.anchorId);u.set(f.key,{found:c!==null,element:c})}catch{u.set(f.key,{found:!1,element:null})}}a(u)};r();let s=setInterval(r,2e3);return()=>clearInterval(s)},[]),t}function Ut({config:e,onChange:t,editor:a}){let o=e,[r,s]=w(()=>a.getDismissedKeys?.()??new Set),[u,f]=w(null),[c,g]=w("after");T(()=>{a.setDismissedKeys?.(r)},[r,a]);let[m,k]=w(null),[C,L]=w(""),[b,P]=w(""),[ae,te]=w(""),oe=E(!1);T(()=>{if(a.initialEditKey!=null&&!oe.current){oe.current=!0;let d=Ba(o),i=Number(a.initialEditKey);if(i>=0&&i<d.length){let x=d[i];f(x.key),x.anchorId&&a.highlightElement(x.anchorId)}a.clearInitialState?.()}else a.initialCreate&&!oe.current&&(oe.current=!0,k("picking"),a.clearInitialState?.())},[a,o]);let O=Ba(o),H=O.filter(d=>!r.has(d.key)),ie=O.filter(d=>r.has(d.key)),ce=H.length,[Xt,$e]=w(null),_e=Ht(O),Ta=H.filter(d=>_e.get(d.key)?.found).length,Fa=I(d=>{s(i=>{let x=new Set(i);return x.add(d),x}),u===d&&f(null)},[u]),Ea=I(d=>{s(i=>{let x=new Set(i);return x.delete(d),x})},[]),Xe=I(d=>{d.anchorId&&a.highlightElement(d.anchorId),f(d.key)},[a]),Ke=I(()=>{f(null),g("after"),a.previewConfig(e),a.clearHighlight()},[a,e]),qa=I(d=>{if(g(d),d==="before"){let i=Ra(o,new Set([u]));a.previewConfig(i)}else a.previewConfig(e)},[o,u,a,e]),D=I((d,i,x,A)=>{let B=(o[d]||[]).slice(),h={...B[i]};h[x]=A,B[i]=h;let U={...o,[d]:B};t(U),a.setDirty(!0)},[o,t,a]),Oa=I(()=>{if(r.size>0){let d=Ra(o,r);t(d)}a.publish()},[r,o,t,a]),Ha=I(d=>{$e(d.key),d.anchorId&&a.highlightElement(d.anchorId)},[a]),Ua=I(()=>{$e(null),a.clearHighlight()},[a]),Na=I(()=>{f(null),a.clearHighlight(),L(""),P(""),te(""),k("picking")},[a]),Ga=I(d=>{L(d.selector),te(d.description);let i=d.element.textContent?.trim()||"";P(i),k("form"),a.highlightElement(d.selector)},[a]),pe=I(()=>{k(null),L(""),P(""),te(""),a.clearHighlight()},[a]),za=I(()=>{if(!C)return;let d=o.textReplacements||[],i={anchorId:C,text:b,summary:`Set text on ${C}`},x={...o,textReplacements:[...d,i]};t(x),a.setDirty(!0),k(null),L(""),P(""),te(""),a.clearHighlight()},[C,b,o,t,a]),Wa=(d,i)=>{let A=(o[d]||[])[i];if(!A)return null;let B=A.anchorId||"";switch(d){case"textReplacements":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-[11px] se-font-mono se-text-slate-grey-8 se-py-1 se-px-2 se-bg-white/[0.04] se-rounded se-mb-3",children:B}),l(V,{label:"Text",value:A.text||"",onChange:h=>D(d,i,"text",h.target.value)})]});case"attributeChanges":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-[11px] se-font-mono se-text-slate-grey-8 se-py-1 se-px-2 se-bg-white/[0.04] se-rounded se-mb-3",children:B}),l(W,{label:"Attribute",value:A.attr||"",onChange:h=>D(d,i,"attr",h.target.value)}),l(W,{label:"Value",value:A.value||"",onChange:h=>D(d,i,"value",h.target.value)})]});case"styleChanges":{let h=A.styles||{};return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-[11px] se-font-mono se-text-slate-grey-8 se-py-1 se-px-2 se-bg-white/[0.04] se-rounded se-mb-3",children:B}),l("label",{className:"se-text-[11px] se-font-semibold se-text-slate-grey-7 se-mb-1 se-block",children:"Styles"}),Object.entries(h).map(([U,_a])=>n("div",{className:"se-flex se-gap-1 se-mb-1",children:[l("input",{className:"se-flex-1 se-py-1.5 se-px-2 se-rounded se-border se-border-white/10 se-bg-white/[0.04] se-text-slate-grey-10 se-text-xs se-font-[inherit] se-box-border",value:U,readOnly:!0}),l("input",{className:"se-flex-1 se-py-1.5 se-px-2 se-rounded se-border se-border-white/10 se-bg-white/[0.04] se-text-slate-grey-10 se-text-xs se-font-[inherit] se-box-border",value:_a,onChange:Xa=>{let Ka={...h,[U]:Xa.target.value};D(d,i,"styles",Ka)}})]},U))]})}case"htmlInsertions":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-[11px] se-font-mono se-text-slate-grey-8 se-py-1 se-px-2 se-bg-white/[0.04] se-rounded se-mb-3",children:B}),n(ke,{label:"Position",value:A.position||"after",onChange:h=>D(d,i,"position",h.target.value),children:[l("option",{value:"before",children:"Before"}),l("option",{value:"after",children:"After"}),l("option",{value:"prepend",children:"Prepend"}),l("option",{value:"append",children:"Append"}),l("option",{value:"replace",children:"Replace"})]}),l(V,{label:"HTML",value:A.html||"",onChange:h=>D(d,i,"html",h.target.value),className:"se-font-mono"})]});case"classAdditions":case"classRemovals":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-[11px] se-font-mono se-text-slate-grey-8 se-py-1 se-px-2 se-bg-white/[0.04] se-rounded se-mb-3",children:B}),l(W,{label:"Class Name",value:A.className||"",onChange:h=>D(d,i,"className",h.target.value)})]});default:return null}},Va=m==="form"?"Add Text Change":"Content",$a=m==="form"?"Pick an element and set its new text":`${ce} change${ce!==1?"s":""}${ce>0?` (${Ta} found on this page)`:""}`;return n(me,{children:[l(Le,{title:Va,subtitle:$a,onBack:()=>{m?pe():u!==null?Ke():a.navigateHome()}}),l(xe,{children:m==="form"?n("div",{className:"se-flex se-flex-col se-gap-4",children:[n("div",{className:"se-flex se-flex-col se-gap-1.5",children:[l("label",{className:"se-text-[11px] se-font-semibold se-text-slate-grey-7 se-uppercase se-tracking-wide",children:"Target Element"}),n("div",{className:"se-flex se-gap-2 se-items-center",children:[l("code",{className:"se-flex-1 se-py-1.5 se-px-2 se-rounded se-border se-border-white/10 se-bg-white/[0.04] se-text-slate-grey-10 se-text-xs se-overflow-hidden se-text-ellipsis se-whitespace-nowrap",children:C}),l("button",{onClick:()=>k("picking"),className:"se-py-1.5 se-px-3 se-rounded se-border se-border-white/10 se-bg-transparent se-text-slate-grey-9 se-text-xs se-cursor-pointer se-shrink-0",children:"Re-pick"})]}),ae&&l("span",{className:"se-text-[11px] se-text-slate-grey-6",children:ae})]}),n("div",{className:"se-flex se-flex-col se-gap-1.5",children:[l("label",{className:"se-text-[11px] se-font-semibold se-text-slate-grey-7 se-uppercase se-tracking-wide",children:"Text Content"}),l(V,{value:b,onChange:d=>P(d.target.value)})]}),n("div",{className:"se-flex se-gap-2 se-mt-2",children:[l("button",{onClick:pe,className:"se-flex-1 se-py-2 se-rounded se-border se-border-white/10 se-bg-transparent se-text-slate-grey-9 se-text-sm se-cursor-pointer",children:"Cancel"}),l("button",{onClick:za,disabled:!C,className:"se-flex-1 se-py-2 se-rounded se-border-none se-bg-blue-5 se-text-white se-text-sm se-font-semibold se-cursor-pointer disabled:se-opacity-40 disabled:se-cursor-not-allowed",children:"Add Change"})]})]}):u!==null?(()=>{let d=Ot(u),i=O.find(x=>x.key===u);return n(N,{children:[n("div",{className:"se-flex se-items-center se-gap-2 se-mb-3 se-text-[13px] se-font-semibold se-text-slate-grey-10",children:[l("span",{children:i&&l(Ne,{section:i.section})}),l("span",{children:i?.summary})]}),l(we,{mode:c,onToggle:qa}),Wa(d.section,d.index),l(be,{onClick:Ke})]})})():n(N,{children:[l("button",{onClick:Na,className:"se-w-full se-py-2.5 se-rounded-md se-border se-border-dashed se-border-blue-5/30 se-bg-blue-5/5 se-text-blue-5 se-text-xs se-font-semibold se-cursor-pointer se-flex se-items-center se-justify-center se-gap-1.5 se-mb-3",children:"+ Add Text Change"}),O.length===0&&l(ye,{message:"No content changes configured. Click above to add one."}),H.length>0&&n(N,{children:[l(Se,{label:"CONTENT",count:H.length}),H.map(d=>{let i=_e.get(d.key);return n(ge,{itemKey:d.key,className:"se-flex se-items-center se-gap-2 se-cursor-pointer",onMouseEnter:()=>Ha(d),onMouseLeave:Ua,children:[l(Ce,{found:i?.found??!1}),l("span",{className:"se-shrink-0 se-flex se-items-center -se-ml-1",onClick:x=>{x.stopPropagation(),Xe(d)},children:l(Ne,{section:d.section})}),l("span",{className:"se-flex-1 se-overflow-hidden se-text-ellipsis se-whitespace-nowrap",onClick:()=>Xe(d),children:d.summary}),l("button",{className:"se-py-0.5 se-px-1.5 se-rounded se-border-none se-bg-transparent se-text-slate-grey-7 se-text-sm se-cursor-pointer se-shrink-0 se-leading-none",onClick:x=>{x.stopPropagation(),Fa(d.key)},title:"Dismiss this change",children:"\xD7"})]},d.key)})]}),ie.length>0&&l(he,{count:ie.length,children:ie.map(d=>n("div",{className:"se-flex se-items-center se-gap-2 se-py-1.5 se-px-2.5 se-rounded-md se-border se-border-white/[0.03] se-bg-transparent se-mb-0.5 se-cursor-pointer se-text-xs se-text-slate-grey-6 se-opacity-60",children:[l("span",{className:"se-shrink-0 se-flex se-items-center -se-ml-1",children:l(Ne,{section:d.section})}),l("span",{className:"se-flex-1 se-overflow-hidden se-text-ellipsis se-whitespace-nowrap se-line-through",children:d.summary}),l("button",{className:"se-py-0.5 se-px-1.5 se-rounded se-border-none se-bg-transparent se-text-blue-5 se-text-[11px] se-cursor-pointer se-shrink-0 se-leading-none",onClick:i=>{i.stopPropagation(),Ea(d.key)},children:"Restore"})]},d.key))})]})}),l(Ie,{onSave:()=>a.save(),onPublish:Oa}),l(ya,{isActive:m==="picking",onPick:Ga,onCancel:pe})]})}var ze={panel:{title:"Content",icon:"\u{1F4DD}",description:"Text and attribute modifications"},component:Ut},ws=ze.panel;var Nt=new Set(["b","strong","i","em","u","span","div","p","br","ul","ol","li","code","pre","small","sup","sub","a","button"]);function We(e){if(typeof window.Sanitizer=="function")try{let f=new window.Sanitizer({}).sanitizeToFragment(e),c=document.createElement("div");return c.append(f),c.innerHTML}catch{}let a=document.createElement("template");a.innerHTML=e;let o=a.content,r=document.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,null),s=[];for(;r.nextNode();){let u=r.currentNode,f=u.tagName.toLowerCase();if(!Nt.has(f)){s.push(u);continue}for(let c of Array.from(u.attributes)){let g=c.name.toLowerCase(),m=c.value.trim().toLowerCase(),k=g.startsWith("on"),L=(g==="href"||g==="src"||g==="formaction")&&(m.startsWith("javascript:")||m.startsWith("vbscript:")||m.startsWith("data:text/html"));(k||L)&&u.removeAttribute(c.name)}}for(let u of s){for(;u.firstChild;)u.parentNode?.insertBefore(u.firstChild,u);u.remove()}return a.innerHTML}var Gt=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=We(e.html),r=document.createElement("div");r.setAttribute("data-syntro-action-id",t.generateId()),r.innerHTML=o;let s=null;switch(e.position){case"before":a.insertAdjacentElement("beforebegin",r);break;case"after":a.insertAdjacentElement("afterend",r);break;case"prepend":a.insertBefore(r,a.firstChild);break;case"append":a.appendChild(r);break;case"replace":s=a.innerHTML,a.replaceWith(r);break}return t.publishEvent("action.applied",{id:t.generateId(),kind:"content:insertHtml",anchorId:e.anchorId,position:e.position}),{cleanup:()=>{if(e.position==="replace"&&s!==null){let u=document.createElement(a.tagName);u.innerHTML=s,Array.from(a.attributes).forEach(f=>{u.setAttribute(f.name,f.value)}),r.replaceWith(u)}else r.remove()},updateFn:u=>{"html"in u&&typeof u.html=="string"&&(r.innerHTML=We(u.html))}}},zt=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=a.textContent??"";return a.textContent=e.text,t.publishEvent("action.applied",{id:t.generateId(),kind:"content:setText",anchorId:e.anchorId}),{cleanup:()=>{a.textContent=o},updateFn:r=>{"text"in r&&typeof r.text=="string"&&(a.textContent=r.text)}}},Wt=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=e.attr.toLowerCase();if(o.startsWith("on"))throw new Error(`Dangerous attribute not allowed: ${e.attr}`);if(o==="href"||o==="src"||o==="formaction"){let f=e.value.trim().toLowerCase();if(f.startsWith("javascript:")||f.startsWith("vbscript:")||f.startsWith("data:text/html"))throw new Error(`Dangerous URL not allowed in ${e.attr}: ${e.value}`)}let s=a.getAttribute(e.attr),u=a.hasAttribute(e.attr);return a.setAttribute(e.attr,e.value),t.publishEvent("action.applied",{id:t.generateId(),kind:"content:setAttr",anchorId:e.anchorId,attr:e.attr}),{cleanup:()=>{u&&s!==null?a.setAttribute(e.attr,s):a.removeAttribute(e.attr)},updateFn:f=>{"value"in f&&typeof f.value=="string"&&a.setAttribute(e.attr,f.value)}}},Vt=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=a.classList.contains(e.className);return a.classList.add(e.className),t.publishEvent("action.applied",{id:t.generateId(),kind:"content:addClass",anchorId:e.anchorId,className:e.className}),{cleanup:()=>{o||a.classList.remove(e.className)}}},$t=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=a.classList.contains(e.className);return a.classList.remove(e.className),t.publishEvent("action.applied",{id:t.generateId(),kind:"content:removeClass",anchorId:e.anchorId,className:e.className}),{cleanup:()=>{o&&a.classList.add(e.className)}}},_t=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=new Map;for(let r of Object.keys(e.styles)){let s=a.style.getPropertyValue(r);o.set(r,s)}for(let[r,s]of Object.entries(e.styles))a.style.setProperty(r,s);return t.publishEvent("action.applied",{id:t.generateId(),kind:"content:setStyle",anchorId:e.anchorId,styles:Object.keys(e.styles)}),{cleanup:()=>{for(let[r,s]of o)s?a.style.setProperty(r,s):a.style.removeProperty(r)},updateFn:r=>{if("styles"in r&&typeof r.styles=="object"&&r.styles)for(let[s,u]of Object.entries(r.styles))a.style.setProperty(s,u)}}},Ve=[{kind:"content:insertHtml",executor:Gt},{kind:"content:setText",executor:zt},{kind:"content:setAttr",executor:Wt},{kind:"content:addClass",executor:Vt},{kind:"content:removeClass",executor:$t},{kind:"content:setStyle",executor:_t}],ee={id:"adaptive-content",version:"1.0.0",name:"Content",description:"DOM manipulation for text, attributes, and styles",executors:Ve};var Da={id:ee.id,version:ee.version,name:ee.name,description:ee.description,runtime:{actions:Ve.map(({kind:e,executor:t})=>({kind:e,executor:t}))},editor:ze,metadata:{isBuiltIn:!0}};if(typeof window<"u"){let e=window.SynOS?.appRegistry;e&&typeof e.register=="function"&&e.register(Da)}var Rs=Da;export{Rs as default,Da as manifest};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
lucide-react/dist/esm/shared/src/utils.js:
|
|
5
|
+
lucide-react/dist/esm/defaultAttributes.js:
|
|
6
|
+
lucide-react/dist/esm/Icon.js:
|
|
7
|
+
lucide-react/dist/esm/createLucideIcon.js:
|
|
8
|
+
lucide-react/dist/esm/icons/file-code.js:
|
|
9
|
+
lucide-react/dist/esm/icons/minus.js:
|
|
10
|
+
lucide-react/dist/esm/icons/palette.js:
|
|
11
|
+
lucide-react/dist/esm/icons/plus.js:
|
|
12
|
+
lucide-react/dist/esm/icons/tag.js:
|
|
13
|
+
lucide-react/dist/esm/icons/type.js:
|
|
14
|
+
lucide-react/dist/esm/lucide-react.js:
|
|
15
|
+
(**
|
|
16
|
+
* @license lucide-react v0.460.0 - ISC
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the ISC license.
|
|
19
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
20
|
+
*)
|
|
21
|
+
*/
|
|
22
|
+
//# sourceMappingURL=index.js.map
|