fokus-styles 2.4.0 → 2.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.
Files changed (212) hide show
  1. package/dist/css/components.css +561 -83
  2. package/dist/css/components.min.css +1 -1
  3. package/dist/css/fokus-components.css +561 -83
  4. package/dist/css/fokus-components.min.css +1 -1
  5. package/dist/css/fokus-rtl.css +697 -83
  6. package/dist/css/fokus-rtl.min.css +1 -1
  7. package/dist/css/fokus-utilities.css +136 -0
  8. package/dist/css/fokus-utilities.min.css +1 -1
  9. package/dist/css/fokus.css +996 -258
  10. package/dist/css/fokus.min.css +1 -1
  11. package/dist/css/forms.css +300 -176
  12. package/dist/css/forms.min.css +1 -1
  13. package/dist/css/helpers.css +136 -0
  14. package/dist/css/helpers.min.css +1 -1
  15. package/dist/js/fokus.js +270 -25
  16. package/dist/js/fokus.min.js +18 -18
  17. package/package.json +17 -15
  18. package/packages/fokus-components/scss/components/_alerts.scss +128 -6
  19. package/packages/fokus-components/scss/components/_badges.scss +26 -10
  20. package/packages/fokus-components/scss/components/_index.scss +1 -0
  21. package/packages/fokus-components/scss/components/_popover.scss +131 -21
  22. package/packages/fokus-components/scss/components/_responsive.scss +23 -0
  23. package/packages/fokus-components/scss/components/_tag.scss +37 -14
  24. package/packages/fokus-components/scss/components/_toasts.scss +156 -11
  25. package/packages/fokus-components/scss/components/_tooltips.scss +70 -18
  26. package/packages/fokus-components/scss/forms/_check-radio-switch.scss +313 -215
  27. package/packages/fokus-components/scss/forms/_forms.scss +16 -0
  28. package/packages/fokus-js/js/carousel.d.ts +4 -0
  29. package/packages/fokus-js/js/carousel.js +8 -0
  30. package/packages/fokus-js/js/core/positioning.js +18 -9
  31. package/packages/fokus-js/js/dropdown.d.ts +4 -0
  32. package/packages/fokus-js/js/dropdown.js +7 -0
  33. package/packages/fokus-js/js/popover.js +26 -1
  34. package/packages/fokus-js/js/tabs.d.ts +3 -0
  35. package/packages/fokus-js/js/tabs.js +5 -0
  36. package/packages/fokus-js/js/tag.js +17 -0
  37. package/packages/fokus-js/js/toast.js +77 -3
  38. package/packages/fokus-js/js/tooltip.d.ts +8 -1
  39. package/packages/fokus-js/js/tooltip.js +106 -13
  40. package/packages/fokus-utilities/scss/utilities/_api.scss +48 -0
  41. package/CHANGELOG.md +0 -910
  42. package/dist/css/components.css.map +0 -1
  43. package/dist/css/components.min.css.map +0 -1
  44. package/dist/css/fokus-components.css.map +0 -1
  45. package/dist/css/fokus-components.min.css.map +0 -1
  46. package/dist/css/fokus-core.css.map +0 -1
  47. package/dist/css/fokus-core.min.css.map +0 -1
  48. package/dist/css/fokus-dark.css.map +0 -1
  49. package/dist/css/fokus-dark.min.css.map +0 -1
  50. package/dist/css/fokus-rtl.css.map +0 -1
  51. package/dist/css/fokus-rtl.min.css.map +0 -1
  52. package/dist/css/fokus-utilities.css.map +0 -1
  53. package/dist/css/fokus-utilities.min.css.map +0 -1
  54. package/dist/css/fokus.css.map +0 -1
  55. package/dist/css/fokus.min.css.map +0 -1
  56. package/dist/css/fonts.css.map +0 -1
  57. package/dist/css/fonts.min.css.map +0 -1
  58. package/dist/css/forms.css.map +0 -1
  59. package/dist/css/forms.min.css.map +0 -1
  60. package/dist/css/helpers.css.map +0 -1
  61. package/dist/css/helpers.min.css.map +0 -1
  62. package/dist/css/layout.css.map +0 -1
  63. package/dist/css/layout.min.css.map +0 -1
  64. package/dist/js/fokus.js.map +0 -7
  65. package/dist/js/fokus.min.js.map +0 -7
  66. package/docs/README.md +0 -86
  67. package/docs/comparison.md +0 -124
  68. package/docs/components/accordion.md +0 -104
  69. package/docs/components/alert-dialog.md +0 -99
  70. package/docs/components/alert.md +0 -59
  71. package/docs/components/avatar.md +0 -13
  72. package/docs/components/badge.md +0 -82
  73. package/docs/components/breadcrumb.md +0 -93
  74. package/docs/components/button-group.md +0 -13
  75. package/docs/components/button.md +0 -98
  76. package/docs/components/card.md +0 -111
  77. package/docs/components/carousel.md +0 -167
  78. package/docs/components/checkbox.md +0 -97
  79. package/docs/components/close-button.md +0 -13
  80. package/docs/components/code.md +0 -13
  81. package/docs/components/collapse.md +0 -78
  82. package/docs/components/combobox.md +0 -123
  83. package/docs/components/command-palette.md +0 -131
  84. package/docs/components/datatable.md +0 -173
  85. package/docs/components/datepicker.md +0 -137
  86. package/docs/components/divider.md +0 -57
  87. package/docs/components/dropdown.md +0 -103
  88. package/docs/components/empty-state.md +0 -65
  89. package/docs/components/file-upload-advanced.md +0 -116
  90. package/docs/components/file-upload.md +0 -93
  91. package/docs/components/icon-link.md +0 -13
  92. package/docs/components/input-group.md +0 -73
  93. package/docs/components/input.md +0 -90
  94. package/docs/components/list-group.md +0 -13
  95. package/docs/components/modal.md +0 -120
  96. package/docs/components/navbar.md +0 -74
  97. package/docs/components/nested-menu.md +0 -90
  98. package/docs/components/notification-center.md +0 -116
  99. package/docs/components/offcanvas.md +0 -102
  100. package/docs/components/pagination.md +0 -145
  101. package/docs/components/placeholder.md +0 -13
  102. package/docs/components/popover.md +0 -105
  103. package/docs/components/progress.md +0 -126
  104. package/docs/components/radio.md +0 -70
  105. package/docs/components/range.md +0 -83
  106. package/docs/components/rating.md +0 -91
  107. package/docs/components/ratio.md +0 -13
  108. package/docs/components/scrollspy.md +0 -13
  109. package/docs/components/segmented-control.md +0 -82
  110. package/docs/components/select.md +0 -89
  111. package/docs/components/skeleton.md +0 -70
  112. package/docs/components/stepper.md +0 -107
  113. package/docs/components/switch.md +0 -75
  114. package/docs/components/table.md +0 -90
  115. package/docs/components/tabs.md +0 -104
  116. package/docs/components/tag.md +0 -129
  117. package/docs/components/tile.md +0 -112
  118. package/docs/components/timeline.md +0 -78
  119. package/docs/components/toast.md +0 -95
  120. package/docs/components/tooltip.md +0 -77
  121. package/docs/components/tree-view.md +0 -118
  122. package/docs/contributing/contributing.md +0 -18
  123. package/docs/getting-started/installation.md +0 -70
  124. package/docs/getting-started/usage.md +0 -105
  125. package/docs/guides/accessibility.md +0 -102
  126. package/docs/guides/charts.md +0 -73
  127. package/docs/guides/dark-mode.md +0 -90
  128. package/docs/guides/icons.md +0 -99
  129. package/docs/guides/javascript-api.md +0 -9
  130. package/docs/guides/layout-advanced.md +0 -118
  131. package/docs/guides/migration-clarus-to-fokus.md +0 -48
  132. package/docs/guides/migration-external.md +0 -123
  133. package/docs/guides/migration-v1.md +0 -63
  134. package/docs/guides/print.md +0 -30
  135. package/docs/guides/rtl-and-system-preferences.md +0 -28
  136. package/docs/guides/theming.md +0 -140
  137. package/docs/guides/utility-api.md +0 -9
  138. package/docs/prompts/prompt-plan.md +0 -45
  139. package/docs/reference/accessibility-matrix.md +0 -77
  140. package/docs/reference/browser-support.md +0 -75
  141. package/docs/reference/contrast-report.md +0 -50
  142. package/docs/reference/definitions.md +0 -864
  143. package/docs/reference/design-tokens.md +0 -194
  144. package/docs/reference/scss-architecture.md +0 -227
  145. package/docs/reference/size-baseline.json +0 -34
  146. package/docs/reference/stability.md +0 -89
  147. package/docs/showcase.md +0 -25
  148. package/mockup/README.md +0 -41
  149. package/mockup/assets/carousel-planning.png +0 -0
  150. package/mockup/assets/carousel-workspace.png +0 -0
  151. package/mockup/assets/example-theme.css +0 -8
  152. package/mockup/assets/example-theme.js +0 -11
  153. package/mockup/assets/showcase-contracts.js +0 -84
  154. package/mockup/assets/showcase.css +0 -91
  155. package/mockup/assets/showcase.js +0 -724
  156. package/mockup/content-data.html +0 -9
  157. package/mockup/examples/accordion-tabs-toast.html +0 -149
  158. package/mockup/examples/alert-dialog.html +0 -84
  159. package/mockup/examples/alerts.html +0 -41
  160. package/mockup/examples/badges-alerts.html +0 -77
  161. package/mockup/examples/buttons.html +0 -58
  162. package/mockup/examples/cards.html +0 -132
  163. package/mockup/examples/carousel.html +0 -126
  164. package/mockup/examples/charts.html +0 -102
  165. package/mockup/examples/check-radio-switch.html +0 -144
  166. package/mockup/examples/collapse.html +0 -69
  167. package/mockup/examples/combobox.html +0 -60
  168. package/mockup/examples/command-palette.html +0 -64
  169. package/mockup/examples/datatable.html +0 -113
  170. package/mockup/examples/datepicker.html +0 -62
  171. package/mockup/examples/divider.html +0 -45
  172. package/mockup/examples/dropdown-tooltip.html +0 -77
  173. package/mockup/examples/empty-state.html +0 -56
  174. package/mockup/examples/file-drop.html +0 -74
  175. package/mockup/examples/file-upload-advanced.html +0 -68
  176. package/mockup/examples/forms-advanced.html +0 -77
  177. package/mockup/examples/hover-card.html +0 -86
  178. package/mockup/examples/icons.html +0 -157
  179. package/mockup/examples/input-group.html +0 -74
  180. package/mockup/examples/js-foundation.html +0 -215
  181. package/mockup/examples/layout.html +0 -134
  182. package/mockup/examples/modal-select.html +0 -127
  183. package/mockup/examples/nested-menu.html +0 -73
  184. package/mockup/examples/notification-center.html +0 -86
  185. package/mockup/examples/offcanvas-popover.html +0 -133
  186. package/mockup/examples/pagination-breadcrumbs.html +0 -92
  187. package/mockup/examples/range.html +0 -69
  188. package/mockup/examples/rating.html +0 -103
  189. package/mockup/examples/segmented-control.html +0 -96
  190. package/mockup/examples/skeletons.html +0 -82
  191. package/mockup/examples/spinner-progress.html +0 -130
  192. package/mockup/examples/stepper.html +0 -119
  193. package/mockup/examples/tables-navbar.html +0 -89
  194. package/mockup/examples/tag.html +0 -105
  195. package/mockup/examples/theming.html +0 -68
  196. package/mockup/examples/tile.html +0 -107
  197. package/mockup/examples/timeline.html +0 -108
  198. package/mockup/examples/tree-view.html +0 -68
  199. package/mockup/feedback-actions.html +0 -9
  200. package/mockup/forms.html +0 -13
  201. package/mockup/foundations.html +0 -7
  202. package/mockup/kitchen-sink.html +0 -696
  203. package/mockup/navigation-disclosure.html +0 -11
  204. package/mockup/overlays-commands.html +0 -12
  205. package/mockup/templates/README.md +0 -20
  206. package/mockup/templates/admin.html +0 -334
  207. package/mockup/templates/auth.html +0 -234
  208. package/mockup/templates/dashboard.html +0 -442
  209. package/mockup/templates/landing.html +0 -397
  210. package/packages/fokus-icons/package.json +0 -46
  211. package/scripts/migrate-fokus-map.json +0 -1366
  212. package/scripts/migrate-fokus.mjs +0 -97
