agentcss 0.11.14 → 0.12.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 (88) hide show
  1. package/01-tokens/README.md +54 -3
  2. package/01-tokens/market.css +48 -0
  3. package/01-tokens/tokens.css +66 -0
  4. package/02-primitives/combobox/combobox.js +1 -1
  5. package/02-primitives/date-range/date-range.js +1 -1
  6. package/02-primitives/delta/README.md +92 -0
  7. package/02-primitives/delta/delta.css +113 -0
  8. package/02-primitives/delta/demo.html +162 -0
  9. package/02-primitives/metric/README.md +93 -0
  10. package/02-primitives/metric/demo.html +176 -0
  11. package/02-primitives/metric/metric.css +157 -0
  12. package/02-primitives/popover/demo.html +1 -1
  13. package/02-primitives/popover/popover.js +1 -1
  14. package/02-primitives/select/select.js +1 -1
  15. package/03-patterns/accordion/accordion.js +25 -5
  16. package/03-patterns/drawer/drawer.js +1 -1
  17. package/03-patterns/dropdown/dropdown.js +1 -1
  18. package/03-patterns/list/flip.js +1 -1
  19. package/03-patterns/nav/nav.js +6 -3
  20. package/03-patterns/nav/toc.js +1 -1
  21. package/03-patterns/overlay/overlay.js +1 -1
  22. package/03-patterns/pagination/demo.html +1 -1
  23. package/03-patterns/pagination/pagination.js +9 -3
  24. package/03-patterns/reveal/reveal.js +4 -1
  25. package/03-patterns/tabs/tabs.js +12 -3
  26. package/03-patterns/tooltip/tooltip.js +1 -1
  27. package/03-patterns/tree/tree.js +1 -1
  28. package/04-recipes/report/demo.html +2 -2
  29. package/04-recipes/tierA-tokens.css +12 -6
  30. package/09-assets/echarts-adapter/demo.html +5 -5
  31. package/09-assets/model-viewer/demo.html +2 -2
  32. package/API.md +52 -3
  33. package/CHANGELOG.md +356 -0
  34. package/CONTRIBUTING.md +2 -1
  35. package/README.zh-CN.md +9 -7
  36. package/START-HERE.md +7 -5
  37. package/ai/START-HERE.md +1 -1
  38. package/ai/components.json +103 -8
  39. package/ai/components.meta.json +8 -0
  40. package/ai/deprecations.schema.json +2 -2
  41. package/ai/tokens.audience.json +3 -2
  42. package/ai/tokens.json +21 -2
  43. package/ai/tokens.tree.json +20 -2
  44. package/dist/01-tokens/market.css +1 -0
  45. package/dist/01-tokens/tokens.css +1 -1
  46. package/dist/02-primitives/combobox/combobox.js +1 -1
  47. package/dist/02-primitives/date-range/date-range.js +1 -1
  48. package/dist/02-primitives/delta/delta.css +1 -0
  49. package/dist/02-primitives/metric/metric.css +1 -0
  50. package/dist/02-primitives/popover/popover.js +1 -1
  51. package/dist/02-primitives/select/select.js +1 -1
  52. package/dist/03-patterns/accordion/accordion.js +10 -4
  53. package/dist/03-patterns/drawer/drawer.js +1 -1
  54. package/dist/03-patterns/dropdown/dropdown.js +1 -1
  55. package/dist/03-patterns/list/flip.js +1 -1
  56. package/dist/03-patterns/nav/nav.js +4 -3
  57. package/dist/03-patterns/nav/toc.js +1 -1
  58. package/dist/03-patterns/overlay/overlay.js +1 -1
  59. package/dist/03-patterns/pagination/pagination.js +4 -3
  60. package/dist/03-patterns/reveal/reveal.js +2 -1
  61. package/dist/03-patterns/tabs/tabs.js +8 -3
  62. package/dist/03-patterns/tooltip/tooltip.js +1 -1
  63. package/dist/03-patterns/tree/tree.js +1 -1
  64. package/dist/04-recipes/tierA-tokens.css +1 -1
  65. package/dist/COSTS.md +35 -33
  66. package/docs/ACCESSIBILITY.md +3 -3
  67. package/docs/CONVENTIONS.md +28 -2
  68. package/docs/DEPRECATIONS.md +128 -0
  69. package/esm/accordion.mjs +7 -0
  70. package/esm/combobox.mjs +7 -0
  71. package/esm/date-range.mjs +7 -0
  72. package/esm/drawer.mjs +7 -0
  73. package/esm/dropdown.mjs +7 -0
  74. package/esm/flip.mjs +7 -0
  75. package/esm/index.mjs +38 -0
  76. package/esm/nav.mjs +7 -0
  77. package/esm/overlay.mjs +7 -0
  78. package/esm/pagination.mjs +7 -0
  79. package/esm/popover.mjs +7 -0
  80. package/esm/reveal.mjs +7 -0
  81. package/esm/select.mjs +7 -0
  82. package/esm/tabs.mjs +7 -0
  83. package/esm/toc.mjs +7 -0
  84. package/esm/tooltip.mjs +7 -0
  85. package/esm/tree.mjs +7 -0
  86. package/index.html +4 -2
  87. package/package.json +10 -3
  88. package/types/index.d.ts +131 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentcss",
