@jini-ai/ui 0.3.8 → 0.3.10
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/README.md +6 -0
- package/dist/browser/useFileDropTarget.js +19 -1
- package/dist/core.d.ts +3 -0
- package/dist/core.js +1 -0
- package/dist/features/execution/constants.js +11 -3
- package/dist/features/execution/react/components/ByokProviderForm.js +3 -3
- package/dist/features/execution/react/components/ExecutionTab.d.ts +19 -1
- package/dist/features/execution/react/components/ExecutionTab.js +14 -4
- package/dist/features/execution/react/hooks/useExecutionTab.d.ts +16 -1
- package/dist/features/execution/react/hooks/useExecutionTab.js +18 -15
- package/dist/features/folder-path-drop/index.d.ts +6 -0
- package/dist/features/folder-path-drop/index.js +3 -0
- package/dist/features/folder-path-drop/ports.d.ts +16 -0
- package/dist/features/folder-path-drop/ports.js +2 -0
- package/dist/features/folder-path-drop/react/hooks/useFolderPathDropCapture.d.ts +24 -0
- package/dist/features/folder-path-drop/react/hooks/useFolderPathDropCapture.js +18 -0
- package/dist/features/folder-path-drop/rules.d.ts +44 -0
- package/dist/features/folder-path-drop/rules.js +83 -0
- package/dist/features/folder-path-drop/types.d.ts +27 -0
- package/dist/features/folder-path-drop/types.js +2 -0
- package/dist/features/html-editor/canvas-embed-placeholders.d.ts +4 -0
- package/dist/features/html-editor/canvas-embed-placeholders.js +51 -1
- package/dist/features/html-editor/canvas-style.d.ts +11 -0
- package/dist/features/html-editor/canvas-style.js +16 -1
- package/dist/features/html-editor/index.d.ts +1 -1
- package/dist/features/html-editor/react/components/InteractiveHtmlEditor.d.ts +23 -11
- package/dist/features/html-editor/react/components/InteractiveHtmlEditor.js +5 -3
- package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.d.ts +11 -1
- package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.js +356 -30
- package/dist/features/html-editor/source-splice.d.ts +56 -0
- package/dist/features/html-editor/source-splice.js +89 -0
- package/dist/features/i18n/dictionaries/settings-dialog.ar.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.bn.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.de.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.en.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.es.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.fa.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.fr.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.hi.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.hu.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.id.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.it.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.ja.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.ko.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.pl.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.pt-BR.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.ru.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.th.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.tr.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.uk.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.ur.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.zh-CN.js +4 -0
- package/dist/features/i18n/dictionaries/settings-dialog.zh-TW.js +4 -0
- package/dist/features/settings/dialog/styles/settings-dialog.css +28 -0
- package/dist/features/source-config-list/react/components/SourceConfigAddForm.d.ts +9 -1
- package/dist/features/source-config-list/react/components/SourceConfigAddForm.js +3 -2
- package/dist/features/source-config-list/react/components/SourceConfigField.js +5 -1
- package/dist/features/source-config-list/react/hooks/useSourceConfigAddForm.d.ts +2 -0
- package/dist/features/source-config-list/react/hooks/useSourceConfigAddForm.js +7 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +6 -4
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/useDismissOnOutsideOrEscape.d.ts.map +0 -1
- package/dist/browser/useDismissOnOutsideOrEscape.js.map +0 -1
- package/dist/browser/useFileDropTarget.d.ts.map +0 -1
- package/dist/browser/useFileDropTarget.js.map +0 -1
- package/dist/browser/useGlobalKeydown.d.ts.map +0 -1
- package/dist/browser/useGlobalKeydown.js.map +0 -1
- package/dist/browser/useModalWindowDragGuard.d.ts.map +0 -1
- package/dist/browser/useModalWindowDragGuard.js.map +0 -1
- package/dist/core.d.ts.map +0 -1
- package/dist/core.js.map +0 -1
- package/dist/features/a2ui/catalog-from-registry.d.ts.map +0 -1
- package/dist/features/a2ui/catalog-from-registry.js.map +0 -1
- package/dist/features/a2ui/index.d.ts.map +0 -1
- package/dist/features/a2ui/index.js.map +0 -1
- package/dist/features/a2ui/protocol.d.ts.map +0 -1
- package/dist/features/a2ui/protocol.js.map +0 -1
- package/dist/features/a2ui/renderer.d.ts.map +0 -1
- package/dist/features/a2ui/renderer.js.map +0 -1
- package/dist/features/a2ui/use-a2ui-surface.d.ts.map +0 -1
- package/dist/features/a2ui/use-a2ui-surface.js.map +0 -1
- package/dist/features/about/index.d.ts.map +0 -1
- package/dist/features/about/index.js.map +0 -1
- package/dist/features/about/react/components/AboutTab.d.ts.map +0 -1
- package/dist/features/about/react/components/AboutTab.js.map +0 -1
- package/dist/features/about/react/hooks/useSilentUpdatesToggle.d.ts.map +0 -1
- package/dist/features/about/react/hooks/useSilentUpdatesToggle.js.map +0 -1
- package/dist/features/about/rules.d.ts.map +0 -1
- package/dist/features/about/rules.js.map +0 -1
- package/dist/features/about/types.d.ts.map +0 -1
- package/dist/features/about/types.js.map +0 -1
- package/dist/features/appearance/constants.d.ts.map +0 -1
- package/dist/features/appearance/constants.js.map +0 -1
- package/dist/features/appearance/index.d.ts.map +0 -1
- package/dist/features/appearance/index.js.map +0 -1
- package/dist/features/appearance/react/components/AppearanceTab.d.ts.map +0 -1
- package/dist/features/appearance/react/components/AppearanceTab.js.map +0 -1
- package/dist/features/appearance/rules.d.ts.map +0 -1
- package/dist/features/appearance/rules.js.map +0 -1
- package/dist/features/appearance/types.d.ts.map +0 -1
- package/dist/features/appearance/types.js.map +0 -1
- package/dist/features/asset-grid/constants.d.ts.map +0 -1
- package/dist/features/asset-grid/constants.js.map +0 -1
- package/dist/features/asset-grid/dependencies.d.ts.map +0 -1
- package/dist/features/asset-grid/dependencies.js.map +0 -1
- package/dist/features/asset-grid/index.d.ts.map +0 -1
- package/dist/features/asset-grid/index.js.map +0 -1
- package/dist/features/asset-grid/ports.d.ts.map +0 -1
- package/dist/features/asset-grid/ports.js.map +0 -1
- package/dist/features/asset-grid/react/components/AssetCard.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/AssetCard.js.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGrid.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGrid.js.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGridBody.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGridBody.js.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGridToolbar.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/AssetGridToolbar.js.map +0 -1
- package/dist/features/asset-grid/react/components/DeleteConfirmDialog.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/DeleteConfirmDialog.js.map +0 -1
- package/dist/features/asset-grid/react/components/SelectionActionBar.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/SelectionActionBar.js.map +0 -1
- package/dist/features/asset-grid/react/components/SelectionBand.d.ts.map +0 -1
- package/dist/features/asset-grid/react/components/SelectionBand.js.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridData.d.ts.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridData.js.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridKeyboardShortcuts.d.ts.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridKeyboardShortcuts.js.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridLiveUpdates.d.ts.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridLiveUpdates.js.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridSelection.d.ts.map +0 -1
- package/dist/features/asset-grid/react/hooks/useAssetGridSelection.js.map +0 -1
- package/dist/features/asset-grid/react/hooks/useRubberBandDrag.d.ts.map +0 -1
- package/dist/features/asset-grid/react/hooks/useRubberBandDrag.js.map +0 -1
- package/dist/features/asset-grid/rules.d.ts.map +0 -1
- package/dist/features/asset-grid/rules.js.map +0 -1
- package/dist/features/asset-grid/types.d.ts.map +0 -1
- package/dist/features/asset-grid/types.js.map +0 -1
- package/dist/features/asset-tree-browser/constants.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/constants.js.map +0 -1
- package/dist/features/asset-tree-browser/dependencies.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/dependencies.js.map +0 -1
- package/dist/features/asset-tree-browser/index.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/index.js.map +0 -1
- package/dist/features/asset-tree-browser/ports.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/ports.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeBreadcrumbs.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeBreadcrumbs.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeBrowser.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeBrowser.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeEmptyState.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeEmptyState.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeFileRow.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeFileRow.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeFolderRow.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeFolderRow.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeRowMenu.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeRowMenu.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeSelectionBar.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeSelectionBar.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeToolbar.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeToolbar.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeUploadErrorBanner.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/AssetTreeUploadErrorBanner.js.map +0 -1
- package/dist/features/asset-tree-browser/react/components/FilePreviewPane.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/components/FilePreviewPane.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeBatchActions.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeBatchActions.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeClipboardPasteUpload.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeClipboardPasteUpload.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeCopyLocalPath.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeCopyLocalPath.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeDragUpload.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeDragUpload.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeNavigation.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeNavigation.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreePreview.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreePreview.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeRename.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeRename.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeRowMenu.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeRowMenu.js.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeSelection.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/react/hooks/useAssetTreeSelection.js.map +0 -1
- package/dist/features/asset-tree-browser/rules.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/rules.js.map +0 -1
- package/dist/features/asset-tree-browser/types.d.ts.map +0 -1
- package/dist/features/asset-tree-browser/types.js.map +0 -1
- package/dist/features/browser-chrome/constants.d.ts.map +0 -1
- package/dist/features/browser-chrome/constants.js.map +0 -1
- package/dist/features/browser-chrome/dependencies.d.ts.map +0 -1
- package/dist/features/browser-chrome/dependencies.js.map +0 -1
- package/dist/features/browser-chrome/index.d.ts.map +0 -1
- package/dist/features/browser-chrome/index.js.map +0 -1
- package/dist/features/browser-chrome/ports.d.ts.map +0 -1
- package/dist/features/browser-chrome/ports.js.map +0 -1
- package/dist/features/browser-chrome/react/components/BrowserViewportControls.d.ts.map +0 -1
- package/dist/features/browser-chrome/react/components/BrowserViewportControls.js.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserBridgeRegistration.d.ts.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserBridgeRegistration.js.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserHistory.d.ts.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserHistory.js.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserNavigationStack.d.ts.map +0 -1
- package/dist/features/browser-chrome/react/hooks/useBrowserNavigationStack.js.map +0 -1
- package/dist/features/browser-chrome/rules.d.ts.map +0 -1
- package/dist/features/browser-chrome/rules.js.map +0 -1
- package/dist/features/browser-chrome/types.d.ts.map +0 -1
- package/dist/features/browser-chrome/types.js.map +0 -1
- package/dist/features/command-palette/constants.d.ts.map +0 -1
- package/dist/features/command-palette/constants.js.map +0 -1
- package/dist/features/command-palette/dependencies.d.ts.map +0 -1
- package/dist/features/command-palette/dependencies.js.map +0 -1
- package/dist/features/command-palette/index.d.ts.map +0 -1
- package/dist/features/command-palette/index.js.map +0 -1
- package/dist/features/command-palette/ports.d.ts.map +0 -1
- package/dist/features/command-palette/ports.js.map +0 -1
- package/dist/features/command-palette/react/components/CommandPalette.d.ts.map +0 -1
- package/dist/features/command-palette/react/components/CommandPalette.js.map +0 -1
- package/dist/features/command-palette/react/components/CommandPaletteRow.d.ts.map +0 -1
- package/dist/features/command-palette/react/components/CommandPaletteRow.js.map +0 -1
- package/dist/features/command-palette/react/hooks/useCommandPalette.d.ts.map +0 -1
- package/dist/features/command-palette/react/hooks/useCommandPalette.js.map +0 -1
- package/dist/features/command-palette/rules.d.ts.map +0 -1
- package/dist/features/command-palette/rules.js.map +0 -1
- package/dist/features/command-palette/types.d.ts.map +0 -1
- package/dist/features/command-palette/types.js.map +0 -1
- package/dist/features/connectors/ConnectorsBrowser.d.ts.map +0 -1
- package/dist/features/connectors/ConnectorsBrowser.js.map +0 -1
- package/dist/features/connectors/components/ConnectorAlertList.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorAlertList.js.map +0 -1
- package/dist/features/connectors/components/ConnectorCard.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorCard.js.map +0 -1
- package/dist/features/connectors/components/ConnectorDetailDrawer.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorDetailDrawer.js.map +0 -1
- package/dist/features/connectors/components/ConnectorGate.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorGate.js.map +0 -1
- package/dist/features/connectors/components/ConnectorGrid.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorGrid.js.map +0 -1
- package/dist/features/connectors/components/ConnectorLogo.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorLogo.js.map +0 -1
- package/dist/features/connectors/components/ConnectorSearchBar.d.ts.map +0 -1
- package/dist/features/connectors/components/ConnectorSearchBar.js.map +0 -1
- package/dist/features/connectors/components/ProviderTabBar.d.ts.map +0 -1
- package/dist/features/connectors/components/ProviderTabBar.js.map +0 -1
- package/dist/features/connectors/constants.d.ts.map +0 -1
- package/dist/features/connectors/constants.js.map +0 -1
- package/dist/features/connectors/dependencies.d.ts.map +0 -1
- package/dist/features/connectors/dependencies.js.map +0 -1
- package/dist/features/connectors/hooks/useConnectorAuthorization.d.ts.map +0 -1
- package/dist/features/connectors/hooks/useConnectorAuthorization.js.map +0 -1
- package/dist/features/connectors/hooks/useConnectorCatalog.d.ts.map +0 -1
- package/dist/features/connectors/hooks/useConnectorCatalog.js.map +0 -1
- package/dist/features/connectors/hooks/useConnectorDetail.d.ts.map +0 -1
- package/dist/features/connectors/hooks/useConnectorDetail.js.map +0 -1
- package/dist/features/connectors/hooks/useWiredConnectorsBrowser.d.ts.map +0 -1
- package/dist/features/connectors/hooks/useWiredConnectorsBrowser.js.map +0 -1
- package/dist/features/connectors/index.d.ts.map +0 -1
- package/dist/features/connectors/index.js.map +0 -1
- package/dist/features/connectors/ports.d.ts.map +0 -1
- package/dist/features/connectors/ports.js.map +0 -1
- package/dist/features/connectors/rules.d.ts.map +0 -1
- package/dist/features/connectors/rules.js.map +0 -1
- package/dist/features/connectors/types.d.ts.map +0 -1
- package/dist/features/connectors/types.js.map +0 -1
- package/dist/features/execution/constants.d.ts.map +0 -1
- package/dist/features/execution/constants.js.map +0 -1
- package/dist/features/execution/dependencies.d.ts.map +0 -1
- package/dist/features/execution/dependencies.js.map +0 -1
- package/dist/features/execution/index.d.ts.map +0 -1
- package/dist/features/execution/index.js.map +0 -1
- package/dist/features/execution/ports.d.ts.map +0 -1
- package/dist/features/execution/ports.js.map +0 -1
- package/dist/features/execution/react/components/AgentCliEnvFields.d.ts.map +0 -1
- package/dist/features/execution/react/components/AgentCliEnvFields.js.map +0 -1
- package/dist/features/execution/react/components/AgentDiagnosticRow.d.ts.map +0 -1
- package/dist/features/execution/react/components/AgentDiagnosticRow.js.map +0 -1
- package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +0 -1
- package/dist/features/execution/react/components/ByokProviderForm.js.map +0 -1
- package/dist/features/execution/react/components/ExecutionTab.d.ts.map +0 -1
- package/dist/features/execution/react/components/ExecutionTab.js.map +0 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +0 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.js.map +0 -1
- package/dist/features/execution/react/components/LocalCliAgentList.d.ts.map +0 -1
- package/dist/features/execution/react/components/LocalCliAgentList.js.map +0 -1
- package/dist/features/execution/react/components/ProviderChipGroup.d.ts.map +0 -1
- package/dist/features/execution/react/components/ProviderChipGroup.js.map +0 -1
- package/dist/features/execution/react/components/SearchableModelSelect.d.ts.map +0 -1
- package/dist/features/execution/react/components/SearchableModelSelect.js.map +0 -1
- package/dist/features/execution/react/hooks/useExecutionTab.d.ts.map +0 -1
- package/dist/features/execution/react/hooks/useExecutionTab.js.map +0 -1
- package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +0 -1
- package/dist/features/execution/react/hooks/useReasoningControl.js.map +0 -1
- package/dist/features/execution/rules.d.ts.map +0 -1
- package/dist/features/execution/rules.js.map +0 -1
- package/dist/features/execution/types.d.ts.map +0 -1
- package/dist/features/execution/types.js.map +0 -1
- package/dist/features/external-mcp/constants.d.ts.map +0 -1
- package/dist/features/external-mcp/constants.js.map +0 -1
- package/dist/features/external-mcp/index.d.ts.map +0 -1
- package/dist/features/external-mcp/index.js.map +0 -1
- package/dist/features/external-mcp/react/components/ExternalMcpTab.d.ts.map +0 -1
- package/dist/features/external-mcp/react/components/ExternalMcpTab.js.map +0 -1
- package/dist/features/file-dropzone/constants.d.ts.map +0 -1
- package/dist/features/file-dropzone/constants.js.map +0 -1
- package/dist/features/file-dropzone/index.d.ts.map +0 -1
- package/dist/features/file-dropzone/index.js.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzone.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzone.js.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneLightbox.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneLightbox.js.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneNameList.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneNameList.js.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneThumbnailGrid.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/components/FileDropzoneThumbnailGrid.js.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDialogTracking.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDialogTracking.js.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDropzone.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDropzone.js.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDropzonePreviews.d.ts.map +0 -1
- package/dist/features/file-dropzone/react/hooks/useFileDropzonePreviews.js.map +0 -1
- package/dist/features/file-dropzone/rules.d.ts.map +0 -1
- package/dist/features/file-dropzone/rules.js.map +0 -1
- package/dist/features/file-dropzone/types.d.ts.map +0 -1
- package/dist/features/file-dropzone/types.js.map +0 -1
- package/dist/features/html-editor/canvas-content-wrapper.d.ts.map +0 -1
- package/dist/features/html-editor/canvas-content-wrapper.js.map +0 -1
- package/dist/features/html-editor/canvas-embed-placeholders.d.ts.map +0 -1
- package/dist/features/html-editor/canvas-embed-placeholders.js.map +0 -1
- package/dist/features/html-editor/canvas-style.d.ts.map +0 -1
- package/dist/features/html-editor/canvas-style.js.map +0 -1
- package/dist/features/html-editor/css.d.ts.map +0 -1
- package/dist/features/html-editor/css.js.map +0 -1
- package/dist/features/html-editor/dom.d.ts.map +0 -1
- package/dist/features/html-editor/dom.js.map +0 -1
- package/dist/features/html-editor/index.d.ts.map +0 -1
- package/dist/features/html-editor/index.js.map +0 -1
- package/dist/features/html-editor/react/components/InteractiveHtmlEditor.d.ts.map +0 -1
- package/dist/features/html-editor/react/components/InteractiveHtmlEditor.js.map +0 -1
- package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.d.ts.map +0 -1
- package/dist/features/html-editor/react/hooks/useInteractiveHtmlEditor.js.map +0 -1
- package/dist/features/html-viewer/constants.d.ts.map +0 -1
- package/dist/features/html-viewer/constants.js.map +0 -1
- package/dist/features/html-viewer/dependencies.d.ts.map +0 -1
- package/dist/features/html-viewer/dependencies.js.map +0 -1
- package/dist/features/html-viewer/index.d.ts.map +0 -1
- package/dist/features/html-viewer/index.js.map +0 -1
- package/dist/features/html-viewer/ports.d.ts.map +0 -1
- package/dist/features/html-viewer/ports.js.map +0 -1
- package/dist/features/html-viewer/react/components/DeckNavigationControls.d.ts.map +0 -1
- package/dist/features/html-viewer/react/components/DeckNavigationControls.js.map +0 -1
- package/dist/features/html-viewer/react/components/PresentMenu.d.ts.map +0 -1
- package/dist/features/html-viewer/react/components/PresentMenu.js.map +0 -1
- package/dist/features/html-viewer/react/components/ZoomMenu.d.ts.map +0 -1
- package/dist/features/html-viewer/react/components/ZoomMenu.js.map +0 -1
- package/dist/features/html-viewer/react/hooks/useDeckNavigation.d.ts.map +0 -1
- package/dist/features/html-viewer/react/hooks/useDeckNavigation.js.map +0 -1
- package/dist/features/html-viewer/react/hooks/usePresentMode.d.ts.map +0 -1
- package/dist/features/html-viewer/react/hooks/usePresentMode.js.map +0 -1
- package/dist/features/html-viewer/react/hooks/useZoomControl.d.ts.map +0 -1
- package/dist/features/html-viewer/react/hooks/useZoomControl.js.map +0 -1
- package/dist/features/html-viewer/rules.d.ts.map +0 -1
- package/dist/features/html-viewer/rules.js.map +0 -1
- package/dist/features/html-viewer/types.d.ts.map +0 -1
- package/dist/features/html-viewer/types.js.map +0 -1
- package/dist/features/i18n/context.d.ts.map +0 -1
- package/dist/features/i18n/context.js.map +0 -1
- package/dist/features/i18n/dictionaries/index.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/index.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ar.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ar.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.bn.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.bn.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.de.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.de.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.en.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.en.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.es.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.es.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.fa.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.fa.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.fr.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.fr.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.hi.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.hi.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.hu.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.hu.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.id.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.id.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.it.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.it.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ja.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ja.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ko.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ko.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.pl.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.pl.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.pt-BR.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.pt-BR.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ru.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ru.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.th.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.th.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.tr.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.tr.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.uk.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.uk.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ur.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.ur.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.zh-CN.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.zh-CN.js.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.zh-TW.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/settings-dialog.zh-TW.js.map +0 -1
- package/dist/features/i18n/dictionaries/types.d.ts.map +0 -1
- package/dist/features/i18n/dictionaries/types.js.map +0 -1
- package/dist/features/i18n/index.d.ts.map +0 -1
- package/dist/features/i18n/index.js.map +0 -1
- package/dist/features/i18n/locale.d.ts.map +0 -1
- package/dist/features/i18n/locale.js.map +0 -1
- package/dist/features/i18n/types.d.ts.map +0 -1
- package/dist/features/i18n/types.js.map +0 -1
- package/dist/features/iframe-pool/constants.d.ts.map +0 -1
- package/dist/features/iframe-pool/constants.js.map +0 -1
- package/dist/features/iframe-pool/index.d.ts.map +0 -1
- package/dist/features/iframe-pool/index.js.map +0 -1
- package/dist/features/iframe-pool/react/components/IframeKeepAliveProvider.d.ts.map +0 -1
- package/dist/features/iframe-pool/react/components/IframeKeepAliveProvider.js.map +0 -1
- package/dist/features/iframe-pool/react/components/PooledIframe.d.ts.map +0 -1
- package/dist/features/iframe-pool/react/components/PooledIframe.js.map +0 -1
- package/dist/features/iframe-pool/react/dom-sync.d.ts.map +0 -1
- package/dist/features/iframe-pool/react/dom-sync.js.map +0 -1
- package/dist/features/iframe-pool/react/hooks/useIframeKeepAlivePool.d.ts.map +0 -1
- package/dist/features/iframe-pool/react/hooks/useIframeKeepAlivePool.js.map +0 -1
- package/dist/features/iframe-pool/react/pool-context.d.ts.map +0 -1
- package/dist/features/iframe-pool/react/pool-context.js.map +0 -1
- package/dist/features/iframe-pool/rules.d.ts.map +0 -1
- package/dist/features/iframe-pool/rules.js.map +0 -1
- package/dist/features/iframe-pool/types.d.ts.map +0 -1
- package/dist/features/iframe-pool/types.js.map +0 -1
- package/dist/features/instructions/index.d.ts.map +0 -1
- package/dist/features/instructions/index.js.map +0 -1
- package/dist/features/instructions/react/components/InstructionsTab.d.ts.map +0 -1
- package/dist/features/instructions/react/components/InstructionsTab.js.map +0 -1
- package/dist/features/integrations/constants.d.ts.map +0 -1
- package/dist/features/integrations/constants.js.map +0 -1
- package/dist/features/integrations/dependencies.d.ts.map +0 -1
- package/dist/features/integrations/dependencies.js.map +0 -1
- package/dist/features/integrations/index.d.ts.map +0 -1
- package/dist/features/integrations/index.js.map +0 -1
- package/dist/features/integrations/ports.d.ts.map +0 -1
- package/dist/features/integrations/ports.js.map +0 -1
- package/dist/features/integrations/react/components/ClientPicker.d.ts.map +0 -1
- package/dist/features/integrations/react/components/ClientPicker.js.map +0 -1
- package/dist/features/integrations/react/components/CodexInstallToggleButton.d.ts.map +0 -1
- package/dist/features/integrations/react/components/CodexInstallToggleButton.js.map +0 -1
- package/dist/features/integrations/react/components/IntegrationsTab.d.ts.map +0 -1
- package/dist/features/integrations/react/components/IntegrationsTab.js.map +0 -1
- package/dist/features/integrations/react/components/SnippetBlock.d.ts.map +0 -1
- package/dist/features/integrations/react/components/SnippetBlock.js.map +0 -1
- package/dist/features/integrations/react/hooks/useCodexInstallToggle.d.ts.map +0 -1
- package/dist/features/integrations/react/hooks/useCodexInstallToggle.js.map +0 -1
- package/dist/features/integrations/react/hooks/useMcpInstallInfo.d.ts.map +0 -1
- package/dist/features/integrations/react/hooks/useMcpInstallInfo.js.map +0 -1
- package/dist/features/integrations/rules.d.ts.map +0 -1
- package/dist/features/integrations/rules.js.map +0 -1
- package/dist/features/integrations/types.d.ts.map +0 -1
- package/dist/features/integrations/types.js.map +0 -1
- package/dist/features/interactive-ui/index.d.ts.map +0 -1
- package/dist/features/interactive-ui/index.js.map +0 -1
- package/dist/features/interactive-ui/manifests.d.ts.map +0 -1
- package/dist/features/interactive-ui/manifests.js.map +0 -1
- package/dist/features/interactive-ui/providers/native/data-table.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/native/data-table.js.map +0 -1
- package/dist/features/interactive-ui/providers/native/data-table.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/native/data-table.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/native/index.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/native/index.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/bar-chart.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/bar-chart.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/bar-chart.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/bar-chart.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/index.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/index.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/line-chart.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/line-chart.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/line-chart.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/line-chart.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/pie-chart.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/pie-chart.js.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/pie-chart.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/recharts/pie-chart.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/action-button.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/action-button.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/action-button.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/action-button.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/button.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/button.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/card.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/card.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox-field.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox-field.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox-field.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox-field.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/checkbox.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/content-card.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/content-card.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/content-card.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/content-card.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/data-table.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/data-table.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/data-table.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/data-table.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/icons.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/icons.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/index.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/index.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/input.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/input.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/label.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/label.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/lib/utils.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/lib/utils.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group-field.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group-field.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group-field.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group-field.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/radio-group.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select-field.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select-field.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select-field.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select-field.manifest.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/select.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/table.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/table.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/text-input-field.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/text-input-field.js.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/text-input-field.manifest.d.ts.map +0 -1
- package/dist/features/interactive-ui/providers/shadcn/text-input-field.manifest.js.map +0 -1
- package/dist/features/interactive-ui/registry.d.ts.map +0 -1
- package/dist/features/interactive-ui/registry.js.map +0 -1
- package/dist/features/interactive-ui/types.d.ts.map +0 -1
- package/dist/features/interactive-ui/types.js.map +0 -1
- package/dist/features/language/index.d.ts.map +0 -1
- package/dist/features/language/index.js.map +0 -1
- package/dist/features/language/react/components/LanguageTab.d.ts.map +0 -1
- package/dist/features/language/react/components/LanguageTab.js.map +0 -1
- package/dist/features/language/types.d.ts.map +0 -1
- package/dist/features/language/types.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/constants.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/constants.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/deserialize.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/deserialize.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/index.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/index.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/mention-node.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/mention-node.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/mention-parser.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/mention-parser.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/components/CaretFloatingLayer.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/components/CaretFloatingLayer.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/components/RichTextInput.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/components/RichTextInput.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useCaretFloatingLayerPosition.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useCaretFloatingLayerPosition.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useKeyboardCommands.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useKeyboardCommands.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useMentionAtomicNavigation.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useMentionAtomicNavigation.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useMentionColorStamping.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useMentionColorStamping.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/usePasteFiles.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/usePasteFiles.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useSeededValue.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useSeededValue.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useSyncedOnChange.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useSyncedOnChange.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useTriggerDetection.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/hooks/useTriggerDetection.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/test-support/lexical-harness.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/react/test-support/lexical-harness.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/rules.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/rules.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/serialize.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/serialize.js.map +0 -1
- package/dist/features/lexical-rich-text-editor/types.d.ts.map +0 -1
- package/dist/features/lexical-rich-text-editor/types.js.map +0 -1
- package/dist/features/list-detail-panel/index.d.ts.map +0 -1
- package/dist/features/list-detail-panel/index.js.map +0 -1
- package/dist/features/list-detail-panel/react/components/ListDetailPanel.d.ts.map +0 -1
- package/dist/features/list-detail-panel/react/components/ListDetailPanel.js.map +0 -1
- package/dist/features/list-detail-panel/react/hooks/useListDetailSelection.d.ts.map +0 -1
- package/dist/features/list-detail-panel/react/hooks/useListDetailSelection.js.map +0 -1
- package/dist/features/list-detail-panel/rules.d.ts.map +0 -1
- package/dist/features/list-detail-panel/rules.js.map +0 -1
- package/dist/features/list-detail-panel/types.d.ts.map +0 -1
- package/dist/features/list-detail-panel/types.js.map +0 -1
- package/dist/features/mcp-ui/confirmation-store.d.ts.map +0 -1
- package/dist/features/mcp-ui/confirmation-store.js.map +0 -1
- package/dist/features/mcp-ui/early-message-buffer.d.ts.map +0 -1
- package/dist/features/mcp-ui/early-message-buffer.js.map +0 -1
- package/dist/features/mcp-ui/escape.d.ts.map +0 -1
- package/dist/features/mcp-ui/escape.js.map +0 -1
- package/dist/features/mcp-ui/index.d.ts.map +0 -1
- package/dist/features/mcp-ui/index.js.map +0 -1
- package/dist/features/mcp-ui/protocol.d.ts.map +0 -1
- package/dist/features/mcp-ui/protocol.js.map +0 -1
- package/dist/features/mcp-ui/resource.d.ts.map +0 -1
- package/dist/features/mcp-ui/resource.js.map +0 -1
- package/dist/features/mcp-ui/sandbox-proxy.d.ts.map +0 -1
- package/dist/features/mcp-ui/sandbox-proxy.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/bridge.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/bridge.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/checkbox.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/checkbox.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/choice-group.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/choice-group.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/confirmation.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/confirmation.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/document.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/document.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/fields.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/fields.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/form.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/form.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/index.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/index.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/outcome.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/outcome.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/select.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/select.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/text-input.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/text-input.js.map +0 -1
- package/dist/features/mcp-ui/surfaces/tokens.d.ts.map +0 -1
- package/dist/features/mcp-ui/surfaces/tokens.js.map +0 -1
- package/dist/features/media-providers/constants.d.ts.map +0 -1
- package/dist/features/media-providers/constants.js.map +0 -1
- package/dist/features/media-providers/dependencies.d.ts.map +0 -1
- package/dist/features/media-providers/dependencies.js.map +0 -1
- package/dist/features/media-providers/index.d.ts.map +0 -1
- package/dist/features/media-providers/index.js.map +0 -1
- package/dist/features/media-providers/ports.d.ts.map +0 -1
- package/dist/features/media-providers/ports.js.map +0 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +0 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +0 -1
- package/dist/features/media-providers/react/hooks/useMediaProvidersTab.d.ts.map +0 -1
- package/dist/features/media-providers/react/hooks/useMediaProvidersTab.js.map +0 -1
- package/dist/features/media-providers/rules.d.ts.map +0 -1
- package/dist/features/media-providers/rules.js.map +0 -1
- package/dist/features/media-providers/types.d.ts.map +0 -1
- package/dist/features/media-providers/types.js.map +0 -1
- package/dist/features/memory/async-commit-guard.d.ts.map +0 -1
- package/dist/features/memory/async-commit-guard.js.map +0 -1
- package/dist/features/memory/constants.d.ts.map +0 -1
- package/dist/features/memory/constants.js.map +0 -1
- package/dist/features/memory/dependencies.d.ts.map +0 -1
- package/dist/features/memory/dependencies.js.map +0 -1
- package/dist/features/memory/formatters.d.ts.map +0 -1
- package/dist/features/memory/formatters.js.map +0 -1
- package/dist/features/memory/index.d.ts.map +0 -1
- package/dist/features/memory/index.js.map +0 -1
- package/dist/features/memory/ports.d.ts.map +0 -1
- package/dist/features/memory/ports.js.map +0 -1
- package/dist/features/memory/react/components/MemoryAdvancedModal.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryAdvancedModal.js.map +0 -1
- package/dist/features/memory/react/components/MemoryConnectedPanel.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryConnectedPanel.js.map +0 -1
- package/dist/features/memory/react/components/MemoryEntryCard.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryEntryCard.js.map +0 -1
- package/dist/features/memory/react/components/MemoryExtractionCard.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryExtractionCard.js.map +0 -1
- package/dist/features/memory/react/components/MemoryHooksPanel.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryHooksPanel.js.map +0 -1
- package/dist/features/memory/react/components/MemoryHowPanel.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryHowPanel.js.map +0 -1
- package/dist/features/memory/react/components/MemoryList.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryList.js.map +0 -1
- package/dist/features/memory/react/components/MemoryManualEditor.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemoryManualEditor.js.map +0 -1
- package/dist/features/memory/react/components/MemorySettingsPanel.d.ts.map +0 -1
- package/dist/features/memory/react/components/MemorySettingsPanel.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConfig.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConfig.hooks.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConnectors.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConnectors.hooks.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConnectors.rules.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryConnectors.rules.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryEntries.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryEntries.hooks.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryExtractions.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryExtractions.hooks.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryExtractions.store.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryExtractions.store.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryFlash.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryFlash.hooks.js.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryNavigation.hooks.d.ts.map +0 -1
- package/dist/features/memory/react/hooks/useMemoryNavigation.hooks.js.map +0 -1
- package/dist/features/memory/react/render-markdown.d.ts.map +0 -1
- package/dist/features/memory/react/render-markdown.js.map +0 -1
- package/dist/features/memory/react/styles.d.ts.map +0 -1
- package/dist/features/memory/react/styles.js.map +0 -1
- package/dist/features/memory/rules.d.ts.map +0 -1
- package/dist/features/memory/rules.js.map +0 -1
- package/dist/features/memory/types.d.ts.map +0 -1
- package/dist/features/memory/types.js.map +0 -1
- package/dist/features/mention-autocomplete/constants.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/constants.js.map +0 -1
- package/dist/features/mention-autocomplete/index.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/index.js.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionAutocomplete.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionAutocomplete.js.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionCategoryTabs.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionCategoryTabs.js.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionResultItem.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionResultItem.js.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionResultsList.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/components/MentionResultsList.js.map +0 -1
- package/dist/features/mention-autocomplete/react/components/SelectedMentionChips.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/components/SelectedMentionChips.js.map +0 -1
- package/dist/features/mention-autocomplete/react/hooks/useMentionAutocomplete.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/react/hooks/useMentionAutocomplete.js.map +0 -1
- package/dist/features/mention-autocomplete/rules.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/rules.js.map +0 -1
- package/dist/features/mention-autocomplete/types.d.ts.map +0 -1
- package/dist/features/mention-autocomplete/types.js.map +0 -1
- package/dist/features/notifications/constants.d.ts.map +0 -1
- package/dist/features/notifications/constants.js.map +0 -1
- package/dist/features/notifications/index.d.ts.map +0 -1
- package/dist/features/notifications/index.js.map +0 -1
- package/dist/features/notifications/notifications-catalog.d.ts.map +0 -1
- package/dist/features/notifications/notifications-catalog.js.map +0 -1
- package/dist/features/notifications/react/components/NotificationsTab.d.ts.map +0 -1
- package/dist/features/notifications/react/components/NotificationsTab.js.map +0 -1
- package/dist/features/notifications/rules.d.ts.map +0 -1
- package/dist/features/notifications/rules.js.map +0 -1
- package/dist/features/notifications/types.d.ts.map +0 -1
- package/dist/features/notifications/types.js.map +0 -1
- package/dist/features/observability/boot-timing.d.ts.map +0 -1
- package/dist/features/observability/boot-timing.js.map +0 -1
- package/dist/features/observability/iframe.d.ts.map +0 -1
- package/dist/features/observability/iframe.js.map +0 -1
- package/dist/features/observability/index.d.ts.map +0 -1
- package/dist/features/observability/index.js.map +0 -1
- package/dist/features/observability/install.d.ts.map +0 -1
- package/dist/features/observability/install.js.map +0 -1
- package/dist/features/observability/long-task.d.ts.map +0 -1
- package/dist/features/observability/long-task.js.map +0 -1
- package/dist/features/observability/ports.d.ts.map +0 -1
- package/dist/features/observability/ports.js.map +0 -1
- package/dist/features/observability/resource-error.d.ts.map +0 -1
- package/dist/features/observability/resource-error.js.map +0 -1
- package/dist/features/observability/stuck-run.d.ts.map +0 -1
- package/dist/features/observability/stuck-run.js.map +0 -1
- package/dist/features/observability/visibility.d.ts.map +0 -1
- package/dist/features/observability/visibility.js.map +0 -1
- package/dist/features/observability/white-screen.d.ts.map +0 -1
- package/dist/features/observability/white-screen.js.map +0 -1
- package/dist/features/privacy/index.d.ts.map +0 -1
- package/dist/features/privacy/index.js.map +0 -1
- package/dist/features/privacy/react/components/PrivacyTab.d.ts.map +0 -1
- package/dist/features/privacy/react/components/PrivacyTab.js.map +0 -1
- package/dist/features/privacy/rules.d.ts.map +0 -1
- package/dist/features/privacy/rules.js.map +0 -1
- package/dist/features/privacy/types.d.ts.map +0 -1
- package/dist/features/privacy/types.js.map +0 -1
- package/dist/features/progress-card/components/ProgressCard.d.ts.map +0 -1
- package/dist/features/progress-card/components/ProgressCard.js.map +0 -1
- package/dist/features/progress-card/index.d.ts.map +0 -1
- package/dist/features/progress-card/index.js.map +0 -1
- package/dist/features/progress-card/reference-adapters.d.ts.map +0 -1
- package/dist/features/progress-card/reference-adapters.js.map +0 -1
- package/dist/features/progress-card/rules.d.ts.map +0 -1
- package/dist/features/progress-card/rules.js.map +0 -1
- package/dist/features/progress-card/types.d.ts.map +0 -1
- package/dist/features/progress-card/types.js.map +0 -1
- package/dist/features/project-locations/dependencies.d.ts.map +0 -1
- package/dist/features/project-locations/dependencies.js.map +0 -1
- package/dist/features/project-locations/index.d.ts.map +0 -1
- package/dist/features/project-locations/index.js.map +0 -1
- package/dist/features/project-locations/ports.d.ts.map +0 -1
- package/dist/features/project-locations/ports.js.map +0 -1
- package/dist/features/project-locations/react/components/ProjectLocationsTab.d.ts.map +0 -1
- package/dist/features/project-locations/react/components/ProjectLocationsTab.js.map +0 -1
- package/dist/features/project-locations/react/hooks/useProjectLocationsTab.d.ts.map +0 -1
- package/dist/features/project-locations/react/hooks/useProjectLocationsTab.js.map +0 -1
- package/dist/features/project-locations/rules.d.ts.map +0 -1
- package/dist/features/project-locations/rules.js.map +0 -1
- package/dist/features/project-locations/types.d.ts.map +0 -1
- package/dist/features/project-locations/types.js.map +0 -1
- package/dist/features/resource-dashboard/constants.d.ts.map +0 -1
- package/dist/features/resource-dashboard/constants.js.map +0 -1
- package/dist/features/resource-dashboard/dependencies.d.ts.map +0 -1
- package/dist/features/resource-dashboard/dependencies.js.map +0 -1
- package/dist/features/resource-dashboard/index.d.ts.map +0 -1
- package/dist/features/resource-dashboard/index.js.map +0 -1
- package/dist/features/resource-dashboard/ports.d.ts.map +0 -1
- package/dist/features/resource-dashboard/ports.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoard.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoard.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoardToolbar.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoardToolbar.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoardView.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceBoardView.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceCard.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceCard.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceKanbanBoard.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceKanbanBoard.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceMetrics.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceMetrics.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowList.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowList.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowListItem.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowListItem.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowListView.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRowListView.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRunHistoryList.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/ResourceRunHistoryList.js.map +0 -1
- package/dist/features/resource-dashboard/react/components/StatusPill.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/components/StatusPill.js.map +0 -1
- package/dist/features/resource-dashboard/react/hooks/useResourceBoard.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/hooks/useResourceBoard.js.map +0 -1
- package/dist/features/resource-dashboard/react/hooks/useResourceRowList.d.ts.map +0 -1
- package/dist/features/resource-dashboard/react/hooks/useResourceRowList.js.map +0 -1
- package/dist/features/resource-dashboard/rules.d.ts.map +0 -1
- package/dist/features/resource-dashboard/rules.js.map +0 -1
- package/dist/features/resource-dashboard/types.d.ts.map +0 -1
- package/dist/features/resource-dashboard/types.js.map +0 -1
- package/dist/features/revision-review/index.d.ts.map +0 -1
- package/dist/features/revision-review/index.js.map +0 -1
- package/dist/features/revision-review/react/components/RevisionDiffCard.d.ts.map +0 -1
- package/dist/features/revision-review/react/components/RevisionDiffCard.js.map +0 -1
- package/dist/features/revision-review/react/components/RevisionHistoryList.d.ts.map +0 -1
- package/dist/features/revision-review/react/components/RevisionHistoryList.js.map +0 -1
- package/dist/features/revision-review/rules.d.ts.map +0 -1
- package/dist/features/revision-review/rules.js.map +0 -1
- package/dist/features/revision-review/types.d.ts.map +0 -1
- package/dist/features/revision-review/types.js.map +0 -1
- package/dist/features/schedule-picker/constants.d.ts.map +0 -1
- package/dist/features/schedule-picker/constants.js.map +0 -1
- package/dist/features/schedule-picker/index.d.ts.map +0 -1
- package/dist/features/schedule-picker/index.js.map +0 -1
- package/dist/features/schedule-picker/react/components/RecurringSchedulePicker.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/components/RecurringSchedulePicker.js.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleFields.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleFields.js.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleKindTabs.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleKindTabs.js.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleSummary.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/components/ScheduleSummary.js.map +0 -1
- package/dist/features/schedule-picker/react/components/WeekdayGrid.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/components/WeekdayGrid.js.map +0 -1
- package/dist/features/schedule-picker/react/hooks/useRecurringSchedulePicker.d.ts.map +0 -1
- package/dist/features/schedule-picker/react/hooks/useRecurringSchedulePicker.js.map +0 -1
- package/dist/features/schedule-picker/rules.d.ts.map +0 -1
- package/dist/features/schedule-picker/rules.js.map +0 -1
- package/dist/features/schedule-picker/types.d.ts.map +0 -1
- package/dist/features/schedule-picker/types.js.map +0 -1
- package/dist/features/settings/dialog/index.d.ts.map +0 -1
- package/dist/features/settings/dialog/index.js.map +0 -1
- package/dist/features/settings/dialog/react/components/SettingsDialogShell.d.ts.map +0 -1
- package/dist/features/settings/dialog/react/components/SettingsDialogShell.js.map +0 -1
- package/dist/features/settings/dialog/react/hooks/useSettingsDialogShell.d.ts.map +0 -1
- package/dist/features/settings/dialog/react/hooks/useSettingsDialogShell.js.map +0 -1
- package/dist/features/sketch-editor/constants.d.ts.map +0 -1
- package/dist/features/sketch-editor/constants.js.map +0 -1
- package/dist/features/sketch-editor/dependencies.d.ts.map +0 -1
- package/dist/features/sketch-editor/dependencies.js.map +0 -1
- package/dist/features/sketch-editor/dom.d.ts.map +0 -1
- package/dist/features/sketch-editor/dom.js.map +0 -1
- package/dist/features/sketch-editor/index.d.ts.map +0 -1
- package/dist/features/sketch-editor/index.js.map +0 -1
- package/dist/features/sketch-editor/ports.d.ts.map +0 -1
- package/dist/features/sketch-editor/ports.js.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchEditor.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchEditor.js.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchMainMenu.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchMainMenu.js.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchSaveStateBadge.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/components/SketchSaveStateBadge.js.map +0 -1
- package/dist/features/sketch-editor/react/dependencies-fake.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/dependencies-fake.js.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchDomEnhancements.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchDomEnhancements.js.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchSaveWorkflow.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchSaveWorkflow.js.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchScene.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchScene.js.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchTheme.d.ts.map +0 -1
- package/dist/features/sketch-editor/react/hooks/useSketchTheme.js.map +0 -1
- package/dist/features/sketch-editor/rules.d.ts.map +0 -1
- package/dist/features/sketch-editor/rules.js.map +0 -1
- package/dist/features/sketch-editor/types.d.ts.map +0 -1
- package/dist/features/sketch-editor/types.js.map +0 -1
- package/dist/features/skills/dependencies.d.ts.map +0 -1
- package/dist/features/skills/dependencies.js.map +0 -1
- package/dist/features/skills/index.d.ts.map +0 -1
- package/dist/features/skills/index.js.map +0 -1
- package/dist/features/skills/ports.d.ts.map +0 -1
- package/dist/features/skills/ports.js.map +0 -1
- package/dist/features/skills/react/components/SkillDraftForm.d.ts.map +0 -1
- package/dist/features/skills/react/components/SkillDraftForm.js.map +0 -1
- package/dist/features/skills/react/components/SkillRow.d.ts.map +0 -1
- package/dist/features/skills/react/components/SkillRow.js.map +0 -1
- package/dist/features/skills/react/components/SkillsTab.d.ts.map +0 -1
- package/dist/features/skills/react/components/SkillsTab.js.map +0 -1
- package/dist/features/skills/react/hooks/useSkillsTab.d.ts.map +0 -1
- package/dist/features/skills/react/hooks/useSkillsTab.js.map +0 -1
- package/dist/features/skills/rules.d.ts.map +0 -1
- package/dist/features/skills/rules.js.map +0 -1
- package/dist/features/skills/types.d.ts.map +0 -1
- package/dist/features/skills/types.js.map +0 -1
- package/dist/features/source-config-list/agent-handles.d.ts.map +0 -1
- package/dist/features/source-config-list/agent-handles.js.map +0 -1
- package/dist/features/source-config-list/constants.d.ts.map +0 -1
- package/dist/features/source-config-list/constants.js.map +0 -1
- package/dist/features/source-config-list/dependencies.d.ts.map +0 -1
- package/dist/features/source-config-list/dependencies.js.map +0 -1
- package/dist/features/source-config-list/index.d.ts.map +0 -1
- package/dist/features/source-config-list/index.js.map +0 -1
- package/dist/features/source-config-list/ports.d.ts.map +0 -1
- package/dist/features/source-config-list/ports.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigAddForm.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigAddForm.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigField.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigField.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigItemCard.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigItemCard.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigList.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigList.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigListView.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigListView.js.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigTestControl.d.ts.map +0 -1
- package/dist/features/source-config-list/react/components/SourceConfigTestControl.js.map +0 -1
- package/dist/features/source-config-list/react/hooks/useSourceConfigAddForm.d.ts.map +0 -1
- package/dist/features/source-config-list/react/hooks/useSourceConfigAddForm.js.map +0 -1
- package/dist/features/source-config-list/react/hooks/useSourceConfigList.d.ts.map +0 -1
- package/dist/features/source-config-list/react/hooks/useSourceConfigList.js.map +0 -1
- package/dist/features/source-config-list/rules.d.ts.map +0 -1
- package/dist/features/source-config-list/rules.js.map +0 -1
- package/dist/features/source-config-list/types.d.ts.map +0 -1
- package/dist/features/source-config-list/types.js.map +0 -1
- package/dist/features/tab-launcher-menu/constants.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/constants.js.map +0 -1
- package/dist/features/tab-launcher-menu/index.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/index.js.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherActionRow.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherActionRow.js.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherMenu.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherMenu.js.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherResultRow.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/react/components/TabLauncherResultRow.js.map +0 -1
- package/dist/features/tab-launcher-menu/react/hooks/useTabLauncherMenu.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/react/hooks/useTabLauncherMenu.js.map +0 -1
- package/dist/features/tab-launcher-menu/rules.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/rules.js.map +0 -1
- package/dist/features/tab-launcher-menu/types.d.ts.map +0 -1
- package/dist/features/tab-launcher-menu/types.js.map +0 -1
- package/dist/features/tab-strip/constants.d.ts.map +0 -1
- package/dist/features/tab-strip/constants.js.map +0 -1
- package/dist/features/tab-strip/dependencies.d.ts.map +0 -1
- package/dist/features/tab-strip/dependencies.js.map +0 -1
- package/dist/features/tab-strip/index.d.ts.map +0 -1
- package/dist/features/tab-strip/index.js.map +0 -1
- package/dist/features/tab-strip/ports.d.ts.map +0 -1
- package/dist/features/tab-strip/ports.js.map +0 -1
- package/dist/features/tab-strip/react/components/TabStrip.d.ts.map +0 -1
- package/dist/features/tab-strip/react/components/TabStrip.js.map +0 -1
- package/dist/features/tab-strip/react/components/TabStripItem.d.ts.map +0 -1
- package/dist/features/tab-strip/react/components/TabStripItem.js.map +0 -1
- package/dist/features/tab-strip/react/hooks/useTabStripDragReorder.d.ts.map +0 -1
- package/dist/features/tab-strip/react/hooks/useTabStripDragReorder.js.map +0 -1
- package/dist/features/tab-strip/rules.d.ts.map +0 -1
- package/dist/features/tab-strip/rules.js.map +0 -1
- package/dist/features/tab-strip/types.d.ts.map +0 -1
- package/dist/features/tab-strip/types.js.map +0 -1
- package/dist/features/tabbed-dialog/index.d.ts.map +0 -1
- package/dist/features/tabbed-dialog/index.js.map +0 -1
- package/dist/features/tabbed-dialog/react/components/TabbedDialog.d.ts.map +0 -1
- package/dist/features/tabbed-dialog/react/components/TabbedDialog.js.map +0 -1
- package/dist/features/tabbed-dialog/react/hooks/useTabbedDialog.d.ts.map +0 -1
- package/dist/features/tabbed-dialog/react/hooks/useTabbedDialog.js.map +0 -1
- package/dist/features/tabbed-dialog/rules.d.ts.map +0 -1
- package/dist/features/tabbed-dialog/rules.js.map +0 -1
- package/dist/features/tabbed-dialog/types.d.ts.map +0 -1
- package/dist/features/tabbed-dialog/types.js.map +0 -1
- package/dist/features/version-manager/constants.d.ts.map +0 -1
- package/dist/features/version-manager/constants.js.map +0 -1
- package/dist/features/version-manager/dependencies.d.ts.map +0 -1
- package/dist/features/version-manager/dependencies.js.map +0 -1
- package/dist/features/version-manager/index.d.ts.map +0 -1
- package/dist/features/version-manager/index.js.map +0 -1
- package/dist/features/version-manager/ports.d.ts.map +0 -1
- package/dist/features/version-manager/ports.js.map +0 -1
- package/dist/features/version-manager/react/components/VersionManagerModal.d.ts.map +0 -1
- package/dist/features/version-manager/react/components/VersionManagerModal.js.map +0 -1
- package/dist/features/version-manager/react/components/VersionPreviewFrame.d.ts.map +0 -1
- package/dist/features/version-manager/react/components/VersionPreviewFrame.js.map +0 -1
- package/dist/features/version-manager/react/components/VersionPromptPopover.d.ts.map +0 -1
- package/dist/features/version-manager/react/components/VersionPromptPopover.js.map +0 -1
- package/dist/features/version-manager/react/components/VersionRestoreControl.d.ts.map +0 -1
- package/dist/features/version-manager/react/components/VersionRestoreControl.js.map +0 -1
- package/dist/features/version-manager/react/components/VersionSidebar.d.ts.map +0 -1
- package/dist/features/version-manager/react/components/VersionSidebar.js.map +0 -1
- package/dist/features/version-manager/react/hooks/usePreviewCanvasSize.d.ts.map +0 -1
- package/dist/features/version-manager/react/hooks/usePreviewCanvasSize.js.map +0 -1
- package/dist/features/version-manager/react/hooks/useVersionManager.d.ts.map +0 -1
- package/dist/features/version-manager/react/hooks/useVersionManager.js.map +0 -1
- package/dist/features/version-manager/rules.d.ts.map +0 -1
- package/dist/features/version-manager/rules.js.map +0 -1
- package/dist/features/version-manager/types.d.ts.map +0 -1
- package/dist/features/version-manager/types.js.map +0 -1
- package/dist/features/viewer-shell/constants.d.ts.map +0 -1
- package/dist/features/viewer-shell/constants.js.map +0 -1
- package/dist/features/viewer-shell/dependencies.d.ts.map +0 -1
- package/dist/features/viewer-shell/dependencies.js.map +0 -1
- package/dist/features/viewer-shell/index.d.ts.map +0 -1
- package/dist/features/viewer-shell/index.js.map +0 -1
- package/dist/features/viewer-shell/ports.d.ts.map +0 -1
- package/dist/features/viewer-shell/ports.js.map +0 -1
- package/dist/features/viewer-shell/react/components/AudioViewerBody.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/AudioViewerBody.js.map +0 -1
- package/dist/features/viewer-shell/react/components/CodeWithLines.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/CodeWithLines.js.map +0 -1
- package/dist/features/viewer-shell/react/components/CommentSideDock.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/CommentSideDock.js.map +0 -1
- package/dist/features/viewer-shell/react/components/CommentSidePanel.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/CommentSidePanel.js.map +0 -1
- package/dist/features/viewer-shell/react/components/ImageViewerBody.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/ImageViewerBody.js.map +0 -1
- package/dist/features/viewer-shell/react/components/JsonPanel.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/JsonPanel.js.map +0 -1
- package/dist/features/viewer-shell/react/components/MarkdownSplitPane.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/MarkdownSplitPane.js.map +0 -1
- package/dist/features/viewer-shell/react/components/SegmentedToggle.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/SegmentedToggle.js.map +0 -1
- package/dist/features/viewer-shell/react/components/SvgSourcePane.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/SvgSourcePane.js.map +0 -1
- package/dist/features/viewer-shell/react/components/VideoViewerBody.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/VideoViewerBody.js.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewerFileActions.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewerFileActions.js.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewerShell.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewerShell.js.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewportSwitcher.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewportSwitcher.js.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewportToggleGroup.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/components/ViewportToggleGroup.js.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useCommentReorder.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useCommentReorder.js.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useCopyToClipboard.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useCopyToClipboard.js.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useMarkdownScrollSync.d.ts.map +0 -1
- package/dist/features/viewer-shell/react/hooks/useMarkdownScrollSync.js.map +0 -1
- package/dist/features/viewer-shell/rules.d.ts.map +0 -1
- package/dist/features/viewer-shell/rules.js.map +0 -1
- package/dist/features/viewer-shell/types.d.ts.map +0 -1
- package/dist/features/viewer-shell/types.js.map +0 -1
- package/dist/icon-name.d.ts.map +0 -1
- package/dist/icon-name.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/react/components/AgentIcon.d.ts.map +0 -1
- package/dist/react/components/AgentIcon.js.map +0 -1
- package/dist/react/components/AppChromeHeader.d.ts.map +0 -1
- package/dist/react/components/AppChromeHeader.js.map +0 -1
- package/dist/react/components/BrandLogo.d.ts.map +0 -1
- package/dist/react/components/BrandLogo.js.map +0 -1
- package/dist/react/components/CompactToggle.d.ts.map +0 -1
- package/dist/react/components/CompactToggle.js.map +0 -1
- package/dist/react/components/ComponentKitPreview.d.ts.map +0 -1
- package/dist/react/components/ComponentKitPreview.js.map +0 -1
- package/dist/react/components/CustomSelect.d.ts.map +0 -1
- package/dist/react/components/CustomSelect.js.map +0 -1
- package/dist/react/components/EdgeScrollZones.d.ts.map +0 -1
- package/dist/react/components/EdgeScrollZones.js.map +0 -1
- package/dist/react/components/EditorIcon.d.ts.map +0 -1
- package/dist/react/components/EditorIcon.js.map +0 -1
- package/dist/react/components/ExportDiagnosticsButton.d.ts.map +0 -1
- package/dist/react/components/ExportDiagnosticsButton.js.map +0 -1
- package/dist/react/components/FileImportPanel.d.ts.map +0 -1
- package/dist/react/components/FileImportPanel.js.map +0 -1
- package/dist/react/components/HeaderActionsMenu.d.ts.map +0 -1
- package/dist/react/components/HeaderActionsMenu.js.map +0 -1
- package/dist/react/components/Icon.d.ts.map +0 -1
- package/dist/react/components/Icon.js.map +0 -1
- package/dist/react/components/ImportChoice.d.ts.map +0 -1
- package/dist/react/components/ImportChoice.js.map +0 -1
- package/dist/react/components/KitErrorBoundary.d.ts.map +0 -1
- package/dist/react/components/KitErrorBoundary.js.map +0 -1
- package/dist/react/components/LanguageMenu.d.ts.map +0 -1
- package/dist/react/components/LanguageMenu.js.map +0 -1
- package/dist/react/components/Loading.d.ts.map +0 -1
- package/dist/react/components/Loading.js.map +0 -1
- package/dist/react/components/Notice.d.ts.map +0 -1
- package/dist/react/components/Notice.js.map +0 -1
- package/dist/react/components/OnboardingChipField.d.ts.map +0 -1
- package/dist/react/components/OnboardingChipField.js.map +0 -1
- package/dist/react/components/OnboardingDropdown.d.ts.map +0 -1
- package/dist/react/components/OnboardingDropdown.js.map +0 -1
- package/dist/react/components/OnboardingPanelHeader.d.ts.map +0 -1
- package/dist/react/components/OnboardingPanelHeader.js.map +0 -1
- package/dist/react/components/OptionCards.d.ts.map +0 -1
- package/dist/react/components/OptionCards.js.map +0 -1
- package/dist/react/components/PaletteTweaks.d.ts.map +0 -1
- package/dist/react/components/PaletteTweaks.js.map +0 -1
- package/dist/react/components/PillButton.d.ts.map +0 -1
- package/dist/react/components/PillButton.js.map +0 -1
- package/dist/react/components/PopoverItem.d.ts.map +0 -1
- package/dist/react/components/PopoverItem.js.map +0 -1
- package/dist/react/components/PopoverMenu.d.ts.map +0 -1
- package/dist/react/components/PopoverMenu.js.map +0 -1
- package/dist/react/components/RemixIcon.d.ts.map +0 -1
- package/dist/react/components/RemixIcon.js.map +0 -1
- package/dist/react/components/StatCard.d.ts.map +0 -1
- package/dist/react/components/StatCard.js.map +0 -1
- package/dist/react/components/Toast.d.ts.map +0 -1
- package/dist/react/components/Toast.js.map +0 -1
- package/dist/react/components/ToggleRow.d.ts.map +0 -1
- package/dist/react/components/ToggleRow.js.map +0 -1
- package/dist/react/components/TokenChip.d.ts.map +0 -1
- package/dist/react/components/TokenChip.js.map +0 -1
- package/dist/react/components/TooltipLayer.d.ts.map +0 -1
- package/dist/react/components/TooltipLayer.js.map +0 -1
- package/dist/react/components/ValueChip.d.ts.map +0 -1
- package/dist/react/components/ValueChip.js.map +0 -1
- package/dist/react/components/WorkingDirPicker.d.ts.map +0 -1
- package/dist/react/components/WorkingDirPicker.js.map +0 -1
- package/dist/react/components/agent-icon-data-uris.generated.d.ts.map +0 -1
- package/dist/react/components/agent-icon-data-uris.generated.js.map +0 -1
- package/dist/react/hooks/useBrandFonts.d.ts.map +0 -1
- package/dist/react/hooks/useBrandFonts.js.map +0 -1
- package/dist/react/hooks/useCoalescedCallback.d.ts.map +0 -1
- package/dist/react/hooks/useCoalescedCallback.js.map +0 -1
- package/dist/react/hooks/useDebouncedValue.d.ts.map +0 -1
- package/dist/react/hooks/useDebouncedValue.js.map +0 -1
- package/dist/react/hooks/useEdgeAutoScroll.d.ts.map +0 -1
- package/dist/react/hooks/useEdgeAutoScroll.js.map +0 -1
- package/dist/react/hooks/useInView.d.ts.map +0 -1
- package/dist/react/hooks/useInView.js.map +0 -1
- package/dist/react/hooks/useResizableSplitPane.d.ts.map +0 -1
- package/dist/react/hooks/useResizableSplitPane.js.map +0 -1
- package/dist/react/hooks/useStableHandler.d.ts.map +0 -1
- package/dist/react/hooks/useStableHandler.js.map +0 -1
- package/dist/react/mcp-ui/McpUiHost.d.ts.map +0 -1
- package/dist/react/mcp-ui/McpUiHost.js.map +0 -1
- package/dist/react/mcp-ui/host-message-source.d.ts.map +0 -1
- package/dist/react/mcp-ui/host-message-source.js.map +0 -1
- package/dist/react/mcp-ui/index.d.ts.map +0 -1
- package/dist/react/mcp-ui/index.js.map +0 -1
- package/dist/react/mcp-ui/useMcpUiHost.d.ts.map +0 -1
- package/dist/react/mcp-ui/useMcpUiHost.js.map +0 -1
- package/dist/renderers/annotation-canvas/dependencies.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/dependencies.js.map +0 -1
- package/dist/renderers/annotation-canvas/drawing.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/drawing.js.map +0 -1
- package/dist/renderers/annotation-canvas/index.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/index.js.map +0 -1
- package/dist/renderers/annotation-canvas/ports.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/ports.js.map +0 -1
- package/dist/renderers/annotation-canvas/react/components/AnnotationCanvas.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/react/components/AnnotationCanvas.js.map +0 -1
- package/dist/renderers/annotation-canvas/react/components/icons.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/react/components/icons.js.map +0 -1
- package/dist/renderers/annotation-canvas/react/hooks/useAnnotationCanvas.controller.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/react/hooks/useAnnotationCanvas.controller.js.map +0 -1
- package/dist/renderers/annotation-canvas/react/hooks/useAnnotationCanvas.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/react/hooks/useAnnotationCanvas.js.map +0 -1
- package/dist/renderers/annotation-canvas/rules.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/rules.js.map +0 -1
- package/dist/renderers/annotation-canvas/types.d.ts.map +0 -1
- package/dist/renderers/annotation-canvas/types.js.map +0 -1
- package/dist/renderers/html-utils.d.ts.map +0 -1
- package/dist/renderers/html-utils.js.map +0 -1
- package/dist/renderers/index.d.ts.map +0 -1
- package/dist/renderers/index.js.map +0 -1
- package/dist/renderers/new-tab-preview.d.ts.map +0 -1
- package/dist/renderers/new-tab-preview.js.map +0 -1
- package/dist/renderers/preview-modal-shell/index.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/index.js.map +0 -1
- package/dist/renderers/preview-modal-shell/react/components/PreviewModalShell.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/react/components/PreviewModalShell.js.map +0 -1
- package/dist/renderers/preview-modal-shell/react/components/icons.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/react/components/icons.js.map +0 -1
- package/dist/renderers/preview-modal-shell/react/hooks/usePreviewModalShell.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/react/hooks/usePreviewModalShell.js.map +0 -1
- package/dist/renderers/preview-modal-shell/rules.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/rules.js.map +0 -1
- package/dist/renderers/preview-modal-shell/types.d.ts.map +0 -1
- package/dist/renderers/preview-modal-shell/types.js.map +0 -1
- package/dist/renderers/react/components/ArtifactView.d.ts.map +0 -1
- package/dist/renderers/react/components/ArtifactView.js.map +0 -1
- package/dist/renderers/react/components/SrcDocSandbox.d.ts.map +0 -1
- package/dist/renderers/react/components/SrcDocSandbox.js.map +0 -1
- package/dist/renderers/react/i18n.d.ts.map +0 -1
- package/dist/renderers/react/i18n.js.map +0 -1
- package/dist/renderers/registry.d.ts.map +0 -1
- package/dist/renderers/registry.js.map +0 -1
- package/dist/renderers/renderers/html.d.ts.map +0 -1
- package/dist/renderers/renderers/html.js.map +0 -1
- package/dist/renderers/renderers/index.d.ts.map +0 -1
- package/dist/renderers/renderers/index.js.map +0 -1
- package/dist/renderers/renderers/markdown.d.ts.map +0 -1
- package/dist/renderers/renderers/markdown.js.map +0 -1
- package/dist/renderers/renderers/react-component.d.ts.map +0 -1
- package/dist/renderers/renderers/react-component.js.map +0 -1
- package/dist/renderers/renderers/svg.d.ts.map +0 -1
- package/dist/renderers/renderers/svg.js.map +0 -1
- package/dist/renderers/sandbox-bridge.d.ts.map +0 -1
- package/dist/renderers/sandbox-bridge.js.map +0 -1
- package/dist/renderers/sandboxed-document.d.ts.map +0 -1
- package/dist/renderers/sandboxed-document.js.map +0 -1
- package/dist/renderers/shiki.d.ts.map +0 -1
- package/dist/renderers/shiki.js.map +0 -1
- package/dist/renderers/srcdoc/bridge.d.ts.map +0 -1
- package/dist/renderers/srcdoc/bridge.js.map +0 -1
- package/dist/renderers/srcdoc/build.d.ts.map +0 -1
- package/dist/renderers/srcdoc/build.js.map +0 -1
- package/dist/renderers/srcdoc/index.d.ts.map +0 -1
- package/dist/renderers/srcdoc/index.js.map +0 -1
- package/dist/renderers/types.d.ts.map +0 -1
- package/dist/renderers/types.js.map +0 -1
- package/dist/renderers/url-load-decision.d.ts.map +0 -1
- package/dist/renderers/url-load-decision.js.map +0 -1
- package/dist/utils/appearance.d.ts.map +0 -1
- package/dist/utils/appearance.js.map +0 -1
- package/dist/utils/auto-open-file.d.ts.map +0 -1
- package/dist/utils/auto-open-file.js.map +0 -1
- package/dist/utils/color-math.d.ts.map +0 -1
- package/dist/utils/color-math.js.map +0 -1
- package/dist/utils/copy-to-clipboard.d.ts.map +0 -1
- package/dist/utils/copy-to-clipboard.js.map +0 -1
- package/dist/utils/design-md.d.ts.map +0 -1
- package/dist/utils/design-md.js.map +0 -1
- package/dist/utils/dom-subscriptions.d.ts.map +0 -1
- package/dist/utils/dom-subscriptions.js.map +0 -1
- package/dist/utils/endpoint-policy.d.ts.map +0 -1
- package/dist/utils/endpoint-policy.js.map +0 -1
- package/dist/utils/file-system-errors.d.ts.map +0 -1
- package/dist/utils/file-system-errors.js.map +0 -1
- package/dist/utils/file-transfer.d.ts.map +0 -1
- package/dist/utils/file-transfer.js.map +0 -1
- package/dist/utils/ime-composing.d.ts.map +0 -1
- package/dist/utils/ime-composing.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/localized-url.d.ts.map +0 -1
- package/dist/utils/localized-url.js.map +0 -1
- package/dist/utils/markdown-scroll-sync.d.ts.map +0 -1
- package/dist/utils/markdown-scroll-sync.js.map +0 -1
- package/dist/utils/notifications.d.ts.map +0 -1
- package/dist/utils/notifications.js.map +0 -1
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/platform.js.map +0 -1
- package/dist/utils/polygon-selection.d.ts.map +0 -1
- package/dist/utils/polygon-selection.js.map +0 -1
- package/dist/utils/scroll-tabs-with-wheel.d.ts.map +0 -1
- package/dist/utils/scroll-tabs-with-wheel.js.map +0 -1
- package/dist/utils/smooth-scroll-to-top.d.ts.map +0 -1
- package/dist/utils/smooth-scroll-to-top.js.map +0 -1
- package/dist/utils/sse.d.ts.map +0 -1
- package/dist/utils/sse.js.map +0 -1
- package/dist/utils/timezone.d.ts.map +0 -1
- package/dist/utils/timezone.js.map +0 -1
- package/dist/utils/uuid.d.ts.map +0 -1
- package/dist/utils/uuid.js.map +0 -1
- package/dist/utils/visual-stability.d.ts.map +0 -1
- package/dist/utils/visual-stability.js.map +0 -1
- package/dist/utils/zip.d.ts.map +0 -1
- package/dist/utils/zip.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { useEffect, useRef } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
2
2
|
import grapesjs, {} from 'grapesjs';
|
|
3
3
|
import { applyCanvasContentWrapper } from '../../canvas-content-wrapper.js';
|
|
4
4
|
import { applyCanvasEmbedPlaceholders } from '../../canvas-embed-placeholders.js';
|
|
5
|
-
import { buildCanvasStyleConfig } from '../../canvas-style.js';
|
|
5
|
+
import { buildCanvasStyleConfig, CANVAS_STYLES_PENDING_CLASS } from '../../canvas-style.js';
|
|
6
6
|
import { prettifyCss } from '../../css.js';
|
|
7
|
+
import { indexElementSourceRanges, pathKey, spliceElementInner } from '../../source-splice.js';
|
|
7
8
|
/**
|
|
8
9
|
* @file `InteractiveHtmlEditor`'s GrapesJS lifecycle: construct the editor once per mount against
|
|
9
10
|
* the container ref, wire content-change notifications out, and tear the editor down on unmount.
|
|
@@ -38,10 +39,13 @@ const PROTECTED_ELEMENT_TYPE = 'protected-element';
|
|
|
38
39
|
const RTE_ACTIONS = ['bold', 'italic', 'link'];
|
|
39
40
|
/**
|
|
40
41
|
* Registers the `protected-element` component type so any parsed element `isProtectedElement`
|
|
41
|
-
* recognizes
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* recognizes becomes one atomic block: its content can never be edited (excluded from RTE
|
|
43
|
+
* content-editing, including as a nested island inside a `text` component), dropped into, or styled,
|
|
44
|
+
* but the element itself is selectable and can be deliberately moved, copied or deleted like any other
|
|
45
|
+
* block. Selectable matters for safety: a non-selectable element hands a click to its nearest
|
|
46
|
+
* selectable ancestor, so clicking an embed selected the block around it and Delete then removed that
|
|
47
|
+
* block together with the embed. Pair it with `applyCanvasEmbedPlaceholders`, which makes the marker
|
|
48
|
+
* the clickable surface of its card. Passed as a `plugins` entry so it registers before
|
|
45
49
|
* `editor.setComponents` parses the initial `html` (see `initInteractiveHtmlEditor` below).
|
|
46
50
|
*
|
|
47
51
|
* @complexity O(1) — one type registration; the per-element check GrapesJS then runs during parsing
|
|
@@ -54,15 +58,16 @@ function registerProtectedElementType(editor, isProtectedElement) {
|
|
|
54
58
|
model: {
|
|
55
59
|
defaults: {
|
|
56
60
|
editable: false,
|
|
57
|
-
draggable: false,
|
|
58
61
|
droppable: false,
|
|
59
|
-
|
|
60
|
-
selectable: false,
|
|
61
|
-
highlightable: false,
|
|
62
|
-
hoverable: false,
|
|
62
|
+
stylable: false,
|
|
63
63
|
layerable: false,
|
|
64
64
|
badgable: false,
|
|
65
|
-
|
|
65
|
+
selectable: true,
|
|
66
|
+
hoverable: true,
|
|
67
|
+
highlightable: true,
|
|
68
|
+
removable: true,
|
|
69
|
+
draggable: true,
|
|
70
|
+
copyable: true,
|
|
66
71
|
},
|
|
67
72
|
},
|
|
68
73
|
});
|
|
@@ -77,34 +82,262 @@ function initInteractiveHtmlEditor(container, html, isProtectedElement, canvasSt
|
|
|
77
82
|
panels: { defaults: [] },
|
|
78
83
|
blockManager: { blocks: [] },
|
|
79
84
|
richTextEditor: { actions: RTE_ACTIONS },
|
|
85
|
+
// Default `true`. Left `true`, GrapesJS rewrites every inline `style="…"` into a generated
|
|
86
|
+
// `#iXXXX` CSS rule the moment ANY edit triggers a re-sync — including on elements the operator
|
|
87
|
+
// never touched — which is one of Bug C's root-cause symptoms (see this repo's `pages-redo` plan,
|
|
88
|
+
// "Bug C"). `false` here is the editor-wide config half of that fix; `serializeCleaned` below is
|
|
89
|
+
// the other half (the splice path does not depend on this at all, since it never re-serializes
|
|
90
|
+
// untouched elements from the component model in the first place).
|
|
91
|
+
avoidInlineStyle: false,
|
|
80
92
|
canvas: buildCanvasStyleConfig(canvasStyling),
|
|
81
93
|
plugins: isProtectedElement
|
|
82
94
|
? [(editor) => registerProtectedElementType(editor, isProtectedElement)]
|
|
83
95
|
: [],
|
|
84
96
|
});
|
|
85
97
|
}
|
|
98
|
+
/** Mirrors `source-splice.ts`'s own `UNINDEXED_TAGS` filter, but for GrapesJS's live component tree
|
|
99
|
+
* rather than a parsed HTML string: `textnode` and `comment` components never consume a path slot,
|
|
100
|
+
* matching how `indexElementSourceRanges` numbers the original string. No equivalent check is needed
|
|
101
|
+
* for `style`/`script` here — GrapesJS never represents either as a tree component in the first
|
|
102
|
+
* place (moved into `CssComposer`, or dropped outright), so a live sibling list already excludes
|
|
103
|
+
* them without this hook's help. */
|
|
104
|
+
function isPathableComponent(component) {
|
|
105
|
+
return !component.is('textnode') && !component.is('comment');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* `component`'s element-only child path from the editor's wrapper root, in the exact numbering
|
|
109
|
+
* scheme `indexElementSourceRanges` uses for the original HTML string — so a path computed here can
|
|
110
|
+
* be looked up directly against that index. Returns `null` only if `component` (or an ancestor)
|
|
111
|
+
* cannot be found in its own parent's `components()` collection, which is not reachable for a live
|
|
112
|
+
* component an actual GrapesJS event just handed this hook; kept as a defensive guard rather than
|
|
113
|
+
* assumed away, the same convention `canvas-embed-placeholders.ts`'s own "Unreachable ... defensive
|
|
114
|
+
* only" comment uses for its analogous case.
|
|
115
|
+
*
|
|
116
|
+
* @complexity O(d + s) — d = depth from the wrapper, s = total siblings visited across every
|
|
117
|
+
* ancestor level. Editor documents in this product are shallow; not a hot path.
|
|
118
|
+
*/
|
|
119
|
+
function computeComponentPath(component) {
|
|
120
|
+
const path = [];
|
|
121
|
+
let current = component;
|
|
122
|
+
for (;;) {
|
|
123
|
+
const parent = current.parent();
|
|
124
|
+
if (!parent)
|
|
125
|
+
return path;
|
|
126
|
+
const siblings = parent.components().models;
|
|
127
|
+
const at = siblings.indexOf(current);
|
|
128
|
+
if (at === -1)
|
|
129
|
+
return null; // Unreachable for a live component; defensive only.
|
|
130
|
+
const elementIndex = siblings.slice(0, at).filter(isPathableComponent).length;
|
|
131
|
+
path.unshift(elementIndex);
|
|
132
|
+
current = parent;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
86
135
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* component model, which has no CSS in it at all — reproduced with a real page's content: one text
|
|
93
|
-
* edit took `getHtml()`'s output from 8215 characters down to 3160, `<style>` block and all rules
|
|
94
|
-
* gone, the typed edit itself the only thing that survived). `keepUnusedStyles: true` on `getCss()`
|
|
95
|
-
* matters here specifically: real documents commonly carry `@media` blocks and `::before`/`::after`
|
|
96
|
-
* rules that don't correspond to any single "matched" component in the tree — GrapesJS's default CSS
|
|
97
|
-
* export can drop rules it doesn't consider currently referenced, which would silently re-lose exactly
|
|
98
|
-
* the kind of rule a real design (dark-mode variants, decorative pseudo-elements) depends on.
|
|
136
|
+
* Records (or overwrites) the latest inner HTML for the nearest `text` component whose content
|
|
137
|
+
* changed, keyed by its element-only path. Silently ignores anything that is not a `text` component
|
|
138
|
+
* — this is the mechanism that keeps a non-text element (a host's embed marker `<div>`, an image, a
|
|
139
|
+
* plain container) from ever becoming a splice target, even if some other GrapesJS event happens to
|
|
140
|
+
* name it as its argument — and anything whose path cannot be resolved from the live tree.
|
|
99
141
|
*/
|
|
100
|
-
function
|
|
101
|
-
|
|
102
|
-
|
|
142
|
+
function recordDirtyTextEdit(component, dirty) {
|
|
143
|
+
if (!component || !component.is('text'))
|
|
144
|
+
return;
|
|
145
|
+
const path = computeComponentPath(component);
|
|
146
|
+
if (!path)
|
|
147
|
+
return;
|
|
148
|
+
dirty.set(pathKey(path), { path, tagName: component.tagName.toLowerCase(), component });
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* True when `component` sits inside a `text` component: the inline and textnode children GrapesJS's
|
|
152
|
+
* `syncContent` removes and re-adds every time an RTE session closes. That churn is part of a text
|
|
153
|
+
* edit, which the splice already covers, not a block edit. A just-removed component has no `parent()`
|
|
154
|
+
* any more, so the walk starts from `prevColl.parent` (the collection it was removed from).
|
|
155
|
+
*
|
|
156
|
+
* @complexity O(d) in the component's depth.
|
|
157
|
+
*/
|
|
158
|
+
function isInsideTextComponent(component) {
|
|
159
|
+
let current = component.parent() ?? component.prevColl?.parent;
|
|
160
|
+
while (current) {
|
|
161
|
+
if (current.is('text'))
|
|
162
|
+
return true;
|
|
163
|
+
current = current.parent();
|
|
164
|
+
}
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
/** Dev-only, so a fallback is never silent — see `serializeWithSplice` for each trigger this names. */
|
|
168
|
+
function warnFallback(reason) {
|
|
169
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
170
|
+
console.warn(`[useInteractiveHtmlEditor] falling back to full re-serialization: ${reason}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Fallback whole-document serialization for when the lossless splice (see `serializeWithSplice`)
|
|
175
|
+
* cannot be trusted. This is the "cleaned" formula from this repo's `pages-redo` plan ("Bug C"), and
|
|
176
|
+
* differs from the whole-document serialization this hook used before the splice existed:
|
|
177
|
+
* `avoidProtected: true` on `getCss()` drops GrapesJS's own `* { box-sizing: border-box; } body
|
|
178
|
+
* {margin: 0;}` block, which GrapesJS otherwise prepends even to a page with no CSS of its own; and
|
|
179
|
+
* `getWrapper().getInnerHTML()` — the wrapper's INNER content — omits the `<body>` tag `editor.
|
|
180
|
+
* getHtml()` serializes the wrapper component itself as. Combined with `avoidInlineStyle: false` on
|
|
181
|
+
* the editor's own config (see `initInteractiveHtmlEditor`), inline `style="…"` attributes also
|
|
182
|
+
* survive here instead of being rewritten into generated `#iXXXX` CSS rules. Still not a byte-
|
|
183
|
+
* identical round trip — this is a full re-serialization from GrapesJS's component model, which
|
|
184
|
+
* cannot recover the original string's entities or authored formatting — just the least-lossy shape
|
|
185
|
+
* available when a true splice is not possible.
|
|
186
|
+
*
|
|
187
|
+
* `keepUnusedStyles: true` carries over unchanged from the serialization this replaces: real
|
|
188
|
+
* documents commonly carry `@media` blocks and `::before`/`::after` rules that don't correspond to
|
|
189
|
+
* any single "matched" component in the tree, which GrapesJS's default CSS export can otherwise drop.
|
|
190
|
+
*/
|
|
191
|
+
function serializeCleaned(editor) {
|
|
192
|
+
const css = editor.getCss({ avoidProtected: true, keepUnusedStyles: true });
|
|
193
|
+
const wrapper = editor.getWrapper();
|
|
194
|
+
// `wrapper` is undefined only before/without a successful init, which cannot be true once this
|
|
195
|
+
// hook's `editor` has fired `update` — defensive only, mirroring `serializeCleaned`'s own doc.
|
|
196
|
+
const html = wrapper ? wrapper.getInnerHTML() : editor.getHtml();
|
|
103
197
|
return css ? `<style>${prettifyCss(css)}</style>${html}` : html;
|
|
104
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Builds this edit cycle's exported HTML. The default path splices every accumulated dirty text edit
|
|
201
|
+
* (see `recordDirtyTextEdit`) back into the ORIGINAL source string via `spliceElementInner` (see
|
|
202
|
+
* `source-splice.ts`), so every other byte — entities, attribute quoting, an untouched embed marker,
|
|
203
|
+
* unrelated formatting — passes through unchanged instead of being rebuilt from GrapesJS's component
|
|
204
|
+
* model. Falls back to `serializeCleaned` (and warns via `warnFallback`, so it is never silent)
|
|
205
|
+
* whenever that guarantee cannot be trusted:
|
|
206
|
+
* - `structuralChange` — a block was added or removed since mount (a block move, clone, or delete;
|
|
207
|
+
* a move fires a remove then an add). Its value names the first such event, for the warning. The
|
|
208
|
+
* child churn inside a text component that every RTE close causes does not count (see
|
|
209
|
+
* `isInsideTextComponent`); that is a text edit, which the splice covers. Every dirty path's offset was computed against the
|
|
210
|
+
* pristine `original` string; once the LIVE tree's shape has diverged from it, those offsets (and
|
|
211
|
+
* even the paths themselves) can silently address the wrong element instead of failing loudly, so
|
|
212
|
+
* this is checked first and unconditionally, regardless of what is or isn't in `dirty`. There is no
|
|
213
|
+
* path back to `false` once this flips — a later purely-textual edit still cannot trust offsets
|
|
214
|
+
* computed before the structural change, so the whole rest of the mount stays on the cleaned path.
|
|
215
|
+
* - `dirty` is empty — `update` fired (a real content/style/attribute mutation happened) but no
|
|
216
|
+
* text-component edit was ever recorded for it. Nothing addressable means nothing spliceable.
|
|
217
|
+
* - any individual `spliceElementInner` call returns `null` — that path's element is no longer where
|
|
218
|
+
* it was, or its tag no longer matches what the live component believes.
|
|
219
|
+
*
|
|
220
|
+
* Dirty edits are applied in descending original-offset order (highest first): a splice at a later
|
|
221
|
+
* offset never shifts the byte positions of anything before it, so replaying strictly back-to-front
|
|
222
|
+
* lets every subsequent `spliceElementInner` call re-locate its own (still-untouched-until-its-turn)
|
|
223
|
+
* range correctly without this function tracking running offset deltas itself.
|
|
224
|
+
*
|
|
225
|
+
* @complexity O(n·k) where n = size of `original` (each of up to k dirty splices re-indexes the
|
|
226
|
+
* current string internally) and k = number of dirty edits accumulated this mount — small in
|
|
227
|
+
* practice (an operator edits a handful of elements per session), never a hot loop here.
|
|
228
|
+
*/
|
|
229
|
+
function serializeWithSplice(editor, original, dirty, structuralChange) {
|
|
230
|
+
if (structuralChange) {
|
|
231
|
+
warnFallback(`a block was added, moved, copied or deleted since mount (first: ${structuralChange})`);
|
|
232
|
+
return serializeCleaned(editor);
|
|
233
|
+
}
|
|
234
|
+
if (dirty.size === 0) {
|
|
235
|
+
warnFallback('no text edit was recorded for this change');
|
|
236
|
+
return serializeCleaned(editor);
|
|
237
|
+
}
|
|
238
|
+
const originalIndex = indexElementSourceRanges(original);
|
|
239
|
+
const ordered = [...dirty.values()].sort((a, b) => {
|
|
240
|
+
const aStart = originalIndex.get(pathKey(a.path))?.start ?? -1;
|
|
241
|
+
const bStart = originalIndex.get(pathKey(b.path))?.start ?? -1;
|
|
242
|
+
return bStart - aStart;
|
|
243
|
+
});
|
|
244
|
+
let result = original;
|
|
245
|
+
for (const edit of ordered) {
|
|
246
|
+
const spliced = spliceElementInner(result, edit.path, edit.tagName, edit.component.getInnerHTML());
|
|
247
|
+
if (spliced === null) {
|
|
248
|
+
warnFallback(`element at path "${pathKey(edit.path)}" could not be spliced (removed, or its tag drifted)`);
|
|
249
|
+
return serializeCleaned(editor);
|
|
250
|
+
}
|
|
251
|
+
result = spliced;
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Ends whatever RTE session is currently open, so its pending edit syncs into the component model
|
|
257
|
+
* before `flush` reads it — GrapesJS only writes an RTE session's edited text into the model when
|
|
258
|
+
* that session closes (`disableEditing`/`syncContent`), never on every keystroke, so a save or
|
|
259
|
+
* unmount that skips this step silently loses the last, still-open edit. A throw from
|
|
260
|
+
* `disableEditing` (e.g. GrapesJS internals mid-teardown) must never block `flush` from still
|
|
261
|
+
* returning whatever was already recorded, so it is swallowed here rather than propagated.
|
|
262
|
+
*
|
|
263
|
+
* @complexity O(1) plus whatever the editor's own `disableEditing` costs.
|
|
264
|
+
*/
|
|
265
|
+
async function disableActiveTextEditing(editor) {
|
|
266
|
+
const editing = editor.getEditing();
|
|
267
|
+
if (!editing)
|
|
268
|
+
return;
|
|
269
|
+
try {
|
|
270
|
+
await editing.getView()?.disableEditing?.();
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// Swallowed intentionally — see this function's doc.
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/** Hard cap on how long the canvas can stay hidden waiting for its theme stylesheet(s) (Bug B, Slice
|
|
277
|
+
* B1, this repo's `pages-redo` plan) — a dead URL or a hung dev-server reload must never hide the
|
|
278
|
+
* editor forever. */
|
|
279
|
+
const STYLESHEET_SETTLE_TIMEOUT_MS = 3000;
|
|
280
|
+
/**
|
|
281
|
+
* Hides `body` behind {@link CANVAS_STYLES_PENDING_CLASS} until every `<link rel="stylesheet">`
|
|
282
|
+
* GrapesJS's `canvas.styles` config put in the canvas document (`editor.Canvas.getDocument()`) has
|
|
283
|
+
* fired `load` or `error`, or {@link STYLESHEET_SETTLE_TIMEOUT_MS} has elapsed — whichever comes first.
|
|
284
|
+
* Every Interactive mount re-fetches the theme stylesheet (see this repo's `pages-redo` plan, Bug B)
|
|
285
|
+
* with no guaranteed cache short-circuit; GrapesJS's own `FrameView` renders the canvas body without
|
|
286
|
+
* waiting for `<link>`s in `<head>` to resolve, so without this the operator sees raw browser-default
|
|
287
|
+
* styling (Times New Roman, blue links) for however long that fetch takes, or forever if the API is
|
|
288
|
+
* mid-restart. The cap is unconditional, independent of how many stylesheets are still pending.
|
|
289
|
+
*
|
|
290
|
+
* Must be called from `handleLoad`, AFTER the content wrapper and embed placeholder decoration have
|
|
291
|
+
* already run against the same `body` — so even the zero-stylesheet case (this function reveals in the
|
|
292
|
+
* same synchronous call) never shows an undecorated canvas for even one frame.
|
|
293
|
+
*
|
|
294
|
+
* @returns A cleanup callback that cancels the pending timer and detaches any still-registered
|
|
295
|
+
* `load`/`error` listeners. Idempotent — safe to call again (from effect cleanup) after the canvas
|
|
296
|
+
* has already revealed; a no-op then.
|
|
297
|
+
* @complexity O(n) in the number of `<link rel="stylesheet">` elements found — one listener pair per
|
|
298
|
+
* link, no polling.
|
|
299
|
+
*/
|
|
300
|
+
function revealCanvasWhenStylesheetsSettle(editor, body) {
|
|
301
|
+
body.classList.add(CANVAS_STYLES_PENDING_CLASS);
|
|
302
|
+
const canvasDocument = editor.Canvas.getDocument();
|
|
303
|
+
// `getDocument()` returning null is not reachable once `load` has fired on a real editor — defensive
|
|
304
|
+
// only, same convention as this file's other "Unreachable ... defensive only" guards.
|
|
305
|
+
const links = canvasDocument ? Array.from(canvasDocument.querySelectorAll('link[rel="stylesheet"]')) : [];
|
|
306
|
+
let settled = false;
|
|
307
|
+
let timeoutId;
|
|
308
|
+
const pending = new Set();
|
|
309
|
+
const reveal = () => {
|
|
310
|
+
if (settled)
|
|
311
|
+
return;
|
|
312
|
+
settled = true;
|
|
313
|
+
if (timeoutId !== undefined)
|
|
314
|
+
clearTimeout(timeoutId);
|
|
315
|
+
for (const link of pending) {
|
|
316
|
+
link.removeEventListener('load', handleSettle);
|
|
317
|
+
link.removeEventListener('error', handleSettle);
|
|
318
|
+
}
|
|
319
|
+
pending.clear();
|
|
320
|
+
body.classList.remove(CANVAS_STYLES_PENDING_CLASS);
|
|
321
|
+
};
|
|
322
|
+
function handleSettle(event) {
|
|
323
|
+
pending.delete(event.currentTarget);
|
|
324
|
+
if (pending.size === 0)
|
|
325
|
+
reveal();
|
|
326
|
+
}
|
|
327
|
+
for (const link of links) {
|
|
328
|
+
pending.add(link);
|
|
329
|
+
link.addEventListener('load', handleSettle);
|
|
330
|
+
link.addEventListener('error', handleSettle);
|
|
331
|
+
}
|
|
332
|
+
if (pending.size === 0)
|
|
333
|
+
reveal();
|
|
334
|
+
else
|
|
335
|
+
timeoutId = setTimeout(reveal, STYLESHEET_SETTLE_TIMEOUT_MS);
|
|
336
|
+
return reveal;
|
|
337
|
+
}
|
|
105
338
|
/**
|
|
106
339
|
* Owns one GrapesJS `Editor` instance for the lifetime of the calling component's mount. `onChange`
|
|
107
|
-
* fires with the editor's current serialized content (see `
|
|
340
|
+
* fires with the editor's current serialized content (see `serializeWithSplice`) on every content
|
|
108
341
|
* mutation (GrapesJS's `update` event — components, styles, or attributes changing); it is not
|
|
109
342
|
* debounced, so a caller replacing an existing uncontrolled `<textarea>` (which already pushes a full
|
|
110
343
|
* value on every keystroke) sees matching behavior.
|
|
@@ -124,6 +357,15 @@ function serializeEditorContent(editor) {
|
|
|
124
357
|
* `class="frame"` forever, inert and unrendered. `.gjs-frame` — the class `FrameView.render()`
|
|
125
358
|
* assigns — is what callers should select on, never a bare `iframe` under the wrapper.)
|
|
126
359
|
*
|
|
360
|
+
* **`flush()` exists because GrapesJS's RTE only syncs on `disableEditing`, and `update` is
|
|
361
|
+
* double-debounced and never fires after `off()`.** A host that calls `onChange` on every keystroke
|
|
362
|
+
* (like an uncontrolled `<textarea>`) still misses the operator's last edit if they click Save or
|
|
363
|
+
* navigate away while an RTE session is still open: GrapesJS writes that session's text into the
|
|
364
|
+
* component model only when it closes, and by the time a host's save handler runs, this hook has
|
|
365
|
+
* already stopped listening (or the debounce hasn't fired yet). `flush` closes any open RTE session,
|
|
366
|
+
* computes and emits the current content the same way `handleUpdate` does, and hands the result back
|
|
367
|
+
* directly — see its own doc below for exactly what it returns and when.
|
|
368
|
+
*
|
|
127
369
|
* @complexity O(1) setup/teardown. Steady-state cost is GrapesJS's own serialization per edit,
|
|
128
370
|
* proportional to document size — not something this hook controls or should hide a note about
|
|
129
371
|
* beyond that.
|
|
@@ -133,6 +375,9 @@ export function useInteractiveHtmlEditor(html, onChange, isProtectedElement, can
|
|
|
133
375
|
const wrapperRef = useRef(null);
|
|
134
376
|
const onChangeRef = useRef(onChange);
|
|
135
377
|
onChangeRef.current = onChange;
|
|
378
|
+
// Delegated to by the stable `flush` callback returned below. Reset to a no-op on cleanup, before
|
|
379
|
+
// `destroy()` — see the effect's cleanup for why the order matters.
|
|
380
|
+
const flushRef = useRef(async () => undefined);
|
|
136
381
|
useEffect(() => {
|
|
137
382
|
const wrapper = wrapperRef.current;
|
|
138
383
|
if (!wrapper)
|
|
@@ -141,8 +386,73 @@ export function useInteractiveHtmlEditor(html, onChange, isProtectedElement, can
|
|
|
141
386
|
mountEl.style.height = '100%';
|
|
142
387
|
wrapper.appendChild(mountEl);
|
|
143
388
|
const editor = initInteractiveHtmlEditor(mountEl, html, isProtectedElement, canvasStyling);
|
|
144
|
-
|
|
389
|
+
// Splice bookkeeping — see `serializeWithSplice`'s own doc for how these two are used. Plain
|
|
390
|
+
// closure state scoped to this one mount-only effect run (like `editor`/`mountEl` above), not
|
|
391
|
+
// `useRef`: nothing outside this effect ever reads them.
|
|
392
|
+
const dirty = new Map();
|
|
393
|
+
let structuralChange;
|
|
394
|
+
// True once `update` has fired at least once this mount — see `flush`'s "nothing to flush" guard
|
|
395
|
+
// below for why this is tracked separately from `dirty`/`structuralChange` (a style/attribute-only
|
|
396
|
+
// edit fires `update` with neither of those set, and still must not be silently dropped).
|
|
397
|
+
let changed = false;
|
|
398
|
+
// Set inside `handleLoad`, once the canvas body exists — see `revealCanvasWhenStylesheetsSettle`.
|
|
399
|
+
// `undefined` until then (or if `load` never fires before unmount), so cleanup below guards it.
|
|
400
|
+
let cancelStylesheetWait;
|
|
401
|
+
// Embed placeholder cards live only in the canvas DOM, so a structural edit (delete, move, clone,
|
|
402
|
+
// undo) can leave one stale. Repaired on the tick after the edit, once GrapesJS has rendered it;
|
|
403
|
+
// see `applyCanvasEmbedPlaceholders`. Only after `load`: before it, adds are the initial parse.
|
|
404
|
+
let loaded = false;
|
|
405
|
+
let cardRepair;
|
|
406
|
+
const scheduleCardRepair = () => {
|
|
407
|
+
if (!loaded || !describeEmbedPlaceholder || cardRepair !== undefined)
|
|
408
|
+
return;
|
|
409
|
+
cardRepair = setTimeout(() => {
|
|
410
|
+
cardRepair = undefined;
|
|
411
|
+
applyCanvasEmbedPlaceholders(editor.Canvas.getBody(), describeEmbedPlaceholder);
|
|
412
|
+
}, 0);
|
|
413
|
+
};
|
|
414
|
+
const handleUpdate = () => {
|
|
415
|
+
changed = true;
|
|
416
|
+
onChangeRef.current(serializeWithSplice(editor, html, dirty, structuralChange));
|
|
417
|
+
};
|
|
418
|
+
// `component:update:content` fires with the changed component itself as its argument (GrapesJS's
|
|
419
|
+
// general `component:update:{propertyName}` pattern); `rte:disable` fires with `(view, rte)` —
|
|
420
|
+
// the view whose RTE session just closed, `view.model` being the component it edited. Both name
|
|
421
|
+
// the SAME kind of thing (a text component whose content just changed) through two different
|
|
422
|
+
// GrapesJS code paths (a direct model update vs. the RTE toolbar's close), so both feed the one
|
|
423
|
+
// `recordDirtyTextEdit` sink rather than each growing their own tracking.
|
|
424
|
+
const handleContentUpdate = (component) => recordDirtyTextEdit(component, dirty);
|
|
425
|
+
const handleRteDisable = (view) => recordDirtyTextEdit(view?.model, dirty);
|
|
426
|
+
// A block move, copy or delete (the Interactive tab keeps all three, owner decision 2026-09-23)
|
|
427
|
+
// fires `component:add`/`component:remove` on the live tree. Once one fires outside a text
|
|
428
|
+
// component, `serializeWithSplice` stops trusting any offset computed against the original string
|
|
429
|
+
// for the rest of this mount; see its own doc for why this never resets.
|
|
430
|
+
const handleStructuralChange = (event) => (component) => {
|
|
431
|
+
scheduleCardRepair();
|
|
432
|
+
if (structuralChange || (component && isInsideTextComponent(component)))
|
|
433
|
+
return;
|
|
434
|
+
structuralChange = `${event} <${component?.tagName?.toLowerCase() || 'unknown'}>`;
|
|
435
|
+
};
|
|
436
|
+
const handleAdd = handleStructuralChange('component:add');
|
|
437
|
+
const handleRemove = handleStructuralChange('component:remove');
|
|
145
438
|
editor.on('update', handleUpdate);
|
|
439
|
+
editor.on('component:update:content', handleContentUpdate);
|
|
440
|
+
editor.on('rte:disable', handleRteDisable);
|
|
441
|
+
editor.on('component:add', handleAdd);
|
|
442
|
+
editor.on('component:remove', handleRemove);
|
|
443
|
+
// See `flush`'s own doc for why this exists. Closes any open RTE session first (so its pending
|
|
444
|
+
// edit syncs into the model), then emits and returns the current content the same way
|
|
445
|
+
// `handleUpdate` does — except when nothing has changed since mount, matching `serializeWithSplice`'s
|
|
446
|
+
// own "nothing to flush" case: no `update` was ever seen, no text edit was recorded, and no
|
|
447
|
+
// structural change happened either.
|
|
448
|
+
flushRef.current = async () => {
|
|
449
|
+
await disableActiveTextEditing(editor);
|
|
450
|
+
if (!changed && dirty.size === 0 && !structuralChange)
|
|
451
|
+
return undefined;
|
|
452
|
+
const next = serializeWithSplice(editor, html, dirty, structuralChange);
|
|
453
|
+
onChangeRef.current(next);
|
|
454
|
+
return next;
|
|
455
|
+
};
|
|
146
456
|
// `load` fires once the canvas's initial component render is done (`editor.Canvas.getBody()` is
|
|
147
457
|
// populated) — see `applyCanvasContentWrapper`'s own file header for why the wrap has to happen
|
|
148
458
|
// here, against the live canvas, rather than folded into `components` above. Embed placeholders
|
|
@@ -155,16 +465,32 @@ export function useInteractiveHtmlEditor(html, onChange, isProtectedElement, can
|
|
|
155
465
|
applyCanvasContentWrapper(body, canvasStyling.contentWrapper);
|
|
156
466
|
if (describeEmbedPlaceholder)
|
|
157
467
|
applyCanvasEmbedPlaceholders(body, describeEmbedPlaceholder);
|
|
468
|
+
// Runs LAST, after both decorations above — see `revealCanvasWhenStylesheetsSettle`'s own doc
|
|
469
|
+
// for why that order matters even in the zero-stylesheet case.
|
|
470
|
+
cancelStylesheetWait = revealCanvasWhenStylesheetsSettle(editor, body);
|
|
471
|
+
loaded = true;
|
|
158
472
|
};
|
|
159
473
|
editor.on('load', handleLoad);
|
|
160
474
|
return () => {
|
|
475
|
+
// FIRST, before `destroy()` — a `flush()` call racing (or arriving after) unmount must resolve
|
|
476
|
+
// `undefined` without ever touching the about-to-be-destroyed `editor`.
|
|
477
|
+
flushRef.current = async () => undefined;
|
|
161
478
|
editor.off('update', handleUpdate);
|
|
479
|
+
editor.off('component:update:content', handleContentUpdate);
|
|
480
|
+
editor.off('rte:disable', handleRteDisable);
|
|
481
|
+
editor.off('component:add', handleAdd);
|
|
482
|
+
editor.off('component:remove', handleRemove);
|
|
162
483
|
editor.off('load', handleLoad);
|
|
484
|
+
cancelStylesheetWait?.();
|
|
485
|
+
clearTimeout(cardRepair);
|
|
163
486
|
editor.destroy();
|
|
164
487
|
mountEl.remove();
|
|
165
488
|
};
|
|
166
489
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally mount-only, see file header
|
|
167
490
|
}, []);
|
|
168
|
-
|
|
491
|
+
// Stable across renders (the effect above mutates `flushRef.current`, not this callback's identity)
|
|
492
|
+
// so a caller can safely pass `flush` into a `useCallback`/`useImperativeHandle` dependency array.
|
|
493
|
+
const flush = useCallback(() => flushRef.current(), []);
|
|
494
|
+
return { containerRef: wrapperRef, flush };
|
|
169
495
|
}
|
|
170
496
|
//# sourceMappingURL=useInteractiveHtmlEditor.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An element's position among its ancestors' **element-only** children, ignoring text nodes,
|
|
3
|
+
* comments, and `style`/`script` elements at every level. `[0, 1]` means "the second element
|
|
4
|
+
* child of the first element child of the fragment root".
|
|
5
|
+
*/
|
|
6
|
+
export type ElementPath = readonly number[];
|
|
7
|
+
/** One element's source byte range, as located in the original HTML string that was indexed. */
|
|
8
|
+
export interface ElementSourceRange {
|
|
9
|
+
/** Byte offset of the first character of the element's inner content (just after `startTag`). */
|
|
10
|
+
readonly start: number;
|
|
11
|
+
/** Byte offset just past the element's inner content (just before `endTag`, if any). */
|
|
12
|
+
readonly end: number;
|
|
13
|
+
/** The element's tag name, so a caller can detect drift between what it expects and what parsed. */
|
|
14
|
+
readonly tagName: string;
|
|
15
|
+
}
|
|
16
|
+
/** Canonical string key for a path, for use as a `Map` key (`Map<pathKey(path), ...>`). */
|
|
17
|
+
export declare function pathKey(path: ElementPath): string;
|
|
18
|
+
/**
|
|
19
|
+
* Parses `html` once and indexes every reachable element's inner-content source range by its
|
|
20
|
+
* element-only child path (see `ElementPath`). The same `html` string must be re-indexed after
|
|
21
|
+
* any splice — a returned index is only valid against the exact string it was built from, since
|
|
22
|
+
* every offset is a byte position into that specific string.
|
|
23
|
+
*
|
|
24
|
+
* @param html Source HTML to index. Parsed as a fragment (`parse5.parseFragment`), so a leading
|
|
25
|
+
* `<html>`/`<body>` wrapper is not assumed and is not specially handled here.
|
|
26
|
+
* @returns A map from `pathKey(path)` to that element's source range. `style`/`script` elements,
|
|
27
|
+
* comments, and text nodes are never present as entries or path slots.
|
|
28
|
+
* @complexity O(n) in the size of `html` (parse5's own parse cost dominates; indexing itself is
|
|
29
|
+
* a single linear tree walk).
|
|
30
|
+
* @overallScore 100
|
|
31
|
+
*/
|
|
32
|
+
export declare function indexElementSourceRanges(html: string): Map<string, ElementSourceRange>;
|
|
33
|
+
/**
|
|
34
|
+
* Replaces only the inner-content bytes of the element at `path` with `newInner`, leaving every
|
|
35
|
+
* other byte of `html` — including whitespace, attribute quoting, and entities — untouched.
|
|
36
|
+
*
|
|
37
|
+
* Returns `null`, never a wrong splice, when the address cannot be trusted: `path` does not
|
|
38
|
+
* resolve to any indexed element (the document's shape changed since the path was computed), or
|
|
39
|
+
* it resolves to an element whose tag does not match `expectedTagName` (the caller's own model
|
|
40
|
+
* and the source string have drifted apart). Callers must treat `null` as a signal to fall back
|
|
41
|
+
* to a full re-serialization — never retry with a guessed range.
|
|
42
|
+
*
|
|
43
|
+
* @param html Original source string (not a previously-spliced one — see this module's file
|
|
44
|
+
* header on re-splicing from the original on every edit rather than compounding offsets).
|
|
45
|
+
* @param path Element-only child path of the element to edit, as produced by
|
|
46
|
+
* `indexElementSourceRanges`.
|
|
47
|
+
* @param expectedTagName Tag name the caller believes lives at `path` (e.g. the GrapesJS
|
|
48
|
+
* component's own tag). A mismatch is treated the same as an unresolved path.
|
|
49
|
+
* @param newInner Replacement inner HTML for the addressed element.
|
|
50
|
+
* @returns The spliced string, or `null` if `path` could not be located or its tag disagreed.
|
|
51
|
+
* @complexity O(n) — dominated by re-indexing `html` (see `indexElementSourceRanges`); the splice
|
|
52
|
+
* itself is two string slices and a concatenation.
|
|
53
|
+
* @overallScore 100
|
|
54
|
+
*/
|
|
55
|
+
export declare function spliceElementInner(html: string, path: ElementPath, expectedTagName: string, newInner: string): string | null;
|
|
56
|
+
//# sourceMappingURL=source-splice.d.ts.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { parseFragment } from 'parse5';
|
|
2
|
+
/** Tags GrapesJS never represents as ordinary tree components — never indexed, never a path slot. */
|
|
3
|
+
const UNINDEXED_TAGS = new Set(['style', 'script']);
|
|
4
|
+
/** Canonical string key for a path, for use as a `Map` key (`Map<pathKey(path), ...>`). */
|
|
5
|
+
export function pathKey(path) {
|
|
6
|
+
return path.join('.');
|
|
7
|
+
}
|
|
8
|
+
function isElement(node) {
|
|
9
|
+
return 'tagName' in node;
|
|
10
|
+
}
|
|
11
|
+
function hasChildNodes(node) {
|
|
12
|
+
return 'childNodes' in node;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Walks one level of element-only children (recursing into each), assigning each a path and
|
|
16
|
+
* recording its source range. `style`/`script` children are skipped without consuming a path slot.
|
|
17
|
+
*
|
|
18
|
+
* @complexity O(n) over the fragment's total node count — each node is visited exactly once.
|
|
19
|
+
*/
|
|
20
|
+
function indexChildren(children, parentPath, out) {
|
|
21
|
+
let elementIndex = 0;
|
|
22
|
+
for (const node of children) {
|
|
23
|
+
if (!isElement(node))
|
|
24
|
+
continue;
|
|
25
|
+
if (UNINDEXED_TAGS.has(node.tagName))
|
|
26
|
+
continue;
|
|
27
|
+
const currentPath = [...parentPath, elementIndex];
|
|
28
|
+
const location = node.sourceCodeLocation;
|
|
29
|
+
if (location) {
|
|
30
|
+
// Void elements (`<br>`, `<img>`) have no `endTag` and no inner content: their range is
|
|
31
|
+
// empty (`start === end`), anchored at the end of the start tag.
|
|
32
|
+
const start = location.startTag ? location.startTag.endOffset : location.endOffset;
|
|
33
|
+
const end = location.endTag ? location.endTag.startOffset : start;
|
|
34
|
+
out.set(pathKey(currentPath), { start, end, tagName: node.tagName });
|
|
35
|
+
}
|
|
36
|
+
if (hasChildNodes(node))
|
|
37
|
+
indexChildren(node.childNodes, currentPath, out);
|
|
38
|
+
elementIndex++;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parses `html` once and indexes every reachable element's inner-content source range by its
|
|
43
|
+
* element-only child path (see `ElementPath`). The same `html` string must be re-indexed after
|
|
44
|
+
* any splice — a returned index is only valid against the exact string it was built from, since
|
|
45
|
+
* every offset is a byte position into that specific string.
|
|
46
|
+
*
|
|
47
|
+
* @param html Source HTML to index. Parsed as a fragment (`parse5.parseFragment`), so a leading
|
|
48
|
+
* `<html>`/`<body>` wrapper is not assumed and is not specially handled here.
|
|
49
|
+
* @returns A map from `pathKey(path)` to that element's source range. `style`/`script` elements,
|
|
50
|
+
* comments, and text nodes are never present as entries or path slots.
|
|
51
|
+
* @complexity O(n) in the size of `html` (parse5's own parse cost dominates; indexing itself is
|
|
52
|
+
* a single linear tree walk).
|
|
53
|
+
* @overallScore 100
|
|
54
|
+
*/
|
|
55
|
+
export function indexElementSourceRanges(html) {
|
|
56
|
+
const fragment = parseFragment(html, { sourceCodeLocationInfo: true });
|
|
57
|
+
const index = new Map();
|
|
58
|
+
indexChildren(fragment.childNodes, [], index);
|
|
59
|
+
return index;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Replaces only the inner-content bytes of the element at `path` with `newInner`, leaving every
|
|
63
|
+
* other byte of `html` — including whitespace, attribute quoting, and entities — untouched.
|
|
64
|
+
*
|
|
65
|
+
* Returns `null`, never a wrong splice, when the address cannot be trusted: `path` does not
|
|
66
|
+
* resolve to any indexed element (the document's shape changed since the path was computed), or
|
|
67
|
+
* it resolves to an element whose tag does not match `expectedTagName` (the caller's own model
|
|
68
|
+
* and the source string have drifted apart). Callers must treat `null` as a signal to fall back
|
|
69
|
+
* to a full re-serialization — never retry with a guessed range.
|
|
70
|
+
*
|
|
71
|
+
* @param html Original source string (not a previously-spliced one — see this module's file
|
|
72
|
+
* header on re-splicing from the original on every edit rather than compounding offsets).
|
|
73
|
+
* @param path Element-only child path of the element to edit, as produced by
|
|
74
|
+
* `indexElementSourceRanges`.
|
|
75
|
+
* @param expectedTagName Tag name the caller believes lives at `path` (e.g. the GrapesJS
|
|
76
|
+
* component's own tag). A mismatch is treated the same as an unresolved path.
|
|
77
|
+
* @param newInner Replacement inner HTML for the addressed element.
|
|
78
|
+
* @returns The spliced string, or `null` if `path` could not be located or its tag disagreed.
|
|
79
|
+
* @complexity O(n) — dominated by re-indexing `html` (see `indexElementSourceRanges`); the splice
|
|
80
|
+
* itself is two string slices and a concatenation.
|
|
81
|
+
* @overallScore 100
|
|
82
|
+
*/
|
|
83
|
+
export function spliceElementInner(html, path, expectedTagName, newInner) {
|
|
84
|
+
const range = indexElementSourceRanges(html).get(pathKey(path));
|
|
85
|
+
if (!range || range.tagName !== expectedTagName)
|
|
86
|
+
return null;
|
|
87
|
+
return html.slice(0, range.start) + newInner + html.slice(range.end);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=source-splice.js.map
|
|
@@ -48,6 +48,8 @@ export const SETTINGS_DIALOG_AR = {
|
|
|
48
48
|
'Copy': 'نسخ',
|
|
49
49
|
'Copy to clipboard': 'نسخ إلى الحافظة',
|
|
50
50
|
'Could not load live models: {message}': 'تعذّر تحميل النماذج المباشرة: {message}',
|
|
51
|
+
'No API key — connection test needs the key from this browser.': 'لا يوجد مفتاح API — يحتاج اختبار الاتصال إلى المفتاح من هذا المتصفح.',
|
|
52
|
+
'No API key — model discovery needs the key from this browser.': 'لا يوجد مفتاح API — يحتاج اكتشاف النماذج إلى المفتاح من هذا المتصفح.',
|
|
51
53
|
'Could not load skills: {error}': 'تعذّر تحميل المهارات: {error}',
|
|
52
54
|
'Could not reach the daemon: {error}': 'تعذّر الوصول إلى الخدمة الخلفية: {error}',
|
|
53
55
|
'Could not reach the server. Showing local changes only.': 'تعذّر الوصول إلى الخادم. تُعرض التغييرات المحلية فقط.',
|
|
@@ -177,7 +179,9 @@ export const SETTINGS_DIALOG_AR = {
|
|
|
177
179
|
'Test notification sent.': 'تم إرسال إشعار الاختبار.',
|
|
178
180
|
'Test successful': 'نجح الاختبار',
|
|
179
181
|
'Testing…': 'جارٍ الاختبار…',
|
|
182
|
+
'This is shorter than any provider API key — check that the whole key was pasted. You can still save and test it.': 'هذا أقصر من أي مفتاح API لأي مزوّد — تحقق من لصق المفتاح كاملاً. لا يزال بإمكانك حفظه واختباره.',
|
|
180
183
|
'This is what a completion notification looks like.': 'هذا شكل إشعار الاكتمال.',
|
|
184
|
+
'This looks like an API key for {vendor}, not {provider}. You can still save and test it.': 'يبدو هذا مفتاح API خاصًا بـ {vendor}، وليس {provider}. لا يزال بإمكانك حفظه واختباره.',
|
|
181
185
|
'This skill ships with the host. Editing it creates your own copy — the original is unaffected.': 'تأتي هذه المهارة مع المضيف. يؤدي تعديلها إلى إنشاء نسختك الخاصة — لا يتأثر الأصل.',
|
|
182
186
|
'Tool details unavailable ({count})': 'تفاصيل الأداة غير متاحة ({count})',
|
|
183
187
|
'Tools': 'الأدوات',
|