@@ -1649,46 +1649,155 @@
1649
1649
  }
1650
1650
  @layer components {
1651
1651
  .fs-alert {
1652
+ --fs-alert-padding-block: 12px;
1653
+ --fs-alert-padding-inline: 16px;
1654
+ --fs-alert-gap: 12px;
1655
+ --fs-alert-radius: var(--fs-radius-md, 6px);
1656
+ --fs-alert-border-width: 1px;
1657
+ --fs-alert-accent-width: 4px;
1658
+ --fs-alert-icon-size: 20px;
1659
+ --fs-alert-heading-gap: 4px;
1660
+ --fs-alert-actions-gap: 8px;
1652
1661
  display: flex;
1653
1662
  align-items: flex-start;
1654
- gap: 8px;
1655
- padding: 12px 16px;
1656
- border: 1px solid var(--fs-color-border);
1657
- border-left: 5px solid var(--fs-color-border);
1658
- border-radius: 0;
1663
+ gap: var(--fs-alert-gap);
1664
+ min-inline-size: 0;
1665
+ padding-block: var(--fs-alert-padding-block);
1666
+ padding-inline: var(--fs-alert-padding-inline);
1667
+ border: var(--fs-alert-border-width) solid var(--fs-color-border);
1668
+ border-inline-start: var(--fs-alert-accent-width) solid var(--fs-color-border);
1669
+ border-radius: var(--fs-alert-radius);
1659
1670
  color: var(--fs-color-text);
1660
1671
  background-color: var(--fs-color-surface-raised);
1661
1672
  font-size: 0.75rem;
1662
1673
  }
1674
+ .fs-alert-inline {
1675
+ --fs-alert-padding-block: 8px;
1676
+ --fs-alert-padding-inline: 12px;
1677
+ --fs-alert-gap: 8px;
1678
+ --fs-alert-accent-width: 3px;
1679
+ --fs-alert-icon-size: 16px;
1680
+ }
1681
+ .fs-alert-group {
1682
+ display: grid;
1683
+ gap: 12px;
1684
+ min-inline-size: 0;
1685
+ }
1686
+ .fs-alert[aria-busy=true],
1687
+ .fs-alert.is-loading {
1688
+ cursor: progress;
1689
+ }
1690
+ .fs-alert[aria-busy=true] .fs-alert-actions,
1691
+ .fs-alert.is-loading .fs-alert-actions {
1692
+ opacity: 0.75;
1693
+ }
1694
+ .fs-alert .fs-spinner {
1695
+ flex: 0 0 auto;
1696
+ align-self: flex-start;
1697
+ margin-block: 2px;
1698
+ }
1699
+ .fs-alert-icon {
1700
+ display: inline-flex;
1701
+ flex: 0 0 var(--fs-alert-icon-size);
1702
+ align-items: center;
1703
+ justify-content: center;
1704
+ inline-size: var(--fs-alert-icon-size);
1705
+ block-size: var(--fs-alert-icon-size);
1706
+ color: currentcolor;
1707
+ }
1708
+ .fs-alert-icon .fs-icon,
1709
+ .fs-alert-icon > svg {
1710
+ inline-size: 100%;
1711
+ block-size: 100%;
1712
+ }
1713
+ .fs-alert-content {
1714
+ flex: 1 1 auto;
1715
+ min-inline-size: 0;
1716
+ }
1717
+ .fs-alert-heading {
1718
+ margin: 0 0 var(--fs-alert-heading-gap);
1719
+ color: inherit;
1720
+ font-size: inherit;
1721
+ font-weight: 600;
1722
+ line-height: 1.35;
1723
+ }
1724
+ .fs-alert-text {
1725
+ margin: 0;
1726
+ line-height: 1.5;
1727
+ }
1728
+ .fs-alert-actions {
1729
+ display: flex;
1730
+ flex-wrap: wrap;
1731
+ gap: var(--fs-alert-actions-gap);
1732
+ align-items: center;
1733
+ margin-block-start: var(--fs-alert-actions-gap);
1734
+ }
1735
+ .fs-alert-link {
1736
+ color: inherit;
1737
+ font-weight: 500;
1738
+ text-decoration: underline;
1739
+ text-underline-offset: 2px;
1740
+ }
1741
+ .fs-alert-close {
1742
+ flex: 0 0 auto;
1743
+ margin-inline-start: auto;
1744
+ color: inherit;
1745
+ }
1663
1746
  .fs-alert-primary {
1664
1747
  color: var(--fs-alert-primary-text);
1665
1748
  background-color: var(--fs-alert-primary-bg);
1666
- border-color: var(--fs-color-primary);
1749
+ border-color: var(--fs-color-border);
1750
+ border-inline-start-color: var(--fs-color-primary);
1667
1751
  }
1668
1752
  .fs-alert-secondary {
1669
1753
  color: var(--fs-alert-secondary-text);
1670
1754
  background-color: var(--fs-alert-secondary-bg);
1671
- border-color: var(--fs-color-secondary);
1755
+ border-color: var(--fs-color-border);
1756
+ border-inline-start-color: var(--fs-color-secondary);
1672
1757
  }
1673
1758
  .fs-alert-success {
1674
1759
  color: var(--fs-alert-success-text);
1675
1760
  background-color: var(--fs-alert-success-bg);
1676
- border-color: var(--fs-color-success);
1761
+ border-color: var(--fs-color-border);
1762
+ border-inline-start-color: var(--fs-color-success);
1677
1763
  }
1678
1764
  .fs-alert-warning {
1679
1765
  color: var(--fs-alert-warning-text);
1680
1766
  background-color: var(--fs-alert-warning-bg);
1681
- border-color: var(--fs-color-warning);
1767
+ border-color: var(--fs-color-border);
1768
+ border-inline-start-color: var(--fs-color-warning);
1682
1769
  }
1683
1770
  .fs-alert-danger {
1684
1771
  color: var(--fs-alert-danger-text);
1685
1772
  background-color: var(--fs-alert-danger-bg);
1686
- border-color: var(--fs-color-danger);
1773
+ border-color: var(--fs-color-border);
1774
+ border-inline-start-color: var(--fs-color-danger);
1687
1775
  }
1688
1776
  .fs-alert-info {
1689
1777
  color: var(--fs-alert-info-text);
1690
1778
  background-color: var(--fs-alert-info-bg);
1691
- border-color: var(--fs-color-info);
1779
+ border-color: var(--fs-color-border);
1780
+ border-inline-start-color: var(--fs-color-info);
1781
+ }
1782
+ @media (width <= 480px) {
1783
+ .fs-alert {
1784
+ --fs-alert-padding-inline: 12px;
1785
+ }
1786
+ .fs-alert-actions {
1787
+ align-items: flex-start;
1788
+ }
1789
+ }
1790
+ @media (forced-colors: active) {
1791
+ .fs-alert {
1792
+ border-color: CanvasText;
1793
+ border-inline-start-color: Highlight;
1794
+ color: CanvasText;
1795
+ background-color: Canvas;
1796
+ }
1797
+ .fs-alert-link,
1798
+ .fs-alert .fs-btn {
1799
+ forced-color-adjust: none;
1800
+ }
1692
1801
  }
1693
1802
  }