3
- "version": "0.11.14",
3
+ "version": "0.12.0",
4
4
  "description": "移动 Web 组件库:CSS + 可选行为脚本,零第三方运行时依赖。样式用 bundler 引入,交互行为用 script 标签引入。",
5
5
  "keywords": [
6
6
  "css",
@@ -25,6 +25,11 @@
25
25
  "./tokens.css": "./dist/01-tokens/tokens.css",
26
26
  "./typography.css": "./dist/01-tokens/typography.css",
27
27
  "./page.css": "./dist/01-tokens/page.css",
28
+ "./esm": {
29
+ "types": "./types/index.d.ts",
30
+ "default": "./esm/index.mjs"
31
+ },
32
+ "./esm/*": "./esm/*.mjs",
28
33
  "./primitives/*": "./dist/02-primitives/*",
29
34
  "./patterns/*": "./dist/03-patterns/*",
30
35
  "./recipes/*": "./dist/04-recipes/*",
@@ -39,6 +44,7 @@
39
44
  "!ai/surface.baseline.json",
40
45
  "adapters/",
41
46
  "!adapters/presentation/fixtures",
47
+ "esm/",
42
48
  "types/",
43
49
  "dist/",
44
50
  "!dist/manifest.json",
@@ -63,8 +69,9 @@
63
69
  "index.html"
64
70
  ],
65
71
  "sideEffects": [
66
- "*.css",
67
- "*.js"
72
+ "**/*.css",
73
+ "**/*.js",
74
+ "**/*.mjs"
68
75
  ],
