slexkit 0.2.0 → 0.3.1

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 (104) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/LICENSE +21 -21
  3. package/README.md +4 -3
  4. package/README.zh-CN.md +4 -3
  5. package/dist/ai/llms-authoring.txt +2 -0
  6. package/dist/ai/llms-capabilities.txt +126 -0
  7. package/dist/ai/llms-components.txt +29 -7
  8. package/dist/ai/llms-full.txt +1909 -153
  9. package/dist/ai/llms-runtime.txt +18 -13
  10. package/dist/ai/llms.txt +22 -1
  11. package/dist/ai/slexkit-ai-manifest.json +717 -62
  12. package/dist/base.css +359 -359
  13. package/dist/chunks/{accordion-cfjyxw93.js → button-53ccjq5p.js} +11 -11
  14. package/dist/chunks/{accordion-nw12ytps.js → button-cr1fhsa7.js} +48 -2
  15. package/dist/chunks/{accordion-5f0nvjjm.js → button-dsftwzvg.js} +4 -3
  16. package/dist/chunks/{accordion-hzyrngd6.js → button-faf563xf.js} +2 -2
  17. package/dist/chunks/{accordion-ehnhpeca.js → button-jxv4c65t.js} +2 -2
  18. package/dist/chunks/{accordion-cw5r75jm.js → button-xv2dz7vn.js} +1 -1
  19. package/dist/chunks/{accordion-830dw78f.js → button-z5yv24ks.js} +2 -2
  20. package/dist/components/accordion.js +2 -2
  21. package/dist/components/badge.js +2 -2
  22. package/dist/components/button.css +101 -101
  23. package/dist/components/button.js +3 -3
  24. package/dist/components/callout.js +4 -4
  25. package/dist/components/card.js +2 -2
  26. package/dist/components/checkbox.js +3 -2
  27. package/dist/components/choice.css +151 -151
  28. package/dist/components/code-block.js +2 -2
  29. package/dist/components/collapsible.js +2 -2
  30. package/dist/components/column.js +1 -1
  31. package/dist/components/content.css +273 -250
  32. package/dist/components/display.css +1 -1
  33. package/dist/components/divider.js +2 -2
  34. package/dist/components/grid.js +1 -1
  35. package/dist/components/index.js +13994 -172
  36. package/dist/components/input.css +786 -852
  37. package/dist/components/input.js +34 -144
  38. package/dist/components/link.js +2 -2
  39. package/dist/components/progress.js +2 -2
  40. package/dist/components/radio-group.js +3 -2
  41. package/dist/components/row.js +1 -1
  42. package/dist/components/section.js +2 -2
  43. package/dist/components/select.css +175 -181
  44. package/dist/components/select.js +3 -3
  45. package/dist/components/slider.css +125 -116
  46. package/dist/components/slider.js +2 -2
  47. package/dist/components/specs.js +34 -1
  48. package/dist/components/stat.js +2 -2
  49. package/dist/components/submit.css +8 -8
  50. package/dist/components/submit.js +1 -1
  51. package/dist/components/switch.css +105 -105
  52. package/dist/components/switch.js +4 -3
  53. package/dist/components/table.js +4 -4
  54. package/dist/components/tabs.css +95 -95
  55. package/dist/components/tabs.js +4 -4
  56. package/dist/components/text-input.css +26 -95
  57. package/dist/components/text.js +13 -1
  58. package/dist/components/toast.js +4 -4
  59. package/dist/components/tooling.css +0 -1
  60. package/dist/components/tooling.js +73 -8
  61. package/dist/runtime.cjs +1610 -17
  62. package/dist/runtime.js +1609 -16
  63. package/dist/slexkit.cjs +28191 -13865
  64. package/dist/slexkit.css +1525 -1569
  65. package/dist/slexkit.js +28190 -13864
  66. package/dist/tooling.js +117 -11
  67. package/dist/types/components/svelte/helpers.d.ts +8 -1
  68. package/dist/types/engine/capabilities.d.ts +54 -0
  69. package/dist/types/engine/index.d.ts +6 -0
  70. package/dist/types/engine/secure-runtime.d.ts +9 -1
  71. package/dist/types/engine/stdlib.d.ts +30 -0
  72. package/dist/types/engine/types.d.ts +1 -0
  73. package/dist/types/engine/validation.d.ts +28 -0
  74. package/dist/types/index.d.ts +6 -3
  75. package/dist/types/runtime.d.ts +6 -3
  76. package/dist/types/version.d.ts +2 -2
  77. package/dist/umd/slexkit.tooling.umd.js +45084 -44775
  78. package/dist/umd/slexkit.umd.js +28191 -13865
  79. package/package.json +5 -3
  80. package/skills/slexkit-host-integration/SKILL.md +1 -1
  81. package/src/components/svelte/content/Formula.svelte +27 -0
  82. package/src/components/svelte/content/Table.svelte +1 -1
  83. package/src/components/svelte/display/Text.svelte +14 -1
  84. package/src/components/svelte/helpers.ts +56 -1
  85. package/src/components/svelte/input/Checkbox.svelte +1 -1
  86. package/src/components/svelte/input/Input.svelte +0 -110
  87. package/src/components/svelte/input/RadioGroup.svelte +1 -1
  88. package/src/components/svelte/input/Select.svelte +2 -2
  89. package/src/components/svelte/input/Switch.svelte +2 -2
  90. package/src/components/svelte/input/Tabs.svelte +7 -7
  91. package/src/components/svelte/tooling/PlaygroundMarkdown.svelte +84 -2
  92. package/src/styles/components/button.css +101 -101
  93. package/src/styles/components/choice.css +152 -152
  94. package/src/styles/components/select.css +175 -181
  95. package/src/styles/components/slider.css +125 -116
  96. package/src/styles/components/submit.css +8 -8
  97. package/src/styles/components/switch.css +105 -105
  98. package/src/styles/components/tabs.css +95 -95
  99. package/src/styles/components/text-input.css +26 -95
  100. package/src/styles/content.css +274 -251
  101. package/src/styles/display.css +1 -1
  102. package/src/styles/input.css +8 -8
  103. package/src/styles/layout.css +360 -360
  104. package/src/styles/tooling.css +0 -1
package/dist/slexkit.css CHANGED
@@ -870,370 +870,370 @@ color-scheme: dark;
870
870
 
871
871
  /* layout.css */
872
872
 
