base-paint 0.1.0 → 0.3.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.
Files changed (64) hide show
  1. package/dist/blocks.d.ts +169 -0
  2. package/dist/blocks.d.ts.map +1 -0
  3. package/dist/blocks.js +862 -0
  4. package/dist/blocks.js.map +1 -0
  5. package/dist/charts.d.ts +62 -0
  6. package/dist/charts.d.ts.map +1 -0
  7. package/dist/charts.js +1677 -0
  8. package/dist/charts.js.map +1 -0
  9. package/dist/contract.d.ts.map +1 -1
  10. package/dist/contract.js +7 -1
  11. package/dist/contract.js.map +1 -1
  12. package/dist/controls.d.ts +139 -0
  13. package/dist/controls.d.ts.map +1 -0
  14. package/dist/controls.js +1182 -0
  15. package/dist/controls.js.map +1 -0
  16. package/dist/help.d.ts +24 -0
  17. package/dist/help.d.ts.map +1 -0
  18. package/dist/help.js +604 -0
  19. package/dist/help.js.map +1 -0
  20. package/dist/index.d.ts +21 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +21 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/spec/charts.d.ts +222 -0
  25. package/dist/spec/charts.d.ts.map +1 -0
  26. package/dist/spec/charts.js +35 -0
  27. package/dist/spec/charts.js.map +1 -0
  28. package/dist/spec/controls.d.ts +329 -0
  29. package/dist/spec/controls.d.ts.map +1 -0
  30. package/dist/spec/controls.js +119 -0
  31. package/dist/spec/controls.js.map +1 -0
  32. package/dist/spec/help.d.ts +353 -0
  33. package/dist/spec/help.d.ts.map +1 -0
  34. package/dist/spec/help.js +167 -0
  35. package/dist/spec/help.js.map +1 -0
  36. package/dist/spec/index.d.ts +40 -0
  37. package/dist/spec/index.d.ts.map +1 -0
  38. package/dist/spec/index.js +164 -0
  39. package/dist/spec/index.js.map +1 -0
  40. package/dist/spec/style.d.ts +46 -0
  41. package/dist/spec/style.d.ts.map +1 -0
  42. package/dist/spec/style.js +39 -0
  43. package/dist/spec/style.js.map +1 -0
  44. package/dist/spec/template.d.ts +363 -0
  45. package/dist/spec/template.d.ts.map +1 -0
  46. package/dist/spec/template.js +252 -0
  47. package/dist/spec/template.js.map +1 -0
  48. package/dist/spec/text.d.ts +157 -0
  49. package/dist/spec/text.d.ts.map +1 -0
  50. package/dist/spec/text.js +83 -0
  51. package/dist/spec/text.js.map +1 -0
  52. package/dist/style.d.ts +19 -0
  53. package/dist/style.d.ts.map +1 -1
  54. package/dist/style.js +1091 -0
  55. package/dist/style.js.map +1 -1
  56. package/dist/template.d.ts +27 -0
  57. package/dist/template.d.ts.map +1 -0
  58. package/dist/template.js +362 -0
  59. package/dist/template.js.map +1 -0
  60. package/dist/text.d.ts +19 -0
  61. package/dist/text.d.ts.map +1 -0
  62. package/dist/text.js +448 -0
  63. package/dist/text.js.map +1 -0
  64. package/package.json +5 -3