1694
1803
  @layer components {
@@ -1697,13 +1806,16 @@
1697
1806
  --fs-badge-bg: var(--fs-color-subtle);
1698
1807
  --fs-badge-border: transparent;
1699
1808
  --fs-badge-height: 22px;
1700
- --fs-badge-radius: 0;
1809
+ --fs-badge-radius: var(--fs-radius-sm);
1810
+ --fs-badge-padding-inline: 8px;
1811
+ --fs-badge-padding-block-start: 2px;
1812
+ --fs-badge-padding-block-end: 2px;
1701
1813
  display: inline-flex;
1702
1814
  align-items: center;
1703
1815
  gap: 6px;
1704
1816
  justify-content: center;
1705
1817
  min-height: var(--fs-badge-height);
1706
- padding: 1px 8px 3px;
1818
+ padding: var(--fs-badge-padding-block-start) var(--fs-badge-padding-inline) var(--fs-badge-padding-block-end);
1707
1819
  border: 1px solid var(--fs-badge-border);
1708
1820
  border-radius: var(--fs-badge-radius);
1709
1821
  color: var(--fs-badge-color);
@@ -1800,12 +1912,16 @@
1800
1912
  }
1801
1913
  .fs-badge-sm {
1802
1914
  --fs-badge-height: 18px;
1803
- padding: 0 6px 2px;
1915
+ --fs-badge-padding-inline: 6px;
1916
+ --fs-badge-padding-block-start: 1px;
1917
+ --fs-badge-padding-block-end: 1px;
1804
1918
  font-size: 0.6875rem;
1805
1919
  }
1806
1920
  .fs-badge-lg {
1807
1921
  --fs-badge-height: 26px;
1808
- padding: 2px 10px 4px;
1922
+ --fs-badge-padding-inline: 10px;
1923
+ --fs-badge-padding-block-start: 3px;
1924
+ --fs-badge-padding-block-end: 3px;
1809
1925
  font-size: 0.8125rem;
1810
1926
  }
1811
1927
  .fs-badge-dot::before {
@@ -1822,13 +1938,19 @@
1822
1938
  padding-inline: 6px;
1823
1939
  font-variant-numeric: tabular-nums;
1824
1940
  }
