@quilltap/theme-storybook 1.0.76 → 1.0.78

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 CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to `@quilltap/theme-storybook` will be documented in this file.
4
4
 
5
+ ## [1.0.78] - 2026-10-22
6
+
7
+ ### Added
8
+ - The `qt-storyteller-*` family in `qt-components.css`, mirroring the app's `_storyteller.css`: the Salon's Normal / Paused / Storyteller turn-mode control (`.qt-storyteller-mode`, `-option`, `-option-active`, `-option-paused`) and the storyteller's bidding board (`.qt-storyteller-board`, `-board-header`, `.qt-storyteller-cards`, `.qt-storyteller-card` with `-selected` / `-act` / `-destroy` / `-quiet` / `-head` / `-name`, `.qt-storyteller-plan`, `-meta`, `-warning`, `-actions`, `.qt-storyteller-summary`). Every colour reads a `--qt-storyteller-*` hook with a token fallback.
9
+
5
10
  ## [1.0.76] - 2026-10-20
6
11
 
7
12
  ### Added
package/dist/index.css CHANGED
@@ -1729,19 +1729,14 @@ body {
1729
1729
  }
1730
1730
  .qt-chat-composer-actions {
1731
1731
  display: flex;
1732
+ flex-direction: column;
1732
1733
  align-items: center;
1733
- gap: 0.5rem;
1734
+ gap: 0.375rem;
1734
1735
  flex-shrink: 0;
1735
1736
  }
