@syntrologie/runtime-sdk 2.1.0 → 2.2.0-canary.1
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 +50 -43
- package/README.md +7 -7
- package/dist/RuntimeProvider.d.ts +1 -1
- package/dist/ShadowRootContext.d.ts +19 -0
- package/dist/SmartCanvasApp.d.ts +3 -3
- package/dist/SmartCanvasElement.d.ts +7 -2
- package/dist/SmartCanvasPortal.d.ts +1 -1
- package/dist/actions/executors/index.d.ts +3 -3
- package/dist/actions/executors/tour.d.ts +1 -1
- package/dist/actions/index.d.ts +4 -3
- package/dist/actions/schema.d.ts +1229 -0
- package/dist/actions/schema.js +67 -0
- package/dist/actions/schema.js.map +7 -0
- package/dist/adaptives/adaptive-chatbot/index.js +4 -4
- package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
- package/dist/adaptives/adaptive-content/index.js +2 -2
- package/dist/adaptives/adaptive-content/index.js.map +4 -4
- package/dist/adaptives/adaptive-faq/index.js +23 -6
- package/dist/adaptives/adaptive-faq/index.js.map +4 -4
- package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
- package/dist/adaptives/adaptive-nav/index.js +22 -7
- package/dist/adaptives/adaptive-nav/index.js.map +4 -4
- package/dist/adaptives/adaptive-overlays/index.js +13 -13
- package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
- package/dist/api.d.ts +2 -2
- package/dist/apps/examples/gamification-app.example.d.ts +4 -4
- package/dist/apps/index.d.ts +7 -7
- package/dist/blocks/data/index.d.ts +1 -1
- package/dist/blocks/index.d.ts +2 -2
- package/dist/blocks/interactive/index.d.ts +1 -1
- package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
- package/dist/blocks/notification/index.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -4
- package/dist/chunk-AYTRRBR5.js +251 -0
- package/dist/chunk-AYTRRBR5.js.map +7 -0
- package/dist/chunk-HJKAXD5S.js +7921 -0
- package/dist/chunk-HJKAXD5S.js.map +7 -0
- package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
- package/dist/components/TileCard.d.ts +1 -1
- package/dist/context/ContextManager.d.ts +1 -1
- package/dist/context/index.d.ts +3 -3
- package/dist/decisions/engine.d.ts +1 -1
- package/dist/decisions/index.d.ts +3 -3
- package/dist/decisions/schema.d.ts +24 -24
- package/dist/decisions/strategies/rules.d.ts +1 -1
- package/dist/decisions/strategies/score.d.ts +1 -1
- package/dist/editorLoader.d.ts +4 -4
- package/dist/events/EventAccumulator.d.ts +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/index.d.ts +7 -6
- package/dist/events/registerConfigPredicates.d.ts +19 -0
- package/dist/experiments/adapters/growthbook.d.ts +1 -1
- package/dist/experiments/index.d.ts +2 -2
- package/dist/experiments/registry.d.ts +1 -1
- package/dist/fetchers/index.d.ts +2 -2
- package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
- package/dist/hostPatcher/index.d.ts +2 -2
- package/dist/index.d.ts +24 -21
- package/dist/index.js +816 -75
- package/dist/index.js.map +7 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/notifications/index.d.ts +6 -6
- package/dist/overlays/runtime/index.d.ts +3 -3
- package/dist/overlays/runtime/overlay/root.d.ts +17 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
- package/dist/react.js +90 -134
- package/dist/react.js.map +7 -1
- package/dist/render/RenderContext.d.ts +2 -2
- package/dist/render/index.d.ts +2 -2
- package/dist/render/types.d.ts +2 -2
- package/dist/runtime.d.ts +8 -8
- package/dist/smart-canvas.esm.js +127 -124
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +17160 -16782
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +127 -124
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +1 -1
- package/dist/state/helpers/cooldowns.d.ts +1 -1
- package/dist/state/helpers/dismissals.d.ts +1 -1
- package/dist/state/helpers/frequency.d.ts +1 -1
- package/dist/state/index.d.ts +3 -3
- package/dist/surfaces/index.d.ts +3 -3
- package/dist/surfaces/positioning.d.ts +1 -1
- package/dist/telemetry/adapters/posthog.d.ts +2 -2
- package/dist/telemetry/index.d.ts +3 -3
- package/dist/telemetry/registry.d.ts +1 -1
- package/dist/theme/ThemeProvider.d.ts +1 -1
- package/dist/theme/extractHostTheme.d.ts +1 -1
- package/dist/theme/index.d.ts +4 -4
- package/dist/types-only.d.ts +1 -1
- package/dist/types-only.js +1 -11
- package/dist/types-only.js.map +7 -1
- package/dist/types.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/widgets/index.d.ts +1 -1
- package/package.json +24 -17
- package/schema/canvas-config.base.schema.json +351 -0
- package/schema/canvas-config.schema.json +3202 -440
- package/scripts/validate-config.mjs +54 -58
- package/dist/RuntimeProvider.js +0 -113
- package/dist/RuntimeProvider.js.map +0 -1
- package/dist/SmartCanvasApp.js +0 -143
- package/dist/SmartCanvasApp.js.map +0 -1
- package/dist/SmartCanvasElement.js +0 -138
- package/dist/SmartCanvasElement.js.map +0 -1
- package/dist/SmartCanvasPortal.js +0 -17
- package/dist/SmartCanvasPortal.js.map +0 -1
- package/dist/actions/ActionEngine.js +0 -272
- package/dist/actions/ActionEngine.js.map +0 -1
- package/dist/actions/executors/index.js +0 -240
- package/dist/actions/executors/index.js.map +0 -1
- package/dist/actions/executors/tour.js +0 -332
- package/dist/actions/executors/tour.js.map +0 -1
- package/dist/actions/index.js +0 -12
- package/dist/actions/index.js.map +0 -1
- package/dist/actions/types.js +0 -8
- package/dist/actions/types.js.map +0 -1
- package/dist/actions/validation.js +0 -577
- package/dist/actions/validation.js.map +0 -1
- package/dist/antiFlicker.js +0 -39
- package/dist/antiFlicker.js.map +0 -1
- package/dist/api.js +0 -205
- package/dist/api.js.map +0 -1
- package/dist/apps/AppContext.js +0 -91
- package/dist/apps/AppContext.js.map +0 -1
- package/dist/apps/AppLoader.js +0 -293
- package/dist/apps/AppLoader.js.map +0 -1
- package/dist/apps/AppRegistry.js +0 -317
- package/dist/apps/AppRegistry.js.map +0 -1
- package/dist/apps/examples/gamification-app.example.js +0 -329
- package/dist/apps/examples/gamification-app.example.js.map +0 -1
- package/dist/apps/index.js +0 -16
- package/dist/apps/index.js.map +0 -1
- package/dist/apps/types.js +0 -8
- package/dist/apps/types.js.map +0 -1
- package/dist/blocks/data/ComparisonBlock.js +0 -95
- package/dist/blocks/data/ComparisonBlock.js.map +0 -1
- package/dist/blocks/data/StatsBlock.js +0 -102
- package/dist/blocks/data/StatsBlock.js.map +0 -1
- package/dist/blocks/data/index.js +0 -3
- package/dist/blocks/data/index.js.map +0 -1
- package/dist/blocks/index.js +0 -93
- package/dist/blocks/index.js.map +0 -1
- package/dist/blocks/interactive/ChecklistBlock.js +0 -111
- package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
- package/dist/blocks/interactive/RatingBlock.js +0 -147
- package/dist/blocks/interactive/RatingBlock.js.map +0 -1
- package/dist/blocks/interactive/index.js +0 -3
- package/dist/blocks/interactive/index.js.map +0 -1
- package/dist/blocks/notification/NotificationBlock.js +0 -171
- package/dist/blocks/notification/NotificationBlock.js.map +0 -1
- package/dist/blocks/notification/index.js +0 -2
- package/dist/blocks/notification/index.js.map +0 -1
- package/dist/blocks/theme-tokens.js +0 -25
- package/dist/blocks/theme-tokens.js.map +0 -1
- package/dist/bootstrap.js +0 -448
- package/dist/bootstrap.js.map +0 -1
- package/dist/bundle-entry.js +0 -9
- package/dist/bundle-entry.js.map +0 -1
- package/dist/components/ShadowCanvasOverlay.js +0 -327
- package/dist/components/ShadowCanvasOverlay.js.map +0 -1
- package/dist/components/TileCard.js +0 -103
- package/dist/components/TileCard.js.map +0 -1
- package/dist/components/TileWheel.js +0 -50
- package/dist/components/TileWheel.js.map +0 -1
- package/dist/config-validator.js +0 -173
- package/dist/config-validator.js.map +0 -1
- package/dist/configFetcher.js +0 -131
- package/dist/configFetcher.js.map +0 -1
- package/dist/context/ContextManager.js +0 -269
- package/dist/context/ContextManager.js.map +0 -1
- package/dist/context/index.js +0 -7
- package/dist/context/index.js.map +0 -1
- package/dist/context/schema.js +0 -50
- package/dist/context/schema.js.map +0 -1
- package/dist/context/types.js +0 -8
- package/dist/context/types.js.map +0 -1
- package/dist/controller.js +0 -34
- package/dist/controller.js.map +0 -1
- package/dist/decisions/engine.js +0 -117
- package/dist/decisions/engine.js.map +0 -1
- package/dist/decisions/index.js +0 -10
- package/dist/decisions/index.js.map +0 -1
- package/dist/decisions/schema.js +0 -151
- package/dist/decisions/schema.js.map +0 -1
- package/dist/decisions/strategies/rules.js +0 -166
- package/dist/decisions/strategies/rules.js.map +0 -1
- package/dist/decisions/strategies/score.js +0 -29
- package/dist/decisions/strategies/score.js.map +0 -1
- package/dist/decisions/types.js +0 -2
- package/dist/decisions/types.js.map +0 -1
- package/dist/earlyPatcher.js +0 -20
- package/dist/earlyPatcher.js.map +0 -1
- package/dist/editorLoader.js +0 -254
- package/dist/editorLoader.js.map +0 -1
- package/dist/events/EventAccumulator.js +0 -101
- package/dist/events/EventAccumulator.js.map +0 -1
- package/dist/events/EventBus.js +0 -152
- package/dist/events/EventBus.js.map +0 -1
- package/dist/events/index.js +0 -11
- package/dist/events/index.js.map +0 -1
- package/dist/events/normalizers/canvas.js +0 -116
- package/dist/events/normalizers/canvas.js.map +0 -1
- package/dist/events/normalizers/posthog.js +0 -171
- package/dist/events/normalizers/posthog.js.map +0 -1
- package/dist/events/schema.js +0 -30
- package/dist/events/schema.js.map +0 -1
- package/dist/events/types.js +0 -54
- package/dist/events/types.js.map +0 -1
- package/dist/experiments/adapters/growthbook.js +0 -81
- package/dist/experiments/adapters/growthbook.js.map +0 -1
- package/dist/experiments/index.js +0 -4
- package/dist/experiments/index.js.map +0 -1
- package/dist/experiments/registry.js +0 -30
- package/dist/experiments/registry.js.map +0 -1
- package/dist/experiments/types.js +0 -2
- package/dist/experiments/types.js.map +0 -1
- package/dist/fetchers/cdnFetcher.js +0 -96
- package/dist/fetchers/cdnFetcher.js.map +0 -1
- package/dist/fetchers/experimentsFetcher.js +0 -109
- package/dist/fetchers/experimentsFetcher.js.map +0 -1
- package/dist/fetchers/index.js +0 -5
- package/dist/fetchers/index.js.map +0 -1
- package/dist/fetchers/mergeConfigs.js +0 -38
- package/dist/fetchers/mergeConfigs.js.map +0 -1
- package/dist/fetchers/registry.js +0 -58
- package/dist/fetchers/registry.js.map +0 -1
- package/dist/fetchers/types.js +0 -2
- package/dist/fetchers/types.js.map +0 -1
- package/dist/hooks/useCanvasOverlays.js +0 -128
- package/dist/hooks/useCanvasOverlays.js.map +0 -1
- package/dist/hooks/useHostPatches.js +0 -40
- package/dist/hooks/useHostPatches.js.map +0 -1
- package/dist/hooks/useShadowCanvasConfig.js +0 -63
- package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
- package/dist/hostPatcher/core/patcher.js +0 -181
- package/dist/hostPatcher/core/patcher.js.map +0 -1
- package/dist/hostPatcher/core/sanitizer.js +0 -66
- package/dist/hostPatcher/core/sanitizer.js.map +0 -1
- package/dist/hostPatcher/core/types.js +0 -2
- package/dist/hostPatcher/core/types.js.map +0 -1
- package/dist/hostPatcher/index.js +0 -7
- package/dist/hostPatcher/index.js.map +0 -1
- package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
- package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
- package/dist/hostPatcher/utils/anchors.js +0 -105
- package/dist/hostPatcher/utils/anchors.js.map +0 -1
- package/dist/hostPatcher/utils/observer.js +0 -11
- package/dist/hostPatcher/utils/observer.js.map +0 -1
- package/dist/logger.js +0 -81
- package/dist/logger.js.map +0 -1
- package/dist/metrics/index.js +0 -5
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/sessionMetrics.js +0 -178
- package/dist/metrics/sessionMetrics.js.map +0 -1
- package/dist/notifications/NotificationToastStack.js +0 -118
- package/dist/notifications/NotificationToastStack.js.map +0 -1
- package/dist/notifications/index.js +0 -6
- package/dist/notifications/index.js.map +0 -1
- package/dist/notifications/matcher.js +0 -66
- package/dist/notifications/matcher.js.map +0 -1
- package/dist/notifications/types.js +0 -13
- package/dist/notifications/types.js.map +0 -1
- package/dist/notifications/useNotifications.js +0 -104
- package/dist/notifications/useNotifications.js.map +0 -1
- package/dist/notifications/useNotifyWatcher.js +0 -62
- package/dist/notifications/useNotifyWatcher.js.map +0 -1
- package/dist/overlays/fetcher.js +0 -15
- package/dist/overlays/fetcher.js.map +0 -1
- package/dist/overlays/recipeRegistry.js +0 -32
- package/dist/overlays/recipeRegistry.js.map +0 -1
- package/dist/overlays/runtime/anchor/resolve.js +0 -87
- package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
- package/dist/overlays/runtime/index.js +0 -8
- package/dist/overlays/runtime/index.js.map +0 -1
- package/dist/overlays/runtime/overlay/highlight.js +0 -160
- package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
- package/dist/overlays/runtime/overlay/modal.js +0 -78
- package/dist/overlays/runtime/overlay/modal.js.map +0 -1
- package/dist/overlays/runtime/overlay/root.js +0 -297
- package/dist/overlays/runtime/overlay/root.js.map +0 -1
- package/dist/overlays/runtime/overlay/runner.js +0 -602
- package/dist/overlays/runtime/overlay/runner.js.map +0 -1
- package/dist/overlays/runtime/overlay/tooltip.js +0 -232
- package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
- package/dist/overlays/runtime/utils/dom.js +0 -12
- package/dist/overlays/runtime/utils/dom.js.map +0 -1
- package/dist/overlays/schema.js +0 -52
- package/dist/overlays/schema.js.map +0 -1
- package/dist/overlays/types.js +0 -2
- package/dist/overlays/types.js.map +0 -1
- package/dist/render/RenderContext.js +0 -69
- package/dist/render/RenderContext.js.map +0 -1
- package/dist/render/index.js +0 -3
- package/dist/render/index.js.map +0 -1
- package/dist/render/types.js +0 -2
- package/dist/render/types.js.map +0 -1
- package/dist/runtime.js +0 -237
- package/dist/runtime.js.map +0 -1
- package/dist/state/StateStore.js +0 -176
- package/dist/state/StateStore.js.map +0 -1
- package/dist/state/helpers/cooldowns.js +0 -31
- package/dist/state/helpers/cooldowns.js.map +0 -1
- package/dist/state/helpers/dismissals.js +0 -34
- package/dist/state/helpers/dismissals.js.map +0 -1
- package/dist/state/helpers/frequency.js +0 -43
- package/dist/state/helpers/frequency.js.map +0 -1
- package/dist/state/index.js +0 -7
- package/dist/state/index.js.map +0 -1
- package/dist/state/schema.js +0 -25
- package/dist/state/schema.js.map +0 -1
- package/dist/state/types.js +0 -9
- package/dist/state/types.js.map +0 -1
- package/dist/store/example.js +0 -43
- package/dist/store/example.js.map +0 -1
- package/dist/store/mini-effector.js +0 -88
- package/dist/store/mini-effector.js.map +0 -1
- package/dist/surfaces/Surfaces.js +0 -361
- package/dist/surfaces/Surfaces.js.map +0 -1
- package/dist/surfaces/index.js +0 -12
- package/dist/surfaces/index.js.map +0 -1
- package/dist/surfaces/positioning.js +0 -228
- package/dist/surfaces/positioning.js.map +0 -1
- package/dist/surfaces/types.js +0 -23
- package/dist/surfaces/types.js.map +0 -1
- package/dist/telemetry/adapters/noop.js +0 -42
- package/dist/telemetry/adapters/noop.js.map +0 -1
- package/dist/telemetry/adapters/posthog.js +0 -180
- package/dist/telemetry/adapters/posthog.js.map +0 -1
- package/dist/telemetry/index.js +0 -4
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/registry.js +0 -29
- package/dist/telemetry/registry.js.map +0 -1
- package/dist/telemetry/types.js +0 -2
- package/dist/telemetry/types.js.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -109
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/defaultTheme.js +0 -190
- package/dist/theme/defaultTheme.js.map +0 -1
- package/dist/theme/extractHostTheme.js +0 -259
- package/dist/theme/extractHostTheme.js.map +0 -1
- package/dist/theme/index.js +0 -7
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/types.js +0 -6
- package/dist/theme/types.js.map +0 -1
- package/dist/token.js +0 -44
- package/dist/token.js.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
- package/dist/version.js +0 -14
- package/dist/version.js.map +0 -1
- package/dist/widgets/WidgetRegistry.js +0 -190
- package/dist/widgets/WidgetRegistry.js.map +0 -1
- package/dist/widgets/index.js +0 -7
- package/dist/widgets/index.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
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};
|
|
1
|
+
function k(...e){return e.filter(Boolean).join(" ")}function Je(){return typeof SynOS<"u"&&SynOS.React||{}}function Ye(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=Ye,n=Ye,E=Je().Fragment;function T(){return typeof SynOS<"u"&&SynOS.React||{}}var so=new Proxy({},{get:function(e,t){return T()[t]}});function h(){return T().useState.apply(null,arguments)}function y(){return T().useEffect.apply(null,arguments)}function L(){return T().useCallback.apply(null,arguments)}function R(){return T().useRef.apply(null,arguments)}function G(){return T().createElement.apply(null,arguments)}function se(){return T().forwardRef.apply(null,arguments)}var W=T(),lo=W.Fragment,uo=W.Suspense,fo=W.Children,no=W.Component,io=W.PureComponent;function ea(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var po=new Proxy({},{get:function(e,t){return ea()[t]}});function le(){return ea().createPortal.apply(null,arguments)}function ue(e){return typeof e=="object"&&e!==null&&e.nodeType===Node.ELEMENT_NODE}var q={NONE:"",DESCENDANT:" ",CHILD:" > "},m={id:"id",class:"class",tag:"tag",attribute:"attribute",nthchild:"nthchild",nthoftype:"nthoftype"};function aa(e,t){return Object.values(e).includes(t)}var Xa="CssSelectorGenerator";function O(e="unknown problem",...t){console.warn(`${Xa}: ${e}`,...t)}var ja={selectors:[m.id,m.class,m.tag,m.attribute],includeTag:!1,whitelist:[],blacklist:[],combineWithinSelector:!0,combineBetweenSelectors:!0,root:null,maxCombinations:Number.POSITIVE_INFINITY,maxCandidates:Number.POSITIVE_INFINITY,useScope:!1};function Ka(e){return Array.isArray(e)?e.filter(t=>aa(m,t)):[]}function he(e){return e instanceof RegExp}function Za(e){return["string","function"].includes(typeof e)||he(e)}function ta(e){return Array.isArray(e)?e.filter(Za):[]}function Qa(e){return e instanceof Node}function oa(e){let t=[Node.DOCUMENT_NODE,Node.DOCUMENT_FRAGMENT_NODE,Node.ELEMENT_NODE];return Qa(e)&&t.includes(e.nodeType)}function Ce(e,t){if(oa(e))return e.contains(t)||O("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 oa(a)?(a!==document&&O("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):z(t)}function Ie(e){return typeof e=="number"?e:Number.POSITIVE_INFINITY}function ra(e,t={}){let a=Object.assign(Object.assign({},ja),t);return{selectors:Ka(a.selectors),whitelist:ta(a.whitelist),blacklist:ta(a.blacklist),root:Ce(a.root,e),combineWithinSelector:!!a.combineWithinSelector,combineBetweenSelectors:!!a.combineBetweenSelectors,includeTag:!!a.includeTag,maxCombinations:Ie(a.maxCombinations),maxCandidates:Ie(a.maxCandidates),useScope:!!a.useScope,maxResults:Ie(a.maxResults)}}function v(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 Ja(e){return e.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".+")}function V(e){let t=e.map(a=>{if(he(a))return o=>a.test(o);if(typeof a=="function")return o=>{let r=a(o);return typeof r!="boolean"?(O("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("^"+Ja(a)+"$");return r=>o.test(r)}return O("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 $(e,t,a){let o=Array.from(Ce(a,e[0]).querySelectorAll(t));return o.length===e.length&&e.every(r=>o.includes(r))}function ge(e,t){t=t??z(e);let a=[],o=e;for(;ue(o)&&o!==t;)a.push(o),o=o.parentElement;return a}function la(e,t){return v(e.map(a=>ge(a,t)))}function z(e){return e.ownerDocument.querySelector(":root")}var de=", ",ua=new RegExp(["^$","\\s"].join("|")),da=new RegExp(["^$"].join("|")),fe=[m.nthoftype,m.tag,m.id,m.class,m.attribute,m.nthchild];var Ya=V(["class","id","ng-*"]);function et({name:e}){return`[${e}]`}function at({name:e,value:t}){return`[${e}='${t}']`}function tt({nodeName:e,nodeValue:t},a){let o=a.tagName.toLowerCase();return["input","option"].includes(o)&&e==="value"||e==="src"&&t?.startsWith("data:")?!1:!Ya(e)}function ot({nodeName:e,nodeValue:t}){return{name:D(e),value:D(t??void 0)}}function Se(e){let t=Array.from(e.attributes).filter(a=>tt(a,e)).map(ot);return[...t.map(et),...t.map(at)]}function fa(e){let t=e.map(Se);return v(t)}function we(e){var t;return((t=e.getAttribute("class"))!==null&&t!==void 0?t:"").trim().split(/\s+/).filter(a=>!da.test(a)).map(a=>`.${D(a)}`)}function na(e){let t=e.map(we);return v(t)}function ke(e){var t;let a=(t=e.getAttribute("id"))!==null&&t!==void 0?t:"",o=`#${D(a)}`,r=e.getRootNode({composed:!1});return!ua.test(a)&&$([e],o,r)?[o]:[]}function ia(e){return e.length===0||e.length>1?[]:ke(e[0])}function be(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 ca(e){return v(e.map(be))}function ye(e){return[D(e.tagName.toLowerCase())]}function ne(e){let t=[...new Set(sa(e.map(ye)))];return t.length===0||t.length>1?[]:[t[0]]}function Pe(e){let t=ne([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 pa(e){return v(e.map(Pe))}function*Me(e=[],{maxResults:t=Number.POSITIVE_INFINITY}={}){let a=0,o=Ae(1);for(;o.length<=e.length&&a<t;)a+=1,yield o.map(s=>e[s]),o=rt(o,e.length-1)}function ma(e=[],{maxResults:t=Number.POSITIVE_INFINITY}={}){return Array.from(Me(e,{maxResults:t}))}function rt(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 Ae(a+1);o[r-1]++,o[r]=o[r-1]+1}return o[a-1]>t?Ae(a+1):o}function Ae(e=1){return Array.from(Array(e).keys())}function*La(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 st="3a".toUpperCase(),lt=/[ !"#$%&'()\[\]{|}<>*+,./;=?@^`~\\]/;function D(e=""){return CSS?CSS.escape(e):ut(e)}function ut(e=""){return e.split("").map(t=>t===":"?`\\${st} `:lt.test(t)?`\\${t}`:escape(t).replace(/%/g,"\\")).join("")}var dt={tag:ne,id:ia,class:na,attribute:fa,nthchild:ca,nthoftype:pa},ft={tag:ye,id:ke,class:we,attribute:Se,nthchild:be,nthoftype:Pe};function xa(e,t){return ft[t](e)}function nt(e,t){let a=dt[t];return a(e)}function it(e=[],t,a){return e.filter(o=>a(o)||!t(o))}function ct(e=[],t){return e.sort((a,o)=>{let r=t(a),s=t(o);return r&&!s?-1:!r&&s?1:0})}function*pt(e,t){let a=new Set,o=mt(e,t);for(let r of ht(o,t))a.has(r)||(a.add(r),yield r)}function mt(e,t){let{blacklist:a,whitelist:o,combineWithinSelector:r,maxCombinations:s}=t,u=V(a),f=V(o),c=(C,p)=>{let S=nt(e,p),I=it(S,u,f),g=ct(I,f);return C[p]=r?Array.from(Me(g,{maxResults:s})):g.map(P=>[P]),C};return Lt(t).reduce(c,{})}function Lt(e){let{selectors:t,includeTag:a}=e,o=[...t];return a&&!o.includes("tag")&&o.push("tag"),o}function xt(e){return e.includes(m.tag)||e.includes(m.nthoftype)?[...e]:[...e,m.tag]}function It(e){let{selectors:t,combineBetweenSelectors:a,includeTag:o,maxCandidates:r}=e,s=a?ma(t,{maxResults:r}):t.map(u=>[u]);return o?s.map(xt):s}function*ht(e,t){for(let a of It(t))yield*Ct(a,e)}function*Ct(e,t){let a={};for(let o of e){let r=t[o];r&&r.length>0&&(a[o]=r)}for(let o of La(a))yield St(o)}function gt(e,t){return t[e]?t[e].join(""):""}function St(e={}){let t=[...fe];return e[m.tag]&&e[m.nthoftype]&&t.splice(t.indexOf(m.tag),1),t.map(a=>gt(a,e)).join("")}function wt(e,t){return[...e.map(a=>t+q.DESCENDANT+a),...e.map(a=>t+q.CHILD+a)]}function*kt(e,t){if(t==="")yield*e;else for(let a of e)yield*wt([a],t)}function*bt(e,t,a="",o){let r=pt(e,o);for(let s of kt(r,a))$(e,s,t)&&(yield s)}function*yt(e,t,a="",o){if(e.length===0)return null;let r=[e.length>1?e:[],...la(e,t).map(s=>[s])];for(let s of r)for(let u of bt(s,t,a,o))yield{foundElements:s,selector:u}}function*Ia({elements:e,root:t,rootSelector:a="",options:o}){let r=t,s=a,u=!0;for(;u;){let f=!1;for(let c of yt(e,r,s,o)){let{foundElements:C,selector:p}=c;if(f=!0,$(e,p,t))yield p;else{r=C[0],s=p;break}}f||(u=!1)}}function ha(e){(e instanceof NodeList||e instanceof HTMLCollection)&&(e=Array.from(e));let t=(Array.isArray(e)?e:[e]).filter(ue);return[...new Set(t)]}function Pt(e){return{value:e,include:!1}}function Ca(e,t,a=q.NONE){let o={};return t.forEach(r=>{Reflect.set(o,r,xa(e,r).map(Pt))}),{element:e,operator:a,selectors:o}}function ga({selectors:e,operator:t}){let a=[...fe];e[m.tag]&&e[m.nthoftype]&&(a=a.filter(r=>r!==m.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 At(e,t){let o=ge(e,t).reverse().map(r=>{var s;let u=Ca(r,[m.nthchild],q.CHILD);return((s=u.selectors.nthchild)!==null&&s!==void 0?s:[]).forEach(f=>{f.include=!0}),u});return[t?":scope":":root",...o.map(ga)].join("")}function Sa(e,t){return e.map(a=>At(a,t)).join(de)}function ve(e,t={}){let a=Object.assign(Object.assign({},t),{maxResults:1});return Mt(e,a).next().value}function*Mt(e,t={}){var a;let o=ha(e),r=ra(o[0],t),s=(a=r.root)!==null&&a!==void 0?a:z(o[0]),u=0;for(let f of Ia({elements:o,options:r,root:s,rootSelector:""}))if(yield f,u++,u>=r.maxResults)return;o.length>1&&(yield o.map(f=>ve(f,r)).join(de),u++,u>=r.maxResults)||(yield Sa(o,r.useScope?s:void 0))}var vt={includeTag:!0,preferTestIds:!0,maxCombinations:100};function ie(e,t={}){let a={...vt,...t},o=[];o.push("id"),a.preferTestIds&&o.push("attribute"),o.push("class"),o.push("tag"),o.push("nthchild"),o.push("nthoftype");try{return ve(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),Bt(e)}}function Bt(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 Be(e,t){try{return document.querySelector(e)===t}catch{return!1}}function _(e){let t=e.tagName.toLowerCase(),a=e.id?`#${e.id}`:"",o=e.className&&typeof e.className=="string"?`.${e.className.split(" ").filter(u=>u&&!Rt(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 Rt(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 Dt="#3b82f6",Tt="rgba(59, 130, 246, 0.1)";function ce({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]=h(null),[u,f]=h(""),c=R(null),C=L(g=>{let P=c.current;P&&(P.style.pointerEvents="none");let M=document.elementFromPoint(g.clientX,g.clientY);if(P&&(P.style.pointerEvents="auto"),!M){s(null),f("");return}if(o&&M.closest(o)){s(null),f("");return}if(["HTML","BODY","HEAD"].includes(M.tagName)){s(null),f("");return}s(M);let te=ie(M);f(te)},[o]),p=L(g=>{if(g.preventDefault(),g.stopPropagation(),r&&u)if(Be(u,r))t({element:r,selector:u,description:_(r)});else{let P=ie(r);t({element:r,selector:P,description:_(r)})}},[r,u,t]),S=L(g=>{g.key==="Escape"&&(g.preventDefault(),a())},[a]);if(y(()=>{if(e)return document.addEventListener("mousemove",C,!0),document.addEventListener("click",p,!0),document.addEventListener("keydown",S,!0),()=>{document.removeEventListener("mousemove",C,!0),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",S,!0)}},[e,C,p,S]),!e)return null;let I=r?.getBoundingClientRect();return le(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&&I&&l("div",{style:{position:"fixed",left:I.left-2,top:I.top-2,width:I.width+4,height:I.height+4,border:`2px solid ${Dt}`,backgroundColor:Tt,borderRadius:"4px",boxShadow:"0 0 0 9999px rgba(0, 0, 0, 0.15)",pointerEvents:"none",transition:"all 0.1s ease-out"}}),r&&I&&n("div",{style:{position:"fixed",left:Math.max(8,Math.min(I.left,window.innerWidth-320)),top:Math.max(8,I.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:_(r)})]})]}),document.body)}var wa=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ft=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,o)=>o?o.toUpperCase():a.toLowerCase()),Re=e=>{let t=Ft(e);return t.charAt(0).toUpperCase()+t.slice(1)},pe=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim(),ka=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var ba={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 ya=se(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:u,...f},c)=>G("svg",{ref:c,...ba,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:pe("lucide",r),...!s&&!ka(f)&&{"aria-hidden":"true"},...f},[...u.map(([C,p])=>G(C,p)),...Array.isArray(s)?s:[s]]));var A=(e,t)=>{let a=se(({className:o,...r},s)=>G(ya,{ref:s,iconNode:t,className:pe(`lucide-${wa(Re(e))}`,`lucide-${e}`,o),...r}));return a.displayName=Re(e),a};var qt=[["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"}]],X=A("file-code",qt);var Et=[["path",{d:"M5 12h14",key:"1ays0h"}]],j=A("minus",Et);var Ot=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["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:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],K=A("palette",Ot);var Ht=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Z=A("plus",Ht);var Ut=[["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"}]],Q=A("tag",Ut);var Nt=[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]],J=A("type",Nt);function De({found:e}){return l("span",{className:k("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 Te({count:e,children:t}){let[a,o]=h(!1);return n("div",{className:"se-mt-4 se-cursor-pointer se-select-none",children:[n("div",{role:"button",tabIndex:0,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),onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&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 Fe({children:e}){return l("div",{className:"se-flex-1 se-overflow-auto se-p-6",children:e})}function qe({children:e,itemKey:t,onClick:a,onMouseEnter:o,onMouseLeave:r,className:s,validated:u}){return l("div",{"data-item-key":t,onClick:a,onMouseEnter:o,onMouseLeave:r,className:k("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",u?"se-border-green-4/40 se-shadow-glow-green":"se-border-border-primary",a&&"se-cursor-pointer hover:se-border-border-primary/80 hover:se-bg-sidebar-hover se-transition-colors",s),children:e})}function Ee({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-h-10 se-px-4 se-py-2 se-rounded-md se-bg-btn-neutral se-text-btn-neutral-text se-border se-border-btn-neutral-border hover:se-text-btn-neutral-text-hover se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center focus-visible:se-shadow-focus-primary focus-visible:se-outline-none",children:"Save Draft"}),l("button",{onClick:t,className:"se-flex-1 se-h-10 se-px-4 se-py-2 se-rounded-md se-border-none se-bg-btn-primary se-text-btn-primary-text hover:se-bg-btn-primary-hover se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center focus-visible:se-shadow-focus-primary focus-visible:se-outline-none",children:"Publish"})]})}function Oe({title:e,subtitle:t}){return n("div",{className:"se-px-4 se-pt-3 se-pb-2",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 Y({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:k("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 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-shadow-focus-primary","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t)})]})}function He({children:e}){return l("div",{className:"se-flex se-flex-col se-h-full se-font-sans",children:e})}function Ue({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:k("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-mb-2","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-shadow-focus-primary","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t),children:a})]})}function ee({label:e,className:t,value:a,...o}){let r=R(null);return y(()=>{let s=r.current;s&&(s.style.height="auto",s.style.height=`${s.scrollHeight}px`)},[a]),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",{ref:r,value:a,...o,className:k("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-max-h-[50vh] se-overflow-y-auto se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-shadow-focus-primary","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",t)})]})}function Ne({message:e}){return l("div",{className:"se-text-center se-py-8 se-px-4 se-text-text-secondary se-text-sm",children:e})}function Ge({label:e,count:t,className:a}){return n("div",{className:k("se-text-xs se-font-bold se-text-text-primary 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-secondary se-bg-badge-slate-bg se-px-1.5 se-py-0.5 se-rounded-lg",children:t})]})}function zt(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=zt(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 Vt(e){let[t,a]=e.split(":");return{section:t,index:Number(a)}}var $e={textReplacements:J,attributeChanges:Q,styleChanges:K,htmlInsertions:X,classAdditions:Z,classRemovals:j};function We({section:e,className:t}){let a=$e[e];return l(a,{size:16,className:t})}function ze(e){let t=[],a=Object.keys($e);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 Ve(e,t){let a={...e},o=Object.keys($e);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 $t(e){let[t,a]=h(new Map),o=R(e);return o.current=e,y(()=>{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 _t({config:e,onChange:t,editor:a}){let o=e,[r,s]=h(()=>a.getDismissedKeys?.()??new Set),[u,f]=h(null),[c,C]=h("after");y(()=>{a.setDismissedKeys?.(r)},[r,a]);let[p,S]=h(null),[I,g]=h(""),[P,M]=h(""),[te,oe]=h("");y(()=>{let d=a.previewMode;if(d)if(d==="before"){let i=new Set(ze(o).map(b=>b.key)),x=Ve(o,i);a.previewConfig(x)}else a.previewConfig(e)},[a.previewMode]);let re=R(!1);y(()=>{if(a.initialEditKey!=null&&!re.current){re.current=!0;let d=ze(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&&!re.current&&(re.current=!0,S("form"),a.clearInitialState?.())},[a,o]);let H=ze(o),U=H.filter(d=>!r.has(d.key)),me=H.filter(d=>r.has(d.key)),Le=U.length,[eo,Ke]=h(null),Ze=$t(H),Ra=U.filter(d=>Ze.get(d.key)?.found).length,Da=L(d=>{s(i=>{let x=new Set(i);return x.add(d),x}),u===d&&f(null)},[u]),Ta=L(d=>{s(i=>{let x=new Set(i);return x.delete(d),x})},[]),Fa=L(d=>{d.anchorId&&a.highlightElement(d.anchorId),f(d.key)},[a]),xe=L(()=>{f(null),C("after"),a.previewConfig(e),a.clearHighlight()},[a,e]);y(()=>(a.setBackHandler?.(u!==null?xe:null),()=>a.setBackHandler?.(null)),[u,xe,a]);let ao=L(d=>{if(C(d),d==="before"){let i=Ve(o,new Set([u]));a.previewConfig(i)}else a.previewConfig(e)},[o,u,a,e]),F=L((d,i,x,b)=>{let B=(o[d]||[]).slice(),w={...B[i]};w[x]=b,B[i]=w;let N={...o,[d]:B};t(N),a.setDirty(!0)},[o,t,a]),qa=L(()=>{if(r.size>0){let d=Ve(o,r);t(d)}a.publish()},[r,o,t,a]),Ea=L(d=>{Ke(d.key),d.anchorId&&a.highlightElement(d.anchorId)},[a]),Oa=L(()=>{Ke(null),a.clearHighlight()},[a]),Ha=L(()=>{f(null),a.clearHighlight(),g(""),M(""),oe(""),S("form")},[a]),Ua=L(d=>{g(d.selector),oe(d.description);let i=d.element.textContent?.trim()||"";M(i),S("form"),a.highlightElement(d.selector)},[a]),Qe=L(()=>{S(null),g(""),M(""),oe(""),a.clearHighlight()},[a]),Na=L(()=>{if(!I)return;let d=o.textReplacements||[],i={anchorId:I,text:P,summary:`Set text on ${I}`},x={...o,textReplacements:[...d,i]};t(x),a.setDirty(!0),S(null),g(""),M(""),oe(""),a.clearHighlight()},[I,P,o,t,a]),Ga=(d,i)=>{let b=(o[d]||[])[i];if(!b)return null;let B=b.anchorId||"";switch(d){case"textReplacements":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-sm se-font-mono se-text-text-secondary se-py-1 se-px-2 se-bg-slate-grey-3 se-rounded-lg se-mb-3",children:B}),l(ee,{label:"Text",value:b.text||"",onChange:w=>F(d,i,"text",w.target.value)})]});case"attributeChanges":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-sm se-font-mono se-text-text-secondary se-py-1 se-px-2 se-bg-slate-grey-3 se-rounded-lg se-mb-3",children:B}),l(Y,{label:"Attribute",value:b.attr||"",onChange:w=>F(d,i,"attr",w.target.value)}),l(Y,{label:"Value",value:b.value||"",onChange:w=>F(d,i,"value",w.target.value)})]});case"styleChanges":{let w=b.styles||{};return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-sm se-font-mono se-text-text-secondary se-py-1 se-px-2 se-bg-slate-grey-3 se-rounded-lg 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(w).map(([N,Va])=>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-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-font-[inherit] se-box-border",value:N,readOnly:!0}),l("input",{className:"se-flex-1 se-py-1.5 se-px-2 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-font-[inherit] se-box-border",value:Va,onChange:$a=>{let _a={...w,[N]:$a.target.value};F(d,i,"styles",_a)}})]},N))]})}case"htmlInsertions":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-sm se-font-mono se-text-text-secondary se-py-1 se-px-2 se-bg-slate-grey-3 se-rounded-lg se-mb-3",children:B}),n(Ue,{label:"Position",value:b.position||"after",onChange:w=>F(d,i,"position",w.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(ee,{label:"HTML",value:b.html||"",onChange:w=>F(d,i,"html",w.target.value),className:"se-font-mono"})]});case"classAdditions":case"classRemovals":return n("div",{className:"se-py-1",children:[l("div",{className:"se-text-sm se-font-mono se-text-text-secondary se-py-1 se-px-2 se-bg-slate-grey-3 se-rounded-lg se-mb-3",children:B}),l(Y,{label:"Class Name",value:b.className||"",onChange:w=>F(d,i,"className",w.target.value)})]});default:return null}},Wa=p==="form"||p==="picking"?"Add Text Change":"Content",za=p==="picking"?"Click an element on the page to select it. Press ESC to go back.":p==="form"?"Pick an element and set its new text":`${Le} change${Le!==1?"s":""}${Le>0?` (${Ra} found on this page)`:""}`;return n(He,{children:[l(Oe,{title:Wa,subtitle:za,onBack:()=>{p==="picking"?S("form"):p==="form"?Qe():u!==null?xe():a.navigateHome()}}),l(Fe,{children:p==="form"||p==="picking"?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("span",{className:"se-text-sm se-font-semibold se-text-text-primary se-uppercase se-tracking-wide",children:"Target Element"}),I?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-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-overflow-hidden se-text-ellipsis se-whitespace-nowrap",children:I}),l("button",{type:"button",onClick:()=>S("picking"),className:"se-py-1.5 se-px-3 se-rounded-lg se-border se-border-btn-neutral-border se-bg-btn-neutral se-text-btn-neutral-text se-text-sm se-cursor-pointer se-shrink-0 hover:se-text-btn-neutral-text-hover",children:"Re-pick"})]}):l("button",{type:"button",onClick:()=>S("picking"),className:"se-w-full se-h-12 se-px-4 se-py-2 se-rounded-lg se-border-2 se-border-dashed se-border-btn-primary/30 se-bg-btn-primary/5 se-text-btn-primary se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center se-gap-2 hover:se-bg-btn-primary/10 hover:se-border-btn-primary/50",children:"+ Pick Target Element"}),te&&l("span",{className:"se-text-sm se-text-text-secondary",children:te})]}),n("div",{className:"se-flex se-flex-col se-gap-1.5",children:[l("span",{className:"se-text-sm se-font-semibold se-text-text-primary se-uppercase se-tracking-wide",children:"Text Content"}),l(ee,{value:P,onChange:d=>M(d.target.value)})]}),n("div",{className:"se-flex se-gap-2 se-mt-2",children:[l("button",{type:"button",onClick:Qe,className:"se-flex-1 se-h-10 se-px-4 se-py-2 se-rounded-md se-border se-border-btn-neutral-border se-bg-btn-neutral se-text-btn-neutral-text se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center hover:se-text-btn-neutral-text-hover",children:"Cancel"}),l("button",{type:"button",onClick:Na,disabled:!I,className:"se-flex-1 se-h-10 se-px-4 se-py-2 se-rounded-md se-border-none se-bg-btn-primary se-text-btn-primary-text se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center hover:se-bg-btn-primary-hover disabled:se-opacity-50 disabled:se-pointer-events-none",children:"Add Change"})]})]}):u!==null?(()=>{let d=Vt(u),i=H.find(x=>x.key===u);return n(E,{children:[n("div",{className:"se-flex se-items-center se-gap-2 se-mb-3 se-text-lg se-font-semibold se-text-text-primary",children:[l("span",{children:i&&l(We,{section:i.section})}),l("span",{children:i?.summary})]}),Ga(d.section,d.index)]})})():n(E,{children:[l("button",{type:"button",onClick:Ha,className:"se-w-full se-h-10 se-px-4 se-py-2 se-rounded-md se-border se-border-dashed se-border-btn-primary/30 se-bg-btn-primary/5 se-text-btn-primary se-text-sm se-font-medium se-cursor-pointer se-flex se-items-center se-justify-center se-gap-2 se-mb-3",children:"+ Add Text Change"}),H.length===0&&l(Ne,{message:"No content changes configured. Click above to add one."}),U.length>0&&n(E,{children:[l(Ge,{label:"CONTENT",count:U.length}),U.map(d=>{let i=Ze.get(d.key);return n(qe,{itemKey:d.key,onClick:()=>Fa(d),className:"se-flex se-items-center se-gap-2",onMouseEnter:()=>Ea(d),onMouseLeave:Oa,children:[l(De,{found:i?.found??!1}),l("span",{className:"se-shrink-0 se-flex se-items-center -se-ml-1",children:l(We,{section:d.section})}),l("span",{className:"se-flex-1 se-overflow-hidden se-text-ellipsis se-whitespace-nowrap",children:d.summary}),l("button",{type:"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(),Da(d.key)},title:"Dismiss this change",children:"\xD7"})]},d.key)})]}),me.length>0&&l(Te,{count:me.length,children:me.map(d=>n("div",{className:"se-flex se-items-center se-gap-2 se-py-1.5 se-px-2.5 se-rounded-lg se-border se-border-white/[0.03] se-bg-transparent se-mb-0.5 se-cursor-pointer se-text-sm se-text-text-tertiary se-opacity-60",children:[l("span",{className:"se-shrink-0 se-flex se-items-center -se-ml-1",children:l(We,{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",{type:"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(),Ta(d.key)},children:"Restore"})]},d.key))})]})}),l(Ee,{onSave:()=>a.save(),onPublish:qa}),l(ce,{isActive:p==="picking",onPick:Ua,onCancel:()=>S("form")})]})}var _e={panel:{title:"Content",icon:"\u{1F4DD}",description:"Text and attribute modifications"},component:_t},tu=_e.panel;var Xt=new Set(["b","strong","i","em","u","span","div","p","br","ul","ol","li","code","pre","small","sup","sub","a","button"]);function Xe(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(!Xt.has(f)){s.push(u);continue}for(let c of Array.from(u.attributes)){let C=c.name.toLowerCase(),p=c.value.trim().toLowerCase(),S=C.startsWith("on"),g=(C==="href"||C==="src"||C==="formaction")&&(p.startsWith("javascript:")||p.startsWith("vbscript:")||p.startsWith("data:text/html"));(S||g)&&u.removeAttribute(c.name)}}for(let u of s){for(;u.firstChild;)u.parentNode?.insertBefore(u.firstChild,u);u.remove()}return a.innerHTML}var jt=async(e,t)=>{let a=t.resolveAnchor(e.anchorId);if(!a)throw new Error(`Anchor not found: ${e.anchorId}`);let o=Xe(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=Xe(u.html))}}},Kt=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)}}},Zt=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)}}},Qt=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)}}},Jt=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)}}},Yt=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)}}},je=[{kind:"content:insertHtml",executor:jt},{kind:"content:setText",executor:Kt},{kind:"content:setAttr",executor:Zt},{kind:"content:addClass",executor:Qt},{kind:"content:removeClass",executor:Jt},{kind:"content:setStyle",executor:Yt}],ae={id:"adaptive-content",version:"1.0.0",name:"Content",description:"DOM manipulation for text, attributes, and styles",executors:je};var Ba={id:ae.id,version:ae.version,name:ae.name,description:ae.description,runtime:{actions:je.map(({kind:e,executor:t})=>({kind:e,executor:t}))},editor:_e,metadata:{isBuiltIn:!0}};if(typeof window<"u"){let e=window.SynOS?.appRegistry;e&&typeof e.register=="function"&&e.register(Ba)}var nu=Ba;export{nu as default,Ba as manifest};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lucide-react/dist/esm/shared/src/utils.js:
|
|
@@ -13,7 +13,7 @@ lucide-react/dist/esm/icons/tag.js:
|
|
|
13
13
|
lucide-react/dist/esm/icons/type.js:
|
|
14
14
|
lucide-react/dist/esm/lucide-react.js:
|
|
15
15
|
(**
|
|
16
|
-
* @license lucide-react v0.
|
|
16
|
+
* @license lucide-react v0.539.0 - ISC
|
|
17
17
|
*
|
|
18
18
|
* This source code is licensed under the ISC license.
|
|
19
19
|
* See the LICENSE file in the root directory of this source tree.
|