@capillaryjs/capillary-ui 1.3.0 → 1.4.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 +43 -14
- package/dist/Components/data/table/DataTable.d.ts.map +1 -1
- package/dist/Components/data/table/TableHeader.d.ts.map +1 -1
- package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -1
- package/dist/index.js +53 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/styles/structural.css +52 -3
- package/themes/capillary/theme.css +2 -2
- package/themes/shiny/theme.css +2 -6
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@capillaryjs/capillary-ui",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.4.0",
|
|
6
6
|
"description": "Browser-only TypeScript component runtime, JSX controls, and semantic themes.",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"author": {
|
|
@@ -76,10 +76,10 @@
|
|
|
76
76
|
"dev": "vite"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
|
-
"@capillaryjs/capillary": "^1.
|
|
79
|
+
"@capillaryjs/capillary": "^1.4.0"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@capillaryjs/capillary": "^1.
|
|
82
|
+
"@capillaryjs/capillary": "^1.4.0",
|
|
83
83
|
"vite": "^6.3.5"
|
|
84
84
|
},
|
|
85
85
|
"engines": {
|
package/styles/structural.css
CHANGED
|
@@ -879,7 +879,12 @@ cap-datatable {
|
|
|
879
879
|
}
|
|
880
880
|
|
|
881
881
|
cap-datatable > table {
|
|
882
|
-
|
|
882
|
+
/* Collapsed borders belong to the table paint layer, so they can
|
|
883
|
+
* disappear behind scrolling rows even though the header cells are
|
|
884
|
+
* sticky. Keep zero visual spacing while letting each sticky cell
|
|
885
|
+
* retain its own header-edge and column-divider chrome. */
|
|
886
|
+
border-collapse: separate;
|
|
887
|
+
border-spacing: 0;
|
|
883
888
|
width: 100%;
|
|
884
889
|
}
|
|
885
890
|
|
|
@@ -1012,14 +1017,15 @@ cap-placeholder {
|
|
|
1012
1017
|
|
|
1013
1018
|
cap-datatable > table > thead {
|
|
1014
1019
|
color: var(--table-header-color);
|
|
1015
|
-
background: var(--
|
|
1020
|
+
background: var(--table-header-background);
|
|
1016
1021
|
}
|
|
1017
1022
|
|
|
1018
1023
|
cap-datatable > table > thead > tr > th {
|
|
1019
1024
|
position: sticky;
|
|
1020
1025
|
inset-block-start: 0;
|
|
1021
1026
|
z-index: 2;
|
|
1022
|
-
|
|
1027
|
+
height: 1.5rem;
|
|
1028
|
+
background: var(--table-header-background);
|
|
1023
1029
|
border: 2px groove #fff7;
|
|
1024
1030
|
border-left: none;
|
|
1025
1031
|
}
|
|
@@ -1058,9 +1064,37 @@ cap-datatable > table > thead > tr > th[aria-sort] {
|
|
|
1058
1064
|
top: 50%;
|
|
1059
1065
|
transform: translateY(-50%);
|
|
1060
1066
|
width: 1em;
|
|
1067
|
+
height: 1.25em;
|
|
1061
1068
|
text-align: center;
|
|
1062
1069
|
}
|
|
1063
1070
|
|
|
1071
|
+
/* An unsorted column offers both directions at the same muted weight
|
|
1072
|
+
* as the filter funnel. A sorted column continues to render its one
|
|
1073
|
+
* active text arrow above. */
|
|
1074
|
+
cap-datatable > table > thead > tr > th[aria-sort="none"] > button.sort > span.sortindicator {
|
|
1075
|
+
opacity: 0.5;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
cap-datatable > table > thead > tr > th[aria-sort="none"] > button.sort > span.sortindicator::before,
|
|
1079
|
+
cap-datatable > table > thead > tr > th[aria-sort="none"] > button.sort > span.sortindicator::after {
|
|
1080
|
+
content: "";
|
|
1081
|
+
position: absolute;
|
|
1082
|
+
left: 50%;
|
|
1083
|
+
transform: translateX(-50%);
|
|
1084
|
+
border-left: .36em solid transparent;
|
|
1085
|
+
border-right: .36em solid transparent;
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
cap-datatable > table > thead > tr > th[aria-sort="none"] > button.sort > span.sortindicator::before {
|
|
1089
|
+
top: .04em;
|
|
1090
|
+
border-bottom: .5em solid currentColor;
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
cap-datatable > table > thead > tr > th[aria-sort="none"] > button.sort > span.sortindicator::after {
|
|
1094
|
+
bottom: .04em;
|
|
1095
|
+
border-top: .5em solid currentColor;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1064
1098
|
cap-datatable > table > thead > tr > th[aria-sort] > button.filter {
|
|
1065
1099
|
appearance: none;
|
|
1066
1100
|
position: absolute;
|
|
@@ -1068,6 +1102,7 @@ cap-datatable > table > thead > tr > th[aria-sort] {
|
|
|
1068
1102
|
top: 50%;
|
|
1069
1103
|
transform: translateY(-50%);
|
|
1070
1104
|
width: 1em;
|
|
1105
|
+
height: 1em;
|
|
1071
1106
|
padding: 0;
|
|
1072
1107
|
color: inherit;
|
|
1073
1108
|
background: transparent;
|
|
@@ -1080,6 +1115,20 @@ cap-datatable > table > thead > tr > th[aria-sort] {
|
|
|
1080
1115
|
opacity: 0.5;
|
|
1081
1116
|
}
|
|
1082
1117
|
|
|
1118
|
+
/* A solid, font-independent funnel: the tapered bowl narrows into a
|
|
1119
|
+
* short stem, so the control stays legible at compact table-header
|
|
1120
|
+
* sizes in every theme and locale. */
|
|
1121
|
+
cap-datatable > table > thead > tr > th[aria-sort] > button.filter::before {
|
|
1122
|
+
content: "";
|
|
1123
|
+
position: absolute;
|
|
1124
|
+
inset: 50% auto auto 50%;
|
|
1125
|
+
width: .85em;
|
|
1126
|
+
height: .9em;
|
|
1127
|
+
background: currentColor;
|
|
1128
|
+
clip-path: polygon(0 0, 100% 0, 60% 58%, 60% 100%, 40% 100%, 40% 58%);
|
|
1129
|
+
transform: translate(-50%, -50%);
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1083
1132
|
cap-datatable > table > thead > tr > th[aria-sort] > button.filter:hover {
|
|
1084
1133
|
opacity: 1;
|
|
1085
1134
|
}
|
|
@@ -123,8 +123,8 @@
|
|
|
123
123
|
--tab-button-shadow-active: 0 -1px 0 var(--palette-primary), var(--button-shadow);
|
|
124
124
|
--table-header-background: color-mix(in oklch, var(--palette-light) 74%, var(--ui-primary-bg-color));
|
|
125
125
|
--table-header-color: var(--ui-color);
|
|
126
|
-
--table-
|
|
127
|
-
--table-
|
|
126
|
+
--ui-table-bg-color: #eaeaea;
|
|
127
|
+
--ui-table-bg-color2: #f5f5f5;
|
|
128
128
|
--row-hover-background: color-mix(in oklch, var(--palette-primary-100) 45%, var(--palette-light));
|
|
129
129
|
--navigation-bar-background: unset;
|
|
130
130
|
--navigation-bar-border: unset;
|
package/themes/shiny/theme.css
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
--ui-gradient-2: linear-gradient( to bottom in srgb, var(--ui-primary-bg-color) 9px, var(--ui-primary-bg-color) 13px, var(--ui-dark-bg-color) 100% );
|
|
13
13
|
--shiny-ui-gradient: var(--ui-gradient);
|
|
14
14
|
--shiny-ui-gradient-2: var(--ui-gradient-2);
|
|
15
|
+
--table-header-background: var(--ui-gradient);
|
|
16
|
+
--table-header-color: var(--ui-text-color);
|
|
15
17
|
--shiny-background: radial-gradient(140% 75% at 30% 10%, #fff2, #fff3 47%, #fff0 55%, #fff0), linear-gradient(to bottom, var(--palette-primary-900) 0%, var(--palette-primary) 65%, var(--palette-primary) 66%, var(--palette-primary-400) 100%);
|
|
16
18
|
--text-color: var(--palette-primary-900);
|
|
17
19
|
--ui-color: var(--text-color);
|
|
@@ -159,13 +161,7 @@ cap-blockgraph cap-placeholder {
|
|
|
159
161
|
box-shadow: var(--colored-shadow);
|
|
160
162
|
}
|
|
161
163
|
|
|
162
|
-
cap-datatable > table > thead {
|
|
163
|
-
background: var(--ui-gradient);
|
|
164
|
-
color: var(--ui-text-color);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
164
|
cap-datatable > table > thead > tr > th[aria-sort] > button.sort {
|
|
168
|
-
min-height: 1.5rem;
|
|
169
165
|
font-weight: bold;
|
|
170
166
|
}
|
|
171
167
|
|