1736
- @media (max-width: 639px) {
1737
- .qt-chat-composer-actions {
1738
- flex-direction: column;
1739
- gap: 0.375rem;
1740
- }
1741
- .qt-chat-composer-actions .qt-chat-composer-send {
1742
- height: 2.5rem;
1743
- width: 2.5rem;
1744
- }
1737
+ .qt-chat-composer-actions .qt-chat-composer-send {
1738
+ height: 2.5rem;
1739
+ width: 2.5rem;
1745
1740
  }
1746
1741
  .qt-chat-composer-send {
1747
1742
  display: inline-flex;
@@ -3709,3 +3704,134 @@ body {
3709
3704
  font-size: 0.625rem;
3710
3705
  opacity: 0.85;
3711
3706
  }
3707
+ .qt-storyteller-mode {
3708
+ display: flex;
3709
+ width: 100%;
3710
+ border: 1px solid var(--qt-storyteller-mode-border, var(--color-border));
3711
+ border-radius: var(--qt-storyteller-mode-radius, 0.5rem);
3712
+ overflow: hidden;
3713
+ }
3714
+ .qt-storyteller-mode-option {
3715
+ flex: 1 1 0%;
3716
+ display: flex;
3717
+ align-items: center;
3718
+ justify-content: center;
3719
+ min-width: 0;
3720
+ padding: 0.375rem 0.25rem;
3721
+ font-size: 0.75rem;
3722
+ font-weight: 500;
3723
+ white-space: nowrap;
3724
+ overflow: hidden;
3725
+ text-overflow: ellipsis;
3726
+ cursor: pointer;
3727
+ background: var(--qt-storyteller-mode-bg, var(--color-card));
3728
+ color: var(--qt-storyteller-mode-fg, var(--color-muted-foreground));
3729
+ border: none;
3730
+ transition: background-color 150ms, color 150ms;
3731
+ }
3732
+ .qt-storyteller-mode-option + .qt-storyteller-mode-option {
3733
+ border-left: 1px solid var(--qt-storyteller-mode-border, var(--color-border));
3734
+ }
3735
+ .qt-storyteller-mode-option:hover {
3736
+ background: var(--qt-storyteller-mode-hover-bg, var(--color-accent));
3737
+ color: var(--qt-storyteller-mode-hover-fg, var(--color-foreground));
3738
+ }
3739
+ .qt-storyteller-mode-option-active,
3740
+ .qt-storyteller-mode-option-active:hover {
3741
+ background: var(--qt-storyteller-mode-active-bg, var(--color-primary));
3742
+ color: var(--qt-storyteller-mode-active-fg, var(--color-primary-foreground));
3743
+ }
3744
+ .qt-storyteller-mode-option-paused,
3745
+ .qt-storyteller-mode-option-paused:hover {
3746
+ background: var(--qt-status-warning-bg, var(--color-warning));
3747
+ color: var(--qt-status-warning-fg, var(--color-warning-foreground));
3748
+ }
3749
+ .qt-storyteller-board {
3750
+ margin-bottom: 0.5rem;
3751
+ padding: 0.625rem;
3752
+ border: 1px solid var(--qt-storyteller-board-border, var(--color-border));
3753
+ border-radius: var(--qt-storyteller-board-radius, 0.75rem);
3754
+ background: var(--qt-storyteller-board-bg, var(--color-card));
3755
+ color: var(--qt-storyteller-board-fg, var(--color-card-foreground));
3756
+ }
3757
+ .qt-storyteller-board-header {
3758
+ display: flex;
3759
+ align-items: center;
3760
+ justify-content: space-between;
3761
+ gap: 0.5rem;
3762
+ margin-bottom: 0.5rem;
3763
+ font-size: 0.8125rem;
3764
+ font-weight: 600;
3765
+ }
3766
+ .qt-storyteller-cards {
3767
+ display: grid;
3768
+ grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
3769
+ gap: 0.5rem;
3770
+ max-height: 16rem;
3771
+ overflow-y: auto;
3772
+ }
3773
+ .qt-storyteller-card {
3774
+ display: flex;
3775
+ flex-direction: column;
3776
+ gap: 0.375rem;
3777
+ padding: 0.5rem;
3778
+ border: 1px solid var(--qt-storyteller-card-border, var(--color-border));
3779
+ border-radius: var(--qt-storyteller-card-radius, 0.5rem);
3780
+ background: var(--qt-storyteller-card-bg, var(--color-background));
3781
+ font-size: 0.8125rem;
3782
+ }
3783
+ .qt-storyteller-card-selected {
3784
+ border-color: var(--qt-storyteller-card-selected-border, var(--color-primary));
3785
+ box-shadow: 0 0 0 1px var(--qt-storyteller-card-selected-border, var(--color-primary));
3786
+ }
3787
+ .qt-storyteller-card-act {
3788
+ border-color: var(--qt-storyteller-card-act-border, var(--color-warning));
3789
+ }
3790
+ .qt-storyteller-card-destroy {
3791
+ border-color: var(--qt-status-danger-border, var(--color-destructive));
3792
+ background: var(--qt-storyteller-card-destroy-bg, color-mix(in srgb, var(--color-destructive) 10%, var(--color-background)));
3793
+ }
3794
+ .qt-storyteller-card-quiet {
3795
+ opacity: 0.65;
3796
+ }
3797
+ .qt-storyteller-card-head {
3798
+ display: flex;
3799
+ align-items: center;
3800
+ gap: 0.5rem;
3801
+ }
3802
+ .qt-storyteller-card-name {
3803
+ flex: 1 1 0%;
3804
+ min-width: 0;
3805
+ font-weight: 600;
3806
+ overflow: hidden;
3807
+ text-overflow: ellipsis;
3808
+ white-space: nowrap;
3809
+ }
3810
+ .qt-storyteller-plan {
3811
+ font-style: italic;
3812
+ color: var(--qt-storyteller-plan-fg, var(--color-foreground));
3813
+ }
3814
+ .qt-storyteller-meta {
3815
+ font-size: 0.6875rem;
3816
+ color: var(--qt-storyteller-meta-fg, var(--color-muted-foreground));
3817
+ }
3818
+ .qt-storyteller-warning {
3819
+ font-size: 0.75rem;
3820
+ font-weight: 600;
3821
+ color: var(--qt-storyteller-warning-fg, var(--color-destructive));
3822
+ }
3823
+ .qt-storyteller-actions {
3824
+ display: flex;
3825
+ flex-wrap: wrap;
3826
+ align-items: center;
3827
+ gap: 0.375rem;
3828
+ margin-top: 0.5rem;
3829
+ }
3830
+ .qt-storyteller-summary {
3831
+ display: flex;
3832
+ align-items: center;
3833
+ gap: 0.375rem;
3834
+ margin-bottom: 0.5rem;
3835
+ font-size: 0.75rem;
3836
+ color: var(--qt-storyteller-meta-fg, var(--color-muted-foreground));
3837
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.76",
3
+ "version": "1.0.78",
4
4
  "description": "Storybook preset and stories for developing Quilltap theme plugins",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -2102,21 +2102,15 @@
2102
2102
  hard Stop. Mirrors app/styles/qt-components/_chat.css. */
2103
2103
  .qt-chat-composer-actions {
2104
2104
  display: flex;
2105
+ flex-direction: column;
2105
2106
  align-items: center;
2106
- gap: 0.5rem;
2107
+ gap: 0.375rem;
2107
2108
  flex-shrink: 0;
2108
2109
  }
2109
2110
 
2110
- @media (max-width: 639px) {
2111
- .qt-chat-composer-actions {
2112
- flex-direction: column;
2113
- gap: 0.375rem;
2114
- }
2115
-
2116
- .qt-chat-composer-actions .qt-chat-composer-send {
2117
- height: 2.5rem;
2118
- width: 2.5rem;
2119
- }
2111
+ .qt-chat-composer-actions .qt-chat-composer-send {
2112
+ height: 2.5rem;
2113
+ width: 2.5rem;
2120
2114
  }
2121
2115
 
2122
2116
  .qt-chat-composer-send {
@@ -4604,3 +4598,161 @@
4604
4598
  font-size: 0.625rem;
4605
4599
  opacity: 0.85;
4606
4600
  }
4601
+
4602
+ /**
4603
+ * Storyteller mode — the Salon's turn-mode control and the bidding board.
4604
+ * Mirrors app/styles/qt-components/_storyteller.css.
4605
+ */
4606
+ /* The turn-mode control: Normal / Paused / Storyteller, one segmented row. */
4607
+ .qt-storyteller-mode {
4608
+ display: flex;
4609
+ width: 100%;
4610
+ border: 1px solid var(--qt-storyteller-mode-border, var(--color-border));
4611
+ border-radius: var(--qt-storyteller-mode-radius, 0.5rem);
4612
+ overflow: hidden;
4613
+ }
4614
+
4615
+ .qt-storyteller-mode-option {
4616
+ flex: 1 1 0%;
4617
+ display: flex;
4618
+ align-items: center;
4619
+ justify-content: center;
4620
+ min-width: 0;
4621
+ padding: 0.375rem 0.25rem;
4622
+ font-size: 0.75rem;
4623
+ font-weight: 500;
4624
+ white-space: nowrap;
4625
+ overflow: hidden;
4626
+ text-overflow: ellipsis;
4627
+ cursor: pointer;
4628
+ background: var(--qt-storyteller-mode-bg, var(--color-card));
4629
+ color: var(--qt-storyteller-mode-fg, var(--color-muted-foreground));
4630
+ border: none;
4631
+ transition: background-color 150ms, color 150ms;
4632
+ }
4633
+
4634
+ .qt-storyteller-mode-option + .qt-storyteller-mode-option {
4635
+ border-left: 1px solid var(--qt-storyteller-mode-border, var(--color-border));
4636
+ }
4637
+
4638
+ .qt-storyteller-mode-option:hover {
4639
+ background: var(--qt-storyteller-mode-hover-bg, var(--color-accent));
4640
+ color: var(--qt-storyteller-mode-hover-fg, var(--color-foreground));
4641
+ }
4642
+
4643
+ .qt-storyteller-mode-option-active,
4644
+ .qt-storyteller-mode-option-active:hover {
4645
+ background: var(--qt-storyteller-mode-active-bg, var(--color-primary));
4646
+ color: var(--qt-storyteller-mode-active-fg, var(--color-primary-foreground));
4647
+ }
4648
+
4649
+ .qt-storyteller-mode-option-paused,
4650
+ .qt-storyteller-mode-option-paused:hover {
4651
+ background: var(--qt-status-warning-bg, var(--color-warning));
4652
+ color: var(--qt-status-warning-fg, var(--color-warning-foreground));
4653
+ }
4654
+
4655
+ /* The board: a panel above the composer while a round is open. */
4656
+ .qt-storyteller-board {
4657
+ margin-bottom: 0.5rem;
4658
+ padding: 0.625rem;
4659
+ border: 1px solid var(--qt-storyteller-board-border, var(--color-border));
4660
+ border-radius: var(--qt-storyteller-board-radius, 0.75rem);
4661
+ background: var(--qt-storyteller-board-bg, var(--color-card));
4662
+ color: var(--qt-storyteller-board-fg, var(--color-card-foreground));
4663
+ }
4664
+
4665
+ .qt-storyteller-board-header {
4666
+ display: flex;
4667
+ align-items: center;
4668
+ justify-content: space-between;
4669
+ gap: 0.5rem;
4670
+ margin-bottom: 0.5rem;
4671
+ font-size: 0.8125rem;
4672
+ font-weight: 600;
4673
+ }
4674
+
4675
+ .qt-storyteller-cards {
4676
+ display: grid;
4677
+ grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
4678
+ gap: 0.5rem;
4679
+ max-height: 16rem;
4680
+ overflow-y: auto;
4681
+ }
4682
+
4683
+ .qt-storyteller-card {
4684
+ display: flex;
4685
+ flex-direction: column;
4686
+ gap: 0.375rem;
4687
+ padding: 0.5rem;
4688
+ border: 1px solid var(--qt-storyteller-card-border, var(--color-border));
4689
+ border-radius: var(--qt-storyteller-card-radius, 0.5rem);
4690
+ background: var(--qt-storyteller-card-bg, var(--color-background));
4691
+ font-size: 0.8125rem;
4692
+ }
4693
+
4694
+ .qt-storyteller-card-selected {
4695
+ border-color: var(--qt-storyteller-card-selected-border, var(--color-primary));
4696
+ box-shadow: 0 0 0 1px var(--qt-storyteller-card-selected-border, var(--color-primary));
4697
+ }
4698
+
4699
+ .qt-storyteller-card-act {
4700
+ border-color: var(--qt-storyteller-card-act-border, var(--color-warning));
4701
+ }
4702
+
4703
+ .qt-storyteller-card-destroy {
4704
+ border-color: var(--qt-status-danger-border, var(--color-destructive));
4705
+ background: var(--qt-storyteller-card-destroy-bg, color-mix(in srgb, var(--color-destructive) 10%, var(--color-background)));
4706
+ }
4707
+
4708
+ .qt-storyteller-card-quiet {
4709
+ opacity: 0.65;
4710
+ }
4711
+
4712
+ .qt-storyteller-card-head {
4713
+ display: flex;
4714
+ align-items: center;
4715
+ gap: 0.5rem;
4716
+ }
4717
+
4718
+ .qt-storyteller-card-name {
4719
+ flex: 1 1 0%;
4720
+ min-width: 0;
4721
+ font-weight: 600;
4722
+ overflow: hidden;
4723
+ text-overflow: ellipsis;
4724
+ white-space: nowrap;
4725
+ }
4726
+
4727
+ .qt-storyteller-plan {
4728
+ font-style: italic;
4729
+ color: var(--qt-storyteller-plan-fg, var(--color-foreground));
4730
+ }
4731
+
4732
+ .qt-storyteller-meta {
4733
+ font-size: 0.6875rem;
4734
+ color: var(--qt-storyteller-meta-fg, var(--color-muted-foreground));
4735
+ }
4736
+
4737
+ .qt-storyteller-warning {
4738
+ font-size: 0.75rem;
4739
+ font-weight: 600;
4740
+ color: var(--qt-storyteller-warning-fg, var(--color-destructive));
4741
+ }
4742
+
4743
+ .qt-storyteller-actions {
4744
+ display: flex;
4745
+ flex-wrap: wrap;
4746
+ align-items: center;
4747
+ gap: 0.375rem;
4748
+ margin-top: 0.5rem;
4749
+ }
4750
+
4751
+ .qt-storyteller-summary {
4752
+ display: flex;
4753
+ align-items: center;
4754
+ gap: 0.375rem;
4755
+ margin-bottom: 0.5rem;
4756
+ font-size: 0.75rem;
4757
+ color: var(--qt-storyteller-meta-fg, var(--color-muted-foreground));
4758
+ }