69
76
  "scripts": {
70
77
  "test": "node --test 05-audit/unit.test.mjs 05-audit/behavior-cores.test.mjs",
package/types/index.d.ts CHANGED
@@ -287,6 +287,109 @@ export interface Tree {
287
287
  destroy(): void;
288
288
  }
289
289
 
290
+ /* ============================================================================
291
+ * 另外 11 个组件(0.11.15 补)
292
+ * ---------------------------------------------------------------------------
293
+ * 🔴 之前本文件只声明了 5 个组件(Select / Combobox / DateRange / Dropdown /
294
+ * Tree),而 API.md 的「全部全局对象」表列了 22 个。
295
+ * 于是 `import { Accordion } from 'agentcss'` 在 TS 里直接报错,
296
+ * 使用者只能写 `(window as any).Accordion` —— 类型层等于不存在。
297
+ *
298
+ * ⭐ 下面每一条都对照过源码里的真实赋值(`global.X = …`)与原型方法名,
299
+ * **不是照 README 猜的**。参数形状只在源码可确证的地方收窄;
300
+ * 收不窄的写 `object` 并在注释里说明 —— 宁可不精确,也不给假签名。
301
+ * ========================================================================== */
302
+
303
+ /** `new Accordion(root, opts)` —— construct 形态(注意是 `new`)。 */
304
+ export interface AccordionOptions {
305
+ /** 展开/收起动画时长 ms;默认 240(源码里写进 `--acc-dur`) */
306
+ duration?: number;
307
+ }
308
+
309
+ export interface AccordionInstance {
310
+ readonly root: HTMLElement;
311
+ /** 面板项(`.accordion__item`),不是 trigger */
312
+ readonly items: HTMLElement[];
313
+ /** 切换一项。item 是 `.accordion__item`,**不是** trigger。 */
314
+ toggle(item: HTMLElement): void;
315
+ set(item: HTMLElement, open: boolean): void;
316
+ /** trigger → 它所属的 `.accordion__item`;找不到返回 null */
317
+ itemOf(trigger: Element): HTMLElement | null;
318
+ }
319
+
320
+ /** `new Tabs(root, opts)` —— construct 形态。 */
321
+ export interface TabsInstance {
322
+ readonly root: HTMLElement;
323
+ readonly tabs: HTMLElement[];
324
+ readonly panels: HTMLElement[];
325
+ /** 选中某个 tab(`aria-disabled="true"` 的会被忽略) */
326
+ select(tab: HTMLElement, focusIt?: boolean): void;
327
+ enabled(tab: HTMLElement): boolean;
328
+ /** 当前可聚焦(未 disabled)的 tab 列表 */
329
+ focusables(): HTMLElement[];
330
+ }
331
+
332
+ export interface NavInstance {
333
+ open(): void;
334
+ close(): void;
335
+ isOpen(): boolean;
336
+ destroy(): void;
337
+ }
338
+
339
+ export interface PaginationApi {
340
+ /** 为一个 `[data-pagination]` 节点建实例;同一节点重复调用返回同一个。
341
+ * ⚠️ 实例成员未在本文件收窄(源码里只挂了内部状态),需要时读
342
+ * `03-patterns/pagination/README.md`。 */
343
+ create(node: HTMLElement): object | null;
344
+ /** 扫描并初始化(默认整个 document) */
345
+ update(root?: HTMLElement): void;
346
+ /** 总条数 ÷ 每页条数 → 页数(至少 1) */
347
+ pagesOf(total: number, pageSize?: number): number;
348
+ }
349
+
350
+ /** `Drawer.open()` / `Overlay.dialog()` 的返回值:能编程关闭 */
351
+ export interface DismissableOverlay {
352
+ el: HTMLElement;
353
+ close(): void;
354
+ }
355
+
356
+ export interface OverlayApi {
357
+ /** 顶部提示条。参数形状见 `03-patterns/overlay/README.md` */
358
+ toast(opts: object): void;
359
+ /** 模态对话框 —— 返回句柄,可编程关闭 */
360
+ dialog(opts: object): DismissableOverlay;
361
+ }
362
+
363
+ export interface TooltipApi {
364
+ /** 给元素挂一个提示。`place` 决定方向(源码默认值以 README 为准) */
365
+ attach(el: HTMLElement, text: string, place?: string): void;
366
+ }
367
+
368
+ export interface PopoverApi {
369
+ attach(trigger: HTMLElement, opts?: object): void;
370
+ closeAll(): void;
371
+ readonly current: unknown;
372
+ }
373
+
374
+ export interface TocApi {
375
+ /** 绑定目录与正文的联动。参数形状见 `03-patterns/nav/README.md` */
376
+ init(opts?: object): void;
377
+ }
378
+
379
+ export interface RevealApi {
380
+ /** 开启入场动效(默认**不**接管) */
381
+ enable(): void;
382
+ disable(): void;
383
+ replay(): void;
384
+ }
385
+
386
+ export interface FlipApi {
387
+ /** 记录前后布局并做过渡;`mutate` 里改 DOM */
388
+ flip(container: HTMLElement, mutate: () => void, opts?: object): void;
389
+ /** 带过渡地移除一个元素 */
390
+ remove(container: HTMLElement, el: HTMLElement, done?: () => void): void;
391
+ }
392
+
290
393
  /* ============================================================================
291
394
  * 全局命名空间(组件脚本是 IIFE,挂到 window)
292
395
  * ========================================================================== */
@@ -296,6 +399,19 @@ export interface FrontendLibGlobal {
296
399
  Combobox: { create(root: HTMLElement, opt: ComboboxOptions): Combobox };
297
400
  Dropdown: { create(root: HTMLElement, opt?: object): Dropdown };
298
401
  Tree: { create(root: HTMLElement, opt?: TreeOptions): Tree };
402
+ /** construct 形态:`new window.Accordion(root, opts)` */
403
+ Accordion: new (root: HTMLElement, opts?: AccordionOptions) => AccordionInstance;
404
+ /** construct 形态:`new window.Tabs(root, opts)` */
405
+ Tabs: new (root: HTMLElement, opts?: object) => TabsInstance;
406
+ Nav: { attach(root: HTMLElement, opts?: object): NavInstance };
407
+ Pagination: PaginationApi;
408
+ Drawer: { open(opt?: object): DismissableOverlay };
409
+ Overlay: OverlayApi;
410
+ Tooltip: TooltipApi;
411
+ Popover: PopoverApi;
412
+ Toc: TocApi;
413
+ Reveal: RevealApi;
414
+ FLIP: FlipApi;
299
415
  }
300
416
 
301
417
  declare global {
@@ -307,4 +423,18 @@ export declare const Select: FrontendLibGlobal['Select'];
307
423
  export declare const Combobox: FrontendLibGlobal['Combobox'];
308
424
  export declare const DateRange: DateRangeStatics;
309
425
  export declare const Dropdown: FrontendLibGlobal['Dropdown'];
310
- export declare const Tree: FrontendLibGlobal['Tree'];
426
+ export declare const Tree: FrontendLibGlobal['Tree'];
427
+ /* 与 `global.X = …` 一一对应(16 个行为脚本全部覆盖)。
428
+ 证据:`esm/` 下的 16 个 .mjs 由 `05-audit/gen-esm.py` 从源码生成,
429
+ `behavior-api` 门禁核对「源码导出 / esm 入口 / 本文件声明」三者集合相等。 */
430
+ export declare const Accordion: FrontendLibGlobal['Accordion'];
431
+ export declare const Tabs: FrontendLibGlobal['Tabs'];
432
+ export declare const Nav: FrontendLibGlobal['Nav'];
433
+ export declare const Pagination: PaginationApi;
434
+ export declare const Drawer: FrontendLibGlobal['Drawer'];
435
+ export declare const Overlay: OverlayApi;
436
+ export declare const Tooltip: TooltipApi;
437
+ export declare const Popover: PopoverApi;
438
+ export declare const Toc: TocApi;
439
+ export declare const Reveal: RevealApi;
440
+ export declare const FLIP: FlipApi;