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,169 @@
1
+ /** base-paint/blocks:#104 B1 区块组件整合(12 区块,接口 owner)。
2
+ *
3
+ * 地位(契约 `docs/base-paint-contract.md` §4.1/§4.4 #104 行):
4
+ * - 区块级 = 页面级组合:**组合**冻结控件(`renderEmptyState`/`renderActionBar`/
5
+ * `renderToast`/`renderErrorReceipt`/`renderStatusBadge`/`charts.*`),**不得**
6
+ * 重定义控件签名、不得复制控件实现、不得改 `CONTROL_*`/`STATUS_*`/`COPY_*` 常量;
7
+ * - **防火墙**:本模块**不在** `src/spec/`、**不进** `SPEC_FROZEN_SURFACE`、
8
+ * **不从** `src/index.ts` 导出(签名测试把 `dist/index.js` 出口与冻结清单绑死,
9
+ * 区块接口是可演进的组合层,不是冻结签名)。消费方走子路径 `base-paint/blocks`;
10
+ * - 清单裁定(DB-1):12 区块取 `docs/visual-spec-blocks.md` §1 拟定清单为终版,
11
+ * 只做命名收敛(英文键),锚点语义不变;
12
+ * - 样式闭集裁定(DB-2):新增 `BLOCK_STYLE_SECTIONS` 12 区闭集(**不改**
13
+ * `CONTROL_STYLE_SECTIONS`);区块 CSS 由本模块唯一产出者 `blocksCss()` 产出,
14
+ * 只读冻结 token(`CSS_VAR_TOKENS`)+ 局部 CSS 常量(圆角 `{8,14,20,999}`、
15
+ * `--line` 派生软线),**不新增 token 名**(D-5/DB-5)。
16
+ *
17
+ * 三条硬边界(违反即红):
18
+ * 1. **静态呈现 + 复制**(§4.1):12 个函数全是纯函数产 HTML 字符串;B-08 只产原生
19
+ * `<details>/<summary>`,B-09 只产静态 `label+input`(实时预览/空值拦截的
20
+ * **行为**归宿主=插件 client,B7;本模块只给宿主留 `data-*` 约定);
21
+ * 2. **禁交互控件名**(B7):`formPrompt`/`selectList`/`smartSelect`/`confirm`/
22
+ * `foldBox` 不得出现为导出(含大小写变体);
23
+ * 3. **模块代码零 DOM**(AC-7):本文件编译进 `dist/blocks.js` 的**代码**里不出现
24
+ * `document.`/`window.`/`navigator.`(与 #76 同口径,`test/blocks.test.mjs` 钉死)。
25
+ *
26
+ * 受信透传口径(与 `renderEmptyState` 的 `actionHtml` 同口径):`contentHtml`/
27
+ * `previewText` 等「已由区块函数自产的 HTML」**不转义**(调用方不得塞入未转义的用户串;
28
+ * 用户串一律走各函数的文本字段,本模块用冻结五字符表转义);
29
+ * `actionHtml`(B-10)沿用冻结语义(调用方负责内容安全)。
30
+ */
31
+ import { ACTION_ID_ATTR, COPY_ACTION_IDS, DEFAULT_DATA_ATTR, TOAST_DEFAULTS } from './spec/index.js';
32
+ import type { ActionBarInput, ChartKind, CopyButtonInput, EmptyStateInput, ErrorReceiptInput, Scene, StatusKind, ToastInput } from './spec/index.js';
33
+ import type { BarChartInput, ComboChartInput, DonutChartInput, GaugeChartInput, LineChartInput, ProgressChartInput, ScatterChartInput, SparklineChartInput } from './spec/charts.js';
34
+ /** 区块层错误。code 恒为 `bad-input`(输入缺失/非法一律抛,缺失阻断不返空)。 */
35
+ export declare class BlocksError extends Error {
36
+ readonly code: 'bad-input';
37
+ constructor(message: string);
38
+ }
39
+ /** 12 区块样式区(DB-1 清单的代码落点;顺序即 B-01…B-12)。 */
40
+ export declare const BLOCK_STYLE_SECTIONS: readonly ["pageShell", "kpiCard", "dataTable", "chartBlock", "listRows", "preBlock", "detailSection", "disclosure", "paramForm", "emptyBlock", "copyBlock", "feedbackBlock"];
41
+ export type BlockStyleSection = (typeof BLOCK_STYLE_SECTIONS)[number];
42
+ export interface PageShellInput {
43
+ readonly title: string;
44
+ readonly subtitle?: string;
45
+ readonly eyebrow?: string;
46
+ /** 已组合好的区块 HTML(受信透传,不转义)。 */
47
+ readonly content: string;
48
+ }
49
+ /** B-01:单页容器+标题三件套(eyebrow/title/subtitle)+正文。 */
50
+ export declare function renderPageShell(input: PageShellInput): string;
51
+ export interface KpiCardInput {
52
+ readonly label: string;
53
+ readonly value: string;
54
+ readonly unit?: string;
55
+ readonly detail?: string;
56
+ readonly status?: StatusKind;
57
+ readonly statusText?: string;
58
+ }
59
+ /** B-02:单张 KPI 卡(value 带 `tnum`;非法 status 由冻结语义降级 `empty`)。 */
60
+ export declare function renderKpiCard(input: KpiCardInput): string;
61
+ /** B-02 伴生布局:KPI 卡网格(不是第 13 个区块,无独立样式区,用 `kpiCard` 区)。 */
62
+ export declare function renderKpiGrid(cards: readonly KpiCardInput[]): string;
63
+ export type DataTableAlign = 'left' | 'center' | 'right';
64
+ export interface DataTableColumn {
65
+ readonly key: string;
66
+ readonly label: string;
67
+ readonly align?: DataTableAlign;
68
+ }
69
+ export interface DataTableInput {
70
+ readonly columns: readonly DataTableColumn[];
71
+ readonly rows: readonly Readonly<Record<string, unknown>>[];
72
+ readonly caption?: string;
73
+ readonly emptyText?: string;
74
+ }
75
+ /** B-03:语义表格(`table/thead/th/td`;零行 → `renderEmptyState`,不渲染空表)。 */
76
+ export declare function renderDataTable(input: DataTableInput): string;
77
+ export type ChartBlockChartInput = BarChartInput | LineChartInput | DonutChartInput | ProgressChartInput | ComboChartInput | SparklineChartInput | GaugeChartInput | ScatterChartInput;
78
+ export interface ChartBlockInput {
79
+ readonly kind: ChartKind;
80
+ readonly input: ChartBlockChartInput;
81
+ readonly title?: string;
82
+ }
83
+ /** B-04:图表区块(分发给冻结 `charts` 8 接口;空数组走空态/结构违规抛错恒为冻结语义)。 */
84
+ export declare function renderChartBlock(input: ChartBlockInput): string;
85
+ export interface ListRowInput {
86
+ readonly left?: string;
87
+ readonly main: string;
88
+ readonly right?: string;
89
+ readonly done?: boolean;
90
+ }
91
+ export interface ListRowsInput {
92
+ readonly items: readonly ListRowInput[];
93
+ readonly emptyText?: string;
94
+ }
95
+ /** B-05:行列表(首行无边框;`done` → 删除线+成功色;零行 → 空态)。 */
96
+ export declare function renderListRows(input: ListRowsInput): string;
97
+ export interface PreBlockInput {
98
+ readonly command: string;
99
+ readonly label?: string;
100
+ /** 给出即渲染复制按钮(id 写入 ACTION_ID_ATTR,文本写入 DEFAULT_DATA_ATTR)。 */
101
+ readonly actionId?: string;
102
+ readonly copyText?: string;
103
+ readonly copyLabel?: string;
104
+ }
105
+ /** B-06:指令块(`<pre>` 逐字命令;无命令 → `bad-input`,不渲染空板)。 */
106
+ export declare function renderPreBlock(input: PreBlockInput): string;
107
+ export interface DetailSectionInput {
108
+ readonly scene: Scene;
109
+ /** 该场景的 CLI 形态(调用方按 §3.5.3 `Scene.id` 推导约定组装)。 */
110
+ readonly cli?: string;
111
+ }
112
+ /** B-07:场景详情(`prompt_template` 全文逐字展示;`【待开发】` 徽章下复制按钮仍可点=纯展示,无行为)。 */
113
+ export declare function renderDetailSection(input: DetailSectionInput): string;
114
+ export interface DisclosureInput {
115
+ readonly title: string;
116
+ /** 已组合好的区块 HTML(受信透传,不转义)。 */
117
+ readonly contentHtml: string;
118
+ readonly open?: boolean;
119
+ }
120
+ /** B-08:折叠区(原生 `details/summary`;`[open]` 驱动展开态;复制按钮在内容里不触发 toggle=宿主行为)。 */
121
+ export declare function renderDisclosure(input: DisclosureInput): string;
122
+ export interface ParamFieldInput {
123
+ readonly name: string;
124
+ readonly label: string;
125
+ readonly value?: string;
126
+ readonly hint?: string;
127
+ readonly required?: boolean;
128
+ }
129
+ export interface ParamFormInput {
130
+ readonly fields: readonly ParamFieldInput[];
131
+ readonly description?: string;
132
+ /** 初始预览文本(受信透传;实时重算由宿主在 `input` 事件里做,DB-7)。 */
133
+ readonly previewText?: string;
134
+ }
135
+ /** B-09:参数表单(`placeholder = hint`;`required` 落 `data-required` 供宿主拦截;零 JS)。 */
136
+ export declare function renderParamForm(input: ParamFormInput): string;
137
+ export interface EmptyBlockInput extends EmptyStateInput {
138
+ readonly title?: string;
139
+ }
140
+ /** B-10:空态区块(冻结 `renderEmptyState` + 区块 wrapper;异常走 B-12,两者不混用 DB-8)。 */
141
+ export declare function renderEmptyBlock(input: EmptyBlockInput): string;
142
+ export interface CopyBlockInput {
143
+ readonly title?: string;
144
+ readonly dataText?: string;
145
+ readonly logText?: string;
146
+ readonly dataActionId?: string;
147
+ readonly logActionId?: string;
148
+ readonly buttons?: ActionBarInput['buttons'];
149
+ }
150
+ /** B-11:复制区块(冻结 `renderActionBar`;id 缺省取 `COPY_ACTION_IDS.actionBar.*`,调用方须保页内唯一)。 */
151
+ export declare function renderCopyBlock(input: CopyBlockInput): string;
152
+ export interface FeedbackBlockInput {
153
+ readonly title?: string;
154
+ readonly toast?: ToastInput;
155
+ readonly error?: ErrorReceiptInput;
156
+ }
157
+ /** B-12:反馈区块(冻结 `renderToast` 和/或 `renderErrorReceipt`;两者至少其一)。 */
158
+ export declare function renderFeedbackBlock(input: FeedbackBlockInput): string;
159
+ export interface BlocksCssInput {
160
+ /** 类名前缀;缺省 `STYLE_PREFIX`(`ilife-`)。 */
161
+ readonly prefix?: string;
162
+ }
163
+ /** 区块样式资产唯一产出者(用法:调用方把返回值拼进 `TemplateAssets.sharedCssText`
164
+ * 再交 `fillTemplate` 包裹注入;不得走 `StyleSheetInput.extraCss`——其语义被契约
165
+ * 限死为技能作用域 token 覆盖块,不得塞壳层样式)。恒返回非空 CSS 文本。 */
166
+ export declare function blocksCss(input?: BlocksCssInput): string;
167
+ export { ACTION_ID_ATTR, COPY_ACTION_IDS, DEFAULT_DATA_ATTR, TOAST_DEFAULTS };
168
+ export type { ActionBarInput, CopyButtonInput, EmptyStateInput, ErrorReceiptInput, StatusKind, ToastInput, };
169
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"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"}