@phcdevworks/spectre-ui 1.3.0 → 1.5.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/dist/index.css CHANGED
@@ -212,9 +212,9 @@
212
212
  --sp-icon-box-icon-warning: #d48806;
213
213
  --sp-icon-box-icon-danger: #dc2626;
214
214
  --sp-shadow-none: none;
215
- --sp-shadow-sm: 0 1px 2px 0 rgba(34, 43, 56, 0.06);
216
- --sp-shadow-md: 0 2px 6px -1px rgba(34, 43, 56, 0.08);
217
- --sp-shadow-lg: 0 6px 16px -4px rgba(34, 43, 56, 0.12);
215
+ --sp-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.06);
216
+ --sp-shadow-md: 0 2px 6px -1px rgba(0, 0, 0, 0.08);
217
+ --sp-shadow-lg: 0 6px 16px -4px rgba(0, 0, 0, 0.12);
218
218
  --sp-breakpoint-sm: 640px;
219
219
  --sp-breakpoint-md: 768px;
220
220
  --sp-breakpoint-lg: 1024px;
@@ -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: #7135dd;
302
- --sp-button-accent-bghover: #5d28b8;
303
- --sp-button-accent-bgactive: #4d2393;
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;
@@ -353,7 +353,7 @@
353
353
  --sp-surface-page: #141b24;
354
354
  --sp-surface-card: #222b38;
355
355
  --sp-surface-input: #374253;
356
- --sp-surface-overlay: #222b38;
356
+ --sp-surface-overlay: rgba(0, 0, 0, 0.6);
357
357
  --sp-surface-alternate: #222b38;
358
358
  --sp-surface-hero: linear-gradient(135deg, #5d28b8 0%, #401f75 100%);
359
359
  --sp-text-on-page-default: #f7f8fb;
@@ -564,6 +564,10 @@
564
564
  --sp-component-badge-neutral-text: var(--sp-badge-neutral-text);
565
565
  --sp-component-badge-info-bg: var(--sp-badge-info-bg);
566
566
  --sp-component-badge-info-text: var(--sp-badge-info-text);
567
+ --sp-component-badge-ghost-bg: var(--sp-button-ghost-bg);
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);
567
571
 
568
572
  /* badge hover states derived from Spectre token semantics */
569
573
  --sp-component-badge-primary-bg-hover: var(--sp-button-primary-bghover);
@@ -573,6 +577,8 @@
573
577
  --sp-component-badge-danger-bg-hover: var(--sp-color-error-200);
574
578
  --sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-200);
575
579
  --sp-component-badge-info-bg-hover: var(--sp-color-info-200);
580
+ --sp-component-badge-ghost-bg-hover: var(--sp-button-ghost-bghover);
581
+ --sp-component-badge-accent-bg-hover: var(--sp-button-accent-bghover);
576
582
 
577
583
  --sp-component-badge-padding-x-sm: var(--sp-space-8);
578
584
  --sp-component-badge-padding-x-md: var(--sp-space-12);
@@ -591,30 +597,41 @@
591
597
  --sp-component-iconbox-success-bg: var(--sp-color-success-50);
592
598
  --sp-component-iconbox-success-text: var(--sp-icon-box-icon-success);
593
599
  --sp-component-iconbox-warning-bg: var(--sp-color-warning-50);
594
- --sp-component-iconbox-warning-text: var(--sp-color-warning-800);
600
+ --sp-component-iconbox-warning-text: var(--sp-icon-box-icon-warning);
595
601
  --sp-component-iconbox-danger-bg: var(--sp-color-error-50);
596
602
  --sp-component-iconbox-danger-text: var(--sp-icon-box-icon-danger);
597
603
  --sp-component-iconbox-info-bg: var(--sp-color-info-50);
598
604
  --sp-component-iconbox-info-text: var(--sp-badge-info-text);