1941
+ .fs-badge-count-circle {
1942
+ aspect-ratio: 1;
1943
+ min-width: var(--fs-badge-height);
1944
+ padding-inline: 0;
1945
+ border-radius: 50%;
1946
+ }
1825
1947
  .fs-badge-split {
1826
1948
  --fs-badge-split-label-bg: var(--fs-color-black);
1827
1949
  --fs-badge-split-label-color: var(--fs-color-white);
1828
1950
  --fs-badge-split-value-bg: var(--fs-color-primary);
1829
1951
  --fs-badge-split-value-color: #ffffff;
1830
1952
  --fs-badge-split-height: 22px;
1831
- --fs-badge-split-radius: 0;
1953
+ --fs-badge-split-radius: var(--fs-radius-sm);
1832
1954
  display: inline-flex;
1833
1955
  min-height: var(--fs-badge-split-height);
1834
1956
  overflow: hidden;
@@ -1844,7 +1966,8 @@
1844
1966
  display: inline-flex;
1845
1967
  align-items: center;
1846
1968
  min-height: var(--fs-badge-split-height);
1847
- padding: 1px 8px 3px;
1969
+ padding-block: 2px;
1970
+ padding-inline: 8px;
1848
1971
  }
1849
1972
  .fs-badge-split-label {
1850
1973
  color: var(--fs-badge-split-label-color);
@@ -1892,11 +2015,13 @@
1892
2015
  }
1893
2016
  .fs-badge-split.fs-badge-sm .fs-badge-split-label,
1894
2017
  .fs-badge-split.fs-badge-sm .fs-badge-split-value {
1895
- padding: 0 6px 2px;
2018
+ padding-block: 1px;
2019
+ padding-inline: 6px;
1896
2020
  }
1897
2021
  .fs-badge-split.fs-badge-lg .fs-badge-split-label,
1898
2022
  .fs-badge-split.fs-badge-lg .fs-badge-split-value {
1899
- padding: 2px 10px 4px;
2023
+ padding-block: 3px;
2024
+ padding-inline: 10px;
1900
2025
  }
1901
2026
  }
1902
2027
  @layer components {
@@ -2644,8 +2769,17 @@
2644
2769
  }