873
- .slexkit-root {
874
- --font-sans:
875
- "Geist", "Geist Sans", "Noto Sans SC", "Noto Sans", ui-sans-serif, system-ui, -apple-system,
876
- BlinkMacSystemFont, "Segoe UI", sans-serif;
877
- --font-mono:
878
- "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code",
879
- Consolas, monospace;
880
- font-family: var(
881
- --font-sans,
882
- "Geist",
883
- "Geist Sans",
884
- "Noto Sans SC",
885
- "Noto Sans",
886
- ui-sans-serif,
887
- system-ui,
888
- -apple-system,
889
- BlinkMacSystemFont,
890
- "Segoe UI",
891
- sans-serif
892
- );
893
- color: var(--foreground);
894
- background: transparent;
895
- line-height: 1.5;
896
- -webkit-font-smoothing: antialiased;
897
- -moz-osx-font-smoothing: grayscale;
898
- }
899
-
900
- .slexkit-root,
901
- .slexkit-root *,
902
- .slexkit-root *::before,
903
- .slexkit-root *::after {
904
- box-sizing: border-box;
905
- }
906
-
907
- body[data-mobile-nav-open] {
908
- overflow: hidden;
909
- overscroll-behavior: contain;
910
- }
911
-
912
- #mobileNav {
913
- --mobile-nav-backdrop-opacity: 0;
914
- --mobile-nav-panel-translate: -100%;
915
- pointer-events: none;
916
- }
917
-
918
- #mobileNav[data-open="true"] {
919
- --mobile-nav-backdrop-opacity: 1;
920
- --mobile-nav-panel-translate: 0px;
921
- pointer-events: auto;
922
- }
923
-
924
- #mobileNav [data-mobile-nav-backdrop] {
925
- opacity: var(--mobile-nav-backdrop-opacity);
926
- touch-action: pan-y;
927
- transition: opacity 180ms ease;
928
- }
929
-
930
- #mobileNav [data-mobile-nav-panel] {
931
- transform: translateX(var(--mobile-nav-panel-translate));
932
- touch-action: pan-y;
933
- transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
934
- will-change: transform;
935
- }
936
-
937
- #mobileNav[data-dragging="true"] [data-mobile-nav-backdrop],
938
- #mobileNav[data-dragging="true"] [data-mobile-nav-panel] {
939
- transition: none;
940
- }
941
-
942
- @media (prefers-reduced-motion: reduce) {
943
- #mobileNav [data-mobile-nav-backdrop],
944
- #mobileNav [data-mobile-nav-panel] {
945
- transition: none;
946
- }
947
- }
948
-
949
- .slexkit-for-wrapper {
950
- display: contents;
951
- }
952
-
953
- .slexkit-source-toolbar {
954
- display: flex;
955
- align-items: center;
956
- justify-content: flex-end;
957
- gap: 0.5rem;
958
- margin: 0.5rem 0;
959
- }
960
-
961
- .slexkit-source-button {
962
- display: inline-flex;
963
- align-items: center;
964
- justify-content: center;
965
- min-height: 28px;
966
- padding: 0 0.625rem;
967
- border: 1px solid var(--border);
968
- border-radius: calc(var(--radius) - 2px);
969
- background: var(--secondary);
970
- color: var(--secondary-foreground);
971
- font-family: inherit;
972
- font-size: 0.75rem;
973
- font-weight: 500;
974
- cursor: pointer;
975
- transition:
976
- background 150ms ease,
977
- color 150ms ease,
978
- border-color 150ms ease;
979
- }
980
-
981
- .slexkit-source-button:hover {
982
- background: var(--accent);
983
- color: var(--accent-foreground);
984
- border-color: var(--border);
985
- }
986
-
987
- .slexkit-source-button:focus-visible {
988
- outline: 2px solid var(--ring);
989
- outline-offset: 2px;
990
- }
991
-
992
- .slexkit-preview {
993
- width: 100%;
994
- }
995
-
996
- .slex-layout {
997
- display: grid;
998
- width: 100%;
999
- min-width: 0;
1000
- gap: 1rem;
1001
- }
1002
-
1003
- .slex-layout > .slex-row {
1004
- justify-content: space-between;
1005
- align-items: center;
1006
- }
1007
-
1008
- .slex-layout .slex-text {
1009
- color: var(--foreground);
1010
- }
1011
-
1012
- .slex-layout .slex-text--muted {
1013
- color: var(--muted-foreground);
1014
- }
1015
-
1016
- .slex-card {
1017
- display: flex;
1018
- flex-direction: column;
1019
- width: 100%;
1020
- max-width: none;
1021
- min-width: 0;
1022
- background: var(--card);
1023
- color: var(--card-foreground);
1024
- border: 1px solid var(--border);
1025
- border-radius: calc(var(--radius) + 4px);
1026
- padding: 1.25rem;
1027
- box-shadow: var(--shadow-sm);
1028
- transition:
1029
- box-shadow 150ms ease,
1030
- border-color 150ms ease;
1031
- }
1032
-
1033
- .slex-card:hover {
1034
- border-color: var(--border);
1035
- box-shadow: var(--shadow-md);
1036
- }
1037
-
873
+ .slexkit-root {
874
+ --font-sans:
875
+ "Geist", "Geist Sans", "Noto Sans SC", "Noto Sans", ui-sans-serif, system-ui, -apple-system,
876
+ BlinkMacSystemFont, "Segoe UI", sans-serif;
877
+ --font-mono:
878
+ "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code",
879
+ Consolas, monospace;
880
+ font-family: var(
881
+ --font-sans,
882
+ "Geist",
883
+ "Geist Sans",
884
+ "Noto Sans SC",
885
+ "Noto Sans",
886
+ ui-sans-serif,
887
+ system-ui,
888
+ -apple-system,
889
+ BlinkMacSystemFont,
890
+ "Segoe UI",
891
+ sans-serif
892
+ );
893
+ color: var(--foreground);
894
+ background: transparent;
895
+ line-height: 1.5;
896
+ -webkit-font-smoothing: antialiased;
897
+ -moz-osx-font-smoothing: grayscale;
898
+ }
899
+
900
+ .slexkit-root,
901
+ .slexkit-root *,
902
+ .slexkit-root *::before,
903
+ .slexkit-root *::after {
904
+ box-sizing: border-box;
905
+ }
906
+
907
+ body[data-mobile-nav-open] {
908
+ overflow: hidden;
909
+ overscroll-behavior: contain;
910
+ }
911
+
912
+ #mobileNav {
913
+ --mobile-nav-backdrop-opacity: 0;
914
+ --mobile-nav-panel-translate: -100%;
915
+ pointer-events: none;
916
+ }
917
+
918
+ #mobileNav[data-open="true"] {
919
+ --mobile-nav-backdrop-opacity: 1;
920
+ --mobile-nav-panel-translate: 0px;
921
+ pointer-events: auto;
922
+ }
923
+
924
+ #mobileNav [data-mobile-nav-backdrop] {
925
+ opacity: var(--mobile-nav-backdrop-opacity);
926
+ touch-action: pan-y;
927
+ transition: opacity 180ms ease;
928
+ }
929
+
930
+ #mobileNav [data-mobile-nav-panel] {
931
+ transform: translateX(var(--mobile-nav-panel-translate));
932
+ touch-action: pan-y;
933
+ transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
934
+ will-change: transform;
935
+ }
936
+
937
+ #mobileNav[data-dragging="true"] [data-mobile-nav-backdrop],
938
+ #mobileNav[data-dragging="true"] [data-mobile-nav-panel] {
939
+ transition: none;
940
+ }
941
+
942
+ @media (prefers-reduced-motion: reduce) {
943
+ #mobileNav [data-mobile-nav-backdrop],
944
+ #mobileNav [data-mobile-nav-panel] {
945
+ transition: none;
946
+ }
947
+ }
948
+
949
+ .slexkit-for-wrapper {
950
+ display: contents;
951
+ }
952
+
953
+ .slexkit-source-toolbar {
954
+ display: flex;
955
+ align-items: center;
956
+ justify-content: flex-end;
957
+ gap: 0.5rem;
958
+ margin: 0.5rem 0;
959
+ }
960
+
961
+ .slexkit-source-button {
962
+ display: inline-flex;
963
+ align-items: center;
964
+ justify-content: center;
965
+ min-height: 28px;
966
+ padding: 0 0.625rem;
967
+ border: 1px solid var(--border);
968
+ border-radius: calc(var(--radius) - 2px);
969
+ background: var(--secondary);
970
+ color: var(--secondary-foreground);
971
+ font-family: inherit;
972
+ font-size: 0.75rem;
973
+ font-weight: 500;
974
+ cursor: pointer;
975
+ transition:
976
+ background 150ms ease,
977
+ color 150ms ease,
978
+ border-color 150ms ease;
979
+ }
980
+
981
+ .slexkit-source-button:hover {
982
+ background: var(--accent);
983
+ color: var(--accent-foreground);
984
+ border-color: var(--border);
985
+ }
986
+
987
+ .slexkit-source-button:focus-visible {
988
+ outline: 2px solid var(--ring);
989
+ outline-offset: 2px;
990
+ }
991
+
992
+ .slexkit-preview {
993
+ width: 100%;
994
+ }
995
+
996
+ .slex-layout {
997
+ display: grid;
998
+ width: 100%;
999
+ min-width: 0;
1000
+ gap: 1rem;
1001
+ }
1002
+
1003
+ .slex-layout > .slex-row {
1004
+ justify-content: space-between;
1005
+ align-items: center;
1006
+ }
1007
+
1008
+ .slex-layout .slex-text {
1009
+ color: var(--foreground);
1010
+ }
1011
+
1012
+ .slex-layout .slex-text--muted {
1013
+ color: var(--muted-foreground);
1014
+ }
1015
+
1016
+ .slex-card {
1017
+ display: flex;
1018
+ flex-direction: column;
1019
+ width: 100%;
1020
+ max-width: none;
1021
+ min-width: 0;
1022
+ background: var(--card);
1023
+ color: var(--card-foreground);
1024
+ border: 1px solid var(--border);
1025
+ border-radius: calc(var(--radius) + 4px);
1026
+ padding: 1.25rem;
1027
+ box-shadow: var(--shadow-sm);
1028
+ transition:
1029
+ box-shadow 150ms ease,
1030
+ border-color 150ms ease;
1031
+ }
1032
+
1033
+ .slex-card:hover {
1034
+ border-color: var(--border);
1035
+ box-shadow: var(--shadow-md);
1036
+ }
1037
+
1038
1038
  .slex-card-title {
1039
1039
  display: inline-flex;
1040
1040
  align-items: center;
1041
1041
  gap: 0.5rem;
1042
1042
  margin: 0 0 1rem;
1043
- padding-bottom: 0.75rem;
1044
- border-bottom: 1px solid var(--border);
1045
- color: var(--card-foreground);
1046
- font-size: 1.125rem;
1047
- font-weight: 600;
1048
- line-height: 1.25;
1049
- }
1050
-
1051
- .slex-card-body {
1052
- display: flex;
1053
- width: 100%;
1054
- min-width: 0;
1055
- flex-direction: column;
1056
- gap: 1rem;
1057
- }
1058
-
1059
- .slex-column {
1060
- display: flex;
1061
- min-width: 0;
1062
- flex-direction: column;
1063
- gap: 1rem;
1064
- }
1065
-
1066
- .slex-row {
1067
- display: flex;
1068
- flex-direction: row;
1069
- gap: 1rem;
1070
- align-items: center;
1071
- flex-wrap: wrap;
1072
- }
1073
-
1074
- .slex-row > * {
1075
- min-width: 0;
1076
- }
1077
-
1078
- .slex-row--balanced-tiles {
1079
- --slex-balanced-tile-width: 136px;
1080
- display: grid;
1081
- width: 100%;
1082
- grid-template-columns: repeat(var(--slex-balanced-tracks, var(--slex-balanced-cols)), minmax(0, 1fr));
1083
- justify-content: stretch;
1084
- align-items: stretch;
1085
- }
1086
-
1087
- .slex-row--balanced-tiles > :is(.slex-stat, .slex-card) {
1088
- width: 100%;
1089
- }
1090
-
1091
- .slex-grid {
1092
- display: grid;
1093
- width: 100%;
1094
- min-width: 0;
1095
- gap: 1rem;
1096
- }
1097
-
1098
- .slex-grid {
1099
- grid-template-columns: 1fr;
1100
- }
1101
- .slex-grid[data-cols="1"] {
1102
- grid-template-columns: 1fr;
1103
- }
1104
- .slex-grid[data-cols="2"] {
1105
- grid-template-columns: repeat(2, 1fr);
1106
- }
1107
- .slex-grid[data-cols="3"] {
1108
- grid-template-columns: repeat(3, 1fr);
1109
- }
1110
- .slex-grid[data-cols="4"] {
1111
- grid-template-columns: repeat(4, 1fr);
1112
- }
1113
- .slex-grid[data-cols="5"] {
1114
- grid-template-columns: repeat(5, 1fr);
1115
- }
1116
- .slex-grid[data-cols="6"] {
1117
- grid-template-columns: repeat(6, 1fr);
1118
- }
1119
- .slex-grid[data-cols="12"] {
1120
- grid-template-columns: repeat(12, 1fr);
1121
- }
1122
-
1123
- @media (min-width: 640px) {
1124
- .slex-grid[data-cols-sm="1"] {
1125
- grid-template-columns: 1fr;
1126
- }
1127
- .slex-grid[data-cols-sm="2"] {
1128
- grid-template-columns: repeat(2, 1fr);
1129
- }
1130
- .slex-grid[data-cols-sm="3"] {
1131
- grid-template-columns: repeat(3, 1fr);
1132
- }
1133
- .slex-grid[data-cols-sm="4"] {
1134
- grid-template-columns: repeat(4, 1fr);
1135
- }
1136
- .slex-grid[data-cols-sm="5"] {
1137
- grid-template-columns: repeat(5, 1fr);
1138
- }
1139
- .slex-grid[data-cols-sm="6"] {
1140
- grid-template-columns: repeat(6, 1fr);
1141
- }
1142
- .slex-grid[data-cols-sm="12"] {
1143
- grid-template-columns: repeat(12, 1fr);
1144
- }
1145
- }
1146
-
1147
- @media (min-width: 768px) {
1148
- .slex-grid[data-cols-md="1"] {
1149
- grid-template-columns: 1fr;
1150
- }
1151
- .slex-grid[data-cols-md="2"] {
1152
- grid-template-columns: repeat(2, 1fr);
1153
- }
1154
- .slex-grid[data-cols-md="3"] {
1155
- grid-template-columns: repeat(3, 1fr);
1156
- }
1157
- .slex-grid[data-cols-md="4"] {
1158
- grid-template-columns: repeat(4, 1fr);
1159
- }
1160
- .slex-grid[data-cols-md="5"] {
1161
- grid-template-columns: repeat(5, 1fr);
1162
- }
1163
- .slex-grid[data-cols-md="6"] {
1164
- grid-template-columns: repeat(6, 1fr);
1165
- }
1166
- .slex-grid[data-cols-md="12"] {
1167
- grid-template-columns: repeat(12, 1fr);
1168
- }
1169
- }
1170
-
1171
- @media (min-width: 1024px) {
1172
- .slex-grid[data-cols-lg="1"] {
1173
- grid-template-columns: 1fr;
1174
- }
1175
- .slex-grid[data-cols-lg="2"] {
1176
- grid-template-columns: repeat(2, 1fr);
1177
- }
1178
- .slex-grid[data-cols-lg="3"] {
1179
- grid-template-columns: repeat(3, 1fr);
1180
- }
1181
- .slex-grid[data-cols-lg="4"] {
1182
- grid-template-columns: repeat(4, 1fr);
1183
- }
1184
- .slex-grid[data-cols-lg="5"] {
1185
- grid-template-columns: repeat(5, 1fr);
1186
- }
1187
- .slex-grid[data-cols-lg="6"] {
1188
- grid-template-columns: repeat(6, 1fr);
1189
- }
1190
- .slex-grid[data-cols-lg="12"] {
1191
- grid-template-columns: repeat(12, 1fr);
1192
- }
1193
- }
1194
-
1195
- @media (min-width: 1280px) {
1196
- .slex-grid[data-cols-xl="1"] {
1197
- grid-template-columns: 1fr;
1198
- }
1199
- .slex-grid[data-cols-xl="2"] {
1200
- grid-template-columns: repeat(2, 1fr);
1201
- }
1202
- .slex-grid[data-cols-xl="3"] {
1203
- grid-template-columns: repeat(3, 1fr);
1204
- }
1205
- .slex-grid[data-cols-xl="4"] {
1206
- grid-template-columns: repeat(4, 1fr);
1207
- }
1208
- .slex-grid[data-cols-xl="5"] {
1209
- grid-template-columns: repeat(5, 1fr);
1210
- }
1211
- .slex-grid[data-cols-xl="6"] {
1212
- grid-template-columns: repeat(6, 1fr);
1213
- }
1214
- .slex-grid[data-cols-xl="12"] {
1215
- grid-template-columns: repeat(12, 1fr);
1216
- }
1217
- }
1218
-
1219
- @media (max-width: 639px) {
1220
- .slex-card {
1221
- padding: 1rem;
1222
- }
1223
-
1224
- .slex-row {
1225
- align-items: stretch;
1226
- }
1227
-
1228
- .slex-grid[data-cols],
1229
- .slex-grid[data-cols="2"],
1230
- .slex-grid[data-cols="3"],
1231
- .slex-grid[data-cols="4"],
1232
- .slex-grid[data-cols="5"],
1233
- .slex-grid[data-cols="6"],
1234
- .slex-grid[data-cols="12"] {
1235
- grid-template-columns: 1fr;
1236
- }
1043
+ padding-bottom: 0.75rem;
1044
+ border-bottom: 1px solid var(--border);
1045
+ color: var(--card-foreground);
1046
+ font-size: 1.125rem;
1047
+ font-weight: 600;
1048
+ line-height: 1.25;
1049
+ }
1050
+
1051
+ .slex-card-body {
1052
+ display: flex;
1053
+ width: 100%;
1054
+ min-width: 0;
1055
+ flex-direction: column;
1056
+ gap: 1rem;
1057
+ }
1058
+
1059
+ .slex-column {
1060
+ display: flex;
1061
+ min-width: 0;
1062
+ flex-direction: column;
1063
+ gap: 1rem;
1064
+ }
1065
+
1066
+ .slex-row {
1067
+ display: flex;
1068
+ flex-direction: row;
1069
+ gap: 1rem;
1070
+ align-items: center;
1071
+ flex-wrap: wrap;
1072
+ }
1073
+
1074
+ .slex-row > * {
1075
+ min-width: 0;
1076
+ }
1077
+
1078
+ .slex-row--balanced-tiles {
1079
+ --slex-balanced-tile-width: 136px;
1080
+ display: grid;
1081
+ width: 100%;
1082
+ grid-template-columns: repeat(var(--slex-balanced-tracks, var(--slex-balanced-cols)), minmax(0, 1fr));
1083
+ justify-content: stretch;
1084
+ align-items: stretch;
1085
+ }
1086
+
1087
+ .slex-row--balanced-tiles > :is(.slex-stat, .slex-card) {
1088
+ width: 100%;
1089
+ }
1090
+
1091
+ .slex-grid {
1092
+ display: grid;
1093
+ width: 100%;
1094
+ min-width: 0;
1095
+ gap: 1rem;
1096
+ }
1097
+
1098
+ .slex-grid {
1099
+ grid-template-columns: 1fr;
1100
+ }
1101
+ .slex-grid[data-cols="1"] {
1102
+ grid-template-columns: 1fr;
1103
+ }
1104
+ .slex-grid[data-cols="2"] {
1105
+ grid-template-columns: repeat(2, 1fr);
1106
+ }
1107
+ .slex-grid[data-cols="3"] {
1108
+ grid-template-columns: repeat(3, 1fr);
1109
+ }
1110
+ .slex-grid[data-cols="4"] {
1111
+ grid-template-columns: repeat(4, 1fr);
1112
+ }
1113
+ .slex-grid[data-cols="5"] {
1114
+ grid-template-columns: repeat(5, 1fr);
1115
+ }
1116
+ .slex-grid[data-cols="6"] {
1117
+ grid-template-columns: repeat(6, 1fr);
1118
+ }
1119
+ .slex-grid[data-cols="12"] {
1120
+ grid-template-columns: repeat(12, 1fr);
1121
+ }
1122
+
1123
+ @media (min-width: 640px) {
1124
+ .slex-grid[data-cols-sm="1"] {
1125
+ grid-template-columns: 1fr;
1126
+ }
1127
+ .slex-grid[data-cols-sm="2"] {
1128
+ grid-template-columns: repeat(2, 1fr);
1129
+ }
1130
+ .slex-grid[data-cols-sm="3"] {
1131
+ grid-template-columns: repeat(3, 1fr);
1132
+ }
1133
+ .slex-grid[data-cols-sm="4"] {
1134
+ grid-template-columns: repeat(4, 1fr);
1135
+ }
1136
+ .slex-grid[data-cols-sm="5"] {
1137
+ grid-template-columns: repeat(5, 1fr);
1138
+ }
1139
+ .slex-grid[data-cols-sm="6"] {
1140
+ grid-template-columns: repeat(6, 1fr);
1141
+ }
1142
+ .slex-grid[data-cols-sm="12"] {
1143
+ grid-template-columns: repeat(12, 1fr);
1144
+ }
1145
+ }
1146
+
1147
+ @media (min-width: 768px) {
1148
+ .slex-grid[data-cols-md="1"] {
1149
+ grid-template-columns: 1fr;
1150
+ }
1151
+ .slex-grid[data-cols-md="2"] {
1152
+ grid-template-columns: repeat(2, 1fr);
1153
+ }
1154
+ .slex-grid[data-cols-md="3"] {
1155
+ grid-template-columns: repeat(3, 1fr);
1156
+ }
1157
+ .slex-grid[data-cols-md="4"] {
1158
+ grid-template-columns: repeat(4, 1fr);
1159
+ }
1160
+ .slex-grid[data-cols-md="5"] {
1161
+ grid-template-columns: repeat(5, 1fr);
1162
+ }
1163
+ .slex-grid[data-cols-md="6"] {
1164
+ grid-template-columns: repeat(6, 1fr);
1165
+ }
1166
+ .slex-grid[data-cols-md="12"] {
1167
+ grid-template-columns: repeat(12, 1fr);
1168
+ }
1169
+ }
1170
+
1171
+ @media (min-width: 1024px) {
1172
+ .slex-grid[data-cols-lg="1"] {
1173
+ grid-template-columns: 1fr;
1174
+ }
1175
+ .slex-grid[data-cols-lg="2"] {
1176
+ grid-template-columns: repeat(2, 1fr);
1177
+ }
1178
+ .slex-grid[data-cols-lg="3"] {
1179
+ grid-template-columns: repeat(3, 1fr);
1180
+ }
1181
+ .slex-grid[data-cols-lg="4"] {
1182
+ grid-template-columns: repeat(4, 1fr);
1183
+ }
1184
+ .slex-grid[data-cols-lg="5"] {
1185
+ grid-template-columns: repeat(5, 1fr);
1186
+ }
1187
+ .slex-grid[data-cols-lg="6"] {
1188
+ grid-template-columns: repeat(6, 1fr);
1189
+ }
1190
+ .slex-grid[data-cols-lg="12"] {
1191
+ grid-template-columns: repeat(12, 1fr);
1192
+ }
1193
+ }
1194
+
1195
+ @media (min-width: 1280px) {
1196
+ .slex-grid[data-cols-xl="1"] {
1197
+ grid-template-columns: 1fr;
1198
+ }
1199
+ .slex-grid[data-cols-xl="2"] {
1200
+ grid-template-columns: repeat(2, 1fr);
1201
+ }
1202
+ .slex-grid[data-cols-xl="3"] {
1203
+ grid-template-columns: repeat(3, 1fr);
1204
+ }
1205
+ .slex-grid[data-cols-xl="4"] {
1206
+ grid-template-columns: repeat(4, 1fr);
1207
+ }
1208
+ .slex-grid[data-cols-xl="5"] {
1209
+ grid-template-columns: repeat(5, 1fr);
1210
+ }
1211
+ .slex-grid[data-cols-xl="6"] {
1212
+ grid-template-columns: repeat(6, 1fr);
1213
+ }
1214
+ .slex-grid[data-cols-xl="12"] {
1215
+ grid-template-columns: repeat(12, 1fr);
1216
+ }
1217
+ }
1218
+
1219
+ @media (max-width: 639px) {
1220
+ .slex-card {
1221
+ padding: 1rem;
1222
+ }
1223
+
1224
+ .slex-row {
1225
+ align-items: stretch;
1226
+ }
1227
+
1228
+ .slex-grid[data-cols],
1229
+ .slex-grid[data-cols="2"],
1230
+ .slex-grid[data-cols="3"],
1231
+ .slex-grid[data-cols="4"],
1232
+ .slex-grid[data-cols="5"],
1233
+ .slex-grid[data-cols="6"],
1234
+ .slex-grid[data-cols="12"] {
1235
+ grid-template-columns: 1fr;
1236
+ }
1237
1237
  }