605
+ --sp-component-iconbox-secondary-bg: var(--sp-button-secondary-bg);
606
+ --sp-component-iconbox-secondary-text: var(--sp-button-secondary-text);
607
+ --sp-component-iconbox-secondary-border: var(--sp-button-secondary-border);
608
+ --sp-component-iconbox-neutral-bg: var(--sp-color-neutral-50);
609
+ --sp-component-iconbox-neutral-text: var(--sp-badge-neutral-text);
610
+ --sp-component-iconbox-ghost-bg: var(--sp-button-ghost-bg);
611
+ --sp-component-iconbox-ghost-text: var(--sp-button-ghost-text);
612
+ --sp-component-iconbox-accent-bg: var(--sp-button-accent-bg);
613
+ --sp-component-iconbox-accent-text: var(--sp-button-accent-text);
599
614
 
600
615
  /* testimonial roles */
601
616
  --sp-component-testimonial-bg: var(--sp-surface-card);
617
+ --sp-component-testimonial-bg-hover: var(--sp-color-neutral-50);
602
618
  --sp-component-testimonial-border: var(--sp-color-neutral-200);
603
619
  --sp-component-testimonial-text: var(--sp-color-neutral-700);
604
620
  --sp-component-testimonial-author-name: var(--sp-color-neutral-900);
605
- --sp-component-testimonial-author-title: var(--sp-color-neutral-500);
606
- --sp-component-testimonial-quote-mark: var(--sp-color-neutral-300);
621
+ --sp-component-testimonial-author-title: var(--sp-color-neutral-600);
622
+ --sp-component-testimonial-quote-mark: var(--sp-color-neutral-600);
607
623
 
608
624
  /* pricing card roles */
609
625
  --sp-component-pricing-card-bg: var(--sp-surface-card);
626
+ --sp-component-pricing-card-bg-hover: var(--sp-color-neutral-50);
610
627
  --sp-component-pricing-card-border: var(--sp-color-neutral-200);
611
628
  --sp-component-pricing-card-featured-bg: var(--sp-color-info-600);
612
629
  --sp-component-pricing-card-featured-text: var(--sp-button-text-on-primary);
613
630
  --sp-component-pricing-card-featured-badge-bg: var(--sp-color-warning-500);
614
631
  --sp-component-pricing-card-featured-badge-text: var(--sp-color-neutral-900);
615
632
  --sp-component-pricing-card-price: var(--sp-color-neutral-900);
616
- --sp-component-pricing-card-featured-price: var(--sp-color-neutral-50);
617
- --sp-component-pricing-card-price-description: var(--sp-color-neutral-500);
633
+ --sp-component-pricing-card-featured-price: var(--sp-color-white);
634
+ --sp-component-pricing-card-price-description: var(--sp-color-neutral-600);
618
635
 
619
636
  /* rating roles */
620
637
  --sp-component-rating-star-filled: var(--sp-color-warning-500);
@@ -627,14 +644,34 @@
627
644
 
628
645
  /* dark mode overrides mapped from Spectre token mode definitions */
629
646
  :where(:root[data-spectre-theme="dark"]) {
647
+ /* badge hover states remain manual as they are not currently exported as tokens */
648
+ --sp-component-badge-success-bg-hover: var(--sp-color-success-700);
649
+ --sp-component-badge-warning-bg-hover: var(--sp-color-warning-800);
650
+ --sp-component-badge-danger-bg-hover: var(--sp-color-error-700);
651
+ --sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-600);
652
+ --sp-component-badge-info-bg-hover: var(--sp-color-info-700);
653
+
654
+ --sp-component-iconbox-primary-bg: var(--sp-color-neutral-800);
655
+ --sp-component-iconbox-primary-text: var(--sp-color-brand-400);
656
+ --sp-component-iconbox-success-bg: var(--sp-color-neutral-800);
657
+ --sp-component-iconbox-success-text: var(--sp-color-success-400);
658
+ --sp-component-iconbox-warning-bg: var(--sp-color-neutral-800);
659
+ --sp-component-iconbox-warning-text: var(--sp-color-warning-400);
660
+ --sp-component-iconbox-danger-bg: var(--sp-color-neutral-800);
661
+ --sp-component-iconbox-danger-text: var(--sp-color-error-400);
662
+ --sp-component-iconbox-info-bg: var(--sp-color-neutral-800);
663
+ --sp-component-iconbox-info-text: var(--sp-color-info-400);
664
+
630
665
  --sp-component-testimonial-bg: var(--sp-color-neutral-800);
