@quilltap/theme-storybook 1.0.89 → 1.0.90

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/dist/index.css CHANGED
@@ -3160,6 +3160,53 @@ body {
3160
3160
  min-width: 0;
3161
3161
  height: 100%;
3162
3162
  }
3163
+ .qt-page-toolbar {
3164
+ display: flex;
3165
+ align-items: center;
3166
+ justify-content: space-between;
3167
+ padding: 0.75rem 1rem;
3168
+ position: sticky;
3169
+ top: 0;
3170
+ z-index: 30;
3171
+ background: var(--qt-app-header-bg);
3172
+ backdrop-filter: var(--qt-app-header-blur);
3173
+ -webkit-backdrop-filter: var(--qt-app-header-blur);
3174
+ }
3175
+ .qt-page-toolbar-left {
3176
+ display: flex;
3177
+ align-items: center;
3178
+ min-width: 2.5rem;
3179
+ }
3180
+ .qt-page-toolbar-center {
3181
+ flex: 1 1 0%;
3182
+ display: flex;
3183
+ justify-content: center;
3184
+ padding-left: 1rem;
3185
+ padding-right: 1rem;
3186
+ max-width: 32rem;
3187
+ }
3188
+ .qt-page-toolbar-right {
3189
+ display: flex;
3190
+ align-items: center;
3191
+ gap: 0.5rem;
3192
+ min-width: 2.5rem;
3193
+ justify-content: flex-end;
3194
+ }
3195
+ @media (min-width: 768px) {
3196
+ .qt-page-toolbar-left {
3197
+ min-width: 0;
3198
+ }
3199
+ }
3200
+ @media (max-width: 639px) {
3201
+ .qt-page-toolbar {
3202
+ flex-wrap: wrap;
3203
+ row-gap: 0.5rem;
3204
+ }
3205
+ .qt-page-toolbar-right {
3206
+ flex-basis: 100%;
3207
+ justify-content: center;
3208
+ }
3209
+ }
3163
3210
  .qt-app-header {
3164
3211
  display: flex;
3165
3212
  align-items: center;
@@ -3728,6 +3775,24 @@ body {
3728
3775
  .qt-tab-divider {
3729
3776
  border-top: 1px solid var(--qt-tab-divider-color);
3730
3777
  }
3778
+ .qt-skip-link {
3779
+ position: absolute;
3780
+ left: 0.5rem;
3781
+ top: -10rem;
3782
+ z-index: 60;
3783
+ padding: 0.5rem 1rem;
3784
+ border-radius: 0.375rem;
3785
+ background: var(--color-primary);
3786
+ color: var(--color-primary-foreground);
3787
+ font-size: 0.875rem;
3788
+ font-weight: 500;
3789
+ text-decoration: none;
3790
+ }
3791
+ .qt-skip-link:focus {
3792
+ top: 0.5rem;
3793
+ outline: 2px solid var(--color-ring);
3794
+ outline-offset: 2px;
3795
+ }
3731
3796
  .qt-tab-strip {
3732
3797
  display: flex;
3733
3798
  align-items: flex-end;
@@ -3770,9 +3835,9 @@ body {
3770
3835
  display: inline-flex;
3771
3836
  align-items: center;
3772
3837
  justify-content: center;
3773
- width: 1.15rem;
3774
- height: 1.15rem;
3775
- margin-left: 0.125rem;
3838
+ width: 1.5rem;
3839
+ height: 1.5rem;
3840
+ margin: -0.175rem -0.25rem -0.175rem 0;
3776
3841
  border-radius: 0.25rem;
3777
3842
  opacity: 0.55;
3778
3843
  transition: opacity 0.15s ease, background 0.15s ease;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quilltap/theme-storybook",
3
- "version": "1.0.89",
3
+ "version": "1.0.90",
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",
@@ -3971,6 +3971,66 @@
3971
3971
  height: 100%;
3972
3972
  }
3973
3973
 
3974
+ /* Page toolbar - top toolbar with search and actions */
3975
+ .qt-page-toolbar {
3976
+ display: flex;
3977
+ align-items: center;
3978
+ justify-content: space-between;
3979
+ padding: 0.75rem 1rem;
3980
+ position: sticky;
3981
+ top: 0;
3982
+ z-index: 30;
3983
+ background: var(--qt-app-header-bg);
3984
+ backdrop-filter: var(--qt-app-header-blur);
3985
+ -webkit-backdrop-filter: var(--qt-app-header-blur);
3986
+ }
3987
+
3988
+ .qt-page-toolbar-left {
3989
+ display: flex;
3990
+ align-items: center;
3991
+ /* Reserve space for hamburger on mobile, empty on desktop */
3992
+ min-width: 2.5rem;
3993
+ }
3994
+
3995
+ .qt-page-toolbar-center {
3996
+ flex: 1 1 0%;
3997
+ display: flex;
3998
+ justify-content: center;
3999
+ padding-left: 1rem;
4000
+ padding-right: 1rem;
4001
+ max-width: 32rem;
4002
+ }
4003
+
4004
+ .qt-page-toolbar-right {
4005
+ display: flex;
4006
+ align-items: center;
4007
+ gap: 0.5rem;
4008
+ /* Balance with left section */
4009
+ min-width: 2.5rem;
4010
+ justify-content: flex-end;
4011
+ }
4012
+
4013
+ /* On desktop, hide the left placeholder when hamburger is hidden */
4014
+ @media (min-width: 768px) {
4015
+ .qt-page-toolbar-left {
4016
+ min-width: 0;
4017
+ }
4018
+ }
4019
+
4020
+ /* Phone widths: the queue badges take a row of their own rather than
4021
+ sliding under the search button (WCAG 1.4.10 reflow). */
4022
+ @media (max-width: 639px) {
4023
+ .qt-page-toolbar {
4024
+ flex-wrap: wrap;
4025
+ row-gap: 0.5rem;
4026
+ }
4027
+
4028
+ .qt-page-toolbar-right {
4029
+ flex-basis: 100%;
4030
+ justify-content: center;
4031
+ }
4032
+ }
4033
+
3974
4034
  .qt-app-header {
3975
4035
  display: flex;
3976
4036
  align-items: center;
@@ -4701,6 +4761,27 @@
4701
4761
  border-top: 1px solid var(--qt-tab-divider-color);
4702
4762
  }
4703
4763
 
4764
+ /* Skip link - first stop for the keyboard, hidden until focused (WCAG 2.4.1) */
4765
+ .qt-skip-link {
4766
+ position: absolute;
4767
+ left: 0.5rem;
4768
+ top: -10rem;
4769
+ z-index: 60; /* above the sticky toolbar and the sidebar rail */
4770
+ padding: 0.5rem 1rem;
4771
+ border-radius: 0.375rem;
4772
+ background: var(--color-primary);
4773
+ color: var(--color-primary-foreground);
4774
+ font-size: 0.875rem;
4775
+ font-weight: 500;
4776
+ text-decoration: none;
4777
+ }
4778
+
4779
+ .qt-skip-link:focus {
4780
+ top: 0.5rem;
4781
+ outline: 2px solid var(--color-ring);
4782
+ outline-offset: 2px;
4783
+ }
4784
+
4704
4785
  /* ==========================================================================
4705
4786
  WORKSPACE (tabbed two-pane shell — strip, divider, drop-zone)
4706
4787
 
@@ -4761,9 +4842,10 @@
4761
4842
  display: inline-flex;
4762
4843
  align-items: center;
4763
4844
  justify-content: center;
4764
- width: 1.15rem;
4765
- height: 1.15rem;
4766
- margin-left: 0.125rem;
4845
+ /* 24px: the WCAG 2.5.8 minimum target. The negative margin keeps the tab's footprint. */
4846
+ width: 1.5rem;
4847
+ height: 1.5rem;
4848
+ margin: -0.175rem -0.25rem -0.175rem 0;
4767
4849
  border-radius: 0.25rem;
4768
4850
  opacity: 0.55;
4769
4851
  transition: opacity 0.15s ease, background 0.15s ease;