@zolomedia/bifrost-client 1.7.78 → 1.7.80

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.
@@ -218,7 +218,7 @@ export class TableRenderer {
218
218
  // Render caption as a description line UNDER the title (not a full-width row
219
219
  // inside the table). Reads like a subtitle: what the table shows / source / date.
220
220
  if (caption) {
221
- const captionElement = createElement('p', ['zMuted', 'zMb-3']);
221
+ const captionElement = createElement('p', ['zText-muted', 'zmb-3']);
222
222
  captionElement.style.fontSize = '0.875rem';
223
223
  captionElement.textContent = this._decodeUnicodeEscapes(caption);
224
224
  wrapper.appendChild(captionElement);
@@ -323,7 +323,7 @@ export class TableRenderer {
323
323
 
324
324
  // Apply zTheme styling
325
325
  setAttributes(titleElement, {
326
- class: 'zMb-3 zText-dark',
326
+ class: 'zmb-3 zText-dark',
327
327
  style: `font-weight: ${TYPOGRAPHY.FONT_WEIGHTS.MEDIUM};`
328
328
  });
329
329
 
@@ -574,7 +574,7 @@ export class TableRenderer {
574
574
  const jumpContainer = createDiv();
575
575
  jumpContainer.classList.add(
576
576
  'zD-flex',
577
- 'zAlign-items-center',
577
+ 'zFlex-items-center',
578
578
  getGapClass(2)
579
579
  );
580
580
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zolomedia/bifrost-client",
3
- "version": "1.7.78",
3
+ "version": "1.7.80",
4
4
  "description": "Browser client for zBifrost — the WebSocket bridge that turns JSON events from a zOS server into live DOM. Thin bootstrap + server-controlled core.",
5
5
  "homepage": "https://github.com/ZoloAi/zbifrost-client#readme",
6
6
  "repository": {
@@ -1052,6 +1052,10 @@ zNavBar .zNav-link.active {
1052
1052
  }
1053
1053
 
1054
1054
  .zText-muted { opacity: 0.6; }
1055
+ .zText-dark { color: #f9fafb; }
1056
+ .zBorder { border: 1px solid rgba(255, 255, 255, 0.12); }
1057
+ .zShadow-sm { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }
1058
+ .zBg-white { background: rgba(255, 255, 255, 0.04); }
1055
1059
  .zText-center { text-align: center !important; }
1056
1060
  .zText-start { text-align: left !important; }
1057
1061
  .zText-end { text-align: right !important; }
@@ -1114,6 +1118,12 @@ zNavBar .zNav-link.active {
1114
1118
  opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; filter: none;
1115
1119
  }
1116
1120
 
1121
+ /* Generic disabled — covers outline/plain buttons (e.g. paging First/Prev at edge)
1122
+ * so a disabled control always reads as muted and never out-ranks an active one. */
1123
+ .zBtn:disabled, .zBtn[disabled] {
1124
+ opacity: 0.45; cursor: not-allowed; transform: none; box-shadow: none;
1125
+ }
1126
+
1117
1127
  /* SSOT fills — keyed to --color-* (same tokens/hexes as .zText-*), so a button
1118
1128
  * matches a heading of the same color name. Dark text on the light hues
1119
1129
  * (primary/success/warning/info), white on the deep ones (secondary/danger). */
@@ -1124,6 +1134,47 @@ zNavBar .zNav-link.active {
1124
1134
  .zBtn-warning { background: var(--color-warning, #FFB347); color: #3a2400; }
1125
1135
  .zBtn-info { background: var(--color-info, #5CA9FF); color: #07243d; }
1126
1136
 
1137
+ /* Size + outline + group variants — emitted by the renderer (e.g. the zTable
1138
+ * paging control bar). Outline buttons keep the base box model and only swap the
1139
+ * skin (transparent fill, token-tinted text/border). */
1140
+ .zBtn-sm { padding: 0.32rem 0.7rem; font-size: 0.82rem; border-radius: 7px; }
1141
+ .zBtn-lg { padding: 0.8rem 1.8rem; font-size: 1.05rem; border-radius: 11px; }
1142
+
1143
+ .zBtn-outline-primary,
1144
+ .zBtn-outline-secondary,
1145
+ .zBtn-outline-success,
1146
+ .zBtn-outline-warning,
1147
+ .zBtn-outline-info {
1148
+ display: inline-flex;
1149
+ align-items: center;
1150
+ justify-content: center;
1151
+ gap: 0.35rem;
1152
+ font-family: inherit;
1153
+ font-weight: 600;
1154
+ line-height: 1.4;
1155
+ background: transparent;
1156
+ border-color: currentColor;
1157
+ transition: background 0.15s ease, transform 0.08s ease;
1158
+ }
1159
+ .zBtn-outline-primary { color: var(--color-primary, #A2D46E); }
1160
+ .zBtn-outline-secondary { color: var(--color-secondary, #9370DB); }
1161
+ .zBtn-outline-success { color: var(--color-success, #52B788); }
1162
+ .zBtn-outline-warning { color: var(--color-warning, #FFB347); }
1163
+ .zBtn-outline-info { color: var(--color-info, #5CA9FF); }
1164
+ .zBtn-outline-primary:hover,
1165
+ .zBtn-outline-secondary:hover,
1166
+ .zBtn-outline-success:hover,
1167
+ .zBtn-outline-warning:hover,
1168
+ .zBtn-outline-info:hover {
1169
+ background: color-mix(in srgb, currentColor 14%, transparent);
1170
+ }
1171
+
1172
+ .zBtn-group { display: inline-flex; }
1173
+ .zBtn-group > .zBtn { border-radius: 0; }
1174
+ .zBtn-group > .zBtn:first-child { border-top-left-radius: 7px; border-bottom-left-radius: 7px; }
1175
+ .zBtn-group > .zBtn:last-child { border-top-right-radius: 7px; border-bottom-right-radius: 7px; }
1176
+ .zBtn-group > .zBtn:not(:first-child) { margin-left: -1px; }
1177
+
1127
1178
  /* Structural display defaults */
1128
1179
  .zSignal { display: block; }
1129
1180
  .zCard { position: relative; }