2645
2770
  @layer components {
2646
2771
  .fs-tag {
2772
+ --fs-tag-icon-size: var(--fs-tag-close-size);
2773
+ --fs-tag-icon-glyph-size: 12px;
2774
+ --fs-tag-icon-gap: 4px;
2775
+ --fs-tag-icon-color: currentcolor;
2776
+ --fs-tag-close-size: calc(var(--fs-badge-height) - 2px);
2777
+ --fs-tag-close-gap: 4px;
2778
+ --fs-tag-padding-inline-start: 8px;
2779
+ --fs-tag-padding-inline-end: 2px;
2647
2780
  gap: 0;
2648
- padding: 0 0 0 8px;
2781
+ padding-inline-start: var(--fs-tag-padding-inline-start);
2782
+ padding-inline-end: var(--fs-tag-padding-inline-end);
2649
2783
  }
2650
2784
  .fs-tag-label {
2651
2785
  min-width: 0;
@@ -2660,23 +2794,29 @@
2660
2794
  }
2661
2795
  .fs-tag-icon {
2662
2796
  display: inline-grid;
2663
- width: 12px;
2664
- height: 12px;
2665
- flex: 0 0 12px;
2666
- margin-right: 4px;
2797
+ width: var(--fs-tag-icon-size);
2798
+ height: var(--fs-tag-icon-size);
2799
+ flex: 0 0 var(--fs-tag-icon-size);
2667
2800
  place-items: center;
2801
+ color: var(--fs-tag-icon-color);
2802
+ margin-inline-end: var(--fs-tag-icon-gap);
2803
+ }
2804
+ .fs-tag-icon-end {
2805
+ margin-inline-start: auto;
2806
+ margin-inline-end: var(--fs-tag-icon-gap);
2668
2807
  }
2669
2808
  .fs-tag-icon .fs-icon {
2670
- width: 12px;
2671
- height: 12px;
2809
+ display: block;
2810
+ width: var(--fs-tag-icon-glyph-size);
2811
+ height: var(--fs-tag-icon-glyph-size);
2672
2812
  stroke: currentcolor;
2673
2813
  }
2674
2814
  .fs-tag .fs-btn-close {
2675
- width: calc(var(--fs-badge-height) - 2px);
2676
- height: calc(var(--fs-badge-height) - 2px);
2677
- flex: 0 0 calc(var(--fs-badge-height) - 2px);
2678
- margin-left: 4px;
2679
- border-radius: 0;
2815
+ width: var(--fs-tag-close-size);
2816
+ height: var(--fs-tag-close-size);
2817
+ flex: 0 0 var(--fs-tag-close-size);
2818
+ margin-inline-start: var(--fs-tag-close-gap);
2819
+ border-radius: var(--fs-badge-radius);
2680
2820
  background-color: transparent;
2681
2821
  color: inherit;
2682
2822
  opacity: 0.7;
@@ -2684,7 +2824,7 @@
2684
2824
  }
2685
2825
  .fs-tag .fs-btn-close::before,
2686
2826
  .fs-tag .fs-btn-close::after {
2687
- top: calc(50% + 1px);
2827
+ top: 50%;
2688
2828
  width: 8px;
2689
2829
  }
2690
2830
  .fs-tag .fs-btn-close:hover {
@@ -2747,6 +2887,9 @@
2747
2887
  .fs-tag-group .fs-tag:focus-within {
2748
2888
  background-color: color-mix(in srgb, currentcolor 18%, transparent);
2749
2889
  }
2890
+ .fs-tag:has(> .fs-tag-icon:not(.fs-tag-icon-end)) {
2891
+ --fs-tag-padding-inline-start: 2px;
2892
+ }
2750
2893
  .fs-tag-overflow {
2751
2894
  --fs-badge-bg: transparent;
2752
2895
  --fs-badge-color: var(--fs-alert-primary-text);
@@ -2797,7 +2940,7 @@
2797
2940
  display: inline-grid;
2798
2941
  width: calc(var(--fs-badge-height) - 2px);
2799
2942
  height: calc(var(--fs-badge-height) - 2px);
2800
- margin-left: 4px;
2943
+ margin-inline-start: var(--fs-tag-close-gap);
2801
2944
  place-items: center;
2802
2945
  }
2803
2946
  .fs-tag-lock svg {
@@ -3058,118 +3201,229 @@
3058
3201
  }
3059
3202
  @layer components {
3060
3203
  .fs-tooltip {
3204
+ --fs-tooltip-max-width: 240px;
3205
+ --fs-tooltip-padding-block: 6px;
3206
+ --fs-tooltip-padding-inline: 10px;
3207
+ --fs-tooltip-radius: var(--fs-radius-sm);
3208
+ --fs-tooltip-offset: 8px;
3209
+ --fs-tooltip-shadow: var(--fs-shadow-sm, 0 2px 8px rgb(0 0 0 / 18%));
3210
+ --fs-tooltip-arrow-size: 8px;
3211
+ --fs-tooltip-transition-duration: 120ms;
3061
3212
  position: absolute;
3062
3213
  z-index: var(--fs-z-tooltip);
3063
3214
  display: none;
3064
- max-width: 220px;
3215
+ max-inline-size: min(var(--fs-tooltip-max-width), 100vw - 16px);
3216
+ min-inline-size: 0;
3217
+ overflow-wrap: anywhere;
3065
3218
  }
3066
3219
  .fs-tooltip.is-open {
3067
3220
  display: block;
3221
+ pointer-events: none;
3222
+ animation: fs-tooltip-in var(--fs-tooltip-transition-duration) ease-out;
3068
3223
  }
3069
3224
  .fs-tooltip-inner {
3070
- padding: 6px 10px;
3071
- border-radius: var(--fs-radius-sm);
3225
+ padding-block: var(--fs-tooltip-padding-block);
3226
+ padding-inline: var(--fs-tooltip-padding-inline);
3227
+ border: 1px solid transparent;
3228
+ border-radius: var(--fs-tooltip-radius);
3072
3229
  color: var(--fs-tooltip-text);
3073
3230
  background-color: var(--fs-tooltip-bg);
3231
+ box-shadow: var(--fs-tooltip-shadow);
3074
3232
  font-size: 0.6875rem;
3075
- text-align: center;
3233
+ line-height: 1.4;
3234
+ text-align: start;
3076
3235
  }
3077
3236
  .fs-tooltip-arrow {
3078
3237
  position: absolute;
3079
- width: 8px;
3080
- height: 8px;
3238
+ inline-size: var(--fs-tooltip-arrow-size);
3239
+ block-size: var(--fs-tooltip-arrow-size);
3081
3240
  background-color: var(--fs-tooltip-bg);
3082
3241
  transform: rotate(45deg);
3083
3242
  }
3084
3243
  .fs-tooltip[data-placement=top] .fs-tooltip-arrow {
3085
- bottom: -4px;
3086
- left: 50%;
3087
- margin-left: -4px;
3244
+ inset-block-end: -4px;
3245
+ inset-inline-start: var(--fs-tooltip-arrow-offset, 50%);
3246
+ margin-inline-start: -4px;
3088
3247
  }
3089
3248
  .fs-tooltip[data-placement=bottom] .fs-tooltip-arrow {
3090
- top: -4px;
3091
- left: 50%;
3092
- margin-left: -4px;
3249
+ inset-block-start: -4px;
3250
+ inset-inline-start: var(--fs-tooltip-arrow-offset, 50%);
3251
+ margin-inline-start: -4px;
3093
3252
  }
3094
3253
  .fs-tooltip[data-placement=left] .fs-tooltip-arrow {
3095
- top: 50%;
3096
- right: -4px;
3097
- margin-top: -4px;
3254
+ inset-block-start: var(--fs-tooltip-arrow-offset, 50%);
3255
+ inset-inline-end: -4px;
3256
+ margin-block-start: -4px;
3098
3257
  }
3099
3258
  .fs-tooltip[data-placement=right] .fs-tooltip-arrow {
3100
- top: 50%;
3101
- left: -4px;
3102
- margin-top: -4px;
3259
+ inset-block-start: var(--fs-tooltip-arrow-offset, 50%);
3260
+ inset-inline-start: -4px;
3261
+ margin-block-start: -4px;
3262
+ }
3263
+ @media (prefers-reduced-motion: reduce) {
3264
+ .fs-tooltip {
3265
+ animation: none;
3266
+ }
3267
+ }
3268
+ @media (forced-colors: active) {
3269
+ .fs-tooltip-inner,
3270
+ .fs-tooltip-arrow {
3271
+ color: CanvasText;
3272
+ background-color: Canvas;
3273
+ border-color: CanvasText;
3274
+ box-shadow: none;
3275
+ }
3276
+ }
3277
+ @media (prefers-contrast: more) {
3278
+ .fs-tooltip-inner {
3279
+ border-color: currentcolor;
3280
+ box-shadow: none;
3281
+ }
3282
+ }
3283
+ @keyframes fs-tooltip-in {
3284
+ from {
3285
+ opacity: 0;
3286
+ transform: translateY(2px);
3287
+ }
3288
+ to {
3289
+ opacity: 1;
3290
+ transform: translateY(0);
3291
+ }
3103
3292
  }
3104
3293
  }
3105
3294
  @layer components {
3106
3295
  .fs-popover {
3296
+ --fs-popover-width: 320px;
3297
+ --fs-popover-max-width: min(var(--fs-popover-width), calc(100vw - 32px));
3298
+ --fs-popover-padding-block: 12px;
3299
+ --fs-popover-padding-inline: 14px;
3300
+ --fs-popover-gap: 10px;
3301
+ --fs-popover-radius: var(--fs-radius-md, 6px);
3302
+ --fs-popover-shadow: var(--fs-shadow-md);
3303
+ --fs-popover-icon-size: 20px;
3304
+ --fs-popover-heading-gap: 4px;
3305
+ --fs-popover-footer-gap: 8px;
3306
+ --fs-popover-arrow-size: 8px;
3307
+ --fs-popover-border-width: 1px;
3107
3308
  position: absolute;
3108
3309
  z-index: var(--fs-z-offcanvas);
3109
3310
  display: none;
3110
- max-width: 280px;
3311
+ inline-size: var(--fs-popover-width);
3312
+ max-inline-size: var(--fs-popover-max-width);
3313
+ min-inline-size: 0;
3111
3314
  color: var(--fs-color-text);
3112
3315
  background-color: var(--fs-color-surface);
3113
- border: 1px solid var(--fs-color-border);
3114
- border-radius: var(--fs-radius-md);
3115
- box-shadow: var(--fs-shadow-md);
3316
+ border: var(--fs-popover-border-width) solid var(--fs-color-border);
3317
+ border-radius: var(--fs-popover-radius);
3318
+ box-shadow: var(--fs-popover-shadow);
3319
+ overflow-wrap: anywhere;
3116
3320
  }
3117
3321
  .fs-popover.is-open {
3118
3322
  display: block;
3119
3323
  }
3120
3324
  .fs-popover-header {
3121
- padding: 10px 14px;
3325
+ display: flex;
3326
+ align-items: center;
3327
+ gap: var(--fs-popover-gap);
3328
+ min-inline-size: 0;
3329
+ padding-block: var(--fs-popover-padding-block);
3330
+ padding-inline: var(--fs-popover-padding-inline);
3122
3331
  background-color: var(--fs-color-subtle);
3123
3332
  border-bottom: 1px solid var(--fs-color-border);
3124
- border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;
3333
+ border-radius: var(--fs-popover-radius) var(--fs-popover-radius) 0 0;
3125
3334
  font-size: 0.75rem;
3126
3335
  font-weight: 500;
3127
3336
  }
3128
3337
  .fs-popover-body {
3129
- padding: 14px;
3338
+ min-inline-size: 0;
3339
+ padding-block: var(--fs-popover-padding-block);
3340
+ padding-inline: var(--fs-popover-padding-inline);
3130
3341
  font-size: 0.75rem;
3342
+ line-height: 1.5;
3343
+ }
3344
+ .fs-popover-icon {
3345
+ display: inline-flex;
3346
+ flex: 0 0 var(--fs-popover-icon-size);
3347
+ align-items: center;
3348
+ justify-content: center;
3349
+ inline-size: var(--fs-popover-icon-size);
3350
+ block-size: var(--fs-popover-icon-size);
3351
+ color: currentcolor;
3352
+ }
3353
+ .fs-popover-icon .fs-icon,
3354
+ .fs-popover-icon > svg {
3355
+ inline-size: 100%;
3356
+ block-size: 100%;
3357
+ }
3358
+ .fs-popover-heading {
3359
+ display: flex;
3360
+ flex: 1 1 auto;
3361
+ flex-wrap: wrap;
3362
+ align-items: baseline;
3363
+ gap: var(--fs-popover-heading-gap);
3364
+ min-inline-size: 0;
3365
+ }
3366
+ .fs-popover-title,
3367
+ .fs-popover-meta,
3368
+ .fs-popover-text {
3369
+ min-inline-size: 0;
3370
+ }
3371
+ .fs-popover-meta {
3372
+ color: var(--fs-color-muted);
3373
+ font-size: 0.6875rem;
3374
+ font-weight: 400;
3375
+ }
3376
+ .fs-popover-text {
3377
+ margin: 0;
3378
+ }
3379
+ .fs-popover-close {
3380
+ flex: 0 0 auto;
3381
+ margin-inline-start: auto;
3382
+ color: inherit;
3131
3383
  }
3132
3384
  .fs-popover-footer {
3133
3385
  display: flex;
3134
3386
  align-items: center;
3135
3387
  justify-content: flex-end;
3136
- gap: 8px;
3137
- padding: 10px 14px;
3388
+ flex-wrap: wrap;
3389
+ gap: var(--fs-popover-footer-gap);
3390
+ padding-block: var(--fs-popover-padding-block);
3391
+ padding-inline: var(--fs-popover-padding-inline);
3138
3392
  border-top: 1px solid var(--fs-color-border);
3139
3393
  }
3140
3394
  .fs-popover-arrow {
3141
3395
  position: absolute;
3142
- width: 8px;
3143
- height: 8px;
3396
+ inline-size: var(--fs-popover-arrow-size);
3397
+ block-size: var(--fs-popover-arrow-size);
3144
3398
  background-color: var(--fs-color-surface);
3145
3399
  border: 1px solid var(--fs-color-border);
3146
3400
  transform: rotate(45deg);
3147
3401
  }
3148
3402
  .fs-popover[data-placement=top] .fs-popover-arrow {
3149
3403
  bottom: -5px;
3150
- left: 50%;
3151
- margin-left: -4px;
3404
+ inset-inline-start: var(--fs-popover-arrow-offset, 50%);
3405
+ margin-inline-start: calc(var(--fs-popover-arrow-size) / -2);
3152
3406
  border-top: 0;
3153
3407
  border-left: 0;
3154
3408
  }
3155
3409
  .fs-popover[data-placement=bottom] .fs-popover-arrow {
3156
3410
  top: -5px;
3157
- left: 50%;
3158
- margin-left: -4px;
3411
+ inset-inline-start: var(--fs-popover-arrow-offset, 50%);
3412
+ margin-inline-start: calc(var(--fs-popover-arrow-size) / -2);
3159
3413
  border-right: 0;
3160
3414
  border-bottom: 0;
3161
3415
  }
3162
3416
  .fs-popover[data-placement=left] .fs-popover-arrow {
3163
- top: 50%;
3164
- right: -5px;
3165
- margin-top: -4px;
3417
+ inset-block-start: var(--fs-popover-arrow-offset, 50%);
3418
+ inset-inline-end: calc(var(--fs-popover-arrow-size) / -2 - 1px);
3419
+ margin-block-start: calc(var(--fs-popover-arrow-size) / -2);
3166
3420
  border-bottom: 0;
3167
3421
  border-left: 0;
3168
3422
  }
3169
3423
  .fs-popover[data-placement=right] .fs-popover-arrow {
3170
- top: 50%;
3171
- left: -5px;
3172
- margin-top: -4px;
3424
+ inset-block-start: var(--fs-popover-arrow-offset, 50%);
3425
+ inset-inline-start: calc(var(--fs-popover-arrow-size) / -2 - 1px);
3426
+ margin-block-start: calc(var(--fs-popover-arrow-size) / -2);
3173
3427
  border-top: 0;
3174
3428
  border-right: 0;
3175
3429
  }
@@ -3180,66 +3434,237 @@
3180
3434
  display: flex;
3181
3435
  gap: 12px;
3182
3436
  }
3437
+ .fs-popover[aria-busy=true] {
3438
+ cursor: progress;
3439
+ }
3440
+ @media (width <= 480px) {
3441
+ .fs-popover {
3442
+ --fs-popover-padding-inline: 12px;
3443
+ --fs-popover-max-width: calc(100vw - 24px);
3444
+ }
3445
+ .fs-popover-footer {
3446
+ align-items: flex-start;
3447
+ }
3448
+ }
3449
+ @media (prefers-reduced-motion: reduce) {
3450
+ .fs-popover {
3451
+ transition: none;
3452
+ }
3453
+ }
3454
+ @media (forced-colors: active) {
3455
+ .fs-popover,
3456
+ .fs-popover-arrow {
3457
+ border-color: CanvasText;
3458
+ color: CanvasText;
3459
+ background-color: Canvas;
3460
+ box-shadow: none;
3461
+ }
3462
+ .fs-popover-header,
3463
+ .fs-popover-footer {
3464
+ border-color: CanvasText;
3465
+ background-color: Canvas;
3466
+ }
3467
+ }
3183
3468
  }
3184
3469
  @layer components {
3185
3470
  .fs-toast-container {
3471
+ --fs-toast-offset: 16px;
3472
+ --fs-toast-gap: 8px;
3473
+ --fs-toast-width: 360px;
3474
+ --fs-toast-max-width: calc(100vw - 32px);
3186
3475
  position: fixed;
3187
- right: 16px;
3188
- bottom: 16px;
3476
+ inset-inline-end: calc(var(--fs-toast-offset) + env(safe-area-inset-inline-end, 0px));
3477
+ inset-block-end: calc(var(--fs-toast-offset) + env(safe-area-inset-bottom, 0px));
3189
3478
  z-index: var(--fs-z-toast);
3190
3479
  display: flex;
3191
3480
  flex-direction: column;
3192
- gap: 8px;
3193
- width: min(360px, 100%);
3194
- max-width: calc(100vw - 2 * var(--fs-space-3));
3481
+ gap: var(--fs-toast-gap);
3482
+ inline-size: min(var(--fs-toast-width), 100%);
3483
+ max-inline-size: var(--fs-toast-max-width);
3195
3484
  }
3196
3485
  .fs-toast {
3486
+ --fs-toast-padding-block: 12px;
3487
+ --fs-toast-padding-inline: 14px;
3488
+ --fs-toast-gap: 10px;
3489
+ --fs-toast-radius: var(--fs-radius-md, 6px);
3490
+ --fs-toast-shadow: var(--fs-shadow-md);
3491
+ --fs-toast-icon-size: 20px;
3492
+ --fs-toast-title-gap: 4px;
3493
+ --fs-toast-actions-gap: 8px;
3494
+ --fs-toast-border-width: 1px;
3495
+ --fs-toast-progress-height: 3px;
3197
3496
  display: flex;
3198
3497
  overflow: hidden;
3199
3498
  flex-direction: column;
3200
- border: 1px solid var(--fs-color-border);
3201
- border-radius: var(--fs-radius-md);
3499
+ min-inline-size: 0;
3500
+ border: var(--fs-toast-border-width) solid var(--fs-color-border);
3501
+ border-inline-start: 4px solid var(--fs-color-border);
3502
+ border-radius: var(--fs-toast-radius);
3202
3503
  color: var(--fs-color-text);
3203
3504
  background-color: var(--fs-color-surface);
3204
- box-shadow: var(--fs-shadow-md);
3505
+ box-shadow: var(--fs-toast-shadow);
3506
+ overflow-wrap: anywhere;
3205
3507
  }
3206
3508
  .fs-toast-header {
3207
3509
  display: flex;
3208
3510
  align-items: center;
3209
- justify-content: space-between;
3210
- padding: 10px 12px;
3511
+ gap: var(--fs-toast-gap);
3512
+ min-inline-size: 0;
3513
+ padding-block: var(--fs-toast-padding-block);
3514
+ padding-inline: var(--fs-toast-padding-inline);
3211
3515
  border-bottom: 1px solid var(--fs-color-border);
3212
3516
  font-size: 0.75rem;
3213
3517
  font-weight: 500;
3214
3518
  }
3519
+ .fs-toast-icon {
3520
+ display: inline-flex;
3521
+ flex: 0 0 var(--fs-toast-icon-size);
3522
+ align-items: center;
3523
+ justify-content: center;
3524
+ inline-size: var(--fs-toast-icon-size);
3525
+ block-size: var(--fs-toast-icon-size);
3526
+ color: currentcolor;
3527
+ }
3528
+ .fs-toast-icon .fs-icon,
3529
+ .fs-toast-icon > svg {
3530
+ inline-size: 100%;
3531
+ block-size: 100%;
3532
+ }
3533
+ .fs-toast-heading {
3534
+ display: flex;
3535
+ flex: 1 1 auto;
3536
+ flex-wrap: wrap;
3537
+ align-items: baseline;
3538
+ gap: var(--fs-toast-title-gap);
3539
+ min-inline-size: 0;
3540
+ }
3541
+ .fs-toast-title,
3542
+ .fs-toast-meta {
3543
+ min-inline-size: 0;
3544
+ }
3545
+ .fs-toast-meta {
3546
+ color: var(--fs-color-muted);
3547
+ font-size: 0.6875rem;
3548
+ font-weight: 400;
3549
+ }
3550
+ .fs-toast-close {
3551
+ flex: 0 0 auto;
3552
+ margin-inline-start: auto;
3553
+ color: inherit;
3554
+ }
3215
3555
  .fs-toast-body {
3216
- padding: 12px;
3556
+ min-inline-size: 0;
3557
+ padding-block: var(--fs-toast-padding-block);
3558
+ padding-inline: var(--fs-toast-padding-inline);
3217
3559
  font-size: 0.75rem;
3560
+ line-height: 1.5;
3561
+ }
3562
+ .fs-toast-actions {
3563
+ display: flex;
3564
+ flex-wrap: wrap;
3565
+ gap: var(--fs-toast-actions-gap);
3566
+ align-items: center;
3567
+ padding-block: 0 var(--fs-toast-padding-block);
3568
+ padding-inline: var(--fs-toast-padding-inline);
3569
+ }
3570
+ .fs-toast-link {
3571
+ color: inherit;
3572
+ font-weight: 500;
3573
+ text-decoration: underline;
3574
+ text-underline-offset: 2px;
3575
+ }
3576
+ .fs-toast-progress {
3577
+ display: none;
3578
+ align-self: stretch;
3579
+ margin-inline-start: auto;
3580
+ inline-size: 100%;
3581
+ block-size: var(--fs-toast-progress-height);
3582
+ background-color: currentcolor;
3583
+ opacity: 0.5;
3584
+ }
3585
+ .fs-toast.is-progressing[data-toast-progress=true]:not([data-autohide=false]) .fs-toast-progress {
3586
+ display: block;
3587
+ inline-size: 100%;
3588
+ transition: inline-size 50ms linear;
3589
+ }
3590
+ .fs-toast.is-paused .fs-toast-progress,
3591
+ .fs-toast.is-progressing[data-toast-progress=true]:not([data-autohide=false]):hover .fs-toast-progress {
3592
+ animation-play-state: paused;
3218
3593
  }
3219
3594
  .fs-toast-primary .fs-toast-header {
3220
3595
  color: var(--fs-alert-primary-text);
3221
3596
  background-color: var(--fs-alert-primary-bg);
3222
3597
  }
3598
+ .fs-toast-primary {
3599
+ border-inline-start-color: var(--fs-color-primary);
3600
+ }
3223
3601
  .fs-toast-secondary .fs-toast-header {
3224
3602
  color: var(--fs-alert-secondary-text);
3225
3603
  background-color: var(--fs-alert-secondary-bg);
3226
3604
  }
3605
+ .fs-toast-secondary {
3606
+ border-inline-start-color: var(--fs-color-secondary);
3607
+ }
3227
3608
  .fs-toast-success .fs-toast-header {
3228
3609
  color: var(--fs-alert-success-text);
3229
3610
  background-color: var(--fs-alert-success-bg);
3230
3611
  }
3612
+ .fs-toast-success {
3613
+ border-inline-start-color: var(--fs-color-success);
3614
+ }
3231
3615
  .fs-toast-warning .fs-toast-header {
3232
3616
  color: var(--fs-alert-warning-text);
3233
3617
  background-color: var(--fs-alert-warning-bg);
3234
3618
  }
3619
+ .fs-toast-warning {
3620
+ border-inline-start-color: var(--fs-color-warning);
3621
+ }
3235
3622
  .fs-toast-danger .fs-toast-header {
3236
3623
  color: var(--fs-alert-danger-text);
3237
3624
  background-color: var(--fs-alert-danger-bg);
3238
3625
  }
3626
+ .fs-toast-danger {
3627
+ border-inline-start-color: var(--fs-color-danger);
3628
+ }
3239
3629
  .fs-toast-info .fs-toast-header {
3240
3630
  color: var(--fs-alert-info-text);
3241
3631
  background-color: var(--fs-alert-info-bg);
3242
3632
  }
3633
+ .fs-toast-info {
3634
+ border-inline-start-color: var(--fs-color-info);
3635
+ }
3636
+ @media (width <= 480px) {
3637
+ .fs-toast-container {
3638
+ --fs-toast-offset: 12px;
3639
+ --fs-toast-max-width: calc(100vw - 24px);
3640
+ }
3641
+ .fs-toast-actions {
3642
+ align-items: flex-start;
3643
+ }
3644
+ }
3645
+ @media (prefers-reduced-motion: reduce) {
3646
+ .fs-toast.is-progressing[data-toast-progress=true]:not([data-autohide=false]) .fs-toast-progress {
3647
+ animation: none;
3648
+ inline-size: 100%;
3649
+ transition: none;
3650
+ }
3651
+ }
3652
+ @media (forced-colors: active) {
3653
+ .fs-toast {
3654
+ border-color: CanvasText;
3655
+ border-inline-start-color: Highlight;
3656
+ color: CanvasText;
3657
+ background-color: Canvas;
3658
+ box-shadow: none;
3659
+ }
3660
+ .fs-toast-header {
3661
+ border-color: CanvasText;
3662
+ background-color: Canvas;
3663
+ }
3664
+ .fs-toast-progress {
3665
+ background-color: Highlight;
3666
+ }
3667
+ }
3243
3668
  }
3244
3669
  @layer components {
3245
3670
  .fs-pagination {
@@ -4890,6 +5315,59 @@
4890
5315
  inset-block-start: var(--fs-space-4);
4891
5316
  }
4892
5317
  }
5318
+ /* stylelint-disable declaration-block-single-line-max-declarations */
5319
+ @layer components {
5320
+ .fs-stack {
5321
+ display: flex;
5322
+ flex-direction: column;
5323
+ gap: var(--fs-stack-gap, var(--fs-space-3));
5324
+ }
5325
+ .fs-cluster {
5326
+ display: flex;
5327
+ flex-wrap: wrap;
5328
+ align-items: center;
5329
+ gap: var(--fs-cluster-gap, var(--fs-space-2));
5330
+ }
5331
+ .fs-responsive-media {
5332
+ width: 100%;
5333
+ height: auto;
5334
+ object-fit: cover;
5335
+ }
5336
+ @media (width <= 639.98px) {
5337
+ .fs-modal-dialog, .fs-offcanvas {
5338
+ max-width: 100%;
5339
+ margin-inline: 0;
5340
+ border-radius: 0;
5341
+ }
5342
+ .fs-table-responsive {
5343
+ overflow-x: auto;
5344
+ -webkit-overflow-scrolling: touch;
5345
+ }
5346
+ .fs-btn-group-responsive, .fs-btn-group-responsive > .fs-btn {
5347
+ width: 100%;
5348
+ }
5349
+ .fs-btn-group-responsive {
5350
+ flex-direction: column;
5351
+ }
5352
+ }
5353
+ @media (width >= 640px) {
5354
+ .fs-stack-md-row {
5355
+ flex-direction: row;
5356
+ align-items: center;
5357
+ }
5358
+ }
5359
+ @media (prefers-reduced-motion: reduce) {
5360
+ .fs-stack, .fs-cluster {
5361
+ scroll-behavior: auto;
5362
+ }
5363
+ }
5364
+ @media (forced-colors: active) {
5365
+ .fs-card, .fs-dropdown-menu, .fs-modal-content, .fs-offcanvas, .fs-toast {
5366
+ border: 1px solid CanvasText;
5367
+ box-shadow: none;
5368
+ }
5369
+ }
5370
+ }
4893
5371
  @layer utilities {
4894
5372
  .fs-u-cq {
4895
5373
  container-type: inline-size;
@@ -8303,6 +8781,7 @@
8303
8781
  }
8304
8782
  }
8305
8783
  }
