@patimweb/crtstyleguide 1.0.31 → 1.0.33

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.
Files changed (2) hide show
  1. package/dist/lib/index.js +120 -53
  2. package/package.json +1 -1
package/dist/lib/index.js CHANGED
@@ -417,6 +417,8 @@ let $ = class extends p {
417
417
  $.styles = c`
418
418
  :host {
419
419
  display: inline-block;
420
+ vertical-align: middle;
421
+ line-height: 0;
420
422
  }
421
423
 
422
424
  button {
@@ -424,10 +426,11 @@ $.styles = c`
424
426
  color: var(--crt-primary);
425
427
  border: 2px solid var(--crt-primary);
426
428
  box-sizing: border-box;
427
- height: 100%;
429
+ margin: 0;
428
430
  padding: 16px 32px;
429
431
  font-family: var(--crt-font-family);
430
432
  font-size: 1rem;
433
+ line-height: 1;
431
434
  letter-spacing: 2px;
432
435
  cursor: var(--crt-cursor-pointer);
433
436
  text-transform: uppercase;
@@ -3735,7 +3738,9 @@ let I = class extends p {
3735
3738
  _handleChange(e) {
3736
3739
  const t = e.target;
3737
3740
  this.checked = t.checked, this.dispatchEvent(new CustomEvent("change", {
3738
- detail: { checked: this.checked }
3741
+ detail: { checked: this.checked },
3742
+ bubbles: !0,
3743
+ composed: !0
3739
3744
  }));
3740
3745
  }
3741
3746
  render() {
@@ -7699,6 +7704,7 @@ let N = class extends p {
7699
7704
  ${this.vignette && t ? l`<div class="${r}"></div>` : ""}
7700
7705
  ${this.scanlines && t ? l`<div class="${i}"></div>` : ""}
7701
7706
  ${this.scanlines && t ? l`<div class="${a}"></div>` : ""}
7707
+ ${this.scanlines && t ? l`<div class="scanline-roll"></div>` : ""}
7702
7708
  ${this.flicker && t ? l`<div class="${s}"></div>` : ""}
7703
7709
  ${o ? l`
7704
7710
  <div class="power-container ${this._powerState}">
@@ -7719,12 +7725,7 @@ N.styles = c`
7719
7725
  :host {
7720
7726
  display: block;
7721
7727
  position: fixed;
7722
- top: 0;
7723
- left: 0;
7724
- right: 0;
7725
- bottom: 0;
7726
- width: 100vw;
7727
- height: 100vh;
7728
+ inset: 0;
7728
7729
  pointer-events: none;
7729
7730
  z-index: 2147483647;
7730
7731
  overflow: hidden;
@@ -7733,12 +7734,7 @@ N.styles = c`
7733
7734
  /* Container mode - absolute positioning */
7734
7735
  :host([contained]) {
7735
7736
  position: absolute;
7736
- top: 0;
7737
- left: 0;
7738
- right: 0;
7739
- bottom: 0;
7740
- width: 100% !important;
7741
- height: 100% !important;
7737
+ inset: 0;
7742
7738
  z-index: 100;
7743
7739
  }
7744
7740
 
@@ -8148,45 +8144,70 @@ let k = class extends p {
8148
8144
  <!-- Header -->
8149
8145
  <div class="log-header">
8150
8146
  <span class="log-title">
8151
- <span class="log-title-icon">▶</span>
8152
8147
  ${this.title}
8153
8148
  </span>
8154
8149
 
8155
- <div class="log-controls">
8156
- <crt-button
8150
+ <div class="log-actions">
8151
+ <crt-button
8152
+ class="log-action"
8157
8153
  size="small"
8158
- variant="${this._filter === "all" ? "primary" : "link"}"
8159
- @click=${() => this._setFilter("all")}
8160
- >ALL (${t.all})</crt-button>
8161
- <crt-button
8162
- size="small"
8163
- variant="${this._filter === "error" ? "error" : "link"}"
8164
- @click=${() => this._setFilter("error")}
8165
- >ERR (${t.error})</crt-button>
8166
- <crt-button
8167
- size="small"
8168
- variant="${this._filter === "warn" ? "warning" : "link"}"
8169
- @click=${() => this._setFilter("warn")}
8170
- >WRN (${t.warn})</crt-button>
8171
- <crt-button
8172
- size="small"
8173
- variant="${this._filter === "info" ? "info" : "link"}"
8174
- @click=${() => this._setFilter("info")}
8175
- >INF (${t.info})</crt-button>
8176
-
8177
- <crt-button
8178
- size="small"
8179
- variant="${this._isPaused ? "warning" : "link"}"
8180
8154
  @click=${this._togglePause}
8181
- >${this._isPaused ? "▶ RESUME" : "⏸ PAUSE"}</crt-button>
8182
- <crt-button
8155
+ icon-only
8156
+ icon-left="${this._isPaused ? "play" : "pause"}"
8157
+ title="${this._isPaused ? "Play" : "Pause"}"
8158
+ aria-label="${this._isPaused ? "Play" : "Pause"}"
8159
+ ></crt-button>
8160
+ <crt-button
8161
+ class="log-action"
8183
8162
  size="small"
8184
8163
  variant="error"
8185
8164
  @click=${this._clearLog}
8186
- >✕ CLEAR</crt-button>
8165
+ icon-only
8166
+ icon-left="trash"
8167
+ aria-label="Clear"
8168
+ ></crt-button>
8187
8169
  </div>
8188
8170
  </div>
8189
8171
 
8172
+ <div class="log-tabs" role="tablist">
8173
+ <button
8174
+ class="log-tab ${this._filter === "all" ? "active" : ""}"
8175
+ role="tab"
8176
+ aria-selected="${this._filter === "all" ? "true" : "false"}"
8177
+ @click=${() => this._setFilter("all")}
8178
+ >ALL <span class="log-tab-count">${t.all}</span></button>
8179
+ <button
8180
+ class="log-tab ${this._filter === "error" ? "active" : ""}"
8181
+ role="tab"
8182
+ aria-selected="${this._filter === "error" ? "true" : "false"}"
8183
+ @click=${() => this._setFilter("error")}
8184
+ >ERR <span class="log-tab-count">${t.error}</span></button>
8185
+ <button
8186
+ class="log-tab ${this._filter === "warn" ? "active" : ""}"
8187
+ role="tab"
8188
+ aria-selected="${this._filter === "warn" ? "true" : "false"}"
8189
+ @click=${() => this._setFilter("warn")}
8190
+ >WRN <span class="log-tab-count">${t.warn}</span></button>
8191
+ <button
8192
+ class="log-tab ${this._filter === "info" ? "active" : ""}"
8193
+ role="tab"
8194
+ aria-selected="${this._filter === "info" ? "true" : "false"}"
8195
+ @click=${() => this._setFilter("info")}
8196
+ >INF <span class="log-tab-count">${t.info}</span></button>
8197
+ <button
8198
+ class="log-tab ${this._filter === "success" ? "active" : ""}"
8199
+ role="tab"
8200
+ aria-selected="${this._filter === "success" ? "true" : "false"}"
8201
+ @click=${() => this._setFilter("success")}
8202
+ >SUC <span class="log-tab-count">${t.success}</span></button>
8203
+ <button
8204
+ class="log-tab ${this._filter === "debug" ? "active" : ""}"
8205
+ role="tab"
8206
+ aria-selected="${this._filter === "debug" ? "true" : "false"}"
8207
+ @click=${() => this._setFilter("debug")}
8208
+ >DBG <span class="log-tab-count">${t.debug}</span></button>
8209
+ </div>
8210
+
8190
8211
  <!-- Log Content -->
8191
8212
  <div class="log-content">
8192
8213
  ${e.length === 0 ? l`<div class="log-empty">[NO LOG ENTRIES]</div>` : e.map((r) => l`
@@ -8257,32 +8278,78 @@ k.styles = c`
8257
8278
  gap: var(--crt-spacing-sm);
8258
8279
  }
8259
8280
 
8260
- .log-title-icon {
8261
- animation: blink 1s steps(1) infinite;
8262
- }
8263
-
8264
- @keyframes blink {
8265
- 0%, 50% { opacity: 1; }
8266
- 51%, 100% { opacity: 0; }
8267
- }
8268
-
8269
8281
  .log-stats {
8270
8282
  color: var(--crt-text-muted);
8271
8283
  font-size: var(--crt-font-size-xs);
8272
8284
  }
8273
8285
 
8274
8286
  /* Controls */
8275
- .log-controls {
8287
+ .log-actions {
8276
8288
  display: flex;
8277
8289
  align-items: center;
8278
8290
  gap: var(--crt-spacing-xs);
8279
8291
  flex-wrap: wrap;
8280
8292
  }
8281
8293
 
8282
- .log-controls crt-button {
8294
+ .log-actions crt-button {
8283
8295
  --crt-button-padding: 2px 6px;
8284
8296
  }
8285
8297
 
8298
+ .log-actions .log-action {
8299
+ min-width: 80px;
8300
+ display: inline-flex;
8301
+ align-self: center;
8302
+ }
8303
+
8304
+ .log-actions .log-action[icon-only] {
8305
+ min-width: auto;
8306
+ }
8307
+
8308
+ /* Filter Tabs */
8309
+ .log-tabs {
8310
+ display: flex;
8311
+ flex-wrap: wrap;
8312
+ gap: 0;
8313
+ border-bottom: 1px solid color-mix(in srgb, var(--crt-primary) 40%, transparent);
8314
+ padding: 0 var(--crt-spacing-md);
8315
+ background: transparent;
8316
+ }
8317
+
8318
+ .log-tab {
8319
+ background: transparent;
8320
+ border: none;
8321
+ color: var(--crt-text-primary);
8322
+ padding: var(--crt-spacing-xs) var(--crt-spacing-md);
8323
+ cursor: pointer;
8324
+ font-family: var(--crt-font-family);
8325
+ font-size: var(--crt-font-size-xs);
8326
+ letter-spacing: 1px;
8327
+ text-transform: uppercase;
8328
+ border-bottom: 2px solid transparent;
8329
+ margin-bottom: -1px;
8330
+ display: inline-flex;
8331
+ align-items: baseline;
8332
+ gap: var(--crt-spacing-xs);
8333
+ white-space: nowrap;
8334
+ }
8335
+
8336
+ .log-tab:hover:not(.active) {
8337
+ color: var(--crt-text-primary);
8338
+ }
8339
+
8340
+ .log-tab.active {
8341
+ color: var(--crt-primary);
8342
+ border-bottom-color: var(--crt-primary);
8343
+ }
8344
+
8345
+ .log-tab-count {
8346
+ display: inline-block;
8347
+ min-width: 3ch;
8348
+ text-align: right;
8349
+ font-variant-numeric: tabular-nums;
8350
+ color: var(--crt-text-muted);
8351
+ }
8352
+
8286
8353
  /* Log Content */
8287
8354
  .log-content {
8288
8355
  flex: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patimweb/crtstyleguide",
3
- "version": "1.0.31",
3
+ "version": "1.0.33",
4
4
  "description": "CRT Style Guide - Retro Lit component library",
5
5
  "type": "module",
6
6
  "main": "dist/lib/index.js",