@phcdevworks/spectre-ui 1.4.0 → 1.6.0
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 +445 -0
- package/README.md +338 -32
- package/dist/base.css +4 -4
- package/dist/components.css +194 -51
- package/dist/index.cjs +95 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +194 -51
- package/dist/index.d.cts +25 -21
- package/dist/index.d.ts +25 -21
- package/dist/index.js +92 -26
- package/dist/index.js.map +1 -1
- package/dist/utilities.css +4 -4
- package/package.json +31 -28
package/dist/index.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--sp-surface-page: #f7f8fb;
|
|
7
7
|
--sp-surface-card: #ffffff;
|
|
8
8
|
--sp-surface-input: #ffffff;
|
|
9
|
-
--sp-surface-overlay: rgba(
|
|
9
|
+
--sp-surface-overlay: rgba(0, 0, 0, 0.6);
|
|
10
10
|
--sp-surface-alternate: #eef1f6;
|
|
11
11
|
--sp-surface-hero: linear-gradient(135deg, #5b6ee1 0%, #6f3fd7 100%);
|
|
12
12
|
--sp-text-on-page-default: #141b24;
|
|
@@ -298,9 +298,9 @@
|
|
|
298
298
|
--sp-button-cta-textdisabled: #8a96ad;
|
|
299
299
|
--sp-button-cta-shadow: 0 4px 14px 0 rgba(51, 109, 244, 0.39);
|
|
300
300
|
--sp-button-cta-focusring: rgba(51, 109, 244, 0.4);
|
|
301
|
-
--sp-button-accent-bg: #
|
|
302
|
-
--sp-button-accent-bghover: #
|
|
303
|
-
--sp-button-accent-bgactive: #
|
|
301
|
+
--sp-button-accent-bg: #5d28b8;
|
|
302
|
+
--sp-button-accent-bghover: #4d2393;
|
|
303
|
+
--sp-button-accent-bgactive: #401f75;
|
|
304
304
|
--sp-button-accent-bgdisabled: #ddccff;
|
|
305
305
|
--sp-button-accent-text: #ffffff;
|
|
306
306
|
--sp-button-accent-textdisabled: #8a96ad;
|
|
@@ -566,6 +566,10 @@
|
|
|
566
566
|
--sp-component-badge-info-text: var(--sp-badge-info-text);
|
|
567
567
|
--sp-component-badge-ghost-bg: var(--sp-button-ghost-bg);
|
|
568
568
|
--sp-component-badge-ghost-text: var(--sp-button-ghost-text);
|
|
569
|
+
--sp-component-badge-accent-bg: var(--sp-button-accent-bg);
|
|
570
|
+
--sp-component-badge-accent-text: var(--sp-button-accent-text);
|
|
571
|
+
--sp-component-badge-cta-bg: var(--sp-button-cta-bg);
|
|
572
|
+
--sp-component-badge-cta-text: var(--sp-button-cta-text);
|
|
569
573
|
|
|
570
574
|
/* badge hover states derived from Spectre token semantics */
|
|
571
575
|
--sp-component-badge-primary-bg-hover: var(--sp-button-primary-bghover);
|
|
@@ -576,6 +580,8 @@
|
|
|
576
580
|
--sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-200);
|
|
577
581
|
--sp-component-badge-info-bg-hover: var(--sp-color-info-200);
|
|
578
582
|
--sp-component-badge-ghost-bg-hover: var(--sp-button-ghost-bghover);
|
|
583
|
+
--sp-component-badge-accent-bg-hover: var(--sp-button-accent-bghover);
|
|
584
|
+
--sp-component-badge-cta-bg-hover: var(--sp-button-cta-bghover);
|
|
579
585
|
|
|
580
586
|
--sp-component-badge-padding-x-sm: var(--sp-space-8);
|
|
581
587
|
--sp-component-badge-padding-x-md: var(--sp-space-12);
|
|
@@ -606,17 +612,33 @@
|
|
|
606
612
|
--sp-component-iconbox-neutral-text: var(--sp-badge-neutral-text);
|
|
607
613
|
--sp-component-iconbox-ghost-bg: var(--sp-button-ghost-bg);
|
|
608
614
|
--sp-component-iconbox-ghost-text: var(--sp-button-ghost-text);
|
|
615
|
+
--sp-component-iconbox-accent-bg: var(--sp-button-accent-bg);
|
|
616
|
+
--sp-component-iconbox-accent-text: var(--sp-button-accent-text);
|
|
617
|
+
--sp-component-iconbox-cta-bg: var(--sp-button-cta-bg);
|
|
618
|
+
--sp-component-iconbox-cta-text: var(--sp-button-cta-text);
|
|
609
619
|
|
|
610
620
|
/* testimonial roles */
|
|
611
621
|
--sp-component-testimonial-bg: var(--sp-surface-card);
|
|
622
|
+
--sp-component-testimonial-bg-hover: var(--sp-color-neutral-50);
|
|
612
623
|
--sp-component-testimonial-border: var(--sp-color-neutral-200);
|
|
624
|
+
--sp-component-testimonial-border-base: var(--sp-component-testimonial-ghost-border);
|
|
613
625
|
--sp-component-testimonial-text: var(--sp-color-neutral-700);
|
|
614
626
|
--sp-component-testimonial-author-name: var(--sp-color-neutral-900);
|
|
615
|
-
--sp-component-testimonial-author-title: var(--sp-color-neutral-
|
|
616
|
-
--sp-component-testimonial-quote-mark: var(--sp-color-neutral-
|
|
627
|
+
--sp-component-testimonial-author-title: var(--sp-color-neutral-600);
|
|
628
|
+
--sp-component-testimonial-quote-mark: var(--sp-color-neutral-600);
|
|
629
|
+
--sp-component-testimonial-shadow: var(--sp-shadow-none);
|
|
630
|
+
--sp-component-testimonial-shadow-elevated: var(--sp-shadow-lg);
|
|
631
|
+
--sp-component-testimonial-shadow-flat: var(--sp-shadow-none);
|
|
632
|
+
--sp-component-testimonial-shadow-outline: var(--sp-shadow-none);
|
|
633
|
+
--sp-component-testimonial-shadow-ghost: var(--sp-shadow-none);
|
|
634
|
+
--sp-component-testimonial-outline-bg: var(--sp-component-testimonial-bg);
|
|
635
|
+
--sp-component-testimonial-outline-border: var(--sp-component-testimonial-border);
|
|
636
|
+
--sp-component-testimonial-ghost-bg: var(--sp-button-ghost-bg);
|
|
637
|
+
--sp-component-testimonial-ghost-border: var(--sp-component-testimonial-ghost-bg);
|
|
617
638
|
|
|
618
639
|
/* pricing card roles */
|
|
619
640
|
--sp-component-pricing-card-bg: var(--sp-surface-card);
|
|
641
|
+
--sp-component-pricing-card-bg-hover: var(--sp-color-neutral-50);
|
|
620
642
|
--sp-component-pricing-card-border: var(--sp-color-neutral-200);
|
|
621
643
|
--sp-component-pricing-card-featured-bg: var(--sp-color-info-600);
|
|
622
644
|
--sp-component-pricing-card-featured-text: var(--sp-button-text-on-primary);
|
|
@@ -624,7 +646,7 @@
|
|
|
624
646
|
--sp-component-pricing-card-featured-badge-text: var(--sp-color-neutral-900);
|
|
625
647
|
--sp-component-pricing-card-price: var(--sp-color-neutral-900);
|
|
626
648
|
--sp-component-pricing-card-featured-price: var(--sp-color-white);
|
|
627
|
-
--sp-component-pricing-card-price-description: var(--sp-color-neutral-
|
|
649
|
+
--sp-component-pricing-card-price-description: var(--sp-color-neutral-600);
|
|
628
650
|
|
|
629
651
|
/* rating roles */
|
|
630
652
|
--sp-component-rating-star-filled: var(--sp-color-warning-500);
|
|
@@ -637,17 +659,37 @@
|
|
|
637
659
|
|
|
638
660
|
/* dark mode overrides mapped from Spectre token mode definitions */
|
|
639
661
|
:where(:root[data-spectre-theme="dark"]) {
|
|
662
|
+
/* badge hover states remain manual as they are not currently exported as tokens */
|
|
663
|
+
--sp-component-badge-success-bg-hover: var(--sp-color-success-700);
|
|
664
|
+
--sp-component-badge-warning-bg-hover: var(--sp-color-warning-700);
|
|
665
|
+
--sp-component-badge-danger-bg-hover: var(--sp-color-error-700);
|
|
666
|
+
--sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-600);
|
|
667
|
+
--sp-component-badge-info-bg-hover: var(--sp-color-info-700);
|
|
668
|
+
|
|
669
|
+
--sp-component-iconbox-primary-bg: var(--sp-color-neutral-800);
|
|
670
|
+
--sp-component-iconbox-primary-text: var(--sp-color-brand-400);
|
|
671
|
+
--sp-component-iconbox-success-bg: var(--sp-color-neutral-800);
|
|
672
|
+
--sp-component-iconbox-success-text: var(--sp-color-success-400);
|
|
673
|
+
--sp-component-iconbox-warning-bg: var(--sp-color-neutral-800);
|
|
674
|
+
--sp-component-iconbox-warning-text: var(--sp-color-warning-400);
|
|
675
|
+
--sp-component-iconbox-danger-bg: var(--sp-color-neutral-800);
|
|
676
|
+
--sp-component-iconbox-danger-text: var(--sp-color-error-400);
|
|
677
|
+
--sp-component-iconbox-info-bg: var(--sp-color-neutral-800);
|
|
678
|
+
--sp-component-iconbox-info-text: var(--sp-color-info-400);
|
|
679
|
+
|
|
640
680
|
--sp-component-testimonial-bg: var(--sp-color-neutral-800);
|
|
681
|
+
--sp-component-testimonial-bg-hover: var(--sp-color-neutral-700);
|
|
641
682
|
--sp-component-testimonial-border: var(--sp-color-neutral-700);
|
|
642
683
|
--sp-component-testimonial-text: var(--sp-color-neutral-200);
|
|
643
684
|
--sp-component-testimonial-author-name: var(--sp-color-neutral-100);
|
|
644
|
-
--sp-component-testimonial-author-title: var(--sp-color-neutral-
|
|
645
|
-
--sp-component-testimonial-quote-mark: var(--sp-color-neutral-
|
|
685
|
+
--sp-component-testimonial-author-title: var(--sp-color-neutral-300);
|
|
686
|
+
--sp-component-testimonial-quote-mark: var(--sp-color-neutral-300);
|
|
646
687
|
|
|
647
688
|
--sp-component-pricing-card-bg: var(--sp-color-neutral-800);
|
|
689
|
+
--sp-component-pricing-card-bg-hover: var(--sp-color-neutral-700);
|
|
648
690
|
--sp-component-pricing-card-border: var(--sp-color-neutral-700);
|
|
649
691
|
--sp-component-pricing-card-price: var(--sp-color-neutral-100);
|
|
650
|
-
--sp-component-pricing-card-price-description: var(--sp-color-neutral-
|
|
692
|
+
--sp-component-pricing-card-price-description: var(--sp-color-neutral-300);
|
|
651
693
|
|
|
652
694
|
--sp-component-rating-star-filled: var(--sp-color-warning-400);
|
|
653
695
|
--sp-component-rating-star-empty: var(--sp-color-neutral-700);
|
|
@@ -922,12 +964,20 @@
|
|
|
922
964
|
line-height: var(--sp-font-sm-line-height);
|
|
923
965
|
}
|
|
924
966
|
|
|
967
|
+
.sp-label--disabled {
|
|
968
|
+
color: var(--sp-component-input-role-text-disabled);
|
|
969
|
+
}
|
|
970
|
+
|
|
925
971
|
.sp-helper-text {
|
|
926
972
|
color: var(--sp-text-on-surface-meta);
|
|
927
973
|
font-size: var(--sp-font-xs-size);
|
|
928
974
|
line-height: var(--sp-font-xs-line-height);
|
|
929
975
|
}
|
|
930
976
|
|
|
977
|
+
.sp-helper-text--disabled {
|
|
978
|
+
opacity: var(--sp-opacity-disabled);
|
|
979
|
+
}
|
|
980
|
+
|
|
931
981
|
.sp-error-message {
|
|
932
982
|
color: var(--sp-component-input-role-text-error);
|
|
933
983
|
font-size: var(--sp-font-xs-size);
|
|
@@ -1089,11 +1139,15 @@
|
|
|
1089
1139
|
height: 100%;
|
|
1090
1140
|
}
|
|
1091
1141
|
|
|
1142
|
+
.sp-card:disabled,
|
|
1143
|
+
.sp-card[aria-disabled="true"],
|
|
1092
1144
|
.sp-card--disabled {
|
|
1093
1145
|
opacity: var(--sp-opacity-disabled);
|
|
1094
1146
|
pointer-events: none;
|
|
1147
|
+
cursor: not-allowed;
|
|
1095
1148
|
}
|
|
1096
1149
|
|
|
1150
|
+
.sp-card[aria-busy="true"],
|
|
1097
1151
|
.sp-card--loading {
|
|
1098
1152
|
opacity: var(--sp-opacity-active);
|
|
1099
1153
|
pointer-events: none;
|
|
@@ -1108,14 +1162,20 @@
|
|
|
1108
1162
|
}
|
|
1109
1163
|
|
|
1110
1164
|
.sp-card--interactive:hover,
|
|
1111
|
-
.sp-card--interactive:focus-visible,
|
|
1112
1165
|
.sp-card--interactive:focus-within,
|
|
1113
1166
|
.sp-card--interactive.sp-card--hover,
|
|
1114
|
-
.sp-card--interactive.is-hover
|
|
1167
|
+
.sp-card--interactive.is-hover {
|
|
1168
|
+
outline: none;
|
|
1169
|
+
transform: translateY(calc(var(--sp-component-border-width) * -1));
|
|
1170
|
+
box-shadow: var(--sp-component-card-shadow-elevated);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
.sp-card--interactive:focus-visible,
|
|
1115
1174
|
.sp-card--interactive.sp-card--focus,
|
|
1116
1175
|
.sp-card--interactive.is-focus {
|
|
1176
|
+
outline: none;
|
|
1117
1177
|
transform: translateY(calc(var(--sp-component-border-width) * -1));
|
|
1118
|
-
box-shadow: var(--sp-component-
|
|
1178
|
+
box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
|
|
1119
1179
|
}
|
|
1120
1180
|
|
|
1121
1181
|
.sp-card--interactive:active,
|
|
@@ -1142,6 +1202,10 @@
|
|
|
1142
1202
|
white-space: nowrap;
|
|
1143
1203
|
}
|
|
1144
1204
|
|
|
1205
|
+
.sp-badge--full {
|
|
1206
|
+
width: 100%;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1145
1209
|
.sp-badge--sm {
|
|
1146
1210
|
padding: var(--sp-component-badge-padding-y-sm) var(--sp-component-badge-padding-x-sm);
|
|
1147
1211
|
font-size: var(--sp-font-xs-size);
|
|
@@ -1166,8 +1230,8 @@
|
|
|
1166
1230
|
}
|
|
1167
1231
|
|
|
1168
1232
|
.sp-badge--primary.sp-badge--interactive:hover,
|
|
1169
|
-
.sp-badge--primary.sp-badge--
|
|
1170
|
-
.sp-badge--primary.
|
|
1233
|
+
.sp-badge--primary.sp-badge--hover,
|
|
1234
|
+
.sp-badge--primary.is-hover {
|
|
1171
1235
|
background-color: var(--sp-component-badge-primary-bg-hover);
|
|
1172
1236
|
}
|
|
1173
1237
|
|
|
@@ -1178,8 +1242,8 @@
|
|
|
1178
1242
|
}
|
|
1179
1243
|
|
|
1180
1244
|
.sp-badge--secondary.sp-badge--interactive:hover,
|
|
1181
|
-
.sp-badge--secondary.sp-badge--
|
|
1182
|
-
.sp-badge--secondary.
|
|
1245
|
+
.sp-badge--secondary.sp-badge--hover,
|
|
1246
|
+
.sp-badge--secondary.is-hover {
|
|
1183
1247
|
background-color: var(--sp-component-badge-secondary-bg-hover);
|
|
1184
1248
|
}
|
|
1185
1249
|
|
|
@@ -1189,8 +1253,8 @@
|
|
|
1189
1253
|
}
|
|
1190
1254
|
|
|
1191
1255
|
.sp-badge--success.sp-badge--interactive:hover,
|
|
1192
|
-
.sp-badge--success.sp-badge--
|
|
1193
|
-
.sp-badge--success.
|
|
1256
|
+
.sp-badge--success.sp-badge--hover,
|
|
1257
|
+
.sp-badge--success.is-hover {
|
|
1194
1258
|
background-color: var(--sp-component-badge-success-bg-hover);
|
|
1195
1259
|
}
|
|
1196
1260
|
|
|
@@ -1200,8 +1264,8 @@
|
|
|
1200
1264
|
}
|
|
1201
1265
|
|
|
1202
1266
|
.sp-badge--warning.sp-badge--interactive:hover,
|
|
1203
|
-
.sp-badge--warning.sp-badge--
|
|
1204
|
-
.sp-badge--warning.
|
|
1267
|
+
.sp-badge--warning.sp-badge--hover,
|
|
1268
|
+
.sp-badge--warning.is-hover {
|
|
1205
1269
|
background-color: var(--sp-component-badge-warning-bg-hover);
|
|
1206
1270
|
}
|
|
1207
1271
|
|
|
@@ -1211,8 +1275,8 @@
|
|
|
1211
1275
|
}
|
|
1212
1276
|
|
|
1213
1277
|
.sp-badge--danger.sp-badge--interactive:hover,
|
|
1214
|
-
.sp-badge--danger.sp-badge--
|
|
1215
|
-
.sp-badge--danger.
|
|
1278
|
+
.sp-badge--danger.sp-badge--hover,
|
|
1279
|
+
.sp-badge--danger.is-hover {
|
|
1216
1280
|
background-color: var(--sp-component-badge-danger-bg-hover);
|
|
1217
1281
|
}
|
|
1218
1282
|
|
|
@@ -1222,8 +1286,8 @@
|
|
|
1222
1286
|
}
|
|
1223
1287
|
|
|
1224
1288
|
.sp-badge--neutral.sp-badge--interactive:hover,
|
|
1225
|
-
.sp-badge--neutral.sp-badge--
|
|
1226
|
-
.sp-badge--neutral.
|
|
1289
|
+
.sp-badge--neutral.sp-badge--hover,
|
|
1290
|
+
.sp-badge--neutral.is-hover {
|
|
1227
1291
|
background-color: var(--sp-component-badge-neutral-bg-hover);
|
|
1228
1292
|
}
|
|
1229
1293
|
|
|
@@ -1233,8 +1297,8 @@
|
|
|
1233
1297
|
}
|
|
1234
1298
|
|
|
1235
1299
|
.sp-badge--info.sp-badge--interactive:hover,
|
|
1236
|
-
.sp-badge--info.sp-badge--
|
|
1237
|
-
.sp-badge--info.
|
|
1300
|
+
.sp-badge--info.sp-badge--hover,
|
|
1301
|
+
.sp-badge--info.is-hover {
|
|
1238
1302
|
background-color: var(--sp-component-badge-info-bg-hover);
|
|
1239
1303
|
}
|
|
1240
1304
|
|
|
@@ -1244,11 +1308,33 @@
|
|
|
1244
1308
|
}
|
|
1245
1309
|
|
|
1246
1310
|
.sp-badge--ghost.sp-badge--interactive:hover,
|
|
1247
|
-
.sp-badge--ghost.sp-badge--
|
|
1248
|
-
.sp-badge--ghost.
|
|
1311
|
+
.sp-badge--ghost.sp-badge--hover,
|
|
1312
|
+
.sp-badge--ghost.is-hover {
|
|
1249
1313
|
background-color: var(--sp-component-badge-ghost-bg-hover);
|
|
1250
1314
|
}
|
|
1251
1315
|
|
|
1316
|
+
.sp-badge--accent {
|
|
1317
|
+
background-color: var(--sp-component-badge-accent-bg);
|
|
1318
|
+
color: var(--sp-component-badge-accent-text);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
.sp-badge--accent.sp-badge--interactive:hover,
|
|
1322
|
+
.sp-badge--accent.sp-badge--hover,
|
|
1323
|
+
.sp-badge--accent.is-hover {
|
|
1324
|
+
background-color: var(--sp-component-badge-accent-bg-hover);
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
.sp-badge--cta {
|
|
1328
|
+
background-color: var(--sp-component-badge-cta-bg);
|
|
1329
|
+
color: var(--sp-component-badge-cta-text);
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
.sp-badge--cta.sp-badge--interactive:hover,
|
|
1333
|
+
.sp-badge--cta.sp-badge--hover,
|
|
1334
|
+
.sp-badge--cta.is-hover {
|
|
1335
|
+
background-color: var(--sp-component-badge-cta-bg-hover);
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1252
1338
|
.sp-badge--interactive {
|
|
1253
1339
|
cursor: pointer;
|
|
1254
1340
|
transition:
|
|
@@ -1260,24 +1346,27 @@
|
|
|
1260
1346
|
}
|
|
1261
1347
|
|
|
1262
1348
|
.sp-badge--interactive:active,
|
|
1263
|
-
.sp-badge--
|
|
1264
|
-
.sp-badge
|
|
1349
|
+
.sp-badge--active,
|
|
1350
|
+
.sp-badge.is-active {
|
|
1265
1351
|
opacity: var(--sp-opacity-active);
|
|
1266
1352
|
}
|
|
1267
1353
|
|
|
1268
1354
|
.sp-badge--interactive:focus-visible,
|
|
1269
|
-
.sp-badge--
|
|
1270
|
-
.sp-badge
|
|
1355
|
+
.sp-badge--focus,
|
|
1356
|
+
.sp-badge.is-focus {
|
|
1271
1357
|
outline: none;
|
|
1272
1358
|
box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
|
|
1273
1359
|
}
|
|
1274
1360
|
|
|
1361
|
+
.sp-badge:disabled,
|
|
1362
|
+
.sp-badge[aria-disabled="true"],
|
|
1275
1363
|
.sp-badge--disabled {
|
|
1276
1364
|
opacity: var(--sp-opacity-disabled);
|
|
1277
1365
|
pointer-events: none;
|
|
1278
1366
|
}
|
|
1279
1367
|
|
|
1280
|
-
.sp-badge--loading
|
|
1368
|
+
.sp-badge--loading,
|
|
1369
|
+
.sp-badge[aria-busy="true"] {
|
|
1281
1370
|
opacity: var(--sp-opacity-active);
|
|
1282
1371
|
pointer-events: none;
|
|
1283
1372
|
}
|
|
@@ -1362,6 +1451,10 @@
|
|
|
1362
1451
|
font-size: var(--sp-font-lg-size);
|
|
1363
1452
|
}
|
|
1364
1453
|
|
|
1454
|
+
.sp-iconbox--full {
|
|
1455
|
+
width: 100%;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1365
1458
|
.sp-iconbox--pill {
|
|
1366
1459
|
border-radius: var(--sp-radius-pill);
|
|
1367
1460
|
}
|
|
@@ -1407,25 +1500,35 @@
|
|
|
1407
1500
|
color: var(--sp-component-iconbox-ghost-text);
|
|
1408
1501
|
}
|
|
1409
1502
|
|
|
1503
|
+
.sp-iconbox--accent {
|
|
1504
|
+
background-color: var(--sp-component-iconbox-accent-bg);
|
|
1505
|
+
color: var(--sp-component-iconbox-accent-text);
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
.sp-iconbox--cta {
|
|
1509
|
+
background-color: var(--sp-component-iconbox-cta-bg);
|
|
1510
|
+
color: var(--sp-component-iconbox-cta-text);
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1410
1513
|
.sp-iconbox--interactive {
|
|
1411
1514
|
cursor: pointer;
|
|
1412
1515
|
}
|
|
1413
1516
|
|
|
1414
1517
|
.sp-iconbox--interactive:hover,
|
|
1415
|
-
.sp-iconbox--
|
|
1416
|
-
.sp-iconbox
|
|
1518
|
+
.sp-iconbox--hover,
|
|
1519
|
+
.sp-iconbox.is-hover {
|
|
1417
1520
|
opacity: var(--sp-opacity-hover);
|
|
1418
1521
|
}
|
|
1419
1522
|
|
|
1420
1523
|
.sp-iconbox--interactive:active,
|
|
1421
|
-
.sp-iconbox--
|
|
1422
|
-
.sp-iconbox
|
|
1524
|
+
.sp-iconbox--active,
|
|
1525
|
+
.sp-iconbox.is-active {
|
|
1423
1526
|
opacity: var(--sp-opacity-active);
|
|
1424
1527
|
}
|
|
1425
1528
|
|
|
1426
1529
|
.sp-iconbox--interactive:focus-visible,
|
|
1427
|
-
.sp-iconbox--
|
|
1428
|
-
.sp-iconbox
|
|
1530
|
+
.sp-iconbox--focus,
|
|
1531
|
+
.sp-iconbox.is-focus {
|
|
1429
1532
|
outline: none;
|
|
1430
1533
|
box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
|
|
1431
1534
|
}
|
|
@@ -1438,7 +1541,8 @@
|
|
|
1438
1541
|
cursor: not-allowed;
|
|
1439
1542
|
}
|
|
1440
1543
|
|
|
1441
|
-
.sp-iconbox--loading
|
|
1544
|
+
.sp-iconbox--loading,
|
|
1545
|
+
.sp-iconbox[aria-busy="true"] {
|
|
1442
1546
|
opacity: var(--sp-opacity-active);
|
|
1443
1547
|
pointer-events: none;
|
|
1444
1548
|
}
|
|
@@ -1447,20 +1551,46 @@
|
|
|
1447
1551
|
|
|
1448
1552
|
.sp-testimonial {
|
|
1449
1553
|
background-color: var(--sp-component-testimonial-bg);
|
|
1450
|
-
border: var(--sp-component-border-width) solid var(--sp-component-testimonial-border);
|
|
1554
|
+
border: var(--sp-component-border-width) solid var(--sp-component-testimonial-border-base);
|
|
1451
1555
|
border-radius: var(--sp-radius-lg);
|
|
1452
1556
|
padding: var(--sp-space-32);
|
|
1453
1557
|
display: flex;
|
|
1454
1558
|
flex-direction: column;
|
|
1455
1559
|
gap: var(--sp-space-24);
|
|
1560
|
+
box-shadow: var(--sp-component-testimonial-shadow);
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
.sp-testimonial--elevated {
|
|
1564
|
+
box-shadow: var(--sp-component-testimonial-shadow-elevated);
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
.sp-testimonial--flat {
|
|
1568
|
+
box-shadow: var(--sp-component-testimonial-shadow-flat);
|
|
1569
|
+
border-color: var(--sp-component-testimonial-border);
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.sp-testimonial--outline {
|
|
1573
|
+
background-color: var(--sp-component-testimonial-outline-bg);
|
|
1574
|
+
border-color: var(--sp-component-testimonial-outline-border);
|
|
1575
|
+
box-shadow: var(--sp-component-testimonial-shadow-outline);
|
|
1456
1576
|
}
|
|
1457
1577
|
|
|
1578
|
+
.sp-testimonial--ghost {
|
|
1579
|
+
background-color: var(--sp-component-testimonial-ghost-bg);
|
|
1580
|
+
border-color: var(--sp-component-testimonial-ghost-border);
|
|
1581
|
+
box-shadow: var(--sp-component-testimonial-shadow-ghost);
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
.sp-testimonial:disabled,
|
|
1585
|
+
.sp-testimonial[aria-disabled="true"],
|
|
1458
1586
|
.sp-testimonial--disabled {
|
|
1459
1587
|
opacity: var(--sp-opacity-disabled);
|
|
1460
1588
|
pointer-events: none;
|
|
1589
|
+
cursor: not-allowed;
|
|
1461
1590
|
}
|
|
1462
1591
|
|
|
1463
|
-
.sp-testimonial--loading
|
|
1592
|
+
.sp-testimonial--loading,
|
|
1593
|
+
.sp-testimonial[aria-busy="true"] {
|
|
1464
1594
|
opacity: var(--sp-opacity-active);
|
|
1465
1595
|
pointer-events: none;
|
|
1466
1596
|
}
|
|
@@ -1482,7 +1612,8 @@
|
|
|
1482
1612
|
.sp-testimonial--interactive.sp-testimonial--hover,
|
|
1483
1613
|
.sp-testimonial--interactive.is-hover {
|
|
1484
1614
|
transform: translateY(calc(var(--sp-component-border-width) * -1));
|
|
1485
|
-
box-shadow: var(--sp-shadow-
|
|
1615
|
+
box-shadow: var(--sp-component-testimonial-shadow-elevated);
|
|
1616
|
+
background-color: var(--sp-component-testimonial-bg-hover);
|
|
1486
1617
|
}
|
|
1487
1618
|
|
|
1488
1619
|
.sp-testimonial--interactive:active,
|
|
@@ -1565,12 +1696,15 @@
|
|
|
1565
1696
|
border: none;
|
|
1566
1697
|
}
|
|
1567
1698
|
|
|
1699
|
+
.sp-pricing-card:disabled,
|
|
1700
|
+
.sp-pricing-card[aria-disabled="true"],
|
|
1568
1701
|
.sp-pricing-card--disabled {
|
|
1569
1702
|
opacity: var(--sp-opacity-disabled);
|
|
1570
1703
|
pointer-events: none;
|
|
1571
1704
|
}
|
|
1572
1705
|
|
|
1573
|
-
.sp-pricing-card--loading
|
|
1706
|
+
.sp-pricing-card--loading,
|
|
1707
|
+
.sp-pricing-card[aria-busy="true"] {
|
|
1574
1708
|
opacity: var(--sp-opacity-active);
|
|
1575
1709
|
pointer-events: none;
|
|
1576
1710
|
}
|
|
@@ -1586,37 +1720,38 @@
|
|
|
1586
1720
|
.sp-pricing-card--interactive:hover,
|
|
1587
1721
|
.sp-pricing-card--interactive:focus-within,
|
|
1588
1722
|
.sp-pricing-card--interactive.sp-pricing-card--hover,
|
|
1589
|
-
.sp-pricing-card
|
|
1723
|
+
.sp-pricing-card.is-hover {
|
|
1590
1724
|
transform: translateY(calc(var(--sp-component-border-width) * -1));
|
|
1591
1725
|
box-shadow: var(--sp-shadow-lg);
|
|
1726
|
+
background-color: var(--sp-component-pricing-card-bg-hover);
|
|
1592
1727
|
}
|
|
1593
1728
|
|
|
1594
1729
|
.sp-pricing-card--featured.sp-pricing-card--interactive:hover,
|
|
1595
1730
|
.sp-pricing-card--featured.sp-pricing-card--interactive:focus-visible,
|
|
1596
1731
|
.sp-pricing-card--featured.sp-pricing-card--interactive:focus-within,
|
|
1597
1732
|
.sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--hover,
|
|
1598
|
-
.sp-pricing-card--featured.
|
|
1733
|
+
.sp-pricing-card--featured.is-hover,
|
|
1599
1734
|
.sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--focus,
|
|
1600
|
-
.sp-pricing-card--featured.
|
|
1735
|
+
.sp-pricing-card--featured.is-focus {
|
|
1601
1736
|
transform: scale(1.05) translateY(calc(var(--sp-component-border-width) * -1));
|
|
1602
1737
|
}
|
|
1603
1738
|
|
|
1604
1739
|
.sp-pricing-card--interactive:active,
|
|
1605
1740
|
.sp-pricing-card--interactive.sp-pricing-card--active,
|
|
1606
|
-
.sp-pricing-card
|
|
1741
|
+
.sp-pricing-card.is-active {
|
|
1607
1742
|
opacity: var(--sp-opacity-active);
|
|
1608
1743
|
transform: translateY(0);
|
|
1609
1744
|
}
|
|
1610
1745
|
|
|
1611
1746
|
.sp-pricing-card--featured.sp-pricing-card--interactive:active,
|
|
1612
1747
|
.sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--active,
|
|
1613
|
-
.sp-pricing-card--featured.
|
|
1748
|
+
.sp-pricing-card--featured.is-active {
|
|
1614
1749
|
transform: scale(1.05) translateY(0);
|
|
1615
1750
|
}
|
|
1616
1751
|
|
|
1617
1752
|
.sp-pricing-card--interactive:focus-visible,
|
|
1618
1753
|
.sp-pricing-card--interactive.sp-pricing-card--focus,
|
|
1619
|
-
.sp-pricing-card
|
|
1754
|
+
.sp-pricing-card.is-focus {
|
|
1620
1755
|
outline: none;
|
|
1621
1756
|
transform: translateY(calc(var(--sp-component-border-width) * -1));
|
|
1622
1757
|
box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
|
|
@@ -1685,6 +1820,14 @@
|
|
|
1685
1820
|
font-size: var(--sp-component-rating-size-lg);
|
|
1686
1821
|
}
|
|
1687
1822
|
|
|
1823
|
+
.sp-rating--full {
|
|
1824
|
+
width: 100%;
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
.sp-rating--pill {
|
|
1828
|
+
border-radius: var(--sp-radius-pill);
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1688
1831
|
.sp-rating:disabled,
|
|
1689
1832
|
.sp-rating[aria-disabled="true"],
|
|
1690
1833
|
.sp-rating--disabled {
|
package/dist/index.d.cts
CHANGED
|
@@ -25,10 +25,6 @@ declare const BUTTON_SIZES: {
|
|
|
25
25
|
};
|
|
26
26
|
type ButtonVariant = keyof typeof BUTTON_VARIANTS;
|
|
27
27
|
type ButtonSize = keyof typeof BUTTON_SIZES;
|
|
28
|
-
/**
|
|
29
|
-
* Generate classes for the Button component.
|
|
30
|
-
* @sync v2.x - Synced with latest design tokens, including CTA variants.
|
|
31
|
-
*/
|
|
32
28
|
interface ButtonRecipeOptions {
|
|
33
29
|
variant?: ButtonVariant;
|
|
34
30
|
size?: ButtonSize;
|
|
@@ -89,6 +85,14 @@ interface InputRecipeOptions {
|
|
|
89
85
|
loading?: boolean;
|
|
90
86
|
}
|
|
91
87
|
declare function getInputClasses(opts?: InputRecipeOptions): string;
|
|
88
|
+
declare function getInputWrapperClasses(): string;
|
|
89
|
+
declare function getInputLabelClasses(opts?: {
|
|
90
|
+
disabled?: boolean;
|
|
91
|
+
}): string;
|
|
92
|
+
declare function getInputHelperTextClasses(opts?: {
|
|
93
|
+
disabled?: boolean;
|
|
94
|
+
}): string;
|
|
95
|
+
declare function getInputErrorMessageClasses(): string;
|
|
92
96
|
|
|
93
97
|
declare const BADGE_VARIANTS: {
|
|
94
98
|
readonly primary: true;
|
|
@@ -99,6 +103,8 @@ declare const BADGE_VARIANTS: {
|
|
|
99
103
|
readonly neutral: true;
|
|
100
104
|
readonly info: true;
|
|
101
105
|
readonly ghost: true;
|
|
106
|
+
readonly accent: true;
|
|
107
|
+
readonly cta: true;
|
|
102
108
|
};
|
|
103
109
|
declare const BADGE_SIZES: {
|
|
104
110
|
readonly sm: true;
|
|
@@ -107,10 +113,6 @@ declare const BADGE_SIZES: {
|
|
|
107
113
|
};
|
|
108
114
|
type BadgeVariant = keyof typeof BADGE_VARIANTS;
|
|
109
115
|
type BadgeSize = keyof typeof BADGE_SIZES;
|
|
110
|
-
/**
|
|
111
|
-
* Generate classes for the Badge component.
|
|
112
|
-
* @sync v2.x - Synced with latest design tokens, including hover states.
|
|
113
|
-
*/
|
|
114
116
|
interface BadgeRecipeOptions {
|
|
115
117
|
variant?: BadgeVariant;
|
|
116
118
|
size?: BadgeSize;
|
|
@@ -120,6 +122,7 @@ interface BadgeRecipeOptions {
|
|
|
120
122
|
active?: boolean;
|
|
121
123
|
disabled?: boolean;
|
|
122
124
|
loading?: boolean;
|
|
125
|
+
fullWidth?: boolean;
|
|
123
126
|
}
|
|
124
127
|
declare function getBadgeClasses(opts?: BadgeRecipeOptions): string;
|
|
125
128
|
|
|
@@ -132,6 +135,8 @@ declare const ICONBOX_VARIANTS: {
|
|
|
132
135
|
readonly info: true;
|
|
133
136
|
readonly neutral: true;
|
|
134
137
|
readonly ghost: true;
|
|
138
|
+
readonly accent: true;
|
|
139
|
+
readonly cta: true;
|
|
135
140
|
};
|
|
136
141
|
declare const ICONBOX_SIZES: {
|
|
137
142
|
readonly sm: true;
|
|
@@ -150,14 +155,19 @@ interface IconBoxRecipeOptions {
|
|
|
150
155
|
focused?: boolean;
|
|
151
156
|
active?: boolean;
|
|
152
157
|
pill?: boolean;
|
|
158
|
+
fullWidth?: boolean;
|
|
153
159
|
}
|
|
154
160
|
declare function getIconBoxClasses(opts?: IconBoxRecipeOptions): string;
|
|
155
161
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
162
|
+
declare const TESTIMONIAL_VARIANTS: {
|
|
163
|
+
readonly elevated: true;
|
|
164
|
+
readonly flat: true;
|
|
165
|
+
readonly outline: true;
|
|
166
|
+
readonly ghost: true;
|
|
167
|
+
};
|
|
168
|
+
type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;
|
|
160
169
|
interface TestimonialRecipeOptions {
|
|
170
|
+
variant?: TestimonialVariant;
|
|
161
171
|
disabled?: boolean;
|
|
162
172
|
loading?: boolean;
|
|
163
173
|
interactive?: boolean;
|
|
@@ -173,10 +183,6 @@ declare function getTestimonialAuthorInfoClasses(): string;
|
|
|
173
183
|
declare function getTestimonialAuthorNameClasses(): string;
|
|
174
184
|
declare function getTestimonialAuthorTitleClasses(): string;
|
|
175
185
|
|
|
176
|
-
/**
|
|
177
|
-
* Generate classes for the PricingCard component.
|
|
178
|
-
* @sync v2.x - Synced with latest design tokens.
|
|
179
|
-
*/
|
|
180
186
|
interface PricingCardRecipeOptions {
|
|
181
187
|
featured?: boolean;
|
|
182
188
|
disabled?: boolean;
|
|
@@ -199,10 +205,6 @@ declare const RATING_SIZES: {
|
|
|
199
205
|
readonly lg: true;
|
|
200
206
|
};
|
|
201
207
|
type RatingSize = keyof typeof RATING_SIZES;
|
|
202
|
-
/**
|
|
203
|
-
* Generate classes for the Rating component.
|
|
204
|
-
* @sync v2.x - Synced with latest design tokens.
|
|
205
|
-
*/
|
|
206
208
|
interface RatingRecipeOptions {
|
|
207
209
|
size?: RatingSize;
|
|
208
210
|
disabled?: boolean;
|
|
@@ -211,10 +213,12 @@ interface RatingRecipeOptions {
|
|
|
211
213
|
hovered?: boolean;
|
|
212
214
|
focused?: boolean;
|
|
213
215
|
active?: boolean;
|
|
216
|
+
pill?: boolean;
|
|
217
|
+
fullWidth?: boolean;
|
|
214
218
|
}
|
|
215
219
|
declare function getRatingClasses(opts?: RatingRecipeOptions): string;
|
|
216
220
|
declare function getRatingStarsClasses(): string;
|
|
217
221
|
declare function getRatingStarClasses(isFilled?: boolean): string;
|
|
218
222
|
declare function getRatingTextClasses(): string;
|
|
219
223
|
|
|
220
|
-
export { type BadgeRecipeOptions, type BadgeSize, type BadgeVariant, type ButtonRecipeOptions, type ButtonSize, type ButtonVariant, type CardRecipeOptions, type CardVariant, type IconBoxRecipeOptions, type IconBoxSize, type IconBoxVariant, type InputRecipeOptions, type InputSize, type InputState, type PricingCardRecipeOptions, type RatingRecipeOptions, type TestimonialRecipeOptions, getBadgeClasses, getButtonClasses, getCardClasses, getIconBoxClasses, getInputClasses, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
|
|
224
|
+
export { type BadgeRecipeOptions, type BadgeSize, type BadgeVariant, type ButtonRecipeOptions, type ButtonSize, type ButtonVariant, type CardRecipeOptions, type CardVariant, type IconBoxRecipeOptions, type IconBoxSize, type IconBoxVariant, type InputRecipeOptions, type InputSize, type InputState, type PricingCardRecipeOptions, type RatingRecipeOptions, type RatingSize, type TestimonialRecipeOptions, getBadgeClasses, getButtonClasses, getCardClasses, getIconBoxClasses, getInputClasses, getInputErrorMessageClasses, getInputHelperTextClasses, getInputLabelClasses, getInputWrapperClasses, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
|