@dillingerstaffing/strand-svelte 0.17.4 → 0.17.5

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.
@@ -9,7 +9,7 @@
9
9
  .strand-alert {
10
10
  position: relative;
11
11
  display: flex;
12
- align-items: flex-start;
12
+ align-items: center;
13
13
  justify-content: space-between;
14
14
  width: 100%;
15
15
  padding: var(--strand-space-6);
@@ -964,7 +964,7 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
964
964
  font-weight: var(--strand-weight-medium);
965
965
  letter-spacing: var(--strand-tracking-widest);
966
966
  text-transform: uppercase;
967
- color: var(--strand-gray-500);
967
+ color: var(--strand-gray-600);
968
968
  margin-bottom: var(--strand-space-2);
969
969
  }
970
970
 
@@ -3352,7 +3352,14 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
3352
3352
  /* Shell root: two-column grid, sidebar left, main right. */
3353
3353
  .strand-ref-shell {
3354
3354
  display: grid;
3355
- grid-template-columns: 256px 1fr;
3355
+ /* minmax(0, 1fr) on the main track, not a bare 1fr. A bare 1fr keeps an
3356
+ implicit min-content floor, so a wide child (a long heading, the metrics
3357
+ row) forces the track wider than the viewport. Paired with the shell's
3358
+ overflow-x clip below, that surplus is cut off on the right while the
3359
+ left gutter renders correctly: asymmetric clipping on narrow viewports.
3360
+ minmax(0, ...) lets the track shrink to the available width so content
3361
+ reflows instead. Boundary Integrity: the container owns its width. */
3362
+ grid-template-columns: 256px minmax(0, 1fr);
3356
3363
  min-height: 100vh;
3357
3364
  }
3358
3365
 
@@ -3495,6 +3502,10 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
3495
3502
  .strand-ref-shell__main {
3496
3503
  padding: 56px var(--strand-space-16) 96px;
3497
3504
  max-width: 1120px;
3505
+ /* min-width: 0 lets this grid item shrink below its content's min-content
3506
+ width so content reflows within the track rather than overflowing the
3507
+ viewport and being clipped on the right (Boundary Integrity). */
3508
+ min-width: 0;
3498
3509
  }
3499
3510
 
3500
3511
  /* Header: h1 + lead + metrics row, bottom hairline. */
@@ -3729,7 +3740,9 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
3729
3740
  on tap. */
3730
3741
  @media (max-width: 1040px) {
3731
3742
  .strand-ref-shell {
3732
- grid-template-columns: 1fr;
3743
+ /* Single column at mobile, but still minmax(0, ...) so the lone track can
3744
+ shrink below its content's min-content width (see the base rule). */
3745
+ grid-template-columns: minmax(0, 1fr);
3733
3746
  }
3734
3747
 
3735
3748
  .strand-ref-shell__sidebar {
@@ -4607,6 +4620,19 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
4607
4620
  }
4608
4621
  }
4609
4622
 
4623
+ /* Manual / programmatic reveal. Opts out of the scroll-driven view-timeline so a
4624
+ consumer can drive the reveal by toggling .strand-reveal--visible: replay on
4625
+ click, reveal on mount, reveal on state change. Uses the same transition as the
4626
+ no-JS fallback, so it stays replayable even where animation-timeline is supported.
4627
+ Add .strand-reveal--manual per element, or .strand-reveal-group--manual on the group. */
4628
+ .strand-reveal--manual,
4629
+ .strand-reveal-group--manual > .strand-reveal {
4630
+ animation: none;
4631
+ animation-timeline: auto;
4632
+ transition: opacity var(--strand-duration-glacial) var(--strand-ease-out-expo),
4633
+ transform var(--strand-duration-glacial) var(--strand-ease-out-expo);
4634
+ }
4635
+
4610
4636
  @media (prefers-reduced-motion: reduce) {
4611
4637
  .strand-reveal {
4612
4638
  opacity: 1;
@@ -6556,12 +6582,12 @@ body.strand-banner-active .strand-instrument-viewport--full-bleed {
6556
6582
 
6557
6583
  .strand-bar-chart__col {
6558
6584
  flex: 1;
6559
- display: flex;
6560
- flex-direction: column;
6561
- align-items: center;
6585
+ display: grid;
6586
+ grid-template-rows: auto 1fr auto;
6587
+ align-items: end;
6588
+ justify-items: center;
6562
6589
  gap: var(--strand-space-1);
6563
6590
  height: 100%;
6564
- justify-content: flex-end;
6565
6591
  }
6566
6592
 
6567
6593
  .strand-bar-chart__bar {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dillingerstaffing/strand-svelte",
3
- "version": "0.17.4",
3
+ "version": "0.17.5",
4
4
  "description": "Strand UI - Svelte component library built on the Strand Design Language",
5
5
  "author": "Dillinger Staffing <engineering@dillingerstaffing.com> (https://dillingerstaffing.com)",
6
6
  "license": "MIT",
@@ -56,7 +56,7 @@
56
56
  "svelte": "^4.0.0 || ^5.0.0"
57
57
  },
58
58
  "dependencies": {
59
- "@dillingerstaffing/strand": "^0.17.4"
59
+ "@dillingerstaffing/strand": "^0.17.5"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@sveltejs/vite-plugin-svelte": "^5.0.0",