@seed-design/lynx-css 0.0.0-alpha-20260622094810

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 (301) hide show
  1. package/all.css +2137 -0
  2. package/all.min.css +1 -0
  3. package/base.css +643 -0
  4. package/base.min.css +1 -0
  5. package/package.json +60 -0
  6. package/recipes/action-button.css +489 -0
  7. package/recipes/action-button.d.ts +44 -0
  8. package/recipes/action-button.mjs +212 -0
  9. package/recipes/app-bar-main.css +67 -0
  10. package/recipes/app-bar-main.d.ts +36 -0
  11. package/recipes/app-bar-main.mjs +63 -0
  12. package/recipes/app-bar.css +101 -0
  13. package/recipes/app-bar.d.ts +32 -0
  14. package/recipes/app-bar.mjs +74 -0
  15. package/recipes/badge.css +157 -0
  16. package/recipes/badge.d.ts +32 -0
  17. package/recipes/badge.mjs +131 -0
  18. package/recipes/bottom-sheet-handle.css +19 -0
  19. package/recipes/bottom-sheet-handle.d.ts +21 -0
  20. package/recipes/bottom-sheet-handle.mjs +36 -0
  21. package/recipes/bottom-sheet.css +93 -0
  22. package/recipes/bottom-sheet.d.ts +28 -0
  23. package/recipes/bottom-sheet.mjs +76 -0
  24. package/recipes/checkbox-group.css +5 -0
  25. package/recipes/checkbox-group.d.ts +21 -0
  26. package/recipes/checkbox-group.mjs +36 -0
  27. package/recipes/checkbox.css +34 -0
  28. package/recipes/checkbox.d.ts +32 -0
  29. package/recipes/checkbox.mjs +53 -0
  30. package/recipes/checkmark.css +131 -0
  31. package/recipes/checkmark.d.ts +48 -0
  32. package/recipes/checkmark.mjs +220 -0
  33. package/recipes/progress-circle.css +80 -0
  34. package/recipes/progress-circle.d.ts +30 -0
  35. package/recipes/progress-circle.mjs +40 -0
  36. package/recipes/radio-group.css +5 -0
  37. package/recipes/radio-group.d.ts +21 -0
  38. package/recipes/radio-group.mjs +36 -0
  39. package/recipes/radio.css +34 -0
  40. package/recipes/radio.d.ts +32 -0
  41. package/recipes/radio.mjs +53 -0
  42. package/recipes/radiomark.css +94 -0
  43. package/recipes/radiomark.d.ts +40 -0
  44. package/recipes/radiomark.mjs +121 -0
  45. package/recipes/shared.mjs +48 -0
  46. package/recipes/switch.css +40 -0
  47. package/recipes/switch.d.ts +28 -0
  48. package/recipes/switch.mjs +49 -0
  49. package/recipes/switchmark.css +75 -0
  50. package/recipes/switchmark.d.ts +36 -0
  51. package/recipes/switchmark.mjs +90 -0
  52. package/recipes/tag-group-item.css +34 -0
  53. package/recipes/tag-group-item.d.ts +32 -0
  54. package/recipes/tag-group-item.mjs +55 -0
  55. package/recipes/tag-group.css +32 -0
  56. package/recipes/tag-group.d.ts +24 -0
  57. package/recipes/tag-group.mjs +48 -0
  58. package/vars/color/banner.d.ts +10 -0
  59. package/vars/color/banner.mjs +10 -0
  60. package/vars/color/bg.d.ts +76 -0
  61. package/vars/color/bg.mjs +42 -0
  62. package/vars/color/fg.d.ts +30 -0
  63. package/vars/color/fg.mjs +16 -0
  64. package/vars/color/index.d.ts +6 -0
  65. package/vars/color/index.mjs +6 -0
  66. package/vars/color/manner-temp/index.d.ts +10 -0
  67. package/vars/color/manner-temp/index.mjs +10 -0
  68. package/vars/color/manner-temp/l1.d.ts +2 -0
  69. package/vars/color/manner-temp/l1.mjs +2 -0
  70. package/vars/color/manner-temp/l10.d.ts +2 -0
  71. package/vars/color/manner-temp/l10.mjs +2 -0
  72. package/vars/color/manner-temp/l2.d.ts +2 -0
  73. package/vars/color/manner-temp/l2.mjs +2 -0
  74. package/vars/color/manner-temp/l3.d.ts +2 -0
  75. package/vars/color/manner-temp/l3.mjs +2 -0
  76. package/vars/color/manner-temp/l4.d.ts +2 -0
  77. package/vars/color/manner-temp/l4.mjs +2 -0
  78. package/vars/color/manner-temp/l5.d.ts +2 -0
  79. package/vars/color/manner-temp/l5.mjs +2 -0
  80. package/vars/color/manner-temp/l6.d.ts +2 -0
  81. package/vars/color/manner-temp/l6.mjs +2 -0
  82. package/vars/color/manner-temp/l7.d.ts +2 -0
  83. package/vars/color/manner-temp/l7.mjs +2 -0
  84. package/vars/color/manner-temp/l8.d.ts +2 -0
  85. package/vars/color/manner-temp/l8.mjs +2 -0
  86. package/vars/color/manner-temp/l9.d.ts +2 -0
  87. package/vars/color/manner-temp/l9.mjs +2 -0
  88. package/vars/color/palette.d.ts +94 -0
  89. package/vars/color/palette.mjs +94 -0
  90. package/vars/color/stroke.d.ts +31 -0
  91. package/vars/color/stroke.mjs +16 -0
  92. package/vars/component/accordion-item.d.ts +132 -0
  93. package/vars/component/accordion-item.mjs +126 -0
  94. package/vars/component/accordion.d.ts +22 -0
  95. package/vars/component/accordion.mjs +16 -0
  96. package/vars/component/action-button.d.ts +660 -0
  97. package/vars/component/action-button.mjs +541 -0
  98. package/vars/component/action-chip.d.ts +132 -0
  99. package/vars/component/action-chip.mjs +132 -0
  100. package/vars/component/action-sheet-close-button.d.ts +23 -0
  101. package/vars/component/action-sheet-close-button.mjs +23 -0
  102. package/vars/component/action-sheet-item.d.ts +36 -0
  103. package/vars/component/action-sheet-item.mjs +36 -0
  104. package/vars/component/action-sheet.d.ts +46 -0
  105. package/vars/component/action-sheet.mjs +46 -0
  106. package/vars/component/attachment-input-dropzone.d.ts +32 -0
  107. package/vars/component/attachment-input-dropzone.mjs +30 -0
  108. package/vars/component/attachment-input-item-action-button.d.ts +37 -0
  109. package/vars/component/attachment-input-item-action-button.mjs +37 -0
  110. package/vars/component/attachment-input-item-remove-button.d.ts +28 -0
  111. package/vars/component/attachment-input-item-remove-button.mjs +28 -0
  112. package/vars/component/attachment-input-item.d.ts +103 -0
  113. package/vars/component/attachment-input-item.mjs +102 -0
  114. package/vars/component/attachment-input-trigger.d.ts +46 -0
  115. package/vars/component/attachment-input-trigger.mjs +46 -0
  116. package/vars/component/attachment-input.d.ts +14 -0
  117. package/vars/component/attachment-input.mjs +12 -0
  118. package/vars/component/avatar-stack.d.ts +110 -0
  119. package/vars/component/avatar-stack.mjs +110 -0
  120. package/vars/component/avatar.d.ts +204 -0
  121. package/vars/component/avatar.mjs +162 -0
  122. package/vars/component/badge.d.ts +316 -0
  123. package/vars/component/badge.mjs +236 -0
  124. package/vars/component/bottom-sheet-close-button.d.ts +21 -0
  125. package/vars/component/bottom-sheet-close-button.mjs +21 -0
  126. package/vars/component/bottom-sheet-handle.d.ts +24 -0
  127. package/vars/component/bottom-sheet-handle.mjs +24 -0
  128. package/vars/component/bottom-sheet.d.ts +86 -0
  129. package/vars/component/bottom-sheet.mjs +86 -0
  130. package/vars/component/callout.d.ts +229 -0
  131. package/vars/component/callout.mjs +197 -0
  132. package/vars/component/checkbox-group.d.ts +9 -0
  133. package/vars/component/checkbox-group.mjs +9 -0
  134. package/vars/component/checkbox.d.ts +53 -0
  135. package/vars/component/checkbox.mjs +53 -0
  136. package/vars/component/checkmark.d.ts +195 -0
  137. package/vars/component/checkmark.mjs +165 -0
  138. package/vars/component/chip-tab.d.ts +121 -0
  139. package/vars/component/chip-tab.mjs +121 -0
  140. package/vars/component/chip-tablist.d.ts +24 -0
  141. package/vars/component/chip-tablist.mjs +24 -0
  142. package/vars/component/chip.d.ts +321 -0
  143. package/vars/component/chip.mjs +303 -0
  144. package/vars/component/content-placeholder.d.ts +28 -0
  145. package/vars/component/content-placeholder.mjs +27 -0
  146. package/vars/component/contextual-floating-button.d.ts +144 -0
  147. package/vars/component/contextual-floating-button.mjs +132 -0
  148. package/vars/component/control-chip.d.ts +158 -0
  149. package/vars/component/control-chip.mjs +158 -0
  150. package/vars/component/dialog.d.ts +52 -0
  151. package/vars/component/dialog.mjs +52 -0
  152. package/vars/component/divider.d.ts +9 -0
  153. package/vars/component/divider.mjs +9 -0
  154. package/vars/component/extended-action-sheet-close-button.d.ts +24 -0
  155. package/vars/component/extended-action-sheet-close-button.mjs +24 -0
  156. package/vars/component/extended-action-sheet-item.d.ts +46 -0
  157. package/vars/component/extended-action-sheet-item.mjs +46 -0
  158. package/vars/component/extended-action-sheet.d.ts +55 -0
  159. package/vars/component/extended-action-sheet.mjs +55 -0
  160. package/vars/component/extended-fab.d.ts +88 -0
  161. package/vars/component/extended-fab.mjs +82 -0
  162. package/vars/component/fab.d.ts +21 -0
  163. package/vars/component/fab.mjs +21 -0
  164. package/vars/component/field-label.d.ts +25 -0
  165. package/vars/component/field-label.mjs +25 -0
  166. package/vars/component/field.d.ts +78 -0
  167. package/vars/component/field.mjs +72 -0
  168. package/vars/component/floating-action-button.d.ts +60 -0
  169. package/vars/component/floating-action-button.mjs +54 -0
  170. package/vars/component/help-bubble.d.ts +52 -0
  171. package/vars/component/help-bubble.mjs +50 -0
  172. package/vars/component/identity-placeholder.d.ts +12 -0
  173. package/vars/component/identity-placeholder.mjs +12 -0
  174. package/vars/component/image-frame-floater.d.ts +10 -0
  175. package/vars/component/image-frame-floater.mjs +9 -0
  176. package/vars/component/image-frame-indicator.d.ts +20 -0
  177. package/vars/component/image-frame-indicator.mjs +18 -0
  178. package/vars/component/image-frame-reaction-button.d.ts +35 -0
  179. package/vars/component/image-frame-reaction-button.mjs +26 -0
  180. package/vars/component/image-frame.d.ts +27 -0
  181. package/vars/component/image-frame.mjs +18 -0
  182. package/vars/component/index.d.ts +90 -0
  183. package/vars/component/index.mjs +90 -0
  184. package/vars/component/inline-banner.d.ts +191 -0
  185. package/vars/component/inline-banner.mjs +191 -0
  186. package/vars/component/input-button.d.ts +162 -0
  187. package/vars/component/input-button.mjs +155 -0
  188. package/vars/component/link-content.d.ts +58 -0
  189. package/vars/component/link-content.mjs +58 -0
  190. package/vars/component/list-header.d.ts +29 -0
  191. package/vars/component/list-header.mjs +29 -0
  192. package/vars/component/list-item.d.ts +89 -0
  193. package/vars/component/list-item.mjs +87 -0
  194. package/vars/component/manner-temp-badge.d.ts +117 -0
  195. package/vars/component/manner-temp-badge.mjs +117 -0
  196. package/vars/component/manner-temp.d.ts +88 -0
  197. package/vars/component/manner-temp.mjs +88 -0
  198. package/vars/component/menu-item.d.ts +129 -0
  199. package/vars/component/menu-item.mjs +117 -0
  200. package/vars/component/menu-sheet-close-button.d.ts +24 -0
  201. package/vars/component/menu-sheet-close-button.mjs +24 -0
  202. package/vars/component/menu-sheet-item.d.ts +73 -0
  203. package/vars/component/menu-sheet-item.mjs +61 -0
  204. package/vars/component/menu-sheet.d.ts +56 -0
  205. package/vars/component/menu-sheet.mjs +56 -0
  206. package/vars/component/menu.d.ts +68 -0
  207. package/vars/component/menu.mjs +60 -0
  208. package/vars/component/notification-badge.d.ts +48 -0
  209. package/vars/component/notification-badge.mjs +42 -0
  210. package/vars/component/page-banner.d.ts +382 -0
  211. package/vars/component/page-banner.mjs +336 -0
  212. package/vars/component/progress-circle.d.ts +88 -0
  213. package/vars/component/progress-circle.mjs +67 -0
  214. package/vars/component/radio-group.d.ts +9 -0
  215. package/vars/component/radio-group.mjs +9 -0
  216. package/vars/component/radio.d.ts +53 -0
  217. package/vars/component/radio.mjs +53 -0
  218. package/vars/component/radiomark.d.ts +117 -0
  219. package/vars/component/radiomark.mjs +117 -0
  220. package/vars/component/reaction-button.d.ts +136 -0
  221. package/vars/component/reaction-button.mjs +136 -0
  222. package/vars/component/scroll-fog.d.ts +11 -0
  223. package/vars/component/scroll-fog.mjs +11 -0
  224. package/vars/component/segmented-control-indicator.d.ts +24 -0
  225. package/vars/component/segmented-control-indicator.mjs +24 -0
  226. package/vars/component/segmented-control-item.d.ts +41 -0
  227. package/vars/component/segmented-control-item.mjs +41 -0
  228. package/vars/component/segmented-control.d.ts +11 -0
  229. package/vars/component/segmented-control.mjs +11 -0
  230. package/vars/component/select-box-checkmark.d.ts +40 -0
  231. package/vars/component/select-box-checkmark.mjs +40 -0
  232. package/vars/component/select-box-group.d.ts +10 -0
  233. package/vars/component/select-box-group.mjs +10 -0
  234. package/vars/component/select-box.d.ts +107 -0
  235. package/vars/component/select-box.mjs +102 -0
  236. package/vars/component/side-panel-close-button.d.ts +23 -0
  237. package/vars/component/side-panel-close-button.mjs +23 -0
  238. package/vars/component/side-panel.d.ts +94 -0
  239. package/vars/component/side-panel.mjs +83 -0
  240. package/vars/component/skeleton.d.ts +76 -0
  241. package/vars/component/skeleton.mjs +58 -0
  242. package/vars/component/slider-thumb.d.ts +25 -0
  243. package/vars/component/slider-thumb.mjs +25 -0
  244. package/vars/component/slider-tick.d.ts +23 -0
  245. package/vars/component/slider-tick.mjs +23 -0
  246. package/vars/component/slider.d.ts +78 -0
  247. package/vars/component/slider.mjs +75 -0
  248. package/vars/component/snackbar.d.ts +65 -0
  249. package/vars/component/snackbar.mjs +65 -0
  250. package/vars/component/switch.d.ts +53 -0
  251. package/vars/component/switch.mjs +53 -0
  252. package/vars/component/switchmark.d.ts +112 -0
  253. package/vars/component/switchmark.mjs +112 -0
  254. package/vars/component/tab.d.ts +47 -0
  255. package/vars/component/tab.mjs +47 -0
  256. package/vars/component/tablist.d.ts +51 -0
  257. package/vars/component/tablist.mjs +51 -0
  258. package/vars/component/tag-group-item.d.ts +122 -0
  259. package/vars/component/tag-group-item.mjs +122 -0
  260. package/vars/component/tag-group.d.ts +34 -0
  261. package/vars/component/tag-group.mjs +34 -0
  262. package/vars/component/text-button.d.ts +23 -0
  263. package/vars/component/text-button.mjs +23 -0
  264. package/vars/component/text-input.d.ts +292 -0
  265. package/vars/component/text-input.mjs +263 -0
  266. package/vars/component/toggle-button.d.ts +213 -0
  267. package/vars/component/toggle-button.mjs +207 -0
  268. package/vars/component/top-navigation-icon-button.d.ts +36 -0
  269. package/vars/component/top-navigation-icon-button.mjs +36 -0
  270. package/vars/component/top-navigation-text-button.d.ts +52 -0
  271. package/vars/component/top-navigation-text-button.mjs +51 -0
  272. package/vars/component/top-navigation.d.ts +102 -0
  273. package/vars/component/top-navigation.mjs +94 -0
  274. package/vars/component/typography.d.ts +956 -0
  275. package/vars/component/typography.mjs +785 -0
  276. package/vars/dimension/index.d.ts +22 -0
  277. package/vars/dimension/index.mjs +22 -0
  278. package/vars/dimension/spacing-x.d.ts +4 -0
  279. package/vars/dimension/spacing-x.mjs +2 -0
  280. package/vars/dimension/spacing-y.d.ts +8 -0
  281. package/vars/dimension/spacing-y.mjs +4 -0
  282. package/vars/duration.d.ts +8 -0
  283. package/vars/duration.mjs +8 -0
  284. package/vars/font-size.d.ts +46 -0
  285. package/vars/font-size.mjs +28 -0
  286. package/vars/font-weight.d.ts +3 -0
  287. package/vars/font-weight.mjs +3 -0
  288. package/vars/gradient.d.ts +11 -0
  289. package/vars/gradient.mjs +6 -0
  290. package/vars/index.d.ts +51 -0
  291. package/vars/index.mjs +1 -0
  292. package/vars/line-height.d.ts +46 -0
  293. package/vars/line-height.mjs +28 -0
  294. package/vars/radius.d.ts +11 -0
  295. package/vars/radius.mjs +11 -0
  296. package/vars/shadow.d.ts +4 -0
  297. package/vars/shadow.mjs +3 -0
  298. package/vars/timing-function.d.ts +7 -0
  299. package/vars/timing-function.mjs +7 -0
  300. package/vars/vars.d.ts +10 -0
  301. package/vars/vars.mjs +10 -0
