create-yss-spec 1.1.2 → 1.1.3

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.
Files changed (239) hide show
  1. package/package.json +1 -1
  2. package/template/.codex/skills/data-analytics/.app.json +84 -0
  3. package/template/.codex/skills/data-analytics/.codex-plugin/plugin.json +66 -0
  4. package/template/.codex/skills/data-analytics/.mcp.json +30 -0
  5. package/template/.codex/skills/data-analytics/AGENTS.md +20 -0
  6. package/template/.codex/skills/data-analytics/DEPENDENCIES.MD +27 -0
  7. package/template/.codex/skills/data-analytics/README.md +60 -0
  8. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html +16 -0
  9. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part001 +1 -0
  10. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part002 +1 -0
  11. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part003 +1 -0
  12. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part004 +1 -0
  13. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part005 +1 -0
  14. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part006 +1 -0
  15. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html +16 -0
  16. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part001 +1 -0
  17. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part002 +1 -0
  18. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part003 +1 -0
  19. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part004 +1 -0
  20. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part005 +1 -0
  21. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part006 +1 -0
  22. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part007 +1 -0
  23. package/template/.codex/skills/data-analytics/assets/datascience-small.svg +5 -0
  24. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html +16 -0
  25. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part001 +1 -0
  26. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part002 +1 -0
  27. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part003 +1 -0
  28. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part004 +1 -0
  29. package/template/.codex/skills/data-analytics/assets/datascience.png +0 -0
  30. package/template/.codex/skills/data-analytics/assets/datascience.svg +10 -0
  31. package/template/.codex/skills/data-analytics/mcp/server.cjs +2963 -0
  32. package/template/.codex/skills/data-analytics/package-lock.json +3048 -0
  33. package/template/.codex/skills/data-analytics/package.json +43 -0
  34. package/template/.codex/skills/data-analytics/scripts/normalize-widget-assets.mjs +75 -0
  35. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +160 -0
  36. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/agents/openai.yaml +6 -0
  37. package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +148 -0
  38. package/template/.codex/skills/data-analytics/skills/build-dashboard/agents/openai.yaml +6 -0
  39. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/bi-platform-dashboard.md +18 -0
  40. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/html-dashboard.md +24 -0
  41. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/mcp-artifact-dashboard.md +71 -0
  42. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/streamlit-dashboard.md +85 -0
  43. package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +207 -0
  44. package/template/.codex/skills/data-analytics/skills/build-report/agents/openai.yaml +6 -0
  45. package/template/.codex/skills/data-analytics/skills/build-report/assets/executive-report-shell.html +70 -0
  46. package/template/.codex/skills/data-analytics/skills/build-report/assets/technical-report-shell.html +66 -0
  47. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/SKILL.md +118 -0
  48. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/agents/openai.yaml +6 -0
  49. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/__init__.py +1 -0
  50. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/cli.py +57 -0
  51. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/constants.py +61 -0
  52. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/docx_writer.py +362 -0
  53. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/html_parser.py +829 -0
  54. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/model.py +30 -0
  55. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/plan.py +129 -0
  56. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/quality.py +374 -0
  57. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/rendering.py +613 -0
  58. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/table_utils.py +54 -0
  59. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/utils.py +16 -0
  60. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc_plan.py +9 -0
  61. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/SKILL.md +78 -0
  62. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/agents/openai.yaml +6 -0
  63. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/scripts/report_to_google_slides.py +2379 -0
  64. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/SKILL.md +88 -0
  65. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/agents/openai.yaml +6 -0
  66. package/template/.codex/skills/data-analytics/skills/build-report/specifications/executive-report.md +97 -0
  67. package/template/.codex/skills/data-analytics/skills/build-report/specifications/mcp-app-report.md +59 -0
  68. package/template/.codex/skills/data-analytics/skills/build-report/specifications/technical-report.md +75 -0
  69. package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +103 -0
  70. package/template/.codex/skills/data-analytics/skills/design-kpis/agents/openai.yaml +6 -0
  71. package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +68 -0
  72. package/template/.codex/skills/data-analytics/skills/gather-business-context/agents/openai.yaml +6 -0
  73. package/template/.codex/skills/data-analytics/skills/index/SKILL.md +251 -0
  74. package/template/.codex/skills/data-analytics/skills/index/agents/openai.yaml +6 -0
  75. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +131 -0
  76. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/agents/openai.yaml +6 -0
  77. package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +141 -0
  78. package/template/.codex/skills/data-analytics/skills/kpi-reporting/agents/openai.yaml +6 -0
  79. package/template/.codex/skills/data-analytics/skills/kpi-reporting/references/report-templates.md +32 -0
  80. package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +106 -0
  81. package/template/.codex/skills/data-analytics/skills/market-sizing/agents/openai.yaml +6 -0
  82. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +130 -0
  83. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/agents/openai.yaml +6 -0
  84. package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +141 -0
  85. package/template/.codex/skills/data-analytics/skills/product-business-analysis/agents/openai.yaml +6 -0
  86. package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +178 -0
  87. package/template/.codex/skills/data-analytics/skills/spreadsheets/agents/openai.yaml +9 -0
  88. package/template/.codex/skills/data-analytics/skills/spreadsheets/assets/file-spreadsheet.png +0 -0
  89. package/template/.codex/skills/data-analytics/skills/spreadsheets/charts.md +31 -0
  90. package/template/.codex/skills/data-analytics/skills/spreadsheets/references/artifact_tool_api.md +466 -0
  91. package/template/.codex/skills/data-analytics/skills/spreadsheets/style_guidelines.md +99 -0
  92. package/template/.codex/skills/data-analytics/skills/user-context/SKILL.md +195 -0
  93. package/template/.codex/skills/data-analytics/skills/user-context/agents/openai.yaml +6 -0
  94. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/automation-config.md +26 -0
  95. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/source-category-config.json +51 -0
  96. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/user-context-config.md +66 -0
  97. package/template/.codex/skills/data-analytics/skills/user-context/references/automation.md +69 -0
  98. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-examples.md +204 -0
  99. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-state-template.json +87 -0
  100. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding.md +497 -0
  101. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/connector-playbook.md +74 -0
  102. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/setup.md +65 -0
  103. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/skill-template.md +160 -0
  104. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/source-intake.md +75 -0
  105. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/weekly-polling-automation.md +96 -0
  106. package/template/.codex/skills/data-analytics/skills/user-context/references/source-category-runtime.md +263 -0
  107. package/template/.codex/skills/data-analytics/skills/user-context/scripts/data_analytics_preflight.py +1460 -0
  108. package/template/.codex/skills/data-analytics/skills/user-context/scripts/init_user_context_state.py +128 -0
  109. package/template/.codex/skills/data-analytics/skills/user-context/scripts/reset_user_context_state.py +101 -0
  110. package/template/.codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py +499 -0
  111. package/template/.codex/skills/data-analytics/skills/user-context/tests/test_state_helpers.py +978 -0
  112. package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +190 -0
  113. package/template/.codex/skills/data-analytics/skills/validate-data/agents/openai.yaml +6 -0
  114. package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +157 -0
  115. package/template/.codex/skills/data-analytics/skills/visualize-data/agents/openai.yaml +6 -0
  116. package/template/.codex/skills/data-analytics/skills/visualize-data/references/seaborn-templates.md +774 -0
  117. package/template/.codex/skills/data-analytics/src/DESIGN.md +222 -0
  118. package/template/.codex/skills/data-analytics/src/analytics-app/App.tsx +3666 -0
  119. package/template/.codex/skills/data-analytics/src/analytics-app/analytics-layout.test.mjs +136 -0
  120. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartFrame.tsx +54 -0
  121. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartLegend.tsx +96 -0
  122. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartRenderer.tsx +1647 -0
  123. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartTooltip.tsx +245 -0
  124. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-app-helpers.tsx +462 -0
  125. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-capabilities.ts +107 -0
  126. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-compatibility.ts +164 -0
  127. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-contract.ts +192 -0
  128. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-theme.ts +203 -0
  129. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-tokens.css +619 -0
  130. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-transforms.ts +402 -0
  131. package/template/.codex/skills/data-analytics/src/analytics-app/fonts/SystemSansVariableVF.woff2 +0 -0
  132. package/template/.codex/skills/data-analytics/src/analytics-app/imageExport.ts +370 -0
  133. package/template/.codex/skills/data-analytics/src/analytics-app/layout/AnalyticsLayoutCanvas.tsx +536 -0
  134. package/template/.codex/skills/data-analytics/src/analytics-app/layout/RichMarkdown.tsx +681 -0
  135. package/template/.codex/skills/data-analytics/src/analytics-app/layout/analyticsLayoutCore.ts +164 -0
  136. package/template/.codex/skills/data-analytics/src/analytics-app/main.tsx +21 -0
  137. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/chart_contract.py +472 -0
  138. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/check_analytics_app_runtime_links.py +75 -0
  139. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/design_contract.py +142 -0
  140. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/package_utils.py +142 -0
  141. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/tests/test_package_utils.py +377 -0
  142. package/template/.codex/skills/data-analytics/src/analytics-app/styles.css +3468 -0
  143. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.d.ts +44 -0
  144. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.jsx +639 -0
  145. package/template/.codex/skills/data-analytics/src/analytics-app/tables/data-table.css +327 -0
  146. package/template/.codex/skills/data-analytics/src/analytics-app/tokens.css +225 -0
  147. package/template/.codex/skills/data-analytics/src/analytics-app/types.ts +204 -0
  148. package/template/.codex/skills/data-analytics/src/analytics-app-core.md +85 -0
  149. package/template/.codex/skills/data-analytics/src/codex-style-contract.md +30 -0
  150. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.html +12 -0
  151. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.jsx +1008 -0
  152. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.css +2117 -0
  153. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.html +122 -0
  154. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.js +3588 -0
  155. package/template/.codex/skills/data-analytics/src/datascience-table-widget.css +483 -0
  156. package/template/.codex/skills/data-analytics/src/datascience-table-widget.html +32 -0
  157. package/template/.codex/skills/data-analytics/src/datascience-table-widget.js +333 -0
  158. package/template/.codex/skills/data-analytics/src/mcp-host.js +153 -0
  159. package/template/.codex/skills/data-analytics/src/recharts-config.js +315 -0
  160. package/template/.codex/skills/data-analytics/src/recharts-renderer.jsx +294 -0
  161. package/template/.codex/skills/data-analytics/src/sql-source-view.css +33 -0
  162. package/template/.codex/skills/data-analytics/src/sql-source-view.js +157 -0
  163. package/template/.codex/skills/data-analytics/src/styles/codex-theme.css +121 -0
  164. package/template/.codex/skills/data-analytics/src/table-renderer.jsx +28 -0
  165. package/template/.codex/skills/data-analytics/tests/chart-transforms.test.mjs +87 -0
  166. package/template/.codex/skills/data-analytics/tests/funnel-smoke.html +105 -0
  167. package/template/.codex/skills/data-analytics/tests/inline-widget-compare.html +233 -0
  168. package/template/.codex/skills/data-analytics/tests/mcp-server.test.mjs +1500 -0
  169. package/template/.codex/skills/data-analytics/tests/native-style-contract.test.mjs +219 -0
  170. package/template/.codex/skills/data-analytics/tests/recharts-config.test.mjs +144 -0
  171. package/template/.codex/skills/data-analytics/tests/recharts-renderer.test.mjs +11 -0
  172. package/template/.codex/skills/data-analytics/tests/rich-markdown.test.mjs +54 -0
  173. package/template/.codex/skills/data-analytics/tests/widget-render-harness.html +321 -0
  174. package/template/.codex/skills/data-analytics/tsconfig.json +19 -0
  175. package/template/.codex/skills/data-analytics/vite.config.ts +46 -0
  176. package/template/.codex/skills/product-design/.app.json +7 -0
  177. package/template/.codex/skills/product-design/.codex-plugin/plugin.json +50 -0
  178. package/template/.codex/skills/product-design/README.md +50 -0
  179. package/template/.codex/skills/product-design/agents/openai.yaml +4 -0
  180. package/template/.codex/skills/product-design/assets/composerIcon.svg +9 -0
  181. package/template/.codex/skills/product-design/assets/logo.png +0 -0
  182. package/template/.codex/skills/product-design/package.json +11 -0
  183. package/template/.codex/skills/product-design/references/browser-order.md +9 -0
  184. package/template/.codex/skills/product-design/references/communication-protocol.md +45 -0
  185. package/template/.codex/skills/product-design/references/critical-overrides.md +58 -0
  186. package/template/.codex/skills/product-design/references/local-prototype-preflight.md +16 -0
  187. package/template/.codex/skills/product-design/scripts/bootstrap-prototype.mjs +147 -0
  188. package/template/.codex/skills/product-design/skills/audit/SKILL.md +159 -0
  189. package/template/.codex/skills/product-design/skills/audit/agents/openai.yaml +6 -0
  190. package/template/.codex/skills/product-design/skills/audit/references/design-audit-framework.md +73 -0
  191. package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +133 -0
  192. package/template/.codex/skills/product-design/skills/design-qa/agents/openai.yaml +6 -0
  193. package/template/.codex/skills/product-design/skills/design-qa/references/qa-rubric.md +61 -0
  194. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +81 -0
  195. package/template/.codex/skills/product-design/skills/get-context/agents/openai.yaml +6 -0
  196. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +179 -0
  197. package/template/.codex/skills/product-design/skills/ideate/agents/openai.yaml +6 -0
  198. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +105 -0
  199. package/template/.codex/skills/product-design/skills/image-to-code/agents/openai.yaml +6 -0
  200. package/template/.codex/skills/product-design/skills/index/SKILL.md +126 -0
  201. package/template/.codex/skills/product-design/skills/index/agents/openai.yaml +6 -0
  202. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +128 -0
  203. package/template/.codex/skills/product-design/skills/prototype/agents/openai.yaml +6 -0
  204. package/template/.codex/skills/product-design/skills/prototype/references/existing-codebase-edits.md +18 -0
  205. package/template/.codex/skills/product-design/skills/research/SKILL.md +92 -0
  206. package/template/.codex/skills/product-design/skills/research/agents/openai.yaml +6 -0
  207. package/template/.codex/skills/product-design/skills/share/SKILL.md +41 -0
  208. package/template/.codex/skills/product-design/skills/share/agents/openai.yaml +6 -0
  209. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +124 -0
  210. package/template/.codex/skills/product-design/skills/url-to-code/agents/openai.yaml +6 -0
  211. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +147 -0
  212. package/template/.codex/skills/product-design/skills/user-context/agents/openai.yaml +6 -0
  213. package/template/.codex/skills/product-design/skills/user-context/plugin-author-config/user-context-template.md +63 -0
  214. package/template/.codex/skills/product-design/skills/user-context/references/onboarding.md +66 -0
  215. package/template/.codex/skills/product-design/skills/user-context/scripts/init_user_context.py +86 -0
  216. package/template/.codex/skills/product-design/skills/user-context/scripts/user_context_preflight.py +204 -0
  217. package/template/.codex/skills/product-design/templates/prototype/AGENTS.md +7 -0
  218. package/template/.codex/skills/product-design/templates/prototype/index.html +12 -0
  219. package/template/.codex/skills/product-design/templates/prototype/package.json +18 -0
  220. package/template/.codex/skills/product-design/templates/prototype/src/App.jsx +5 -0
  221. package/template/.codex/skills/product-design/templates/prototype/src/main.jsx +10 -0
  222. package/template/.codex/skills/product-design/templates/prototype/src/styles.css +13 -0
  223. package/template/.codex/skills/product-design/templates/prototype/vite.config.mjs +14 -0
  224. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +3 -3
  225. package/template/AGENTS.md +3 -3
  226. package/template/docs/adr/adr-product-design-prototype-entrypoint.md +54 -0
  227. package/template/docs/api/templates/openapi-draft-review-checklist.md +4 -2
  228. package/template/docs/design/README.md +8 -4
  229. package/template/docs/design/templates/interaction-spec-template.md +4 -1
  230. package/template/docs/design/templates/prototype-confirmation-template.md +57 -0
  231. package/template/docs/design/templates/prototype-review-checklist.md +6 -2
  232. package/template/docs/design/templates/state-matrix-template.md +1 -1
  233. package/template/docs/process/harness-executive-blueprint.md +2 -1
  234. package/template/docs/process/harness-process-tailoring.md +1 -1
  235. package/template/docs/process/harness-work-unit-map.md +1 -1
  236. package/template/docs/process/lifecycle-artifact-map.md +4 -3
  237. package/template/docs/process/product-prototype-workflow.md +82 -0
  238. package/template/docs/user-guide/product-lifecycle-workflow.md +2 -2
  239. package/template/docs/user-guide/product-rd-lifecycle-best-practices.md +15 -10