666
+ --sp-component-testimonial-bg-hover: var(--sp-color-neutral-700);
631
667
  --sp-component-testimonial-border: var(--sp-color-neutral-700);
632
668
  --sp-component-testimonial-text: var(--sp-color-neutral-200);
633
669
  --sp-component-testimonial-author-name: var(--sp-color-neutral-100);
634
670
  --sp-component-testimonial-author-title: var(--sp-color-neutral-300);
635
- --sp-component-testimonial-quote-mark: var(--sp-color-neutral-600);
671
+ --sp-component-testimonial-quote-mark: var(--sp-color-neutral-300);
636
672
 
637
673
  --sp-component-pricing-card-bg: var(--sp-color-neutral-800);
674
+ --sp-component-pricing-card-bg-hover: var(--sp-color-neutral-700);
638
675
  --sp-component-pricing-card-border: var(--sp-color-neutral-700);
639
676
  --sp-component-pricing-card-price: var(--sp-color-neutral-100);
640
677
  --sp-component-pricing-card-price-description: var(--sp-color-neutral-300);
@@ -1024,7 +1061,8 @@
1024
1061
  box-shadow: none;
1025
1062
  }
1026
1063
 
1027
- .sp-input--loading {
1064
+ .sp-input--loading,
1065
+ .sp-input[aria-busy="true"] {
1028
1066
  pointer-events: none;
1029
1067
  opacity: var(--sp-opacity-active);
1030
1068
  }
@@ -1131,6 +1169,10 @@
1131
1169
  white-space: nowrap;
1132
1170
  }
1133
1171
 
1172
+ .sp-badge--full {
1173
+ width: 100%;
1174
+ }
1175
+
1134
1176
  .sp-badge--sm {
1135
1177
  padding: var(--sp-component-badge-padding-y-sm) var(--sp-component-badge-padding-x-sm);
1136
1178
  font-size: var(--sp-font-xs-size);
@@ -1227,6 +1269,28 @@
1227
1269
  background-color: var(--sp-component-badge-info-bg-hover);
1228
1270
  }
1229
1271
 
1272
+ .sp-badge--ghost {
1273
+ background-color: var(--sp-component-badge-ghost-bg);
1274
+ color: var(--sp-component-badge-ghost-text);
1275
+ }
1276
+
1277
+ .sp-badge--ghost.sp-badge--interactive:hover,
1278
+ .sp-badge--ghost.sp-badge--interactive.sp-badge--hover,
1279
+ .sp-badge--ghost.sp-badge--interactive.is-hover {
1280
+ background-color: var(--sp-component-badge-ghost-bg-hover);
1281
+ }
1282
+
1283
+ .sp-badge--accent {
1284
+ background-color: var(--sp-component-badge-accent-bg);
1285
+ color: var(--sp-component-badge-accent-text);
1286
+ }
1287
+
1288
+ .sp-badge--accent.sp-badge--interactive:hover,
1289
+ .sp-badge--accent.sp-badge--interactive.sp-badge--hover,
1290
+ .sp-badge--accent.sp-badge--interactive.is-hover {
1291
+ background-color: var(--sp-component-badge-accent-bg-hover);
1292
+ }
1293
+
1230
1294
  .sp-badge--interactive {
1231
1295
  cursor: pointer;
1232
1296
  transition:
@@ -1269,6 +1333,7 @@
1269
1333
  border-radius: var(--sp-component-iconbox-radius);
1270
1334
  color: var(--sp-component-iconbox-primary-text);
1271
1335
  background-color: var(--sp-component-iconbox-primary-bg);
1336
+ border: var(--sp-component-border-width) solid transparent;
1272
1337
  font-family: var(--sp-font-family-sans);
1273
1338
  font-weight: var(--sp-font-md-weight);
1274
1339
  transition:
@@ -1348,6 +1413,12 @@
1348
1413
  color: var(--sp-component-iconbox-primary-text);
1349
1414
  }
