lattice-orchestrator 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +58 -0
- package/config/logrotate.conf +15 -0
- package/dist/cli-parser.d.ts +11 -0
- package/dist/cli-parser.d.ts.map +1 -0
- package/dist/cli-parser.js +48 -0
- package/dist/cli-parser.js.map +1 -0
- package/dist/lattice-server.d.ts +70 -0
- package/dist/lattice-server.d.ts.map +1 -0
- package/dist/lattice-server.js +969 -0
- package/dist/lattice-server.js.map +1 -0
- package/dist/mcp-server/index.d.ts +3 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +190 -0
- package/dist/mcp-server/index.js.map +1 -0
- package/dist/mcp-server/lattice-tools.d.ts +15 -0
- package/dist/mcp-server/lattice-tools.d.ts.map +1 -0
- package/dist/mcp-server/lattice-tools.js +366 -0
- package/dist/mcp-server/lattice-tools.js.map +1 -0
- package/dist/middleware/cors-setup.d.ts +7 -0
- package/dist/middleware/cors-setup.d.ts.map +1 -0
- package/dist/middleware/cors-setup.js +8 -0
- package/dist/middleware/cors-setup.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +4 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +27 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/query-parser.d.ts +11 -0
- package/dist/middleware/query-parser.d.ts.map +1 -0
- package/dist/middleware/query-parser.js +68 -0
- package/dist/middleware/query-parser.js.map +1 -0
- package/dist/middleware/request-logger.d.ts +4 -0
- package/dist/middleware/request-logger.d.ts.map +1 -0
- package/dist/middleware/request-logger.js +6 -0
- package/dist/middleware/request-logger.js.map +1 -0
- package/dist/process-daemon/index.d.ts +14 -0
- package/dist/process-daemon/index.d.ts.map +1 -0
- package/dist/process-daemon/index.js +51 -0
- package/dist/process-daemon/index.js.map +1 -0
- package/dist/process-daemon/process-daemon.d.ts +101 -0
- package/dist/process-daemon/process-daemon.d.ts.map +1 -0
- package/dist/process-daemon/process-daemon.js +846 -0
- package/dist/process-daemon/process-daemon.js.map +1 -0
- package/dist/process-daemon/process-manager-client.d.ts +123 -0
- package/dist/process-daemon/process-manager-client.d.ts.map +1 -0
- package/dist/process-daemon/process-manager-client.js +329 -0
- package/dist/process-daemon/process-manager-client.js.map +1 -0
- package/dist/process-daemon/process-manager-interface.d.ts +61 -0
- package/dist/process-daemon/process-manager-interface.d.ts.map +1 -0
- package/dist/process-daemon/process-manager-interface.js +8 -0
- package/dist/process-daemon/process-manager-interface.js.map +1 -0
- package/dist/process-daemon/test-daemon.d.ts +12 -0
- package/dist/process-daemon/test-daemon.d.ts.map +1 -0
- package/dist/process-daemon/test-daemon.js +81 -0
- package/dist/process-daemon/test-daemon.js.map +1 -0
- package/dist/process-daemon/types.d.ts +97 -0
- package/dist/process-daemon/types.d.ts.map +1 -0
- package/dist/process-daemon/types.js +8 -0
- package/dist/process-daemon/types.js.map +1 -0
- package/dist/routes/analysis.routes.d.ts +13 -0
- package/dist/routes/analysis.routes.d.ts.map +1 -0
- package/dist/routes/analysis.routes.js +520 -0
- package/dist/routes/analysis.routes.js.map +1 -0
- package/dist/routes/config.routes.d.ts +4 -0
- package/dist/routes/config.routes.d.ts.map +1 -0
- package/dist/routes/config.routes.js +27 -0
- package/dist/routes/config.routes.js.map +1 -0
- package/dist/routes/conversation.routes.d.ts +43 -0
- package/dist/routes/conversation.routes.d.ts.map +1 -0
- package/dist/routes/conversation.routes.js +79 -0
- package/dist/routes/conversation.routes.js.map +1 -0
- package/dist/routes/filesystem.routes.d.ts +4 -0
- package/dist/routes/filesystem.routes.d.ts.map +1 -0
- package/dist/routes/filesystem.routes.js +86 -0
- package/dist/routes/filesystem.routes.js.map +1 -0
- package/dist/routes/insights.routes.d.ts +17 -0
- package/dist/routes/insights.routes.d.ts.map +1 -0
- package/dist/routes/insights.routes.js +633 -0
- package/dist/routes/insights.routes.js.map +1 -0
- package/dist/routes/lattice.routes.d.ts +10 -0
- package/dist/routes/lattice.routes.d.ts.map +1 -0
- package/dist/routes/lattice.routes.js +123 -0
- package/dist/routes/lattice.routes.js.map +1 -0
- package/dist/routes/license.routes.d.ts +3 -0
- package/dist/routes/license.routes.d.ts.map +1 -0
- package/dist/routes/license.routes.js +95 -0
- package/dist/routes/license.routes.js.map +1 -0
- package/dist/routes/log.routes.d.ts +3 -0
- package/dist/routes/log.routes.d.ts.map +1 -0
- package/dist/routes/log.routes.js +184 -0
- package/dist/routes/log.routes.js.map +1 -0
- package/dist/routes/pending-question.routes.d.ts +9 -0
- package/dist/routes/pending-question.routes.d.ts.map +1 -0
- package/dist/routes/pending-question.routes.js +162 -0
- package/dist/routes/pending-question.routes.js.map +1 -0
- package/dist/routes/permission.routes.d.ts +18 -0
- package/dist/routes/permission.routes.d.ts.map +1 -0
- package/dist/routes/permission.routes.js +370 -0
- package/dist/routes/permission.routes.js.map +1 -0
- package/dist/routes/process-events.routes.d.ts +9 -0
- package/dist/routes/process-events.routes.d.ts.map +1 -0
- package/dist/routes/process-events.routes.js +141 -0
- package/dist/routes/process-events.routes.js.map +1 -0
- package/dist/routes/prototype.routes.d.ts +9 -0
- package/dist/routes/prototype.routes.d.ts.map +1 -0
- package/dist/routes/prototype.routes.js +757 -0
- package/dist/routes/prototype.routes.js.map +1 -0
- package/dist/routes/question.routes.d.ts +8 -0
- package/dist/routes/question.routes.d.ts.map +1 -0
- package/dist/routes/question.routes.js +83 -0
- package/dist/routes/question.routes.js.map +1 -0
- package/dist/routes/session-control.routes.d.ts +29 -0
- package/dist/routes/session-control.routes.d.ts.map +1 -0
- package/dist/routes/session-control.routes.js +455 -0
- package/dist/routes/session-control.routes.js.map +1 -0
- package/dist/routes/session-lifecycle.routes.d.ts +21 -0
- package/dist/routes/session-lifecycle.routes.d.ts.map +1 -0
- package/dist/routes/session-lifecycle.routes.js +256 -0
- package/dist/routes/session-lifecycle.routes.js.map +1 -0
- package/dist/routes/session-query.routes.d.ts +25 -0
- package/dist/routes/session-query.routes.d.ts.map +1 -0
- package/dist/routes/session-query.routes.js +363 -0
- package/dist/routes/session-query.routes.js.map +1 -0
- package/dist/routes/session-stream.routes.d.ts +21 -0
- package/dist/routes/session-stream.routes.d.ts.map +1 -0
- package/dist/routes/session-stream.routes.js +235 -0
- package/dist/routes/session-stream.routes.js.map +1 -0
- package/dist/routes/streaming.routes.d.ts +4 -0
- package/dist/routes/streaming.routes.d.ts.map +1 -0
- package/dist/routes/streaming.routes.js +33 -0
- package/dist/routes/streaming.routes.js.map +1 -0
- package/dist/routes/system.routes.d.ts +7 -0
- package/dist/routes/system.routes.d.ts.map +1 -0
- package/dist/routes/system.routes.js +214 -0
- package/dist/routes/system.routes.js.map +1 -0
- package/dist/routes/walkthrough.routes.d.ts +19 -0
- package/dist/routes/walkthrough.routes.d.ts.map +1 -0
- package/dist/routes/walkthrough.routes.js +688 -0
- package/dist/routes/walkthrough.routes.js.map +1 -0
- package/dist/routes/working-directories.routes.d.ts +4 -0
- package/dist/routes/working-directories.routes.d.ts.map +1 -0
- package/dist/routes/working-directories.routes.js +25 -0
- package/dist/routes/working-directories.routes.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +34 -0
- package/dist/server.js.map +1 -0
- package/dist/services/ToolMetricsService.d.ts +53 -0
- package/dist/services/ToolMetricsService.d.ts.map +1 -0
- package/dist/services/ToolMetricsService.js +230 -0
- package/dist/services/ToolMetricsService.js.map +1 -0
- package/dist/services/claude-router-service.d.ts +19 -0
- package/dist/services/claude-router-service.d.ts.map +1 -0
- package/dist/services/claude-router-service.js +160 -0
- package/dist/services/claude-router-service.js.map +1 -0
- package/dist/services/commands-service.d.ts +20 -0
- package/dist/services/commands-service.d.ts.map +1 -0
- package/dist/services/commands-service.js +115 -0
- package/dist/services/commands-service.js.map +1 -0
- package/dist/services/connection-debug-logger.d.ts +85 -0
- package/dist/services/connection-debug-logger.d.ts.map +1 -0
- package/dist/services/connection-debug-logger.js +221 -0
- package/dist/services/connection-debug-logger.js.map +1 -0
- package/dist/services/debug-log.d.ts +6 -0
- package/dist/services/debug-log.d.ts.map +1 -0
- package/dist/services/debug-log.js +27 -0
- package/dist/services/debug-log.js.map +1 -0
- package/dist/services/gemini-service.d.ts +35 -0
- package/dist/services/gemini-service.d.ts.map +1 -0
- package/dist/services/gemini-service.js +256 -0
- package/dist/services/gemini-service.js.map +1 -0
- package/dist/services/infrastructure/config-service.d.ts +79 -0
- package/dist/services/infrastructure/config-service.d.ts.map +1 -0
- package/dist/services/infrastructure/config-service.js +431 -0
- package/dist/services/infrastructure/config-service.js.map +1 -0
- package/dist/services/infrastructure/cost-tracker.d.ts +112 -0
- package/dist/services/infrastructure/cost-tracker.d.ts.map +1 -0
- package/dist/services/infrastructure/cost-tracker.js +423 -0
- package/dist/services/infrastructure/cost-tracker.js.map +1 -0
- package/dist/services/infrastructure/file-system-service.d.ts +61 -0
- package/dist/services/infrastructure/file-system-service.d.ts.map +1 -0
- package/dist/services/infrastructure/file-system-service.js +348 -0
- package/dist/services/infrastructure/file-system-service.js.map +1 -0
- package/dist/services/infrastructure/log-formatter.d.ts +5 -0
- package/dist/services/infrastructure/log-formatter.d.ts.map +1 -0
- package/dist/services/infrastructure/log-formatter.js +77 -0
- package/dist/services/infrastructure/log-formatter.js.map +1 -0
- package/dist/services/infrastructure/log-stream-buffer.d.ts +11 -0
- package/dist/services/infrastructure/log-stream-buffer.d.ts.map +1 -0
- package/dist/services/infrastructure/log-stream-buffer.js +36 -0
- package/dist/services/infrastructure/log-stream-buffer.js.map +1 -0
- package/dist/services/infrastructure/logger.d.ts +71 -0
- package/dist/services/infrastructure/logger.d.ts.map +1 -0
- package/dist/services/infrastructure/logger.js +215 -0
- package/dist/services/infrastructure/logger.js.map +1 -0
- package/dist/services/infrastructure/service-registry.d.ts +86 -0
- package/dist/services/infrastructure/service-registry.d.ts.map +1 -0
- package/dist/services/infrastructure/service-registry.js +162 -0
- package/dist/services/infrastructure/service-registry.js.map +1 -0
- package/dist/services/infrastructure/stream-manager.d.ts +87 -0
- package/dist/services/infrastructure/stream-manager.d.ts.map +1 -0
- package/dist/services/infrastructure/stream-manager.js +436 -0
- package/dist/services/infrastructure/stream-manager.js.map +1 -0
- package/dist/services/infrastructure/timing.d.ts +72 -0
- package/dist/services/infrastructure/timing.d.ts.map +1 -0
- package/dist/services/infrastructure/timing.js +115 -0
- package/dist/services/infrastructure/timing.js.map +1 -0
- package/dist/services/insights/anthropic-service.d.ts +224 -0
- package/dist/services/insights/anthropic-service.d.ts.map +1 -0
- package/dist/services/insights/anthropic-service.js +1062 -0
- package/dist/services/insights/anthropic-service.js.map +1 -0
- package/dist/services/insights/insight-audit-repository.d.ts +119 -0
- package/dist/services/insights/insight-audit-repository.d.ts.map +1 -0
- package/dist/services/insights/insight-audit-repository.js +242 -0
- package/dist/services/insights/insight-audit-repository.js.map +1 -0
- package/dist/services/insights/insight-queue.d.ts +99 -0
- package/dist/services/insights/insight-queue.d.ts.map +1 -0
- package/dist/services/insights/insight-queue.js +277 -0
- package/dist/services/insights/insight-queue.js.map +1 -0
- package/dist/services/insights/insights-computer.d.ts +132 -0
- package/dist/services/insights/insights-computer.d.ts.map +1 -0
- package/dist/services/insights/insights-computer.js +936 -0
- package/dist/services/insights/insights-computer.js.map +1 -0
- package/dist/services/insights/insights-coordinator.d.ts +165 -0
- package/dist/services/insights/insights-coordinator.d.ts.map +1 -0
- package/dist/services/insights/insights-coordinator.js +1678 -0
- package/dist/services/insights/insights-coordinator.js.map +1 -0
- package/dist/services/insights/insights-event-log.d.ts +196 -0
- package/dist/services/insights/insights-event-log.d.ts.map +1 -0
- package/dist/services/insights/insights-event-log.js +319 -0
- package/dist/services/insights/insights-event-log.js.map +1 -0
- package/dist/services/lattice-service.d.ts +77 -0
- package/dist/services/lattice-service.d.ts.map +1 -0
- package/dist/services/lattice-service.js +195 -0
- package/dist/services/lattice-service.js.map +1 -0
- package/dist/services/license-service.d.ts +69 -0
- package/dist/services/license-service.d.ts.map +1 -0
- package/dist/services/license-service.js +330 -0
- package/dist/services/license-service.js.map +1 -0
- package/dist/services/mcp-config-generator.d.ts +32 -0
- package/dist/services/mcp-config-generator.d.ts.map +1 -0
- package/dist/services/mcp-config-generator.js +126 -0
- package/dist/services/mcp-config-generator.js.map +1 -0
- package/dist/services/message-filter.d.ts +22 -0
- package/dist/services/message-filter.d.ts.map +1 -0
- package/dist/services/message-filter.js +57 -0
- package/dist/services/message-filter.js.map +1 -0
- package/dist/services/notification-service.d.ts +45 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +184 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/pending-question-service.d.ts +97 -0
- package/dist/services/pending-question-service.d.ts.map +1 -0
- package/dist/services/pending-question-service.js +223 -0
- package/dist/services/pending-question-service.js.map +1 -0
- package/dist/services/permission-event-log.d.ts +136 -0
- package/dist/services/permission-event-log.d.ts.map +1 -0
- package/dist/services/permission-event-log.js +252 -0
- package/dist/services/permission-event-log.js.map +1 -0
- package/dist/services/permission-pattern-matcher.d.ts +82 -0
- package/dist/services/permission-pattern-matcher.d.ts.map +1 -0
- package/dist/services/permission-pattern-matcher.js +294 -0
- package/dist/services/permission-pattern-matcher.js.map +1 -0
- package/dist/services/permission-tracker.d.ts +67 -0
- package/dist/services/permission-tracker.d.ts.map +1 -0
- package/dist/services/permission-tracker.js +162 -0
- package/dist/services/permission-tracker.js.map +1 -0
- package/dist/services/process/claude-process-manager.d.ts +142 -0
- package/dist/services/process/claude-process-manager.d.ts.map +1 -0
- package/dist/services/process/claude-process-manager.js +1218 -0
- package/dist/services/process/claude-process-manager.js.map +1 -0
- package/dist/services/process/conversation-status-manager.d.ts +110 -0
- package/dist/services/process/conversation-status-manager.d.ts.map +1 -0
- package/dist/services/process/conversation-status-manager.js +349 -0
- package/dist/services/process/conversation-status-manager.js.map +1 -0
- package/dist/services/process/json-lines-parser.d.ts +19 -0
- package/dist/services/process/json-lines-parser.d.ts.map +1 -0
- package/dist/services/process/json-lines-parser.js +59 -0
- package/dist/services/process/json-lines-parser.js.map +1 -0
- package/dist/services/process/process-event-log.d.ts +263 -0
- package/dist/services/process/process-event-log.d.ts.map +1 -0
- package/dist/services/process/process-event-log.js +509 -0
- package/dist/services/process/process-event-log.js.map +1 -0
- package/dist/services/process/process-manager-factory.d.ts +109 -0
- package/dist/services/process/process-manager-factory.d.ts.map +1 -0
- package/dist/services/process/process-manager-factory.js +338 -0
- package/dist/services/process/process-manager-factory.js.map +1 -0
- package/dist/services/question-tracker.d.ts +51 -0
- package/dist/services/question-tracker.d.ts.map +1 -0
- package/dist/services/question-tracker.js +111 -0
- package/dist/services/question-tracker.js.map +1 -0
- package/dist/services/sessions/claude-history-reader.d.ts +139 -0
- package/dist/services/sessions/claude-history-reader.d.ts.map +1 -0
- package/dist/services/sessions/claude-history-reader.js +864 -0
- package/dist/services/sessions/claude-history-reader.js.map +1 -0
- package/dist/services/sessions/conversation-cache.d.ts +98 -0
- package/dist/services/sessions/conversation-cache.d.ts.map +1 -0
- package/dist/services/sessions/conversation-cache.js +329 -0
- package/dist/services/sessions/conversation-cache.js.map +1 -0
- package/dist/services/sessions/session-activity-watcher.d.ts +67 -0
- package/dist/services/sessions/session-activity-watcher.d.ts.map +1 -0
- package/dist/services/sessions/session-activity-watcher.js +236 -0
- package/dist/services/sessions/session-activity-watcher.js.map +1 -0
- package/dist/services/sessions/session-analysis-service.d.ts +72 -0
- package/dist/services/sessions/session-analysis-service.d.ts.map +1 -0
- package/dist/services/sessions/session-analysis-service.js +373 -0
- package/dist/services/sessions/session-analysis-service.js.map +1 -0
- package/dist/services/sessions/session-branch-service.d.ts +76 -0
- package/dist/services/sessions/session-branch-service.d.ts.map +1 -0
- package/dist/services/sessions/session-branch-service.js +355 -0
- package/dist/services/sessions/session-branch-service.js.map +1 -0
- package/dist/services/sessions/session-info-service.d.ts +455 -0
- package/dist/services/sessions/session-info-service.d.ts.map +1 -0
- package/dist/services/sessions/session-info-service.js +1640 -0
- package/dist/services/sessions/session-info-service.js.map +1 -0
- package/dist/services/sessions/session-marks-repository.d.ts +78 -0
- package/dist/services/sessions/session-marks-repository.d.ts.map +1 -0
- package/dist/services/sessions/session-marks-repository.js +263 -0
- package/dist/services/sessions/session-marks-repository.js.map +1 -0
- package/dist/services/sessions/session-marks-service.d.ts +137 -0
- package/dist/services/sessions/session-marks-service.d.ts.map +1 -0
- package/dist/services/sessions/session-marks-service.js +562 -0
- package/dist/services/sessions/session-marks-service.js.map +1 -0
- package/dist/services/sessions/session-review-service.d.ts +98 -0
- package/dist/services/sessions/session-review-service.d.ts.map +1 -0
- package/dist/services/sessions/session-review-service.js +629 -0
- package/dist/services/sessions/session-review-service.js.map +1 -0
- package/dist/services/sessions/turn-capture-service.d.ts +83 -0
- package/dist/services/sessions/turn-capture-service.d.ts.map +1 -0
- package/dist/services/sessions/turn-capture-service.js +477 -0
- package/dist/services/sessions/turn-capture-service.js.map +1 -0
- package/dist/services/sessions/turn-repository.d.ts +48 -0
- package/dist/services/sessions/turn-repository.d.ts.map +1 -0
- package/dist/services/sessions/turn-repository.js +103 -0
- package/dist/services/sessions/turn-repository.js.map +1 -0
- package/dist/services/walkthrough-service.d.ts +226 -0
- package/dist/services/walkthrough-service.d.ts.map +1 -0
- package/dist/services/walkthrough-service.js +1112 -0
- package/dist/services/walkthrough-service.js.map +1 -0
- package/dist/services/walkthrough-skill-prompt.d.ts +34 -0
- package/dist/services/walkthrough-skill-prompt.d.ts.map +1 -0
- package/dist/services/walkthrough-skill-prompt.js +313 -0
- package/dist/services/walkthrough-skill-prompt.js.map +1 -0
- package/dist/services/web-push-service.d.ts +48 -0
- package/dist/services/web-push-service.d.ts.map +1 -0
- package/dist/services/web-push-service.js +186 -0
- package/dist/services/web-push-service.js.map +1 -0
- package/dist/services/working-directories-service.d.ts +19 -0
- package/dist/services/working-directories-service.d.ts.map +1 -0
- package/dist/services/working-directories-service.js +103 -0
- package/dist/services/working-directories-service.js.map +1 -0
- package/dist/types/config.d.ts +122 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +21 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/express.d.ts +5 -0
- package/dist/types/express.d.ts.map +1 -0
- package/dist/types/express.js +2 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/index.d.ts +400 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +41 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/insights.d.ts +176 -0
- package/dist/types/insights.d.ts.map +1 -0
- package/dist/types/insights.js +23 -0
- package/dist/types/insights.js.map +1 -0
- package/dist/types/license.d.ts +70 -0
- package/dist/types/license.d.ts.map +1 -0
- package/dist/types/license.js +5 -0
- package/dist/types/license.js.map +1 -0
- package/dist/types/router-config.d.ts +13 -0
- package/dist/types/router-config.d.ts.map +1 -0
- package/dist/types/router-config.js +2 -0
- package/dist/types/router-config.js.map +1 -0
- package/dist/utils/constants.d.ts +26 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +28 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/machine-id.d.ts +7 -0
- package/dist/utils/machine-id.d.ts.map +1 -0
- package/dist/utils/machine-id.js +76 -0
- package/dist/utils/machine-id.js.map +1 -0
- package/dist/utils/server-startup.d.ts +11 -0
- package/dist/utils/server-startup.d.ts.map +1 -0
- package/dist/utils/server-startup.js +9 -0
- package/dist/utils/server-startup.js.map +1 -0
- package/dist/utils/update-check.d.ts +13 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +90 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/web/assets/ArchivedCardPrototype-S9ifiasa.js +5 -0
- package/dist/web/assets/BannerGallery-B__rJV6F.js +1 -0
- package/dist/web/assets/BannerPrototype-DBKP9Uiu.js +52 -0
- package/dist/web/assets/CodeHikeExperiment-B8jjWAFy.js +15 -0
- package/dist/web/assets/ContextTooltipVariations-DzklAFam.js +1 -0
- package/dist/web/assets/FontShowcasePrototype-KIMEWeP2.js +13 -0
- package/dist/web/assets/GeometricGallery-DddlWhHK.js +1 -0
- package/dist/web/assets/HistoryWalkthroughPrototype-DeniRRdw.js +18 -0
- package/dist/web/assets/InlineWalkthroughPrototype-Csd5r_Hk.js +1 -0
- package/dist/web/assets/MarkButtonPrototype-CxhxE0RP.js +1 -0
- package/dist/web/assets/MenuStylesPrototype-D7neA6YM.js +1 -0
- package/dist/web/assets/MomentCardVariations-2GT7GyFn.js +1 -0
- package/dist/web/assets/MomentHeaderVariations-DhGEw4XC.js +1 -0
- package/dist/web/assets/NarrativeWalkthroughDemo-B5C566fu.js +389 -0
- package/dist/web/assets/OutcomeVariations-BrZfsVcs.js +1 -0
- package/dist/web/assets/PermissionPatternPickerPrototype-CBOhe2Me.js +1 -0
- package/dist/web/assets/PermissionPrototype-BcF-a5an.js +1 -0
- package/dist/web/assets/PipelineGallery-BJhyM0rx.js +1 -0
- package/dist/web/assets/ScopeHeaderPrototype-GD1HNfaO.js +1 -0
- package/dist/web/assets/ScopeHeaderStylesPrototype-aa4uNJJ1.js +1 -0
- package/dist/web/assets/ScrollycodingPrototype-CKW1bf72.js +70 -0
- package/dist/web/assets/SectionHeaderVariations-DM8vUwfj.js +1 -0
- package/dist/web/assets/SemanticGallery-CtQEo7St.js +1 -0
- package/dist/web/assets/SessionCardPrototype-CgHCIMHe.js +1 -0
- package/dist/web/assets/SessionSidebarVariations-DMQL3Azj.js +3 -0
- package/dist/web/assets/SessionStartPrototype-Cwsv01Rr.js +1 -0
- package/dist/web/assets/SmartMenuPrototype-Br37Qbs_.js +1 -0
- package/dist/web/assets/StyleGallery-rZgrploB.js +1 -0
- package/dist/web/assets/TimelineCardPrototype-lzPc5mhe.js +19 -0
- package/dist/web/assets/ToolbarPrototype-Dm4BNZra.js +1 -0
- package/dist/web/assets/TooltipExperiment-Dy8QzTIP.js +13 -0
- package/dist/web/assets/WalkthroughCTAPrototype-uHoovujd.js +1 -0
- package/dist/web/assets/WalkthroughHeaderVariations-Do7Di1g1.js +1 -0
- package/dist/web/assets/WalkthroughShowcase-sGmRoPoM.js +112 -0
- package/dist/web/assets/arrow-right-D46Nx1mC.js +1 -0
- package/dist/web/assets/brain-BXIZKtOZ.js +1 -0
- package/dist/web/assets/grid-3x3-Cb81B62m.js +1 -0
- package/dist/web/assets/main-B1fyog77.js +321 -0
- package/dist/web/assets/main-C2PK2Klg.css +1 -0
- package/dist/web/assets/semantic-variations-Bd-W7ea2.js +1 -0
- package/dist/web/assets/target-Cf92wDTW.js +1 -0
- package/dist/web/favicon.png +0 -0
- package/dist/web/favicon.svg +22 -0
- package/dist/web/icon-192x192.png +0 -0
- package/dist/web/icon-512x512.png +0 -0
- package/dist/web/index.html +45 -0
- package/dist/web/manifest.json +61 -0
- package/package.json +192 -0
- package/scripts/postinstall.js +60 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{r as i,aa as d,j as e,ab as n,ar as l,as as x,at as c,au as p,av as m,aw as b}from"./main-B1fyog77.js";const h=`// !tooltip[/useState/] React hook for managing component state. Returns a stateful value and a function to update it.
|
|
2
|
+
const [messages, setMessages] = useState<Message[]>([]);
|
|
3
|
+
// !tooltip[/useRef/] Creates a mutable reference that persists across renders without triggering re-renders.
|
|
4
|
+
const scrollRef = useRef<HTMLDivElement>(null);
|
|
5
|
+
// !tooltip[/useCallback/] Returns a memoized callback that only changes if dependencies change.
|
|
6
|
+
const handleSubmit = useCallback((text: string) => {
|
|
7
|
+
// !tooltip[/trim/] Removes whitespace from both ends of the string
|
|
8
|
+
const cleaned = text.trim();
|
|
9
|
+
if (cleaned) {
|
|
10
|
+
// !tooltip[/setMessages/] State setter - triggers re-render with new messages array
|
|
11
|
+
setMessages(prev => [...prev, { text: cleaned, role: 'user' }]);
|
|
12
|
+
}
|
|
13
|
+
}, []);`,g=[{name:"Minimal Dark",description:"Simple dark tooltip with subtle border",containerStyle:{background:"#18181b",border:"1px solid #3f3f46",color:"#e4e4e7",padding:"8px 12px",borderRadius:"6px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.4)",fontSize:"13px",maxWidth:"300px",lineHeight:"1.5"}},{name:"Glassmorphism",description:"Frosted glass effect with blur",containerStyle:{background:"rgba(24, 24, 27, 0.85)",backdropFilter:"blur(12px)",border:"1px solid rgba(255, 255, 255, 0.1)",color:"#fafafa",padding:"10px 14px",borderRadius:"10px",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.4)",fontSize:"13px",maxWidth:"320px",lineHeight:"1.5"}},{name:"Elevated Card",description:"Card-like with strong shadow",containerStyle:{background:"#0a0a0a",border:"1px solid #27272a",color:"#e4e4e7",padding:"12px 16px",borderRadius:"12px",boxShadow:"0 20px 40px -10px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255,255,255,0.05)",fontSize:"13px",maxWidth:"320px",lineHeight:"1.6"}},{name:"Accent Border",description:"Colored top border accent",containerStyle:{background:"#18181b",borderTop:"2px solid #10b981",borderLeft:"1px solid #3f3f46",borderRight:"1px solid #3f3f46",borderBottom:"1px solid #3f3f46",color:"#e4e4e7",padding:"10px 14px",borderRadius:"8px",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.5)",fontSize:"13px",maxWidth:"300px",lineHeight:"1.5"}},{name:"Side Accent",description:"Left border accent like the code blocks",containerStyle:{background:"#0a0a0a",borderLeft:"3px solid #10b981",borderTop:"1px solid #27272a",borderRight:"1px solid #27272a",borderBottom:"1px solid #27272a",color:"#e4e4e7",padding:"10px 14px",borderRadius:"0 8px 8px 0",boxShadow:"0 10px 30px -5px rgba(0, 0, 0, 0.5)",fontSize:"13px",maxWidth:"300px",lineHeight:"1.5"}},{name:"Soft Glow",description:"Subtle emerald glow effect",containerStyle:{background:"#18181b",border:"1px solid #27272a",color:"#e4e4e7",padding:"10px 14px",borderRadius:"8px",boxShadow:"0 0 20px rgba(16, 185, 129, 0.15), 0 10px 25px -5px rgba(0, 0, 0, 0.5)",fontSize:"13px",maxWidth:"300px",lineHeight:"1.5"}},{name:"Terminal",description:"Terminal/console aesthetic",containerStyle:{background:"#0c0c0c",border:"1px solid #2d2d2d",color:"#a3e635",padding:"10px 14px",borderRadius:"4px",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.6)",fontSize:"12px",fontFamily:"var(--font-mono)",maxWidth:"320px",lineHeight:"1.6"}},{name:"With Header",description:"Clean docs-like style with header label",containerStyle:{background:"#1c1c1e",border:"1px solid #38383a",color:"#e5e5e5",padding:"0",borderRadius:"10px",boxShadow:"0 10px 40px -10px rgba(0, 0, 0, 0.5)",fontSize:"13px",maxWidth:"340px",lineHeight:"1.5",overflow:"hidden"}},{name:"Popover Card",description:"Larger popover with more structure",containerStyle:{background:"linear-gradient(180deg, #1f1f23 0%, #18181b 100%)",border:"1px solid #3f3f46",color:"#e4e4e7",padding:"14px 16px",borderRadius:"12px",boxShadow:"0 25px 50px -12px rgba(0, 0, 0, 0.6)",fontSize:"13px",maxWidth:"340px",lineHeight:"1.6"}},{name:"Subtle",description:"Very subtle, almost invisible border",containerStyle:{background:"#18181b",border:"1px solid rgba(255, 255, 255, 0.06)",color:"#a1a1aa",padding:"8px 12px",borderRadius:"6px",boxShadow:"0 4px 16px rgba(0, 0, 0, 0.3)",fontSize:"12px",maxWidth:"280px",lineHeight:"1.5"}}];function u(a,r=!1){return{name:"tooltip",Inline:({annotation:t,children:o})=>e.jsx(l,{delayDuration:100,children:e.jsxs(x,{children:[e.jsx(c,{asChild:!0,children:e.jsx("span",{className:"cursor-help transition-all duration-150 hover:text-emerald-300",style:{borderBottom:"2px solid rgb(16 185 129 / 0.6)",paddingBottom:"1px"},children:o})}),e.jsx(p,{children:e.jsxs(m,{side:"top",sideOffset:6,style:a.containerStyle,className:"z-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",children:[r?e.jsxs("div",{children:[e.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid #38383a",background:"#28282a"},children:e.jsx("span",{style:{fontSize:"11px",color:"#8e8e93",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Tooltip"})}),e.jsx("div",{style:{padding:"10px 12px"},children:t.query})]}):t.query,e.jsx(b,{style:{fill:a.containerStyle.background},width:12,height:6})]})})]})})}}function f({style:a,code:r,index:t}){const o=a.name==="With Header",s=u(a,o);return e.jsxs("section",{className:"mb-12",children:[e.jsx("div",{className:"flex items-baseline gap-3 mb-2",children:e.jsxs("h2",{className:"text-lg font-medium text-zinc-200",children:[t+1,". ",a.name]})}),e.jsx("p",{className:"text-sm text-zinc-500 mb-4",children:a.description}),e.jsxs("div",{className:"rounded-lg overflow-hidden border border-zinc-800",children:[e.jsxs("div",{className:"flex border-b border-zinc-800 bg-zinc-900",children:[e.jsx("div",{className:"w-1 bg-emerald-500 shrink-0"}),e.jsx("div",{className:"px-4 py-2 text-xs font-mono text-zinc-500",children:"example.tsx"})]}),e.jsxs("div",{className:"flex",children:[e.jsx("div",{className:"w-1 bg-emerald-500 shrink-0"}),e.jsx(n,{code:r,handlers:[s],className:"font-mono text-[13px] leading-[1.7] p-4 overflow-x-auto flex-1",style:{background:"#0a0a0a"}})]})]})]})}function j(){const[a,r]=i.useState(null);return i.useEffect(()=>{d({value:h,lang:"typescript",meta:""},"github-dark").then(r).catch(console.error)},[]),a?e.jsx("div",{className:"min-h-dvh bg-zinc-950 text-zinc-100 p-8",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("header",{className:"mb-12",children:[e.jsx("h1",{className:"text-3xl font-bold text-zinc-50 mb-2",children:"Tooltip Styling Variations"}),e.jsx("p",{className:"text-zinc-400 mb-4",children:"Hover over the underlined code elements to see different tooltip styles."}),e.jsxs("div",{className:"text-sm text-zinc-500 bg-zinc-900/50 border border-zinc-800 rounded-lg p-4",children:[e.jsx("strong",{className:"text-zinc-400",children:"Tip:"})," Each code block uses a different tooltip style. Hover over ",e.jsx("code",{className:"text-emerald-400",children:"useState"}),", ",e.jsx("code",{className:"text-emerald-400",children:"useRef"}),",",e.jsx("code",{className:"text-emerald-400",children:"useCallback"}),", ",e.jsx("code",{className:"text-emerald-400",children:"trim"}),", or",e.jsx("code",{className:"text-emerald-400",children:"setMessages"})," to preview each style."]})]}),g.map((t,o)=>e.jsx(f,{style:t,code:a,index:o},t.name))]})}):e.jsx("div",{className:"min-h-dvh bg-zinc-950 flex items-center justify-center text-zinc-500",children:"Loading..."})}export{j as TooltipExperiment,j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d,j as e,f as i,ai as l,p as h,P as p,E as u,Z as g,F as b,ap as j}from"./main-B1fyog77.js";import{A as f}from"./arrow-right-D46Nx1mC.js";const t={sections:3,files:2,linesChanged:135,title:"Adding Walkthrough Toggle to History Panel"};function v(){return e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx(i,{size:12,className:"text-emerald-400"}),e.jsx("span",{className:"text-zinc-400",children:"Walkthrough ready"}),e.jsx("button",{className:"text-emerald-400 hover:text-emerald-300 hover:underline",children:"View →"})]})}function N(){return e.jsxs("button",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-emerald-500/20 border border-emerald-500/40 text-emerald-400 text-xs font-medium hover:bg-emerald-500/30 hover:border-emerald-500/60 transition-all group",children:[e.jsx(l,{size:12}),e.jsx("span",{children:"View Walkthrough"}),e.jsx(f,{size:12,className:"opacity-0 -ml-1 group-hover:opacity-100 group-hover:ml-0 transition-all"})]})}function z(){return e.jsx("button",{className:"w-full text-left border border-emerald-500/30 rounded-lg bg-emerald-500/5 hover:bg-emerald-500/10 hover:border-emerald-500/50 transition-all group",children:e.jsxs("div",{className:"px-3 py-2",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(i,{size:12,className:"text-emerald-400"}),e.jsx("span",{className:"text-xs font-medium text-emerald-400",children:"Walkthrough Ready"}),e.jsx(h,{size:14,className:"text-emerald-400/50 ml-auto group-hover:text-emerald-400 group-hover:translate-x-0.5 transition-all"})]}),e.jsx("p",{className:"text-[11px] text-zinc-400 truncate",children:t.title}),e.jsxs("div",{className:"flex items-center gap-3 mt-1.5 text-[10px] text-zinc-500",children:[e.jsxs("span",{children:[t.sections," sections"]}),e.jsxs("span",{children:[t.files," files"]}),e.jsxs("span",{className:"text-green-400/70",children:["+",t.linesChanged," lines"]})]})]})})}function w(){return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-gradient-to-r from-emerald-500/10 to-transparent border border-emerald-500/20",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-emerald-500/20 flex items-center justify-center flex-shrink-0",children:e.jsx(l,{size:14,className:"text-emerald-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs font-medium text-zinc-200 truncate",children:t.title}),e.jsxs("p",{className:"text-[10px] text-zinc-500",children:[t.sections," sections ready to explore"]})]}),e.jsx("button",{className:"px-2.5 py-1 rounded text-[10px] font-display font-bold uppercase tracking-wider bg-emerald-500/20 text-emerald-400 hover:bg-emerald-500/30 transition-colors flex-shrink-0",children:"Open"})]})}function y(){return e.jsxs("button",{className:"relative w-full group",children:[e.jsx("div",{className:"absolute inset-0 rounded-lg bg-emerald-500/20 blur-md group-hover:bg-emerald-500/30 transition-colors"}),e.jsxs("div",{className:"relative flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg bg-zinc-900 border border-emerald-500/40 group-hover:border-emerald-500/60 transition-colors",children:[e.jsx(p,{size:14,className:"text-emerald-400",fill:"currentColor"}),e.jsx("span",{className:"text-sm font-medium text-emerald-400",children:"Start Walkthrough"})]})]})}function k(){return e.jsxs("button",{className:"flex items-center gap-2 px-3 py-1.5 rounded-sm bg-background/80 backdrop-blur-sm border border-emerald-500/30 text-emerald-400 text-xs font-display font-bold uppercase tracking-wider hover:border-emerald-400 hover:bg-emerald-500/5 hover:shadow-[2px_2px_0_rgba(16,185,129,0.5),-2px_-2px_0_rgba(0,255,255,0.3)] hover:translate-x-[-1px] hover:translate-y-[-1px] transition-all duration-100",children:[e.jsx(u,{size:12}),"View Walkthrough"]})}function C(){return e.jsxs("div",{className:"inline-flex items-center rounded-lg border border-emerald-500/30 overflow-hidden bg-emerald-500/5",children:[e.jsxs("div",{className:"flex items-center gap-2 px-2.5 py-1.5 border-r border-emerald-500/20",children:[e.jsx(i,{size:12,className:"text-emerald-400"}),e.jsxs("span",{className:"text-[10px] text-zinc-400",children:[e.jsx("span",{className:"text-zinc-200 font-medium",children:t.sections})," sections"]}),e.jsx("span",{className:"text-zinc-600",children:"•"}),e.jsxs("span",{className:"text-[10px] text-green-400",children:["+",t.linesChanged]})]}),e.jsx("button",{className:"px-2.5 py-1.5 text-[10px] font-medium text-emerald-400 hover:bg-emerald-500/10 transition-colors",children:"View →"})]})}function S(){return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-zinc-800 border border-zinc-700 shadow-lg",children:[e.jsx("div",{className:"w-6 h-6 rounded-full bg-emerald-500/20 flex items-center justify-center",children:e.jsx(g,{size:12,className:"text-emerald-400"})}),e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-xs text-zinc-200",children:"Walkthrough generated"})}),e.jsx("button",{className:"text-xs text-emerald-400 hover:text-emerald-300 font-medium",children:"View"})]})}function V(){return e.jsx("button",{className:"w-full text-left group",children:e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg border border-zinc-700/50 bg-zinc-800/30 hover:border-emerald-500/30 hover:bg-zinc-800/50 transition-all",children:[e.jsx("div",{className:"w-10 h-12 rounded bg-gradient-to-b from-emerald-500/20 to-emerald-500/5 border border-emerald-500/30 flex items-center justify-center flex-shrink-0",children:e.jsx(b,{size:16,className:"text-emerald-400"})}),e.jsxs("div",{className:"flex-1 min-w-0 pt-0.5",children:[e.jsx("p",{className:"text-xs font-medium text-zinc-200 truncate group-hover:text-emerald-400 transition-colors",children:t.title}),e.jsxs("p",{className:"text-[10px] text-zinc-500 mt-0.5",children:["Walkthrough • ",t.sections," sections • ",t.files," files"]})]}),e.jsx(j,{size:14,className:"text-zinc-600 group-hover:text-emerald-400 transition-colors mt-1"})]})})}function G(){return e.jsxs("button",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/15 text-emerald-400 text-[10px] font-medium hover:bg-emerald-500/25 transition-colors",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Walkthrough"})]})}function P(){const[n,a]=d.useState(null),[o,c]=d.useState(new Set),x=r=>{a(r),setTimeout(()=>{a(null),c(s=>new Set(s).add(r))},1500)},m=[{name:"Simple Link",description:"Minimal text link, least intrusive",component:e.jsx(v,{})},{name:"Pill Button",description:"Compact button that replaces Generate",component:e.jsx(N,{})},{name:"Card Preview",description:"Shows title and stats preview",component:e.jsx(z,{})},{name:"Inline Banner",description:"Horizontal banner with thumbnail",component:e.jsx(w,{})},{name:"Glowing CTA",description:"Eye-catching with glow effect",component:e.jsx(y,{})},{name:"Cyberpunk Style",description:"Matches app header buttons",component:e.jsx(k,{})},{name:"Stats Badge",description:"Inline stats with view action",component:e.jsx(C,{})},{name:"Toast-like",description:"Floating notification style",component:e.jsx(S,{})},{name:"Document Preview",description:"Looks like a file to open",component:e.jsx(V,{})},{name:"Compact Chip",description:"Smallest possible footprint",component:e.jsx(G,{})}];return e.jsx("div",{className:"min-h-dvh bg-zinc-950 text-zinc-100 p-8",children:e.jsxs("div",{className:"max-w-2xl mx-auto",children:[e.jsx("h1",{className:"text-2xl font-bold text-zinc-100 mb-2",children:'"Walkthrough Ready" CTA Variations'}),e.jsx("p",{className:"text-zinc-400 mb-8",children:'After clicking Generate, what does the user see? These are variations on the "your walkthrough is ready, click to view" call-to-action.'}),e.jsx("div",{className:"space-y-8",children:m.map((r,s)=>e.jsxs("section",{className:"p-4 bg-zinc-900/50 border border-zinc-800 rounded-xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-sm font-semibold text-zinc-200",children:[s+1,". ",r.name]}),e.jsx("p",{className:"text-xs text-zinc-500",children:r.description})]}),!o.has(s)&&e.jsx("button",{onClick:()=>x(s),disabled:n===s,className:"px-2.5 py-1 text-[10px] font-display uppercase tracking-wider border border-zinc-700 rounded text-zinc-400 hover:text-zinc-200 hover:border-zinc-600 disabled:opacity-50 transition-colors",children:n===s?"Generating...":"Simulate Generate"})]}),e.jsx("div",{className:"p-4 bg-zinc-800/30 rounded-lg border border-zinc-700/30 min-h-[60px] flex items-center",children:o.has(s)?r.component:n===s?e.jsxs("div",{className:"flex items-center gap-2 text-xs text-zinc-500",children:[e.jsx("div",{className:"w-3 h-3 border-2 border-emerald-500/30 border-t-emerald-500 rounded-full animate-spin"}),"Generating walkthrough..."]}):e.jsx("span",{className:"text-xs text-zinc-600 italic",children:'Click "Simulate Generate" to see this variation'})})]},s))}),e.jsx("div",{className:"mt-8 text-center",children:e.jsx("button",{onClick:()=>{c(new Set),a(null)},className:"text-xs text-zinc-500 hover:text-zinc-300",children:"Reset all"})}),e.jsxs("div",{className:"mt-8 p-4 bg-zinc-900/50 border border-zinc-800 rounded-lg",children:[e.jsx("h3",{className:"text-sm font-semibold text-zinc-300 mb-2",children:"Design Notes"}),e.jsxs("ul",{className:"text-xs text-zinc-500 space-y-1.5",children:[e.jsx("li",{children:'• This appears where the "Generate" button was'}),e.jsx("li",{children:"• Clicking opens the full walkthrough view (wherever that lives)"}),e.jsx("li",{children:'• Should convey "ready" state vs still generating'}),e.jsx("li",{children:"• Consider: should it show stats/preview or just be a link?"}),e.jsx("li",{children:"• Cyberpunk style (#6) matches existing app buttons best"})]})]})]})})}export{P as WalkthroughCTAPrototype,P as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,A as c,h as l,G as x,O as d,ai as o,X as m,f as h,w as p}from"./main-B1fyog77.js";function j({title:s,summary:r,totalTurns:t,phaseCount:a,momentCount:i,onClose:n}){return e.jsx("header",{className:"border-b border-zinc-800 bg-gradient-to-b from-zinc-900 to-zinc-950",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-8 py-12",children:[e.jsxs("button",{onClick:n,className:"flex items-center gap-2 text-zinc-500 hover:text-zinc-300 mb-8 text-sm transition-colors",children:[e.jsx(c,{size:16}),"Close walkthrough"]}),e.jsx("div",{className:"text-emerald-400 text-sm font-medium mb-3 uppercase tracking-wider",children:"Session Walkthrough"}),e.jsx("h1",{className:"text-4xl font-bold text-zinc-50 mb-6 leading-tight",children:s}),e.jsx("p",{className:"text-xl text-zinc-400 leading-relaxed",children:r}),e.jsxs("div",{className:"flex items-center gap-8 mt-8 text-sm text-zinc-500",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(l,{size:16}),t," turns"]}),e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(x,{size:16}),a," phases"]}),e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(d,{size:16}),i," key moments"]})]})]})})}function b({title:s,summary:r,totalTurns:t,phaseCount:a,momentCount:i,onClose:n}){return e.jsx("header",{className:"border-b border-zinc-800 bg-zinc-900/80 backdrop-blur-sm sticky top-0 z-10",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-8 py-4 flex items-center justify-between gap-6",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx(o,{size:16,className:"text-emerald-400 shrink-0"}),e.jsx("span",{className:"text-xs font-display font-bold text-emerald-400 uppercase tracking-wider",children:"Walkthrough"}),e.jsxs("div",{className:"flex items-center gap-4 text-[10px] text-zinc-600 font-mono",children:[e.jsxs("span",{children:[t," turns"]}),e.jsxs("span",{children:[a," phases"]}),e.jsxs("span",{children:[i," moments"]})]})]}),e.jsx("h1",{className:"text-lg font-bold text-zinc-100 truncate",children:s})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-2 px-3 py-1.5 rounded-sm bg-zinc-950/80 border border-zinc-700 text-zinc-400 text-xs font-display font-bold uppercase tracking-wider hover:border-zinc-500 hover:text-zinc-200 hover:shadow-[2px_2px_0_rgba(255,255,255,0.1)] hover:translate-x-[-1px] hover:translate-y-[-1px] transition-all duration-100",children:[e.jsx(m,{size:14}),e.jsx("span",{children:"Close"})]})]})})}function z({title:s,summary:r,totalTurns:t,phaseCount:a,momentCount:i,onClose:n}){return e.jsxs("header",{className:"relative",children:[e.jsx("button",{onClick:n,className:"absolute top-6 right-6 z-20 p-2 rounded-full bg-zinc-900/80 backdrop-blur-sm border border-zinc-700 text-zinc-400 hover:text-zinc-200 hover:border-zinc-500 transition-all",title:"Close walkthrough",children:e.jsx(m,{size:18})}),e.jsx("div",{className:"bg-gradient-to-b from-zinc-900 via-zinc-900/95 to-zinc-950 border-b border-zinc-800",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-8 pt-16 pb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-emerald-500/10 border border-emerald-500/20 mb-6",children:[e.jsx(h,{size:14,className:"text-emerald-400"}),e.jsx("span",{className:"text-emerald-400 text-xs font-medium uppercase tracking-wider",children:"Session Walkthrough"})]}),e.jsx("h1",{className:"text-4xl font-bold text-zinc-50 mb-6 leading-tight",children:s}),e.jsx("p",{className:"text-xl text-zinc-400 leading-relaxed max-w-2xl",children:r}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mt-8",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-zinc-800/50 border border-zinc-700/50",children:[e.jsx(l,{size:14,className:"text-zinc-500"}),e.jsxs("span",{className:"text-sm text-zinc-300",children:[t," turns"]})]}),e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-zinc-800/50 border border-zinc-700/50",children:[e.jsx(x,{size:14,className:"text-zinc-500"}),e.jsxs("span",{className:"text-sm text-zinc-300",children:[a," phases"]})]}),e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-zinc-800/50 border border-zinc-700/50",children:[e.jsx(d,{size:14,className:"text-zinc-500"}),e.jsxs("span",{className:"text-sm text-zinc-300",children:[i," key moments"]})]})]})]})})]})}function g({title:s,summary:r,totalTurns:t,phaseCount:a,momentCount:i,onClose:n}){return e.jsxs("header",{className:"border-b border-zinc-800 bg-zinc-950",children:[e.jsxs("div",{className:"px-6 py-3 border-b border-zinc-800/50 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(p,{size:14,className:"text-cyan-400"}),e.jsx("span",{className:"font-mono text-xs font-bold text-cyan-400 tracking-wider",children:"CLAUDIA"}),e.jsx("span",{className:"text-zinc-600 mx-2",children:"/"}),e.jsx("span",{className:"font-mono text-xs text-zinc-500",children:"walkthrough"})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-2 px-2.5 py-1 rounded-sm text-zinc-500 text-xs font-mono hover:text-zinc-300 hover:bg-zinc-800/50 transition-all",children:[e.jsx(c,{size:12}),e.jsx("span",{children:"Back"})]})]}),e.jsxs("div",{className:"max-w-3xl mx-auto px-8 py-10",children:[e.jsx("h1",{className:"text-3xl font-bold text-zinc-50 mb-4 leading-tight",children:s}),e.jsx("p",{className:"text-lg text-zinc-400 leading-relaxed mb-6",children:r}),e.jsxs("div",{className:"flex items-center gap-6 text-sm text-zinc-500",children:[e.jsxs("span",{children:[t," turns"]}),e.jsx("span",{className:"text-zinc-700",children:"•"}),e.jsxs("span",{children:[a," phases"]}),e.jsx("span",{className:"text-zinc-700",children:"•"}),e.jsxs("span",{children:[i," moments"]})]})]})]})}function u({title:s,summary:r,totalTurns:t,phaseCount:a,momentCount:i,onClose:n}){return e.jsx("header",{className:"p-6",children:e.jsxs("div",{className:"max-w-3xl mx-auto",children:[e.jsxs("button",{onClick:n,className:"flex items-center gap-2 text-zinc-500 hover:text-zinc-300 mb-4 text-sm transition-colors",children:[e.jsx(c,{size:16}),e.jsx("span",{children:"Close"})]}),e.jsx("div",{className:"rounded-xl border border-zinc-800 bg-zinc-900/50 overflow-hidden",children:e.jsxs("div",{className:"flex",children:[e.jsx("div",{className:"w-1 bg-gradient-to-b from-emerald-500 via-emerald-400 to-cyan-500"}),e.jsxs("div",{className:"flex-1 p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(o,{size:16,className:"text-emerald-400"}),e.jsx("span",{className:"text-xs font-medium text-emerald-400 uppercase tracking-wider",children:"Walkthrough"})]}),e.jsx("h1",{className:"text-2xl font-bold text-zinc-50 mb-3 leading-tight",children:s}),e.jsx("p",{className:"text-zinc-400 leading-relaxed mb-4",children:r}),e.jsxs("div",{className:"flex items-center gap-4 text-xs text-zinc-500",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(l,{size:12}),t," turns"]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(x,{size:12}),a," phases"]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(d,{size:12}),i," moments"]})]})]})]})})]})})}function f(){const s={title:"Implementing Session Branching with Branch Point Indicators",summary:"Building the ability to create new sessions from any point in conversation history, with visual indicators showing where branches occurred.",totalTurns:43,phaseCount:3,momentCount:9,onClose:()=>window.history.back()};return e.jsx("div",{className:"fixed inset-0 bg-zinc-950 overflow-y-auto",children:e.jsxs("div",{className:"space-y-16 pb-16",children:[e.jsxs("section",{children:[e.jsx("div",{className:"bg-zinc-800/30 px-4 py-2 text-xs font-display text-zinc-400 uppercase tracking-wider",children:"Variation A: Editorial/Blog (Current)"}),e.jsx(j,{...s})]}),e.jsxs("section",{children:[e.jsx("div",{className:"bg-zinc-800/30 px-4 py-2 text-xs font-display text-zinc-400 uppercase tracking-wider",children:"Variation B: Compact Sticky Header"}),e.jsxs("div",{className:"relative h-[300px] overflow-hidden border-b border-zinc-800",children:[e.jsx(b,{...s}),e.jsxs("div",{className:"max-w-3xl mx-auto px-8 py-8 text-zinc-500",children:[e.jsx("p",{className:"mb-4",children:"Sample content would appear here beneath the sticky header..."}),e.jsx("p",{children:"The header stays visible as you scroll through the walkthrough."})]})]})]}),e.jsxs("section",{children:[e.jsx("div",{className:"bg-zinc-800/30 px-4 py-2 text-xs font-display text-zinc-400 uppercase tracking-wider",children:"Variation C: Full Hero + Floating Close"}),e.jsx(z,{...s})]}),e.jsxs("section",{children:[e.jsx("div",{className:"bg-zinc-800/30 px-4 py-2 text-xs font-display text-zinc-400 uppercase tracking-wider",children:"Variation D: Claudia-Branded Minimal"}),e.jsx(g,{...s})]}),e.jsxs("section",{children:[e.jsx("div",{className:"bg-zinc-800/30 px-4 py-2 text-xs font-display text-zinc-400 uppercase tracking-wider",children:"Variation E: Card with Accent Border"}),e.jsx("div",{className:"bg-zinc-950",children:e.jsx(u,{...s})})]})]})})}export{j as HeaderVariationA,b as HeaderVariationB,z as HeaderVariationC,g as HeaderVariationD,u as HeaderVariationE,f as WalkthroughHeaderDemo,f as default};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import{r as m,j as e,c as g,p as b,aa as v,ab as f,ac as u,ar as y,as as j,at as N,au as w,av as z,aw as T}from"./main-B1fyog77.js";function k({diff:t,defaultExpanded:o=!1}){const[i,s]=m.useState(o),{added:l,removed:d}=t.stats;return e.jsxs("div",{className:"mt-3",children:[e.jsxs("button",{onClick:()=>s(!i),className:"flex items-center gap-2 text-sm text-zinc-400 hover:text-zinc-200 transition-colors group",children:[i?e.jsx(g,{className:"w-4 h-4 text-zinc-500 group-hover:text-zinc-300"}):e.jsx(b,{className:"w-4 h-4 text-zinc-500 group-hover:text-zinc-300"}),e.jsxs("span",{children:[i?"Hide":"Show"," diff"]}),e.jsxs("span",{className:"text-xs",children:[l>0&&e.jsxs("span",{className:"text-emerald-400",children:["+",l]}),l>0&&d>0&&e.jsx("span",{className:"text-zinc-600 mx-1",children:"/"}),d>0&&e.jsxs("span",{className:"text-red-400",children:["-",d]})]})]}),i&&e.jsxs("div",{className:"mt-3 rounded-lg border border-zinc-800 overflow-hidden",children:[(t.oldFile||t.newFile)&&e.jsx("div",{className:"px-4 py-2 bg-zinc-900 border-b border-zinc-800 font-mono text-xs text-zinc-500",children:t.oldFile&&t.newFile&&t.oldFile!==t.newFile?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-red-400/70",children:t.oldFile}),e.jsx("span",{className:"mx-2",children:"→"}),e.jsx("span",{className:"text-emerald-400/70",children:t.newFile})]}):e.jsx("span",{children:t.newFile||t.oldFile})}),e.jsx("div",{className:"font-mono text-[13px] leading-[1.6]",style:{background:"#0a0a0a"},children:t.hunks.map((n,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"px-4 py-1 text-xs text-zinc-500 bg-zinc-900/50 border-b border-zinc-800/50",children:n.header}),n.lines.map((c,r)=>e.jsx(S,{line:c},r))]},a))})]})]})}function S({line:t}){const o={added:"rgba(16, 185, 129, 0.1)",removed:"rgba(239, 68, 68, 0.1)",context:"transparent"}[t.type],i={added:"rgb(167, 243, 208)",removed:"rgb(252, 165, 165)",context:"rgb(161, 161, 170)"}[t.type],s={added:"+",removed:"-",context:" "}[t.type],l={added:"rgb(16, 185, 129)",removed:"rgb(239, 68, 68)",context:"rgb(113, 113, 122)"}[t.type];return e.jsxs("div",{className:"flex",style:{background:o},children:[e.jsxs("div",{className:"flex-shrink-0 w-16 px-2 text-right text-xs text-zinc-600 select-none border-r border-zinc-800/50",children:[e.jsx("span",{className:"inline-block w-7",children:t.lineNumber?.old||""}),e.jsx("span",{className:"inline-block w-7",children:t.lineNumber?.new||""})]}),e.jsx("div",{className:"flex-shrink-0 w-6 text-center select-none",style:{color:l},children:s}),e.jsx("div",{className:"flex-1 px-2 whitespace-pre overflow-x-auto",style:{color:i},children:t.content})]})}function C(t,o,i){const s=t.split(`
|
|
2
|
+
`),l=o.split(`
|
|
3
|
+
`),d=[];let n=0,a=0;const c=Math.max(s.length,l.length);for(let r=0;r<c;r++){const x=s[r],p=l[r];x===p?d.push({type:"context",content:x||"",lineNumber:{old:r+1,new:r+1}}):(x!==void 0&&(d.push({type:"removed",content:x,lineNumber:{old:r+1}}),a++),p!==void 0&&(d.push({type:"added",content:p,lineNumber:{new:r+1}}),n++))}return{oldFile:i,newFile:i,hunks:[{header:`@@ -1,${s.length} +1,${l.length} @@`,lines:d}],stats:{added:n,removed:a}}}const P={name:"focus",onlyIfAnnotated:!0,Line:t=>e.jsx(u,{merge:t,className:"opacity-30 data-[focus]:opacity-100 transition-opacity","data-focus":t.annotation?!0:void 0}),AnnotatedLine:({...t})=>e.jsx(u,{merge:t,className:"opacity-100","data-focus":!0})},H={name:"mark",Inline:({annotation:t,children:o})=>{const i=t?.query||"rgb(16 185 129)";return e.jsx("span",{className:"rounded px-1 -mx-0.5",style:{backgroundColor:`color-mix(in srgb, ${i} 30%, transparent)`},children:o})}},F={name:"tooltip",Inline:({annotation:t,children:o})=>e.jsx(y,{delayDuration:100,children:e.jsxs(j,{children:[e.jsx(N,{asChild:!0,children:e.jsx("span",{className:"cursor-help transition-all duration-150 hover:text-emerald-300",style:{borderBottom:"2px solid rgb(16 185 129 / 0.6)",paddingBottom:"1px"},children:o})}),e.jsx(w,{children:e.jsxs(z,{side:"top",sideOffset:8,className:"z-50 animate-in fade-in-0 zoom-in-95",style:{background:"#1c1c1e",border:"1px solid #38383a",borderRadius:"10px",boxShadow:"0 10px 40px -10px rgba(0, 0, 0, 0.5)",maxWidth:"360px",overflow:"hidden"},children:[e.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid #38383a",background:"#28282a"},children:e.jsx("span",{style:{fontSize:"11px",color:"#8e8e93",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Tooltip"})}),e.jsx("div",{style:{padding:"10px 12px",fontSize:"13px",color:"#e5e5e5",lineHeight:"1.5"},children:t.query}),e.jsx(T,{style:{fill:"#1c1c1e"},width:12,height:6})]})})]})})},B={name:"callout",transform:t=>"lineNumber"in t?{...t,fromLineNumber:t.lineNumber,toLineNumber:t.lineNumber,data:{column:Math.floor((t.fromColumn+t.toColumn)/2)}}:t,Block:({annotation:t,children:o})=>{const i=t.data?.column??0;return e.jsxs(e.Fragment,{children:[o,e.jsxs("div",{className:"relative mt-1 mb-3",style:{marginLeft:`${Math.min(i,20)}ch`},children:[e.jsx("div",{className:"absolute -top-1 left-4 w-2 h-2 bg-emerald-500/60 rotate-45"}),e.jsx("div",{className:"bg-emerald-500/10 border border-emerald-500/30 rounded px-3 py-1.5 text-[13px] text-emerald-200/90 max-w-lg",children:t.query})]})]})}},D=[P,H,F,B];function L({code:t,filename:o,description:i,diff:s}){return e.jsxs("div",{className:"mb-8",children:[i&&e.jsx("p",{className:"text-zinc-400 text-sm mb-3 leading-relaxed",children:i}),e.jsxs("div",{className:"rounded-xl shadow-xl shadow-black/30 border border-zinc-800/50 overflow-hidden",children:[o&&e.jsx("div",{className:"px-4 py-2.5 bg-zinc-900 border-b border-zinc-800/50",children:e.jsx("span",{className:"font-mono text-xs text-zinc-400",children:o})}),e.jsx(f,{code:t,handlers:D,className:"font-mono text-[13px] leading-[1.7] p-4 overflow-x-auto",style:{background:"#0a0a0a"}})]}),s&&s.stats.added+s.stats.removed>0&&e.jsx(k,{diff:s})]})}const h=[{title:"Defining Tooltip Styles",narrative:`We started by defining a flexible interface for tooltip styles. Each style
|
|
4
|
+
specifies container styling, optional arrow customization, and text classes.`,code:`// !tooltip[/TooltipStyle/] The core interface - each style variation implements this
|
|
5
|
+
interface TooltipStyle {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
// !focus(1:3)
|
|
9
|
+
// !tooltip[/containerStyle/] React.CSSProperties for full control over the tooltip container
|
|
10
|
+
containerStyle: React.CSSProperties;
|
|
11
|
+
arrowStyle?: React.CSSProperties;
|
|
12
|
+
textClassName?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// !callout[/tooltipStyles/] Array of 10 style variations we experimented with
|
|
16
|
+
const tooltipStyles: TooltipStyle[] = [
|
|
17
|
+
{
|
|
18
|
+
name: 'Minimal Dark',
|
|
19
|
+
description: 'Simple dark tooltip with subtle border',
|
|
20
|
+
// !mark[/background/] #10b981
|
|
21
|
+
containerStyle: {
|
|
22
|
+
background: '#18181b',
|
|
23
|
+
border: '1px solid #3f3f46',
|
|
24
|
+
// ...
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
// ... more styles
|
|
28
|
+
];`,language:"typescript",filename:"TooltipExperiment.tsx",description:"The foundation: a flexible interface that lets us experiment with many visual styles."},{title:"The Tooltip Handler Factory",narrative:`We created a factory function that generates Code Hike annotation handlers
|
|
29
|
+
for each tooltip style. This keeps the code DRY while allowing full customization.`,code:`// !tooltip[/createTooltipHandler/] Factory pattern - creates a handler for any style
|
|
30
|
+
function createTooltipHandler(
|
|
31
|
+
style: TooltipStyle,
|
|
32
|
+
hasHeader = false
|
|
33
|
+
): AnnotationHandler {
|
|
34
|
+
return {
|
|
35
|
+
name: 'tooltip',
|
|
36
|
+
// !focus(1:8)
|
|
37
|
+
Inline: ({ annotation, children }) => (
|
|
38
|
+
<TooltipPrimitive.Provider delayDuration={100}>
|
|
39
|
+
<TooltipPrimitive.Root>
|
|
40
|
+
// !tooltip[/TooltipTrigger/] The element users hover over
|
|
41
|
+
<TooltipPrimitive.Trigger asChild>
|
|
42
|
+
<span
|
|
43
|
+
className="cursor-help transition-all duration-150"
|
|
44
|
+
// !mark[/borderBottom/]
|
|
45
|
+
style={{ borderBottom: '2px solid rgb(16 185 129 / 0.6)' }}
|
|
46
|
+
>
|
|
47
|
+
{children}
|
|
48
|
+
</span>
|
|
49
|
+
</TooltipPrimitive.Trigger>
|
|
50
|
+
// !callout[/TooltipContent/] Portal ensures tooltip renders above everything
|
|
51
|
+
<TooltipPrimitive.Portal>
|
|
52
|
+
<TooltipPrimitive.Content
|
|
53
|
+
style={style.containerStyle}
|
|
54
|
+
>
|
|
55
|
+
{annotation.query}
|
|
56
|
+
</TooltipPrimitive.Content>
|
|
57
|
+
</TooltipPrimitive.Portal>
|
|
58
|
+
</TooltipPrimitive.Root>
|
|
59
|
+
</TooltipPrimitive.Provider>
|
|
60
|
+
),
|
|
61
|
+
};
|
|
62
|
+
}`,language:"typescript",filename:"TooltipExperiment.tsx",description:"The factory pattern lets us generate unique handlers while sharing core logic."},{title:'The "With Header" Style',narrative:`After testing all 10 styles, the "With Header" style emerged as the winner.
|
|
63
|
+
It provides visual hierarchy with a subtle header section that labels the tooltip.`,code:`{
|
|
64
|
+
name: 'With Header',
|
|
65
|
+
description: 'Clean docs-like style with header label',
|
|
66
|
+
containerStyle: {
|
|
67
|
+
// !focus(1:6)
|
|
68
|
+
// !tooltip[/background/] Dark but not pure black - easier on the eyes
|
|
69
|
+
background: '#1c1c1e',
|
|
70
|
+
border: '1px solid #38383a',
|
|
71
|
+
color: '#e5e5e5',
|
|
72
|
+
padding: '0', // Padding is per-section
|
|
73
|
+
borderRadius: '10px',
|
|
74
|
+
// !mark[/boxShadow/]
|
|
75
|
+
boxShadow: '0 10px 40px -10px rgba(0, 0, 0, 0.5)',
|
|
76
|
+
fontSize: '13px',
|
|
77
|
+
maxWidth: '340px',
|
|
78
|
+
overflow: 'hidden', // !tooltip[/overflow/] Clips child elements to rounded corners
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// The header rendering:
|
|
83
|
+
// !focus(1:7)
|
|
84
|
+
{hasHeader && (
|
|
85
|
+
<div style={{
|
|
86
|
+
padding: '8px 12px',
|
|
87
|
+
borderBottom: '1px solid #38383a',
|
|
88
|
+
background: '#28282a' // Slightly lighter than container
|
|
89
|
+
}}>
|
|
90
|
+
// !callout[/Tooltip/] Simple label - considered "Documentation" but too verbose
|
|
91
|
+
<span style={{ fontSize: '11px', color: '#8e8e93' }}>Tooltip</span>
|
|
92
|
+
</div>
|
|
93
|
+
)}`,language:"typescript",filename:"TooltipExperiment.tsx",description:"The winning style: a header provides context without being intrusive."},{title:"Visible Trigger Styling",narrative:`Initially the tooltip triggers were nearly invisible. We made them much more
|
|
94
|
+
prominent with a solid emerald underline and hover state.`,beforeCode:`<TooltipPrimitive.Trigger asChild>
|
|
95
|
+
<span className="underline decoration-dotted decoration-zinc-500 underline-offset-2 cursor-help">
|
|
96
|
+
{children}
|
|
97
|
+
</span>
|
|
98
|
+
</TooltipPrimitive.Trigger>`,code:`<TooltipPrimitive.Trigger asChild>
|
|
99
|
+
<span
|
|
100
|
+
// !focus(1:3)
|
|
101
|
+
// !tooltip[/hover:text-emerald-300/] Text lightens on hover for clear feedback
|
|
102
|
+
className="cursor-help transition-all duration-150 hover:text-emerald-300"
|
|
103
|
+
style={{
|
|
104
|
+
// !mark[/borderBottom/] #10b981
|
|
105
|
+
// Much more visible than decoration-dotted!
|
|
106
|
+
borderBottom: '2px solid rgb(16 185 129 / 0.6)',
|
|
107
|
+
paddingBottom: '1px',
|
|
108
|
+
}}
|
|
109
|
+
>
|
|
110
|
+
{children}
|
|
111
|
+
</span>
|
|
112
|
+
</TooltipPrimitive.Trigger>`,language:"typescript",filename:"TooltipExperiment.tsx",description:"A solid 2px emerald underline makes tooltips discoverable without being distracting."}];function R(){const[t,o]=m.useState([]),[i,s]=m.useState([]),[l,d]=m.useState(!0);return m.useEffect(()=>{async function n(){const a=await Promise.all(h.map(r=>v({value:r.code,lang:r.language,meta:""},"github-dark")));o(a);const c=h.map(r=>r.beforeCode?C(r.beforeCode,r.code,r.filename):null);s(c),d(!1)}n()},[]),l?e.jsx("div",{className:"min-h-dvh bg-zinc-950 flex items-center justify-center text-zinc-500",children:"Loading walkthrough..."}):e.jsxs("div",{className:"min-h-dvh bg-zinc-950 text-zinc-100",children:[e.jsx("div",{className:"border-b border-zinc-800 bg-gradient-to-b from-zinc-900 to-zinc-950",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-8 py-16",children:[e.jsx("div",{className:"text-emerald-400 text-sm font-medium mb-3",children:"Session Walkthrough"}),e.jsx("h1",{className:"text-4xl font-bold text-zinc-50 mb-4",children:"Building the Tooltip Experiment"}),e.jsx("p",{className:"text-xl text-zinc-400 leading-relaxed max-w-2xl",children:"A narrated tour through the code changes that created our tooltip styling system. Hover over highlighted code to see explanations."})]})}),e.jsxs("div",{className:"max-w-4xl mx-auto px-8 py-12",children:[e.jsxs("div",{className:"bg-zinc-900/50 border border-zinc-800 rounded-xl p-6 mb-12",children:[e.jsx("h2",{className:"text-lg font-semibold text-zinc-200 mb-3",children:"Context"}),e.jsx("p",{className:"text-zinc-400 leading-relaxed",children:"We needed a way to add explanatory tooltips to code blocks in our walkthrough feature. The initial styling was poor - transparent backgrounds, clipped content, and nearly invisible trigger underlines. This session explored 10 different tooltip styles to find the right visual treatment."})]}),e.jsx("div",{className:"space-y-16",children:h.map((n,a)=>e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-emerald-500/20 border border-emerald-500/30 flex items-center justify-center text-emerald-400 text-sm font-medium",children:a+1}),e.jsx("h2",{className:"text-xl font-semibold text-zinc-100",children:n.title})]}),e.jsx("p",{className:"text-zinc-400 leading-relaxed mb-6 ml-11",children:n.narrative}),e.jsx("div",{className:"ml-11",children:e.jsx(L,{code:t[a],filename:n.filename,description:n.description,diff:i[a]||void 0})})]},a))}),e.jsxs("div",{className:"mt-16 pt-12 border-t border-zinc-800",children:[e.jsx("h2",{className:"text-2xl font-bold text-zinc-100 mb-6",children:"What We Built"}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"bg-zinc-900/50 border border-zinc-800 rounded-xl p-5",children:[e.jsx("div",{className:"text-emerald-400 font-medium mb-2",children:"Tooltip Styles"}),e.jsx("p",{className:"text-zinc-400 text-sm",children:'10 variations from minimal to glassmorphism, with the "With Header" style winning.'})]}),e.jsxs("div",{className:"bg-zinc-900/50 border border-zinc-800 rounded-xl p-5",children:[e.jsx("div",{className:"text-emerald-400 font-medium mb-2",children:"Visible Triggers"}),e.jsx("p",{className:"text-zinc-400 text-sm",children:"Solid 2px emerald underline with hover state - impossible to miss."})]}),e.jsxs("div",{className:"bg-zinc-900/50 border border-zinc-800 rounded-xl p-5",children:[e.jsx("div",{className:"text-emerald-400 font-medium mb-2",children:"Factory Pattern"}),e.jsx("p",{className:"text-zinc-400 text-sm",children:"One function generates handlers for any style, keeping code DRY."})]}),e.jsxs("div",{className:"bg-zinc-900/50 border border-zinc-800 rounded-xl p-5",children:[e.jsx("div",{className:"text-emerald-400 font-medium mb-2",children:"Code Hike Integration"}),e.jsx("p",{className:"text-zinc-400 text-sm",children:"Focus, mark, tooltip, and callout annotations all working together."})]})]})]})]})]})}export{R as WalkthroughShowcase,R as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as o}from"./main-B1fyog77.js";const r=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],a=o("arrow-right",r);export{a as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as a}from"./main-B1fyog77.js";const e=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],t=a("brain",e);export{t as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as c}from"./main-B1fyog77.js";const e=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],r=c("ellipsis",e);const i=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],h=c("grid-3x3",i);export{r as E,h as G};
|