@agent-native/core 0.80.0 → 0.80.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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +8 -0
- package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +14 -1
- package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +15 -1
- package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +15 -1
- package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +15 -1
- package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +15 -1
- package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +16 -1
- package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +14 -1
- package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +14 -1
- package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +14 -1
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +14 -1
- package/corpus/core/docs/content/skills-guide.mdx +5 -0
- package/corpus/core/docs/content/template-design.mdx +14 -1
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/application-state/handlers.ts +1 -1
- package/corpus/core/src/brand-kit/index.ts +1 -1
- package/corpus/core/src/cli/skills.ts +18 -0
- package/corpus/core/src/client/AgentPanel.tsx +1 -1
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +1 -1
- package/corpus/core/src/client/extensions/portable-extension.ts +1 -1
- package/corpus/core/src/code-agents/transcript-normalizer.ts +1 -1
- package/corpus/core/src/extensions/path.ts +1 -4
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +1 -1
- package/corpus/core/src/mcp/build-server.ts +1 -1
- package/corpus/core/src/org/handlers.ts +5 -5
- package/corpus/core/src/org/plugin.ts +2 -2
- package/corpus/core/src/scripts/call-agent.ts +1 -1
- package/corpus/core/src/scripts/db/safety.ts +1 -1
- package/corpus/core/src/server/auth.ts +3 -0
- package/corpus/core/src/server/builder-design-systems.ts +308 -0
- package/corpus/core/src/server/core-routes-plugin.ts +29 -3
- package/corpus/core/src/server/index.ts +8 -0
- package/corpus/core/src/styles/agent-native.css +14 -7
- package/corpus/core/src/usage/store.ts +2 -2
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +298 -15
- package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -4
- package/corpus/templates/analytics/actions/mutate-dashboard.ts +18 -2
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +12 -2
- package/corpus/templates/analytics/app/hooks/use-replay-storage-status.ts +66 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +37 -0
- package/corpus/templates/analytics/app/i18n-data.ts +404 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +333 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +121 -3
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +49 -26
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +137 -36
- package/corpus/templates/analytics/changelog/2026-06-29-analytics-agents-can-now-place-new-charts-into-requested-das.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-analytics-queries-now-report-failed-source-query-errors-inst.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-charts-can-now-be-dropped-between-full-dashboard-rows-to-cre.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-dashboard-email-reports-include-the-full-dashboard-image-wit.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-main-surface-border-reaches-the-top.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-session-replay-now-records-playable-sessions-in-production-a.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-29-set-up-session-replay-storage-from-settings-connect-builder-.md +6 -0
- package/corpus/templates/analytics/scripts/cleanup-empty-session-recordings.ts +102 -0
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +49 -26
- package/corpus/templates/analytics/server/lib/real-data-actions.ts +81 -20
- package/corpus/templates/analytics/server/lib/replay-storage.ts +79 -0
- package/corpus/templates/analytics/server/lib/s3-upload-provider.ts +255 -0
- package/corpus/templates/analytics/server/lib/session-replay.ts +29 -8
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +11 -2
- package/corpus/templates/analytics/server/plugins/onboarding.ts +97 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +24 -0
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +105 -5
- package/corpus/templates/content/actions/set-image-alt-text.ts +1 -1
- package/corpus/templates/content/shared/document-export.ts +1 -1
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +8 -18
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +17 -0
- package/corpus/templates/design/actions/add-localhost-screens.ts +32 -5
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +259 -0
- package/corpus/templates/design/actions/update-file.ts +9 -2
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +33 -75
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +72 -9
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +41 -39
- package/corpus/templates/design/app/components/design/EditPanel.tsx +1029 -249
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +450 -101
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +978 -154
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +7 -9
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +133 -66
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +1234 -344
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +144 -94
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +301 -72
- package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +876 -286
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +601 -0
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +242 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +30 -7
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +212 -155
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +423 -0
- package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +487 -107
- package/corpus/templates/design/app/components/design/inspector/index.ts +27 -0
- package/corpus/templates/design/app/global.css +29 -3
- package/corpus/templates/design/app/i18n/zh-TW.ts +13 -0
- package/corpus/templates/design/app/i18n-data.ts +239 -1
- package/corpus/templates/design/app/pages/DesignEditor.tsx +1023 -353
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +57 -221
- package/corpus/templates/design/changelog/2026-06-29-canvas-selection-no-longer-flashes-broken-prototype-html-whe.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-command-menu-selections-are-clearer-in-dark-mode.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-mode-top-chrome-now-groups-collaborators-preview-shar.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-element-selection-now-stays-on-the-intended-layer-after-sele.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-full-view-controls-now-sit-above-frames-inst.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-screen-overview-tools-can-draw-shapes-create-screens-and-kee.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-the-pen-tool-now-creates-anchor-based-bezier-vectors-with-ha.md +6 -0
- package/corpus/templates/design/server/handlers/import-figma-system.ts +38 -85
- package/corpus/templates/design/server/lib/design-snapshot.ts +9 -1
- package/corpus/templates/design/shared/code-layer.ts +209 -9
- package/corpus/templates/design/shared/html-content.ts +21 -0
- package/corpus/templates/design/shared/pen-path.ts +207 -0
- package/corpus/templates/mail/app/lib/utils.ts +2 -2
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -10
- package/corpus/templates/slides/AGENTS.md +3 -2
- package/corpus/templates/slides/actions/import-file.ts +26 -17
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +259 -0
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +35 -167
- package/corpus/templates/slides/app/components/design-system/fig-import-response.ts +9 -13
- package/corpus/templates/slides/app/context/DeckContext.tsx +1 -1
- package/corpus/templates/slides/app/i18n/ar-SA.ts +9 -37
- package/corpus/templates/slides/app/i18n/de-DE.ts +10 -25
- package/corpus/templates/slides/app/i18n/en-US.ts +9 -26
- package/corpus/templates/slides/app/i18n/es-ES.ts +10 -28
- package/corpus/templates/slides/app/i18n/fr-FR.ts +10 -28
- package/corpus/templates/slides/app/i18n/hi-IN.ts +9 -26
- package/corpus/templates/slides/app/i18n/ja-JP.ts +10 -22
- package/corpus/templates/slides/app/i18n/ko-KR.ts +9 -23
- package/corpus/templates/slides/app/i18n/pt-BR.ts +10 -28
- package/corpus/templates/slides/app/i18n/zh-CN.ts +9 -22
- package/corpus/templates/slides/app/i18n/zh-TW.ts +9 -22
- package/corpus/templates/slides/server/handlers/import-figma-system.ts +44 -12
- package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
- package/corpus/templates/videos/app/components/NewCompositionPopover.tsx +1 -1
- package/dist/application-state/handlers.js +1 -1
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/brand-kit/index.d.ts +1 -1
- package/dist/brand-kit/index.js +1 -1
- package/dist/brand-kit/index.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +18 -0
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/extensions/portable-extension.d.ts +1 -1
- package/dist/client/extensions/portable-extension.d.ts.map +1 -1
- package/dist/client/extensions/portable-extension.js.map +1 -1
- package/dist/code-agents/transcript-normalizer.js +1 -1
- package/dist/code-agents/transcript-normalizer.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/extensions/path.d.ts +1 -1
- package/dist/extensions/path.d.ts.map +1 -1
- package/dist/extensions/path.js.map +1 -1
- package/dist/integrations/a2a-continuation-processor.js +1 -1
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/mcp/build-server.d.ts +1 -1
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/org/handlers.js +5 -5
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/plugin.js +2 -2
- package/dist/org/plugin.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/scripts/call-agent.js +1 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/db/safety.js +1 -1
- package/dist/scripts/db/safety.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +3 -0
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-design-systems.d.ts +28 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -0
- package/dist/server/builder-design-systems.js +217 -0
- package/dist/server/builder-design-systems.js.map +1 -0
- package/dist/server/core-routes-plugin.d.ts +1 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +20 -3
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +14 -7
- package/dist/usage/store.js +2 -2
- package/dist/usage/store.js.map +1 -1
- package/docs/content/locales/ar-SA/skills-guide.mdx +5 -0
- package/docs/content/locales/ar-SA/template-design.mdx +14 -1
- package/docs/content/locales/de-DE/skills-guide.mdx +5 -0
- package/docs/content/locales/de-DE/template-design.mdx +15 -1
- package/docs/content/locales/es-ES/skills-guide.mdx +5 -0
- package/docs/content/locales/es-ES/template-design.mdx +15 -1
- package/docs/content/locales/fr-FR/skills-guide.mdx +5 -0
- package/docs/content/locales/fr-FR/template-design.mdx +15 -1
- package/docs/content/locales/hi-IN/skills-guide.mdx +5 -0
- package/docs/content/locales/hi-IN/template-design.mdx +15 -1
- package/docs/content/locales/ja-JP/skills-guide.mdx +5 -0
- package/docs/content/locales/ja-JP/template-design.mdx +16 -1
- package/docs/content/locales/ko-KR/skills-guide.mdx +5 -0
- package/docs/content/locales/ko-KR/template-design.mdx +14 -1
- package/docs/content/locales/pt-BR/skills-guide.mdx +5 -0
- package/docs/content/locales/pt-BR/template-design.mdx +14 -1
- package/docs/content/locales/zh-CN/skills-guide.mdx +5 -0
- package/docs/content/locales/zh-CN/template-design.mdx +14 -1
- package/docs/content/locales/zh-TW/skills-guide.mdx +5 -0
- package/docs/content/locales/zh-TW/template-design.mdx +14 -1
- package/docs/content/skills-guide.mdx +5 -0
- package/docs/content/template-design.mdx +14 -1
- package/package.json +1 -1
- package/corpus/templates/design/actions/import-figma-file.ts +0 -166
- package/corpus/templates/slides/server/lib/fig-design-system.ts +0 -110
|
@@ -606,6 +606,16 @@ const EDITOR_CHROME_BRIDGE_SCRIPT = `
|
|
|
606
606
|
return false;
|
|
607
607
|
}
|
|
608
608
|
|
|
609
|
+
function matchesExactSelectorList(el, selectors) {
|
|
610
|
+
if (!el || !selectors || selectors.length === 0) return false;
|
|
611
|
+
for (var i = 0; i < selectors.length; i += 1) {
|
|
612
|
+
try {
|
|
613
|
+
if (el.matches(selectors[i])) return true;
|
|
614
|
+
} catch (_err) {}
|
|
615
|
+
}
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
|
|
609
619
|
function isLayerInteractionBlocked(el) {
|
|
610
620
|
return matchesSelectorList(el, lockedSelectors) || matchesSelectorList(el, hiddenSelectors);
|
|
611
621
|
}
|
|
@@ -666,16 +676,30 @@ const EDITOR_CHROME_BRIDGE_SCRIPT = `
|
|
|
666
676
|
var currentMatch = null;
|
|
667
677
|
var nextMatch = null;
|
|
668
678
|
var matchedSelector = '';
|
|
679
|
+
var fallbackCurrentMatch = null;
|
|
680
|
+
var fallbackSelector = '';
|
|
669
681
|
for (var matchIndex = 0; matchIndex < activeCandidates.length; matchIndex += 1) {
|
|
670
682
|
try {
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
683
|
+
var currentCandidate = document.querySelector(activeCandidates[matchIndex]);
|
|
684
|
+
var nextCandidate = nextDoc.querySelector(activeCandidates[matchIndex]);
|
|
685
|
+
if (currentCandidate && !fallbackCurrentMatch) {
|
|
686
|
+
fallbackCurrentMatch = currentCandidate;
|
|
687
|
+
fallbackSelector = activeCandidates[matchIndex];
|
|
688
|
+
}
|
|
689
|
+
if (currentCandidate && nextCandidate) {
|
|
690
|
+
currentMatch = currentCandidate;
|
|
691
|
+
nextMatch = nextCandidate;
|
|
692
|
+
matchedSelector = activeCandidates[matchIndex];
|
|
693
|
+
break;
|
|
694
|
+
}
|
|
674
695
|
} catch (_err) {
|
|
675
|
-
|
|
676
|
-
|
|
696
|
+
// Keep trying later aliases; bridge selectors can differ between
|
|
697
|
+
// runtime and DOMParser passes.
|
|
677
698
|
}
|
|
678
|
-
|
|
699
|
+
}
|
|
700
|
+
if (!currentMatch && fallbackCurrentMatch) {
|
|
701
|
+
currentMatch = fallbackCurrentMatch;
|
|
702
|
+
matchedSelector = fallbackSelector;
|
|
679
703
|
}
|
|
680
704
|
if (
|
|
681
705
|
currentMatch &&
|
|
@@ -1018,7 +1042,13 @@ const EDITOR_CHROME_BRIDGE_SCRIPT = `
|
|
|
1018
1042
|
});
|
|
1019
1043
|
}
|
|
1020
1044
|
if (selector && candidates.indexOf(selector) === -1) candidates.push(selector);
|
|
1021
|
-
if (
|
|
1045
|
+
if (
|
|
1046
|
+
selectedEl &&
|
|
1047
|
+
document.documentElement.contains(selectedEl) &&
|
|
1048
|
+
(candidates.length === 0 || matchesExactSelectorList(selectedEl, candidates))
|
|
1049
|
+
) {
|
|
1050
|
+
return selectedEl;
|
|
1051
|
+
}
|
|
1022
1052
|
for (var i = 0; i < candidates.length; i += 1) {
|
|
1023
1053
|
try {
|
|
1024
1054
|
var match = document.querySelector(candidates[i]);
|
|
@@ -1739,7 +1769,12 @@ const EDITOR_CHROME_BRIDGE_SCRIPT = `
|
|
|
1739
1769
|
if (e.data.selector && candidates.indexOf(String(e.data.selector)) === -1) {
|
|
1740
1770
|
candidates.push(String(e.data.selector));
|
|
1741
1771
|
}
|
|
1742
|
-
var target =
|
|
1772
|
+
var target =
|
|
1773
|
+
selectedEl &&
|
|
1774
|
+
document.documentElement.contains(selectedEl) &&
|
|
1775
|
+
matchesExactSelectorList(selectedEl, candidates)
|
|
1776
|
+
? selectedEl
|
|
1777
|
+
: null;
|
|
1743
1778
|
for (var i = 0; i < candidates.length && !target; i += 1) {
|
|
1744
1779
|
try {
|
|
1745
1780
|
var matches = document.querySelectorAll(candidates[i]);
|
|
@@ -1758,7 +1793,35 @@ const EDITOR_CHROME_BRIDGE_SCRIPT = `
|
|
|
1758
1793
|
window.parent.postMessage({ type: 'element-select', payload: selectedInfo }, '*');
|
|
1759
1794
|
return;
|
|
1760
1795
|
}
|
|
1761
|
-
|
|
1796
|
+
if (e.data.type === 'hover-element') {
|
|
1797
|
+
var hoverCandidates = [];
|
|
1798
|
+
if (Array.isArray(e.data.selectorCandidates)) {
|
|
1799
|
+
e.data.selectorCandidates.forEach(function(selector) {
|
|
1800
|
+
if (typeof selector === 'string' && selector && hoverCandidates.indexOf(selector) === -1) {
|
|
1801
|
+
hoverCandidates.push(selector);
|
|
1802
|
+
}
|
|
1803
|
+
});
|
|
1804
|
+
}
|
|
1805
|
+
if (e.data.selector && hoverCandidates.indexOf(String(e.data.selector)) === -1) {
|
|
1806
|
+
hoverCandidates.push(String(e.data.selector));
|
|
1807
|
+
}
|
|
1808
|
+
if (hoverCandidates.length === 0) {
|
|
1809
|
+
hoveredEl = null;
|
|
1810
|
+
highlightOverlay.style.display = 'none';
|
|
1811
|
+
hideMeasurements();
|
|
1812
|
+
return;
|
|
1813
|
+
}
|
|
1814
|
+
var hoverTarget = findRuntimeTarget(String(e.data.selector || ''), hoverCandidates);
|
|
1815
|
+
hoveredEl = hoverTarget;
|
|
1816
|
+
if (hoveredEl && !isLayerInteractionBlocked(hoveredEl)) {
|
|
1817
|
+
positionOverlay(highlightOverlay, hoveredEl);
|
|
1818
|
+
} else {
|
|
1819
|
+
highlightOverlay.style.display = 'none';
|
|
1820
|
+
hideMeasurements();
|
|
1821
|
+
}
|
|
1822
|
+
return;
|
|
1823
|
+
}
|
|
1824
|
+
if (e.data.type === 'layer-states') {
|
|
1762
1825
|
lockedSelectors = Array.isArray(e.data.lockedSelectors) ? e.data.lockedSelectors.filter(function(item) { return typeof item === 'string'; }) : [];
|
|
1763
1826
|
hiddenSelectors = Array.isArray(e.data.hiddenSelectors) ? e.data.hiddenSelectors.filter(function(item) { return typeof item === 'string'; }) : [];
|
|
1764
1827
|
if (selectedEl && isLayerInteractionBlocked(selectedEl)) {
|
|
@@ -230,8 +230,9 @@ export function DesignExtensionsPanel({
|
|
|
230
230
|
|
|
231
231
|
return (
|
|
232
232
|
<div className={cn("flex min-h-0 flex-1 flex-col", className)}>
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
{/* Section header — 32 px tall, matches PanelSection / Figma inspector headers */}
|
|
234
|
+
<div className="flex min-h-8 shrink-0 items-center gap-1.5 border-b border-border/60 px-3">
|
|
235
|
+
<h3 className="min-w-0 flex-1 truncate text-xs font-semibold text-foreground">
|
|
235
236
|
{t("designEditor.extensions")}
|
|
236
237
|
</h3>
|
|
237
238
|
<Tooltip>
|
|
@@ -240,7 +241,7 @@ export function DesignExtensionsPanel({
|
|
|
240
241
|
href="https://www.agent-native.com/docs/extensions"
|
|
241
242
|
target="_blank"
|
|
242
243
|
rel="noreferrer"
|
|
243
|
-
className="inline-flex size-
|
|
244
|
+
className="inline-flex size-6 cursor-pointer items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"
|
|
244
245
|
aria-label={t("designEditor.extensionsDocs")}
|
|
245
246
|
>
|
|
246
247
|
<IconExternalLink className="size-3.5" />
|
|
@@ -255,39 +256,42 @@ export function DesignExtensionsPanel({
|
|
|
255
256
|
/>
|
|
256
257
|
</div>
|
|
257
258
|
|
|
258
|
-
<div className="design-inspector-scroll min-h-0 flex-1 overflow-y-auto overscroll-contain px-3
|
|
259
|
+
<div className="design-inspector-scroll min-h-0 flex-1 overflow-y-auto overscroll-contain px-3 pb-2 pt-1.5">
|
|
259
260
|
{isLoading ? (
|
|
260
|
-
<div className="space-y-
|
|
261
|
-
<Skeleton className="h-24 rounded
|
|
262
|
-
<Skeleton className="h-32 rounded
|
|
261
|
+
<div className="space-y-1.5">
|
|
262
|
+
<Skeleton className="h-24 rounded" />
|
|
263
|
+
<Skeleton className="h-32 rounded" />
|
|
263
264
|
</div>
|
|
264
265
|
) : installs.length === 0 ? (
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
/* Empty state — compact, matches TweaksPanel empty style */
|
|
267
|
+
<div className="flex flex-col items-center gap-2 py-6 text-center">
|
|
268
|
+
<div className="flex size-8 items-center justify-center rounded-lg bg-muted/60">
|
|
269
|
+
<IconPuzzle className="size-4 text-muted-foreground/70" />
|
|
268
270
|
</div>
|
|
269
|
-
<
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
271
|
+
<div>
|
|
272
|
+
<p className="text-[11px] font-medium text-foreground">
|
|
273
|
+
{t("designEditor.extensionsEmptyTitle")}
|
|
274
|
+
</p>
|
|
275
|
+
<p className="mt-0.5 text-[11px] leading-snug text-muted-foreground">
|
|
276
|
+
{t("designEditor.extensionsEmptyDescription")}
|
|
277
|
+
</p>
|
|
278
|
+
</div>
|
|
279
|
+
<div className="flex flex-wrap items-center justify-center gap-1.5">
|
|
276
280
|
<Button
|
|
277
281
|
type="button"
|
|
278
282
|
size="sm"
|
|
279
|
-
className="h-
|
|
283
|
+
className="h-6 cursor-pointer px-2.5 text-[11px]"
|
|
280
284
|
onClick={() => setCreateOpen(true)}
|
|
281
285
|
>
|
|
282
|
-
<IconPlus className="size-3
|
|
286
|
+
<IconPlus className="size-3" />
|
|
283
287
|
{t("designEditor.addExtension")}
|
|
284
288
|
</Button>
|
|
285
289
|
<Button
|
|
286
290
|
asChild
|
|
287
291
|
type="button"
|
|
288
|
-
variant="
|
|
292
|
+
variant="outline"
|
|
289
293
|
size="sm"
|
|
290
|
-
className="h-
|
|
294
|
+
className="h-6 cursor-pointer px-2.5 text-[11px]"
|
|
291
295
|
>
|
|
292
296
|
<a
|
|
293
297
|
href="https://www.agent-native.com/docs/extensions"
|
|
@@ -300,7 +304,7 @@ export function DesignExtensionsPanel({
|
|
|
300
304
|
</div>
|
|
301
305
|
</div>
|
|
302
306
|
) : (
|
|
303
|
-
<div className="space-y-
|
|
307
|
+
<div className="space-y-1.5">
|
|
304
308
|
{installs.map((install) => (
|
|
305
309
|
<EmbeddedExtension
|
|
306
310
|
key={install.installId}
|
|
@@ -308,38 +312,36 @@ export function DesignExtensionsPanel({
|
|
|
308
312
|
slotId={slotId}
|
|
309
313
|
context={context}
|
|
310
314
|
initialHeight={180}
|
|
311
|
-
className="overflow-hidden rounded
|
|
315
|
+
className="overflow-hidden rounded border border-border bg-background"
|
|
312
316
|
/>
|
|
313
317
|
))}
|
|
314
318
|
</div>
|
|
315
319
|
)}
|
|
316
320
|
|
|
317
321
|
{installable.length > 0 ? (
|
|
318
|
-
<div className="mt-
|
|
319
|
-
<p className="mb-
|
|
322
|
+
<div className="mt-3 border-t border-border/60 pt-1.5">
|
|
323
|
+
<p className="mb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground">
|
|
320
324
|
{t("designEditor.extensionsAvailable")}
|
|
321
325
|
</p>
|
|
322
|
-
<div className="space-y-
|
|
326
|
+
<div className="space-y-px">
|
|
323
327
|
{installable.map((extension) => (
|
|
324
328
|
<button
|
|
325
329
|
key={extension.extensionId}
|
|
326
330
|
type="button"
|
|
327
331
|
disabled={installingId === extension.extensionId}
|
|
328
332
|
onClick={() => installExtension(extension.extensionId)}
|
|
329
|
-
className="flex w-full cursor-pointer items-center gap-
|
|
333
|
+
className="flex h-6 w-full cursor-pointer items-center gap-1.5 rounded px-2 text-left transition-colors hover:bg-accent active:bg-accent/80 disabled:cursor-default disabled:opacity-50"
|
|
330
334
|
>
|
|
331
|
-
<IconSparkles className="size-3
|
|
332
|
-
<span className="min-w-0 flex-1">
|
|
333
|
-
|
|
334
|
-
{extension.name}
|
|
335
|
-
</span>
|
|
336
|
-
{extension.description ? (
|
|
337
|
-
<span className="block truncate text-[11px] text-muted-foreground">
|
|
338
|
-
{extension.description}
|
|
339
|
-
</span>
|
|
340
|
-
) : null}
|
|
335
|
+
<IconSparkles className="size-3 shrink-0 text-muted-foreground" />
|
|
336
|
+
<span className="min-w-0 flex-1 truncate text-[11px] font-medium text-foreground">
|
|
337
|
+
{extension.name}
|
|
341
338
|
</span>
|
|
342
|
-
|
|
339
|
+
{extension.description ? (
|
|
340
|
+
<span className="hidden truncate text-[11px] text-muted-foreground sm:block">
|
|
341
|
+
{extension.description}
|
|
342
|
+
</span>
|
|
343
|
+
) : null}
|
|
344
|
+
<span className="shrink-0 text-[11px] text-muted-foreground">
|
|
343
345
|
{t("designEditor.extensionsInstall")}
|
|
344
346
|
</span>
|
|
345
347
|
</button>
|
|
@@ -371,7 +373,7 @@ function CreateExtensionPopover({
|
|
|
371
373
|
type="button"
|
|
372
374
|
variant="ghost"
|
|
373
375
|
size="icon"
|
|
374
|
-
className="size-
|
|
376
|
+
className="size-6 rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"
|
|
375
377
|
aria-label={t("designEditor.addExtension")}
|
|
376
378
|
>
|
|
377
379
|
<IconPlus className="size-3.5" />
|