@@ -0,0 +1,327 @@
1
+ .shared-table-shell {
2
+ display: grid;
3
+ gap: 0;
4
+ min-width: 0;
5
+ width: 100%;
6
+ }
7
+
8
+ .table-wrap {
9
+ box-sizing: border-box;
10
+ width: 100%;
11
+ max-width: 100%;
12
+ overflow-x: auto;
13
+ overflow-y: clip;
14
+ padding: 0 0 10px;
15
+ scrollbar-gutter: stable;
16
+ }
17
+
18
+ .data-table {
19
+ width: 100%;
20
+ min-width: 100%;
21
+ border-collapse: collapse;
22
+ color: var(--ds-text);
23
+ font-size: 14px;
24
+ table-layout: auto;
25
+ }
26
+
27
+ .data-table-resizable {
28
+ table-layout: fixed;
29
+ }
30
+
31
+ .data-table-resizable.is-column-resizing {
32
+ cursor: col-resize;
33
+ }
34
+
35
+ .data-table th,
36
+ .data-table td {
37
+ border-bottom: 1px solid var(--ds-border-subtle);
38
+ max-width: 0;
39
+ overflow: hidden;
40
+ text-align: left;
41
+ text-overflow: ellipsis;
42
+ vertical-align: top;
43
+ }
44
+
45
+ .data-table th {
46
+ position: relative;
47
+ height: 30px;
48
+ overflow: visible;
49
+ padding: 0;
50
+ background: transparent;
51
+ color: var(--ds-text-tertiary);
52
+ font-size: 12px;
53
+ font-weight: 600;
54
+ line-height: 18px;
55
+ letter-spacing: 0;
56
+ }
57
+
58
+ .data-table th.numeric,
59
+ .data-table td.table-cell-number {
60
+ text-align: right;
61
+ }
62
+
63
+ .data-table th.center,
64
+ .data-table td.center {
65
+ text-align: center;
66
+ }
67
+
68
+ .table-sort-button {
69
+ display: flex;
70
+ max-width: 100%;
71
+ align-items: center;
72
+ justify-content: flex-start;
73
+ gap: 3px;
74
+ width: 100%;
75
+ height: 100%;
76
+ min-height: 30px;
77
+ border: 0;
78
+ padding: 0 16px 0 0;
79
+ border-radius: 0;
80
+ background: transparent;
81
+ box-sizing: border-box;
82
+ color: inherit;
83
+ cursor: pointer;
84
+ font: inherit;
85
+ text-align: left;
86
+ white-space: normal;
87
+ }
88
+
89
+ .data-table th:last-child .table-sort-button {
90
+ padding-right: 0;
91
+ }
92
+
93
+ .data-table th.numeric .table-sort-button {
94
+ justify-content: flex-end;
95
+ text-align: right;
96
+ }
97
+
98
+ .data-table th.left .table-sort-button {
99
+ justify-content: flex-start;
100
+ text-align: left;
101
+ }
102
+
103
+ .data-table th.numeric .table-sort-button span {
104
+ text-align: right;
105
+ }
106
+
107
+ .data-table th.center .table-sort-button {
108
+ justify-content: center;
109
+ text-align: center;
110
+ }
111
+
112
+ .table-sort-button span {
113
+ min-width: 0;
114
+ overflow: visible;
115
+ text-overflow: clip;
116
+ }
117
+
118
+ .table-sort-button:hover,
119
+ .table-sort-button:focus-visible {
120
+ border-radius: 0;
121
+ background: var(--ds-menu-hover-bg);
122
+ }
123
+
124
+ .table-column-resize-handle {
125
+ position: absolute;
126
+ top: 0;
127
+ right: -9px;
128
+ bottom: 0;
129
+ z-index: 2;
130
+ width: 18px;
131
+ padding: 0;
132
+ border: 0;
133
+ border-radius: 0;
134
+ background: transparent;
135
+ cursor: col-resize;
136
+ touch-action: none;
137
+ }
138
+
139
+ .table-column-resize-handle:hover {
140
+ cursor: col-resize;
141
+ }
142
+
143
+ .report-stack-item .table-column-resize-handle,
144
+ .table-column-resize-handle:hover {
145
+ cursor: col-resize;
146
+ }
147
+
148
+ .table-column-resize-handle::after {
149
+ position: absolute;
150
+ top: 0;
151
+ bottom: 0;
152
+ left: 50%;
153
+ transform: translateX(-50%);
154
+ width: 1px;
155
+ border-radius: 999px;
156
+ background: var(--ds-border-subtle);
157
+ content: "";
158
+ cursor: col-resize;
159
+ pointer-events: none;
160
+ opacity: 0;
161
+ transition: background 120ms ease, opacity 120ms ease, width 120ms ease;
162
+ }
163
+
164
+ .data-table-resizable th:hover .table-column-resize-handle::after {
165
+ opacity: 0.65;
166
+ }
167
+
168
+ .table-column-resize-handle:hover::after,
169
+ .table-column-resize-handle:focus-visible::after,
170
+ .data-table-resizable.is-column-resizing .table-column-resize-handle::after {
171
+ background: var(--ds-border-strong);
172
+ opacity: 1;
173
+ width: 2px;
174
+ }
175
+
176
+ .table-column-resize-handle:focus-visible {
177
+ outline: 2px solid var(--ds-blue-bright);
178
+ outline-offset: -3px;
179
+ }
180
+
181
+ .table-sort-icon {
182
+ width: 12px;
183
+ height: 12px;
184
+ flex: 0 0 auto;
185
+ stroke: currentColor;
186
+ stroke-width: 2;
187
+ stroke-linecap: round;
188
+ stroke-linejoin: round;
189
+ }
190
+
191
+ .table-sort-button svg {
192
+ color: var(--ds-text-secondary);
193
+ }
194
+
195
+ .table-arrow-button svg {
196
+ width: 14px;
197
+ height: 14px;
198
+ flex: 0 0 auto;
199
+ stroke: currentColor;
200
+ stroke-width: 2;
201
+ stroke-linecap: round;
202
+ stroke-linejoin: round;
203
+ }
204
+
205
+ .data-table td {
206
+ padding: 8px 16px 8px 0;
207
+ color: var(--ds-text-secondary);
208
+ font-size: 14px;
209
+ font-weight: 400;
210
+ line-height: 22px;
211
+ letter-spacing: -0.14px;
212
+ white-space: normal;
213
+ }
214
+
215
+ .data-table td:first-child {
216
+ color: var(--ds-text-primary);
217
+ }
218
+
219
+ .table-wrap.table-density-dense .data-table td {
220
+ height: 40px;
221
+ padding: 0 8px;
222
+ vertical-align: middle;
223
+ white-space: nowrap;
224
+ }
225
+
226
+ .table-wrap.table-density-dense .data-table th {
227
+ height: 30px;
228
+ }
229
+
230
+ .table-wrap.table-density-dense .data-table .table-sort-button {
231
+ padding: 0 8px;
232
+ }
233
+
234
+ .table-wrap.table-density-dense .data-table th:first-child .table-sort-button {
235
+ padding-left: 0;
236
+ }
237
+
238
+ .table-wrap.table-density-dense .data-table th:last-child .table-sort-button {
239
+ padding-right: 0;
240
+ }
241
+
242
+ .table-wrap.table-density-dense .data-table td:first-child {
243
+ padding-left: 0;
244
+ }
245
+
246
+ .table-wrap.table-density-dense .data-table td:last-child {
247
+ padding-right: 0;
248
+ }
249
+
250
+ .data-table tbody tr:hover td {
251
+ background: var(--ds-menu-hover-bg);
252
+ }
253
+
254
+ .data-table tbody tr:last-child td {
255
+ border-bottom: 0;
256
+ }
257
+
258
+ .data-table td.table-cell-movement {
259
+ font-variant-numeric: tabular-nums;
260
+ font-feature-settings: "tnum" 1, "lnum" 1;
261
+ }
262
+
263
+ .data-table td.table-cell-movement-positive {
264
+ color: var(--ds-green);
265
+ }
266
+
267
+ .data-table td.table-cell-movement-negative {
268
+ color: var(--ds-red);
269
+ }
270
+
271
+ .shared-table-footer,
272
+ .table-page-control,
273
+ .table-page-buttons {
274
+ display: flex;
275
+ align-items: center;
276
+ }
277
+
278
+ .shared-table-footer {
279
+ justify-content: space-between;
280
+ gap: 12px;
281
+ min-height: 38px;
282
+ padding: 0;
283
+ border-top: 1px solid var(--ds-border-subtle);
284
+ color: var(--ds-text-muted);
285
+ font-size: 12px;
286
+ line-height: 18px;
287
+ }
288
+
289
+ .table-result-count {
290
+ display: inline-flex;
291
+ align-items: center;
292
+ min-height: 30px;
293
+ color: var(--ds-text-tertiary);
294
+ }
295
+
296
+ .table-page-control,
297
+ .table-page-buttons {
298
+ gap: 8px;
299
+ }
300
+
301
+ .shared-table-footer > .table-page-control:first-child {
302
+ margin-left: auto;
303
+ }
304
+
305
+ .table-arrow-button {
306
+ display: inline-flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ width: 28px;
310
+ height: 28px;
311
+ border: 1px solid var(--ds-border);
312
+ border-radius: var(--ds-radius-pill);
313
+ background: transparent;
314
+ color: var(--ds-text);
315
+ cursor: pointer;
316
+ }
317
+
318
+ .table-arrow-button:hover:not(:disabled),
319
+ .table-arrow-button:focus-visible:not(:disabled) {
320
+ background: var(--ds-menu-hover-bg);
321
+ }
322
+
323
+ .table-arrow-button:disabled {
324
+ color: var(--ds-text-tertiary);
325
+ cursor: default;
326
+ opacity: 0.55;
327
+ }
@@ -0,0 +1,225 @@
1
+ @font-face {
2
+ font-family: "System Sans";
3
+ font-style: normal;
4
+ font-weight: 300 800;
5
+ font-display: swap;
6
+ src: url("./fonts/SystemSansVariableVF.woff2") format("woff2");
7
+ }
8
+
9
+ :root,
10
+ :root[data-theme="light"] {
11
+ color-scheme: light;
12
+ --ds-bg: var(--codex-bg);
13
+ --ds-surface: var(--codex-panel);
14
+ --ds-surface-secondary: var(--codex-bg-under);
15
+ --ds-surface-tertiary: var(--codex-control);
16
+ --ds-border-subtle: var(--codex-border-light);
17
+ --ds-border: var(--codex-border);
18
+ --ds-border-strong: var(--codex-border-heavy);
19
+ --ds-text-primary: var(--codex-text);
20
+ --ds-text: var(--codex-text);
21
+ --ds-text-secondary: var(--codex-text-secondary);
22
+ --ds-text-muted: var(--codex-text-secondary);
23
+ --ds-text-tertiary: var(--codex-text-tertiary);
24
+ --ds-blue-25: var(--blue-25, #f5faff);
25
+ --ds-blue-50: var(--blue-50, #e5f3ff);
26
+ --ds-blue-75: var(--blue-75, #cce6ff);
27
+ --ds-blue-100: var(--blue-100, #99ceff);
28
+ --ds-blue-200: var(--blue-200, #66b5ff);
29
+ --ds-blue-300: var(--blue-300, #339cff);
30
+ --ds-blue-400: var(--blue-400, #0285ff);
31
+ --ds-blue-500: var(--blue-500, #0169cc);
32
+ --ds-blue-600: var(--blue-600, #004f99);
33
+ --ds-blue-700: var(--blue-700, #003f7a);
34
+ --ds-blue-800: var(--blue-800, #013566);
35
+ --ds-blue-900: var(--blue-900, #00284d);
36
+ --ds-blue-950: var(--blue-950, #000e1a);
37
+ --ds-blue: var(--color-text-info, var(--ds-blue-700));
38
+ --ds-blue-bright: var(--codex-accent);
39
+ --ds-purple-200: var(--purple-200, #be95fa);
40
+ --ds-purple-300: var(--purple-300, #ad7bf9);
41
+ --ds-purple-500: var(--purple-500, #8046d9);
42
+ --ds-purple-600: var(--purple-600, #6b3ab4);
43
+ --ds-purple-700: var(--purple-700, #532d8d);
44
+ --ds-purple: var(--purple-600, #6d5bd0);
45
+ --ds-green: var(--color-text-success-surface, var(--green-700, #00692a));
46
+ --ds-green-bg: var(--color-background-success-surface, var(--green-25, #edfaf2));
47
+ --ds-red: var(--color-text-danger-surface, var(--red-600, #ba2623));
48
+ --ds-red-bg: var(--color-background-danger-surface, var(--red-25, #fff0f0));
49
+ --ds-yellow: var(--color-text-caution-surface, var(--yellow-700, #916f00));
50
+ --ds-yellow-bg: var(--color-background-caution-surface, var(--yellow-25, #fffbed));
51
+ --ds-orange: var(--color-text-warning-surface, var(--orange-700, #923b0f));
52
+ --ds-pink: var(--pink-600, #ba437a);
53
+ --ds-neutral: var(--color-text-tertiary, var(--gray-400, #8f8f8f));
54
+ --ds-edit-hover-bg: rgb(232 232 232 / 20%);
55
+ --ds-edit-active-border: var(--color-border-primary, var(--ds-text-primary));
56
+ --ds-menu-button-border: rgba(13, 13, 13, 0.05);
57
+ --ds-overlay-bg: #ffffff;
58
+ --ds-menu-bg: var(--ds-overlay-bg);
59
+ --ds-menu-text: var(--color-token-dropdown-foreground, var(--color-text-foreground, var(--ds-text)));
60
+ --ds-menu-border: var(--color-token-dropdown-border, var(--color-border, var(--ds-border-subtle)));
61
+ --ds-menu-hover-bg: rgb(13 13 13 / 4%);
62
+ --ds-menu-selected-bg: var(--color-token-list-hover-background, var(--codex-control-hover));
63
+ --ds-table-row-text: #5d5d5d;
64
+ --ds-drag-preview-bg: var(--color-background-button-secondary-hover, rgb(232 232 232 / 58%));
65
+ --ds-drag-preview-border: var(--color-border, rgba(13, 13, 13, 0.1));
66
+ --ds-shadow: var(--codex-shadow-lg);
67
+ --ds-font: var(--codex-font-sans);
68
+ --ds-radius-xs: var(--codex-radius-xs);
69
+ --ds-radius-sm: var(--codex-radius-md);
70
+ --ds-radius-panel: var(--codex-radius-2xl);
71
+ --ds-radius-pill: var(--codex-radius-pill);
72
+ --ds-gutter: var(--codex-space-8);
73
+ --ds-panel-padding: var(--codex-space-6);
74
+ --ds-section-gap: var(--codex-space-8);
75
+ --ds-dashboard-section-gap: 32px;
76
+ --ds-report-content-max-width: 768px;
77
+ --ds-report-content-half-width: 384px;
78
+ --ds-dashboard-content-max-width: none;
79
+ --ds-chart-body-height: 240px;
80
+ --ds-chart-card-height: 280px;
81
+ --ds-font-heading: var(--ds-font);
82
+ --ds-dropdown-radius: var(--codex-radius-md);
83
+ --ds-dropdown-padding: var(--codex-space-1);
84
+ --ds-dropdown-row-radius: var(--codex-radius-sm);
85
+ --ds-dropdown-row-height: var(--codex-button-height);
86
+ --ds-field-menu-width: 220px;
87
+ --viz-surface: var(--ds-surface-secondary);
88
+ --viz-panel: var(--ds-surface);
89
+ --viz-ink: var(--ds-text);
90
+ --viz-muted: var(--ds-text-tertiary);
91
+ --viz-grid: var(--ds-border-subtle);
92
+ --viz-axis: var(--ds-border-subtle);
93
+ --viz-neutral-xlight: var(--ds-surface-secondary);
94
+ --viz-neutral-light: var(--ds-surface-tertiary);
95
+ --viz-neutral-base: var(--ds-border-strong);
96
+ --viz-neutral-mid: var(--ds-neutral);
97
+ --viz-neutral-dark: var(--ds-text-secondary);
98
+ --viz-blue-xlight: var(--ds-blue-50);
99
+ --viz-blue-light: var(--ds-blue-100);
100
+ --viz-blue-base: var(--ds-blue);
101
+ --viz-blue-mid: var(--ds-blue-500);
102
+ --viz-blue-dark: var(--ds-blue-700);
103
+ --viz-purple-base: var(--ds-purple);
104
+ --viz-purple-dark: var(--ds-purple-700);
105
+ --viz-gold-xlight: var(--ds-surface-secondary);
106
+ --viz-gold-light: var(--ds-blue-75);
107
+ --viz-gold-base: var(--ds-blue-500);
108
+ --viz-gold-mid: var(--ds-blue-600);
109
+ --viz-gold-dark: var(--ds-blue-800);
110
+ --viz-orange-xlight: var(--ds-surface-secondary);
111
+ --viz-orange-light: var(--ds-blue-100);
112
+ --viz-orange-base: var(--ds-orange);
113
+ --viz-orange-mid: var(--ds-blue-600);
114
+ --viz-orange-dark: var(--ds-blue-800);
115
+ --viz-olive-xlight: var(--ds-surface-secondary);
116
+ --viz-olive-light: var(--ds-blue-75);
117
+ --viz-olive-base: var(--ds-green);
118
+ --viz-olive-mid: var(--ds-blue-600);
119
+ --viz-olive-dark: var(--ds-blue-800);
120
+ --viz-pink-xlight: var(--ds-surface-secondary);
121
+ --viz-pink-light: var(--ds-purple-200);
122
+ --viz-pink-base: var(--ds-pink);
123
+ --viz-pink-mid: var(--ds-purple-500);
124
+ --viz-pink-dark: var(--ds-purple-700);
125
+ --surface: var(--ds-bg);
126
+ --card: var(--ds-surface);
127
+ --foreground: var(--ds-text);
128
+ --muted: var(--ds-text-muted);
129
+ --subtle: var(--ds-text-tertiary);
130
+ --border: var(--ds-border);
131
+ --grid: var(--viz-grid);
132
+ --axis: var(--viz-axis);
133
+ --soft: var(--ds-surface-secondary);
134
+ --blue-base: var(--viz-blue-base);
135
+ --blue-mid: var(--viz-blue-mid);
136
+ --pink-light: var(--viz-pink-light);
137
+ --orange-base: var(--viz-orange-base);
138
+ --olive-base: var(--viz-olive-base);
139
+ --stack-primary: var(--viz-blue-base);
140
+ --stack-secondary: var(--viz-gold-base);
141
+ --stack-tertiary: var(--viz-olive-base);
142
+ --negative: var(--viz-orange-base);
143
+ }
144
+
145
+ @media (prefers-color-scheme: dark) {
146
+ :root:not([data-theme="light"]) {
147
+ color-scheme: dark;
148
+ --ds-bg: #181818;
149
+ --ds-surface: var(--color-surface, #212121);
150
+ --ds-surface-secondary: var(--color-surface-secondary, #181818);
151
+ --ds-surface-tertiary: var(--color-surface-tertiary, #131313);
152
+ --ds-border-subtle: var(--color-border-subtle, rgba(255, 255, 255, 0.05));
153
+ --ds-border: var(--color-border, rgba(255, 255, 255, 0.1));
154
+ --ds-border-strong: var(--color-border-strong, rgba(255, 255, 255, 0.15));
155
+ --ds-text-primary: var(--color-text-primary, #ffffff);
156
+ --ds-text: var(--color-text, #dfdfdf);
157
+ --ds-text-secondary: var(--color-text-secondary, #cdcdcd);
158
+ --ds-text-muted: var(--color-text-secondary, #cdcdcd);
159
+ --ds-text-tertiary: var(--color-text-tertiary, #afafaf);
160
+ --ds-blue: var(--color-text-info, var(--ds-blue-300));
161
+ --ds-blue-bright: var(--color-ring, var(--ds-blue-300));
162
+ --ds-purple: var(--color-text-discovery-surface, var(--ds-purple-300));
163
+ --ds-green: var(--color-text-success-surface, var(--green-400, #04b84c));
164
+ --ds-green-bg: var(--color-background-success-surface, rgba(4, 184, 76, 0.15));
165
+ --ds-red: var(--color-text-danger-surface, var(--red-400, #fa423e));
166
+ --ds-red-bg: var(--color-background-danger-surface, rgba(250, 66, 62, 0.16));
167
+ --ds-yellow: var(--color-text-caution-surface, var(--yellow-400, #ffc300));
168
+ --ds-yellow-bg: var(--color-background-caution-surface, rgba(255, 195, 0, 0.15));
169
+ --ds-orange: var(--color-text-warning-surface, var(--orange-400, #fb6a22));
170
+ --ds-pink: var(--pink-500, #e04c91);
171
+ --ds-neutral: var(--color-text-tertiary, #afafaf);
172
+ --ds-edit-hover-bg: var(--color-background-primary-ghost-hover, rgb(255 255 255 / 8%));
173
+ --ds-menu-button-border: var(--color-border-subtle, rgba(255, 255, 255, 0.05));
174
+ --ds-overlay-bg: var(--codex-panel, var(--color-background-primary, #212121));
175
+ --ds-menu-bg: var(--ds-overlay-bg);
176
+ --ds-menu-text: var(--color-token-dropdown-foreground, var(--color-text-foreground, var(--ds-text-primary)));
177
+ --ds-menu-border: var(--color-token-dropdown-border, var(--color-border, rgba(255, 255, 255, 0.1)));
178
+ --ds-menu-hover-bg: rgb(255 255 255 / 8%);
179
+ --ds-menu-selected-bg: rgb(255 255 255 / 8%);
180
+ --ds-edit-hover-bg: rgb(255 255 255 / 8%);
181
+ --ds-drag-preview-bg: var(--color-background-button-secondary-hover, rgb(255 255 255 / 10%));
182
+ --ds-drag-preview-border: var(--color-border, rgba(255, 255, 255, 0.14));
183
+ --ds-shadow: var(--codex-shadow-lg);
184
+ }
185
+ }
186
+
187
+ :root[data-theme="dark"] {
188
+ color-scheme: dark;
189
+ --ds-bg: #181818;
190
+ --ds-surface: var(--codex-panel);
191
+ --ds-surface-secondary: var(--codex-bg-under);
192
+ --ds-surface-tertiary: var(--codex-control);
193
+ --ds-border-subtle: var(--codex-border-light);
194
+ --ds-border: var(--codex-border);
195
+ --ds-border-strong: var(--codex-border-heavy);
196
+ --ds-text-primary: var(--codex-text);
197
+ --ds-text: var(--codex-text);
198
+ --ds-text-secondary: var(--codex-text-secondary);
199
+ --ds-text-muted: var(--codex-text-secondary);
200
+ --ds-text-tertiary: var(--codex-text-tertiary);
201
+ --ds-blue: var(--color-text-info, var(--ds-blue-300));
202
+ --ds-blue-bright: var(--codex-accent);
203
+ --ds-purple: var(--color-text-discovery-surface, var(--ds-purple-300));
204
+ --ds-green: var(--color-text-success-surface, var(--green-400, #04b84c));
205
+ --ds-green-bg: var(--color-background-success-surface, rgba(4, 184, 76, 0.15));
206
+ --ds-red: var(--color-text-danger-surface, var(--red-400, #fa423e));
207
+ --ds-red-bg: var(--color-background-danger-surface, rgba(250, 66, 62, 0.16));
208
+ --ds-yellow: var(--color-text-caution-surface, var(--yellow-400, #ffc300));
209
+ --ds-yellow-bg: var(--color-background-caution-surface, rgba(255, 195, 0, 0.15));
210
+ --ds-orange: var(--color-text-warning-surface, var(--orange-400, #fb6a22));
211
+ --ds-pink: var(--pink-500, #e04c91);
212
+ --ds-neutral: var(--color-text-tertiary, #afafaf);
213
+ --ds-edit-hover-bg: var(--color-background-primary-ghost-hover, rgb(255 255 255 / 8%));
214
+ --ds-menu-button-border: var(--color-border-subtle, rgba(255, 255, 255, 0.05));
215
+ --ds-overlay-bg: #212121;
216
+ --ds-menu-bg: var(--ds-overlay-bg);
217
+ --ds-menu-text: var(--color-token-dropdown-foreground, var(--color-text-foreground, var(--ds-text-primary)));
218
+ --ds-menu-border: var(--color-token-dropdown-border, var(--color-border, rgba(255, 255, 255, 0.1)));
219
+ --ds-menu-hover-bg: rgb(255 255 255 / 8%);
220
+ --ds-menu-selected-bg: rgb(255 255 255 / 8%);
221
+ --ds-table-row-text: #c9c9c9;
222
+ --ds-drag-preview-bg: var(--color-background-button-secondary-hover, rgb(255 255 255 / 10%));
223
+ --ds-drag-preview-border: var(--color-border, rgba(255, 255, 255, 0.14));
224
+ --ds-shadow: var(--codex-shadow-lg);
225
+ }