1350
1415
 
1416
+ .sp-iconbox--secondary {
1417
+ background-color: var(--sp-component-iconbox-secondary-bg);
1418
+ color: var(--sp-component-iconbox-secondary-text);
1419
+ border-color: var(--sp-component-iconbox-secondary-border);
1420
+ }
1421
+
1351
1422
  .sp-iconbox--success {
1352
1423
  background-color: var(--sp-component-iconbox-success-bg);
1353
1424
  color: var(--sp-component-iconbox-success-text);
@@ -1368,6 +1439,21 @@
1368
1439
  color: var(--sp-component-iconbox-info-text);
1369
1440
  }
1370
1441
 
1442
+ .sp-iconbox--neutral {
1443
+ background-color: var(--sp-component-iconbox-neutral-bg);
1444
+ color: var(--sp-component-iconbox-neutral-text);
1445
+ }
1446
+
1447
+ .sp-iconbox--ghost {
1448
+ background-color: var(--sp-component-iconbox-ghost-bg);
1449
+ color: var(--sp-component-iconbox-ghost-text);
1450
+ }
1451
+
1452
+ .sp-iconbox--accent {
1453
+ background-color: var(--sp-component-iconbox-accent-bg);
1454
+ color: var(--sp-component-iconbox-accent-text);
1455
+ }
1456
+
1371
1457
  .sp-iconbox--interactive {
1372
1458
  cursor: pointer;
1373
1459
  }
@@ -1426,6 +1512,10 @@
1426
1512
  pointer-events: none;
1427
1513
  }
1428
1514
 
1515
+ .sp-testimonial--full {
1516
+ height: 100%;
1517
+ }
1518
+
1429
1519
  .sp-testimonial--interactive {
1430
1520
  cursor: pointer;
1431
1521
  transition:
@@ -1440,6 +1530,7 @@
1440
1530
  .sp-testimonial--interactive.is-hover {
1441
1531
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1442
1532
  box-shadow: var(--sp-shadow-lg);
1533
+ background-color: var(--sp-component-testimonial-bg-hover);
1443
1534
  }
1444
1535
 
1445
1536
  .sp-testimonial--interactive:active,
@@ -1532,6 +1623,10 @@
1532
1623
  pointer-events: none;
1533
1624
  }
1534
1625
 
1626
+ .sp-pricing-card--full {
1627
+ height: 100%;
1628
+ }
1629
+
1535
1630
  .sp-pricing-card--interactive {
1536
1631
  cursor: pointer;
1537
1632
  }
@@ -1542,6 +1637,7 @@
1542
1637
  .sp-pricing-card--interactive.is-hover {
1543
1638
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1544
1639
  box-shadow: var(--sp-shadow-lg);
1640
+ background-color: var(--sp-component-pricing-card-bg-hover);
1545
1641
  }
1546
1642
 
1547
1643
  .sp-pricing-card--featured.sp-pricing-card--interactive:hover,
@@ -1638,6 +1734,14 @@
1638
1734
  font-size: var(--sp-component-rating-size-lg);
1639
1735
  }
1640
1736
 
1737
+ .sp-rating--full {
1738
+ width: 100%;
1739
+ }
1740
+
1741
+ .sp-rating--pill {
1742
+ border-radius: var(--sp-radius-pill);
1743
+ }
1744
+
1641
1745
  .sp-rating:disabled,
1642
1746
  .sp-rating[aria-disabled="true"],
