@xihan-ui/web-components 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4919 -6
- package/README.md +10 -3
- package/custom-elements.json +38698 -19900
- package/dist/backgrounds.d.ts +7 -7
- package/dist/backgrounds.d.ts.map +1 -1
- package/dist/backgrounds.js +8 -8
- package/dist/backgrounds.js.map +1 -1
- package/dist/{config-Cz16-P4i.d.ts → config-etfwIorI.d.ts} +17 -8
- package/dist/config-etfwIorI.d.ts.map +1 -0
- package/dist/define.d.ts +8641 -4081
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +11420 -5706
- package/dist/define.js.map +1 -1
- package/dist/{element-ib25-l85.js → element-BKQR3ce3.js} +4 -4
- package/dist/element-BKQR3ce3.js.map +1 -0
- package/dist/{element-DRoFjrYO.d.ts → element-DFbmhZLP.d.ts} +3 -3
- package/dist/{element-DRoFjrYO.d.ts.map → element-DFbmhZLP.d.ts.map} +1 -1
- package/dist/index.d.ts +11 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{machine-controller-DE6edQbK.js → machine-controller-C1ffftux.js} +35 -29
- package/dist/machine-controller-C1ffftux.js.map +1 -0
- package/dist/registry-DR6I2_zF.js.map +1 -1
- package/dist/services.d.ts +184 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/services.js +701 -0
- package/dist/services.js.map +1 -0
- package/dist/toast-BTlM12YF.js +1405 -0
- package/dist/toast-BTlM12YF.js.map +1 -0
- package/dist/{types-BvWWqMd_.d.ts → types-C1Bybm6P.d.ts} +2 -2
- package/dist/{types-BvWWqMd_.d.ts.map → types-C1Bybm6P.d.ts.map} +1 -1
- package/package.json +23 -16
- package/dist/config-Cz16-P4i.d.ts.map +0 -1
- package/dist/element-ib25-l85.js.map +0 -1
- package/dist/machine-controller-DE6edQbK.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,6 +7,10 @@ Web Components 适配器:把框架无关的 headless(anatomy + machine + con
|
|
|
7
7
|
`spreadProps` 把 `connect()` 产出命令式打上去。每个组件一个 `xh-*` 元素,part 不是各自的元素。
|
|
8
8
|
- `MachineController` 把机器唯一解释器 `createService` 桥到 controller 生命周期,
|
|
9
9
|
不重造 FSM。元素类只在 `@xihan-ui/web-components/define` 子路径,`defineXhElements()` 显式注册。
|
|
10
|
+
- **命令式反馈服务在 `@xihan-ui/web-components/services` 子路径**:`createToastService` /
|
|
11
|
+
`createNotificationService` / `createDialogService` / `createLoadingBarService`,句柄与 Vue 适配器
|
|
12
|
+
同名同形。服务自己生成 `xh-*` 元素与 `data-xh-part` 角色节点(用到哪个就现注册哪个,
|
|
13
|
+
不必先 import `/define`),配置沿 DOM 祖先链解析,因此这一侧没有 `config` 入参也没有 `setConfig`。
|
|
10
14
|
- **两个入口在 Node 下都可安全 import**:基类无 DOM 时取一个替身基座(`src/reactive/element.ts`),
|
|
11
15
|
元素类的定义式不再在模块求值那一刻取 `HTMLElement`;`defineElement` 无 `customElements` 时静默跳过。
|
|
12
16
|
判据在 `tests/node-smoke.spec.ts`。
|
|
@@ -22,8 +26,10 @@ Web Components 适配器:把框架无关的 headless(anatomy + machine + con
|
|
|
22
26
|
- **Presence 模型不同(已知差异,非缺陷)**:Vue 用 Presence 卸载 content(关闭即从 DOM 移除);
|
|
23
27
|
WC 是 Light DOM,不能删用户节点,content **常驻**,关闭态只由 `data-state="closed"` 标记,
|
|
24
28
|
视觉隐藏交给 styles 层的 `[data-state='closed']{display:none}`。因此两端关闭态 DOM 不同
|
|
25
|
-
(Vue 无 content 节点,WC 有 content[data-state=closed]
|
|
26
|
-
|
|
29
|
+
(Vue 无 content 节点,WC 有 content[data-state=closed])。逐帧 parity 覆盖 105 个套件,
|
|
30
|
+
收不进来的 29 个逐条登记在 `tooling/testing/runners/parity.spec.ts` 的 `EXCLUDED` 里并各带理由;
|
|
31
|
+
dialog 在这 29 个里,理由就是这条 presence 模型差异——它属永久性差异,跨适配器保证由两端
|
|
32
|
+
各自跑同一份 dialog conformance 规格提供。
|
|
27
33
|
- **顶层/Portal**:真机可给 content 加 Popover API 上顶层;jsdom 无 Popover,当前只靠
|
|
28
34
|
`data-state` + focus-scope + dismiss-layer,不搬运 DOM。
|
|
29
35
|
- **重连(元素在 DOM 中移动)**:解释器 stop 后不可复活,`MachineController` 在 stop 后
|
|
@@ -38,4 +44,5 @@ Web Components 适配器:把框架无关的 headless(anatomy + machine + con
|
|
|
38
44
|
命中即重新发现 part 并接线。两道过滤:增删里得真有元素节点;目标与宿主之间隔着别的
|
|
39
45
|
`xh-*` 元素则跳过(内层子树归内层元素自己管)。
|
|
40
46
|
- **受控 open**:HTML 布尔属性表达不了 `undefined`,`open` 用自定义 converter(属性缺省→
|
|
41
|
-
`undefined`=非受控,`open="false"`→受控关)。受控 open
|
|
47
|
+
`undefined`=非受控,`open="false"`→受控关)。受控 open 的跨适配器一致性由两端各自跑同一份
|
|
48
|
+
conformance 规格覆盖:点击只发 open-change 不自改 DOM,父级写回 open 之后才打开。
|