8784
+ /* stylelint-disable declaration-block-single-line-max-declarations */
8306
8785
  @layer utilities {
8307
8786
  .fs-u-color-primary {
8308
8787
  color: var(--fs-color-primary, oklch(53.5630074284% 0.2132145174 261.6264320248deg)) !important;
@@ -8544,6 +9023,141 @@
8544
9023
  text-align: start !important;
8545
9024
  }
8546
9025
  }
9026
+ .fs-u-d-block {
9027
+ display: block !important;
9028
+ }
9029
+ .fs-u-d-inline {
9030
+ display: inline !important;
9031
+ }
9032
+ .fs-u-d-inline-block {
9033
+ display: inline-block !important;
9034
+ }
9035
+ .fs-u-d-flex {
9036
+ display: flex !important;
9037
+ }
9038
+ .fs-u-d-grid {
9039
+ display: grid !important;
9040
+ }
9041
+ .fs-u-d-none {
9042
+ display: none !important;
9043
+ }
9044
+ .fs-u-flex-row {
9045
+ flex-direction: row !important;
9046
+ }
9047
+ .fs-u-flex-column {
9048
+ flex-direction: column !important;
9049
+ }
9050
+ .fs-u-flex-row-reverse {
9051
+ flex-direction: row-reverse !important;
9052
+ }
9053
+ .fs-u-flex-column-reverse {
9054
+ flex-direction: column-reverse !important;
9055
+ }
9056
+ .fs-u-flex-wrap {
9057
+ flex-wrap: wrap !important;
9058
+ }
9059
+ .fs-u-flex-nowrap {
9060
+ flex-wrap: nowrap !important;
9061
+ }
9062
+ .fs-u-justify-start {
9063
+ justify-content: flex-start !important;
9064
+ }
9065
+ .fs-u-justify-center {
9066
+ justify-content: center !important;
9067
+ }
9068
+ .fs-u-justify-end {
9069
+ justify-content: flex-end !important;
9070
+ }
9071
+ .fs-u-justify-between {
9072
+ justify-content: space-between !important;
9073
+ }
9074
+ .fs-u-align-start {
9075
+ align-items: flex-start !important;
9076
+ }
9077
+ .fs-u-align-center {
9078
+ align-items: center !important;
9079
+ }
9080
+ .fs-u-align-end {
9081
+ align-items: flex-end !important;
9082
+ }
9083
+ .fs-u-gap-0 {
9084
+ gap: 0 !important;
9085
+ }
9086
+ .fs-u-row-gap-0 {
9087
+ row-gap: 0 !important;
9088
+ }
9089
+ .fs-u-column-gap-0 {
9090
+ column-gap: 0 !important;
9091
+ }
9092
+ .fs-u-gap-1 {
9093
+ gap: 0.25rem !important;
9094
+ }
9095
+ .fs-u-row-gap-1 {
9096
+ row-gap: 0.25rem !important;
9097
+ }
9098
+ .fs-u-column-gap-1 {
9099
+ column-gap: 0.25rem !important;
9100
+ }
9101
+ .fs-u-gap-2 {
9102
+ gap: 0.5rem !important;
9103
+ }
9104
+ .fs-u-row-gap-2 {
9105
+ row-gap: 0.5rem !important;
9106
+ }
9107
+ .fs-u-column-gap-2 {
9108
+ column-gap: 0.5rem !important;
9109
+ }
9110
+ .fs-u-gap-3 {
9111
+ gap: 1rem !important;
9112
+ }
9113
+ .fs-u-row-gap-3 {
9114
+ row-gap: 1rem !important;
9115
+ }
9116
+ .fs-u-column-gap-3 {
9117
+ column-gap: 1rem !important;
9118
+ }
9119
+ .fs-u-gap-4 {
9120
+ gap: 1.5rem !important;
9121
+ }
9122
+ .fs-u-row-gap-4 {
9123
+ row-gap: 1.5rem !important;
9124
+ }
9125
+ .fs-u-column-gap-4 {
9126
+ column-gap: 1.5rem !important;
9127
+ }
9128
+ .fs-u-gap-5 {
9129
+ gap: 3rem !important;
9130
+ }
9131
+ .fs-u-row-gap-5 {
9132
+ row-gap: 3rem !important;
9133
+ }
9134
+ .fs-u-column-gap-5 {
9135
+ column-gap: 3rem !important;
9136
+ }
9137
+ .fs-u-text-start {
9138
+ text-align: start !important;
9139
+ }
9140
+ .fs-u-text-center {
9141
+ text-align: center !important;
9142
+ }
9143
+ .fs-u-text-end {
9144
+ text-align: end !important;
9145
+ }
9146
+ .fs-u-text-wrap {
9147
+ white-space: normal !important;
9148
+ }
9149
+ .fs-u-text-nowrap {
9150
+ white-space: nowrap !important;
9151
+ }
9152
+ .fs-u-fw-normal {
9153
+ font-weight: 400 !important;
9154
+ }
9155
+ .fs-u-fw-semibold {
9156
+ font-weight: 600 !important;
9157
+ }
9158
+ .fs-u-fw-bold {
9159
+ font-weight: 700 !important;
9160
+ }
8547
9161
  }
8548
9162
  [dir=rtl] {
8549
9163
  direction: rtl;