1643
1747
  .sp-rating--disabled {
package/dist/index.d.cts CHANGED
@@ -1,6 +1,7 @@
1
1
  declare const spectreBaseStylesPath = "@phcdevworks/spectre-ui/base.css";
2
2
  declare const spectreComponentsStylesPath = "@phcdevworks/spectre-ui/components.css";
3
3
  declare const spectreUtilitiesStylesPath = "@phcdevworks/spectre-ui/utilities.css";
4
+ declare const spectreIndexStylesPath = "@phcdevworks/spectre-ui/index.css";
4
5
  declare const spectreStyles: {
5
6
  index: string;
6
7
  base: string;
@@ -24,10 +25,6 @@ declare const BUTTON_SIZES: {
24
25
  };
25
26
  type ButtonVariant = keyof typeof BUTTON_VARIANTS;
26
27
  type ButtonSize = keyof typeof BUTTON_SIZES;
27
- /**
28
- * Generate classes for the Button component.
29
- * @sync v2.x - Synced with latest design tokens, including CTA variants.
30
- */
31
28
  interface ButtonRecipeOptions {
32
29
  variant?: ButtonVariant;
33
30
  size?: ButtonSize;
@@ -84,6 +81,8 @@ interface InputRecipeOptions {
84
81
  focused?: boolean;
85
82
  hovered?: boolean;
86
83
  active?: boolean;
84
+ disabled?: boolean;
85
+ loading?: boolean;
87
86
  }
88
87
  declare function getInputClasses(opts?: InputRecipeOptions): string;
89
88
 
@@ -95,6 +94,8 @@ declare const BADGE_VARIANTS: {
95
94
  readonly danger: true;
96
95
  readonly neutral: true;
97
96
  readonly info: true;
97
+ readonly ghost: true;
98
+ readonly accent: true;
98
99
  };
99
100
  declare const BADGE_SIZES: {
100
101
  readonly sm: true;
@@ -103,10 +104,6 @@ declare const BADGE_SIZES: {
103
104
  };
104
105
  type BadgeVariant = keyof typeof BADGE_VARIANTS;
105
106
  type BadgeSize = keyof typeof BADGE_SIZES;
106
- /**
107
- * Generate classes for the Badge component.
108
- * @sync v2.x - Synced with latest design tokens, including hover states.
109
- */
110
107
  interface BadgeRecipeOptions {
111
108
  variant?: BadgeVariant;
112
109
  size?: BadgeSize;
@@ -116,15 +113,20 @@ interface BadgeRecipeOptions {
116
113
  active?: boolean;
117
114
  disabled?: boolean;
118
115
  loading?: boolean;
116
+ fullWidth?: boolean;
119
117
  }
120
118
  declare function getBadgeClasses(opts?: BadgeRecipeOptions): string;
121
119
 
122
120
  declare const ICONBOX_VARIANTS: {
123
121
  readonly primary: true;
122
+ readonly secondary: true;
124
123
  readonly success: true;
125
124
  readonly warning: true;
126
125
  readonly danger: true;
127
126
  readonly info: true;
127
+ readonly neutral: true;
128
+ readonly ghost: true;
129
+ readonly accent: true;
128
130
  };
129
131
  declare const ICONBOX_SIZES: {
130
132
  readonly sm: true;
@@ -146,10 +148,6 @@ interface IconBoxRecipeOptions {
146
148
  }
147
149
  declare function getIconBoxClasses(opts?: IconBoxRecipeOptions): string;
148
150
 
149
- /**
150
- * Generate classes for the Testimonial component.
151
- * @sync v2.x - Synced with latest design tokens.
152
- */
153
151
  interface TestimonialRecipeOptions {
154
152
  disabled?: boolean;
155
153
  loading?: boolean;
@@ -157,6 +155,7 @@ interface TestimonialRecipeOptions {
157
155
  hovered?: boolean;
158
156
  focused?: boolean;
159
157
  active?: boolean;
158
+ fullHeight?: boolean;
160
159
  }
161
160
  declare function getTestimonialClasses(opts?: TestimonialRecipeOptions): string;
162
161
  declare function getTestimonialQuoteClasses(): string;
@@ -165,10 +164,6 @@ declare function getTestimonialAuthorInfoClasses(): string;
165
164
  declare function getTestimonialAuthorNameClasses(): string;
166
165
  declare function getTestimonialAuthorTitleClasses(): string;
167
166
 
168
- /**
169
- * Generate classes for the PricingCard component.
170
- * @sync v2.x - Synced with latest design tokens.
171
- */
172
167
  interface PricingCardRecipeOptions {
173
168
  featured?: boolean;
174
169
  disabled?: boolean;
@@ -177,6 +172,7 @@ interface PricingCardRecipeOptions {
177
172
  hovered?: boolean;
178
173
  focused?: boolean;
179
174
  active?: boolean;
175
+ fullHeight?: boolean;
180
176
  }
181
177
  declare function getPricingCardClasses(opts?: PricingCardRecipeOptions): string;
182
178
  declare function getPricingCardBadgeClasses(): string;
@@ -190,10 +186,6 @@ declare const RATING_SIZES: {
190
186
  readonly lg: true;
191
187
  };
192
188
  type RatingSize = keyof typeof RATING_SIZES;
193
- /**
194
- * Generate classes for the Rating component.
195
- * @sync v2.x - Synced with latest design tokens.
196
- */
197
189
  interface RatingRecipeOptions {
198
190
  size?: RatingSize;
199
191
  disabled?: boolean;
@@ -202,10 +194,12 @@ interface RatingRecipeOptions {
202
194
  hovered?: boolean;
203
195
  focused?: boolean;
204
196
  active?: boolean;
197
+ pill?: boolean;
198
+ fullWidth?: boolean;
205
199
  }
206
200
  declare function getRatingClasses(opts?: RatingRecipeOptions): string;
207
201
  declare function getRatingStarsClasses(): string;
208
202
  declare function getRatingStarClasses(isFilled?: boolean): string;
209
203
  declare function getRatingTextClasses(): string;
210
204
 
211
- 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, spectreStyles, spectreUtilitiesStylesPath };
205
+ 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, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  declare const spectreBaseStylesPath = "@phcdevworks/spectre-ui/base.css";
2
2
  declare const spectreComponentsStylesPath = "@phcdevworks/spectre-ui/components.css";
3
3
  declare const spectreUtilitiesStylesPath = "@phcdevworks/spectre-ui/utilities.css";
4
+ declare const spectreIndexStylesPath = "@phcdevworks/spectre-ui/index.css";
4
5
  declare const spectreStyles: {
5
6
  index: string;
6
7
  base: string;
@@ -24,10 +25,6 @@ declare const BUTTON_SIZES: {
24
25
  };
25
26
  type ButtonVariant = keyof typeof BUTTON_VARIANTS;
26
27
  type ButtonSize = keyof typeof BUTTON_SIZES;
27
- /**
28
- * Generate classes for the Button component.
29
- * @sync v2.x - Synced with latest design tokens, including CTA variants.
30
- */
31
28
  interface ButtonRecipeOptions {
32
29
  variant?: ButtonVariant;
33
30
  size?: ButtonSize;
@@ -84,6 +81,8 @@ interface InputRecipeOptions {
84
81
  focused?: boolean;
85
82
  hovered?: boolean;
86
83
  active?: boolean;
84
+ disabled?: boolean;
85
+ loading?: boolean;
87
86
  }
88
87
  declare function getInputClasses(opts?: InputRecipeOptions): string;
89
88
 
@@ -95,6 +94,8 @@ declare const BADGE_VARIANTS: {
95
94
  readonly danger: true;
96
95
  readonly neutral: true;
97
96
  readonly info: true;
97
+ readonly ghost: true;
98
+ readonly accent: true;
98
99
  };
99
100
  declare const BADGE_SIZES: {
100
101
  readonly sm: true;
@@ -103,10 +104,6 @@ declare const BADGE_SIZES: {
103
104
  };
104
105
  type BadgeVariant = keyof typeof BADGE_VARIANTS;
105
106
  type BadgeSize = keyof typeof BADGE_SIZES;
106
- /**
107
- * Generate classes for the Badge component.
108
- * @sync v2.x - Synced with latest design tokens, including hover states.
109
- */
110
107
  interface BadgeRecipeOptions {
111
108
  variant?: BadgeVariant;
112
109
  size?: BadgeSize;
@@ -116,15 +113,20 @@ interface BadgeRecipeOptions {
116
113
  active?: boolean;
117
114
  disabled?: boolean;
118
115
  loading?: boolean;
116
+ fullWidth?: boolean;
119
117
  }
120
118
  declare function getBadgeClasses(opts?: BadgeRecipeOptions): string;
121
119
 
122
120
  declare const ICONBOX_VARIANTS: {
123
121
  readonly primary: true;
122
+ readonly secondary: true;
124
123
  readonly success: true;
125
124
  readonly warning: true;
126
125
  readonly danger: true;
127
126
  readonly info: true;
127
+ readonly neutral: true;
128
+ readonly ghost: true;
129
+ readonly accent: true;
128
130
  };
129
131
  declare const ICONBOX_SIZES: {
130
132
  readonly sm: true;
@@ -146,10 +148,6 @@ interface IconBoxRecipeOptions {
146
148
  }
147
149
  declare function getIconBoxClasses(opts?: IconBoxRecipeOptions): string;
148
150
 
149
- /**
150
- * Generate classes for the Testimonial component.
151
- * @sync v2.x - Synced with latest design tokens.
152
- */
153
151
  interface TestimonialRecipeOptions {
154
152
  disabled?: boolean;
155
153
  loading?: boolean;
@@ -157,6 +155,7 @@ interface TestimonialRecipeOptions {
157
155
  hovered?: boolean;
158
156
  focused?: boolean;
159
157
  active?: boolean;
158
+ fullHeight?: boolean;
160
159
  }
161
160
  declare function getTestimonialClasses(opts?: TestimonialRecipeOptions): string;
162
161
  declare function getTestimonialQuoteClasses(): string;
@@ -165,10 +164,6 @@ declare function getTestimonialAuthorInfoClasses(): string;
165
164
  declare function getTestimonialAuthorNameClasses(): string;
166
165
  declare function getTestimonialAuthorTitleClasses(): string;
167
166
 
168
- /**
169
- * Generate classes for the PricingCard component.
170
- * @sync v2.x - Synced with latest design tokens.
171
- */
172
167
  interface PricingCardRecipeOptions {
173
168
  featured?: boolean;
174
169
  disabled?: boolean;
@@ -177,6 +172,7 @@ interface PricingCardRecipeOptions {
177
172
  hovered?: boolean;
178
173
  focused?: boolean;
179
174
  active?: boolean;
175
+ fullHeight?: boolean;
180
176
  }
181
177
  declare function getPricingCardClasses(opts?: PricingCardRecipeOptions): string;
182
178
  declare function getPricingCardBadgeClasses(): string;
@@ -190,10 +186,6 @@ declare const RATING_SIZES: {
190
186
  readonly lg: true;
191
187
  };
192
188
  type RatingSize = keyof typeof RATING_SIZES;
193
- /**
194
- * Generate classes for the Rating component.
195
- * @sync v2.x - Synced with latest design tokens.
196
- */
197
189
  interface RatingRecipeOptions {
198
190
  size?: RatingSize;
199
191
  disabled?: boolean;
@@ -202,10 +194,12 @@ interface RatingRecipeOptions {
202
194
  hovered?: boolean;
203
195
  focused?: boolean;
204
196
  active?: boolean;
197
+ pill?: boolean;
198
+ fullWidth?: boolean;
205
199
  }
206
200
  declare function getRatingClasses(opts?: RatingRecipeOptions): string;
207
201
  declare function getRatingStarsClasses(): string;
208
202
  declare function getRatingStarClasses(isFilled?: boolean): string;
209
203
  declare function getRatingTextClasses(): string;
210
204
 
211
- 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, spectreStyles, spectreUtilitiesStylesPath };
205
+ 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, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };