@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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "type": "module",
3
3
  "name": "@capillaryjs/capillary-ui",
4
4
  "private": false,
5
- "version": "1.3.0",
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.3.0"
79
+ "@capillaryjs/capillary": "^1.4.0"
80
80
  },
81
81
  "devDependencies": {
82
- "@capillaryjs/capillary": "^1.3.0",
82
+ "@capillaryjs/capillary": "^1.4.0",
83
83
  "vite": "^6.3.5"
84
84
  },
85
85
  "engines": {
@@ -879,7 +879,12 @@ cap-datatable {
879
879
  }
880
880
 
881
881
  cap-datatable > table {
882
- border-collapse: collapse;
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(--ui-gradient);
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
- background: var(--ui-gradient);
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-row-background: var(--palette-light);
127
- --table-row-alt-background: color-mix(in oklch, var(--palette-light) 78%, var(--ui-primary-bg-color));
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;
@@ -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