@@ -0,0 +1,164 @@
1
+ /** base-paint/spec:冻结的共享层契约类型汇总(#92 / 79a)。
2
+ *
3
+ * 本目录 = **冻结的共享层契约类型**;`src/contract.ts` = **既有渲染契约**
4
+ *(envelope→HTML)。两者不同物:前者是 #74–#78 的施工图,后者是既有运行时。
5
+ *
6
+ * 纪律:spec/ 内只许类型与纯数据常量,禁函数体实现、禁副作用、
7
+ * 禁第三方 import、禁 `node:`、禁运行时 import base-link-core(只许 `import type`)。
8
+ *
9
+ * `SPEC_FROZEN_SURFACE` 是**冻结面清单**(机器可读唯一真相源):
10
+ * 文档 §3 的签名表是它的投影,`test-d/contract-signatures.ts` 与
11
+ * `test/contract-signatures.test.mjs` 把清单/文档/类型三者绑死。
12
+ *
13
+ * 覆盖面口径(V1 洞 15):清单锁**主签名**(每条 = 一个对外名字);
14
+ * 被主签名引用但未单列的类型(`ClipboardChannel`/`CopyButtonInput`/`ToastAction`/8 个 `*ChartInput`/
15
+ * `SceneGroup` 等)以 `src/spec/*.ts` 为唯一真相源,其形状变更视同签名变更(须走 changeset + 三处同步)。
16
+ */
17
+ export * from './template.js';
18
+ export * from './style.js';
19
+ export * from './controls.js';
20
+ export * from './text.js';
21
+ export * from './charts.js';
22
+ export * from './help.js';
23
+ /** 契约版本(与 RENDER_CONTRACT_VERSION/ENVELOPE_VERSION 同值,漂移由签名测试钉死)。 */
24
+ export const BASE_PAINT_CONTRACT_VERSION = '0.1.0';
25
+ export const SPEC_FROZEN_SURFACE = Object.freeze([
26
+ // ── §3.1 占位符契约与统一填充器(#74;#118 补遗:CONTENT 槽位/载荷槽/包裹约定/分型) ──
27
+ { name: 'TEMPLATE_MARKERS', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ injectData: '<!--INJECT-DATA-->'; content: '<!--CONTENT-->'; sharedHelpers: '<!--SHARED-HELPERS-->'; sharedCss: '<!--SHARED-CSS-->'; chartsHelpers: '<!--CHARTS-HELPERS-->'; noShared: '<!--NO-SHARED-->' }" },
28
+ { name: 'MARKER_RULES', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: 'Record<TemplateMarkerKey, MarkerRuleSpec>' },
29
+ { name: 'PAYLOAD_SLOT_RULE', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ members: readonly ['injectData', 'content']; rule: 'exactly-one'; conflictCode: 'marker-conflict'; missingCode: 'marker-missing' }" },
30
+ { name: 'TEMPLATE_KINDS', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['data-page', 'content-page', 'legacy']" },
31
+ { name: 'TemplateKind', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: "'data-page' | 'content-page' | 'legacy'" },
32
+ { name: 'TEMPLATE_KIND_RULE', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ 'data-page': { required: readonly ['injectData']; forbidden: readonly ['content']; noKindCode: 'marker-conflict' }; 'content-page': { required: readonly ['content']; forbidden: readonly ['injectData']; noKindCode: 'marker-conflict' }; legacy: { required: readonly []; forbidden: readonly ['injectData', 'content']; noKindCode: 'marker-conflict' } }" },
33
+ { name: 'INJECTION_ORDER', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['sharedHelpers', 'sharedCss', 'chartsHelpers', 'injectData']" },
34
+ { name: 'ASSET_WRAP_RULE', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ assetsBare: true; fillerWraps: true; forbidPreWrappedMarker: true; assetWrappedCode: 'asset-missing'; markerPreWrappedCode: 'marker-conflict' }" },
35
+ { name: 'ASSET_WRAPPERS', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ sharedCssText: { openTag: '<style>'; closeTag: '</style>' }; sharedHelpersJs: { openTag: '<script>'; closeTag: '</script>' }; chartsHelpersJs: { openTag: '<script>'; closeTag: '</script>' } }" },
36
+ { name: 'ASSET_MARKER_KEYS', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ sharedCssText: 'sharedCss'; sharedHelpersJs: 'sharedHelpers'; chartsHelpersJs: 'chartsHelpers' }" },
37
+ { name: 'WRAP_PREDICATES', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ assetsBare: { scope: readonly ['sharedCssText', 'sharedHelpersJs', 'chartsHelpersJs']; method: 'trim-prefix-or-suffix'; code: 'asset-missing' }; forbidPreWrappedMarker: { scope: readonly ['sharedCss', 'sharedHelpers', 'chartsHelpers']; excludes: readonly ['injectData']; method: 'enclosing-open-tag'; code: 'marker-conflict' } }" },
38
+ { name: 'DEFAULT_DATA_SCRIPT_ID', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "'payload'" },
39
+ { name: 'DATA_SCRIPT_TYPE', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "'application/json'" },
40
+ { name: 'CONTAINER_CHECK_RULE', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ appliesWhenMarker: 'injectData'; openTag: '<script>'; closeTag: '</script>'; id: 'payload'; type: 'application/json'; code: 'container-missing' }" },
41
+ { name: 'STRICT_ENVELOPE_FIELDS', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['version', 'skill', 'shape', 'key', 'data']" },
42
+ { name: 'STRICT_ENVELOPE_SHAPES', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['list', 'detail', 'stat', 'receipt', 'analysis', 'fallback']" },
43
+ { name: 'TEMPLATE_ERROR_CODES', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['marker-missing', 'marker-duplicate', 'marker-conflict', 'data-missing', 'container-missing', 'asset-missing', 'strict-invalid', 'content-missing']" },
44
+ { name: 'TEMPLATE_CHECK_ORDER', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: "readonly ['marker-duplicate', 'marker-missing', 'marker-conflict', 'container-missing', 'asset-missing', 'data-missing', 'content-missing', 'strict-invalid']" },
45
+ { name: 'TemplateAssets', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: '{ sharedHelpersJs: string; sharedCssText: string; chartsHelpersJs?: string }' },
46
+ { name: 'FillTemplateInput', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: '{ template: string; assets: TemplateAssets; data?: unknown; strict?: boolean; dataScriptId?: string; content?: string }' },
47
+ { name: 'FillTemplateReport', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: '{ markers: readonly MarkerReport[]; strict: boolean; exempt: boolean; bytes: number }' },
48
+ { name: 'FillTemplateOutput', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: '{ html: string; report: FillTemplateReport }' },
49
+ { name: 'FillTemplate', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: '(input: FillTemplateInput) => FillTemplateOutput' },
50
+ { name: 'fillTemplate', kind: 'runtime', ticket: '#74', status: 'implemented', section: '3.1', signature: '(input: FillTemplateInput): FillTemplateOutput' },
51
+ { name: 'TemplateErrorShape', kind: 'type', ticket: '#74', status: 'implemented', section: '3.1', signature: "{ name: 'TemplateError'; code: TemplateErrorCode; marker?: TemplateMarkerKey; message: string }" },
52
+ // ── §3.2 共享样式资产(#75) ──
53
+ { name: 'CSS_VAR_TOKENS', kind: 'runtime', ticket: '#75', status: 'implemented', section: '3.2', signature: "{ '--fg': '#1d1d1f'; '--fg2': '#6e6e73'; '--fg3': '#86868b'; '--bg': '#f5f5f7'; '--card': '#ffffff'; '--line': '#d2d2d7'; '--blue': '#007aff'; '--blue2': '#0a63ce'; '--soft': '#f5f8ff'; '--ok': '#34c759'; '--shadow': '0 1px 2px rgba(0,0,0,.04), 0 12px 36px rgba(0,0,0,.06)' }" },
54
+ { name: 'STYLE_SHEET_ID', kind: 'runtime', ticket: '#75', status: 'implemented', section: '3.2', signature: "'ilife-base'" },
55
+ { name: 'CONTROL_STYLE_SECTIONS', kind: 'runtime', ticket: '#75', status: 'implemented', section: '3.2', signature: "readonly ['toast', 'actionBar', 'copyButton', 'statusBadge', 'emptyState', 'errorReceipt', 'charts', 'helpShell']" },
56
+ { name: 'STYLE_FORBIDDEN_TOKENS', kind: 'runtime', ticket: '#75', status: 'implemented', section: '3.2', signature: "readonly ['--r-xl', '--pink']" },
57
+ { name: 'StyleSheetInput', kind: 'type', ticket: '#75', status: 'implemented', section: '3.2', signature: '{ prefix?: string; extraCss?: string }' },
58
+ { name: 'StyleSheetOutput', kind: 'type', ticket: '#75', status: 'implemented', section: '3.2', signature: '{ css: string; tokens: readonly CssVarName[]; prefix: string; version: string }' },
59
+ { name: 'BuildStyleSheet', kind: 'type', ticket: '#75', status: 'implemented', section: '3.2', signature: '(input?: StyleSheetInput) => StyleSheetOutput' },
60
+ { name: 'buildStyleSheet', kind: 'runtime', ticket: '#75', status: 'implemented', section: '3.2', signature: '(input?: StyleSheetInput): StyleSheetOutput' },
61
+ // ── §3.3 控件层(#76) ──
62
+ { name: 'ESCAPE_HTML_CHARS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['&', '<', '>', '\"', \"'\"]" },
63
+ { name: 'ESCAPE_HTML_ENTITIES', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ '&': '&amp;'; '<': '&lt;'; '>': '&gt;'; '\"': '&quot;'; \"'\": '&#39;' }" },
64
+ { name: 'COPY_CHANNELS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['clipboard', 'fallback']" },
65
+ { name: 'COPY_TEXT_DEFAULTS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ emptyTextShortCircuit: true; failBadgeAlwaysOn: true; okMessage: '已复制'; okDetail: '粘贴给 AI'; failMessage: '复制失败'; failDetail: '长按选择文本手动复制' }" },
66
+ { name: 'TOAST_ICONS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['copy', 'ok', 'warn', 'danger', 'info']" },
67
+ { name: 'TOAST_DEFAULTS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ timeoutMs: 4500; maxStack: 5; mobileMaxStack: 3; mobileMaxPx: 820; gapPx: 8; role: 'status'; ariaLive: 'polite'; defaultIcon: 'copy' }" },
68
+ { name: 'ACTION_BAR_KINDS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['primary', 'red', 'ghost']" },
69
+ { name: 'ACTION_BAR_DEFAULTS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ copyDataLabel: '复制数据'; copyLogLabel: '复制日志'; ghostOwnRow: true; evenRowPairs: 2; minHeightPx: 40; fontSizePx: 12; fontWeight: 600; ghostBorderAlpha: 0.38 }" },
70
+ { name: 'STATUS_KINDS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['ok', 'warn', 'danger', 'empty']" },
71
+ { name: 'STATUS_DEFAULT_TEXT', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ ok: '成功'; warn: '警告'; danger: '失败'; empty: '无数据' }" },
72
+ { name: 'CONTROLS_ERROR_CODES', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['bad-input', 'bad-format']" },
73
+ { name: 'CONTROL_NAMES', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "readonly ['toast', 'copyText', 'actionBar', 'statusBadge', 'emptyState', 'errorReceipt']" },
74
+ { name: 'CONTROLS_HOST_REQUIREMENT', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "'none'" },
75
+ { name: 'CONTROL_AVAILABILITY', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: 'Record<ControlName, ControlAvailability>' },
76
+ { name: 'CopyPorts', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ clipboard: ClipboardChannel | null; fallback: (text: string) => boolean; toast?: ToastHostPort }' },
77
+ { name: 'CopyTextOptions', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ silent?: boolean; toast?: { ok?: CopyToastText; fail?: CopyToastText }; onOk?: (channel: CopyChannel) => void; onFail?: (reason: string) => void }' },
78
+ { name: 'CopyTextOutcome', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ ok: boolean; channel: CopyChannel | null; reason?: string }' },
79
+ { name: 'CopyText', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '(text: string, ports: CopyPorts, opts?: CopyTextOptions) => Promise<CopyTextOutcome>' },
80
+ { name: 'copyText', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(text: string, ports: CopyPorts, opts?: CopyTextOptions): Promise<CopyTextOutcome>' },
81
+ { name: 'CopyRuntime', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ copyText(text: string, opts?: CopyTextOptions): Promise<CopyTextOutcome>; dispose(): void }' },
82
+ { name: 'createCopyRuntime', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(ports: CopyPorts): CopyRuntime' },
83
+ { name: 'CopyActionHostPort', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ listActionIds(): readonly string[]; readDataText(actionId: string): string | undefined; onActivate(actionId: string, handler: () => void): () => void }' },
84
+ { name: 'ACTION_ID_ATTR', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "'data-action-id'" },
85
+ { name: 'COPY_ACTION_IDS', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "{ actionBar: { copyData: 'ilife-copy-data'; copyLog: 'ilife-copy-log' }; errorReceipt: { copyData: 'ilife-error-copy-data'; copyLog: 'ilife-error-copy-log' } }" },
86
+ { name: 'BindCopyAction', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '(port: CopyActionHostPort, ports: CopyPorts, opts?: CopyTextOptions) => { dispose(): void }' },
87
+ { name: 'bindCopyAction', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(port: CopyActionHostPort, ports: CopyPorts, opts?: CopyTextOptions): { dispose(): void }' },
88
+ { name: 'SharedHelpersInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ prefix?: string; dataAttr?: string }' },
89
+ { name: 'DEFAULT_DATA_ATTR', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: "'data-t'" },
90
+ { name: 'BuildSharedHelpersJs', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input?: SharedHelpersInput) => string' },
91
+ { name: 'buildSharedHelpersJs', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input?: SharedHelpersInput): string' },
92
+ { name: 'SHARED_HELPERS_JS_RULE', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ selfContained: true; idempotent: true; domAllowed: true; forbidGlobalAssignment: true; forbidNodeBuiltins: true }' },
93
+ { name: 'ToastInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ msg: string; detail?: string; icon?: ToastIcon; badge?: ToastBadge; actions?: readonly ToastAction[]; count?: string; lines?: readonly string[]; code?: string; timeoutMs?: number; maxStack?: number }' },
94
+ { name: 'ToastHostPort', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ mount(html: string): { remove(): void } }' },
95
+ { name: 'ToastController', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ show(input: ToastInput): void; flush(): void; dispose(): void }' },
96
+ { name: 'renderToast', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input: ToastInput): string' },
97
+ { name: 'createToastController', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(port: ToastHostPort): ToastController' },
98
+ { name: 'ActionBarInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ buttons?: readonly ActionBarButton[]; copyData?: CopyButtonInput; copyLog?: CopyButtonInput }' },
99
+ { name: 'renderActionBar', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input: ActionBarInput): string' },
100
+ { name: 'StatusBadgeInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ status: StatusKind; text?: string }' },
101
+ { name: 'renderStatusBadge', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input: StatusBadgeInput): string' },
102
+ { name: 'EmptyStateInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ icon?: string; text: string; hint?: string; actionHtml?: string }' },
103
+ { name: 'renderEmptyState', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input: EmptyStateInput): string' },
104
+ { name: 'ErrorReceiptInput', kind: 'type', ticket: '#76', status: 'implemented', section: '3.3', signature: '{ message: string; retryPrompt?: string; dataText?: string; logText?: string; dataActionId?: string; logActionId?: string }' },
105
+ { name: 'renderErrorReceipt', kind: 'runtime', ticket: '#76', status: 'implemented', section: '3.3', signature: '(input: ErrorReceiptInput): string' },
106
+ // ── §3.4 复制文本序列化(#77) ──
107
+ { name: 'COPY_FORMATS', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "readonly ['text', 'json', 'csv']" },
108
+ { name: 'SERIALIZABLE_SHAPES', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "readonly ['stat', 'list', 'detail', 'analysis', 'receipt']" },
109
+ { name: 'LOG_SECTIONS', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "readonly ['scene', 'thinking', 'dataStructure', 'callChain', 'timestampVersion', 'exception']" },
110
+ { name: 'LOG_SECTION_TITLES', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "{ scene: '场景标识'; thinking: 'AI 思考链'; dataStructure: '数据结构'; callChain: '调用链'; timestampVersion: '时间戳版本'; exception: '异常' }" },
111
+ { name: 'LOG_UNKNOWN_PLACEHOLDER', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "'(未知)'" },
112
+ { name: 'TEXT_EMPTY_PLACEHOLDER', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "'未填写'" },
113
+ { name: 'TEXT_SENSITIVE_MASK', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "'****'" },
114
+ { name: 'TEXT_HEADER_TEMPLATE', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "'【{skill} · {key}】'" },
115
+ { name: 'TEXT_JSON_INDENT', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: '2' },
116
+ { name: 'TEXT_JSON_LT_RULE', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "'u003c'" },
117
+ { name: 'CSV_DIALECT', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "{ delimiter: ','; quote: '\"'; quoteEscape: '\"\"'; lineEnding: 'LF'; header: readonly ['section', 'row'] }" },
118
+ { name: 'TEXT_ERROR_CODES', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "readonly ['shape-unsupported', 'structure-invalid', 'format-unknown']" },
119
+ { name: 'SerializableEnvelope', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: 'Envelope<SerializableShape>' },
120
+ { name: 'DataTextInput', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '{ envelope: SerializableEnvelope; format?: CopyFormat; title?: string; occurredAt?: string }' },
121
+ { name: 'LogTextInput', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '{ envelope: SerializableEnvelope; format?: CopyFormat; copyLog?: CopyLogFields }' },
122
+ { name: 'CopyLogFields', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '{ thinking?: string; dataStructure?: string; callChain?: string; timestamp?: string; exception?: string }' },
123
+ { name: 'LOG_SECTION_SOURCES', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "{ scene: 'envelope'; thinking: 'copyLog.thinking'; dataStructure: 'copyLog.dataStructure'; callChain: 'copyLog.callChain'; timestampVersion: 'copyLog.timestamp'; exception: 'copyLog.exception' }" },
124
+ { name: 'DataProjectionSpec', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '{ header: string; body: string; tail: string | null; csvSections: readonly string[] }' },
125
+ { name: 'DATA_TEXT_PROJECTIONS', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "{ stat: { header: '【{skill} · {key}】'; body: 'metrics'; tail: null; csvSections: readonly ['metrics'] }; list: { header: '【{skill} · {key}】'; body: 'items'; tail: 'total'; csvSections: readonly ['items', 'total'] }; detail: { header: '【{skill} · {key}】'; body: 'item'; tail: null; csvSections: readonly ['item'] }; receipt: { header: '【{skill} · {key}】'; body: 'ok'; tail: 'message'; csvSections: readonly ['status', 'message'] }; analysis: { header: '【{skill} · {key}】'; body: 'summary'; tail: null; csvSections: readonly ['summary'] } }" },
126
+ { name: 'BuildDataText', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '(input: DataTextInput) => string' },
127
+ { name: 'buildDataText', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: '(input: DataTextInput): string' },
128
+ { name: 'BuildLogText', kind: 'type', ticket: '#77', status: 'implemented', section: '3.4', signature: '(input: LogTextInput) => string' },
129
+ { name: 'buildLogText', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: '(input: LogTextInput): string' },
130
+ { name: 'SENSITIVE_ROW_RULE', kind: 'runtime', ticket: '#77', status: 'implemented', section: '3.4', signature: "{ textField: 'text'; flagField: 'sensitive'; flagValue: true; mask: '****'; textNotice: '(敏感字段已脱敏)' }" },
131
+ // ── §3.5 图表层与 HELP 壳(#78) ──
132
+ { name: 'CHART_KINDS', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['bar', 'line', 'donut', 'progress', 'combo', 'sparkline', 'gauge', 'scatter']" },
133
+ { name: 'CHARTS_STYLE_ID', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'ilife-charts'" },
134
+ { name: 'CHART_STRUCTURE_RULE', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'throw'" },
135
+ { name: 'CHART_EMPTY_RULE', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'emptyState'" },
136
+ { name: 'CHART_COORD_RULE', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'viewBox-only'" },
137
+ { name: 'CHART_BREAKPOINTS', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ mobileMaxPx: 720; dotSizeMobilePx: 8; lineHeightMobilePx: 150; stackedGapPx: 3 }' },
138
+ { name: 'CHART_PALETTE', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['#007aff', '#34c759', '#ff9500', '#ff3b30', '#af52de', '#5ac8fa', '#ffcc00', '#8e8e93', '#ff2d55', '#00c7be']" },
139
+ { name: 'CHART_ERROR_CODES', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['structure-invalid', 'pct-invalid', 'kind-unknown']" },
140
+ { name: 'SCENE_STATUS', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['', '【待开发】']" },
141
+ { name: 'SCENE_TYPE_FIELD', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'types'" },
142
+ { name: 'SCENE_DATA_SCHEMA', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "object(draft-07;$id: 'ilife://base-paint/scene-data.schema.json')" },
143
+ { name: 'HELP_SHELL_ID', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "'ilife-help-shell'" },
144
+ { name: 'HELP_COPY_TARGETS', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['prompt', 'wakeWord', 'params']" },
145
+ { name: 'HELP_COPY_ACTIONS', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "{ prompt: { actionId: 'ilife-help-copy-prompt'; label: '复制指令' }; wakeWord: { actionId: 'ilife-help-copy-wakeWord'; label: '复制唤醒词' }; params: { actionId: 'ilife-help-copy-params'; label: '复制参数' } }" },
146
+ { name: 'HELP_SCHEMA_ERROR_CODES', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: "readonly ['schema-invalid', 'duplicate-id', 'status-invalid', 'types-invalid']" },
147
+ { name: 'ChartItem', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ label: string; value: number | null; color?: string; values?: readonly number[]; anomaly?: boolean }' },
148
+ { name: 'ChartOutput', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ kind: ChartKind; html: string; empty: boolean; points: number }' },
149
+ { name: 'ChartsApi', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ bar(input: BarChartInput): ChartOutput; line(input: LineChartInput): ChartOutput; donut(input: DonutChartInput): ChartOutput; progress(input: ProgressChartInput): ChartOutput; combo(input: ComboChartInput): ChartOutput; sparkline(input: SparklineChartInput): ChartOutput; gauge(input: GaugeChartInput): ChartOutput; scatter(input: ScatterChartInput): ChartOutput }' },
150
+ { name: 'charts', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: 'ChartsApi' },
151
+ { name: 'SceneData', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ skill_name: string; title: string; subtitle?: string; meta_blocks?: readonly SceneMetaBlock[]; groups: readonly SceneGroup[]; init_banner?: SceneInitBanner; contact?: SceneContact; version?: string; recommendations?: readonly SceneRecommendation[] }' },
152
+ { name: 'Scene', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: "{ id: string; title: string; wake_word: string; types?: readonly (string | SceneTypeBadge)[]; status: SceneStatus; prompt_template: string; editable_fields?: readonly SceneEditableField[] }" },
153
+ { name: 'HelpShellInput', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ sceneData: SceneData; assets: TemplateAssets; strict?: boolean; template?: string }' },
154
+ { name: 'RenderHelpShell', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '(input: HelpShellInput) => FillTemplateOutput' },
155
+ { name: 'renderHelpShell', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: '(input: HelpShellInput): FillTemplateOutput' },
156
+ { name: 'ChartsHelpersInput', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '{ prefix?: string; styleId?: string }' },
157
+ { name: 'BuildChartsHelpersJs', kind: 'type', ticket: '#78', status: 'implemented', section: '3.5', signature: '(input?: ChartsHelpersInput) => string' },
158
+ { name: 'buildChartsHelpersJs', kind: 'runtime', ticket: '#78', status: 'implemented', section: '3.5', signature: '(input?: ChartsHelpersInput): string' },
159
+ // ── §5 版本机制 ──
160
+ { name: 'BASE_PAINT_CONTRACT_VERSION', kind: 'runtime', ticket: '#92', status: 'implemented', section: '5', signature: "'0.1.0'" },
161
+ // ── §7 签名测试 ──
162
+ { name: 'SPEC_FROZEN_SURFACE', kind: 'runtime', ticket: '#92', status: 'implemented', section: '7', signature: 'readonly FrozenSurfaceEntry[]' },
163
+ ]);
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spec/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /** base-paint/spec/style:共享样式资产契约(#75 冻结面)。
2
+ *
3
+ * 冻结的**旧 token A 组 11 个**(AC-9,来源旧 `assets/base.css:13-23` 实测);
4
+ * 与既有 `src/style.ts` 的 9 个深色 JS token(`STYLE_TOKENS`)**不同物**:
5
+ * 后者是既有渲染契约,前者是注入 HTML 的 CSS 变量表。
6
+ *
7
+ * 红线:样式只抖 base-paint;类名前缀 `ilife-`;单品包禁自带样式常量。
8
+ * Q14:不得引入 `--r-xl`/`--pink`/深色区。
9
+ */
10
+ /** 旧 token A 组逐值(11 个;`--blue: #007aff` 与 Q12 锁定的 B1 主色一致)。 */
11
+ export declare const CSS_VAR_TOKENS: Readonly<{
12
+ readonly '--fg': "#1d1d1f";
13
+ readonly '--fg2': "#6e6e73";
14
+ readonly '--fg3': "#86868b";
15
+ readonly '--bg': "#f5f5f7";
16
+ readonly '--card': "#ffffff";
17
+ readonly '--line': "#d2d2d7";
18
+ readonly '--blue': "#007aff";
19
+ readonly '--blue2': "#0a63ce";
20
+ readonly '--soft': "#f5f8ff";
21
+ readonly '--ok': "#34c759";
22
+ readonly '--shadow': "0 1px 2px rgba(0,0,0,.04), 0 12px 36px rgba(0,0,0,.06)";
23
+ }>;
24
+ export type CssVarName = keyof typeof CSS_VAR_TOKENS;
25
+ /** 样式表版本(B8 统一版本口径由 §5 机制决定)。 */
26
+ export declare const STYLE_SHEET_ID = "ilife-base";
27
+ /** 控件样式区边界:每个区一个类名命名空间(自动加 `STYLE_PREFIX`)。 */
28
+ export declare const CONTROL_STYLE_SECTIONS: readonly ["toast", "actionBar", "copyButton", "statusBadge", "emptyState", "errorReceipt", "charts", "helpShell"];
29
+ export type ControlStyleSection = (typeof CONTROL_STYLE_SECTIONS)[number];
30
+ /** Q14 禁入 token(出现即契约缺陷)。 */
31
+ export declare const STYLE_FORBIDDEN_TOKENS: readonly ["--r-xl", "--pink"];
32
+ export interface StyleSheetInput {
33
+ /** 缺省既有 `STYLE_PREFIX`(`ilife-`)。 */
34
+ readonly prefix?: string;
35
+ /** 附加 CSS 文本;不得重定义 token、不得出现禁入 token。 */
36
+ readonly extraCss?: string;
37
+ }
38
+ export interface StyleSheetOutput {
39
+ readonly css: string;
40
+ readonly tokens: readonly CssVarName[];
41
+ readonly prefix: string;
42
+ readonly version: string;
43
+ }
44
+ /** 冻结签名:`buildStyleSheet(input?: StyleSheetInput): StyleSheetOutput`。 */
45
+ export type BuildStyleSheet = (input?: StyleSheetInput) => StyleSheetOutput;
46
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/spec/style.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,cAAc;;;;;;;;;;;;EAYhB,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC;AAErD,iCAAiC;AACjC,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,+CAA+C;AAC/C,eAAO,MAAM,sBAAsB,mHASzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,6BAA6B;AAC7B,eAAO,MAAM,sBAAsB,+BAAgC,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,KAAK,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /** base-paint/spec/style:共享样式资产契约(#75 冻结面)。
2
+ *
3
+ * 冻结的**旧 token A 组 11 个**(AC-9,来源旧 `assets/base.css:13-23` 实测);
4
+ * 与既有 `src/style.ts` 的 9 个深色 JS token(`STYLE_TOKENS`)**不同物**:
5
+ * 后者是既有渲染契约,前者是注入 HTML 的 CSS 变量表。
6
+ *
7
+ * 红线:样式只抖 base-paint;类名前缀 `ilife-`;单品包禁自带样式常量。
8
+ * Q14:不得引入 `--r-xl`/`--pink`/深色区。
9
+ */
10
+ /** 旧 token A 组逐值(11 个;`--blue: #007aff` 与 Q12 锁定的 B1 主色一致)。 */
11
+ export const CSS_VAR_TOKENS = Object.freeze({
12
+ '--fg': '#1d1d1f',
13
+ '--fg2': '#6e6e73',
14
+ '--fg3': '#86868b',
15
+ '--bg': '#f5f5f7',
16
+ '--card': '#ffffff',
17
+ '--line': '#d2d2d7',
18
+ '--blue': '#007aff',
19
+ '--blue2': '#0a63ce',
20
+ '--soft': '#f5f8ff',
21
+ '--ok': '#34c759',
22
+ '--shadow': '0 1px 2px rgba(0,0,0,.04), 0 12px 36px rgba(0,0,0,.06)',
23
+ });
24
+ /** 样式表版本(B8 统一版本口径由 §5 机制决定)。 */
25
+ export const STYLE_SHEET_ID = 'ilife-base';
26
+ /** 控件样式区边界:每个区一个类名命名空间(自动加 `STYLE_PREFIX`)。 */
27
+ export const CONTROL_STYLE_SECTIONS = [
28
+ 'toast',
29
+ 'actionBar',
30
+ 'copyButton',
31
+ 'statusBadge',
32
+ 'emptyState',
33
+ 'errorReceipt',
34
+ 'charts',
35
+ 'helpShell',
36
+ ];
37
+ /** Q14 禁入 token(出现即契约缺陷)。 */
38
+ export const STYLE_FORBIDDEN_TOKENS = ['--r-xl', '--pink'];
39
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/spec/style.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,wDAAwD;CAC5D,CAAC,CAAC;AAIZ,iCAAiC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO;IACP,WAAW;IACX,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,WAAW;CACH,CAAC;AAIX,6BAA6B;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC"}