@@ -0,0 +1,34 @@
1
+ .seed-radio__root {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ position: relative;
5
+ gap: var(--seed-dimension-x2)
6
+ }
7
+ .seed-radio__label {
8
+ color: var(--seed-color-fg-neutral)
9
+ }
10
+ .seed-radio__label--weight_regular {
11
+ font-weight: var(--seed-font-weight-regular)
12
+ }
13
+ .seed-radio__label--weight_bold {
14
+ font-weight: var(--seed-font-weight-bold)
15
+ }
16
+ .seed-radio__root--size_medium {
17
+ min-height: var(--seed-dimension-x8);
18
+ --radiomark-margin-top: calc((var(--seed-dimension-x8) - var(--seed-dimension-x5)) / 2)
19
+ }
20
+ .seed-radio__label--size_medium {
21
+ font-size: var(--seed-font-size-t4);
22
+ line-height: var(--seed-line-height-t4)
23
+ }
24
+ .seed-radio__root--size_large {
25
+ min-height: var(--seed-dimension-x9);
26
+ --radiomark-margin-top: calc((var(--seed-dimension-x9) - var(--seed-dimension-x6)) / 2)
27
+ }
28
+ .seed-radio__label--size_large {
29
+ font-size: var(--seed-font-size-t5);
30
+ line-height: var(--seed-line-height-t5)
31
+ }
32
+ .seed-radio__label--disabled_true {
33
+ color: var(--seed-color-fg-disabled)
34
+ }
@@ -0,0 +1,32 @@
1
+ declare interface RadioVariant {
2
+ /**
3
+ * @default "regular"
4
+ */
5
+ weight: "regular" | "bold";
6
+ /**
7
+ * @default "medium"
8
+ */
9
+ size: "medium" | "large";
10
+ /**
11
+ * @default false
12
+ */
13
+ disabled: boolean;
14
+ }
15
+
16
+ declare type RadioVariantMap = {
17
+ [key in keyof RadioVariant]: Array<RadioVariant[key]>;
18
+ };
19
+
20
+ export declare type RadioVariantProps = Partial<RadioVariant>;
21
+
22
+ export declare type RadioSlotName = "root" | "label";
23
+
24
+ export declare const radioVariantMap: RadioVariantMap;
25
+
26
+ export declare const radio: ((
27
+ props?: RadioVariantProps,
28
+ ) => Record<RadioSlotName, string>) & {
29
+ splitVariantProps: <T extends RadioVariantProps>(
30
+ props: T,
31
+ ) => [RadioVariantProps, Omit<T, keyof RadioVariantProps>];
32
+ }
@@ -0,0 +1,53 @@
1
+ import './radio.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const radioSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-radio__root"
8
+ ],
9
+ [
10
+ "label",
11
+ "seed-radio__label"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {
16
+ "weight": "regular",
17
+ "size": "medium",
18
+ "disabled": false
19
+ };
20
+
21
+ const compoundVariants = [];
22
+
23
+ export const radioVariantMap = {
24
+ "weight": [
25
+ "regular",
26
+ "bold"
27
+ ],
28
+ "size": [
29
+ "medium",
30
+ "large"
31
+ ],
32
+ "disabled": [
33
+ true,
34
+ false
35
+ ]
36
+ };
37
+
38
+ export const radioVariantKeys = Object.keys(radioVariantMap);
39
+
40
+ export function radio(props) {
41
+ return Object.fromEntries(
42
+ radioSlotNames.map(([slot, className]) => {
43
+ return [
44
+ slot,
45
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
46
+ ];
47
+ }),
48
+ );
49
+ }
50
+
51
+ Object.assign(radio, { splitVariantProps: (props) => splitVariantProps(props, radioVariantMap) });
52
+
53
+ // @recipe(seed): radio
@@ -0,0 +1,94 @@
1
+ .seed-radiomark__root {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ flex: none;
7
+ margin-top: var(--radiomark-margin-top, 0);
8
+ border-width: 1px;
9
+ border-style: solid;
10
+ border-color: var(--seed-color-stroke-neutral-weak);
11
+ border-radius: var(--seed-radius-full);
12
+ transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing)
13
+ }
14
+ .seed-radiomark__icon {
15
+ border-radius: var(--seed-radius-full)
16
+ }
17
+ .seed-radiomark__root--size_medium {
18
+ width: var(--seed-dimension-x5);
19
+ height: var(--seed-dimension-x5)
20
+ }
21
+ .seed-radiomark__icon--size_medium {
22
+ width: var(--seed-dimension-x2);
23
+ height: var(--seed-dimension-x2)
24
+ }
25
+ .seed-radiomark__root--size_large {
26
+ width: var(--seed-dimension-x6);
27
+ height: var(--seed-dimension-x6)
28
+ }
29
+ .seed-radiomark__icon--size_large {
30
+ width: var(--seed-dimension-x2_5);
31
+ height: var(--seed-dimension-x2_5)
32
+ }
33
+ .seed-radiomark__icon--checked_false {
34
+ opacity: 0
35
+ }
36
+ .seed-radiomark__root--tone_brand-checked_true-disabled_false {
37
+ background-color: var(--seed-color-bg-brand-solid);
38
+ border-width: 0px;
39
+ border-color: #00000000
40
+ }
41
+ .seed-radiomark__icon--tone_brand-checked_true-disabled_false {
42
+ color: var(--seed-color-palette-static-white);
43
+ background-color: var(--seed-color-palette-static-white)
44
+ }
45
+ .seed-radiomark__root--tone_neutral-checked_true-disabled_false {
46
+ background-color: var(--seed-color-bg-neutral-inverted);
47
+ border-width: 0px;
48
+ border-color: #00000000
49
+ }
50
+ .seed-radiomark__icon--tone_neutral-checked_true-disabled_false {
51
+ color: var(--seed-color-fg-neutral-inverted);
52
+ background-color: var(--seed-color-fg-neutral-inverted)
53
+ }
54
+ .seed-radiomark__root--tone_brand-checked_false-disabled_true {
55
+ background-color: var(--seed-color-palette-gray-300)
56
+ }
57
+ .seed-radiomark__root--tone_neutral-checked_false-disabled_true {
58
+ background-color: var(--seed-color-palette-gray-300)
59
+ }
60
+ .seed-radiomark__root--tone_brand-checked_true-disabled_true {
61
+ background-color: var(--seed-color-bg-transparent);
62
+ border-width: 1px;
63
+ border-color: var(--seed-color-palette-gray-300)
64
+ }
65
+ .seed-radiomark__icon--tone_brand-checked_true-disabled_true {
66
+ color: var(--seed-color-palette-gray-300);
67
+ background-color: var(--seed-color-palette-gray-300)
68
+ }
69
+ .seed-radiomark__root--tone_neutral-checked_true-disabled_true {
70
+ background-color: var(--seed-color-bg-transparent);
71
+ border-width: 1px;
72
+ border-color: var(--seed-color-palette-gray-300)
73
+ }
74
+ .seed-radiomark__icon--tone_neutral-checked_true-disabled_true {
75
+ color: var(--seed-color-palette-gray-300);
76
+ background-color: var(--seed-color-palette-gray-300)
77
+ }
78
+ .seed-radiomark__icon--size_medium-checked_true-disabled_true {
79
+ width: var(--seed-dimension-x2_5);
80
+ height: var(--seed-dimension-x2_5)
81
+ }
82
+ .seed-radiomark__icon--size_large-checked_true-disabled_true {
83
+ width: var(--seed-dimension-x3);
84
+ height: var(--seed-dimension-x3)
85
+ }
86
+ .seed-radiomark__root--pressed_true-checked_false-disabled_false {
87
+ background-color: var(--seed-color-bg-transparent-pressed)
88
+ }
89
+ .seed-radiomark__root--tone_brand-pressed_true-checked_true-disabled_false {
90
+ background-color: var(--seed-color-bg-brand-solid-pressed)
91
+ }
92
+ .seed-radiomark__root--tone_neutral-pressed_true-checked_true-disabled_false {
93
+ background-color: var(--seed-color-bg-neutral-inverted-pressed)
94
+ }
@@ -0,0 +1,40 @@
1
+ declare interface RadiomarkVariant {
2
+ /**
3
+ * @default "brand"
4
+ */
5
+ tone: "brand" | "neutral";
6
+ /**
7
+ * @default "medium"
8
+ */
9
+ size: "medium" | "large";
10
+ /**
11
+ * @default false
12
+ */
13
+ checked: boolean;
14
+ /**
15
+ * @default false
16
+ */
17
+ disabled: boolean;
18
+ /**
19
+ * @default false
20
+ */
21
+ pressed: boolean;
22
+ }
23
+
24
+ declare type RadiomarkVariantMap = {
25
+ [key in keyof RadiomarkVariant]: Array<RadiomarkVariant[key]>;
26
+ };
27
+
28
+ export declare type RadiomarkVariantProps = Partial<RadiomarkVariant>;
29
+
30
+ export declare type RadiomarkSlotName = "root" | "icon";
31
+
32
+ export declare const radiomarkVariantMap: RadiomarkVariantMap;
33
+
34
+ export declare const radiomark: ((
35
+ props?: RadiomarkVariantProps,
36
+ ) => Record<RadiomarkSlotName, string>) & {
37
+ splitVariantProps: <T extends RadiomarkVariantProps>(
38
+ props: T,
39
+ ) => [RadiomarkVariantProps, Omit<T, keyof RadiomarkVariantProps>];
40
+ }
@@ -0,0 +1,121 @@
1
+ import './radiomark.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const radiomarkSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-radiomark__root"
8
+ ],
9
+ [
10
+ "icon",
11
+ "seed-radiomark__icon"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {
16
+ "tone": "brand",
17
+ "size": "medium",
18
+ "checked": false,
19
+ "disabled": false,
20
+ "pressed": false
21
+ };
22
+
23
+ const compoundVariants = [
24
+ {
25
+ "tone": "brand",
26
+ "checked": true,
27
+ "disabled": false
28
+ },
29
+ {
30
+ "tone": "neutral",
31
+ "checked": true,
32
+ "disabled": false
33
+ },
34
+ {
35
+ "tone": "brand",
36
+ "checked": false,
37
+ "disabled": true
38
+ },
39
+ {
40
+ "tone": "neutral",
41
+ "checked": false,
42
+ "disabled": true
43
+ },
44
+ {
45
+ "tone": "brand",
46
+ "checked": true,
47
+ "disabled": true
48
+ },
49
+ {
50
+ "tone": "neutral",
51
+ "checked": true,
52
+ "disabled": true
53
+ },
54
+ {
55
+ "size": "medium",
56
+ "checked": true,
57
+ "disabled": true
58
+ },
59
+ {
60
+ "size": "large",
61
+ "checked": true,
62
+ "disabled": true
63
+ },
64
+ {
65
+ "pressed": true,
66
+ "checked": false,
67
+ "disabled": false
68
+ },
69
+ {
70
+ "tone": "brand",
71
+ "pressed": true,
72
+ "checked": true,
73
+ "disabled": false
74
+ },
75
+ {
76
+ "tone": "neutral",
77
+ "pressed": true,
78
+ "checked": true,
79
+ "disabled": false
80
+ }
81
+ ];
82
+
83
+ export const radiomarkVariantMap = {
84
+ "tone": [
85
+ "brand",
86
+ "neutral"
87
+ ],
88
+ "size": [
89
+ "medium",
90
+ "large"
91
+ ],
92
+ "checked": [
93
+ true,
94
+ false
95
+ ],
96
+ "disabled": [
97
+ true,
98
+ false
99
+ ],
100
+ "pressed": [
101
+ true,
102
+ false
103
+ ]
104
+ };
105
+
106
+ export const radiomarkVariantKeys = Object.keys(radiomarkVariantMap);
107
+
108
+ export function radiomark(props) {
109
+ return Object.fromEntries(
110
+ radiomarkSlotNames.map(([slot, className]) => {
111
+ return [
112
+ slot,
113
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
114
+ ];
115
+ }),
116
+ );
117
+ }
118
+
119
+ Object.assign(radiomark, { splitVariantProps: (props) => splitVariantProps(props, radiomarkVariantMap) });
120
+
121
+ // @recipe(seed): radiomark
@@ -0,0 +1,48 @@
1
+ export const createClassName = (className, variants, compoundVariants = []) => {
2
+ const variantKeys = Object.keys(variants)
3
+
4
+ const variantValues = variantKeys.map((key) => variants[key]);
5
+
6
+ const variantClassName = variantKeys
7
+ .map((key, index) => `${className}--${key}_${variantValues[index]}`)
8
+ .join(" ");
9
+
10
+ const compountVariantClassName = compoundVariants
11
+ .filter((compoundVariant) =>
12
+ Object.keys(compoundVariant).every((key) => compoundVariant[key] === variants[key]),
13
+ )
14
+ .map(
15
+ (compoundVariant) =>
16
+ `${className}--${Object.keys(compoundVariant)
17
+ .map((key) => {
18
+ return `${key}_${compoundVariant[key]}`;
19
+ })
20
+ .join("-")}`,
21
+ )
22
+ .join(" ");
23
+
24
+ return [className, variantClassName, compountVariantClassName].filter(Boolean).join(" ");
25
+ };
26
+
27
+ export function mergeVariants(a, b) {
28
+ const result = { ...a };
29
+ for (const k in b) {
30
+ if (b[k] != null) {
31
+ result[k] = b[k];
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+
37
+ export function splitVariantProps(props, variantMap) {
38
+ const variantProps = {};
39
+ const otherProps = {};
40
+ for (const key in props) {
41
+ if (variantMap[key] != null) {
42
+ variantProps[key] = props[key];
43
+ } else {
44
+ otherProps[key] = props[key];
45
+ }
46
+ }
47
+ return [variantProps, otherProps];
48
+ }
@@ -0,0 +1,40 @@
1
+ .seed-switch__root {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ position: relative
5
+ }
6
+ .seed-switch__label {
7
+ font-weight: var(--seed-font-weight-medium);
8
+ color: var(--seed-color-fg-neutral);
9
+ transition: opacity var(--seed-duration-d1) var(--seed-timing-function-easing)
10
+ }
11
+ .seed-switch__root--size_16 {
12
+ min-height: var(--seed-dimension-x6);
13
+ gap: var(--seed-dimension-x1_5)
14
+ }
15
+ .seed-switch__label--size_16 {
16
+ font-size: var(--seed-font-size-t3);
17
+ line-height: var(--seed-line-height-t3);
18
+ margin-top: calc(var(--seed-dimension-x6) / 2 - var(--seed-line-height-t3) / 2)
19
+ }
20
+ .seed-switch__root--size_24 {
21
+ min-height: var(--seed-dimension-x6);
22
+ gap: var(--seed-dimension-x2)
23
+ }
24
+ .seed-switch__label--size_24 {
25
+ font-size: var(--seed-font-size-t4);
26
+ line-height: var(--seed-line-height-t4);
27
+ margin-top: calc(var(--seed-dimension-x6) / 2 - var(--seed-line-height-t4) / 2)
28
+ }
29
+ .seed-switch__root--size_32 {
30
+ min-height: var(--seed-dimension-x8);
31
+ gap: var(--seed-dimension-x2_5)
32
+ }
33
+ .seed-switch__label--size_32 {
34
+ font-size: var(--seed-font-size-t5);
35
+ line-height: var(--seed-line-height-t5);
36
+ margin-top: calc(var(--seed-dimension-x8) / 2 - var(--seed-line-height-t5) / 2)
37
+ }
38
+ .seed-switch__label--disabled_true {
39
+ opacity: 0.58
40
+ }
@@ -0,0 +1,28 @@
1
+ declare interface SwitchVariant {
2
+ /**
3
+ * @default 32
4
+ */
5
+ size: "16" | "24" | "32";
6
+ /**
7
+ * @default false
8
+ */
9
+ disabled: boolean;
10
+ }
11
+
12
+ declare type SwitchVariantMap = {
13
+ [key in keyof SwitchVariant]: Array<SwitchVariant[key]>;
14
+ };
15
+
16
+ export declare type SwitchVariantProps = Partial<SwitchVariant>;
17
+
18
+ export declare type SwitchSlotName = "root" | "label";
19
+
20
+ export declare const switchVariantMap: SwitchVariantMap;
21
+
22
+ export declare const switchStyle: ((
23
+ props?: SwitchVariantProps,
24
+ ) => Record<SwitchSlotName, string>) & {
25
+ splitVariantProps: <T extends SwitchVariantProps>(
26
+ props: T,
27
+ ) => [SwitchVariantProps, Omit<T, keyof SwitchVariantProps>];
28
+ }
@@ -0,0 +1,49 @@
1
+ import './switch.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const switchSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-switch__root"
8
+ ],
9
+ [
10
+ "label",
11
+ "seed-switch__label"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {
16
+ "size": 32,
17
+ "disabled": false
18
+ };
19
+
20
+ const compoundVariants = [];
21
+
22
+ export const switchVariantMap = {
23
+ "size": [
24
+ "16",
25
+ "24",
26
+ "32"
27
+ ],
28
+ "disabled": [
29
+ true,
30
+ false
31
+ ]
32
+ };
33
+
34
+ export const switchVariantKeys = Object.keys(switchVariantMap);
35
+
36
+ export function switchStyle(props) {
37
+ return Object.fromEntries(
38
+ switchSlotNames.map(([slot, className]) => {
39
+ return [
40
+ slot,
41
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
42
+ ];
43
+ }),
44
+ );
45
+ }
46
+
47
+ Object.assign(switchStyle, { splitVariantProps: (props) => splitVariantProps(props, switchVariantMap) });
48
+
49
+ // @recipe(seed): switch
@@ -0,0 +1,75 @@
1
+ .seed-switchmark__root {
2
+ display: flex;
3
+ position: relative;
4
+ border-radius: var(--seed-radius-full);
5
+ background-color: var(--seed-color-palette-gray-600);
6
+ transition: background-color var(--seed-duration-d1) var(--seed-timing-function-easing) 20ms, opacity var(--seed-duration-d1) var(--seed-timing-function-easing)
7
+ }
8
+ .seed-switchmark__thumb {
9
+ border-radius: var(--seed-radius-full);
10
+ transition: transform var(--seed-duration-d3) var(--seed-timing-function-easing), background-color var(--seed-duration-d1) var(--seed-timing-function-easing) 20ms;
11
+ transform: scale(0.8)
12
+ }
13
+ .seed-switchmark__thumb--tone_neutral {
14
+ background-color: var(--seed-color-fg-neutral-inverted)
15
+ }
16
+ .seed-switchmark__thumb--tone_brand {
17
+ background-color: var(--seed-color-palette-static-white)
18
+ }
19
+ .seed-switchmark__root--size_16 {
20
+ min-width: 26px;
21
+ min-height: 16px;
22
+ margin-top: calc((var(--seed-dimension-x6) - 16px) / 2);
23
+ margin-bottom: calc((var(--seed-dimension-x6) - 16px) / 2);
24
+ padding: 2px 2px
25
+ }
26
+ .seed-switchmark__thumb--size_16 {
27
+ width: 12px;
28
+ height: 12px
29
+ }
30
+ .seed-switchmark__root--size_24 {
31
+ min-width: 38px;
32
+ min-height: 24px;
33
+ margin-top: calc((var(--seed-dimension-x6) - 24px) / 2);
34
+ margin-bottom: calc((var(--seed-dimension-x6) - 24px) / 2);
35
+ padding: 2px 2px
36
+ }
37
+ .seed-switchmark__thumb--size_24 {
38
+ width: 20px;
39
+ height: 20px
40
+ }
41
+ .seed-switchmark__root--size_32 {
42
+ min-width: 52px;
43
+ min-height: 32px;
44
+ margin-top: calc((var(--seed-dimension-x8) - 32px) / 2);
45
+ margin-bottom: calc((var(--seed-dimension-x8) - 32px) / 2);
46
+ padding: 3px 3px
47
+ }
48
+ .seed-switchmark__thumb--size_32 {
49
+ width: 26px;
50
+ height: 26px
51
+ }
52
+ .seed-switchmark__root--disabled_true {
53
+ opacity: 0.38
54
+ }
55
+ .seed-switchmark__root--tone_brand-checked_true {
56
+ background-color: var(--seed-color-bg-brand-solid)
57
+ }
58
+ .seed-switchmark__root--tone_neutral-checked_true-disabled_false {
59
+ background-color: var(--seed-color-bg-neutral-inverted)
60
+ }
61
+ .seed-switchmark__root--tone_neutral-checked_true-disabled_true {
62
+ background-color: var(--seed-color-palette-gray-600)
63
+ }
64
+ .seed-switchmark__thumb--tone_neutral-disabled_true {
65
+ background-color: var(--seed-color-palette-static-black-alpha-700)
66
+ }
67
+ .seed-switchmark__thumb--size_32-checked_true {
68
+ transform: scale(1) translateX(20px)
69
+ }
70
+ .seed-switchmark__thumb--size_24-checked_true {
71
+ transform: scale(1) translateX(14px)
72
+ }
73
+ .seed-switchmark__thumb--size_16-checked_true {
74
+ transform: scale(1) translateX(10px)
75
+ }
@@ -0,0 +1,36 @@
1
+ declare interface SwitchmarkVariant {
2
+ /**
3
+ * @default "brand"
4
+ */
5
+ tone: "neutral" | "brand";
6
+ /**
7
+ * @default "32"
8
+ */
9
+ size: "16" | "24" | "32";
10
+ /**
11
+ * @default false
12
+ */
13
+ checked: boolean;
14
+ /**
15
+ * @default false
16
+ */
17
+ disabled: boolean;
18
+ }
19
+
20
+ declare type SwitchmarkVariantMap = {
21
+ [key in keyof SwitchmarkVariant]: Array<SwitchmarkVariant[key]>;
22
+ };
23
+
24
+ export declare type SwitchmarkVariantProps = Partial<SwitchmarkVariant>;
25
+
26
+ export declare type SwitchmarkSlotName = "root" | "thumb";
27
+
28
+ export declare const switchmarkVariantMap: SwitchmarkVariantMap;
29
+
30
+ export declare const switchmark: ((
31
+ props?: SwitchmarkVariantProps,
32
+ ) => Record<SwitchmarkSlotName, string>) & {
33
+ splitVariantProps: <T extends SwitchmarkVariantProps>(
34
+ props: T,
35
+ ) => [SwitchmarkVariantProps, Omit<T, keyof SwitchmarkVariantProps>];
36
+ }