@salemcobalt/ui 0.2.0-rc.12 → 0.2.0-rc.14
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/README.md +45 -2
- package/dist/index.d.ts +177 -22
- package/dist/index.js +345 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +511 -1
- package/package.json +4 -4
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @salemcobalt/ui 0.2.0-rc.
|
|
1
|
+
/* @salemcobalt/ui 0.2.0-rc.14 — requires @salemcobalt/tokens/css. */
|
|
2
2
|
@layer sc {
|
|
3
3
|
/* ---- base.css ---- */
|
|
4
4
|
/* Shared: focus ring, reduced motion. Component files follow. */
|
|
@@ -971,6 +971,69 @@
|
|
|
971
971
|
flex: 1 1 100%;
|
|
972
972
|
}
|
|
973
973
|
}
|
|
974
|
+
/* Full screen: covers the viewport and slides in from the inline end. Title and actions stay put while
|
|
975
|
+
`Dialog.Body` scrolls, as in a sheet. The surface is `surface-default`, not raised, because it replaces
|
|
976
|
+
the page rather than floating over it, so the hover washes go back to the page's own. */
|
|
977
|
+
.sc-dialog__popup[data-variant='fullscreen'] {
|
|
978
|
+
--_slide: 1;
|
|
979
|
+
inset: 0;
|
|
980
|
+
margin: 0;
|
|
981
|
+
inline-size: auto;
|
|
982
|
+
max-inline-size: none;
|
|
983
|
+
block-size: auto;
|
|
984
|
+
max-block-size: none;
|
|
985
|
+
display: flex;
|
|
986
|
+
flex-direction: column;
|
|
987
|
+
overflow: hidden;
|
|
988
|
+
padding-block: calc(var(--sc-spacing-lg) + env(safe-area-inset-top, 0px))
|
|
989
|
+
calc(var(--sc-spacing-lg) + env(safe-area-inset-bottom, 0px));
|
|
990
|
+
padding-inline: calc(var(--sc-spacing-lg) + env(safe-area-inset-left, 0px))
|
|
991
|
+
calc(var(--sc-spacing-lg) + env(safe-area-inset-right, 0px));
|
|
992
|
+
border: 0;
|
|
993
|
+
border-radius: 0;
|
|
994
|
+
box-shadow: none;
|
|
995
|
+
background: var(--sc-color-surface-default);
|
|
996
|
+
--sc-color-surface-hover: inherit;
|
|
997
|
+
--sc-color-surface-active: inherit;
|
|
998
|
+
transition:
|
|
999
|
+
opacity var(--sc-duration-slower) var(--sc-ease-enter),
|
|
1000
|
+
translate var(--sc-duration-slower) var(--sc-ease-enter);
|
|
1001
|
+
}
|
|
1002
|
+
.sc-dialog__popup[data-variant='fullscreen'][data-starting-style] {
|
|
1003
|
+
opacity: 0;
|
|
1004
|
+
translate: calc(var(--_slide) * 96px) 0;
|
|
1005
|
+
scale: none;
|
|
1006
|
+
}
|
|
1007
|
+
.sc-dialog__popup[data-variant='fullscreen'][data-ending-style] {
|
|
1008
|
+
opacity: 0;
|
|
1009
|
+
translate: calc(var(--_slide) * 64px) 0;
|
|
1010
|
+
scale: none;
|
|
1011
|
+
transition-duration: var(--sc-duration-slow);
|
|
1012
|
+
transition-timing-function: var(--sc-ease-exit);
|
|
1013
|
+
}
|
|
1014
|
+
.sc-dialog__popup[data-variant='fullscreen']:dir(rtl) {
|
|
1015
|
+
--_slide: -1;
|
|
1016
|
+
}
|
|
1017
|
+
.sc-dialog__popup[data-variant='fullscreen'] > .sc-dialog__title,
|
|
1018
|
+
.sc-dialog__popup[data-variant='fullscreen'] > .sc-dialog__description,
|
|
1019
|
+
.sc-dialog__popup[data-variant='fullscreen'] > .sc-dialog__actions {
|
|
1020
|
+
flex: none;
|
|
1021
|
+
}
|
|
1022
|
+
.sc-dialog__popup[data-variant='fullscreen'] > .sc-dialog__body {
|
|
1023
|
+
flex: 1 1 auto;
|
|
1024
|
+
min-block-size: 0;
|
|
1025
|
+
overflow: auto;
|
|
1026
|
+
overscroll-behavior: contain;
|
|
1027
|
+
}
|
|
1028
|
+
/* From 900px the backdrop shows a margin around it, so it still reads as a layer over the app. */
|
|
1029
|
+
@media (width >= 900px) {
|
|
1030
|
+
.sc-dialog__popup[data-variant='fullscreen'] {
|
|
1031
|
+
inset: var(--sc-spacing-md);
|
|
1032
|
+
border: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
1033
|
+
border-radius: var(--sc-radius-xl);
|
|
1034
|
+
box-shadow: var(--sc-elevation-3);
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
974
1037
|
@media (prefers-reduced-motion: reduce) {
|
|
975
1038
|
.sc-dialog__backdrop,
|
|
976
1039
|
.sc-dialog__popup {
|
|
@@ -982,6 +1045,19 @@
|
|
|
982
1045
|
scale: none;
|
|
983
1046
|
}
|
|
984
1047
|
}
|
|
1048
|
+
/* Reduced motion: the full-screen surface crossfades instead of sliding. */
|
|
1049
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1050
|
+
.sc-dialog__popup[data-variant='fullscreen'] {
|
|
1051
|
+
transition-duration: var(--sc-duration-base);
|
|
1052
|
+
}
|
|
1053
|
+
.sc-dialog__popup[data-variant='fullscreen'][data-starting-style],
|
|
1054
|
+
.sc-dialog__popup[data-variant='fullscreen'][data-ending-style] {
|
|
1055
|
+
translate: none;
|
|
1056
|
+
}
|
|
1057
|
+
.sc-dialog__popup[data-variant='fullscreen'][data-ending-style] {
|
|
1058
|
+
transition-duration: var(--sc-duration-fast);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
985
1061
|
|
|
986
1062
|
/* ---- tooltip.css ---- */
|
|
987
1063
|
/* ---- Tooltip --------------------------------------------------------------- */
|
|
@@ -4786,4 +4862,438 @@
|
|
|
4786
4862
|
margin: 0;
|
|
4787
4863
|
}
|
|
4788
4864
|
|
|
4865
|
+
/* ---- full-screen-flow.css ---- */
|
|
4866
|
+
/* ---- FullScreenFlow -------------------------------------------------------- */
|
|
4867
|
+
/* The flow is `Dialog variant="fullscreen"` with this class on the popup: header, body and footer rows,
|
|
4868
|
+
no padding of its own (each row clears the safe areas itself). */
|
|
4869
|
+
.sc-dialog__popup.sc-flow {
|
|
4870
|
+
display: grid;
|
|
4871
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
4872
|
+
padding: 0;
|
|
4873
|
+
isolation: isolate;
|
|
4874
|
+
font-size: var(--sc-font-size-md);
|
|
4875
|
+
line-height: var(--sc-font-line-height-normal);
|
|
4876
|
+
}
|
|
4877
|
+
.sc-flow__decoration {
|
|
4878
|
+
position: absolute;
|
|
4879
|
+
inset: 0;
|
|
4880
|
+
z-index: 0;
|
|
4881
|
+
overflow: hidden;
|
|
4882
|
+
border-radius: inherit;
|
|
4883
|
+
pointer-events: none;
|
|
4884
|
+
}
|
|
4885
|
+
.sc-flow__header,
|
|
4886
|
+
.sc-flow__body,
|
|
4887
|
+
.sc-flow__footer {
|
|
4888
|
+
position: relative;
|
|
4889
|
+
z-index: 1;
|
|
4890
|
+
min-inline-size: 0;
|
|
4891
|
+
}
|
|
4892
|
+
|
|
4893
|
+
/* Header: title, progress centred in the space left, status, ×. */
|
|
4894
|
+
.sc-flow__header {
|
|
4895
|
+
display: flex;
|
|
4896
|
+
align-items: center;
|
|
4897
|
+
gap: var(--sc-spacing-sm) var(--sc-spacing-md);
|
|
4898
|
+
padding-block: calc(var(--sc-spacing-xs) + env(safe-area-inset-top, 0px)) var(--sc-spacing-xs);
|
|
4899
|
+
padding-inline: calc(var(--sc-spacing-md) + env(safe-area-inset-left, 0px))
|
|
4900
|
+
calc(var(--sc-spacing-xs) + env(safe-area-inset-right, 0px));
|
|
4901
|
+
border-block-end: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
4902
|
+
background: color-mix(in oklab, var(--sc-color-surface-default) 88%, transparent);
|
|
4903
|
+
backdrop-filter: blur(6px);
|
|
4904
|
+
}
|
|
4905
|
+
.sc-flow__heading {
|
|
4906
|
+
display: inline-flex;
|
|
4907
|
+
align-items: center;
|
|
4908
|
+
gap: var(--sc-spacing-xs);
|
|
4909
|
+
min-inline-size: 0;
|
|
4910
|
+
}
|
|
4911
|
+
.sc-flow__logo {
|
|
4912
|
+
display: inline-flex;
|
|
4913
|
+
flex: none;
|
|
4914
|
+
}
|
|
4915
|
+
.sc-flow .sc-flow__title {
|
|
4916
|
+
margin: 0;
|
|
4917
|
+
padding: 0;
|
|
4918
|
+
font-size: var(--sc-font-size-sm);
|
|
4919
|
+
line-height: var(--sc-font-line-height-snug);
|
|
4920
|
+
font-weight: var(--sc-font-weight-semibold);
|
|
4921
|
+
letter-spacing: var(--sc-font-tracking-normal);
|
|
4922
|
+
white-space: nowrap;
|
|
4923
|
+
overflow-wrap: normal;
|
|
4924
|
+
}
|
|
4925
|
+
.sc-flow__compact-title {
|
|
4926
|
+
display: none;
|
|
4927
|
+
min-inline-size: 0;
|
|
4928
|
+
overflow: hidden;
|
|
4929
|
+
font-size: var(--sc-font-size-sm);
|
|
4930
|
+
font-weight: var(--sc-font-weight-medium);
|
|
4931
|
+
text-overflow: ellipsis;
|
|
4932
|
+
white-space: nowrap;
|
|
4933
|
+
}
|
|
4934
|
+
.sc-flow__status {
|
|
4935
|
+
display: inline-flex;
|
|
4936
|
+
align-items: center;
|
|
4937
|
+
gap: var(--sc-spacing-2xs);
|
|
4938
|
+
margin-inline-start: auto;
|
|
4939
|
+
font-size: var(--sc-font-size-xs);
|
|
4940
|
+
color: var(--sc-color-text-subtle);
|
|
4941
|
+
white-space: nowrap;
|
|
4942
|
+
}
|
|
4943
|
+
.sc-flow__close {
|
|
4944
|
+
flex: none;
|
|
4945
|
+
margin-inline-start: auto;
|
|
4946
|
+
}
|
|
4947
|
+
.sc-flow__status + .sc-flow__close {
|
|
4948
|
+
margin-inline-start: 0;
|
|
4949
|
+
}
|
|
4950
|
+
|
|
4951
|
+
/* Progress: one segment per chapter, as wide as its share of the steps (flex-grow set inline). */
|
|
4952
|
+
.sc-flow__progress {
|
|
4953
|
+
flex: 1 1 12rem;
|
|
4954
|
+
display: grid;
|
|
4955
|
+
gap: var(--sc-spacing-2xs);
|
|
4956
|
+
min-inline-size: 0;
|
|
4957
|
+
max-inline-size: 32.5rem;
|
|
4958
|
+
margin-inline: auto;
|
|
4959
|
+
}
|
|
4960
|
+
.sc-flow__progress + .sc-flow__status,
|
|
4961
|
+
.sc-flow__progress + .sc-flow__close {
|
|
4962
|
+
margin-inline-start: 0;
|
|
4963
|
+
}
|
|
4964
|
+
.sc-flow__progress-label {
|
|
4965
|
+
overflow: hidden;
|
|
4966
|
+
font-size: var(--sc-font-size-xs);
|
|
4967
|
+
color: var(--sc-color-text-muted);
|
|
4968
|
+
text-align: center;
|
|
4969
|
+
text-overflow: ellipsis;
|
|
4970
|
+
white-space: nowrap;
|
|
4971
|
+
}
|
|
4972
|
+
.sc-flow__progress-label :where(b, strong) {
|
|
4973
|
+
color: var(--sc-color-text-default);
|
|
4974
|
+
font-weight: var(--sc-font-weight-medium);
|
|
4975
|
+
}
|
|
4976
|
+
.sc-flow__segments {
|
|
4977
|
+
display: flex;
|
|
4978
|
+
gap: var(--sc-spacing-2xs);
|
|
4979
|
+
margin: 0;
|
|
4980
|
+
padding: 0;
|
|
4981
|
+
list-style: none;
|
|
4982
|
+
}
|
|
4983
|
+
.sc-flow__segment {
|
|
4984
|
+
flex: 1 1 0;
|
|
4985
|
+
block-size: 4px;
|
|
4986
|
+
overflow: hidden;
|
|
4987
|
+
border-radius: var(--sc-radius-full);
|
|
4988
|
+
background: var(--sc-color-surface-active);
|
|
4989
|
+
}
|
|
4990
|
+
.sc-flow__segment-fill {
|
|
4991
|
+
display: block;
|
|
4992
|
+
block-size: 100%;
|
|
4993
|
+
border-radius: inherit;
|
|
4994
|
+
background: var(--sc-color-accent-default);
|
|
4995
|
+
transition: inline-size var(--sc-duration-slower) var(--sc-ease-standard);
|
|
4996
|
+
}
|
|
4997
|
+
|
|
4998
|
+
/* Body: rail beside the viewport from 1000px. */
|
|
4999
|
+
.sc-flow__body {
|
|
5000
|
+
display: grid;
|
|
5001
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5002
|
+
min-block-size: 0;
|
|
5003
|
+
}
|
|
5004
|
+
.sc-flow__rail {
|
|
5005
|
+
display: none;
|
|
5006
|
+
}
|
|
5007
|
+
@media (width >= 1000px) {
|
|
5008
|
+
.sc-flow__body:has(> .sc-flow__rail) {
|
|
5009
|
+
grid-template-columns: 14.5rem minmax(0, 1fr);
|
|
5010
|
+
}
|
|
5011
|
+
.sc-flow__rail {
|
|
5012
|
+
display: block;
|
|
5013
|
+
overflow-y: auto;
|
|
5014
|
+
padding-block: var(--sc-spacing-lg);
|
|
5015
|
+
padding-inline: var(--sc-spacing-md) var(--sc-spacing-sm);
|
|
5016
|
+
border-inline-end: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
5017
|
+
}
|
|
5018
|
+
}
|
|
5019
|
+
.sc-flow__rail-group {
|
|
5020
|
+
margin-block-end: var(--sc-spacing-sm);
|
|
5021
|
+
}
|
|
5022
|
+
.sc-flow__rail-label {
|
|
5023
|
+
display: block;
|
|
5024
|
+
padding: 0 var(--sc-spacing-xs) var(--sc-spacing-2xs);
|
|
5025
|
+
font-size: var(--sc-font-size-xs);
|
|
5026
|
+
font-weight: var(--sc-font-weight-medium);
|
|
5027
|
+
letter-spacing: var(--sc-font-tracking-wide);
|
|
5028
|
+
text-transform: uppercase;
|
|
5029
|
+
color: var(--sc-color-text-subtle);
|
|
5030
|
+
}
|
|
5031
|
+
.sc-flow__rail-list {
|
|
5032
|
+
margin: 0;
|
|
5033
|
+
padding: 0;
|
|
5034
|
+
list-style: none;
|
|
5035
|
+
}
|
|
5036
|
+
.sc-flow__rail-item {
|
|
5037
|
+
display: grid;
|
|
5038
|
+
grid-template-columns: 1.25rem minmax(0, 1fr) auto;
|
|
5039
|
+
align-items: center;
|
|
5040
|
+
gap: var(--sc-spacing-xs);
|
|
5041
|
+
box-sizing: border-box;
|
|
5042
|
+
inline-size: 100%;
|
|
5043
|
+
min-block-size: var(--sc-size-control-sm);
|
|
5044
|
+
padding: 0 var(--sc-spacing-xs);
|
|
5045
|
+
border: 0;
|
|
5046
|
+
border-radius: var(--sc-radius-md);
|
|
5047
|
+
background: transparent;
|
|
5048
|
+
color: var(--sc-color-text-muted);
|
|
5049
|
+
font: inherit;
|
|
5050
|
+
font-size: var(--sc-font-size-sm);
|
|
5051
|
+
text-align: start;
|
|
5052
|
+
cursor: pointer;
|
|
5053
|
+
transition:
|
|
5054
|
+
background-color var(--sc-duration-fast) var(--sc-ease-standard),
|
|
5055
|
+
color var(--sc-duration-fast) var(--sc-ease-standard);
|
|
5056
|
+
}
|
|
5057
|
+
.sc-flow__rail-item:hover:not(:disabled) {
|
|
5058
|
+
background: var(--sc-color-surface-hover);
|
|
5059
|
+
color: var(--sc-color-text-default);
|
|
5060
|
+
}
|
|
5061
|
+
.sc-flow__rail-item:disabled {
|
|
5062
|
+
color: var(--sc-color-text-subtle);
|
|
5063
|
+
cursor: not-allowed;
|
|
5064
|
+
}
|
|
5065
|
+
.sc-flow__rail-item[aria-current='step'] {
|
|
5066
|
+
background: var(--sc-color-accent-subtle);
|
|
5067
|
+
color: var(--sc-color-accent-text);
|
|
5068
|
+
font-weight: var(--sc-font-weight-medium);
|
|
5069
|
+
}
|
|
5070
|
+
.sc-flow__rail-mark {
|
|
5071
|
+
display: grid;
|
|
5072
|
+
place-items: center;
|
|
5073
|
+
inline-size: 1.25rem;
|
|
5074
|
+
block-size: 1.25rem;
|
|
5075
|
+
}
|
|
5076
|
+
.sc-flow__rail-item:not([data-done]) .sc-flow__rail-mark::before {
|
|
5077
|
+
content: '';
|
|
5078
|
+
inline-size: 7px;
|
|
5079
|
+
block-size: 7px;
|
|
5080
|
+
border-radius: var(--sc-radius-full);
|
|
5081
|
+
background: currentColor;
|
|
5082
|
+
opacity: 0.55;
|
|
5083
|
+
}
|
|
5084
|
+
.sc-flow__rail-item[data-done] .sc-flow__rail-mark {
|
|
5085
|
+
color: var(--sc-color-success-text);
|
|
5086
|
+
}
|
|
5087
|
+
.sc-flow__rail-adornment {
|
|
5088
|
+
display: inline-flex;
|
|
5089
|
+
color: var(--sc-color-accent-text);
|
|
5090
|
+
}
|
|
5091
|
+
.sc-flow__rail-note {
|
|
5092
|
+
display: grid;
|
|
5093
|
+
gap: var(--sc-spacing-2xs);
|
|
5094
|
+
margin-block-start: var(--sc-spacing-md);
|
|
5095
|
+
padding: var(--sc-spacing-xs) var(--sc-spacing-sm);
|
|
5096
|
+
border-radius: var(--sc-radius-lg);
|
|
5097
|
+
background: var(--sc-color-surface-sunken);
|
|
5098
|
+
font-size: var(--sc-font-size-xs);
|
|
5099
|
+
color: var(--sc-color-text-muted);
|
|
5100
|
+
}
|
|
5101
|
+
@media (height <= 820px) {
|
|
5102
|
+
.sc-flow__rail-note {
|
|
5103
|
+
display: none;
|
|
5104
|
+
}
|
|
5105
|
+
}
|
|
5106
|
+
|
|
5107
|
+
/* Viewport: the leaving and arriving steps share one grid cell while they animate. */
|
|
5108
|
+
.sc-flow__viewport {
|
|
5109
|
+
position: relative;
|
|
5110
|
+
display: grid;
|
|
5111
|
+
min-block-size: 0;
|
|
5112
|
+
overflow-x: hidden;
|
|
5113
|
+
overflow-y: auto;
|
|
5114
|
+
overscroll-behavior: contain;
|
|
5115
|
+
}
|
|
5116
|
+
.sc-flow__frame {
|
|
5117
|
+
--_dir: 1;
|
|
5118
|
+
--_flip: 1;
|
|
5119
|
+
grid-area: 1 / 1;
|
|
5120
|
+
min-inline-size: 0;
|
|
5121
|
+
}
|
|
5122
|
+
.sc-flow__frame[data-direction='back'] {
|
|
5123
|
+
--_dir: -1;
|
|
5124
|
+
}
|
|
5125
|
+
.sc-flow__frame:dir(rtl) {
|
|
5126
|
+
--_flip: -1;
|
|
5127
|
+
}
|
|
5128
|
+
.sc-flow__frame[data-phase='enter'] {
|
|
5129
|
+
animation: sc-flow-step-in var(--sc-duration-slower) var(--sc-ease-enter) both;
|
|
5130
|
+
}
|
|
5131
|
+
.sc-flow__frame[data-phase='exit'] {
|
|
5132
|
+
pointer-events: none;
|
|
5133
|
+
animation: sc-flow-step-out var(--sc-duration-base) var(--sc-ease-exit) forwards;
|
|
5134
|
+
}
|
|
5135
|
+
@keyframes sc-flow-step-in {
|
|
5136
|
+
from {
|
|
5137
|
+
opacity: 0;
|
|
5138
|
+
translate: calc(var(--_dir) * var(--_flip) * 72px) 0;
|
|
5139
|
+
}
|
|
5140
|
+
}
|
|
5141
|
+
@keyframes sc-flow-step-out {
|
|
5142
|
+
to {
|
|
5143
|
+
opacity: 0;
|
|
5144
|
+
translate: calc(var(--_dir) * var(--_flip) * -40px) 0;
|
|
5145
|
+
scale: 0.985;
|
|
5146
|
+
}
|
|
5147
|
+
}
|
|
5148
|
+
@keyframes sc-flow-fade-in {
|
|
5149
|
+
from {
|
|
5150
|
+
opacity: 0;
|
|
5151
|
+
}
|
|
5152
|
+
}
|
|
5153
|
+
@keyframes sc-flow-fade-out {
|
|
5154
|
+
to {
|
|
5155
|
+
opacity: 0;
|
|
5156
|
+
}
|
|
5157
|
+
}
|
|
5158
|
+
|
|
5159
|
+
/* Step */
|
|
5160
|
+
.sc-flow__step {
|
|
5161
|
+
display: grid;
|
|
5162
|
+
align-content: start;
|
|
5163
|
+
gap: var(--sc-spacing-lg);
|
|
5164
|
+
box-sizing: border-box;
|
|
5165
|
+
inline-size: 100%;
|
|
5166
|
+
max-inline-size: 45rem;
|
|
5167
|
+
margin-inline: auto;
|
|
5168
|
+
padding: var(--sc-spacing-xl) var(--sc-spacing-md) var(--sc-spacing-2xl);
|
|
5169
|
+
}
|
|
5170
|
+
@media (width >= 700px) {
|
|
5171
|
+
.sc-flow__step {
|
|
5172
|
+
padding-block-start: var(--sc-spacing-2xl);
|
|
5173
|
+
padding-inline: var(--sc-spacing-xl);
|
|
5174
|
+
}
|
|
5175
|
+
}
|
|
5176
|
+
.sc-flow__step-head {
|
|
5177
|
+
display: grid;
|
|
5178
|
+
gap: var(--sc-spacing-xs);
|
|
5179
|
+
}
|
|
5180
|
+
.sc-flow__eyebrow {
|
|
5181
|
+
margin: 0;
|
|
5182
|
+
font-size: var(--sc-font-size-xs);
|
|
5183
|
+
font-weight: var(--sc-font-weight-medium);
|
|
5184
|
+
letter-spacing: var(--sc-font-tracking-wide);
|
|
5185
|
+
text-transform: uppercase;
|
|
5186
|
+
color: var(--sc-color-accent-text);
|
|
5187
|
+
}
|
|
5188
|
+
.sc-flow__step-title {
|
|
5189
|
+
margin: 0;
|
|
5190
|
+
font-size: var(--sc-font-size-3xl);
|
|
5191
|
+
line-height: var(--sc-font-line-height-snug);
|
|
5192
|
+
font-weight: var(--sc-font-weight-semibold);
|
|
5193
|
+
letter-spacing: var(--sc-font-tracking-tight);
|
|
5194
|
+
text-wrap: balance;
|
|
5195
|
+
}
|
|
5196
|
+
/* Focus lands here only by script, to move the reading position; Tab never reaches it. */
|
|
5197
|
+
.sc-flow__step-title:focus,
|
|
5198
|
+
.sc-flow__step-title:focus-visible {
|
|
5199
|
+
outline: none;
|
|
5200
|
+
}
|
|
5201
|
+
.sc-flow__step-description {
|
|
5202
|
+
max-inline-size: 60ch;
|
|
5203
|
+
color: var(--sc-color-text-muted);
|
|
5204
|
+
}
|
|
5205
|
+
|
|
5206
|
+
/* Footer: back at the start, hint and primary action at the end, every button a 44px target. */
|
|
5207
|
+
.sc-flow__footer {
|
|
5208
|
+
display: flex;
|
|
5209
|
+
align-items: center;
|
|
5210
|
+
gap: var(--sc-spacing-sm);
|
|
5211
|
+
padding-block: var(--sc-spacing-sm) calc(var(--sc-spacing-sm) + env(safe-area-inset-bottom, 0px));
|
|
5212
|
+
padding-inline: calc(var(--sc-spacing-md) + env(safe-area-inset-left, 0px))
|
|
5213
|
+
calc(var(--sc-spacing-md) + env(safe-area-inset-right, 0px));
|
|
5214
|
+
border-block-start: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
5215
|
+
background: color-mix(in oklab, var(--sc-color-surface-default) 92%, transparent);
|
|
5216
|
+
backdrop-filter: blur(6px);
|
|
5217
|
+
}
|
|
5218
|
+
.sc-flow__footer .sc-button {
|
|
5219
|
+
min-block-size: var(--sc-size-touch-target);
|
|
5220
|
+
min-inline-size: max(var(--_h), var(--sc-size-touch-target));
|
|
5221
|
+
}
|
|
5222
|
+
.sc-flow__footer-hint {
|
|
5223
|
+
display: none;
|
|
5224
|
+
align-items: center;
|
|
5225
|
+
gap: var(--sc-spacing-2xs);
|
|
5226
|
+
font-size: var(--sc-font-size-xs);
|
|
5227
|
+
color: var(--sc-color-text-subtle);
|
|
5228
|
+
}
|
|
5229
|
+
.sc-flow__footer-actions {
|
|
5230
|
+
display: flex;
|
|
5231
|
+
gap: var(--sc-spacing-xs);
|
|
5232
|
+
margin-inline-start: auto;
|
|
5233
|
+
}
|
|
5234
|
+
.sc-flow__footer-actions > .sc-button:last-child {
|
|
5235
|
+
min-inline-size: 10rem;
|
|
5236
|
+
}
|
|
5237
|
+
|
|
5238
|
+
@media (width >= 760px) {
|
|
5239
|
+
.sc-flow__footer-hint {
|
|
5240
|
+
display: inline-flex;
|
|
5241
|
+
margin-inline-start: auto;
|
|
5242
|
+
}
|
|
5243
|
+
.sc-flow__footer-hint + .sc-flow__footer-actions {
|
|
5244
|
+
margin-inline-start: 0;
|
|
5245
|
+
}
|
|
5246
|
+
}
|
|
5247
|
+
@media (width < 760px) {
|
|
5248
|
+
.sc-flow__header {
|
|
5249
|
+
flex-wrap: wrap;
|
|
5250
|
+
row-gap: var(--sc-spacing-xs);
|
|
5251
|
+
}
|
|
5252
|
+
.sc-flow__heading {
|
|
5253
|
+
flex: 1 1 0;
|
|
5254
|
+
}
|
|
5255
|
+
.sc-flow__progress {
|
|
5256
|
+
order: 1;
|
|
5257
|
+
flex-basis: 100%;
|
|
5258
|
+
max-inline-size: none;
|
|
5259
|
+
padding-inline-end: var(--sc-spacing-xs);
|
|
5260
|
+
}
|
|
5261
|
+
.sc-flow__progress-label {
|
|
5262
|
+
display: none;
|
|
5263
|
+
}
|
|
5264
|
+
.sc-flow__heading[data-compact] > .sc-flow__title {
|
|
5265
|
+
position: absolute;
|
|
5266
|
+
inline-size: 1px;
|
|
5267
|
+
block-size: 1px;
|
|
5268
|
+
margin: -1px;
|
|
5269
|
+
overflow: hidden;
|
|
5270
|
+
clip-path: inset(50%);
|
|
5271
|
+
}
|
|
5272
|
+
.sc-flow__compact-title {
|
|
5273
|
+
display: inline;
|
|
5274
|
+
}
|
|
5275
|
+
.sc-flow__step-title {
|
|
5276
|
+
font-size: var(--sc-font-size-2xl);
|
|
5277
|
+
}
|
|
5278
|
+
}
|
|
5279
|
+
@media (width < 520px) {
|
|
5280
|
+
.sc-flow__footer-actions {
|
|
5281
|
+
flex: 1 1 auto;
|
|
5282
|
+
}
|
|
5283
|
+
.sc-flow__footer-actions > :last-child {
|
|
5284
|
+
flex: 1 1 auto;
|
|
5285
|
+
}
|
|
5286
|
+
}
|
|
5287
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5288
|
+
.sc-flow__frame[data-phase='enter'] {
|
|
5289
|
+
animation: sc-flow-fade-in var(--sc-duration-base) var(--sc-ease-enter) both;
|
|
5290
|
+
}
|
|
5291
|
+
.sc-flow__frame[data-phase='exit'] {
|
|
5292
|
+
animation: sc-flow-fade-out var(--sc-duration-fast) var(--sc-ease-exit) forwards;
|
|
5293
|
+
}
|
|
5294
|
+
.sc-flow__segment-fill {
|
|
5295
|
+
transition: none;
|
|
5296
|
+
}
|
|
5297
|
+
}
|
|
5298
|
+
|
|
4789
5299
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salemcobalt/ui",
|
|
3
|
-
"version": "0.2.0-rc.
|
|
4
|
-
"description": "React components for the Salem Cobalt design system: Button, IconButton, Icon set, BroomIcon, Badge, Card, Stack, Inline, Kbd, Dialog, Tooltip, Menu, Popover, PriorityNav, Toolbar, Banner, Spinner, Progress, Tabs, Input, Textarea, Select, FileInput, Checkbox, Switch, Heading, Text, Table, Stat, Chip, Disclosure, EmptyState, Skeleton.",
|
|
3
|
+
"version": "0.2.0-rc.14",
|
|
4
|
+
"description": "React components for the Salem Cobalt design system: Button, IconButton, Icon set, BroomIcon, Badge, Card, Stack, Inline, Kbd, Dialog, FullScreenFlow, Tooltip, Menu, Popover, PriorityNav, Toolbar, Banner, Spinner, Progress, Tabs, Input, Textarea, Select, FileInput, Checkbox, Switch, Heading, Text, Table, Stat, Chip, Disclosure, EmptyState, Skeleton.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": "^19.0.0",
|
|
35
35
|
"react-dom": "^19.0.0",
|
|
36
|
-
"@salemcobalt/tokens": "^0.2.0-rc.
|
|
36
|
+
"@salemcobalt/tokens": "^0.2.0-rc.14"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@base-ui/react": "^1.9.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"tsup": "^9.0.0",
|
|
58
58
|
"typescript": "^5.9.3",
|
|
59
59
|
"vitest": "^5.0.5",
|
|
60
|
-
"@salemcobalt/tokens": "^0.2.0-rc.
|
|
60
|
+
"@salemcobalt/tokens": "^0.2.0-rc.14"
|
|
61
61
|
},
|
|
62
62
|
"publishConfig": {
|
|
63
63
|
"access": "public"
|