@starci/grammar 0.4.3 → 0.4.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.
- package/dist/common/registry.d.ts +2 -2
- package/dist/common/renderers.d.ts +2 -2
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/styles.css +640 -14
- package/dist/core/branch/MarkdownArticle/classNames.d.ts +9 -4
- package/dist/core/branch/MarkdownArticle/classNames.d.ts.map +1 -1
- package/dist/core/branch/MarkdownArticle/classNames.js +9 -4
- package/dist/core/branch/MarkdownArticle/classNames.js.map +1 -1
- package/dist/core/branch/Rail/classNames.d.ts +8 -4
- package/dist/core/branch/Rail/classNames.d.ts.map +1 -1
- package/dist/core/branch/Rail/classNames.js +8 -4
- package/dist/core/branch/Rail/classNames.js.map +1 -1
- package/dist/core/branch/Rail/index.d.ts.map +1 -1
- package/dist/core/branch/Rail/index.js +1 -2
- package/dist/core/branch/Rail/index.js.map +1 -1
- package/dist/core/branch/Subnav/classNames.d.ts +14 -7
- package/dist/core/branch/Subnav/classNames.d.ts.map +1 -1
- package/dist/core/branch/Subnav/classNames.js +14 -7
- package/dist/core/branch/Subnav/classNames.js.map +1 -1
- package/dist/core/branch/Subnav/index.d.ts.map +1 -1
- package/dist/core/branch/Subnav/index.js +2 -2
- package/dist/core/branch/Subnav/index.js.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts +16 -8
- package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/classNames.js +17 -9
- package/dist/core/branch/SurfaceAccordionCard/classNames.js.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.js +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceCard/classNames.d.ts +16 -7
- package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/classNames.js +17 -8
- package/dist/core/branch/SurfaceCard/classNames.js.map +1 -1
- package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/index.js +6 -2
- package/dist/core/branch/SurfaceCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceListCard/classNames.d.ts +14 -7
- package/dist/core/branch/SurfaceListCard/classNames.d.ts.map +1 -1
- package/dist/core/branch/SurfaceListCard/classNames.js +14 -7
- package/dist/core/branch/SurfaceListCard/classNames.js.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.d.ts +11 -0
- package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.js +2 -2
- package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
- package/dist/core/classNames.d.ts +3 -5
- package/dist/core/classNames.d.ts.map +1 -1
- package/dist/core/classNames.js +3 -5
- package/dist/core/classNames.js.map +1 -1
- package/dist/core/composite/EmptyNotice/index.js +1 -1
- package/dist/core/composite/EmptyNotice/index.js.map +1 -1
- package/dist/core/composite/StaticStateRow/index.d.ts +11 -0
- package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -1
- package/dist/core/composite/StaticStateRow/index.js +1 -1
- package/dist/core/composite/StaticStateRow/index.js.map +1 -1
- package/dist/core/composition/ChatWorkspace/classNames.d.ts +16 -9
- package/dist/core/composition/ChatWorkspace/classNames.d.ts.map +1 -1
- package/dist/core/composition/ChatWorkspace/classNames.js +21 -14
- package/dist/core/composition/ChatWorkspace/classNames.js.map +1 -1
- package/dist/core/composition/NavigationFeatureNav/classNames.d.ts +13 -8
- package/dist/core/composition/NavigationFeatureNav/classNames.d.ts.map +1 -1
- package/dist/core/composition/NavigationFeatureNav/classNames.js +13 -8
- package/dist/core/composition/NavigationFeatureNav/classNames.js.map +1 -1
- package/dist/core/composition/NavigationFeatureNav/index.d.ts +16 -2
- package/dist/core/composition/NavigationFeatureNav/index.d.ts.map +1 -1
- package/dist/core/composition/NavigationFeatureNav/index.js +2 -2
- package/dist/core/composition/NavigationFeatureNav/index.js.map +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.d.ts +7 -1
- package/dist/core/composition/PrimaryRailLayout/index.d.ts.map +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.js +1 -1
- package/dist/core/composition/PrimaryRailLayout/index.js.map +1 -1
- package/dist/core/dna.d.ts +27 -0
- package/dist/core/dna.d.ts.map +1 -1
- package/dist/core/dna.js +26 -0
- package/dist/core/dna.js.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/primitive/Button/index.d.ts +10 -0
- package/dist/core/primitive/Button/index.d.ts.map +1 -1
- package/dist/core/primitive/Button/index.js +3 -3
- package/dist/core/primitive/Button/index.js.map +1 -1
- package/dist/core/primitive/Divider/index.js +1 -1
- package/dist/core/primitive/Divider/index.js.map +1 -1
- package/dist/core/primitive/Icon/index.d.ts.map +1 -1
- package/dist/core/primitive/Icon/index.js +8 -7
- package/dist/core/primitive/Icon/index.js.map +1 -1
- package/dist/core/primitive/IconButton/index.d.ts.map +1 -1
- package/dist/core/primitive/IconButton/index.js +7 -5
- package/dist/core/primitive/IconButton/index.js.map +1 -1
- package/dist/core/primitive/IconTile/index.d.ts.map +1 -1
- package/dist/core/primitive/IconTile/index.js +7 -12
- package/dist/core/primitive/IconTile/index.js.map +1 -1
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +4 -4
- package/dist/core/primitive/Input/index.js.map +1 -1
- package/dist/core/primitive/Label/classNames.d.ts +10 -6
- package/dist/core/primitive/Label/classNames.d.ts.map +1 -1
- package/dist/core/primitive/Label/classNames.js +10 -6
- package/dist/core/primitive/Label/classNames.js.map +1 -1
- package/dist/core/primitive/Label/index.js +1 -1
- package/dist/core/primitive/Label/index.js.map +1 -1
- package/dist/core/primitive/Progress/index.d.ts.map +1 -1
- package/dist/core/primitive/Progress/index.js +6 -2
- package/dist/core/primitive/Progress/index.js.map +1 -1
- package/dist/core/primitive/Text/index.d.ts +8 -1
- package/dist/core/primitive/Text/index.d.ts.map +1 -1
- package/dist/core/primitive/Text/index.js +16 -20
- package/dist/core/primitive/Text/index.js.map +1 -1
- package/dist/core/primitive/TextAction/index.d.ts.map +1 -1
- package/dist/core/primitive/TextAction/index.js +24 -23
- package/dist/core/primitive/TextAction/index.js.map +1 -1
- package/dist/core/primitive/actionStyles.d.ts +10 -2
- package/dist/core/primitive/actionStyles.d.ts.map +1 -1
- package/dist/core/primitive/actionStyles.js +10 -18
- package/dist/core/primitive/actionStyles.js.map +1 -1
- package/package.json +2 -2
package/dist/common/styles.css
CHANGED
|
@@ -390,6 +390,14 @@
|
|
|
390
390
|
.starci-core-label {
|
|
391
391
|
min-width: 0;
|
|
392
392
|
margin: 0;
|
|
393
|
+
font-size: 0.875rem;
|
|
394
|
+
font-weight: 600;
|
|
395
|
+
line-height: 1.25rem;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.starci-core-label[data-grammar-label-depth="nested"] {
|
|
399
|
+
font-size: 0.75rem;
|
|
400
|
+
line-height: 1rem;
|
|
393
401
|
}
|
|
394
402
|
|
|
395
403
|
.starci-core-tooltip {
|
|
@@ -600,6 +608,7 @@
|
|
|
600
608
|
.starci-core-leading-number {
|
|
601
609
|
display: inline-block;
|
|
602
610
|
flex: none;
|
|
611
|
+
font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
|
|
603
612
|
min-width: 1.25rem;
|
|
604
613
|
color: var(--muted, GrayText);
|
|
605
614
|
font-size: 0.875rem;
|
|
@@ -622,11 +631,63 @@
|
|
|
622
631
|
}
|
|
623
632
|
|
|
624
633
|
.starci-core-owned-collection {
|
|
634
|
+
width: 100%;
|
|
625
635
|
min-width: 0;
|
|
626
636
|
}
|
|
627
637
|
|
|
638
|
+
/* A verdict list is flush inside its shell; the shell already owns the corner. */
|
|
639
|
+
.starci-core-owned-collection[data-grammar-collection="verdict"] {
|
|
640
|
+
border-radius: 0 !important;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/*
|
|
644
|
+
* THE VERDICT EDGE IS SHIPPED.
|
|
645
|
+
*
|
|
646
|
+
* A row in a verdict collection reports an outcome, and the outcome is drawn as a 2px edge on
|
|
647
|
+
* the row's leading side. The collection already squares its corners for exactly these rows;
|
|
648
|
+
* this is the paint the squaring was preparing for, and without it an application had to reach
|
|
649
|
+
* across the Grammar boundary with its own inset shadow to get it.
|
|
650
|
+
*
|
|
651
|
+
* It is an INSET SHADOW, not a border and not a padded rule, because the rows of a verdict
|
|
652
|
+
* collection are usually the consumer's own children: a border would move their content two
|
|
653
|
+
* pixels and a padding would fight the inset they already own, while a shadow paints inside the
|
|
654
|
+
* box that is already there. The row is addressed by `data-verdict`, which is the slot contract
|
|
655
|
+
* `SurfaceListCard` documents for its collection, so a Grammar row and an application row draw
|
|
656
|
+
* the same edge from the same attribute.
|
|
657
|
+
*
|
|
658
|
+
* The offset is physical because `box-shadow` has no logical form; under `dir="rtl"` the edge
|
|
659
|
+
* stays on the left. No shipped object mirrors yet, so this is consistent rather than a new gap.
|
|
660
|
+
*/
|
|
661
|
+
.starci-core-owned-collection[data-grammar-collection="verdict"] [data-verdict="success"],
|
|
662
|
+
.starci-core-static-row[data-verdict="success"] {
|
|
663
|
+
--starci-core-verdict-edge: inset 2px 0 0 0 var(--success, var(--starci-core-success, #15803d));
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.starci-core-owned-collection[data-grammar-collection="verdict"] [data-verdict="danger"],
|
|
667
|
+
.starci-core-static-row[data-verdict="danger"] {
|
|
668
|
+
--starci-core-verdict-edge: inset 2px 0 0 0 var(--danger, var(--starci-core-danger, #b91c1c));
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
/*
|
|
672
|
+
* The edge is painted from that one property, including under hover.
|
|
673
|
+
*
|
|
674
|
+
* A hover-invariant list clears every row shadow below, which is right for decoration and wrong
|
|
675
|
+
* for a verdict: an outcome that disappears while the pointer rests on its row is a worse row
|
|
676
|
+
* than one that never drew it. Reading the same property in both places keeps one value.
|
|
677
|
+
*/
|
|
678
|
+
.starci-core-owned-collection[data-grammar-collection="verdict"] [data-verdict="success"],
|
|
679
|
+
.starci-core-owned-collection[data-grammar-collection="verdict"] [data-verdict="danger"],
|
|
680
|
+
.starci-core-static-row[data-verdict="success"],
|
|
681
|
+
.starci-core-static-row[data-verdict="danger"],
|
|
682
|
+
.starci-core-list-shell[data-grammar-hover="invariant"] .starci-core-static-row[data-verdict="success"]:hover,
|
|
683
|
+
.starci-core-list-shell[data-grammar-hover="invariant"] .starci-core-static-row[data-verdict="danger"]:hover {
|
|
684
|
+
box-shadow: var(--starci-core-verdict-edge, none);
|
|
685
|
+
}
|
|
686
|
+
|
|
628
687
|
.starci-core-surface-footer {
|
|
688
|
+
display: flex;
|
|
629
689
|
min-width: 0;
|
|
690
|
+
align-items: center;
|
|
630
691
|
}
|
|
631
692
|
|
|
632
693
|
.starci-core-tabs-frame,
|
|
@@ -721,31 +782,50 @@
|
|
|
721
782
|
}
|
|
722
783
|
|
|
723
784
|
.starci-core-accordion-row {
|
|
785
|
+
width: 100% !important;
|
|
786
|
+
min-width: 0;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
/* HeroUI's `Accordion` root sizes itself; the Grammar shell owns the measure. */
|
|
790
|
+
.starci-core-accordion-root {
|
|
791
|
+
width: 100% !important;
|
|
792
|
+
min-width: 0;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
.starci-core-accordion-scroll-region {
|
|
724
796
|
width: 100%;
|
|
725
797
|
min-width: 0;
|
|
726
798
|
}
|
|
727
799
|
|
|
800
|
+
/* Expanded content starts flush beneath its trigger, keeping the bottom and inline insets. */
|
|
801
|
+
.starci-core-accordion-body {
|
|
802
|
+
width: 100% !important;
|
|
803
|
+
min-width: 0;
|
|
804
|
+
padding: 0 1rem 0.75rem 1.5rem !important;
|
|
805
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
806
|
+
}
|
|
807
|
+
|
|
728
808
|
.starci-core-accordion-row + .starci-core-accordion-row {
|
|
729
809
|
border-top: 1px solid var(--separator, var(--border, GrayText));
|
|
730
810
|
}
|
|
731
811
|
|
|
732
812
|
.starci-core-accordion-heading {
|
|
733
|
-
margin: 0;
|
|
813
|
+
margin: 0 !important;
|
|
734
814
|
}
|
|
735
815
|
|
|
736
816
|
.starci-core-accordion-trigger {
|
|
737
817
|
display: block;
|
|
738
|
-
width: 100
|
|
818
|
+
width: 100% !important;
|
|
739
819
|
min-width: 0;
|
|
740
820
|
min-height: 44px;
|
|
741
|
-
padding: var(--starci-core-row-inset, 1rem);
|
|
821
|
+
padding: var(--starci-core-row-inset, 1rem) !important;
|
|
742
822
|
border: 0;
|
|
743
823
|
background: transparent;
|
|
744
824
|
box-shadow: none;
|
|
745
825
|
color: inherit;
|
|
746
826
|
cursor: pointer;
|
|
747
827
|
font: inherit;
|
|
748
|
-
text-align: left;
|
|
828
|
+
text-align: left !important;
|
|
749
829
|
transform: none;
|
|
750
830
|
transition: none;
|
|
751
831
|
}
|
|
@@ -776,10 +856,11 @@
|
|
|
776
856
|
}
|
|
777
857
|
}
|
|
778
858
|
|
|
859
|
+
/* The animated vendor region owns no inset, so a closed panel collapses to zero height. */
|
|
779
860
|
.starci-core-accordion-panel {
|
|
780
|
-
width: 100
|
|
861
|
+
width: 100% !important;
|
|
781
862
|
min-width: 0;
|
|
782
|
-
padding: 0
|
|
863
|
+
padding: 0 !important;
|
|
783
864
|
}
|
|
784
865
|
|
|
785
866
|
.starci-core-markdown-article {
|
|
@@ -875,6 +956,7 @@
|
|
|
875
956
|
width: 100%;
|
|
876
957
|
min-width: 0;
|
|
877
958
|
margin: 0 0 1rem;
|
|
959
|
+
overflow: auto;
|
|
878
960
|
}
|
|
879
961
|
|
|
880
962
|
.starci-core-fenced-code-header {
|
|
@@ -1005,25 +1087,41 @@
|
|
|
1005
1087
|
max-width: var(--starci-core-rail-wide, 24rem);
|
|
1006
1088
|
}
|
|
1007
1089
|
|
|
1090
|
+
/*
|
|
1091
|
+
* A sticky rail starts where the band stops.
|
|
1092
|
+
*
|
|
1093
|
+
* `--starci-core-rail-offset` is still the one a consumer sets; when it does not, the rail reads
|
|
1094
|
+
* the offset the sticky band publishes about itself, and only when there is no band at all does
|
|
1095
|
+
* it fall back to the 5.5rem it always used. So `mode="sticky"` under a Grammar band needs no
|
|
1096
|
+
* `calc()` at the call site, and a rail with no band above it is unchanged.
|
|
1097
|
+
*/
|
|
1008
1098
|
.starci-core-rail-frame {
|
|
1009
1099
|
display: flex;
|
|
1010
1100
|
min-width: 0;
|
|
1011
|
-
max-height: calc(100dvh - var(--starci-core-rail-offset, 5.5rem) - 1.5rem);
|
|
1101
|
+
max-height: calc(100dvh - var(--starci-core-rail-offset, var(--starci-core-band-offset, 5.5rem)) - 1.5rem);
|
|
1012
1102
|
flex-direction: column;
|
|
1013
1103
|
gap: var(--starci-core-rail-gap, 1rem);
|
|
1014
1104
|
}
|
|
1015
1105
|
|
|
1016
1106
|
.starci-core-rail[data-grammar-rail-mode="sticky"] .starci-core-rail-frame {
|
|
1017
1107
|
position: sticky;
|
|
1018
|
-
top: var(--starci-core-rail-offset, 5.5rem);
|
|
1108
|
+
top: var(--starci-core-rail-offset, var(--starci-core-band-offset, 5.5rem));
|
|
1019
1109
|
}
|
|
1020
1110
|
|
|
1021
1111
|
.starci-core-rail-body {
|
|
1112
|
+
min-width: 0;
|
|
1022
1113
|
min-height: 0;
|
|
1114
|
+
flex: 1 1 0%;
|
|
1023
1115
|
overflow-y: auto;
|
|
1024
1116
|
overscroll-behavior: contain;
|
|
1025
1117
|
}
|
|
1026
1118
|
|
|
1119
|
+
/* Grammar-owned content inset, selected by the attribute the branch already emits. */
|
|
1120
|
+
.starci-core-rail-body[data-grammar-rail-inset="content"] {
|
|
1121
|
+
padding-inline: 0.75rem;
|
|
1122
|
+
padding-block: 1.5rem;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1027
1125
|
.starci-core-rail[data-grammar-rail-height="fill"],
|
|
1028
1126
|
.starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-frame,
|
|
1029
1127
|
.starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-body {
|
|
@@ -1041,6 +1139,8 @@
|
|
|
1041
1139
|
}
|
|
1042
1140
|
|
|
1043
1141
|
.starci-core-rail-footer {
|
|
1142
|
+
display: flex;
|
|
1143
|
+
align-items: center;
|
|
1044
1144
|
flex: none;
|
|
1045
1145
|
}
|
|
1046
1146
|
|
|
@@ -1070,6 +1170,11 @@
|
|
|
1070
1170
|
.starci-core-primary-rail-layout {
|
|
1071
1171
|
grid-template-columns: minmax(0, 1fr);
|
|
1072
1172
|
}
|
|
1173
|
+
|
|
1174
|
+
/* Collapsed, the rail may lead - a filter or summary a reader needs before the content. */
|
|
1175
|
+
.starci-core-primary-rail-layout[data-grammar-layout-collapsed-order="rail-first"] .starci-core-rail-region {
|
|
1176
|
+
order: -1;
|
|
1177
|
+
}
|
|
1073
1178
|
}
|
|
1074
1179
|
|
|
1075
1180
|
@container starci-core-primary-rail (max-width: 32rem) {
|
|
@@ -1110,6 +1215,40 @@
|
|
|
1110
1215
|
top: 0;
|
|
1111
1216
|
}
|
|
1112
1217
|
|
|
1218
|
+
/*
|
|
1219
|
+
* THE BAND PUBLISHES ITS OWN HEIGHT.
|
|
1220
|
+
*
|
|
1221
|
+
* A page under a sticky band needs exactly one number - where the band stops - to pin a rail
|
|
1222
|
+
* beneath it, and until now every consumer RESTATED that number: `calc(4rem + 1px)` for the
|
|
1223
|
+
* primary row and its separator, `calc(4rem + 2rem + 1px)` once a feature layer is stacked.
|
|
1224
|
+
* Restated geometry is wrong the moment the band changes, so the band publishes it instead.
|
|
1225
|
+
*
|
|
1226
|
+
* It is published with `:has()` on the Grammar root, not measured in JS, because presence and
|
|
1227
|
+
* stacking are already spelled by the data attributes these compositions emit, and a custom
|
|
1228
|
+
* property set on the root inherits to every page inside it. The root - not `:root` - keeps the
|
|
1229
|
+
* package inside its own boundary, which is the same reason no rule here touches the document.
|
|
1230
|
+
*
|
|
1231
|
+
* NOTHING is defined when no sticky band is present, so `var(--starci-core-band-offset, X)`
|
|
1232
|
+
* still resolves to a consumer's own X exactly as it did before this property existed.
|
|
1233
|
+
*/
|
|
1234
|
+
.grammar-common-root:has(.starci-core-navigation-feature-nav[data-grammar-navigation-feature-nav-position="sticky"]),
|
|
1235
|
+
.grammar-common-root:has(.starci-core-subnav[data-grammar-subnav-position="sticky"]) {
|
|
1236
|
+
--starci-core-band-offset: calc(var(--starci-core-band-height, 0rem) + var(--starci-core-band-subnav-height, 0rem));
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
.grammar-common-root:has(.starci-core-navigation-feature-nav[data-grammar-navigation-feature-nav-position="sticky"]) {
|
|
1240
|
+
--starci-core-band-height: calc(4rem + 1px);
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
.grammar-common-root:has(.starci-core-navigation-feature-nav[data-grammar-navigation-feature-nav-position="sticky"][data-grammar-navigation-feature-nav-layers="two"]) {
|
|
1244
|
+
--starci-core-band-height: calc(4rem + 2rem + 1px);
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
/* A sticky Subnav stacks under the band, so it adds its own height and separator to the offset. */
|
|
1248
|
+
.grammar-common-root:has(.starci-core-subnav[data-grammar-subnav-position="sticky"]) {
|
|
1249
|
+
--starci-core-band-subnav-height: calc(3.25rem + 1px);
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1113
1252
|
.starci-core-navigation-feature-nav-primary {
|
|
1114
1253
|
display: grid !important;
|
|
1115
1254
|
min-height: 4rem;
|
|
@@ -1135,6 +1274,14 @@
|
|
|
1135
1274
|
display: none !important;
|
|
1136
1275
|
}
|
|
1137
1276
|
|
|
1277
|
+
/*
|
|
1278
|
+
* A bar with no primary destinations renders no `nav` at all, so the grid loses a track rather
|
|
1279
|
+
* than keeping an empty one: identity leads, the remaining row belongs to what is still there.
|
|
1280
|
+
*/
|
|
1281
|
+
.starci-core-navigation-feature-nav[data-grammar-navigation-feature-nav-destinations="absent"] .starci-core-navigation-feature-nav-primary {
|
|
1282
|
+
grid-template-columns: minmax(0, 1fr) auto !important;
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1138
1285
|
.starci-core-navigation-feature-nav-compact-navigation {
|
|
1139
1286
|
display: block !important;
|
|
1140
1287
|
}
|
|
@@ -1204,7 +1351,8 @@
|
|
|
1204
1351
|
.starci-core-subnav[data-grammar-subnav-position="sticky"] {
|
|
1205
1352
|
position: sticky;
|
|
1206
1353
|
z-index: var(--starci-core-subnav-z, 40);
|
|
1207
|
-
|
|
1354
|
+
/* The band's own published height, so a stacked Subnav no longer needs a consumer's calc. */
|
|
1355
|
+
top: var(--starci-core-subnav-offset, var(--starci-core-band-height, 4rem));
|
|
1208
1356
|
backface-visibility: hidden;
|
|
1209
1357
|
transform: translateZ(0);
|
|
1210
1358
|
will-change: transform;
|
|
@@ -1232,20 +1380,36 @@
|
|
|
1232
1380
|
white-space: nowrap;
|
|
1233
1381
|
}
|
|
1234
1382
|
|
|
1383
|
+
/*
|
|
1384
|
+
* The toggle is a HeroUI `Button`, whose own fill, corner and shadow live in the vendor's
|
|
1385
|
+
* `components` layer - declared after `starci-grammar-common`, so it wins every normal
|
|
1386
|
+
* declaration here regardless of specificity. These are the ones the utilities used to carry,
|
|
1387
|
+
* so they are the ones that have to be important - the 2.75rem target included, because the
|
|
1388
|
+
* vendor sizes its own button and a consumer was re-forcing `size-11` to get the target back.
|
|
1389
|
+
*/
|
|
1235
1390
|
.starci-core-subnav-toggle {
|
|
1236
1391
|
display: inline-flex;
|
|
1237
|
-
width: 2.75rem;
|
|
1238
|
-
height: 2.75rem;
|
|
1392
|
+
width: 2.75rem !important;
|
|
1393
|
+
height: 2.75rem !important;
|
|
1239
1394
|
align-items: center;
|
|
1240
1395
|
justify-content: center;
|
|
1241
|
-
border-radius: 0;
|
|
1242
|
-
background: transparent;
|
|
1243
|
-
box-shadow: none;
|
|
1396
|
+
border-radius: 0 !important;
|
|
1397
|
+
background: transparent !important;
|
|
1398
|
+
box-shadow: none !important;
|
|
1244
1399
|
color: inherit;
|
|
1245
1400
|
cursor: pointer;
|
|
1246
1401
|
}
|
|
1247
1402
|
|
|
1403
|
+
.starci-core-subnav-toggle:hover,
|
|
1404
|
+
.starci-core-subnav-toggle[data-hovered="true"] {
|
|
1405
|
+
background: transparent !important;
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1248
1408
|
@media (min-width: 48rem) {
|
|
1409
|
+
.starci-core-navigation-feature-nav[data-grammar-navigation-feature-nav-destinations="absent"] .starci-core-navigation-feature-nav-primary {
|
|
1410
|
+
grid-template-columns: auto minmax(0, 1fr) !important;
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1249
1413
|
.starci-core-navigation-feature-nav-primary {
|
|
1250
1414
|
grid-template-columns: auto minmax(0, 1fr) auto !important;
|
|
1251
1415
|
}
|
|
@@ -1263,6 +1427,11 @@
|
|
|
1263
1427
|
.starci-core-subnav[data-grammar-subnav-visibility="compact"] {
|
|
1264
1428
|
display: none;
|
|
1265
1429
|
}
|
|
1430
|
+
|
|
1431
|
+
/* A compact Subnav is not on screen here, so it contributes no height to the band offset. */
|
|
1432
|
+
.grammar-common-root:has(.starci-core-subnav[data-grammar-subnav-position="sticky"][data-grammar-subnav-visibility="compact"]) {
|
|
1433
|
+
--starci-core-band-subnav-height: 0rem;
|
|
1434
|
+
}
|
|
1266
1435
|
}
|
|
1267
1436
|
|
|
1268
1437
|
.starci-core-workspace-shell {
|
|
@@ -1815,5 +1984,462 @@
|
|
|
1815
1984
|
scroll-behavior: auto;
|
|
1816
1985
|
}
|
|
1817
1986
|
}
|
|
1987
|
+
|
|
1988
|
+
/*
|
|
1989
|
+
* ============================================================================================
|
|
1990
|
+
* SHIPPED OBJECT GEOMETRY (0.4.4)
|
|
1991
|
+
* ============================================================================================
|
|
1992
|
+
*
|
|
1993
|
+
* Everything below used to be a Tailwind utility string inside a Grammar component or its
|
|
1994
|
+
* `classNames.ts`. A class only exists if the CONSUMER's Tailwind build scanned the file that
|
|
1995
|
+
* spells it, and almost nobody scans `node_modules/@starci/grammar` - so those objects arrived
|
|
1996
|
+
* in a consuming app with no box at all. The utilities are gone; the box lives here, selected
|
|
1997
|
+
* by the data attributes each component already emits.
|
|
1998
|
+
*
|
|
1999
|
+
* `!important` appears ONLY where the class lands on a HeroUI part - `Card`, `Accordion`,
|
|
2000
|
+
* `Button`, `TextField`, `Input`, `Skeleton`, `ProgressBar`, `ScrollShadow` - whose own rules
|
|
2001
|
+
* live in the vendor's `components` layer. That layer is declared AFTER `starci-grammar-common`
|
|
2002
|
+
* and therefore wins every normal declaration regardless of specificity; an important
|
|
2003
|
+
* declaration in the earlier layer is the only thing that reproduces what the utilities did.
|
|
2004
|
+
* Corners come from the theme radius ramp (`--radius-*`), never from a HeroUI v2 radius name
|
|
2005
|
+
* such as `rounded-large`, which emits nothing anywhere.
|
|
2006
|
+
*/
|
|
2007
|
+
|
|
2008
|
+
/* --- Surface card: the card, its label row and its content shell are HeroUI `Card` parts. --- */
|
|
2009
|
+
.starci-core-surface-card {
|
|
2010
|
+
display: flex !important;
|
|
2011
|
+
width: 100% !important;
|
|
2012
|
+
min-width: 0;
|
|
2013
|
+
flex-direction: column !important;
|
|
2014
|
+
gap: var(--starci-core-section-gap, 0.75rem) !important;
|
|
2015
|
+
}
|
|
2016
|
+
|
|
2017
|
+
.starci-core-surface-label {
|
|
2018
|
+
padding: 0 !important;
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
.starci-core-surface {
|
|
2022
|
+
padding: 0 !important;
|
|
2023
|
+
}
|
|
2024
|
+
|
|
2025
|
+
.starci-core-surface-highlight {
|
|
2026
|
+
position: relative;
|
|
2027
|
+
height: 100%;
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
/* --- Surface list --- */
|
|
2031
|
+
.starci-core-surface-fact {
|
|
2032
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2033
|
+
font-size: 0.875rem;
|
|
2034
|
+
line-height: 1.25rem;
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
.starci-core-surface-fact[data-grammar-surface-depth="nested"] {
|
|
2038
|
+
font-size: 0.75rem;
|
|
2039
|
+
line-height: 1rem;
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
/* --- Empty notice --- */
|
|
2043
|
+
.starci-core-empty-notice {
|
|
2044
|
+
display: flex;
|
|
2045
|
+
min-width: 0;
|
|
2046
|
+
flex-direction: column;
|
|
2047
|
+
align-items: center;
|
|
2048
|
+
gap: 0.75rem;
|
|
2049
|
+
padding: 1rem;
|
|
2050
|
+
text-align: center;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
/* --- Divider --- */
|
|
2054
|
+
.starci-core-divider {
|
|
2055
|
+
display: flex;
|
|
2056
|
+
min-width: 0;
|
|
2057
|
+
flex-direction: row;
|
|
2058
|
+
align-items: center;
|
|
2059
|
+
gap: 0.75rem;
|
|
2060
|
+
}
|
|
2061
|
+
|
|
2062
|
+
.starci-core-divider-rule {
|
|
2063
|
+
height: 1px;
|
|
2064
|
+
flex: 1 1 0%;
|
|
2065
|
+
background: var(--border, var(--separator, var(--starci-core-separator, GrayText)));
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
/* --- Icon: an app-owned SVG has no intrinsic box, so usage sizing must ship. --- */
|
|
2069
|
+
.starci-core-icon {
|
|
2070
|
+
flex: none;
|
|
2071
|
+
}
|
|
2072
|
+
|
|
2073
|
+
.starci-core-icon[data-usage="heading"] {
|
|
2074
|
+
width: 1.5rem;
|
|
2075
|
+
height: 1.5rem;
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
.starci-core-icon[data-usage="leading"] {
|
|
2079
|
+
width: 1.25rem;
|
|
2080
|
+
height: 1.25rem;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
.starci-core-icon[data-usage="chip"] {
|
|
2084
|
+
width: 1rem;
|
|
2085
|
+
height: 1rem;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
2088
|
+
.starci-core-icon-skeleton {
|
|
2089
|
+
display: inline-block;
|
|
2090
|
+
width: 1.25rem !important;
|
|
2091
|
+
height: 1.25rem !important;
|
|
2092
|
+
flex: none;
|
|
2093
|
+
border-radius: var(--starci-core-pill-radius, 999px) !important;
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
/* --- Icon button: a HeroUI `Button` worn as a circle. --- */
|
|
2097
|
+
.starci-core-icon-button {
|
|
2098
|
+
border-radius: var(--starci-core-pill-radius, 999px) !important;
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2101
|
+
/* --- Icon tile --- */
|
|
2102
|
+
.starci-core-icon-tile {
|
|
2103
|
+
display: inline-flex;
|
|
2104
|
+
flex: none;
|
|
2105
|
+
align-items: center;
|
|
2106
|
+
justify-content: center;
|
|
2107
|
+
overflow: hidden;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
.starci-core-icon-tile[data-size="sm"] {
|
|
2111
|
+
width: 2rem;
|
|
2112
|
+
height: 2rem;
|
|
2113
|
+
border-radius: var(--radius-lg, var(--radius, 0.5rem));
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2116
|
+
.starci-core-icon-tile[data-size="md"] {
|
|
2117
|
+
width: 2.5rem;
|
|
2118
|
+
height: 2.5rem;
|
|
2119
|
+
border-radius: var(--radius-xl, calc(var(--radius, 0.5rem) * 1.5));
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
/* A tone pair is painted only when the plate draws its own glyph. */
|
|
2123
|
+
.starci-core-icon-tile[data-tone="neutral"][data-artwork="false"][data-loading="false"] {
|
|
2124
|
+
background: var(--default, var(--starci-core-surface-secondary, Canvas));
|
|
2125
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2128
|
+
.starci-core-icon-tile[data-tone="accent"][data-artwork="false"][data-loading="false"] {
|
|
2129
|
+
background: var(--accent-soft, var(--starci-core-accent, Highlight));
|
|
2130
|
+
color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
.starci-core-icon-tile[data-tone="success"][data-artwork="false"][data-loading="false"] {
|
|
2134
|
+
background: var(--success-soft, var(--success, Canvas));
|
|
2135
|
+
color: var(--success-soft-foreground, var(--success-foreground, CanvasText));
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
.starci-core-icon-tile[data-tone="warning"][data-artwork="false"][data-loading="false"] {
|
|
2139
|
+
background: var(--warning-soft, var(--warning, Canvas));
|
|
2140
|
+
color: var(--warning-soft-foreground, var(--warning-foreground, CanvasText));
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
.starci-core-icon-tile[data-tone="danger"][data-artwork="false"][data-loading="false"] {
|
|
2144
|
+
background: var(--danger-soft, var(--danger, Canvas));
|
|
2145
|
+
color: var(--danger-soft-foreground, var(--danger-foreground, CanvasText));
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
/* --- Progress: a HeroUI `ProgressBar`, and a resting bar of the same measure. --- */
|
|
2149
|
+
.starci-core-progress {
|
|
2150
|
+
width: 100% !important;
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
.starci-core-progress[data-loading="true"] {
|
|
2154
|
+
display: block;
|
|
2155
|
+
height: 0.5rem !important;
|
|
2156
|
+
}
|
|
2157
|
+
|
|
2158
|
+
/*
|
|
2159
|
+
* --- Input ---
|
|
2160
|
+
*
|
|
2161
|
+
* The reveal toggle sits on top of the control, so the field RESERVES room for it rather than
|
|
2162
|
+
* letting the value slide underneath. That inset used to be spelled `pr-9`, a utility no app in
|
|
2163
|
+
* this repository writes, so it was generated nowhere and the toggle overlapped the text at
|
|
2164
|
+
* every width.
|
|
2165
|
+
*/
|
|
2166
|
+
.starci-core-input {
|
|
2167
|
+
display: grid !important;
|
|
2168
|
+
min-width: 0;
|
|
2169
|
+
gap: 0.5rem !important;
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
.starci-core-input-control {
|
|
2173
|
+
position: relative;
|
|
2174
|
+
display: flex;
|
|
2175
|
+
min-width: 0;
|
|
2176
|
+
align-items: center;
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
.starci-core-input-control[data-reveal="true"] .starci-core-input-field {
|
|
2180
|
+
padding-inline-end: 2.75rem !important;
|
|
2181
|
+
}
|
|
2182
|
+
|
|
2183
|
+
.starci-core-input-reveal {
|
|
2184
|
+
position: absolute;
|
|
2185
|
+
inset-inline-end: 0.5rem;
|
|
2186
|
+
top: 50%;
|
|
2187
|
+
display: inline-flex;
|
|
2188
|
+
align-items: center;
|
|
2189
|
+
justify-content: center;
|
|
2190
|
+
transform: translateY(-50%);
|
|
2191
|
+
border: 0;
|
|
2192
|
+
background: transparent;
|
|
2193
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2194
|
+
cursor: pointer;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
.starci-core-input-reveal:disabled {
|
|
2198
|
+
cursor: default;
|
|
2199
|
+
}
|
|
2200
|
+
|
|
2201
|
+
.starci-core-input-reveal :where(svg),
|
|
2202
|
+
.starci-core-input-reveal-icon {
|
|
2203
|
+
width: 1rem;
|
|
2204
|
+
height: 1rem;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
.starci-core-input-reveal-label {
|
|
2208
|
+
font-size: 0.75rem;
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
.starci-core-input-resting-label {
|
|
2212
|
+
width: 33.333333% !important;
|
|
2213
|
+
height: 1rem !important;
|
|
2214
|
+
border-radius: var(--radius-md, calc(var(--radius, 0.5rem) * 0.75)) !important;
|
|
2215
|
+
}
|
|
2216
|
+
|
|
2217
|
+
.starci-core-input-resting-control {
|
|
2218
|
+
width: 100% !important;
|
|
2219
|
+
height: 2.5rem !important;
|
|
2220
|
+
border-radius: var(--field-radius, calc(var(--radius, 0.5rem) * 1.5)) !important;
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
/* --- Text: one resolved line of copy, drawn from the attributes it already emits. --- */
|
|
2224
|
+
.starci-core-text {
|
|
2225
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
2226
|
+
font-size: 1rem;
|
|
2227
|
+
font-weight: 400;
|
|
2228
|
+
line-height: 1.5rem;
|
|
2229
|
+
}
|
|
2230
|
+
|
|
2231
|
+
.starci-core-text[data-size="xs"] {
|
|
2232
|
+
font-size: 0.75rem;
|
|
2233
|
+
line-height: 1rem;
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
.starci-core-text[data-size="sm"] {
|
|
2237
|
+
font-size: 0.875rem;
|
|
2238
|
+
line-height: 1.25rem;
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2241
|
+
.starci-core-text[data-size="metric-lead"] {
|
|
2242
|
+
font-size: 1.875rem;
|
|
2243
|
+
line-height: 2.25rem;
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
.starci-core-text[data-tone="muted"] {
|
|
2247
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
.starci-core-text[data-tone="accent"] {
|
|
2251
|
+
color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
.starci-core-text[data-weight="medium"] { font-weight: 500; }
|
|
2255
|
+
.starci-core-text[data-weight="semibold"] { font-weight: 600; }
|
|
2256
|
+
|
|
2257
|
+
.starci-core-text[data-start-content="true"] {
|
|
2258
|
+
display: inline-flex;
|
|
2259
|
+
align-items: center;
|
|
2260
|
+
gap: 0.5rem;
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2263
|
+
.starci-core-text[data-superseded="true"] {
|
|
2264
|
+
text-decoration-line: line-through;
|
|
2265
|
+
}
|
|
2266
|
+
|
|
2267
|
+
:where(.group)[data-selected="true"] .starci-core-text[data-parent-emphasis="accent-soft"] {
|
|
2268
|
+
color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
/* Authored overflow behaviour: wrap is the resting answer, the other two are opted into. */
|
|
2272
|
+
.starci-core-text[data-overflow="wrap"] {
|
|
2273
|
+
overflow-wrap: anywhere;
|
|
2274
|
+
word-break: break-word;
|
|
2275
|
+
}
|
|
2276
|
+
|
|
2277
|
+
.starci-core-text[data-overflow="truncate"] {
|
|
2278
|
+
display: block;
|
|
2279
|
+
min-width: 0;
|
|
2280
|
+
overflow: hidden;
|
|
2281
|
+
text-overflow: ellipsis;
|
|
2282
|
+
white-space: nowrap;
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
.starci-core-text[data-overflow="clamp-2"] {
|
|
2286
|
+
display: -webkit-box;
|
|
2287
|
+
overflow: hidden;
|
|
2288
|
+
-webkit-box-orient: vertical;
|
|
2289
|
+
-webkit-line-clamp: 2;
|
|
2290
|
+
line-clamp: 2;
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2293
|
+
/* The resting line keeps its size geometry and hides its copy; no tone is visible to claim. */
|
|
2294
|
+
.starci-core-text[data-loading="true"] {
|
|
2295
|
+
display: inline-block;
|
|
2296
|
+
max-width: 100%;
|
|
2297
|
+
border-radius: var(--radius, 0.25rem);
|
|
2298
|
+
color: transparent;
|
|
2299
|
+
user-select: none;
|
|
2300
|
+
}
|
|
2301
|
+
|
|
2302
|
+
.starci-core-text[data-loading="true"][data-size="xs"] { width: 2.5rem; }
|
|
2303
|
+
.starci-core-text[data-loading="true"][data-size="sm"] { width: 3rem; }
|
|
2304
|
+
.starci-core-text[data-loading="true"][data-size="md"] { width: 10rem; }
|
|
2305
|
+
.starci-core-text[data-loading="true"][data-size="metric-lead"] { width: 10rem; }
|
|
2306
|
+
|
|
2307
|
+
/* --- Text action: one recipe, eight appearances, selected by data attributes. --- */
|
|
2308
|
+
.starci-core-text-action {
|
|
2309
|
+
display: inline-flex;
|
|
2310
|
+
width: fit-content;
|
|
2311
|
+
min-width: 0;
|
|
2312
|
+
flex: none;
|
|
2313
|
+
align-items: center;
|
|
2314
|
+
gap: 0.5rem;
|
|
2315
|
+
outline: none;
|
|
2316
|
+
text-underline-offset: 4px;
|
|
2317
|
+
}
|
|
2318
|
+
|
|
2319
|
+
.starci-core-text-action:disabled {
|
|
2320
|
+
opacity: 0.5;
|
|
2321
|
+
cursor: default;
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2324
|
+
.starci-core-text-action[data-size="xs"] { font-size: 0.75rem; line-height: 1rem; }
|
|
2325
|
+
.starci-core-text-action[data-size="sm"] { font-size: 0.875rem; line-height: 1.25rem; }
|
|
2326
|
+
.starci-core-text-action[data-size="md"] { font-size: 1rem; line-height: 1.5rem; }
|
|
2327
|
+
|
|
2328
|
+
.starci-core-text-action[data-appearance="inline"] {
|
|
2329
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
2330
|
+
font-weight: 500;
|
|
2331
|
+
}
|
|
2332
|
+
|
|
2333
|
+
.starci-core-text-action[data-appearance="muted"] {
|
|
2334
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2335
|
+
font-weight: 500;
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
.starci-core-text-action[data-appearance="inline"]:hover,
|
|
2339
|
+
.starci-core-text-action[data-appearance="inline"]:focus-visible,
|
|
2340
|
+
.starci-core-text-action[data-appearance="muted"]:hover,
|
|
2341
|
+
.starci-core-text-action[data-appearance="muted"]:focus-visible,
|
|
2342
|
+
.starci-core-text-action[data-appearance="disclosure"]:hover,
|
|
2343
|
+
.starci-core-text-action[data-appearance="disclosure"]:focus-visible {
|
|
2344
|
+
text-decoration-line: underline;
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
.starci-core-text-action[data-appearance="choice"] {
|
|
2348
|
+
border-radius: var(--starci-core-pill-radius, 999px);
|
|
2349
|
+
padding: 0.25rem 0.5rem;
|
|
2350
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
2351
|
+
font-weight: 500;
|
|
2352
|
+
}
|
|
2353
|
+
|
|
2354
|
+
.starci-core-text-action[data-appearance="route"] {
|
|
2355
|
+
border-radius: var(--starci-core-pill-radius, 999px);
|
|
2356
|
+
padding: 0.5rem 0.75rem;
|
|
2357
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2358
|
+
}
|
|
2359
|
+
|
|
2360
|
+
.starci-core-text-action[data-appearance="section"] {
|
|
2361
|
+
border-radius: var(--radius-xl, calc(var(--radius, 0.5rem) * 1.5));
|
|
2362
|
+
padding: 0.5rem 0.75rem;
|
|
2363
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
.starci-core-text-action[data-appearance="section"]:hover,
|
|
2367
|
+
.starci-core-text-action[data-appearance="section"]:focus-visible {
|
|
2368
|
+
background: var(--default, var(--starci-core-surface-secondary, Canvas));
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2371
|
+
.starci-core-text-action[data-appearance="tab"] {
|
|
2372
|
+
border-block-end: 2px solid transparent;
|
|
2373
|
+
padding-block: 0.75rem;
|
|
2374
|
+
color: var(--muted, var(--starci-core-muted, GrayText));
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2377
|
+
.starci-core-text-action[data-appearance="tab"][data-current="true"] {
|
|
2378
|
+
border-block-end-color: var(--accent, var(--starci-core-accent, Highlight));
|
|
2379
|
+
color: var(--accent, var(--starci-core-accent, Highlight));
|
|
2380
|
+
font-weight: 600;
|
|
2381
|
+
}
|
|
2382
|
+
|
|
2383
|
+
.starci-core-text-action[data-appearance="choice"][data-current="true"],
|
|
2384
|
+
.starci-core-text-action[data-appearance="route"][data-current="true"],
|
|
2385
|
+
.starci-core-text-action[data-appearance="section"][data-current="true"] {
|
|
2386
|
+
background: var(--accent-soft, var(--starci-core-accent, Highlight));
|
|
2387
|
+
color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
|
|
2388
|
+
}
|
|
2389
|
+
|
|
2390
|
+
.starci-core-text-action[data-appearance="route"][data-current="true"],
|
|
2391
|
+
.starci-core-text-action[data-appearance="section"][data-current="true"] {
|
|
2392
|
+
font-weight: 600;
|
|
2393
|
+
}
|
|
2394
|
+
|
|
2395
|
+
.starci-core-text-action[data-appearance="disclosure"] {
|
|
2396
|
+
color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
|
|
2397
|
+
font-weight: 600;
|
|
2398
|
+
}
|
|
2399
|
+
|
|
2400
|
+
.starci-core-text-action[data-appearance="plain"] {
|
|
2401
|
+
color: var(--foreground, var(--starci-core-foreground, CanvasText));
|
|
2402
|
+
text-decoration-line: none;
|
|
2403
|
+
}
|
|
2404
|
+
|
|
2405
|
+
.starci-core-text-action-resting {
|
|
2406
|
+
display: inline-flex;
|
|
2407
|
+
width: 4rem;
|
|
2408
|
+
flex: none;
|
|
2409
|
+
color: transparent;
|
|
2410
|
+
user-select: none;
|
|
2411
|
+
}
|
|
2412
|
+
|
|
2413
|
+
/*
|
|
2414
|
+
* --- Button: full width ---
|
|
2415
|
+
*
|
|
2416
|
+
* A full-width action stretches to its parent and lets its label wrap onto a second line rather
|
|
2417
|
+
* than overflow, so the vendor's fixed control height is released to the content.
|
|
2418
|
+
*/
|
|
2419
|
+
.starci-core-button[data-width="fill"] {
|
|
2420
|
+
width: 100% !important;
|
|
2421
|
+
max-width: 100% !important;
|
|
2422
|
+
height: auto !important;
|
|
2423
|
+
min-height: var(--starci-core-control-min-size, 2.75rem);
|
|
2424
|
+
white-space: normal !important;
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2427
|
+
/* --- Chat workspace: the compact rail trigger's resting paint. --- */
|
|
2428
|
+
.starci-core-chat-workspace-rail-trigger {
|
|
2429
|
+
box-shadow: 0 1px 2px 0 color-mix(in srgb, CanvasText 8%, transparent);
|
|
2430
|
+
outline: none;
|
|
2431
|
+
transition: background-color var(--starci-core-motion-duration, 180ms) var(--starci-core-motion-easing, cubic-bezier(0.2, 0, 0, 1));
|
|
2432
|
+
}
|
|
2433
|
+
|
|
2434
|
+
.starci-core-chat-workspace-rail-trigger:hover {
|
|
2435
|
+
background: var(--default, var(--starci-core-surface-secondary, Canvas));
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2438
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2439
|
+
.starci-core-chat-workspace-rail-trigger {
|
|
2440
|
+
transition: none;
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
|
|
1818
2444
|
}
|
|
1819
2445
|
|