1238
1238
 
1239
1239
  /* theme.css */
@@ -1846,7 +1846,6 @@ body[data-mobile-nav-open] {
1846
1846
  overflow: hidden;
1847
1847
  clip: rect(0 0 0 0);
1848
1848
  white-space: nowrap;
1849
- clip-path: inset(50%);
1850
1849
  }
1851
1850
 
1852
1851
  .slex-playground-error {
@@ -2365,7 +2364,7 @@ body[data-mobile-nav-open] {
2365
2364
  display: block;
2366
2365
  }
2367
2366
 
2368
- .slex-stat-character[data-stat-change] {
2367
+ .slex-stat-character[data-stat-kind="digit"][data-stat-change] {
2369
2368
  overflow: hidden;
2370
2369
  }
2371
2370
 
@@ -2546,22 +2545,22 @@ body[data-mobile-nav-open] {
2546
2545
 
2547
2546
  /* content.css */
2548
2547
 
2549
- .slex-section-header {
2550
- display: flex;
2551
- flex-direction: column;
2552
- gap: 0.5rem;
2553
- min-width: 0;
2554
- }
2555
-
2556
- .slex-section-eyebrow {
2557
- color: var(--muted-foreground);
2558
- font-size: 0.75rem;
2559
- font-weight: 600;
2560
- line-height: 1.25;
2561
- letter-spacing: 0;
2562
- text-transform: uppercase;
2563
- }
2564
-
2548
+ .slex-section-header {
2549
+ display: flex;
2550
+ flex-direction: column;
2551
+ gap: 0.5rem;
2552
+ min-width: 0;
2553
+ }
2554
+
2555
+ .slex-section-eyebrow {
2556
+ color: var(--muted-foreground);
2557
+ font-size: 0.75rem;
2558
+ font-weight: 600;
2559
+ line-height: 1.25;
2560
+ letter-spacing: 0;
2561
+ text-transform: uppercase;
2562
+ }
2563
+
2565
2564
  .slex-section-title {
2566
2565
  display: inline-flex;
2567
2566
  align-items: center;
@@ -2569,173 +2568,196 @@ body[data-mobile-nav-open] {
2569
2568
  margin: 0;
2570
2569
  color: var(--foreground);
2571
2570
  font-weight: 700;
2572
- line-height: 1.15;
2573
- letter-spacing: 0;
2574
- overflow-wrap: anywhere;
2575
- font-size: 1.5rem;
2576
- }
2577
-
2578
- .slex-section-subtitle {
2579
- margin: 0;
2580
- color: var(--muted-foreground);
2581
- font-size: 0.9375rem;
2582
- line-height: 1.7;
2583
- overflow-wrap: anywhere;
2584
- }
2585
-
2571
+ line-height: 1.15;
2572
+ letter-spacing: 0;
2573
+ overflow-wrap: anywhere;
2574
+ font-size: 1.5rem;
2575
+ }
2576
+
2577
+ .slex-section-subtitle {
2578
+ margin: 0;
2579
+ color: var(--muted-foreground);
2580
+ font-size: 0.9375rem;
2581
+ line-height: 1.7;
2582
+ overflow-wrap: anywhere;
2583
+ }
2584
+
2586
2585
  .slex-link {
2587
2586
  display: inline-flex;
2588
2587
  width: fit-content;
2589
2588
  align-items: center;
2590
2589
  gap: 0.375rem;
2591
2590
  color: var(--primary);
2592
- font-size: 0.875rem;
2593
- font-weight: 500;
2594
- text-decoration: none;
2595
- transition: color 150ms ease, background 150ms ease, border-color 150ms ease;
2596
- }
2597
-
2598
- .slex-link:hover {
2599
- color: color-mix(in oklab, var(--primary) 82%, var(--muted-foreground));
2600
- }
2601
-
2602
- .slex-link:focus-visible {
2603
- outline: none;
2604
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 24%, transparent);
2605
- }
2606
-
2607
- .slex-link[data-variant="muted"] {
2608
- color: var(--muted-foreground);
2609
- }
2610
-
2611
- .slex-link[data-variant="button"] {
2612
- min-height: 2.25rem;
2613
- justify-content: center;
2614
- border: 1px solid var(--input);
2615
- border-radius: calc(var(--radius) - 2px);
2616
- background: var(--background);
2617
- padding: 0 0.75rem;
2618
- color: var(--foreground);
2619
- box-shadow: var(--shadow-sm);
2620
- }
2621
-
2622
- .slex-link[data-variant="button"]:hover {
2623
- background: var(--accent);
2624
- color: var(--accent-foreground);
2625
- }
2626
-
2627
- .slex-badge {
2628
- display: inline-flex;
2629
- width: fit-content;
2630
- min-height: 1.5rem;
2631
- align-items: center;
2632
- gap: 0.25rem;
2633
- border: 1px solid color-mix(in oklab, var(--border) 88%, transparent);
2634
- border-radius: calc(var(--radius) - 2px);
2635
- background: var(--secondary);
2636
- color: var(--secondary-foreground);
2637
- padding: 0.125rem 0.625rem;
2638
- font-size: 0.75rem;
2639
- font-weight: 600;
2640
- line-height: 1.25;
2641
- box-shadow: none;
2642
- transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
2591
+ font-size: 0.875rem;
2592
+ font-weight: 500;
2593
+ text-decoration: none;
2594
+ transition: color 150ms ease, background 150ms ease, border-color 150ms ease;
2643
2595
  }
2644
2596
 
2645
- .slex-badge-label {
2646
- min-width: 0;
2597
+ .slex-link:hover {
2598
+ color: color-mix(in oklab, var(--primary) 82%, var(--muted-foreground));
2647
2599
  }
2648
-
2649
- .slex-badge[data-tone="neutral"],
2650
- .slex-badge[data-tone="muted"] {
2651
- border-color: color-mix(in oklab, var(--muted-foreground) 18%, var(--border));
2652
- background: color-mix(in oklab, var(--muted-foreground) 8%, var(--background));
2653
- color: var(--muted-foreground);
2654
- }
2655
-
2656
- .slex-badge[data-tone="primary"] {
2657
- border-color: color-mix(in oklab, var(--primary) 22%, var(--border));
2658
- background: color-mix(in oklab, var(--primary) 8%, var(--background));
2659
- color: color-mix(in oklab, var(--primary) 88%, var(--foreground));
2660
- }
2661
-
2662
- .slex-badge[data-tone="info"] {
2663
- border-color: color-mix(in oklab, var(--info) 24%, var(--border));
2664
- background: color-mix(in oklab, var(--info) 10%, var(--background));
2665
- color: color-mix(in oklab, var(--info) 86%, var(--foreground));
2666
- }
2667
-
2668
- .slex-badge[data-tone="success"] {
2669
- border-color: color-mix(in oklab, var(--success) 24%, var(--border));
2670
- background: color-mix(in oklab, var(--success) 10%, var(--background));
2671
- color: color-mix(in oklab, var(--success) 86%, var(--foreground));
2672
- }
2673
-
2674
- .slex-badge[data-tone="warning"] {
2675
- border-color: color-mix(in oklab, var(--warning) 26%, var(--border));
2676
- background: color-mix(in oklab, var(--warning) 12%, var(--background));
2677
- color: color-mix(in oklab, var(--warning) 82%, var(--foreground));
2678
- }
2679
-
2680
- .slex-badge[data-tone="danger"],
2681
- .slex-badge[data-tone="error"],
2682
- .slex-badge[data-tone="destructive"] {
2683
- border-color: color-mix(in oklab, var(--destructive) 24%, var(--border));
2684
- background: color-mix(in oklab, var(--destructive) 10%, var(--background));
2685
- color: color-mix(in oklab, var(--destructive) 86%, var(--foreground));
2686
- }
2687
-
2688
- .slex-divider {
2689
- width: 100%;
2690
- height: 0;
2691
- border: 0;
2692
- border-top: 1px solid var(--border);
2693
- margin: 1rem 0;
2694
- }
2695
-
2696
- .slex-divider--labeled {
2697
- display: flex;
2698
- height: auto;
2699
- align-items: center;
2700
- gap: 0.75rem;
2701
- border: 0;
2702
- }
2703
-
2704
- .slex-divider--labeled::before,
2705
- .slex-divider--labeled::after {
2706
- content: "";
2707
- flex: 1 1 0;
2708
- border-top: 1px solid var(--border);
2709
- }
2710
-
2711
- .slex-divider-label {
2712
- display: inline-flex;
2713
- align-items: center;
2714
- gap: 0.375rem;
2715
- min-width: 0;
2600
+
2601
+ .slex-link:focus-visible {
2602
+ outline: none;
2603
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 24%, transparent);
2604
+ }
2605
+
2606
+ .slex-link[data-variant="muted"] {
2716
2607
  color: var(--muted-foreground);
2717
- font-size: 0.75rem;
2718
- font-weight: 500;
2719
- }
2720
-
2721
- .slex-callout {
2722
- display: grid;
2723
- grid-template-columns: 0.25rem minmax(0, 1fr);
2724
- align-items: stretch;
2725
- gap: 0.75rem;
2726
- width: 100%;
2727
- min-height: 4rem;
2728
- border: 1px solid var(--border);
2729
- border-radius: var(--radius);
2730
- background: transparent;
2731
- color: var(--foreground);
2732
- padding: 0.875rem 1rem;
2733
- box-shadow: var(--shadow-sm);
2734
- transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
2735
2608
  }
2736
2609
 
2737
- .slex-callout:hover {
2738
- border-color: color-mix(in oklab, var(--primary) 20%, var(--border));
2610
+ .slex-link[data-variant="button"] {
2611
+ min-height: 2.25rem;
2612
+ justify-content: center;
2613
+ border: 1px solid var(--input);
2614
+ border-radius: calc(var(--radius) - 2px);
2615
+ background: var(--background);
2616
+ padding: 0 0.75rem;
2617
+ color: var(--foreground);
2618
+ box-shadow: var(--shadow-sm);
2619
+ }
2620
+
2621
+ .slex-link[data-variant="button"]:hover {
2622
+ background: var(--accent);
2623
+ color: var(--accent-foreground);
2624
+ }
2625
+
2626
+ .slex-badge {
2627
+ display: inline-flex;
2628
+ width: fit-content;
2629
+ min-height: 1.5rem;
2630
+ align-items: center;
2631
+ align-self: start;
2632
+ gap: 0.25rem;
2633
+ border: 1px solid color-mix(in oklab, var(--border) 88%, transparent);
2634
+ border-radius: calc(var(--radius) - 2px);
2635
+ background: var(--secondary);
2636
+ color: var(--secondary-foreground);
2637
+ padding: 0.125rem 0.625rem;
2638
+ font-size: 0.75rem;
2639
+ font-weight: 600;
2640
+ line-height: 1.25;
2641
+ box-shadow: none;
2642
+ transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
2643
+ }
2644
+
2645
+ .slex-badge-label {
2646
+ min-width: 0;
2647
+ }
2648
+
2649
+ .slex-badge[data-tone="neutral"],
2650
+ .slex-badge[data-tone="muted"] {
2651
+ border-color: color-mix(in oklab, var(--muted-foreground) 18%, var(--border));
2652
+ background: color-mix(in oklab, var(--muted-foreground) 8%, var(--background));
2653
+ color: var(--muted-foreground);
2654
+ }
2655
+
2656
+ .slex-badge[data-tone="primary"] {
2657
+ border-color: color-mix(in oklab, var(--primary) 22%, var(--border));
2658
+ background: color-mix(in oklab, var(--primary) 8%, var(--background));
2659
+ color: color-mix(in oklab, var(--primary) 88%, var(--foreground));
2660
+ }
2661
+
2662
+ .slex-badge[data-tone="info"] {
2663
+ border-color: color-mix(in oklab, var(--info) 24%, var(--border));
2664
+ background: color-mix(in oklab, var(--info) 10%, var(--background));
2665
+ color: color-mix(in oklab, var(--info) 86%, var(--foreground));
2666
+ }
2667
+
2668
+ .slex-badge[data-tone="success"] {
2669
+ border-color: color-mix(in oklab, var(--success) 24%, var(--border));
2670
+ background: color-mix(in oklab, var(--success) 10%, var(--background));
2671
+ color: color-mix(in oklab, var(--success) 86%, var(--foreground));
2672
+ }
2673
+
2674
+ .slex-badge[data-tone="warning"] {
2675
+ border-color: color-mix(in oklab, var(--warning) 26%, var(--border));
2676
+ background: color-mix(in oklab, var(--warning) 12%, var(--background));
2677
+ color: color-mix(in oklab, var(--warning) 82%, var(--foreground));
2678
+ }
2679
+
2680
+ .slex-badge[data-tone="danger"],
2681
+ .slex-badge[data-tone="error"],
2682
+ .slex-badge[data-tone="destructive"] {
2683
+ border-color: color-mix(in oklab, var(--destructive) 24%, var(--border));
2684
+ background: color-mix(in oklab, var(--destructive) 10%, var(--background));
2685
+ color: color-mix(in oklab, var(--destructive) 86%, var(--foreground));
2686
+ }
2687
+
2688
+ .slex-divider {
2689
+ width: 100%;
2690
+ height: 0;
2691
+ border: 0;
2692
+ border-top: 1px solid var(--border);
2693
+ margin: 1rem 0;
2694
+ }
2695
+
2696
+ .slex-divider--labeled {
2697
+ display: flex;
2698
+ height: auto;
2699
+ align-items: center;
2700
+ gap: 0.75rem;
2701
+ border: 0;
2702
+ }
2703
+
2704
+ .slex-divider--labeled::before,
2705
+ .slex-divider--labeled::after {
2706
+ content: "";
2707
+ flex: 1 1 0;
2708
+ border-top: 1px solid var(--border);
2709
+ }
2710
+
2711
+ .slex-divider-label {
2712
+ display: inline-flex;
2713
+ align-items: center;
2714
+ gap: 0.375rem;
2715
+ min-width: 0;
2716
+ color: var(--muted-foreground);
2717
+ font-size: 0.75rem;
2718
+ font-weight: 500;
2719
+ }
2720
+
2721
+ .slex-formula {
2722
+ box-sizing: border-box;
2723
+ width: 100%;
2724
+ max-width: 100%;
2725
+ overflow-x: auto;
2726
+ color: var(--foreground);
2727
+ }
2728
+
2729
+ .slex-formula[data-display="block"] {
2730
+ display: block;
2731
+ margin: 0.25rem 0;
2732
+ }
2733
+
2734
+ .slex-formula[data-display="inline"] {
2735
+ display: inline-block;
2736
+ width: fit-content;
2737
+ max-width: 100%;
2738
+ vertical-align: middle;
2739
+ }
2740
+
2741
+ .slex-callout {
2742
+ box-sizing: border-box;
2743
+ display: grid;
2744
+ grid-template-columns: 0.25rem minmax(0, 1fr);
2745
+ align-items: stretch;
2746
+ gap: 0.75rem;
2747
+ width: 100%;
2748
+ max-width: none;
2749
+ min-height: 4rem;
2750
+ border: 1px solid var(--border);
2751
+ border-radius: var(--radius);
2752
+ background: transparent;
2753
+ color: var(--foreground);
2754
+ padding: 0.875rem 1rem;
2755
+ box-shadow: var(--shadow-sm);
2756
+ transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
2757
+ }
2758
+
2759
+ .slex-callout:hover {
2760
+ border-color: color-mix(in oklab, var(--primary) 20%, var(--border));
2739
2761
  box-shadow: var(--shadow-md);
2740
2762
  transform: translateY(-1px);
2741
2763
  }
@@ -2814,7 +2836,7 @@ body[data-mobile-nav-open] {
2814
2836
  .slex-callout-body:empty {
2815
2837
  display: none;
2816
2838
  }
2817
-
2839
+
2818
2840
  .slex-code-block {
2819
2841
  --slex-code-keyword: color-mix(in oklab, var(--info) 78%, var(--foreground));
2820
2842
  --slex-code-string: color-mix(in oklab, var(--success) 78%, var(--foreground));
@@ -2825,19 +2847,19 @@ body[data-mobile-nav-open] {
2825
2847
  border: 1px solid var(--border);
2826
2848
  border-radius: var(--radius);
2827
2849
  background: var(--muted);
2828
- color: var(--foreground);
2829
- }
2830
-
2850
+ color: var(--foreground);
2851
+ }
2852
+
2831
2853
  .slex-code-block-header {
2832
- display: flex;
2833
- align-items: center;
2834
- justify-content: space-between;
2835
- gap: 1rem;
2836
- border-bottom: 1px solid var(--border);
2837
- padding: 0.5rem 0.75rem;
2838
- color: var(--muted-foreground);
2839
- font-size: 0.75rem;
2840
- font-weight: 600;
2854
+ display: flex;
2855
+ align-items: center;
2856
+ justify-content: space-between;
2857
+ gap: 1rem;
2858
+ border-bottom: 1px solid var(--border);
2859
+ padding: 0.5rem 0.75rem;
2860
+ color: var(--muted-foreground);
2861
+ font-size: 0.75rem;
2862
+ font-weight: 600;
2841
2863
  }
2842
2864
 
2843
2865
  .slex-code-block-title {
@@ -2846,12 +2868,12 @@ body[data-mobile-nav-open] {
2846
2868
  gap: 0.375rem;
2847
2869
  min-width: 0;
2848
2870
  }
2849
-
2850
- .slex-code-block-language {
2851
- color: var(--muted-foreground);
2852
- font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
2853
- }
2854
-
2871
+
2872
+ .slex-code-block-language {
2873
+ color: var(--muted-foreground);
2874
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
2875
+ }
2876
+
2855
2877
  .slex-code-block .slex-code-block-pre {
2856
2878
  overflow: auto;
2857
2879
  margin: 0;
@@ -2864,7 +2886,7 @@ body[data-mobile-nav-open] {
2864
2886
  font-size: 0.8125rem;
2865
2887
  line-height: 1.65;
2866
2888
  }
2867
-
2889
+
2868
2890
  .slex-code-block code {
2869
2891
  white-space: pre;
2870
2892
  }
@@ -2927,618 +2949,565 @@ body[data-mobile-nav-open] {
2927
2949
  }
2928
2950
 
2929
2951
  .slex-table-wrap {
2930
- width: 100%;
2931
- overflow-x: auto;
2932
- border: 1px solid var(--border);
2933
- border-radius: var(--radius);
2934
- background: var(--card);
2935
- }
2936
-
2937
- .slex-table {
2938
- width: 100%;
2939
- min-width: 100%;
2940
- border-collapse: collapse;
2941
- color: var(--foreground);
2942
- font-size: 0.875rem;
2943
- }
2944
-
2945
- .slex-table th,
2946
- .slex-table td {
2947
- border-bottom: 1px solid var(--border);
2948
- padding: 0.625rem 0.75rem;
2949
- text-align: left;
2950
- vertical-align: top;
2951
- }
2952
-
2953
- .slex-table th {
2954
- background: var(--muted);
2955
- color: var(--muted-foreground);
2956
- font-size: 0.75rem;
2957
- font-weight: 650;
2958
- }
2959
-
2960
- .slex-table-column-label {
2961
- display: inline-flex;
2962
- align-items: center;
2963
- gap: 0.375rem;
2964
- min-width: 0;
2965
- }
2966
-
2967
- .slex-table tr:last-child td {
2968
- border-bottom: 0;
2969
- }
2970
-
2971
- .slex-section {
2972
- display: grid;
2973
- gap: 1rem;
2974
- min-width: 0;
2975
- scroll-margin-top: 5rem;
2976
- }
2977
-
2978
- .slex-section-body {
2979
- display: grid;
2980
- gap: 1rem;
2981
- min-width: 0;
2982
- }
2983
-
2984
- .slex-section-action {
2985
- display: inline-flex;
2986
- width: fit-content;
2987
- min-height: 2.25rem;
2988
- align-items: center;
2989
- justify-content: center;
2990
- border: 1px solid var(--input);
2991
- border-radius: calc(var(--radius) - 2px);
2992
- background: var(--background);
2993
- color: var(--foreground);
2994
- padding: 0 0.75rem;
2995
- font-size: 0.875rem;
2996
- font-weight: 600;
2997
- text-decoration: none;
2998
- box-shadow: var(--shadow-sm);
2999
- transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
3000
- }
3001
-
3002
- .slex-section-action:hover {
3003
- background: var(--accent);
3004
- color: var(--accent-foreground);
3005
- }
3006
-
3007
- .slex-section-action:focus-visible {
3008
- outline: 2px solid var(--ring);
3009
- outline-offset: 2px;
3010
- }
3011
-
3012
- .slexkit-secure-error {
3013
- margin-top: 0.75rem;
3014
- white-space: pre-wrap;
3015
- border: 1px solid color-mix(in srgb, var(--destructive, #dc2626) 35%, transparent);
3016
- border-radius: 0.5rem;
3017
- background: color-mix(in srgb, var(--destructive, #dc2626) 8%, transparent);
3018
- color: var(--destructive, #b91c1c);
3019
- font-size: 0.875rem;
3020
- line-height: 1.5;
3021
- padding: 0.75rem;
3022
- }
3023
-
3024
- /* components/button.css */
3025
-
3026
- .slex-button {
3027
- display: inline-flex;
3028
- align-items: center;
3029
- justify-content: center;
3030
- gap: 0.5rem;
3031
- max-width: 100%;
3032
- min-width: 0;
3033
- padding: 0.5rem 1rem;
3034
- border: 1px solid transparent;
3035
- border-radius: var(--radius);
3036
- font-family: inherit;
3037
- font-size: 0.875rem;
3038
- font-weight: 500;
3039
- line-height: 1.25;
3040
- white-space: nowrap;
3041
- text-overflow: ellipsis;
3042
- overflow: hidden;
3043
- cursor: pointer;
3044
- user-select: none;
3045
- transition:
3046
- background 150ms ease,
3047
- border-color 150ms ease,
3048
- color 150ms ease,
3049
- box-shadow 150ms ease,
3050
- transform 150ms ease;
3051
- }
3052
-
3053
- .slex-button--primary {
3054
- background: var(--primary);
3055
- color: var(--primary-foreground);
3056
- border-color: var(--primary);
3057
- }
3058
-
3059
- .slex-button--primary:hover:not(:disabled):not(.slex-button--disabled) {
3060
- background: color-mix(in oklab, var(--primary) 90%, transparent);
3061
- border-color: color-mix(in oklab, var(--primary) 90%, transparent);
3062
- color: var(--primary-foreground);
3063
- transform: translateY(-1px);
3064
- box-shadow: var(--shadow-md);
3065
- }
3066
-
3067
- .slex-button--secondary {
3068
- background: var(--secondary);
3069
- color: var(--secondary-foreground);
3070
- border-color: var(--border);
3071
- }
3072
-
3073
- .slex-button--secondary:hover:not(:disabled):not(.slex-button--disabled) {
3074
- background: var(--accent);
3075
- color: var(--accent-foreground);
3076
- border-color: var(--border);
3077
- }
3078
-
3079
- .slex-button--danger {
3080
- background: var(--destructive);
3081
- color: var(--destructive-foreground);
3082
- border-color: var(--destructive);
3083
- }
3084
-
3085
- .slex-button--danger:hover:not(:disabled):not(.slex-button--disabled) {
3086
- background: color-mix(in oklab, var(--destructive) 90%, transparent);
3087
- border-color: color-mix(in oklab, var(--destructive) 90%, transparent);
3088
- }
3089
-
3090
- .slex-button--ghost {
3091
- background: transparent;
3092
- color: var(--muted-foreground);
3093
- border-color: transparent;
3094
- }
3095
-
3096
- .slex-button--ghost:hover:not(:disabled):not(.slex-button--disabled) {
3097
- background: var(--accent);
3098
- color: var(--accent-foreground);
3099
- }
3100
-
3101
- .slex-button:disabled,
3102
- .slex-button[disabled],
3103
- .slex-button--disabled {
3104
- opacity: 0.5;
3105
- cursor: not-allowed;
3106
- pointer-events: none;
3107
- transform: none;
3108
- box-shadow: none;
3109
- }
3110
-
3111
- .slex-button:active:not(:disabled):not(.slex-button--disabled) {
3112
- transform: translateY(0);
3113
- box-shadow: var(--shadow-sm);
3114
- }
3115
-
3116
- .slex-button:focus-visible {
3117
- outline: 2px solid var(--ring);
3118
- outline-offset: 2px;
3119
- }
3120
-
3121
- .slex-button--icon {
3122
- width: var(--slex-control-height, 2.25rem);
3123
- min-height: var(--slex-control-height, 2.25rem);
3124
- padding-inline: 0;
3125
- }
3126
-
3127
- .slex-button-icon {
3128
- display: inline-flex;
3129
- width: 1.125rem;
3130
- height: 1.125rem;
3131
- color: currentColor;
2952
+ width: 100%;
2953
+ overflow-x: auto;
2954
+ border: 1px solid var(--border);
2955
+ border-radius: var(--radius);
2956
+ background: var(--card);
3132
2957
  }
3133
2958
 
3134
- .slex-button-icon svg {
3135
- display: block;
2959
+ .slex-table {
3136
2960
  width: 100%;
3137
- height: 100%;
3138
- fill: currentColor;
2961
+ min-width: 100%;
2962
+ border-collapse: collapse;
2963
+ color: var(--foreground);
2964
+ font-size: 0.875rem;
3139
2965
  }
3140
2966
 
3141
- /* components/submit.css */
3142
-
3143
- .slex-submit-bar {
3144
- display: flex;
3145
- align-items: center;
3146
- justify-content: flex-end;
3147
- gap: 0.75rem;
3148
- flex-wrap: wrap;
3149
- padding-top: 0.75rem;
3150
- border-top: 1px solid var(--border);
2967
+ .slex-table th,
2968
+ .slex-table td {
2969
+ border-bottom: 1px solid var(--border);
2970
+ padding: 0.625rem 0.75rem;
2971
+ text-align: left;
2972
+ vertical-align: top;
3151
2973
  }
3152
2974
 
3153
- /* components/slider.css */
3154
-
3155
- .slex-slider-container,
3156
- .slex-slider-field {
3157
- display: flex;
3158
- flex-direction: column;
3159
- gap: 0.5rem;
3160
- width: 100%;
3161
- }
3162
-
3163
- .slex-slider-field {
3164
- padding: 0.25rem 0;
3165
- }
3166
-
3167
- .slex-slider-label {
3168
- display: flex;
3169
- align-items: center;
3170
- justify-content: space-between;
3171
- color: var(--muted-foreground);
3172
- font-size: 0.875rem;
3173
- font-weight: 500;
3174
- }
3175
-
3176
- .slex-slider-value {
3177
- padding: 0.125rem 0.5rem;
3178
- border: 1px solid var(--border);
3179
- border-radius: calc(var(--radius) - 2px);
3180
- background: var(--secondary);
3181
- color: var(--secondary-foreground);
3182
- font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
3183
- font-size: 0.875rem;
3184
- font-weight: 600;
3185
- }
3186
-
3187
- .slex-slider {
3188
- box-sizing: border-box;
3189
- width: 100%;
3190
- height: 0.5rem;
3191
- border-radius: 999px;
3192
- -webkit-appearance: none;
3193
- appearance: none;
3194
- background: linear-gradient(
3195
- to right,
3196
- var(--primary) 0%,
3197
- var(--primary) var(--slex-slider-progress, 0%),
3198
- var(--secondary) var(--slex-slider-progress, 0%),
3199
- var(--secondary) 100%
3200
- );
3201
- accent-color: var(--primary);
3202
- cursor: pointer;
3203
- transition: box-shadow 150ms ease, filter 150ms ease;
3204
- }
3205
-
3206
- .slex-slider:hover {
3207
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
3208
- }
3209
-
3210
- .slex-slider:active {
3211
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3212
- }
3213
-
3214
- .slex-slider:focus-visible {
3215
- outline: 2px solid var(--ring);
3216
- outline-offset: 4px;
3217
- }
3218
-
3219
- .slex-slider::-webkit-slider-thumb {
3220
- width: 1rem;
3221
- height: 1rem;
3222
- border: 2px solid var(--primary);
3223
- border-radius: 999px;
3224
- background: var(--background) !important;
3225
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3226
- -webkit-appearance: none;
3227
- appearance: none;
3228
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3229
- }
3230
-
3231
- .slex-slider::-moz-range-thumb {
3232
- width: 1rem;
3233
- height: 1rem;
3234
- border: 2px solid var(--primary);
3235
- border-radius: 999px;
3236
- background: var(--background) !important;
3237
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3238
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3239
- }
3240
-
3241
- .slex-slider:hover::-webkit-slider-thumb {
3242
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3243
- transform: scale(1.06);
3244
- }
3245
-
3246
- .slex-slider:hover::-moz-range-thumb {
3247
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3248
- transform: scale(1.06);
3249
- }
3250
-
3251
- .slex-slider:active::-webkit-slider-thumb {
3252
- box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
3253
- transform: scale(1.12);
3254
- }
3255
-
3256
- .slex-slider:active::-moz-range-thumb {
3257
- box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
3258
- transform: scale(1.12);
3259
- }
3260
-
3261
- .slex-slider::-moz-range-track {
3262
- height: 0.5rem;
3263
- border: 0;
3264
- border-radius: 999px;
3265
- background: var(--secondary);
3266
- }
3267
-
3268
- .slex-slider::-moz-range-progress {
3269
- height: 0.5rem;
3270
- border-radius: 999px;
3271
- background: var(--primary);
2975
+ .slex-table th {
2976
+ background: var(--muted);
2977
+ color: var(--muted-foreground);
2978
+ font-size: 0.75rem;
2979
+ font-weight: 650;
3272
2980
  }
3273
2981
 
3274
- .slex-slider-label-text {
2982
+ .slex-table-column-label {
3275
2983
  display: inline-flex;
3276
- min-width: 0;
3277
2984
  align-items: center;
3278
2985
  gap: 0.375rem;
2986
+ min-width: 0;
3279
2987
  }
3280
2988
 
3281
- /* components/switch.css */
2989
+ .slex-table tr:last-child td {
2990
+ border-bottom: 0;
2991
+ }
3282
2992
 
3283
- .slex-switch {
3284
- display: inline-flex;
3285
- align-items: center;
3286
- gap: 0.5rem;
3287
- cursor: pointer;
3288
- }
3289
-
3290
- .slex-switch-event-layer {
3291
- display: inline-flex;
3292
- }
3293
-
3294
- .slex-choice-event-layer {
3295
- display: inline-flex;
3296
- }
3297
-
3298
- .slex-switch-label {
3299
- display: inline-flex;
3300
- align-items: center;
3301
- gap: 0.375rem;
2993
+ .slex-section {
2994
+ display: grid;
2995
+ gap: 1rem;
3302
2996
  min-width: 0;
3303
- color: var(--foreground);
3304
- font-size: 0.8125rem;
3305
- font-weight: 500;
3306
- }
3307
-
3308
- .slex-switch-input {
3309
- position: absolute;
3310
- width: 1px;
3311
- height: 1px;
3312
- padding: 0;
3313
- margin: -1px;
3314
- overflow: hidden;
3315
- clip: rect(0, 0, 0, 0);
3316
- white-space: nowrap;
3317
- border: 0;
3318
- }
3319
-
3320
- .slex-switch-control {
3321
- box-sizing: border-box;
3322
- position: relative;
3323
- display: inline-flex;
3324
- align-items: center;
3325
- flex: 0 0 auto;
3326
- width: 2.75rem;
3327
- height: 1.5rem;
3328
- margin-inline-end: 0;
3329
- padding: 0;
3330
- border: 2px solid transparent;
3331
- border-radius: 9999px;
3332
- background: var(--input);
3333
- transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
3334
- }
3335
-
3336
- .slex-switch-control::after {
3337
- content: "";
3338
- display: block;
3339
- width: 1.25rem;
3340
- height: 1.25rem;
3341
- border: 0;
3342
- border-radius: 9999px;
3343
- background: var(--background);
3344
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
3345
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
3346
- transform: translateX(0);
3347
- will-change: transform;
3348
- }
3349
-
3350
- .slex-switch:hover .slex-switch-control {
3351
- border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
3352
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
3353
- }
3354
-
3355
- .slex-switch:hover .slex-switch-control::after {
3356
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
3357
- }
3358
-
3359
- .slex-switch:active .slex-switch-control::after {
3360
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
3361
- }
3362
-
3363
- .slex-switch-input:checked + .slex-switch-control {
3364
- border-color: var(--primary);
3365
- background: var(--primary);
3366
- }
3367
-
3368
- .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
3369
- background: color-mix(in oklab, var(--primary) 88%, var(--background));
3370
- }
3371
-
3372
- .slex-switch-input:checked + .slex-switch-control::after {
3373
- background: var(--background);
3374
- transform: translateX(1.25rem);
3375
- }
3376
-
3377
- .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
3378
- transform: translateX(-1.25rem);
3379
- }
3380
-
3381
- .slex-switch-input:focus-visible + .slex-switch-control {
3382
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
3383
- }
3384
-
3385
- .slex-switch-input:disabled + .slex-switch-control {
3386
- opacity: 0.55;
3387
- }
3388
-
3389
- .slex-switch:has(.slex-switch-input:disabled) {
3390
- cursor: not-allowed;
3391
- }
3392
-
3393
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
3394
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
3395
- box-shadow: none;
2997
+ scroll-margin-top: 5rem;
3396
2998
  }
3397
2999
 
3398
- /* components/text-input.css */
3399
-
3400
- .slex-input-field {
3401
- box-sizing: border-box;
3402
- display: flex;
3403
- flex-direction: column;
3404
- gap: 0.375rem;
3405
- width: 100%;
3000
+ .slex-section-body {
3001
+ display: grid;
3002
+ gap: 1rem;
3406
3003
  min-width: 0;
3407
3004
  }
3408
3005
 
3409
- .slex-input-label {
3006
+ .slex-section-action {
3410
3007
  display: inline-flex;
3411
- align-items: center;
3412
- gap: 0.25rem;
3413
3008
  width: fit-content;
3009
+ min-height: 2.25rem;
3010
+ align-items: center;
3011
+ justify-content: center;
3012
+ border: 1px solid var(--input);
3013
+ border-radius: calc(var(--radius) - 2px);
3014
+ background: var(--background);
3414
3015
  color: var(--foreground);
3415
- font-size: 0.8125rem;
3016
+ padding: 0 0.75rem;
3017
+ font-size: 0.875rem;
3416
3018
  font-weight: 600;
3417
- line-height: 1.25;
3019
+ text-decoration: none;
3020
+ box-shadow: var(--shadow-sm);
3021
+ transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
3418
3022
  }
3419
3023
 
3420
- .slex-input-field[data-required="true"] .slex-input-label::after {
3421
- content: "*";
3422
- color: var(--destructive);
3423
- font-weight: 700;
3024
+ .slex-section-action:hover {
3025
+ background: var(--accent);
3026
+ color: var(--accent-foreground);
3424
3027
  }
3425
3028
 
3426
- .slex-input-control {
3427
- display: flex;
3428
- align-items: stretch;
3429
- width: 100%;
3430
- min-width: 0;
3029
+ .slex-section-action:focus-visible {
3030
+ outline: 2px solid var(--ring);
3031
+ outline-offset: 2px;
3431
3032
  }
3432
3033
 
3433
- .slex-input {
3434
- box-sizing: border-box;
3435
- display: inline-flex;
3436
- align-items: center;
3437
- flex: 1 1 auto;
3438
- min-width: 0;
3439
- width: 100%;
3440
- padding: 0.5rem 0.75rem;
3441
- border: 1px solid var(--input);
3442
- border-radius: var(--radius);
3443
- background: var(--background);
3444
- color: var(--foreground);
3445
- font-family: inherit;
3034
+ .slexkit-secure-error {
3035
+ margin-top: 0.75rem;
3036
+ white-space: pre-wrap;
3037
+ border: 1px solid color-mix(in srgb, var(--destructive, #dc2626) 35%, transparent);
3038
+ border-radius: 0.5rem;
3039
+ background: color-mix(in srgb, var(--destructive, #dc2626) 8%, transparent);
3040
+ color: var(--destructive, #b91c1c);
3446
3041
  font-size: 0.875rem;
3447
3042
  line-height: 1.5;
3448
- outline: none;
3449
- transition: border-color 150ms ease, box-shadow 150ms ease;
3043
+ padding: 0.75rem;
3450
3044
  }
3451
3045
 
3452
- .slex-input-control[data-has-unit="true"] .slex-input,
3453
- .slex-input-control[data-has-controls="true"] .slex-input {
3454
- border-top-right-radius: 0;
3455
- border-bottom-right-radius: 0;
3456
- }
3046
+ /* components/button.css */
3457
3047
 
3458
- .slex-input-unit {
3459
- box-sizing: border-box;
3048
+ .slex-button {
3460
3049
  display: inline-flex;
3461
3050
  align-items: center;
3462
3051
  justify-content: center;
3463
- min-height: 2.5625rem;
3464
- padding: 0.5rem 0.75rem;
3465
- border: 1px solid var(--input);
3466
- border-left: 0;
3467
- border-radius: 0 var(--radius) var(--radius) 0;
3468
- background: var(--muted);
3469
- color: var(--muted-foreground);
3052
+ gap: 0.5rem;
3053
+ max-width: 100%;
3054
+ min-width: 0;
3055
+ padding: 0.5rem 1rem;
3056
+ border: 1px solid transparent;
3057
+ border-radius: var(--radius);
3058
+ font-family: inherit;
3470
3059
  font-size: 0.875rem;
3471
- font-weight: 600;
3472
- line-height: 1.5;
3060
+ font-weight: 500;
3061
+ line-height: 1.25;
3473
3062
  white-space: nowrap;
3474
- transition: border-color 150ms ease, box-shadow 150ms ease;
3475
- }
3476
-
3477
- .slex-input-control[data-has-controls="true"] .slex-input-unit {
3478
- border-radius: 0;
3063
+ text-overflow: ellipsis;
3064
+ overflow: hidden;
3065
+ cursor: pointer;
3066
+ user-select: none;
3067
+ transition:
3068
+ background 150ms ease,
3069
+ border-color 150ms ease,
3070
+ color 150ms ease,
3071
+ box-shadow 150ms ease,
3072
+ transform 150ms ease;
3073
+ }
3074
+
3075
+ .slex-button--primary {
3076
+ background: var(--primary);
3077
+ color: var(--primary-foreground);
3078
+ border-color: var(--primary);
3079
+ }
3080
+
3081
+ .slex-button--primary:hover:not(:disabled):not(.slex-button--disabled) {
3082
+ background: color-mix(in oklab, var(--primary) 90%, transparent);
3083
+ border-color: color-mix(in oklab, var(--primary) 90%, transparent);
3084
+ color: var(--primary-foreground);
3085
+ transform: translateY(-1px);
3086
+ box-shadow: var(--shadow-md);
3087
+ }
3088
+
3089
+ .slex-button--secondary {
3090
+ background: var(--secondary);
3091
+ color: var(--secondary-foreground);
3092
+ border-color: var(--border);
3093
+ }
3094
+
3095
+ .slex-button--secondary:hover:not(:disabled):not(.slex-button--disabled) {
3096
+ background: var(--accent);
3097
+ color: var(--accent-foreground);
3098
+ border-color: var(--border);
3099
+ }
3100
+
3101
+ .slex-button--danger {
3102
+ background: var(--destructive);
3103
+ color: var(--destructive-foreground);
3104
+ border-color: var(--destructive);
3105
+ }
3106
+
3107
+ .slex-button--danger:hover:not(:disabled):not(.slex-button--disabled) {
3108
+ background: color-mix(in oklab, var(--destructive) 90%, transparent);
3109
+ border-color: color-mix(in oklab, var(--destructive) 90%, transparent);
3479
3110
  }
3480
3111
 
3481
- .slex-input-controls {
3112
+ .slex-button--ghost {
3113
+ background: transparent;
3114
+ color: var(--muted-foreground);
3115
+ border-color: transparent;
3116
+ }
3117
+
3118
+ .slex-button--ghost:hover:not(:disabled):not(.slex-button--disabled) {
3119
+ background: var(--accent);
3120
+ color: var(--accent-foreground);
3121
+ }
3122
+
3123
+ .slex-button:disabled,
3124
+ .slex-button[disabled],
3125
+ .slex-button--disabled {
3126
+ opacity: 0.5;
3127
+ cursor: not-allowed;
3128
+ pointer-events: none;
3129
+ transform: none;
3130
+ box-shadow: none;
3131
+ }
3132
+
3133
+ .slex-button:active:not(:disabled):not(.slex-button--disabled) {
3134
+ transform: translateY(0);
3135
+ box-shadow: var(--shadow-sm);
3136
+ }
3137
+
3138
+ .slex-button:focus-visible {
3139
+ outline: 2px solid var(--ring);
3140
+ outline-offset: 2px;
3141
+ }
3142
+
3143
+ .slex-button--icon {
3144
+ width: var(--slex-control-height, 2.25rem);
3145
+ min-height: var(--slex-control-height, 2.25rem);
3146
+ padding-inline: 0;
3147
+ }
3148
+
3149
+ .slex-button-icon {
3150
+ display: inline-flex;
3151
+ width: 1.125rem;
3152
+ height: 1.125rem;
3153
+ color: currentColor;
3154
+ }
3155
+
3156
+ .slex-button-icon svg {
3157
+ display: block;
3158
+ width: 100%;
3159
+ height: 100%;
3160
+ fill: currentColor;
3161
+ }
3162
+
3163
+ /* components/submit.css */
3164
+
3165
+ .slex-submit-bar {
3166
+ display: flex;
3167
+ align-items: center;
3168
+ justify-content: flex-end;
3169
+ gap: 0.75rem;
3170
+ flex-wrap: wrap;
3171
+ padding-top: 0.75rem;
3172
+ border-top: 1px solid var(--border);
3173
+ }
3174
+
3175
+ /* components/slider.css */
3176
+
3177
+ .slex-slider-container,
3178
+ .slex-slider-field {
3179
+ display: flex;
3180
+ flex-direction: column;
3181
+ gap: 0.5rem;
3182
+ width: 100%;
3183
+ }
3184
+
3185
+ .slex-slider-field {
3186
+ padding: 0.25rem 0;
3187
+ }
3188
+
3189
+ .slex-slider-label {
3190
+ display: flex;
3191
+ align-items: center;
3192
+ justify-content: space-between;
3193
+ color: var(--muted-foreground);
3194
+ font-size: 0.875rem;
3195
+ font-weight: 500;
3196
+ }
3197
+
3198
+ .slex-slider-value {
3199
+ padding: 0.125rem 0.5rem;
3200
+ border: 1px solid var(--border);
3201
+ border-radius: calc(var(--radius) - 2px);
3202
+ background: var(--secondary);
3203
+ color: var(--secondary-foreground);
3204
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
3205
+ font-size: 0.875rem;
3206
+ font-weight: 600;
3207
+ }
3208
+
3209
+ .slex-slider {
3482
3210
  box-sizing: border-box;
3483
- display: inline-grid;
3484
- grid-template-columns: repeat(2, minmax(0, 1fr));
3485
- align-items: stretch;
3486
- flex: 0 0 auto;
3487
- width: 3.75rem;
3488
- min-width: 3.75rem;
3489
- min-height: 2.5625rem;
3490
- overflow: hidden;
3491
- border: 1px solid var(--input);
3492
- border-left: 0;
3493
- border-radius: 0 var(--radius) var(--radius) 0;
3494
- background: var(--background);
3495
- transition: border-color 150ms ease, box-shadow 150ms ease;
3211
+ width: 100%;
3212
+ height: 1rem;
3213
+ padding: 0;
3214
+ border: 0;
3215
+ border-radius: 999px;
3216
+ -webkit-appearance: none;
3217
+ appearance: none;
3218
+ background: transparent;
3219
+ accent-color: var(--primary);
3220
+ cursor: pointer;
3221
+ overflow: visible;
3222
+ transition: box-shadow 150ms ease, filter 150ms ease;
3223
+ }
3224
+
3225
+ .slex-slider:focus-visible {
3226
+ outline: 2px solid var(--ring);
3227
+ outline-offset: 4px;
3496
3228
  }
3497
3229
 
3498
- .slex-input-step {
3230
+ .slex-slider::-webkit-slider-thumb {
3499
3231
  box-sizing: border-box;
3232
+ width: 1rem;
3233
+ height: 1rem;
3234
+ margin-top: -0.25rem;
3235
+ border: 2px solid var(--primary);
3236
+ border-radius: 999px;
3237
+ background-color: var(--background);
3238
+ background-clip: padding-box;
3239
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3240
+ -webkit-appearance: none;
3241
+ appearance: none;
3242
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3243
+ }
3244
+
3245
+ .slex-slider::-webkit-slider-runnable-track {
3246
+ box-sizing: border-box;
3247
+ width: 100%;
3248
+ height: 0.5rem;
3249
+ border: 0;
3250
+ border-radius: 999px;
3251
+ background: linear-gradient(
3252
+ to right,
3253
+ var(--primary) 0%,
3254
+ var(--primary) var(--slex-slider-progress, 0%),
3255
+ var(--secondary) var(--slex-slider-progress, 0%),
3256
+ var(--secondary) 100%
3257
+ );
3258
+ }
3259
+
3260
+ .slex-slider::-moz-range-thumb {
3261
+ box-sizing: border-box;
3262
+ width: 1rem;
3263
+ height: 1rem;
3264
+ border: 2px solid var(--primary);
3265
+ border-radius: 999px;
3266
+ background-color: var(--background);
3267
+ background-clip: padding-box;
3268
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3269
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3270
+ }
3271
+
3272
+ .slex-slider:hover::-webkit-slider-thumb {
3273
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3274
+ transform: scale(1.06);
3275
+ }
3276
+
3277
+ .slex-slider:hover::-moz-range-thumb {
3278
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3279
+ transform: scale(1.06);
3280
+ }
3281
+
3282
+ .slex-slider:active::-webkit-slider-thumb {
3283
+ box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
3284
+ transform: scale(1.12);
3285
+ }
3286
+
3287
+ .slex-slider:active::-moz-range-thumb {
3288
+ box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
3289
+ transform: scale(1.12);
3290
+ }
3291
+
3292
+ .slex-slider::-moz-range-track {
3293
+ height: 0.5rem;
3294
+ border: 0;
3295
+ border-radius: 999px;
3296
+ background: var(--secondary);
3297
+ }
3298
+
3299
+ .slex-slider::-moz-range-progress {
3300
+ height: 0.5rem;
3301
+ border-radius: 999px;
3302
+ background: var(--primary);
3303
+ }
3304
+
3305
+ .slex-slider-label-text {
3306
+ display: inline-flex;
3307
+ min-width: 0;
3308
+ align-items: center;
3309
+ gap: 0.375rem;
3310
+ }
3311
+
3312
+ /* components/switch.css */
3313
+
3314
+ .slex-switch {
3500
3315
  display: inline-flex;
3501
3316
  align-items: center;
3502
- justify-content: center;
3503
- width: 100%;
3317
+ gap: 0.5rem;
3318
+ cursor: pointer;
3319
+ }
3320
+
3321
+ .slex-switch-event-layer {
3322
+ display: inline-flex;
3323
+ }
3324
+
3325
+ .slex-choice-event-layer {
3326
+ display: inline-flex;
3327
+ }
3328
+
3329
+ .slex-switch-label {
3330
+ display: inline-flex;
3331
+ align-items: center;
3332
+ gap: 0.375rem;
3504
3333
  min-width: 0;
3505
- min-height: 100%;
3334
+ color: var(--foreground);
3335
+ font-size: 0.8125rem;
3336
+ font-weight: 500;
3337
+ }
3338
+
3339
+ .slex-switch-input {
3340
+ position: absolute;
3341
+ width: 1px;
3342
+ height: 1px;
3506
3343
  padding: 0;
3344
+ margin: -1px;
3345
+ overflow: hidden;
3346
+ clip: rect(0, 0, 0, 0);
3347
+ white-space: nowrap;
3507
3348
  border: 0;
3508
- border-left: 1px solid var(--input);
3509
- border-radius: 0;
3510
- background: transparent;
3349
+ }
3350
+
3351
+ .slex-switch-control {
3352
+ box-sizing: border-box;
3353
+ position: relative;
3354
+ display: inline-flex;
3355
+ align-items: center;
3356
+ flex: 0 0 auto;
3357
+ width: 2.75rem;
3358
+ height: 1.5rem;
3359
+ margin-inline-end: 0;
3360
+ padding: 0;
3361
+ border: 2px solid transparent;
3362
+ border-radius: 9999px;
3363
+ background: var(--input);
3364
+ transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
3365
+ }
3366
+
3367
+ .slex-switch-control::after {
3368
+ content: "";
3369
+ display: block;
3370
+ width: 1.25rem;
3371
+ height: 1.25rem;
3372
+ border: 0;
3373
+ border-radius: 9999px;
3374
+ background: var(--background);
3375
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
3376
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
3377
+ transform: translateX(0);
3378
+ will-change: transform;
3379
+ }
3380
+
3381
+ .slex-switch:hover .slex-switch-control {
3382
+ border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
3383
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
3384
+ }
3385
+
3386
+ .slex-switch:hover .slex-switch-control::after {
3387
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
3388
+ }
3389
+
3390
+ .slex-switch:active .slex-switch-control::after {
3391
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
3392
+ }
3393
+
3394
+ .slex-switch-input:checked + .slex-switch-control {
3395
+ border-color: var(--primary);
3396
+ background: var(--primary);
3397
+ }
3398
+
3399
+ .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
3400
+ background: color-mix(in oklab, var(--primary) 88%, var(--background));
3401
+ }
3402
+
3403
+ .slex-switch-input:checked + .slex-switch-control::after {
3404
+ background: var(--background);
3405
+ transform: translateX(1.25rem);
3406
+ }
3407
+
3408
+ .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
3409
+ transform: translateX(-1.25rem);
3410
+ }
3411
+
3412
+ .slex-switch-input:focus-visible + .slex-switch-control {
3413
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
3414
+ }
3415
+
3416
+ .slex-switch-input:disabled + .slex-switch-control {
3417
+ opacity: 0.55;
3418
+ }
3419
+
3420
+ .slex-switch[data-disabled="true"] {
3421
+ cursor: not-allowed;
3422
+ }
3423
+
3424
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control,
3425
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control::after {
3426
+ box-shadow: none;
3427
+ }
3428
+
3429
+ /* components/text-input.css */
3430
+
3431
+ .slex-input-field {
3432
+ box-sizing: border-box;
3433
+ display: flex;
3434
+ flex-direction: column;
3435
+ gap: 0.375rem;
3436
+ width: 100%;
3437
+ min-width: 0;
3438
+ }
3439
+
3440
+ .slex-input-label {
3441
+ display: inline-flex;
3442
+ align-items: center;
3443
+ gap: 0.25rem;
3444
+ width: fit-content;
3511
3445
  color: var(--foreground);
3512
- font: inherit;
3513
- font-size: 0.875rem;
3446
+ font-size: 0.8125rem;
3514
3447
  font-weight: 600;
3515
- line-height: 1;
3516
- cursor: pointer;
3517
- transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
3448
+ line-height: 1.25;
3518
3449
  }
3519
3450
 
3520
- .slex-input-step:first-child {
3521
- border-left: 0;
3451
+ .slex-input-field[data-required="true"] .slex-input-label::after {
3452
+ content: "*";
3453
+ color: var(--destructive);
3454
+ font-weight: 700;
3522
3455
  }
3523
3456
 
3524
- .slex-input-step:last-child {
3525
- border-radius: 0;
3457
+ .slex-input-control {
3458
+ position: relative;
3459
+ display: flex;
3460
+ align-items: stretch;
3461
+ width: 100%;
3462
+ min-width: 0;
3463
+ border-radius: var(--radius);
3464
+ transition: box-shadow 150ms ease;
3526
3465
  }
3527
3466
 
3528
- .slex-input-step:hover:not(:disabled) {
3529
- background: color-mix(in oklab, var(--muted) 52%, var(--background));
3467
+ .slex-input {
3468
+ box-sizing: border-box;
3469
+ display: inline-flex;
3470
+ align-items: center;
3471
+ flex: 1 1 auto;
3472
+ min-width: 0;
3473
+ width: 100%;
3474
+ padding: 0.5rem 0.75rem;
3475
+ border: 1px solid var(--input);
3476
+ border-radius: var(--radius);
3477
+ background: var(--background);
3478
+ background-clip: padding-box;
3479
+ color: var(--foreground);
3480
+ font-family: inherit;
3481
+ font-size: 0.875rem;
3482
+ line-height: 1.5;
3483
+ outline: none;
3484
+ -webkit-appearance: none;
3485
+ appearance: none;
3486
+ transition: border-color 150ms ease, box-shadow 150ms ease;
3530
3487
  }
3531
3488
 
3532
- .slex-input-step:focus-visible {
3533
- z-index: 1;
3534
- border-color: var(--ring);
3535
- outline: none;
3536
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3489
+ .slex-input-control[data-has-unit="true"] .slex-input {
3490
+ border-top-right-radius: 0;
3491
+ border-bottom-right-radius: 0;
3537
3492
  }
3538
3493
 
3539
- .slex-input-step:disabled {
3540
- opacity: 0.45;
3541
- cursor: not-allowed;
3494
+ .slex-input-unit {
3495
+ box-sizing: border-box;
3496
+ display: inline-flex;
3497
+ align-items: center;
3498
+ justify-content: center;
3499
+ min-height: 2.5625rem;
3500
+ padding: 0.5rem 0.75rem;
3501
+ border: 1px solid var(--input);
3502
+ border-left: 0;
3503
+ border-radius: 0 var(--radius) var(--radius) 0;
3504
+ background: var(--muted);
3505
+ color: var(--muted-foreground);
3506
+ font-size: 0.875rem;
3507
+ font-weight: 600;
3508
+ line-height: 1.5;
3509
+ white-space: nowrap;
3510
+ transition: border-color 150ms ease, box-shadow 150ms ease;
3542
3511
  }
3543
3512
 
3544
3513
  .slex-input::placeholder {
@@ -3547,7 +3516,11 @@ body[data-mobile-nav-open] {
3547
3516
 
3548
3517
  .slex-input:focus {
3549
3518
  border-color: var(--ring);
3550
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3519
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 18%, transparent);
3520
+ }
3521
+
3522
+ .slex-input-control[data-has-unit="true"] .slex-input:focus {
3523
+ box-shadow: none;
3551
3524
  }
3552
3525
 
3553
3526
  .slex-input[type="number"] {
@@ -3574,18 +3547,21 @@ body[data-mobile-nav-open] {
3574
3547
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3575
3548
  }
3576
3549
 
3577
- .slex-input-control:focus-within .slex-input-unit {
3578
- border-color: var(--ring);
3550
+ .slex-input-field[data-invalid="true"] .slex-input-control[data-has-unit="true"] .slex-input:focus {
3551
+ box-shadow: none;
3552
+ }
3553
+
3554
+ .slex-input-control:focus-within {
3579
3555
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3580
3556
  }
3581
3557
 
3582
- .slex-input-control:focus-within .slex-input-step {
3583
- border-color: var(--ring);
3558
+ .slex-input-control:not([data-has-unit]):focus-within {
3559
+ box-shadow: none;
3584
3560
  }
3585
3561
 
3586
- .slex-input-control:focus-within .slex-input-controls {
3562
+ .slex-input-control:focus-within .slex-input,
3563
+ .slex-input-control:focus-within .slex-input-unit {
3587
3564
  border-color: var(--ring);
3588
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3589
3565
  }
3590
3566
 
3591
3567
  .slex-input-field[data-invalid="true"] .slex-input-unit {
@@ -3593,26 +3569,17 @@ body[data-mobile-nav-open] {
3593
3569
  color: color-mix(in oklab, var(--destructive) 84%, var(--muted-foreground));
3594
3570
  }
3595
3571
 
3596
- .slex-input-field[data-invalid="true"] .slex-input-step {
3597
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3598
- }
3599
-
3600
- .slex-input-field[data-invalid="true"] .slex-input-controls {
3601
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3602
- }
3603
-
3604
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
3605
- border-color: var(--destructive);
3572
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
3606
3573
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3607
3574
  }
3608
3575
 
3609
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
3610
- border-color: var(--destructive);
3576
+ .slex-input-field[data-invalid="true"] .slex-input-control:not([data-has-unit]):focus-within {
3577
+ box-shadow: none;
3611
3578
  }
3612
3579
 
3613
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls {
3580
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
3581
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
3614
3582
  border-color: var(--destructive);
3615
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3616
3583
  }
3617
3584
 
3618
3585
  .slex-input[disabled] {
@@ -3625,153 +3592,147 @@ body[data-mobile-nav-open] {
3625
3592
  cursor: not-allowed;
3626
3593
  }
3627
3594
 
3628
- .slex-input[disabled] ~ .slex-input-controls,
3629
- .slex-input[readonly] ~ .slex-input-controls {
3630
- opacity: 0.6;
3595
+ .slex-input-description {
3596
+ color: var(--muted-foreground);
3597
+ font-size: 0.75rem;
3598
+ line-height: 1.35;
3599
+ }
3600
+
3601
+ .slex-input-error {
3602
+ color: var(--destructive);
3603
+ font-size: 0.75rem;
3604
+ font-weight: 500;
3605
+ line-height: 1.35;
3606
+ }
3607
+
3608
+ /* components/select.css */
3609
+
3610
+ .slex-select {
3611
+ position: relative;
3612
+ display: flex;
3613
+ width: 100%;
3614
+ min-width: 0;
3615
+ flex-direction: column;
3616
+ gap: 0.5rem;
3617
+ }
3618
+
3619
+ .slex-select-label {
3620
+ display: inline-flex;
3621
+ align-items: center;
3622
+ gap: 0.375rem;
3623
+ min-width: 0;
3624
+ color: var(--foreground);
3625
+ font-size: 0.875rem;
3626
+ font-weight: 500;
3627
+ line-height: 1;
3628
+ }
3629
+
3630
+ .slex-select-control {
3631
+ width: 100%;
3632
+ min-width: 0;
3633
+ }
3634
+
3635
+ .slex-select .slex-select-trigger {
3636
+ box-sizing: border-box;
3637
+ display: flex;
3638
+ align-items: center;
3639
+ justify-content: space-between;
3640
+ gap: 0.75rem;
3641
+ width: 100%;
3642
+ min-width: 0;
3643
+ min-height: 2.5rem;
3644
+ margin: 0;
3645
+ padding: 0.5rem 1rem;
3646
+ border: 1px solid var(--input);
3647
+ border-radius: var(--radius);
3648
+ background: var(--background);
3649
+ color: var(--foreground);
3650
+ font: inherit;
3651
+ font-size: 0.875rem;
3652
+ line-height: 1.25rem;
3653
+ outline: none;
3654
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 8%, transparent);
3655
+ cursor: pointer;
3656
+ transition:
3657
+ border-color 150ms ease,
3658
+ background-color 150ms ease,
3659
+ box-shadow 150ms ease,
3660
+ color 150ms ease;
3661
+ appearance: none;
3662
+ text-align: left;
3663
+ }
3664
+
3665
+ .slex-select .slex-select-trigger:hover:not(:disabled) {
3666
+ background: color-mix(in oklab, var(--accent) 34%, var(--background));
3631
3667
  }
3632
3668
 
3633
- .slex-input-description {
3634
- color: var(--muted-foreground);
3635
- font-size: 0.75rem;
3636
- line-height: 1.35;
3669
+ .slex-select .slex-select-trigger:focus-visible {
3670
+ border-color: var(--ring);
3671
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 20%, transparent);
3637
3672
  }
3638
3673
 
3639
- .slex-input-error {
3640
- color: var(--destructive);
3641
- font-size: 0.75rem;
3642
- font-weight: 500;
3643
- line-height: 1.35;
3674
+ .slex-select .slex-select-trigger:disabled {
3675
+ cursor: not-allowed;
3676
+ opacity: 0.5;
3644
3677
  }
3645
3678
 
3646
- /* components/select.css */
3647
-
3648
- .slex-select {
3649
- position: relative;
3650
- display: flex;
3651
- width: 100%;
3652
- min-width: 0;
3653
- flex-direction: column;
3654
- gap: 0.5rem;
3655
- }
3656
-
3657
- .slex-select-label {
3658
- display: inline-flex;
3659
- align-items: center;
3660
- gap: 0.375rem;
3661
- min-width: 0;
3662
- color: var(--foreground);
3663
- font-size: 0.875rem;
3664
- font-weight: 500;
3665
- line-height: 1;
3666
- }
3667
-
3668
- .slex-select-control {
3669
- width: 100%;
3670
- min-width: 0;
3671
- }
3672
-
3673
- .slex-select .slex-select-trigger {
3674
- box-sizing: border-box;
3675
- display: flex;
3676
- align-items: center;
3677
- justify-content: space-between;
3678
- gap: 0.75rem;
3679
- width: 100%;
3680
- min-width: 0;
3681
- min-height: 2.5rem;
3682
- margin: 0;
3683
- padding: 0.5rem 1rem;
3684
- border: 1px solid var(--input);
3685
- border-radius: var(--radius);
3686
- background: var(--background);
3687
- color: var(--foreground);
3688
- font: inherit;
3689
- font-size: 0.875rem;
3690
- line-height: 1.25rem;
3691
- outline: none;
3692
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 8%, transparent);
3693
- cursor: pointer;
3694
- transition:
3695
- border-color 150ms ease,
3696
- background-color 150ms ease,
3697
- box-shadow 150ms ease,
3698
- color 150ms ease;
3699
- appearance: none;
3700
- text-align: left;
3701
- }
3702
-
3703
- .slex-select .slex-select-trigger:hover:not(:disabled) {
3704
- background: color-mix(in oklab, var(--accent) 34%, var(--background));
3705
- }
3706
-
3707
- .slex-select .slex-select-trigger:focus-visible {
3708
- border-color: var(--ring);
3709
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 20%, transparent);
3710
- }
3711
-
3712
- .slex-select .slex-select-trigger:disabled {
3713
- cursor: not-allowed;
3714
- opacity: 0.5;
3715
- }
3716
-
3717
3679
  .slex-select-value {
3718
3680
  display: inline-flex;
3719
3681
  align-items: center;
3720
3682
  gap: 0.375rem;
3721
3683
  min-width: 0;
3722
3684
  overflow: hidden;
3723
- text-overflow: ellipsis;
3724
- white-space: nowrap;
3725
- }
3726
-
3727
- .slex-select-value[data-placeholder] {
3728
- color: var(--muted-foreground);
3729
- }
3730
-
3731
- .slex-select-icon {
3732
- position: relative;
3733
- flex: 0 0 auto;
3734
- width: 0.75rem;
3735
- height: 0.75rem;
3736
- opacity: 0.72;
3737
- }
3738
-
3739
- .slex-select-icon::before {
3740
- position: absolute;
3741
- top: 0.2rem;
3742
- left: 0.125rem;
3743
- width: 0.45rem;
3744
- height: 0.45rem;
3745
- border-right: 1.5px solid currentColor;
3746
- border-bottom: 1.5px solid currentColor;
3747
- content: "";
3748
- transform: rotate(45deg);
3749
- }
3750
-
3751
- .slex-select-native {
3752
- position: absolute;
3753
- width: 1px;
3754
- height: 1px;
3755
- margin: -1px;
3756
- padding: 0;
3757
- border: 0;
3758
- overflow: hidden;
3759
- clip: rect(0 0 0 0);
3760
- clip-path: inset(50%);
3761
- white-space: nowrap;
3762
- }
3763
-
3764
- .slex-select-menu {
3765
- position: absolute;
3766
- z-index: 40;
3767
- top: calc(100% + 0.375rem);
3768
- left: 0;
3769
- right: 0;
3770
- width: 100%;
3771
- max-height: 14rem;
3772
- margin: 0;
3773
- padding: 0.25rem;
3774
- overflow-y: auto;
3685
+ text-overflow: ellipsis;
3686
+ white-space: nowrap;
3687
+ }
3688
+
3689
+ .slex-select-value[data-placeholder] {
3690
+ color: var(--muted-foreground);
3691
+ }
3692
+
3693
+ .slex-select-icon {
3694
+ position: relative;
3695
+ flex: 0 0 auto;
3696
+ width: 0.75rem;
3697
+ height: 0.75rem;
3698
+ opacity: 0.72;
3699
+ }
3700
+
3701
+ .slex-select-icon::before {
3702
+ position: absolute;
3703
+ top: 0.2rem;
3704
+ left: 0.125rem;
3705
+ width: 0.45rem;
3706
+ height: 0.45rem;
3707
+ border-right: 1.5px solid currentColor;
3708
+ border-bottom: 1.5px solid currentColor;
3709
+ content: "";
3710
+ transform: rotate(45deg);
3711
+ }
3712
+
3713
+ .slex-select-native {
3714
+ position: absolute;
3715
+ width: 1px;
3716
+ height: 1px;
3717
+ margin: -1px;
3718
+ padding: 0;
3719
+ border: 0;
3720
+ overflow: hidden;
3721
+ clip: rect(0 0 0 0);
3722
+ white-space: nowrap;
3723
+ }
3724
+
3725
+ .slex-select-menu {
3726
+ position: absolute;
3727
+ z-index: 40;
3728
+ top: calc(100% + 0.375rem);
3729
+ left: 0;
3730
+ right: 0;
3731
+ width: 100%;
3732
+ max-height: 14rem;
3733
+ margin: 0;
3734
+ padding: 0.25rem;
3735
+ overflow-y: auto;
3775
3736
  border: 1px solid color-mix(in oklab, var(--border) 82%, transparent);
3776
3737
  border-radius: var(--radius);
3777
3738
  background: var(--popover, var(--background));
@@ -3783,23 +3744,23 @@ body[data-mobile-nav-open] {
3783
3744
  );
3784
3745
  list-style: none;
3785
3746
  }
3786
-
3787
- .slexkit-root .slex-select-menu {
3788
- margin: 0;
3789
- padding: 0.25rem;
3790
- list-style: none;
3791
- }
3792
-
3747
+
3748
+ .slexkit-root .slex-select-menu {
3749
+ margin: 0;
3750
+ padding: 0.25rem;
3751
+ list-style: none;
3752
+ }
3753
+
3793
3754
  .slexkit-root .slex-select-menu li {
3794
3755
  margin: 0;
3795
3756
  list-style: none;
3796
3757
  }
3797
-
3798
- .slex-select-option {
3799
- display: flex;
3800
- align-items: center;
3801
- justify-content: space-between;
3802
- gap: 0.75rem;
3758
+
3759
+ .slex-select-option {
3760
+ display: flex;
3761
+ align-items: center;
3762
+ justify-content: space-between;
3763
+ gap: 0.75rem;
3803
3764
  min-height: 2rem;
3804
3765
  padding: 0.5rem 0.75rem;
3805
3766
  border-radius: calc(var(--radius) - 2px);
@@ -3807,40 +3768,35 @@ body[data-mobile-nav-open] {
3807
3768
  font-size: 0.875rem;
3808
3769
  line-height: 1.25rem;
3809
3770
  cursor: pointer;
3810
- user-select: none;
3811
- }
3812
-
3771
+ user-select: none;
3772
+ }
3773
+
3813
3774
  .slex-select-option:hover:not([data-disabled]),
3814
3775
  .slex-select-option--active:not([data-disabled]) {
3815
3776
  background: var(--accent);
3816
3777
  color: var(--accent-foreground);
3817
3778
  }
3818
3779
 
3819
- .slex-select-menu:has(.slex-select-option:hover) .slex-select-option--active:not(:hover) {
3820
- background: transparent;
3821
- color: var(--popover-foreground, var(--foreground));
3780
+ .slex-select-option--selected {
3781
+ font-weight: 500;
3782
+ }
3783
+
3784
+ .slex-select-option[data-disabled] {
3785
+ color: var(--muted-foreground);
3786
+ cursor: not-allowed;
3787
+ opacity: 0.52;
3822
3788
  }
3823
-
3824
- .slex-select-option--selected {
3825
- font-weight: 500;
3826
- }
3827
-
3828
- .slex-select-option[data-disabled] {
3829
- color: var(--muted-foreground);
3830
- cursor: not-allowed;
3831
- opacity: 0.52;
3832
- }
3833
-
3789
+
3834
3790
  .slex-select-option-label {
3835
3791
  display: inline-flex;
3836
3792
  align-items: center;
3837
3793
  gap: 0.375rem;
3838
3794
  min-width: 0;
3839
- overflow: hidden;
3840
- text-overflow: ellipsis;
3841
- white-space: nowrap;
3842
- }
3843
-
3795
+ overflow: hidden;
3796
+ text-overflow: ellipsis;
3797
+ white-space: nowrap;
3798
+ }
3799
+
3844
3800
  .slex-select-check {
3845
3801
  position: relative;
3846
3802
  flex: 0 0 auto;
@@ -3860,35 +3816,35 @@ body[data-mobile-nav-open] {
3860
3816
  content: "";
3861
3817
  transform: rotate(-45deg);
3862
3818
  }
3863
-
3864
- .slex-select[data-variant="toolbar"] {
3865
- height: 100%;
3866
- gap: 0;
3867
- }
3868
-
3869
- .slex-select[data-variant="toolbar"] .slex-select-trigger {
3870
- height: var(--slex-control-height, 2.25rem);
3871
- min-height: 0;
3872
- border-width: 0 1px 0 0;
3873
- border-color: color-mix(in oklab, var(--border) 58%, transparent);
3874
- border-radius: 0;
3875
- background: transparent;
3876
- padding: 0 0.75rem 0 0.875rem;
3877
- font-size: 0.8125rem;
3878
- line-height: 1;
3879
- box-shadow: none;
3880
- }
3881
-
3882
- .slex-select[data-variant="toolbar"] .slex-select-trigger:hover:not(:disabled) {
3883
- background: color-mix(in oklab, var(--muted) 36%, var(--background));
3884
- }
3885
-
3886
- .slex-select[data-variant="toolbar"] .slex-select-menu {
3887
- top: calc(100% + 0.25rem);
3888
- left: 0;
3889
- right: auto;
3890
- width: 100%;
3891
- min-width: 100%;
3819
+
3820
+ .slex-select[data-variant="toolbar"] {
3821
+ height: 100%;
3822
+ gap: 0;
3823
+ }
3824
+
3825
+ .slex-select[data-variant="toolbar"] .slex-select-trigger {
3826
+ height: var(--slex-control-height, 2.25rem);
3827
+ min-height: 0;
3828
+ border-width: 0 1px 0 0;
3829
+ border-color: color-mix(in oklab, var(--border) 58%, transparent);
3830
+ border-radius: 0;
3831
+ background: transparent;
3832
+ padding: 0 0.75rem 0 0.875rem;
3833
+ font-size: 0.8125rem;
3834
+ line-height: 1;
3835
+ box-shadow: none;
3836
+ }
3837
+
3838
+ .slex-select[data-variant="toolbar"] .slex-select-trigger:hover:not(:disabled) {
3839
+ background: color-mix(in oklab, var(--muted) 36%, var(--background));
3840
+ }
3841
+
3842
+ .slex-select[data-variant="toolbar"] .slex-select-menu {
3843
+ top: calc(100% + 0.25rem);
3844
+ left: 0;
3845
+ right: auto;
3846
+ width: 100%;
3847
+ min-width: 100%;
3892
3848
  border-color: color-mix(in oklab, var(--border) 76%, transparent);
3893
3849
  border-radius: calc(var(--radius) - 2px);
3894
3850
  padding: 0.25rem;
@@ -3898,9 +3854,9 @@ body[data-mobile-nav-open] {
3898
3854
  0 1px 3px rgb(0 0 0 / 0.06)
3899
3855
  );
3900
3856
  }
3901
-
3902
- .slex-select[data-variant="toolbar"] .slex-select-option {
3903
- height: 1.875rem;
3857
+
3858
+ .slex-select[data-variant="toolbar"] .slex-select-option {
3859
+ height: 1.875rem;
3904
3860
  border-radius: calc(var(--radius) - 4px);
3905
3861
  font-size: 0.8125rem;
3906
3862
  padding-inline: 0.75rem;
@@ -3908,46 +3864,46 @@ body[data-mobile-nav-open] {
3908
3864
 
3909
3865
  /* components/tabs.css */
3910
3866
 
3911
- .slex-tabs {
3912
- display: flex;
3913
- flex-direction: column;
3914
- width: 100%;
3915
- }
3916
-
3917
- .slex-tabs[data-orientation="vertical"] {
3918
- flex-direction: row;
3919
- }
3920
-
3867
+ .slex-tabs {
3868
+ display: flex;
3869
+ flex-direction: column;
3870
+ width: 100%;
3871
+ }
3872
+
3873
+ .slex-tabs[data-orientation="vertical"] {
3874
+ flex-direction: row;
3875
+ }
3876
+
3921
3877
  .slex-tabs-list {
3922
3878
  --slex-tabs-indicator-inline-inset: 12px;
3923
3879
  --slex-tabs-indicator-block-inset: 8px;
3924
3880
  position: relative;
3925
3881
  display: flex;
3926
- gap: 0;
3927
- margin: 0;
3928
- padding: 0;
3929
- list-style: none;
3930
- overflow: hidden;
3931
- border-bottom: 1px solid var(--border);
3932
- }
3933
-
3934
- .slexkit-root .slex-tabs-list {
3935
- display: flex;
3936
- gap: 0;
3937
- margin: 0;
3938
- padding: 0;
3939
- list-style: none;
3940
- }
3941
-
3942
- .slexkit-root .slex-tabs-list li {
3943
- margin: 0;
3944
- padding: 0;
3945
- color: inherit;
3946
- font: inherit;
3947
- line-height: inherit;
3948
- list-style: none;
3949
- }
3950
-
3882
+ gap: 0;
3883
+ margin: 0;
3884
+ padding: 0;
3885
+ list-style: none;
3886
+ overflow: hidden;
3887
+ border-bottom: 1px solid var(--border);
3888
+ }
3889
+
3890
+ .slexkit-root .slex-tabs-list {
3891
+ display: flex;
3892
+ gap: 0;
3893
+ margin: 0;
3894
+ padding: 0;
3895
+ list-style: none;
3896
+ }
3897
+
3898
+ .slexkit-root .slex-tabs-list li {
3899
+ margin: 0;
3900
+ padding: 0;
3901
+ color: inherit;
3902
+ font: inherit;
3903
+ line-height: inherit;
3904
+ list-style: none;
3905
+ }
3906
+
3951
3907
  .slex-tabs-selected-indicator {
3952
3908
  position: absolute;
3953
3909
  z-index: 20;
@@ -3973,25 +3929,25 @@ body[data-mobile-nav-open] {
3973
3929
  .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
3974
3930
  flex-direction: column;
3975
3931
  border-right: 1px solid var(--border);
3976
- border-bottom: none;
3977
- }
3978
-
3979
- .slex-tabs-trigger {
3980
- position: relative;
3981
- padding: 0.5rem 1rem;
3982
- border: none;
3983
- border-radius: 0;
3984
- background: transparent;
3985
- color: var(--muted-foreground);
3986
- font-family: inherit;
3987
- font-size: 0.875rem;
3988
- font-weight: 500;
3989
- white-space: nowrap;
3932
+ border-bottom: none;
3933
+ }
3934
+
3935
+ .slex-tabs-trigger {
3936
+ position: relative;
3937
+ padding: 0.5rem 1rem;
3938
+ border: none;
3939
+ border-radius: 0;
3940
+ background: transparent;
3941
+ color: var(--muted-foreground);
3942
+ font-family: inherit;
3943
+ font-size: 0.875rem;
3944
+ font-weight: 500;
3945
+ white-space: nowrap;
3990
3946
  cursor: pointer;
3991
3947
  outline: none;
3992
3948
  user-select: none;
3993
3949
  }
3994
-
3950
+
3995
3951
  .slex-tabs-trigger--icon {
3996
3952
  display: inline-grid;
3997
3953
  width: var(--slex-control-height, 2.25rem);
@@ -4033,17 +3989,17 @@ body[data-mobile-nav-open] {
4033
3989
  .slex-tabs-trigger.slex-tabs-trigger--selected:hover:not([data-disabled]) {
4034
3990
  color: var(--primary);
4035
3991
  }
4036
-
4037
- .slex-tabs-trigger[data-disabled] {
4038
- opacity: 0.4;
4039
- cursor: not-allowed;
4040
- }
4041
-
4042
- .slex-tabs-trigger:focus-visible {
4043
- outline: 2px solid var(--ring);
4044
- outline-offset: -2px;
4045
- }
4046
-
3992
+
3993
+ .slex-tabs-trigger[data-disabled] {
3994
+ opacity: 0.4;
3995
+ cursor: not-allowed;
3996
+ }
3997
+
3998
+ .slex-tabs-trigger:focus-visible {
3999
+ outline: 2px solid var(--ring);
4000
+ outline-offset: -2px;
4001
+ }
4002
+
4047
4003
  .slex-tabs-content {
4048
4004
  margin-top: 0.75rem !important;
4049
4005
  border-radius: 0 !important;
@@ -4065,56 +4021,56 @@ body[data-mobile-nav-open] {
4065
4021
  }
4066
4022
 
4067
4023
  @keyframes slex-tabs-content-in {
4068
- from {
4069
- opacity: 0;
4070
- transform: translateY(2px);
4071
- }
4072
- to {
4073
- opacity: 1;
4074
- transform: translateY(0);
4075
- }
4076
- }
4077
-
4078
- .slex-tabs-content[hidden] {
4079
- display: none;
4080
- }
4081
-
4082
- @media (max-width: 640px) {
4083
- .slex-tabs-list {
4084
- overflow-x: auto;
4085
- scrollbar-width: none;
4086
- }
4087
-
4088
- .slex-tabs-list::-webkit-scrollbar {
4089
- display: none;
4090
- }
4091
-
4092
- .slex-tabs[data-orientation="vertical"] {
4093
- flex-direction: column;
4094
- }
4095
-
4096
- .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
4097
- flex-direction: row;
4098
- border-right: 0;
4099
- border-bottom: 1px solid var(--border);
4100
- }
4101
-
4024
+ from {
4025
+ opacity: 0;
4026
+ transform: translateY(2px);
4027
+ }
4028
+ to {
4029
+ opacity: 1;
4030
+ transform: translateY(0);
4031
+ }
4032
+ }
4033
+
4034
+ .slex-tabs-content[hidden] {
4035
+ display: none;
4036
+ }
4037
+
4038
+ @media (max-width: 640px) {
4039
+ .slex-tabs-list {
4040
+ overflow-x: auto;
4041
+ scrollbar-width: none;
4042
+ }
4043
+
4044
+ .slex-tabs-list::-webkit-scrollbar {
4045
+ display: none;
4046
+ }
4047
+
4048
+ .slex-tabs[data-orientation="vertical"] {
4049
+ flex-direction: column;
4050
+ }
4051
+
4052
+ .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
4053
+ flex-direction: row;
4054
+ border-right: 0;
4055
+ border-bottom: 1px solid var(--border);
4056
+ }
4057
+
4102
4058
  }
4103
4059
 
4104
4060
  /* components/choice.css */
4105
4061
 
4106
- .slex-checkbox-field,
4107
- .slex-radio-field {
4108
- display: inline-flex;
4109
- align-items: center;
4110
- gap: 0.5rem;
4111
- color: var(--foreground);
4112
- font-size: 0.875rem;
4113
- cursor: pointer;
4114
- user-select: none;
4115
- transition: color 150ms ease, opacity 150ms ease;
4116
- }
4117
-
4062
+ .slex-checkbox-field,
4063
+ .slex-radio-field {
4064
+ display: inline-flex;
4065
+ align-items: center;
4066
+ gap: 0.5rem;
4067
+ color: var(--foreground);
4068
+ font-size: 0.875rem;
4069
+ cursor: pointer;
4070
+ user-select: none;
4071
+ transition: color 150ms ease, opacity 150ms ease;
4072
+ }
4073
+
4118
4074
  .slex-checkbox-label,
4119
4075
  .slex-radio-label {
4120
4076
  display: inline-flex;
@@ -4122,151 +4078,151 @@ body[data-mobile-nav-open] {
4122
4078
  gap: 0.375rem;
4123
4079
  min-width: 0;
4124
4080
  color: var(--foreground);
4125
- line-height: 1.35;
4126
- transition: color 150ms ease;
4127
- }
4128
-
4129
- .slex-checkbox,
4130
- .slex-radio {
4131
- box-sizing: border-box;
4132
- position: relative;
4133
- display: inline-grid;
4134
- place-items: center;
4135
- flex: 0 0 auto;
4136
- width: 1rem;
4137
- height: 1rem;
4138
- margin: 0;
4139
- border: 1.5px solid var(--input);
4140
- color: var(--primary);
4141
- accent-color: var(--primary);
4142
- background: var(--background);
4143
- cursor: pointer;
4144
- appearance: none;
4145
- -webkit-appearance: none;
4146
- transition:
4147
- background-color 150ms ease,
4148
- border-color 150ms ease,
4149
- box-shadow 150ms ease,
4150
- transform 120ms ease;
4151
- }
4152
-
4153
- .slex-checkbox {
4154
- border-radius: calc(var(--radius) - 4px);
4155
- }
4156
-
4157
- .slex-radio {
4158
- border-radius: 999px;
4159
- }
4160
-
4161
- .slex-checkbox::after,
4162
- .slex-radio::after {
4163
- content: "";
4164
- display: block;
4165
- opacity: 0;
4166
- transform: scale(0.5);
4167
- transition: opacity 120ms ease, transform 140ms ease;
4168
- }
4169
-
4170
- .slex-checkbox::after {
4171
- width: 0.55rem;
4172
- height: 0.34rem;
4173
- border: solid var(--primary-foreground);
4174
- border-width: 0 0 2px 2px;
4175
- transform: translateY(-0.08rem) rotate(-45deg) scale(0.5);
4176
- }
4177
-
4178
- .slex-radio::after {
4179
- width: 0.45rem;
4180
- height: 0.45rem;
4181
- border-radius: 999px;
4182
- background: var(--primary-foreground);
4183
- }
4184
-
4185
- .slex-checkbox-field:hover .slex-checkbox:not(:disabled),
4186
- .slex-radio-field:hover .slex-radio:not(:disabled) {
4187
- border-color: color-mix(in oklab, var(--primary) 48%, var(--input));
4188
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
4189
- }
4190
-
4191
- .slex-checkbox-field:active .slex-checkbox:not(:disabled),
4192
- .slex-radio-field:active .slex-radio:not(:disabled) {
4193
- transform: scale(0.92);
4194
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
4195
- }
4196
-
4197
- .slex-checkbox:checked,
4198
- .slex-radio:checked {
4199
- border-color: var(--primary);
4200
- background: var(--primary);
4201
- }
4202
-
4203
- .slex-checkbox:checked::after,
4204
- .slex-radio:checked::after {
4205
- opacity: 1;
4206
- }
4207
-
4208
- .slex-checkbox:checked::after {
4209
- transform: translateY(-0.08rem) rotate(-45deg) scale(1);
4210
- }
4211
-
4212
- .slex-radio:checked::after {
4213
- transform: scale(1);
4214
- }
4215
-
4216
- .slex-checkbox-field:hover .slex-checkbox-label,
4217
- .slex-radio-field:hover .slex-radio-label {
4218
- color: var(--foreground);
4219
- }
4220
-
4221
- .slex-checkbox:focus-visible,
4222
- .slex-radio:focus-visible {
4223
- outline: 2px solid var(--ring);
4224
- outline-offset: 2px;
4225
- }
4226
-
4227
- .slex-radio-group {
4228
- display: flex;
4229
- flex-direction: column;
4230
- gap: 0.625rem;
4231
- }
4232
-
4081
+ line-height: 1.35;
4082
+ transition: color 150ms ease;
4083
+ }
4084
+
4085
+ .slex-checkbox,
4086
+ .slex-radio {
4087
+ box-sizing: border-box;
4088
+ position: relative;
4089
+ display: inline-grid;
4090
+ place-items: center;
4091
+ flex: 0 0 auto;
4092
+ width: 1rem;
4093
+ height: 1rem;
4094
+ margin: 0;
4095
+ border: 1.5px solid var(--input);
4096
+ color: var(--primary);
4097
+ accent-color: var(--primary);
4098
+ background: var(--background);
4099
+ cursor: pointer;
4100
+ appearance: none;
4101
+ -webkit-appearance: none;
4102
+ transition:
4103
+ background-color 150ms ease,
4104
+ border-color 150ms ease,
4105
+ box-shadow 150ms ease,
4106
+ transform 120ms ease;
4107
+ }
4108
+
4109
+ .slex-checkbox {
4110
+ border-radius: calc(var(--radius) - 4px);
4111
+ }
4112
+
4113
+ .slex-radio {
4114
+ border-radius: 999px;
4115
+ }
4116
+
4117
+ .slex-checkbox::after,
4118
+ .slex-radio::after {
4119
+ content: "";
4120
+ display: block;
4121
+ opacity: 0;
4122
+ transform: scale(0.5);
4123
+ transition: opacity 120ms ease, transform 140ms ease;
4124
+ }
4125
+
4126
+ .slex-checkbox::after {
4127
+ width: 0.55rem;
4128
+ height: 0.34rem;
4129
+ border: solid var(--primary-foreground);
4130
+ border-width: 0 0 2px 2px;
4131
+ transform: translateY(-0.08rem) rotate(-45deg) scale(0.5);
4132
+ }
4133
+
4134
+ .slex-radio::after {
4135
+ width: 0.45rem;
4136
+ height: 0.45rem;
4137
+ border-radius: 999px;
4138
+ background: var(--primary-foreground);
4139
+ }
4140
+
4141
+ .slex-checkbox-field:hover .slex-checkbox:not(:disabled),
4142
+ .slex-radio-field:hover .slex-radio:not(:disabled) {
4143
+ border-color: color-mix(in oklab, var(--primary) 48%, var(--input));
4144
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
4145
+ }
4146
+
4147
+ .slex-checkbox-field:active .slex-checkbox:not(:disabled),
4148
+ .slex-radio-field:active .slex-radio:not(:disabled) {
4149
+ transform: scale(0.92);
4150
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
4151
+ }
4152
+
4153
+ .slex-checkbox:checked,
4154
+ .slex-radio:checked {
4155
+ border-color: var(--primary);
4156
+ background: var(--primary);
4157
+ }
4158
+
4159
+ .slex-checkbox:checked::after,
4160
+ .slex-radio:checked::after {
4161
+ opacity: 1;
4162
+ }
4163
+
4164
+ .slex-checkbox:checked::after {
4165
+ transform: translateY(-0.08rem) rotate(-45deg) scale(1);
4166
+ }
4167
+
4168
+ .slex-radio:checked::after {
4169
+ transform: scale(1);
4170
+ }
4171
+
4172
+ .slex-checkbox-field:hover .slex-checkbox-label,
4173
+ .slex-radio-field:hover .slex-radio-label {
4174
+ color: var(--foreground);
4175
+ }
4176
+
4177
+ .slex-checkbox:focus-visible,
4178
+ .slex-radio:focus-visible {
4179
+ outline: 2px solid var(--ring);
4180
+ outline-offset: 2px;
4181
+ }
4182
+
4183
+ .slex-radio-group {
4184
+ display: flex;
4185
+ flex-direction: column;
4186
+ gap: 0.625rem;
4187
+ }
4188
+
4233
4189
  .slex-radio-group-label {
4234
4190
  display: inline-flex;
4235
4191
  align-items: center;
4236
4192
  gap: 0.375rem;
4237
4193
  min-width: 0;
4238
4194
  color: var(--foreground);
4239
- font-size: 0.875rem;
4240
- font-weight: 500;
4241
- }
4242
-
4243
- .slex-radio-group-list {
4244
- display: flex;
4245
- flex-direction: column;
4246
- gap: 0.5rem;
4247
- }
4248
-
4249
- .slex-radio-group[data-orientation="horizontal"] .slex-radio-group-list {
4250
- flex-direction: row;
4251
- flex-wrap: wrap;
4252
- }
4253
-
4254
- .slex-checkbox:disabled,
4255
- .slex-radio:disabled {
4256
- cursor: not-allowed;
4257
- opacity: 0.5;
4258
- box-shadow: none;
4259
- transform: none;
4260
- }
4261
-
4262
- .slex-checkbox-field:has(.slex-checkbox:disabled),
4263
- .slex-radio-field:has(.slex-radio:disabled) {
4264
- cursor: not-allowed;
4265
- opacity: 0.65;
4266
- }
4267
-
4268
- .slex-radio-indicator {
4269
- display: none;
4195
+ font-size: 0.875rem;
4196
+ font-weight: 500;
4197
+ }
4198
+
4199
+ .slex-radio-group-list {
4200
+ display: flex;
4201
+ flex-direction: column;
4202
+ gap: 0.5rem;
4203
+ }
4204
+
4205
+ .slex-radio-group[data-orientation="horizontal"] .slex-radio-group-list {
4206
+ flex-direction: row;
4207
+ flex-wrap: wrap;
4208
+ }
4209
+
4210
+ .slex-checkbox:disabled,
4211
+ .slex-radio:disabled {
4212
+ cursor: not-allowed;
4213
+ opacity: 0.5;
4214
+ box-shadow: none;
4215
+ transform: none;
4216
+ }
4217
+
4218
+ .slex-checkbox-field[data-disabled="true"],
4219
+ .slex-radio-field[data-disabled="true"] {
4220
+ cursor: not-allowed;
4221
+ opacity: 0.65;
4222
+ }
4223
+
4224
+ .slex-radio-indicator {
4225
+ display: none;
4270
4226
  }
4271
4227
 
4272
4228
  /* disclosure.css */