@usefidel/design-system 0.17.0 → 0.19.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
@@ -625,6 +625,46 @@
625
625
  flex-shrink: 0;
626
626
  color: var(--color-text-muted, #a3a3a3);
627
627
  }
628
+ .fds-select__trigger--small {
629
+ min-height: 32px;
630
+ padding: 0 var(--spacing-2, 8px) 0 var(--spacing-3, 12px);
631
+ border-color: var(--color-border, #e5e5e5);
632
+ font-size: var(--font-size-text-sm, 14px);
633
+ }
634
+ .fds-select__trigger--small .fds-select__chevron {
635
+ color: var(--color-text, #171717);
636
+ }
637
+ .fds-select-field--inline,
638
+ .fds-select-field--inline .fds-select {
639
+ width: auto;
640
+ }
641
+ .fds-select__trigger--inline {
642
+ width: auto;
643
+ min-height: 32px;
644
+ padding: 0 var(--spacing-2, 8px);
645
+ border-color: transparent;
646
+ background: transparent;
647
+ font-size: var(--font-size-text-sm, 14px);
648
+ color: var(--color-text-tertiary, #737373);
649
+ }
650
+ .fds-select__trigger--inline:hover:not(:disabled) {
651
+ background: var(--color-surface-subtle, #fafafa);
652
+ }
653
+ .fds-select__trigger--inline:focus-visible,
654
+ .fds-select__trigger--inline.fds-select__trigger--open {
655
+ border-color: transparent;
656
+ box-shadow: none;
657
+ outline: 2px solid var(--color-accent, #ea580c);
658
+ outline-offset: 0;
659
+ }
660
+ .fds-select__trigger--small,
661
+ .fds-select__trigger--inline {
662
+ width: auto;
663
+ }
664
+ .fds-select__trigger--small .fds-select__value,
665
+ .fds-select__trigger--inline .fds-select__value {
666
+ flex: 0 1 auto;
667
+ }
628
668
  .fds-select__popover {
629
669
  position: absolute;
630
670
  top: calc(100% + 4px);
@@ -637,6 +677,16 @@
637
677
  box-shadow: var(--shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.1));
638
678
  overflow: hidden;
639
679
  }
680
+ .fds-select__trigger--small + .fds-select__popover,
681
+ .fds-select__trigger--inline + .fds-select__popover {
682
+ right: auto;
683
+ min-width: 260px;
684
+ }
685
+ .fds-select__trigger--small + .fds-select__popover--end,
686
+ .fds-select__trigger--inline + .fds-select__popover--end {
687
+ left: auto;
688
+ right: 0;
689
+ }
640
690
  .fds-select__search {
641
691
  padding: var(--spacing-2, 8px);
642
692
  border-bottom: 1px solid var(--color-border-light, #f5f5f5);
@@ -691,6 +741,19 @@
691
741
  flex-shrink: 0;
692
742
  color: var(--color-text-muted, #a3a3a3);
693
743
  }
744
+ .fds-select__optBody {
745
+ display: flex;
746
+ flex-direction: column;
747
+ gap: 2px;
748
+ min-width: 0;
749
+ flex: 1 1 auto;
750
+ }
751
+ .fds-select__optDescription {
752
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
753
+ font-size: var(--font-size-text-xs, 12px);
754
+ line-height: 18px;
755
+ color: var(--color-text-tertiary, #737373);
756
+ }
694
757
  .fds-select__optText {
695
758
  display: inline-flex;
696
759
  align-items: baseline;
@@ -716,7 +779,7 @@
716
779
  display: inline-flex;
717
780
  align-items: center;
718
781
  flex-shrink: 0;
719
- color: var(--color-accent, #ea580c);
782
+ color: var(--color-text, #171717);
720
783
  }
721
784
  .fds-select__hint,
722
785
  .fds-select__error {
@@ -1337,6 +1400,38 @@
1337
1400
  transparent);
1338
1401
  }
1339
1402
  }
1403
+ .fds-segmented--pill {
1404
+ display: inline-flex;
1405
+ gap: 2px;
1406
+ padding: 3px;
1407
+ border-radius: var(--radius-lg, 8px);
1408
+ background: var(--color-surface, #f5f5f5);
1409
+ box-shadow: none;
1410
+ }
1411
+ .fds-segmented--pill .fds-segmented__option {
1412
+ padding: 5px 12px;
1413
+ border-radius: var(--radius-md, 6px);
1414
+ color: var(--color-text-tertiary, #737373);
1415
+ }
1416
+ .fds-segmented--pill .fds-segmented__option[aria-selected=true] {
1417
+ background: var(--color-surface-raised, #ffffff);
1418
+ color: var(--color-text, #171717);
1419
+ font-weight: 500;
1420
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 0 0 1px var(--color-border, #e5e5e5);
1421
+ }
1422
+ .fds-segmented--pill .fds-segmented__option[aria-selected=true]::after {
1423
+ display: none;
1424
+ }
1425
+ .fds-segmented--pill .fds-segmented__option:focus-visible {
1426
+ border-radius: var(--radius-md, 6px);
1427
+ }
1428
+ @media (max-width: 640px) {
1429
+ .fds-segmented--pill {
1430
+ padding-right: 3px;
1431
+ -webkit-mask-image: none;
1432
+ mask-image: none;
1433
+ }
1434
+ }
1340
1435
 
1341
1436
  /* src/components/Avatar/avatar.css */
1342
1437
  .fds-avatar {
@@ -1519,6 +1614,15 @@
1519
1614
  .fds-dot--danger {
1520
1615
  background: var(--color-destructive, #eb2d2d);
1521
1616
  }
1617
+ .fds-tag__icon {
1618
+ display: inline-flex;
1619
+ flex-shrink: 0;
1620
+ color: var(--color-text-secondary, #525252);
1621
+ }
1622
+ .fds-tag__icon > svg {
1623
+ width: 14px;
1624
+ height: 14px;
1625
+ }
1522
1626
 
1523
1627
  /* src/components/MultiSelect/multi-select.css */
1524
1628
  .fds-multiselect {
@@ -1666,6 +1770,110 @@
1666
1770
  outline-offset: 2px;
1667
1771
  border-radius: var(--radius-xs, 2px);
1668
1772
  }
1773
+ .fds-multiselect--field {
1774
+ display: flex;
1775
+ flex-direction: column;
1776
+ gap: var(--spacing-2, 8px);
1777
+ width: 100%;
1778
+ }
1779
+ .fds-multiselect__fieldLabel {
1780
+ font-family: var(--font-display, "Rethink Sans", system-ui, sans-serif);
1781
+ font-size: var(--font-size-label-sm, 14px);
1782
+ line-height: var(--line-height-label-sm, 22px);
1783
+ font-weight: var(--font-weight-medium, 500);
1784
+ color: var(--color-text, #171717);
1785
+ }
1786
+ .fds-multiselect__fieldBox {
1787
+ display: flex;
1788
+ align-items: center;
1789
+ gap: var(--spacing-2, 8px);
1790
+ min-height: 44px;
1791
+ padding: 6px var(--spacing-1, 4px) 6px var(--spacing-2, 8px);
1792
+ background: var(--color-surface-raised, #ffffff);
1793
+ border: 1px solid var(--color-border-strong, #d4d4d4);
1794
+ border-radius: var(--radius-md, 6px);
1795
+ cursor: pointer;
1796
+ transition: border-color var(--duration-instant, 80ms) ease, box-shadow var(--duration-instant, 80ms) ease;
1797
+ }
1798
+ .fds-multiselect__fieldBox--open,
1799
+ .fds-multiselect__fieldBox:focus-within {
1800
+ border-color: var(--color-accent, #ea580c);
1801
+ box-shadow: inset 0 0 0 1px var(--color-accent, #ea580c);
1802
+ }
1803
+ .fds-multiselect__fieldBox--disabled {
1804
+ background: var(--color-surface-subtle, #fafafa);
1805
+ cursor: not-allowed;
1806
+ }
1807
+ .fds-multiselect__chips {
1808
+ display: flex;
1809
+ flex-wrap: wrap;
1810
+ gap: 6px;
1811
+ flex: 1 1 auto;
1812
+ min-width: 0;
1813
+ }
1814
+ .fds-multiselect__placeholder {
1815
+ padding-left: 4px;
1816
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
1817
+ font-size: var(--font-size-text-md, 16px);
1818
+ color: var(--color-text-muted, #a3a3a3);
1819
+ }
1820
+ .fds-multiselect__chip {
1821
+ display: inline-flex;
1822
+ align-items: center;
1823
+ gap: 4px;
1824
+ max-width: 100%;
1825
+ padding: 3px 4px 3px 8px;
1826
+ border: 1px solid var(--color-border, #e5e5e5);
1827
+ border-radius: var(--radius-sm, 4px);
1828
+ background: var(--color-surface-subtle, #fafafa);
1829
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
1830
+ font-size: var(--font-size-text-xs, 12px);
1831
+ line-height: 18px;
1832
+ color: var(--color-text, #171717);
1833
+ }
1834
+ .fds-multiselect__chipRemove {
1835
+ display: inline-flex;
1836
+ align-items: center;
1837
+ justify-content: center;
1838
+ width: 16px;
1839
+ height: 16px;
1840
+ padding: 0;
1841
+ border: 0;
1842
+ border-radius: 3px;
1843
+ background: transparent;
1844
+ color: var(--color-text-tertiary, #737373);
1845
+ cursor: pointer;
1846
+ }
1847
+ .fds-multiselect__chipRemove:hover {
1848
+ background: var(--color-surface-hover, #ececec);
1849
+ color: var(--color-text, #171717);
1850
+ }
1851
+ .fds-multiselect__chipRemove:focus-visible {
1852
+ outline: 2px solid var(--color-accent, #ea580c);
1853
+ outline-offset: 1px;
1854
+ }
1855
+ .fds-multiselect__fieldBoxToggle {
1856
+ display: inline-flex;
1857
+ align-items: center;
1858
+ justify-content: center;
1859
+ align-self: stretch;
1860
+ flex-shrink: 0;
1861
+ padding: 0 6px;
1862
+ border: 0;
1863
+ background: transparent;
1864
+ cursor: pointer;
1865
+ }
1866
+ .fds-multiselect__fieldBoxToggle:focus-visible {
1867
+ outline: none;
1868
+ }
1869
+ .fds-multiselect__fieldBoxToggle .fds-multiselect__chevron {
1870
+ margin-left: 0;
1871
+ }
1872
+ .fds-multiselect--field .fds-multiselect__popover {
1873
+ left: 0;
1874
+ right: auto;
1875
+ min-width: 280px;
1876
+ }
1669
1877
 
1670
1878
  /* src/components/SearchInput/search-input.css */
1671
1879
  .fds-search {
@@ -1914,6 +2122,31 @@
1914
2122
  color: var(--color-primary-text, #ffffff);
1915
2123
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.13));
1916
2124
  }
2125
+ .fds-empty--compact {
2126
+ gap: var(--spacing-4, 16px);
2127
+ padding: var(--spacing-8, 32px) var(--spacing-6, 24px);
2128
+ }
2129
+ .fds-empty--compact .fds-empty__illustration {
2130
+ min-height: 0;
2131
+ width: 44px;
2132
+ height: 44px;
2133
+ border-radius: var(--radius-lg, 8px);
2134
+ background: var(--color-surface-subtle, #fafafa);
2135
+ border: 1px solid var(--color-border-light, #f5f5f5);
2136
+ color: var(--color-text-secondary, #525252);
2137
+ }
2138
+ .fds-empty--compact .fds-empty__illustration > svg {
2139
+ width: 20px;
2140
+ height: 20px;
2141
+ }
2142
+ .fds-empty--compact .fds-empty__text {
2143
+ gap: var(--spacing-2, 8px);
2144
+ }
2145
+ .fds-empty--compact .fds-empty__title {
2146
+ font-size: var(--font-size-text-md, 16px);
2147
+ line-height: 24px;
2148
+ letter-spacing: 0;
2149
+ }
1917
2150
 
1918
2151
  /* src/components/Callout/callout.css */
1919
2152
  .fds-callout {
@@ -2049,3 +2282,777 @@
2049
2282
  animation: none;
2050
2283
  }
2051
2284
  }
2285
+
2286
+ /* src/components/Card/card.css */
2287
+ .fds-card {
2288
+ box-sizing: border-box;
2289
+ border-radius: var(--radius-2xl, 16px);
2290
+ color: var(--color-text, #171717);
2291
+ }
2292
+ .fds-card--subtle {
2293
+ background: var(--color-surface-subtle, #fafafa);
2294
+ border: 1px solid var(--color-border-light, #f5f5f5);
2295
+ }
2296
+ .fds-card--default {
2297
+ background: var(--color-bg, #ffffff);
2298
+ border: 1px solid var(--color-border, #e5e5e5);
2299
+ border-radius: var(--radius-xl, 12px);
2300
+ }
2301
+ .fds-card--plain {
2302
+ background: var(--color-bg, #ffffff);
2303
+ border: 1px solid transparent;
2304
+ border-radius: var(--radius-xl, 12px);
2305
+ }
2306
+ .fds-card--pad-none {
2307
+ padding: 0;
2308
+ }
2309
+ .fds-card--pad-md {
2310
+ padding: var(--spacing-6, 24px);
2311
+ }
2312
+ .fds-card--pad-lg {
2313
+ padding: var(--spacing-10, 40px) var(--spacing-12, 48px);
2314
+ }
2315
+ @media (max-width: 600px) {
2316
+ .fds-card--pad-lg {
2317
+ padding: var(--spacing-6, 24px);
2318
+ }
2319
+ }
2320
+
2321
+ /* src/components/Stat/stat.css */
2322
+ .fds-stat {
2323
+ display: flex;
2324
+ flex-direction: column;
2325
+ gap: var(--spacing-1, 4px);
2326
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2327
+ }
2328
+ .fds-stat__label {
2329
+ margin: 0;
2330
+ font-size: var(--font-size-text-sm, 14px);
2331
+ line-height: 20px;
2332
+ font-weight: var(--font-weight-medium, 500);
2333
+ color: var(--color-text-secondary, #525252);
2334
+ }
2335
+ .fds-stat__value {
2336
+ margin: 0;
2337
+ font-size: var(--font-size-display-md, 36px);
2338
+ line-height: 44px;
2339
+ font-weight: var(--font-weight-semibold, 600);
2340
+ letter-spacing: -0.02em;
2341
+ color: var(--color-text, #171717);
2342
+ font-variant-numeric: tabular-nums;
2343
+ }
2344
+ .fds-stat__detail {
2345
+ display: flex;
2346
+ flex-wrap: wrap;
2347
+ gap: var(--spacing-2, 8px);
2348
+ margin-top: var(--spacing-3, 12px);
2349
+ }
2350
+
2351
+ /* src/components/Checkbox/checkbox.css */
2352
+ .fds-checkbox {
2353
+ display: inline-flex;
2354
+ position: relative;
2355
+ }
2356
+ .fds-checkbox__input {
2357
+ position: absolute;
2358
+ inset: 0;
2359
+ width: 100%;
2360
+ height: 100%;
2361
+ margin: 0;
2362
+ opacity: 0;
2363
+ cursor: pointer;
2364
+ z-index: 1;
2365
+ }
2366
+ .fds-checkbox__input:disabled {
2367
+ cursor: not-allowed;
2368
+ }
2369
+ .fds-checkbox__control {
2370
+ display: inline-flex;
2371
+ align-items: flex-start;
2372
+ gap: var(--spacing-2, 8px);
2373
+ cursor: pointer;
2374
+ }
2375
+ .fds-checkbox__box {
2376
+ box-sizing: border-box;
2377
+ display: inline-grid;
2378
+ place-items: center;
2379
+ flex-shrink: 0;
2380
+ width: 16px;
2381
+ height: 16px;
2382
+ margin-top: 3px;
2383
+ border: 1px solid var(--color-border-strong, #d4d4d4);
2384
+ border-radius: var(--radius-sm, 4px);
2385
+ background: var(--color-bg, #ffffff);
2386
+ color: var(--color-bg, #ffffff);
2387
+ transition: background-color var(--duration-quick, 150ms) ease, border-color var(--duration-quick, 150ms) ease;
2388
+ }
2389
+ .fds-checkbox__control:not(:has(.fds-checkbox__text)) .fds-checkbox__box {
2390
+ margin-top: 0;
2391
+ }
2392
+ .fds-checkbox__tick,
2393
+ .fds-checkbox__dash {
2394
+ grid-area: 1 / 1;
2395
+ width: 10px;
2396
+ height: 10px;
2397
+ visibility: hidden;
2398
+ }
2399
+ .fds-checkbox__input:checked ~ .fds-checkbox__control .fds-checkbox__box,
2400
+ .fds-checkbox__input:indeterminate ~ .fds-checkbox__control .fds-checkbox__box {
2401
+ background: var(--color-text, #171717);
2402
+ border-color: var(--color-text, #171717);
2403
+ }
2404
+ .fds-checkbox__input:checked:not(:indeterminate) ~ .fds-checkbox__control .fds-checkbox__tick {
2405
+ visibility: visible;
2406
+ }
2407
+ .fds-checkbox__input:indeterminate ~ .fds-checkbox__control .fds-checkbox__dash {
2408
+ visibility: visible;
2409
+ }
2410
+ .fds-checkbox__input:hover:not(:disabled):not(:checked) ~ .fds-checkbox__control .fds-checkbox__box {
2411
+ border-color: var(--color-text-secondary, #525252);
2412
+ }
2413
+ .fds-checkbox__input:focus-visible ~ .fds-checkbox__control .fds-checkbox__box {
2414
+ outline: 2px solid var(--color-focus, #ea580c);
2415
+ outline-offset: 2px;
2416
+ }
2417
+ .fds-checkbox[data-disabled] .fds-checkbox__box {
2418
+ opacity: 0.5;
2419
+ }
2420
+ .fds-checkbox[data-disabled] .fds-checkbox__label,
2421
+ .fds-checkbox[data-disabled] .fds-checkbox__description {
2422
+ color: var(--color-text-muted, #a3a3a3);
2423
+ }
2424
+ .fds-checkbox__text {
2425
+ display: inline-flex;
2426
+ flex-direction: column;
2427
+ gap: 2px;
2428
+ }
2429
+ .fds-checkbox__label {
2430
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2431
+ font-size: var(--font-size-text-sm, 14px);
2432
+ line-height: 22px;
2433
+ font-weight: var(--font-weight-medium, 500);
2434
+ color: var(--color-text, #171717);
2435
+ }
2436
+ .fds-checkbox__description {
2437
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2438
+ font-size: var(--font-size-text-sm, 14px);
2439
+ line-height: 22px;
2440
+ color: var(--color-text-secondary, #525252);
2441
+ }
2442
+ @media (prefers-reduced-motion: reduce) {
2443
+ .fds-checkbox__box {
2444
+ transition: none;
2445
+ }
2446
+ }
2447
+
2448
+ /* src/components/Radio/radio.css */
2449
+ .fds-radio {
2450
+ display: inline-flex;
2451
+ position: relative;
2452
+ }
2453
+ .fds-radio__input {
2454
+ position: absolute;
2455
+ inset: 0;
2456
+ width: 100%;
2457
+ height: 100%;
2458
+ margin: 0;
2459
+ opacity: 0;
2460
+ cursor: pointer;
2461
+ z-index: 1;
2462
+ }
2463
+ .fds-radio__input:disabled {
2464
+ cursor: not-allowed;
2465
+ }
2466
+ .fds-radio__control {
2467
+ display: inline-flex;
2468
+ align-items: flex-start;
2469
+ gap: var(--spacing-2, 8px);
2470
+ cursor: pointer;
2471
+ }
2472
+ .fds-radio__circle {
2473
+ box-sizing: border-box;
2474
+ flex-shrink: 0;
2475
+ width: 16px;
2476
+ height: 16px;
2477
+ margin-top: 3px;
2478
+ border: 1px solid var(--color-border-strong, #d4d4d4);
2479
+ border-radius: var(--radius-full, 9999px);
2480
+ background: var(--color-bg, #ffffff);
2481
+ transition: border-color var(--duration-quick, 150ms) ease, border-width var(--duration-quick, 150ms) ease;
2482
+ }
2483
+ .fds-radio__control:not(:has(.fds-radio__text)) .fds-radio__circle {
2484
+ margin-top: 0;
2485
+ }
2486
+ .fds-radio__input:checked ~ .fds-radio__control .fds-radio__circle {
2487
+ border: 5px solid var(--color-text, #171717);
2488
+ }
2489
+ .fds-radio__input:hover:not(:disabled):not(:checked) ~ .fds-radio__control .fds-radio__circle {
2490
+ border-color: var(--color-text-secondary, #525252);
2491
+ }
2492
+ .fds-radio__input:focus-visible ~ .fds-radio__control .fds-radio__circle {
2493
+ outline: 2px solid var(--color-focus, #ea580c);
2494
+ outline-offset: 2px;
2495
+ }
2496
+ .fds-radio[data-disabled] .fds-radio__circle {
2497
+ opacity: 0.5;
2498
+ }
2499
+ .fds-radio[data-disabled] .fds-radio__label,
2500
+ .fds-radio[data-disabled] .fds-radio__description {
2501
+ color: var(--color-text-muted, #a3a3a3);
2502
+ }
2503
+ .fds-radio__text {
2504
+ display: inline-flex;
2505
+ flex-direction: column;
2506
+ gap: 2px;
2507
+ }
2508
+ .fds-radio__label {
2509
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2510
+ font-size: var(--font-size-text-sm, 14px);
2511
+ line-height: 22px;
2512
+ font-weight: var(--font-weight-medium, 500);
2513
+ color: var(--color-text, #171717);
2514
+ }
2515
+ .fds-radio__description {
2516
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2517
+ font-size: var(--font-size-text-sm, 14px);
2518
+ line-height: 22px;
2519
+ color: var(--color-text-secondary, #525252);
2520
+ }
2521
+ @media (prefers-reduced-motion: reduce) {
2522
+ .fds-radio__circle {
2523
+ transition: none;
2524
+ }
2525
+ }
2526
+
2527
+ /* src/components/Accordion/accordion.css */
2528
+ .fds-accordion {
2529
+ box-sizing: border-box;
2530
+ background: var(--color-bg, #ffffff);
2531
+ border: 1px solid var(--color-border, #e5e5e5);
2532
+ border-radius: var(--radius-xl, 12px);
2533
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2534
+ color: var(--color-text, #171717);
2535
+ }
2536
+ .fds-accordion + .fds-accordion {
2537
+ margin-top: var(--spacing-3, 12px);
2538
+ }
2539
+ .fds-accordion__header {
2540
+ display: flex;
2541
+ align-items: center;
2542
+ gap: var(--spacing-3, 12px);
2543
+ padding: 0 var(--spacing-4, 16px) 0 0;
2544
+ }
2545
+ .fds-accordion__trigger {
2546
+ flex: 1 1 auto;
2547
+ min-width: 0;
2548
+ display: flex;
2549
+ align-items: center;
2550
+ gap: var(--spacing-3, 12px);
2551
+ padding: var(--spacing-4, 16px);
2552
+ margin: 0;
2553
+ border: 0;
2554
+ background: none;
2555
+ font: inherit;
2556
+ color: inherit;
2557
+ text-align: left;
2558
+ cursor: pointer;
2559
+ border-radius: var(--radius-xl, 12px);
2560
+ }
2561
+ .fds-accordion__trigger:focus-visible {
2562
+ outline: 2px solid var(--color-focus, #ea580c);
2563
+ outline-offset: -2px;
2564
+ }
2565
+ .fds-accordion__actions {
2566
+ display: flex;
2567
+ align-items: center;
2568
+ gap: var(--spacing-2, 8px);
2569
+ flex-shrink: 0;
2570
+ }
2571
+ .fds-accordion__chevron {
2572
+ display: inline-flex;
2573
+ flex-shrink: 0;
2574
+ color: var(--color-text-secondary, #525252);
2575
+ cursor: pointer;
2576
+ transition: transform var(--duration-quick, 150ms) ease;
2577
+ }
2578
+ .fds-accordion[data-open] .fds-accordion__chevron {
2579
+ transform: rotate(180deg);
2580
+ }
2581
+ .fds-accordion__body {
2582
+ padding: 0 var(--spacing-4, 16px) var(--spacing-4, 16px);
2583
+ }
2584
+ @media (prefers-reduced-motion: reduce) {
2585
+ .fds-accordion__chevron {
2586
+ transition: none;
2587
+ }
2588
+ }
2589
+
2590
+ /* src/components/StepList/step-list.css */
2591
+ .fds-steps {
2592
+ list-style: none;
2593
+ margin: 0;
2594
+ padding: 0;
2595
+ display: flex;
2596
+ flex-direction: column;
2597
+ gap: var(--spacing-3, 12px);
2598
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2599
+ }
2600
+ .fds-steps__step {
2601
+ box-sizing: border-box;
2602
+ display: flex;
2603
+ align-items: center;
2604
+ gap: var(--spacing-3, 12px);
2605
+ min-height: 54px;
2606
+ padding: var(--spacing-3, 12px) var(--spacing-4, 16px);
2607
+ border: 1px solid var(--color-border, #e5e5e5);
2608
+ border-radius: var(--radius-lg, 8px);
2609
+ background: var(--color-surface-subtle, #fafafa);
2610
+ font-size: var(--font-size-text-sm, 14px);
2611
+ line-height: 20px;
2612
+ color: var(--color-text-muted, #a3a3a3);
2613
+ }
2614
+ .fds-steps__icon {
2615
+ display: inline-flex;
2616
+ flex-shrink: 0;
2617
+ }
2618
+ .fds-steps__step--done {
2619
+ background: var(--color-text, #171717);
2620
+ border-color: var(--color-text, #171717);
2621
+ color: var(--color-bg, #ffffff);
2622
+ font-weight: var(--font-weight-medium, 500);
2623
+ }
2624
+ .fds-steps__step--active {
2625
+ background: var(--color-surface, #f5f5f5);
2626
+ color: var(--color-text, #171717);
2627
+ font-weight: var(--font-weight-medium, 500);
2628
+ }
2629
+ .fds-steps__step--failed {
2630
+ background: var(--color-error-bg, #fef2f2);
2631
+ border-color: var(--color-error-border, #fecaca);
2632
+ color: var(--color-error-text, #991b1b);
2633
+ font-weight: var(--font-weight-medium, 500);
2634
+ }
2635
+ .fds-steps__spinner {
2636
+ animation: fds-steps-spin 1.2s linear infinite;
2637
+ }
2638
+ @keyframes fds-steps-spin {
2639
+ to {
2640
+ transform: rotate(360deg);
2641
+ }
2642
+ }
2643
+ .fds-steps__sr {
2644
+ position: absolute;
2645
+ width: 1px;
2646
+ height: 1px;
2647
+ overflow: hidden;
2648
+ clip: rect(0 0 0 0);
2649
+ white-space: nowrap;
2650
+ }
2651
+ @media (prefers-reduced-motion: reduce) {
2652
+ .fds-steps__spinner {
2653
+ animation: none;
2654
+ }
2655
+ }
2656
+
2657
+ /* src/components/Input/input.css */
2658
+ .fds-input {
2659
+ display: flex;
2660
+ flex-direction: column;
2661
+ gap: var(--spacing-2, 8px);
2662
+ width: 100%;
2663
+ min-width: 0;
2664
+ }
2665
+ .fds-input__label {
2666
+ font-family: var(--font-display, "Rethink Sans", system-ui, sans-serif);
2667
+ font-size: var(--font-size-label-sm, 14px);
2668
+ line-height: var(--line-height-label-sm, 22px);
2669
+ font-weight: var(--font-weight-medium, 500);
2670
+ color: var(--color-text, #171717);
2671
+ }
2672
+ .fds-input__box {
2673
+ display: flex;
2674
+ align-items: center;
2675
+ gap: var(--spacing-2, 8px);
2676
+ min-height: 44px;
2677
+ padding: 0 var(--spacing-1, 4px) 0 var(--spacing-3, 12px);
2678
+ background: var(--color-surface-raised, #ffffff);
2679
+ border: 1px solid var(--color-border-strong, #d4d4d4);
2680
+ border-radius: var(--radius-md, 6px);
2681
+ transition: border-color var(--duration-instant, 80ms) ease, box-shadow var(--duration-instant, 80ms) ease;
2682
+ }
2683
+ .fds-input__box:focus-within {
2684
+ border-color: var(--color-accent, #ea580c);
2685
+ box-shadow: inset 0 0 0 1px var(--color-accent, #ea580c);
2686
+ }
2687
+ .fds-input__box--error,
2688
+ .fds-input__box--error:focus-within {
2689
+ border-color: var(--color-error, #b91c1c);
2690
+ }
2691
+ .fds-input__box--error:focus-within {
2692
+ box-shadow: inset 0 0 0 1px var(--color-error, #b91c1c);
2693
+ }
2694
+ .fds-input__box--locked,
2695
+ .fds-input__box--locked:focus-within {
2696
+ background: var(--color-surface, #f5f5f5);
2697
+ border-color: var(--color-surface, #f5f5f5);
2698
+ box-shadow: none;
2699
+ }
2700
+ .fds-input__icon {
2701
+ display: inline-flex;
2702
+ flex-shrink: 0;
2703
+ width: 18px;
2704
+ height: 18px;
2705
+ color: var(--color-text-muted, #a3a3a3);
2706
+ }
2707
+ .fds-input__icon > svg {
2708
+ width: 100%;
2709
+ height: 100%;
2710
+ }
2711
+ .fds-input__control {
2712
+ flex: 1 1 auto;
2713
+ min-width: 0;
2714
+ height: 42px;
2715
+ padding: 0 var(--spacing-2, 8px) 0 0;
2716
+ border: 0;
2717
+ background: transparent;
2718
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2719
+ font-size: var(--font-size-text-md, 16px);
2720
+ color: var(--color-text, #171717);
2721
+ text-overflow: ellipsis;
2722
+ }
2723
+ .fds-input__control:focus {
2724
+ outline: none;
2725
+ }
2726
+ .fds-input__control::placeholder {
2727
+ color: var(--color-text-muted, #a3a3a3);
2728
+ }
2729
+ .fds-input__box--locked .fds-input__control {
2730
+ color: var(--color-text-muted, #a3a3a3);
2731
+ cursor: default;
2732
+ }
2733
+ .fds-input__control:disabled {
2734
+ cursor: not-allowed;
2735
+ }
2736
+ .fds-input__trailing {
2737
+ display: inline-flex;
2738
+ align-items: center;
2739
+ flex-shrink: 0;
2740
+ }
2741
+ .fds-input__hint,
2742
+ .fds-input__error {
2743
+ margin: 0;
2744
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2745
+ font-size: var(--font-size-text-sm, 14px);
2746
+ line-height: var(--line-height-text-sm, 22px);
2747
+ }
2748
+ .fds-input__hint {
2749
+ color: var(--color-text-secondary, #525252);
2750
+ }
2751
+ .fds-input__error {
2752
+ color: var(--color-error, #b91c1c);
2753
+ }
2754
+
2755
+ /* src/components/IconButton/icon-button.css */
2756
+ .fds-icon-button {
2757
+ display: inline-flex;
2758
+ align-items: center;
2759
+ justify-content: center;
2760
+ flex-shrink: 0;
2761
+ padding: 0;
2762
+ border: 1px solid transparent;
2763
+ border-radius: var(--radius-md, 6px);
2764
+ background: transparent;
2765
+ color: var(--color-text, #171717);
2766
+ cursor: pointer;
2767
+ transition: background-color var(--duration-instant, 80ms) ease, border-color var(--duration-instant, 80ms) ease;
2768
+ }
2769
+ .fds-icon-button:focus-visible {
2770
+ outline: 2px solid var(--color-accent, #ea580c);
2771
+ outline-offset: 2px;
2772
+ }
2773
+ .fds-icon-button:disabled {
2774
+ color: var(--color-text-muted, #a3a3a3);
2775
+ cursor: not-allowed;
2776
+ }
2777
+ .fds-icon-button--medium {
2778
+ width: 44px;
2779
+ height: 44px;
2780
+ }
2781
+ .fds-icon-button--small {
2782
+ width: 28px;
2783
+ height: 28px;
2784
+ border-radius: var(--radius-sm, 4px);
2785
+ }
2786
+ .fds-icon-button__icon {
2787
+ display: inline-flex;
2788
+ width: 18px;
2789
+ height: 18px;
2790
+ }
2791
+ .fds-icon-button--small .fds-icon-button__icon {
2792
+ width: 16px;
2793
+ height: 16px;
2794
+ }
2795
+ .fds-icon-button__icon > svg {
2796
+ width: 100%;
2797
+ height: 100%;
2798
+ }
2799
+ .fds-icon-button--outlined {
2800
+ background: var(--color-surface-raised, #ffffff);
2801
+ border-color: var(--color-border, #e5e5e5);
2802
+ }
2803
+ .fds-icon-button--outlined:hover:not(:disabled) {
2804
+ background: var(--color-surface-subtle, #fafafa);
2805
+ border-color: var(--color-border-strong, #d4d4d4);
2806
+ }
2807
+ .fds-icon-button--ghost {
2808
+ color: var(--color-text-tertiary, #737373);
2809
+ }
2810
+ .fds-icon-button--ghost:hover:not(:disabled) {
2811
+ background: var(--color-surface, #f5f5f5);
2812
+ color: var(--color-text, #171717);
2813
+ }
2814
+ .fds-icon-button:active:not(:disabled) {
2815
+ background: var(--color-surface-hover, #ececec);
2816
+ }
2817
+
2818
+ /* src/components/Menu/menu.css */
2819
+ .fds-menu {
2820
+ position: relative;
2821
+ display: inline-flex;
2822
+ }
2823
+ .fds-menu__list {
2824
+ position: absolute;
2825
+ top: calc(100% + 4px);
2826
+ z-index: 50;
2827
+ min-width: 200px;
2828
+ padding: var(--spacing-1, 4px);
2829
+ background: var(--color-surface-raised, #ffffff);
2830
+ border: 1px solid var(--color-border, #e5e5e5);
2831
+ border-radius: var(--radius-md, 6px);
2832
+ box-shadow: var(--shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.1));
2833
+ }
2834
+ .fds-menu__list:focus {
2835
+ outline: none;
2836
+ }
2837
+ .fds-menu__list--start {
2838
+ left: 0;
2839
+ }
2840
+ .fds-menu__list--end {
2841
+ right: 0;
2842
+ }
2843
+ .fds-menu__item {
2844
+ display: flex;
2845
+ align-items: center;
2846
+ gap: var(--spacing-2, 8px);
2847
+ padding: 8px var(--spacing-2, 8px);
2848
+ border-radius: var(--radius-sm, 4px);
2849
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2850
+ font-size: var(--font-size-text-sm, 14px);
2851
+ line-height: 20px;
2852
+ color: var(--color-text, #171717);
2853
+ white-space: nowrap;
2854
+ cursor: pointer;
2855
+ }
2856
+ .fds-menu__item--active {
2857
+ background: var(--color-surface, #f5f5f5);
2858
+ }
2859
+ .fds-menu__item--danger {
2860
+ color: var(--color-error, #b91c1c);
2861
+ }
2862
+ .fds-menu__item--disabled {
2863
+ opacity: 0.5;
2864
+ cursor: not-allowed;
2865
+ }
2866
+ .fds-menu__icon {
2867
+ display: inline-flex;
2868
+ width: 16px;
2869
+ height: 16px;
2870
+ }
2871
+ .fds-menu__icon > svg {
2872
+ width: 100%;
2873
+ height: 100%;
2874
+ }
2875
+
2876
+ /* src/components/Table/table.css */
2877
+ .fds-table {
2878
+ width: 100%;
2879
+ overflow-x: auto;
2880
+ border-radius: var(--radius-xl, 12px);
2881
+ background: var(--color-surface-raised, #ffffff);
2882
+ }
2883
+ .fds-table__table {
2884
+ width: 100%;
2885
+ min-width: 560px;
2886
+ border-collapse: collapse;
2887
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2888
+ font-size: var(--font-size-text-sm, 14px);
2889
+ line-height: 20px;
2890
+ color: var(--color-text, #171717);
2891
+ }
2892
+ .fds-table__table th {
2893
+ padding: 12px var(--spacing-4, 16px);
2894
+ background: var(--color-surface, #f5f5f5);
2895
+ font-size: var(--font-size-text-xs, 12px);
2896
+ font-weight: var(--font-weight-medium, 500);
2897
+ color: var(--color-text-secondary, #525252);
2898
+ text-align: left;
2899
+ white-space: nowrap;
2900
+ }
2901
+ .fds-table__table td {
2902
+ padding: 14px var(--spacing-4, 16px);
2903
+ border-bottom: 1px solid var(--color-border-light, #f5f5f5);
2904
+ vertical-align: middle;
2905
+ }
2906
+ .fds-table__table tbody tr:last-child td {
2907
+ border-bottom: 0;
2908
+ }
2909
+ .fds-table__table .fds-table__cell--end {
2910
+ text-align: right;
2911
+ }
2912
+ .fds-table__table .fds-table__empty {
2913
+ padding: var(--spacing-10, 40px) var(--spacing-4, 16px);
2914
+ }
2915
+
2916
+ /* src/components/PricingCard/pricing-card.css */
2917
+ .fds-pricing-card {
2918
+ display: flex;
2919
+ flex-direction: column;
2920
+ min-width: 0;
2921
+ padding: 6px;
2922
+ background: var(--color-surface-subtle, #fafafa);
2923
+ border: 1px solid var(--color-border, #e5e5e5);
2924
+ border-radius: var(--radius-2xl, 16px);
2925
+ color: var(--color-text, #171717);
2926
+ font-family: var(--font-body, "Rethink Sans", system-ui, sans-serif);
2927
+ }
2928
+ .fds-pricing-card__top {
2929
+ display: flex;
2930
+ flex-direction: column;
2931
+ padding: var(--spacing-8, 32px) var(--spacing-8, 32px) var(--spacing-6, 24px);
2932
+ background: var(--color-surface-raised, #ffffff);
2933
+ border: 1px solid transparent;
2934
+ border-radius: var(--radius-xl, 12px);
2935
+ }
2936
+ .fds-pricing-card__eyebrow {
2937
+ align-self: flex-start;
2938
+ margin-bottom: var(--spacing-3, 12px);
2939
+ padding: 2px 8px;
2940
+ border-radius: var(--radius-sm, 4px);
2941
+ background: var(--color-surface, #f5f5f5);
2942
+ font-size: var(--font-size-text-xs, 12px);
2943
+ line-height: 18px;
2944
+ font-weight: var(--font-weight-medium, 500);
2945
+ letter-spacing: 0.02em;
2946
+ text-transform: uppercase;
2947
+ color: var(--color-text-on-neutral, #404040);
2948
+ }
2949
+ .fds-pricing-card__title {
2950
+ display: flex;
2951
+ align-items: center;
2952
+ gap: var(--spacing-2, 8px);
2953
+ margin: 0;
2954
+ font-family: var(--font-display, "Rethink Sans", system-ui, sans-serif);
2955
+ font-size: 22px;
2956
+ line-height: 30px;
2957
+ font-weight: var(--font-weight-medium, 500);
2958
+ letter-spacing: -0.01em;
2959
+ }
2960
+ .fds-pricing-card__price {
2961
+ display: flex;
2962
+ align-items: baseline;
2963
+ gap: 6px;
2964
+ margin: var(--spacing-6, 24px) 0 0;
2965
+ }
2966
+ .fds-pricing-card__amount {
2967
+ font-family: var(--font-display, "Rethink Sans", system-ui, sans-serif);
2968
+ font-size: 36px;
2969
+ line-height: 44px;
2970
+ font-weight: var(--font-weight-medium, 500);
2971
+ letter-spacing: -0.02em;
2972
+ }
2973
+ .fds-pricing-card__period {
2974
+ font-size: var(--font-size-text-md, 16px);
2975
+ color: var(--color-text-secondary, #525252);
2976
+ }
2977
+ .fds-pricing-card__description {
2978
+ margin: var(--spacing-3, 12px) 0 0;
2979
+ font-size: var(--font-size-text-sm, 14px);
2980
+ line-height: 22px;
2981
+ color: var(--color-text-secondary, #525252);
2982
+ }
2983
+ .fds-pricing-card__action {
2984
+ display: flex;
2985
+ flex-direction: column;
2986
+ margin-top: var(--spacing-6, 24px);
2987
+ }
2988
+ .fds-pricing-card__features {
2989
+ padding: var(--spacing-6, 24px) var(--spacing-8, 32px) var(--spacing-8, 32px);
2990
+ }
2991
+ .fds-pricing-card__featuresTitle {
2992
+ margin: 0;
2993
+ font-size: var(--font-size-text-sm, 14px);
2994
+ line-height: 22px;
2995
+ font-weight: var(--font-weight-medium, 500);
2996
+ letter-spacing: 0.02em;
2997
+ text-transform: uppercase;
2998
+ }
2999
+ .fds-pricing-card__intro {
3000
+ margin: var(--spacing-4, 16px) 0 0;
3001
+ font-size: var(--font-size-text-sm, 14px);
3002
+ line-height: 22px;
3003
+ color: var(--color-text-secondary, #525252);
3004
+ }
3005
+ .fds-pricing-card__intro strong,
3006
+ .fds-pricing-card__intro b {
3007
+ color: var(--color-text, #171717);
3008
+ font-weight: var(--font-weight-medium, 500);
3009
+ }
3010
+ .fds-pricing-card__list {
3011
+ display: flex;
3012
+ flex-direction: column;
3013
+ gap: var(--spacing-4, 16px);
3014
+ margin: var(--spacing-5, 20px) 0 0;
3015
+ padding: 0;
3016
+ list-style: none;
3017
+ }
3018
+ .fds-pricing-card__feature {
3019
+ display: flex;
3020
+ align-items: center;
3021
+ gap: var(--spacing-3, 12px);
3022
+ font-size: var(--font-size-text-sm, 14px);
3023
+ line-height: 22px;
3024
+ }
3025
+ .fds-pricing-card__check {
3026
+ display: inline-flex;
3027
+ align-items: center;
3028
+ justify-content: center;
3029
+ flex-shrink: 0;
3030
+ width: 22px;
3031
+ height: 22px;
3032
+ border-radius: 50%;
3033
+ background: var(--color-surface, #f5f5f5);
3034
+ color: var(--color-text-secondary, #525252);
3035
+ }
3036
+ .fds-pricing-card--highlighted {
3037
+ background: color-mix(in srgb, var(--color-accent-subtle, #ffedd5) 50%, var(--color-surface-raised, #ffffff));
3038
+ border-color: transparent;
3039
+ }
3040
+ .fds-pricing-card--highlighted .fds-pricing-card__top {
3041
+ border-color: var(--color-accent-muted, #fb923c);
3042
+ }
3043
+ .fds-pricing-card--highlighted .fds-pricing-card__eyebrow {
3044
+ background: var(--color-accent-subtle, #ffedd5);
3045
+ color: var(--color-accent-text, #c2410c);
3046
+ }
3047
+ .fds-pricing-card--highlighted .fds-pricing-card__check {
3048
+ background: var(--color-accent-muted, #fb923c);
3049
+ color: #ffffff;
3050
+ }
3051
+ @media (max-width: 600px) {
3052
+ .fds-pricing-card__top {
3053
+ padding: var(--spacing-6, 24px);
3054
+ }
3055
+ .fds-pricing-card__features {
3056
+ padding: var(--spacing-5, 20px) var(--spacing-6, 24px) var(--spacing-6, 24px);
3057
+ }
3058
+ }