@xihan-ui/styles 4.0.0 → 4.0.1
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 +9 -0
- package/css/cascader.css +6 -0
- package/css/clipboard.css +6 -0
- package/css/color-field.css +6 -0
- package/css/color-picker.css +6 -0
- package/css/combobox.css +6 -0
- package/css/date-field.css +6 -0
- package/css/date-picker.css +6 -0
- package/css/date-range-picker.css +6 -0
- package/css/editable.css +6 -0
- package/css/form.css +6 -1
- package/css/input-group.css +6 -0
- package/css/mention.css +6 -0
- package/css/number-field.css +6 -0
- package/css/password-input.css +6 -0
- package/css/select.css +6 -0
- package/css/tags-input.css +6 -0
- package/css/text-field.css +6 -0
- package/css/time-field.css +6 -0
- package/css/time-picker.css +6 -0
- package/css/time-range-picker.css +6 -0
- package/css/tree-select.css +6 -0
- package/dist/css/cascader.css +6 -0
- package/dist/css/clipboard.css +6 -0
- package/dist/css/color-field.css +6 -0
- package/dist/css/color-picker.css +6 -0
- package/dist/css/combobox.css +6 -0
- package/dist/css/date-field.css +6 -0
- package/dist/css/date-picker.css +6 -0
- package/dist/css/date-range-picker.css +6 -0
- package/dist/css/editable.css +6 -0
- package/dist/css/form.css +6 -1
- package/dist/css/input-group.css +6 -0
- package/dist/css/mention.css +6 -0
- package/dist/css/number-field.css +6 -0
- package/dist/css/password-input.css +6 -0
- package/dist/css/select.css +6 -0
- package/dist/css/tags-input.css +6 -0
- package/dist/css/text-field.css +6 -0
- package/dist/css/time-field.css +6 -0
- package/dist/css/time-picker.css +6 -0
- package/dist/css/time-range-picker.css +6 -0
- package/dist/css/tree-select.css +6 -0
- package/index.css +126 -1
- package/index.unlayered.css +126 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @xihan-ui/styles
|
|
2
2
|
|
|
3
|
+
## 4.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bb1721f: Web Components 字段族宿主的 `display: contents` 改由皮肤声明(零特指度),元素不再在连接时往宿主写内联 `display`。作者给宿主写的 `display` 无论在内联还是样式表里都照层叠胜出,写在宿主上的宽度与外边距随之生效;此前样式表里的规则会被内联的 `contents` 压过。带 `hidden` 的宿主也不再被内联 `contents` 掀开。不加载皮肤时宿主回到行内盒。
|
|
8
|
+
- 775b17b: 字段不包 `XhFormFieldGroup`、直接放进 Form 时,辅助行同样算项距:带说明或预留了错误文案行的字段不再另留 20px 项距,与字段集的组内项距一致。此前只有包在 field-group 里的字段归零,直接放进表单的字段辅助行 20px 与项距 20px 叠成两段。
|
|
9
|
+
- Updated dependencies [14da7fe]
|
|
10
|
+
- @xihan-ui/tokens@4.0.1
|
|
11
|
+
|
|
3
12
|
## 4.0.0
|
|
4
13
|
|
|
5
14
|
### Major Changes
|
package/css/cascader.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-cascader-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-cascader:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
[data-scope='cascader'][data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,列区据此夹住行内轴;
|
package/css/clipboard.css
CHANGED
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
--xh-clipboard-skin: 1;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
20
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
21
|
+
:where(xh-clipboard:not([hidden])) {
|
|
22
|
+
display: contents;
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
/* 与文本框同一套堆叠:标签一行、输入行一行 */
|
|
20
26
|
[data-scope='clipboard'][data-part='root'] {
|
|
21
27
|
/* 输入框与按钮同取一档高度,换尺寸只改这一个私有槽 */
|
package/css/color-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-color-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-color-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明;
|
|
17
23
|
色块吃 Swatch 家族,只在这里补一条与输入框的间距。 */
|
|
18
24
|
[data-scope='color-field'][data-part='root'] {
|
package/css/color-picker.css
CHANGED
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
--xh-color-picker-skin: 1;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
21
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
22
|
+
:where(xh-color-picker:not([hidden])) {
|
|
23
|
+
display: contents;
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
/* 定位分工:取色区拇指的两条轴(inset-inline-start / inset-block-start)、浮层坐标、取色区底色,
|
|
21
27
|
全都由连接层每帧写进内联样式。这份皮肤一个都不碰:内联优先级高于样式表,
|
|
22
28
|
写了不但是死声明,还会跟连接层抢位置。皮肤只管尺寸、颜色、圆角与状态表现。
|
package/css/combobox.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-combobox-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-combobox:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
[data-scope='combobox'][data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/css/date-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-date-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-date-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框、数字框同一套堆叠:标签一行、分段框一行。
|
|
17
23
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
18
24
|
[data-scope='date-field'][data-part='root'] {
|
package/css/date-picker.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-date-picker-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-date-picker:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
[data-scope='date-picker'][data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
--xh-date-range-picker-skin: 1;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24
|
+
:where(xh-date-range-picker:not([hidden])) {
|
|
25
|
+
display: contents;
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
23
29
|
[data-scope='date-range-picker'][data-part='positioner'] {
|
|
24
30
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/css/editable.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-editable-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-editable:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与 NumberField 同构:标题独占一行,control 是下面唯一的视觉盒;
|
|
17
23
|
预览/输入占据盒内左侧,编辑或确认/取消动作收在同一盒的逻辑末端。
|
|
18
24
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
package/css/form.css
CHANGED
|
@@ -35,10 +35,15 @@
|
|
|
35
35
|
|
|
36
36
|
/* 字段带辅助行:辅助行(最小高 --xh-space-5)紧贴控件、自己就是项距,这一项不再另留;
|
|
37
37
|
说明收起、只留错误文案占位的那一行同样算。字段无效时它的直接子说明被收起(见 description.css),
|
|
38
|
-
|
|
38
|
+
不占那一行,不算辅助行:没渲染错误文案的无效字段照常留项距。
|
|
39
|
+
字段不包 field-group、直接放进表单时同一条(与字段集的组内项距一致) */
|
|
39
40
|
[data-scope='form'][data-part='field-group']:has(
|
|
40
41
|
[data-scope='field'][data-part='error-text'],
|
|
41
42
|
[data-scope='field'][data-part='description']:not([hidden], [data-scope='field'][data-part='root'][data-invalid] > *)
|
|
43
|
+
),
|
|
44
|
+
[data-scope='form'][data-part='root'] > [data-scope='field'][data-part='root']:has(
|
|
45
|
+
[data-scope='field'][data-part='error-text'],
|
|
46
|
+
[data-scope='field'][data-part='description']:not([hidden], [data-scope='field'][data-part='root'][data-invalid] > *)
|
|
42
47
|
) {
|
|
43
48
|
margin-block-end: 0;
|
|
44
49
|
}
|
package/css/input-group.css
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
--xh-input-group-skin: 1;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
15
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
16
|
+
:where(xh-input-group:not([hidden])) {
|
|
17
|
+
display: contents;
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
/* 输入框、前后缀和动作共用一个输入表面。组只统一材质与外轮廓,语义仍归各子控件。 */
|
|
15
21
|
[data-scope='input-group'][data-part='root'] {
|
|
16
22
|
/* 段之间那几档层号只在自己人之间排序:建一个层叠上下文把它们关起来,
|
package/css/mention.css
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
--xh-mention-skin: 1;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
22
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23
|
+
:where(xh-mention:not([hidden])) {
|
|
24
|
+
display: contents;
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
22
28
|
[data-scope='mention'][data-part='positioner'] {
|
|
23
29
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/css/number-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-number-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-number-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框同一套堆叠:标签一行、输入行一行。
|
|
17
23
|
control 是必需的唯一视觉盒,输入框、加减钮与前后缀都放在里面;
|
|
18
24
|
输入与前后缀在左,减、加两颗动作依次收在逻辑末端。
|
package/css/password-input.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-password-input-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-password-input:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* root 只负责纵向堆叠:标签一行、输入行一行。
|
|
17
23
|
输入框、切换钮与大写锁定提示收进 control 部件即得一体式:视觉盒由 Field Chrome 家族画在 control 上,
|
|
18
24
|
框内三件都退成透明分段,整枚控件从头到尾只有一道描边。
|
package/css/select.css
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
--xh-select-skin: 1;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
22
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23
|
+
:where(xh-select:not([hidden])) {
|
|
24
|
+
display: contents;
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
22
28
|
[data-scope='select'][data-part='positioner'] {
|
|
23
29
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/css/tags-input.css
CHANGED
|
@@ -15,6 +15,12 @@
|
|
|
15
15
|
--xh-tags-input-skin: 1;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
19
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
20
|
+
:where(xh-tags-input:not([hidden])) {
|
|
21
|
+
display: contents;
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
/* root 只负责纵向堆叠:标题一行、控件一行。可见的那个"框"长在 control 上,
|
|
19
25
|
因为标签、输入框、清空按钮都在它里面,边框必须把三者一起圈住。
|
|
20
26
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明 */
|
package/css/text-field.css
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
--xh-text-field-skin: 1;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
16
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
17
|
+
:where(xh-text-field:not([hidden])) {
|
|
18
|
+
display: contents;
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
/* 组件层只把既有公开槽映射到家族合同,并保留 label/count 等 TextField 专属结构;
|
|
16
22
|
形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
17
23
|
[data-scope='text-field'][data-part='root'] {
|
package/css/time-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-time-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-time-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框、数字框同一套堆叠:标签一行、控件一行。
|
|
17
23
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
18
24
|
[data-scope='time-field'][data-part='root'] {
|
package/css/time-picker.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-time-picker-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-time-picker:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
[data-scope='time-picker'][data-part='positioner'] {
|
|
25
31
|
/* 每个浮层独立声明方向,避免嵌套浮层继承祖先的进场位移。 */
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
--xh-time-range-picker-skin: 1;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24
|
+
:where(xh-time-range-picker:not([hidden])) {
|
|
25
|
+
display: contents;
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
23
29
|
[data-scope='time-range-picker'][data-part='positioner'] {
|
|
24
30
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,内容层据此夹住行内轴;
|
package/css/tree-select.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-tree-select-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-tree-select:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
[data-scope='tree-select'][data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/dist/css/cascader.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-cascader-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-cascader:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
.xh-scope-cascader[data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,列区据此夹住行内轴;
|
package/dist/css/clipboard.css
CHANGED
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
--xh-clipboard-skin: 1;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
20
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
21
|
+
:where(xh-clipboard:not([hidden])) {
|
|
22
|
+
display: contents;
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
/* 与文本框同一套堆叠:标签一行、输入行一行 */
|
|
20
26
|
.xh-scope-clipboard[data-part='root'] {
|
|
21
27
|
/* 输入框与按钮同取一档高度,换尺寸只改这一个私有槽 */
|
package/dist/css/color-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-color-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-color-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明;
|
|
17
23
|
色块吃 Swatch 家族,只在这里补一条与输入框的间距。 */
|
|
18
24
|
.xh-scope-color-field[data-part='root'] {
|
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
--xh-color-picker-skin: 1;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
21
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
22
|
+
:where(xh-color-picker:not([hidden])) {
|
|
23
|
+
display: contents;
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
/* 定位分工:取色区拇指的两条轴(inset-inline-start / inset-block-start)、浮层坐标、取色区底色,
|
|
21
27
|
全都由连接层每帧写进内联样式。这份皮肤一个都不碰:内联优先级高于样式表,
|
|
22
28
|
写了不但是死声明,还会跟连接层抢位置。皮肤只管尺寸、颜色、圆角与状态表现。
|
package/dist/css/combobox.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-combobox-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-combobox:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
.xh-scope-combobox[data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/dist/css/date-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-date-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-date-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框、数字框同一套堆叠:标签一行、分段框一行。
|
|
17
23
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
18
24
|
.xh-scope-date-field[data-part='root'] {
|
package/dist/css/date-picker.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-date-picker-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-date-picker:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
.xh-scope-date-picker[data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
--xh-date-range-picker-skin: 1;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24
|
+
:where(xh-date-range-picker:not([hidden])) {
|
|
25
|
+
display: contents;
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
23
29
|
.xh-scope-date-range-picker[data-part='positioner'] {
|
|
24
30
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/dist/css/editable.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-editable-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-editable:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与 NumberField 同构:标题独占一行,control 是下面唯一的视觉盒;
|
|
17
23
|
预览/输入占据盒内左侧,编辑或确认/取消动作收在同一盒的逻辑末端。
|
|
18
24
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
package/dist/css/form.css
CHANGED
|
@@ -35,10 +35,15 @@
|
|
|
35
35
|
|
|
36
36
|
/* 字段带辅助行:辅助行(最小高 --xh-space-5)紧贴控件、自己就是项距,这一项不再另留;
|
|
37
37
|
说明收起、只留错误文案占位的那一行同样算。字段无效时它的直接子说明被收起(见 description.css),
|
|
38
|
-
|
|
38
|
+
不占那一行,不算辅助行:没渲染错误文案的无效字段照常留项距。
|
|
39
|
+
字段不包 field-group、直接放进表单时同一条(与字段集的组内项距一致) */
|
|
39
40
|
.xh-scope-form[data-part='field-group']:has(
|
|
40
41
|
.xh-scope-field[data-part='error-text'],
|
|
41
42
|
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
43
|
+
),
|
|
44
|
+
.xh-scope-form[data-part='root'] > .xh-scope-field[data-part='root']:has(
|
|
45
|
+
.xh-scope-field[data-part='error-text'],
|
|
46
|
+
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
42
47
|
) {
|
|
43
48
|
margin-block-end: 0;
|
|
44
49
|
}
|
package/dist/css/input-group.css
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
--xh-input-group-skin: 1;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
15
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
16
|
+
:where(xh-input-group:not([hidden])) {
|
|
17
|
+
display: contents;
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
/* 输入框、前后缀和动作共用一个输入表面。组只统一材质与外轮廓,语义仍归各子控件。 */
|
|
15
21
|
.xh-scope-input-group[data-part='root'] {
|
|
16
22
|
/* 段之间那几档层号只在自己人之间排序:建一个层叠上下文把它们关起来,
|
package/dist/css/mention.css
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
--xh-mention-skin: 1;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
22
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23
|
+
:where(xh-mention:not([hidden])) {
|
|
24
|
+
display: contents;
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
22
28
|
.xh-scope-mention[data-part='positioner'] {
|
|
23
29
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-number-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-number-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框同一套堆叠:标签一行、输入行一行。
|
|
17
23
|
control 是必需的唯一视觉盒,输入框、加减钮与前后缀都放在里面;
|
|
18
24
|
输入与前后缀在左,减、加两颗动作依次收在逻辑末端。
|
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-password-input-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-password-input:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* root 只负责纵向堆叠:标签一行、输入行一行。
|
|
17
23
|
输入框、切换钮与大写锁定提示收进 control 部件即得一体式:视觉盒由 Field Chrome 家族画在 control 上,
|
|
18
24
|
框内三件都退成透明分段,整枚控件从头到尾只有一道描边。
|
package/dist/css/select.css
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
--xh-select-skin: 1;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
22
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23
|
+
:where(xh-select:not([hidden])) {
|
|
24
|
+
display: contents;
|
|
25
|
+
}
|
|
26
|
+
|
|
21
27
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
22
28
|
.xh-scope-select[data-part='positioner'] {
|
|
23
29
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/dist/css/tags-input.css
CHANGED
|
@@ -15,6 +15,12 @@
|
|
|
15
15
|
--xh-tags-input-skin: 1;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
19
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
20
|
+
:where(xh-tags-input:not([hidden])) {
|
|
21
|
+
display: contents;
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
/* root 只负责纵向堆叠:标题一行、控件一行。可见的那个"框"长在 control 上,
|
|
19
25
|
因为标签、输入框、清空按钮都在它里面,边框必须把三者一起圈住。
|
|
20
26
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明 */
|
package/dist/css/text-field.css
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
--xh-text-field-skin: 1;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
16
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
17
|
+
:where(xh-text-field:not([hidden])) {
|
|
18
|
+
display: contents;
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
/* 组件层只把既有公开槽映射到家族合同,并保留 label/count 等 TextField 专属结构;
|
|
16
22
|
形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
17
23
|
.xh-scope-text-field[data-part='root'] {
|
package/dist/css/time-field.css
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
--xh-time-field-skin: 1;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
17
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
18
|
+
:where(xh-time-field:not([hidden])) {
|
|
19
|
+
display: contents;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
/* 与文本框、数字框同一套堆叠:标签一行、控件一行。
|
|
17
23
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
18
24
|
.xh-scope-time-field[data-part='root'] {
|
package/dist/css/time-picker.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-time-picker-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-time-picker:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
.xh-scope-time-picker[data-part='positioner'] {
|
|
25
31
|
/* 每个浮层独立声明方向,避免嵌套浮层继承祖先的进场位移。 */
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
--xh-time-range-picker-skin: 1;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24
|
+
:where(xh-time-range-picker:not([hidden])) {
|
|
25
|
+
display: contents;
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
23
29
|
.xh-scope-time-range-picker[data-part='positioner'] {
|
|
24
30
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,内容层据此夹住行内轴;
|
package/dist/css/tree-select.css
CHANGED
|
@@ -20,6 +20,12 @@
|
|
|
20
20
|
--xh-tree-select-skin: 1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25
|
+
:where(xh-tree-select:not([hidden])) {
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
24
30
|
.xh-scope-tree-select[data-part='positioner'] {
|
|
25
31
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/index.css
CHANGED
|
@@ -8866,6 +8866,12 @@
|
|
|
8866
8866
|
--xh-input-group-skin: 1;
|
|
8867
8867
|
}
|
|
8868
8868
|
|
|
8869
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
8870
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
8871
|
+
:where(xh-input-group:not([hidden])) {
|
|
8872
|
+
display: contents;
|
|
8873
|
+
}
|
|
8874
|
+
|
|
8869
8875
|
/* 输入框、前后缀和动作共用一个输入表面。组只统一材质与外轮廓,语义仍归各子控件。 */
|
|
8870
8876
|
.xh-scope-input-group[data-part='root'] {
|
|
8871
8877
|
/* 段之间那几档层号只在自己人之间排序:建一个层叠上下文把它们关起来,
|
|
@@ -11043,6 +11049,12 @@
|
|
|
11043
11049
|
--xh-mention-skin: 1;
|
|
11044
11050
|
}
|
|
11045
11051
|
|
|
11052
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
11053
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
11054
|
+
:where(xh-mention:not([hidden])) {
|
|
11055
|
+
display: contents;
|
|
11056
|
+
}
|
|
11057
|
+
|
|
11046
11058
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
11047
11059
|
.xh-scope-mention[data-part='positioner'] {
|
|
11048
11060
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -11684,6 +11696,12 @@
|
|
|
11684
11696
|
--xh-password-input-skin: 1;
|
|
11685
11697
|
}
|
|
11686
11698
|
|
|
11699
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
11700
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
11701
|
+
:where(xh-password-input:not([hidden])) {
|
|
11702
|
+
display: contents;
|
|
11703
|
+
}
|
|
11704
|
+
|
|
11687
11705
|
/* root 只负责纵向堆叠:标签一行、输入行一行。
|
|
11688
11706
|
输入框、切换钮与大写锁定提示收进 control 部件即得一体式:视觉盒由 Field Chrome 家族画在 control 上,
|
|
11689
11707
|
框内三件都退成透明分段,整枚控件从头到尾只有一道描边。
|
|
@@ -21305,6 +21323,12 @@
|
|
|
21305
21323
|
--xh-cascader-skin: 1;
|
|
21306
21324
|
}
|
|
21307
21325
|
|
|
21326
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
21327
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
21328
|
+
:where(xh-cascader:not([hidden])) {
|
|
21329
|
+
display: contents;
|
|
21330
|
+
}
|
|
21331
|
+
|
|
21308
21332
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
21309
21333
|
.xh-scope-cascader[data-part='positioner'] {
|
|
21310
21334
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,列区据此夹住行内轴;
|
|
@@ -23343,6 +23367,12 @@
|
|
|
23343
23367
|
--xh-clipboard-skin: 1;
|
|
23344
23368
|
}
|
|
23345
23369
|
|
|
23370
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23371
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23372
|
+
:where(xh-clipboard:not([hidden])) {
|
|
23373
|
+
display: contents;
|
|
23374
|
+
}
|
|
23375
|
+
|
|
23346
23376
|
/* 与文本框同一套堆叠:标签一行、输入行一行 */
|
|
23347
23377
|
.xh-scope-clipboard[data-part='root'] {
|
|
23348
23378
|
/* 输入框与按钮同取一档高度,换尺寸只改这一个私有槽 */
|
|
@@ -24230,6 +24260,12 @@
|
|
|
24230
24260
|
--xh-color-field-skin: 1;
|
|
24231
24261
|
}
|
|
24232
24262
|
|
|
24263
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24264
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24265
|
+
:where(xh-color-field:not([hidden])) {
|
|
24266
|
+
display: contents;
|
|
24267
|
+
}
|
|
24268
|
+
|
|
24233
24269
|
/* 组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明;
|
|
24234
24270
|
色块吃 Swatch 家族,只在这里补一条与输入框的间距。 */
|
|
24235
24271
|
.xh-scope-color-field[data-part='root'] {
|
|
@@ -24401,6 +24437,12 @@
|
|
|
24401
24437
|
--xh-color-picker-skin: 1;
|
|
24402
24438
|
}
|
|
24403
24439
|
|
|
24440
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24441
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24442
|
+
:where(xh-color-picker:not([hidden])) {
|
|
24443
|
+
display: contents;
|
|
24444
|
+
}
|
|
24445
|
+
|
|
24404
24446
|
/* 定位分工:取色区拇指的两条轴(inset-inline-start / inset-block-start)、浮层坐标、取色区底色,
|
|
24405
24447
|
全都由连接层每帧写进内联样式。这份皮肤一个都不碰:内联优先级高于样式表,
|
|
24406
24448
|
写了不但是死声明,还会跟连接层抢位置。皮肤只管尺寸、颜色、圆角与状态表现。
|
|
@@ -25597,6 +25639,12 @@
|
|
|
25597
25639
|
--xh-combobox-skin: 1;
|
|
25598
25640
|
}
|
|
25599
25641
|
|
|
25642
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
25643
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25644
|
+
:where(xh-combobox:not([hidden])) {
|
|
25645
|
+
display: contents;
|
|
25646
|
+
}
|
|
25647
|
+
|
|
25600
25648
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
25601
25649
|
.xh-scope-combobox[data-part='positioner'] {
|
|
25602
25650
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -26978,6 +27026,12 @@
|
|
|
26978
27026
|
--xh-date-field-skin: 1;
|
|
26979
27027
|
}
|
|
26980
27028
|
|
|
27029
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
27030
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
27031
|
+
:where(xh-date-field:not([hidden])) {
|
|
27032
|
+
display: contents;
|
|
27033
|
+
}
|
|
27034
|
+
|
|
26981
27035
|
/* 与文本框、数字框同一套堆叠:标签一行、分段框一行。
|
|
26982
27036
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
26983
27037
|
.xh-scope-date-field[data-part='root'] {
|
|
@@ -27292,6 +27346,12 @@
|
|
|
27292
27346
|
--xh-date-picker-skin: 1;
|
|
27293
27347
|
}
|
|
27294
27348
|
|
|
27349
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
27350
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
27351
|
+
:where(xh-date-picker:not([hidden])) {
|
|
27352
|
+
display: contents;
|
|
27353
|
+
}
|
|
27354
|
+
|
|
27295
27355
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
27296
27356
|
.xh-scope-date-picker[data-part='positioner'] {
|
|
27297
27357
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -28213,6 +28273,12 @@
|
|
|
28213
28273
|
--xh-date-range-picker-skin: 1;
|
|
28214
28274
|
}
|
|
28215
28275
|
|
|
28276
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
28277
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
28278
|
+
:where(xh-date-range-picker:not([hidden])) {
|
|
28279
|
+
display: contents;
|
|
28280
|
+
}
|
|
28281
|
+
|
|
28216
28282
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
28217
28283
|
.xh-scope-date-range-picker[data-part='positioner'] {
|
|
28218
28284
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -30217,6 +30283,12 @@
|
|
|
30217
30283
|
--xh-editable-skin: 1;
|
|
30218
30284
|
}
|
|
30219
30285
|
|
|
30286
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
30287
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
30288
|
+
:where(xh-editable:not([hidden])) {
|
|
30289
|
+
display: contents;
|
|
30290
|
+
}
|
|
30291
|
+
|
|
30220
30292
|
/* 与 NumberField 同构:标题独占一行,control 是下面唯一的视觉盒;
|
|
30221
30293
|
预览/输入占据盒内左侧,编辑或确认/取消动作收在同一盒的逻辑末端。
|
|
30222
30294
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
@@ -31120,10 +31192,15 @@
|
|
|
31120
31192
|
|
|
31121
31193
|
/* 字段带辅助行:辅助行(最小高 --xh-space-5)紧贴控件、自己就是项距,这一项不再另留;
|
|
31122
31194
|
说明收起、只留错误文案占位的那一行同样算。字段无效时它的直接子说明被收起(见 description.css),
|
|
31123
|
-
|
|
31195
|
+
不占那一行,不算辅助行:没渲染错误文案的无效字段照常留项距。
|
|
31196
|
+
字段不包 field-group、直接放进表单时同一条(与字段集的组内项距一致) */
|
|
31124
31197
|
.xh-scope-form[data-part='field-group']:has(
|
|
31125
31198
|
.xh-scope-field[data-part='error-text'],
|
|
31126
31199
|
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
31200
|
+
),
|
|
31201
|
+
.xh-scope-form[data-part='root'] > .xh-scope-field[data-part='root']:has(
|
|
31202
|
+
.xh-scope-field[data-part='error-text'],
|
|
31203
|
+
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
31127
31204
|
) {
|
|
31128
31205
|
margin-block-end: 0;
|
|
31129
31206
|
}
|
|
@@ -36473,6 +36550,12 @@
|
|
|
36473
36550
|
--xh-number-field-skin: 1;
|
|
36474
36551
|
}
|
|
36475
36552
|
|
|
36553
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
36554
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
36555
|
+
:where(xh-number-field:not([hidden])) {
|
|
36556
|
+
display: contents;
|
|
36557
|
+
}
|
|
36558
|
+
|
|
36476
36559
|
/* 与文本框同一套堆叠:标签一行、输入行一行。
|
|
36477
36560
|
control 是必需的唯一视觉盒,输入框、加减钮与前后缀都放在里面;
|
|
36478
36561
|
输入与前后缀在左,减、加两颗动作依次收在逻辑末端。
|
|
@@ -40559,6 +40642,12 @@
|
|
|
40559
40642
|
--xh-select-skin: 1;
|
|
40560
40643
|
}
|
|
40561
40644
|
|
|
40645
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
40646
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
40647
|
+
:where(xh-select:not([hidden])) {
|
|
40648
|
+
display: contents;
|
|
40649
|
+
}
|
|
40650
|
+
|
|
40562
40651
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
40563
40652
|
.xh-scope-select[data-part='positioner'] {
|
|
40564
40653
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -46304,6 +46393,12 @@
|
|
|
46304
46393
|
--xh-tags-input-skin: 1;
|
|
46305
46394
|
}
|
|
46306
46395
|
|
|
46396
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46397
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46398
|
+
:where(xh-tags-input:not([hidden])) {
|
|
46399
|
+
display: contents;
|
|
46400
|
+
}
|
|
46401
|
+
|
|
46307
46402
|
/* root 只负责纵向堆叠:标题一行、控件一行。可见的那个"框"长在 control 上,
|
|
46308
46403
|
因为标签、输入框、清空按钮都在它里面,边框必须把三者一起圈住。
|
|
46309
46404
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明 */
|
|
@@ -46637,6 +46732,12 @@
|
|
|
46637
46732
|
--xh-text-field-skin: 1;
|
|
46638
46733
|
}
|
|
46639
46734
|
|
|
46735
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46736
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46737
|
+
:where(xh-text-field:not([hidden])) {
|
|
46738
|
+
display: contents;
|
|
46739
|
+
}
|
|
46740
|
+
|
|
46640
46741
|
/* 组件层只把既有公开槽映射到家族合同,并保留 label/count 等 TextField 专属结构;
|
|
46641
46742
|
形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
46642
46743
|
.xh-scope-text-field[data-part='root'] {
|
|
@@ -46830,6 +46931,12 @@
|
|
|
46830
46931
|
--xh-time-field-skin: 1;
|
|
46831
46932
|
}
|
|
46832
46933
|
|
|
46934
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46935
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46936
|
+
:where(xh-time-field:not([hidden])) {
|
|
46937
|
+
display: contents;
|
|
46938
|
+
}
|
|
46939
|
+
|
|
46833
46940
|
/* 与文本框、数字框同一套堆叠:标签一行、控件一行。
|
|
46834
46941
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
46835
46942
|
.xh-scope-time-field[data-part='root'] {
|
|
@@ -47104,6 +47211,12 @@
|
|
|
47104
47211
|
--xh-time-picker-skin: 1;
|
|
47105
47212
|
}
|
|
47106
47213
|
|
|
47214
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
47215
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
47216
|
+
:where(xh-time-picker:not([hidden])) {
|
|
47217
|
+
display: contents;
|
|
47218
|
+
}
|
|
47219
|
+
|
|
47107
47220
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
47108
47221
|
.xh-scope-time-picker[data-part='positioner'] {
|
|
47109
47222
|
/* 每个浮层独立声明方向,避免嵌套浮层继承祖先的进场位移。 */
|
|
@@ -47887,6 +48000,12 @@
|
|
|
47887
48000
|
--xh-time-range-picker-skin: 1;
|
|
47888
48001
|
}
|
|
47889
48002
|
|
|
48003
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
48004
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
48005
|
+
:where(xh-time-range-picker:not([hidden])) {
|
|
48006
|
+
display: contents;
|
|
48007
|
+
}
|
|
48008
|
+
|
|
47890
48009
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
47891
48010
|
.xh-scope-time-range-picker[data-part='positioner'] {
|
|
47892
48011
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,内容层据此夹住行内轴;
|
|
@@ -51860,6 +51979,12 @@
|
|
|
51860
51979
|
--xh-tree-select-skin: 1;
|
|
51861
51980
|
}
|
|
51862
51981
|
|
|
51982
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
51983
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
51984
|
+
:where(xh-tree-select:not([hidden])) {
|
|
51985
|
+
display: contents;
|
|
51986
|
+
}
|
|
51987
|
+
|
|
51863
51988
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
51864
51989
|
.xh-scope-tree-select[data-part='positioner'] {
|
|
51865
51990
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/index.unlayered.css
CHANGED
|
@@ -8807,6 +8807,12 @@
|
|
|
8807
8807
|
--xh-input-group-skin: 1;
|
|
8808
8808
|
}
|
|
8809
8809
|
|
|
8810
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
8811
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
8812
|
+
:where(xh-input-group:not([hidden])) {
|
|
8813
|
+
display: contents;
|
|
8814
|
+
}
|
|
8815
|
+
|
|
8810
8816
|
/* 输入框、前后缀和动作共用一个输入表面。组只统一材质与外轮廓,语义仍归各子控件。 */
|
|
8811
8817
|
.xh-scope-input-group[data-part='root'] {
|
|
8812
8818
|
/* 段之间那几档层号只在自己人之间排序:建一个层叠上下文把它们关起来,
|
|
@@ -10962,6 +10968,12 @@
|
|
|
10962
10968
|
--xh-mention-skin: 1;
|
|
10963
10969
|
}
|
|
10964
10970
|
|
|
10971
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
10972
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
10973
|
+
:where(xh-mention:not([hidden])) {
|
|
10974
|
+
display: contents;
|
|
10975
|
+
}
|
|
10976
|
+
|
|
10965
10977
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
10966
10978
|
.xh-scope-mention[data-part='positioner'] {
|
|
10967
10979
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -11597,6 +11609,12 @@
|
|
|
11597
11609
|
--xh-password-input-skin: 1;
|
|
11598
11610
|
}
|
|
11599
11611
|
|
|
11612
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
11613
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
11614
|
+
:where(xh-password-input:not([hidden])) {
|
|
11615
|
+
display: contents;
|
|
11616
|
+
}
|
|
11617
|
+
|
|
11600
11618
|
/* root 只负责纵向堆叠:标签一行、输入行一行。
|
|
11601
11619
|
输入框、切换钮与大写锁定提示收进 control 部件即得一体式:视觉盒由 Field Chrome 家族画在 control 上,
|
|
11602
11620
|
框内三件都退成透明分段,整枚控件从头到尾只有一道描边。
|
|
@@ -21138,6 +21156,12 @@
|
|
|
21138
21156
|
--xh-cascader-skin: 1;
|
|
21139
21157
|
}
|
|
21140
21158
|
|
|
21159
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
21160
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
21161
|
+
:where(xh-cascader:not([hidden])) {
|
|
21162
|
+
display: contents;
|
|
21163
|
+
}
|
|
21164
|
+
|
|
21141
21165
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
21142
21166
|
.xh-scope-cascader[data-part='positioner'] {
|
|
21143
21167
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,列区据此夹住行内轴;
|
|
@@ -23164,6 +23188,12 @@
|
|
|
23164
23188
|
--xh-clipboard-skin: 1;
|
|
23165
23189
|
}
|
|
23166
23190
|
|
|
23191
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
23192
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
23193
|
+
:where(xh-clipboard:not([hidden])) {
|
|
23194
|
+
display: contents;
|
|
23195
|
+
}
|
|
23196
|
+
|
|
23167
23197
|
/* 与文本框同一套堆叠:标签一行、输入行一行 */
|
|
23168
23198
|
.xh-scope-clipboard[data-part='root'] {
|
|
23169
23199
|
/* 输入框与按钮同取一档高度,换尺寸只改这一个私有槽 */
|
|
@@ -24043,6 +24073,12 @@
|
|
|
24043
24073
|
--xh-color-field-skin: 1;
|
|
24044
24074
|
}
|
|
24045
24075
|
|
|
24076
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24077
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24078
|
+
:where(xh-color-field:not([hidden])) {
|
|
24079
|
+
display: contents;
|
|
24080
|
+
}
|
|
24081
|
+
|
|
24046
24082
|
/* 组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明;
|
|
24047
24083
|
色块吃 Swatch 家族,只在这里补一条与输入框的间距。 */
|
|
24048
24084
|
.xh-scope-color-field[data-part='root'] {
|
|
@@ -24212,6 +24248,12 @@
|
|
|
24212
24248
|
--xh-color-picker-skin: 1;
|
|
24213
24249
|
}
|
|
24214
24250
|
|
|
24251
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
24252
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
24253
|
+
:where(xh-color-picker:not([hidden])) {
|
|
24254
|
+
display: contents;
|
|
24255
|
+
}
|
|
24256
|
+
|
|
24215
24257
|
/* 定位分工:取色区拇指的两条轴(inset-inline-start / inset-block-start)、浮层坐标、取色区底色,
|
|
24216
24258
|
全都由连接层每帧写进内联样式。这份皮肤一个都不碰:内联优先级高于样式表,
|
|
24217
24259
|
写了不但是死声明,还会跟连接层抢位置。皮肤只管尺寸、颜色、圆角与状态表现。
|
|
@@ -25400,6 +25442,12 @@
|
|
|
25400
25442
|
--xh-combobox-skin: 1;
|
|
25401
25443
|
}
|
|
25402
25444
|
|
|
25445
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
25446
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
25447
|
+
:where(xh-combobox:not([hidden])) {
|
|
25448
|
+
display: contents;
|
|
25449
|
+
}
|
|
25450
|
+
|
|
25403
25451
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
25404
25452
|
.xh-scope-combobox[data-part='positioner'] {
|
|
25405
25453
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -26773,6 +26821,12 @@
|
|
|
26773
26821
|
--xh-date-field-skin: 1;
|
|
26774
26822
|
}
|
|
26775
26823
|
|
|
26824
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
26825
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
26826
|
+
:where(xh-date-field:not([hidden])) {
|
|
26827
|
+
display: contents;
|
|
26828
|
+
}
|
|
26829
|
+
|
|
26776
26830
|
/* 与文本框、数字框同一套堆叠:标签一行、分段框一行。
|
|
26777
26831
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
26778
26832
|
.xh-scope-date-field[data-part='root'] {
|
|
@@ -27085,6 +27139,12 @@
|
|
|
27085
27139
|
--xh-date-picker-skin: 1;
|
|
27086
27140
|
}
|
|
27087
27141
|
|
|
27142
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
27143
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
27144
|
+
:where(xh-date-picker:not([hidden])) {
|
|
27145
|
+
display: contents;
|
|
27146
|
+
}
|
|
27147
|
+
|
|
27088
27148
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
27089
27149
|
.xh-scope-date-picker[data-part='positioner'] {
|
|
27090
27150
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -28002,6 +28062,12 @@
|
|
|
28002
28062
|
--xh-date-range-picker-skin: 1;
|
|
28003
28063
|
}
|
|
28004
28064
|
|
|
28065
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
28066
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
28067
|
+
:where(xh-date-range-picker:not([hidden])) {
|
|
28068
|
+
display: contents;
|
|
28069
|
+
}
|
|
28070
|
+
|
|
28005
28071
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
28006
28072
|
.xh-scope-date-range-picker[data-part='positioner'] {
|
|
28007
28073
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -29998,6 +30064,12 @@
|
|
|
29998
30064
|
--xh-editable-skin: 1;
|
|
29999
30065
|
}
|
|
30000
30066
|
|
|
30067
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
30068
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
30069
|
+
:where(xh-editable:not([hidden])) {
|
|
30070
|
+
display: contents;
|
|
30071
|
+
}
|
|
30072
|
+
|
|
30001
30073
|
/* 与 NumberField 同构:标题独占一行,control 是下面唯一的视觉盒;
|
|
30002
30074
|
预览/输入占据盒内左侧,编辑或确认/取消动作收在同一盒的逻辑末端。
|
|
30003
30075
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
@@ -30895,10 +30967,15 @@
|
|
|
30895
30967
|
|
|
30896
30968
|
/* 字段带辅助行:辅助行(最小高 --xh-space-5)紧贴控件、自己就是项距,这一项不再另留;
|
|
30897
30969
|
说明收起、只留错误文案占位的那一行同样算。字段无效时它的直接子说明被收起(见 description.css),
|
|
30898
|
-
|
|
30970
|
+
不占那一行,不算辅助行:没渲染错误文案的无效字段照常留项距。
|
|
30971
|
+
字段不包 field-group、直接放进表单时同一条(与字段集的组内项距一致) */
|
|
30899
30972
|
.xh-scope-form[data-part='field-group']:has(
|
|
30900
30973
|
.xh-scope-field[data-part='error-text'],
|
|
30901
30974
|
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
30975
|
+
),
|
|
30976
|
+
.xh-scope-form[data-part='root'] > .xh-scope-field[data-part='root']:has(
|
|
30977
|
+
.xh-scope-field[data-part='error-text'],
|
|
30978
|
+
.xh-scope-field[data-part='description']:not([hidden], .xh-scope-field[data-part='root'][data-invalid] > *)
|
|
30902
30979
|
) {
|
|
30903
30980
|
margin-block-end: 0;
|
|
30904
30981
|
}
|
|
@@ -36212,6 +36289,12 @@
|
|
|
36212
36289
|
--xh-number-field-skin: 1;
|
|
36213
36290
|
}
|
|
36214
36291
|
|
|
36292
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
36293
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
36294
|
+
:where(xh-number-field:not([hidden])) {
|
|
36295
|
+
display: contents;
|
|
36296
|
+
}
|
|
36297
|
+
|
|
36215
36298
|
/* 与文本框同一套堆叠:标签一行、输入行一行。
|
|
36216
36299
|
control 是必需的唯一视觉盒,输入框、加减钮与前后缀都放在里面;
|
|
36217
36300
|
输入与前后缀在左,减、加两颗动作依次收在逻辑末端。
|
|
@@ -40272,6 +40355,12 @@
|
|
|
40272
40355
|
--xh-select-skin: 1;
|
|
40273
40356
|
}
|
|
40274
40357
|
|
|
40358
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
40359
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
40360
|
+
:where(xh-select:not([hidden])) {
|
|
40361
|
+
display: contents;
|
|
40362
|
+
}
|
|
40363
|
+
|
|
40275
40364
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
40276
40365
|
.xh-scope-select[data-part='positioner'] {
|
|
40277
40366
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
|
@@ -45991,6 +46080,12 @@
|
|
|
45991
46080
|
--xh-tags-input-skin: 1;
|
|
45992
46081
|
}
|
|
45993
46082
|
|
|
46083
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46084
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46085
|
+
:where(xh-tags-input:not([hidden])) {
|
|
46086
|
+
display: contents;
|
|
46087
|
+
}
|
|
46088
|
+
|
|
45994
46089
|
/* root 只负责纵向堆叠:标题一行、控件一行。可见的那个"框"长在 control 上,
|
|
45995
46090
|
因为标签、输入框、清空按钮都在它里面,边框必须把三者一起圈住。
|
|
45996
46091
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明 */
|
|
@@ -46322,6 +46417,12 @@
|
|
|
46322
46417
|
--xh-text-field-skin: 1;
|
|
46323
46418
|
}
|
|
46324
46419
|
|
|
46420
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46421
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46422
|
+
:where(xh-text-field:not([hidden])) {
|
|
46423
|
+
display: contents;
|
|
46424
|
+
}
|
|
46425
|
+
|
|
46325
46426
|
/* 组件层只把既有公开槽映射到家族合同,并保留 label/count 等 TextField 专属结构;
|
|
46326
46427
|
形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
46327
46428
|
.xh-scope-text-field[data-part='root'] {
|
|
@@ -46513,6 +46614,12 @@
|
|
|
46513
46614
|
--xh-time-field-skin: 1;
|
|
46514
46615
|
}
|
|
46515
46616
|
|
|
46617
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46618
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46619
|
+
:where(xh-time-field:not([hidden])) {
|
|
46620
|
+
display: contents;
|
|
46621
|
+
}
|
|
46622
|
+
|
|
46516
46623
|
/* 与文本框、数字框同一套堆叠:标签一行、控件一行。
|
|
46517
46624
|
组件层只把既有公开槽映射到家族合同;形态三档由家族按 control 上的 data-variant 生成,皮肤不再声明。 */
|
|
46518
46625
|
.xh-scope-time-field[data-part='root'] {
|
|
@@ -46785,6 +46892,12 @@
|
|
|
46785
46892
|
--xh-time-picker-skin: 1;
|
|
46786
46893
|
}
|
|
46787
46894
|
|
|
46895
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
46896
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
46897
|
+
:where(xh-time-picker:not([hidden])) {
|
|
46898
|
+
display: contents;
|
|
46899
|
+
}
|
|
46900
|
+
|
|
46788
46901
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
46789
46902
|
.xh-scope-time-picker[data-part='positioner'] {
|
|
46790
46903
|
/* 每个浮层独立声明方向,避免嵌套浮层继承祖先的进场位移。 */
|
|
@@ -47564,6 +47677,12 @@
|
|
|
47564
47677
|
--xh-time-range-picker-skin: 1;
|
|
47565
47678
|
}
|
|
47566
47679
|
|
|
47680
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
47681
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
47682
|
+
:where(xh-time-range-picker:not([hidden])) {
|
|
47683
|
+
display: contents;
|
|
47684
|
+
}
|
|
47685
|
+
|
|
47567
47686
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
47568
47687
|
.xh-scope-time-range-picker[data-part='positioner'] {
|
|
47569
47688
|
/* 落定那一侧的可用宽度,由定位引擎经内联自定义属性写进来,内容层据此夹住行内轴;
|
|
@@ -51512,6 +51631,12 @@
|
|
|
51512
51631
|
--xh-tree-select-skin: 1;
|
|
51513
51632
|
}
|
|
51514
51633
|
|
|
51634
|
+
/* Web Components 的宿主不占一层盒子:作者写的 root 直接参与外层排布、按控件宽铺满,与 Vue / React
|
|
51635
|
+
直接渲染 root 一致。零特指度,作者给宿主写的 display 照层叠胜出;带 hidden 的宿主不掀开 */
|
|
51636
|
+
:where(xh-tree-select:not([hidden])) {
|
|
51637
|
+
display: contents;
|
|
51638
|
+
}
|
|
51639
|
+
|
|
51515
51640
|
/* 坐标由定位引擎写进 style(inset-inline-start / inset-block-start),这里只定位模式与层级 */
|
|
51516
51641
|
.xh-scope-tree-select[data-part='positioner'] {
|
|
51517
51642
|
/* 落定那一侧的可用高度,由定位引擎经内联自定义属性写进来,内容层继承它限高;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xihan-ui/styles",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.1",
|
|
5
5
|
"description": "XiHan.UI styled layer — pure CSS skins driven by data-attributes and design tokens.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "XiHanFun",
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"registry": "https://registry.npmjs.org/"
|
|
219
219
|
},
|
|
220
220
|
"dependencies": {
|
|
221
|
-
"@xihan-ui/tokens": "^4.0.
|
|
221
|
+
"@xihan-ui/tokens": "^4.0.1"
|
|
222
222
|
},
|
|
223
223
|
"scripts": {
|
|
224
224
|
"gen": "node build/action-control-recipe.mjs && node build/field-chrome-recipe.mjs && node build/collection-item-recipe.mjs && node build/swatch-recipe.mjs && node build/chart-recipe.mjs && node build/emit-component-tokens.mjs && node build/emit-entries.mjs",
|