@seed-design/lynx-css 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/all.css +1730 -0
  2. package/all.min.css +1 -0
  3. package/base.css +625 -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/bottom-sheet-handle.css +18 -0
  10. package/recipes/bottom-sheet-handle.d.ts +21 -0
  11. package/recipes/bottom-sheet-handle.mjs +36 -0
  12. package/recipes/bottom-sheet.css +91 -0
  13. package/recipes/bottom-sheet.d.ts +28 -0
  14. package/recipes/bottom-sheet.mjs +76 -0
  15. package/recipes/checkbox-group.css +5 -0
  16. package/recipes/checkbox-group.d.ts +21 -0
  17. package/recipes/checkbox-group.mjs +36 -0
  18. package/recipes/checkbox.css +34 -0
  19. package/recipes/checkbox.d.ts +32 -0
  20. package/recipes/checkbox.mjs +53 -0
  21. package/recipes/checkmark.css +131 -0
  22. package/recipes/checkmark.d.ts +48 -0
  23. package/recipes/checkmark.mjs +220 -0
  24. package/recipes/progress-circle.css +80 -0
  25. package/recipes/progress-circle.d.ts +30 -0
  26. package/recipes/progress-circle.mjs +40 -0
  27. package/recipes/radio-group.css +5 -0
  28. package/recipes/radio-group.d.ts +21 -0
  29. package/recipes/radio-group.mjs +36 -0
  30. package/recipes/radio.css +34 -0
  31. package/recipes/radio.d.ts +32 -0
  32. package/recipes/radio.mjs +53 -0
  33. package/recipes/radiomark.css +94 -0
  34. package/recipes/radiomark.d.ts +40 -0
  35. package/recipes/radiomark.mjs +121 -0
  36. package/recipes/shared.mjs +48 -0
  37. package/recipes/switch.css +40 -0
  38. package/recipes/switch.d.ts +28 -0
  39. package/recipes/switch.mjs +49 -0
  40. package/recipes/switchmark.css +75 -0
  41. package/recipes/switchmark.d.ts +36 -0
  42. package/recipes/switchmark.mjs +90 -0
  43. package/recipes/tag-group-item.css +34 -0
  44. package/recipes/tag-group-item.d.ts +32 -0
  45. package/recipes/tag-group-item.mjs +55 -0
  46. package/recipes/tag-group.css +32 -0
  47. package/recipes/tag-group.d.ts +24 -0
  48. package/recipes/tag-group.mjs +48 -0
  49. package/vars/color/banner.d.ts +10 -0
  50. package/vars/color/banner.mjs +10 -0
  51. package/vars/color/bg.d.ts +76 -0
  52. package/vars/color/bg.mjs +41 -0
  53. package/vars/color/fg.d.ts +30 -0
  54. package/vars/color/fg.mjs +16 -0
  55. package/vars/color/index.d.ts +6 -0
  56. package/vars/color/index.mjs +6 -0
  57. package/vars/color/manner-temp/index.d.ts +10 -0
  58. package/vars/color/manner-temp/index.mjs +10 -0
  59. package/vars/color/manner-temp/l1.d.ts +2 -0
  60. package/vars/color/manner-temp/l1.mjs +2 -0
  61. package/vars/color/manner-temp/l10.d.ts +2 -0
  62. package/vars/color/manner-temp/l10.mjs +2 -0
  63. package/vars/color/manner-temp/l2.d.ts +2 -0
  64. package/vars/color/manner-temp/l2.mjs +2 -0
  65. package/vars/color/manner-temp/l3.d.ts +2 -0
  66. package/vars/color/manner-temp/l3.mjs +2 -0
  67. package/vars/color/manner-temp/l4.d.ts +2 -0
  68. package/vars/color/manner-temp/l4.mjs +2 -0
  69. package/vars/color/manner-temp/l5.d.ts +2 -0
  70. package/vars/color/manner-temp/l5.mjs +2 -0
  71. package/vars/color/manner-temp/l6.d.ts +2 -0
  72. package/vars/color/manner-temp/l6.mjs +2 -0
  73. package/vars/color/manner-temp/l7.d.ts +2 -0
  74. package/vars/color/manner-temp/l7.mjs +2 -0
  75. package/vars/color/manner-temp/l8.d.ts +2 -0
  76. package/vars/color/manner-temp/l8.mjs +2 -0
  77. package/vars/color/manner-temp/l9.d.ts +2 -0
  78. package/vars/color/manner-temp/l9.mjs +2 -0
  79. package/vars/color/palette.d.ts +94 -0
  80. package/vars/color/palette.mjs +94 -0
  81. package/vars/color/stroke.d.ts +31 -0
  82. package/vars/color/stroke.mjs +16 -0
  83. package/vars/component/action-button.d.ts +660 -0
  84. package/vars/component/action-button.mjs +541 -0
  85. package/vars/component/action-chip.d.ts +132 -0
  86. package/vars/component/action-chip.mjs +132 -0
  87. package/vars/component/action-sheet-close-button.d.ts +23 -0
  88. package/vars/component/action-sheet-close-button.mjs +23 -0
  89. package/vars/component/action-sheet-item.d.ts +36 -0
  90. package/vars/component/action-sheet-item.mjs +36 -0
  91. package/vars/component/action-sheet.d.ts +46 -0
  92. package/vars/component/action-sheet.mjs +46 -0
  93. package/vars/component/avatar-stack.d.ts +110 -0
  94. package/vars/component/avatar-stack.mjs +110 -0
  95. package/vars/component/avatar.d.ts +204 -0
  96. package/vars/component/avatar.mjs +162 -0
  97. package/vars/component/badge.d.ts +316 -0
  98. package/vars/component/badge.mjs +236 -0
  99. package/vars/component/bottom-sheet-close-button.d.ts +21 -0
  100. package/vars/component/bottom-sheet-close-button.mjs +21 -0
  101. package/vars/component/bottom-sheet-handle.d.ts +24 -0
  102. package/vars/component/bottom-sheet-handle.mjs +24 -0
  103. package/vars/component/bottom-sheet.d.ts +86 -0
  104. package/vars/component/bottom-sheet.mjs +86 -0
  105. package/vars/component/callout.d.ts +229 -0
  106. package/vars/component/callout.mjs +197 -0
  107. package/vars/component/checkbox-group.d.ts +9 -0
  108. package/vars/component/checkbox-group.mjs +9 -0
  109. package/vars/component/checkbox.d.ts +53 -0
  110. package/vars/component/checkbox.mjs +53 -0
  111. package/vars/component/checkmark.d.ts +195 -0
  112. package/vars/component/checkmark.mjs +165 -0
  113. package/vars/component/chip-tab.d.ts +162 -0
  114. package/vars/component/chip-tab.mjs +162 -0
  115. package/vars/component/chip-tablist.d.ts +31 -0
  116. package/vars/component/chip-tablist.mjs +31 -0
  117. package/vars/component/chip.d.ts +321 -0
  118. package/vars/component/chip.mjs +303 -0
  119. package/vars/component/content-placeholder.d.ts +28 -0
  120. package/vars/component/content-placeholder.mjs +27 -0
  121. package/vars/component/contextual-floating-button.d.ts +144 -0
  122. package/vars/component/contextual-floating-button.mjs +132 -0
  123. package/vars/component/control-chip.d.ts +158 -0
  124. package/vars/component/control-chip.mjs +158 -0
  125. package/vars/component/dialog.d.ts +52 -0
  126. package/vars/component/dialog.mjs +52 -0
  127. package/vars/component/divider.d.ts +9 -0
  128. package/vars/component/divider.mjs +9 -0
  129. package/vars/component/extended-action-sheet-close-button.d.ts +24 -0
  130. package/vars/component/extended-action-sheet-close-button.mjs +24 -0
  131. package/vars/component/extended-action-sheet-item.d.ts +46 -0
  132. package/vars/component/extended-action-sheet-item.mjs +46 -0
  133. package/vars/component/extended-action-sheet.d.ts +55 -0
  134. package/vars/component/extended-action-sheet.mjs +55 -0
  135. package/vars/component/extended-fab.d.ts +88 -0
  136. package/vars/component/extended-fab.mjs +82 -0
  137. package/vars/component/fab.d.ts +21 -0
  138. package/vars/component/fab.mjs +21 -0
  139. package/vars/component/field-label.d.ts +25 -0
  140. package/vars/component/field-label.mjs +25 -0
  141. package/vars/component/field.d.ts +78 -0
  142. package/vars/component/field.mjs +72 -0
  143. package/vars/component/floating-action-button.d.ts +60 -0
  144. package/vars/component/floating-action-button.mjs +54 -0
  145. package/vars/component/help-bubble.d.ts +52 -0
  146. package/vars/component/help-bubble.mjs +50 -0
  147. package/vars/component/identity-placeholder.d.ts +12 -0
  148. package/vars/component/identity-placeholder.mjs +12 -0
  149. package/vars/component/image-frame-floater.d.ts +10 -0
  150. package/vars/component/image-frame-floater.mjs +9 -0
  151. package/vars/component/image-frame-indicator.d.ts +20 -0
  152. package/vars/component/image-frame-indicator.mjs +18 -0
  153. package/vars/component/image-frame-reaction-button.d.ts +35 -0
  154. package/vars/component/image-frame-reaction-button.mjs +26 -0
  155. package/vars/component/image-frame.d.ts +48 -0
  156. package/vars/component/image-frame.mjs +26 -0
  157. package/vars/component/index.d.ts +79 -0
  158. package/vars/component/index.mjs +79 -0
  159. package/vars/component/inline-banner.d.ts +191 -0
  160. package/vars/component/inline-banner.mjs +191 -0
  161. package/vars/component/input-button.d.ts +89 -0
  162. package/vars/component/input-button.mjs +88 -0
  163. package/vars/component/link-content.d.ts +58 -0
  164. package/vars/component/link-content.mjs +58 -0
  165. package/vars/component/list-header.d.ts +29 -0
  166. package/vars/component/list-header.mjs +29 -0
  167. package/vars/component/list-item.d.ts +89 -0
  168. package/vars/component/list-item.mjs +87 -0
  169. package/vars/component/manner-temp-badge.d.ts +117 -0
  170. package/vars/component/manner-temp-badge.mjs +117 -0
  171. package/vars/component/manner-temp.d.ts +88 -0
  172. package/vars/component/manner-temp.mjs +88 -0
  173. package/vars/component/menu-sheet-close-button.d.ts +24 -0
  174. package/vars/component/menu-sheet-close-button.mjs +24 -0
  175. package/vars/component/menu-sheet-item.d.ts +73 -0
  176. package/vars/component/menu-sheet-item.mjs +61 -0
  177. package/vars/component/menu-sheet.d.ts +56 -0
  178. package/vars/component/menu-sheet.mjs +56 -0
  179. package/vars/component/notification-badge.d.ts +48 -0
  180. package/vars/component/notification-badge.mjs +42 -0
  181. package/vars/component/page-banner.d.ts +382 -0
  182. package/vars/component/page-banner.mjs +336 -0
  183. package/vars/component/progress-circle.d.ts +88 -0
  184. package/vars/component/progress-circle.mjs +67 -0
  185. package/vars/component/radio-group.d.ts +9 -0
  186. package/vars/component/radio-group.mjs +9 -0
  187. package/vars/component/radio.d.ts +53 -0
  188. package/vars/component/radio.mjs +53 -0
  189. package/vars/component/radiomark.d.ts +117 -0
  190. package/vars/component/radiomark.mjs +117 -0
  191. package/vars/component/reaction-button.d.ts +136 -0
  192. package/vars/component/reaction-button.mjs +136 -0
  193. package/vars/component/scroll-fog.d.ts +11 -0
  194. package/vars/component/scroll-fog.mjs +11 -0
  195. package/vars/component/segmented-control-indicator.d.ts +24 -0
  196. package/vars/component/segmented-control-indicator.mjs +24 -0
  197. package/vars/component/segmented-control-item.d.ts +41 -0
  198. package/vars/component/segmented-control-item.mjs +41 -0
  199. package/vars/component/segmented-control.d.ts +11 -0
  200. package/vars/component/segmented-control.mjs +11 -0
  201. package/vars/component/select-box-checkmark.d.ts +40 -0
  202. package/vars/component/select-box-checkmark.mjs +40 -0
  203. package/vars/component/select-box-group.d.ts +10 -0
  204. package/vars/component/select-box-group.mjs +10 -0
  205. package/vars/component/select-box.d.ts +107 -0
  206. package/vars/component/select-box.mjs +102 -0
  207. package/vars/component/skeleton.d.ts +76 -0
  208. package/vars/component/skeleton.mjs +58 -0
  209. package/vars/component/slider-thumb.d.ts +25 -0
  210. package/vars/component/slider-thumb.mjs +25 -0
  211. package/vars/component/slider-tick.d.ts +23 -0
  212. package/vars/component/slider-tick.mjs +23 -0
  213. package/vars/component/slider.d.ts +78 -0
  214. package/vars/component/slider.mjs +75 -0
  215. package/vars/component/snackbar.d.ts +65 -0
  216. package/vars/component/snackbar.mjs +65 -0
  217. package/vars/component/switch.d.ts +53 -0
  218. package/vars/component/switch.mjs +53 -0
  219. package/vars/component/switchmark.d.ts +112 -0
  220. package/vars/component/switchmark.mjs +112 -0
  221. package/vars/component/tab.d.ts +47 -0
  222. package/vars/component/tab.mjs +47 -0
  223. package/vars/component/tablist.d.ts +51 -0
  224. package/vars/component/tablist.mjs +51 -0
  225. package/vars/component/tag-group-item.d.ts +122 -0
  226. package/vars/component/tag-group-item.mjs +122 -0
  227. package/vars/component/tag-group.d.ts +34 -0
  228. package/vars/component/tag-group.mjs +34 -0
  229. package/vars/component/text-button.d.ts +23 -0
  230. package/vars/component/text-button.mjs +23 -0
  231. package/vars/component/text-input.d.ts +224 -0
  232. package/vars/component/text-input.mjs +211 -0
  233. package/vars/component/toggle-button.d.ts +213 -0
  234. package/vars/component/toggle-button.mjs +207 -0
  235. package/vars/component/top-navigation-icon-button.d.ts +36 -0
  236. package/vars/component/top-navigation-icon-button.mjs +36 -0
  237. package/vars/component/top-navigation-text-button.d.ts +52 -0
  238. package/vars/component/top-navigation-text-button.mjs +51 -0
  239. package/vars/component/top-navigation.d.ts +102 -0
  240. package/vars/component/top-navigation.mjs +94 -0
  241. package/vars/component/typography.d.ts +542 -0
  242. package/vars/component/typography.mjs +461 -0
  243. package/vars/dimension/index.d.ts +22 -0
  244. package/vars/dimension/index.mjs +22 -0
  245. package/vars/dimension/spacing-x.d.ts +4 -0
  246. package/vars/dimension/spacing-x.mjs +2 -0
  247. package/vars/dimension/spacing-y.d.ts +8 -0
  248. package/vars/dimension/spacing-y.mjs +4 -0
  249. package/vars/duration.d.ts +8 -0
  250. package/vars/duration.mjs +8 -0
  251. package/vars/font-size.d.ts +30 -0
  252. package/vars/font-size.mjs +20 -0
  253. package/vars/font-weight.d.ts +3 -0
  254. package/vars/font-weight.mjs +3 -0
  255. package/vars/gradient.d.ts +19 -0
  256. package/vars/gradient.mjs +8 -0
  257. package/vars/index.d.ts +51 -0
  258. package/vars/index.mjs +1 -0
  259. package/vars/line-height.d.ts +30 -0
  260. package/vars/line-height.mjs +20 -0
  261. package/vars/radius.d.ts +11 -0
  262. package/vars/radius.mjs +11 -0
  263. package/vars/shadow.d.ts +4 -0
  264. package/vars/shadow.mjs +3 -0
  265. package/vars/timing-function.d.ts +7 -0
  266. package/vars/timing-function.mjs +7 -0
  267. package/vars/vars.d.ts +10 -0
  268. package/vars/vars.mjs +10 -0
@@ -0,0 +1,131 @@
1
+ .seed-checkmark__root {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ flex: none;
7
+ margin-top: var(--checkmark-margin-top, 0);
8
+ transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing)
9
+ }
10
+ .seed-checkmark__icon {
11
+ position: absolute
12
+ }
13
+ .seed-checkmark__root--variant_square {
14
+ border-width: 1px;
15
+ border-style: solid;
16
+ border-color: var(--seed-color-stroke-neutral-weak)
17
+ }
18
+ .seed-checkmark__icon--variant_ghost {
19
+ color: var(--seed-color-fg-placeholder);
20
+ transition: color var(--seed-duration-color-transition) var(--seed-timing-function-easing)
21
+ }
22
+ .seed-checkmark__root--size_medium {
23
+ width: var(--seed-dimension-x5);
24
+ height: var(--seed-dimension-x5);
25
+ border-radius: var(--seed-radius-r1)
26
+ }
27
+ .seed-checkmark__root--size_large {
28
+ width: var(--seed-dimension-x6);
29
+ height: var(--seed-dimension-x6);
30
+ border-radius: var(--seed-radius-r1)
31
+ }
32
+ .seed-checkmark__icon--variant_square-size_medium {
33
+ width: 12px;
34
+ height: 12px
35
+ }
36
+ .seed-checkmark__icon--variant_square-size_large {
37
+ width: 14px;
38
+ height: 14px
39
+ }
40
+ .seed-checkmark__icon--variant_ghost-size_medium {
41
+ width: 14px;
42
+ height: 14px
43
+ }
44
+ .seed-checkmark__icon--variant_ghost-size_large {
45
+ width: 18px;
46
+ height: 18px
47
+ }
48
+ .seed-checkmark__icon--variant_square-checked_false-indeterminate_false {
49
+ opacity: 0
50
+ }
51
+ .seed-checkmark__root--variant_square-checked_true-disabled_false {
52
+ border-width: 0px;
53
+ border-color: #00000000
54
+ }
55
+ .seed-checkmark__root--variant_square-indeterminate_true-disabled_false {
56
+ border-width: 0px;
57
+ border-color: #00000000
58
+ }
59
+ .seed-checkmark__root--variant_square-tone_brand-checked_true-disabled_false {
60
+ background-color: var(--seed-color-bg-brand-solid)
61
+ }
62
+ .seed-checkmark__icon--variant_square-tone_brand-checked_true-disabled_false {
63
+ color: var(--seed-color-palette-static-white)
64
+ }
65
+ .seed-checkmark__root--variant_square-tone_neutral-checked_true-disabled_false {
66
+ background-color: var(--seed-color-bg-neutral-inverted)
67
+ }
68
+ .seed-checkmark__icon--variant_square-tone_neutral-checked_true-disabled_false {
69
+ color: var(--seed-color-fg-neutral-inverted)
70
+ }
71
+ .seed-checkmark__root--variant_square-tone_brand-indeterminate_true-disabled_false {
72
+ background-color: var(--seed-color-bg-brand-solid)
73
+ }
74
+ .seed-checkmark__icon--variant_square-tone_brand-indeterminate_true-disabled_false {
75
+ color: var(--seed-color-palette-static-white)
76
+ }
77
+ .seed-checkmark__root--variant_square-tone_neutral-indeterminate_true-disabled_false {
78
+ background-color: var(--seed-color-bg-neutral-inverted)
79
+ }
80
+ .seed-checkmark__icon--variant_square-tone_neutral-indeterminate_true-disabled_false {
81
+ color: var(--seed-color-fg-neutral-inverted)
82
+ }
83
+ .seed-checkmark__root--variant_square-disabled_true {
84
+ background-color: var(--seed-color-bg-disabled);
85
+ border-color: var(--seed-color-stroke-neutral-muted)
86
+ }
87
+ .seed-checkmark__icon--variant_square-disabled_true {
88
+ color: var(--seed-color-fg-disabled)
89
+ }
90
+ .seed-checkmark__icon--variant_square-checked_true-disabled_true {
91
+ color: var(--seed-color-fg-disabled)
92
+ }
93
+ .seed-checkmark__icon--variant_square-indeterminate_true-disabled_true {
94
+ color: var(--seed-color-fg-disabled)
95
+ }
96
+ .seed-checkmark__icon--variant_ghost-tone_brand-checked_true-disabled_false {
97
+ color: var(--seed-color-fg-brand)
98
+ }
99
+ .seed-checkmark__icon--variant_ghost-tone_neutral-checked_true-disabled_false {
100
+ color: var(--seed-color-fg-neutral)
101
+ }
102
+ .seed-checkmark__icon--variant_ghost-disabled_true {
103
+ color: var(--seed-color-fg-disabled)
104
+ }
105
+ .seed-checkmark__icon--variant_ghost-checked_true-disabled_true {
106
+ color: var(--seed-color-fg-disabled)
107
+ }
108
+ .seed-checkmark__root--variant_square-pressed_true-checked_false-indeterminate_false-disabled_false {
109
+ background-color: var(--seed-color-bg-transparent-pressed)
110
+ }
111
+ .seed-checkmark__root--variant_square-tone_brand-pressed_true-checked_true-disabled_false {
112
+ background-color: var(--seed-color-bg-brand-solid-pressed)
113
+ }
114
+ .seed-checkmark__root--variant_square-tone_neutral-pressed_true-checked_true-disabled_false {
115
+ background-color: var(--seed-color-bg-neutral-inverted-pressed)
116
+ }
117
+ .seed-checkmark__root--variant_square-tone_brand-pressed_true-indeterminate_true-disabled_false {
118
+ background-color: var(--seed-color-bg-brand-solid-pressed)
119
+ }
120
+ .seed-checkmark__root--variant_square-tone_neutral-pressed_true-indeterminate_true-disabled_false {
121
+ background-color: var(--seed-color-bg-neutral-inverted-pressed)
122
+ }
123
+ .seed-checkmark__root--variant_ghost-pressed_true-checked_false-indeterminate_false-disabled_false {
124
+ background-color: var(--seed-color-bg-transparent-pressed)
125
+ }
126
+ .seed-checkmark__root--variant_ghost-tone_brand-pressed_true-checked_true-disabled_false {
127
+ background-color: var(--seed-color-palette-carrot-200)
128
+ }
129
+ .seed-checkmark__root--variant_ghost-tone_neutral-pressed_true-checked_true-disabled_false {
130
+ background-color: var(--seed-color-palette-gray-200)
131
+ }
@@ -0,0 +1,48 @@
1
+ declare interface CheckmarkVariant {
2
+ /**
3
+ * @default "square"
4
+ */
5
+ variant: "square" | "ghost";
6
+ /**
7
+ * @default "brand"
8
+ */
9
+ tone: "brand" | "neutral";
10
+ /**
11
+ * @default "medium"
12
+ */
13
+ size: "medium" | "large";
14
+ /**
15
+ * @default false
16
+ */
17
+ checked: boolean;
18
+ /**
19
+ * @default false
20
+ */
21
+ disabled: boolean;
22
+ /**
23
+ * @default false
24
+ */
25
+ indeterminate: boolean;
26
+ /**
27
+ * @default false
28
+ */
29
+ pressed: boolean;
30
+ }
31
+
32
+ declare type CheckmarkVariantMap = {
33
+ [key in keyof CheckmarkVariant]: Array<CheckmarkVariant[key]>;
34
+ };
35
+
36
+ export declare type CheckmarkVariantProps = Partial<CheckmarkVariant>;
37
+
38
+ export declare type CheckmarkSlotName = "root" | "icon";
39
+
40
+ export declare const checkmarkVariantMap: CheckmarkVariantMap;
41
+
42
+ export declare const checkmark: ((
43
+ props?: CheckmarkVariantProps,
44
+ ) => Record<CheckmarkSlotName, string>) & {
45
+ splitVariantProps: <T extends CheckmarkVariantProps>(
46
+ props: T,
47
+ ) => [CheckmarkVariantProps, Omit<T, keyof CheckmarkVariantProps>];
48
+ }
@@ -0,0 +1,220 @@
1
+ import './checkmark.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const checkmarkSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-checkmark__root"
8
+ ],
9
+ [
10
+ "icon",
11
+ "seed-checkmark__icon"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {
16
+ "variant": "square",
17
+ "tone": "brand",
18
+ "size": "medium",
19
+ "checked": false,
20
+ "disabled": false,
21
+ "indeterminate": false,
22
+ "pressed": false
23
+ };
24
+
25
+ const compoundVariants = [
26
+ {
27
+ "variant": "square",
28
+ "size": "medium"
29
+ },
30
+ {
31
+ "variant": "square",
32
+ "size": "large"
33
+ },
34
+ {
35
+ "variant": "ghost",
36
+ "size": "medium"
37
+ },
38
+ {
39
+ "variant": "ghost",
40
+ "size": "large"
41
+ },
42
+ {
43
+ "variant": "square",
44
+ "checked": false,
45
+ "indeterminate": false
46
+ },
47
+ {
48
+ "variant": "square",
49
+ "checked": true,
50
+ "disabled": false
51
+ },
52
+ {
53
+ "variant": "square",
54
+ "indeterminate": true,
55
+ "disabled": false
56
+ },
57
+ {
58
+ "variant": "square",
59
+ "tone": "brand",
60
+ "checked": true,
61
+ "disabled": false
62
+ },
63
+ {
64
+ "variant": "square",
65
+ "tone": "neutral",
66
+ "checked": true,
67
+ "disabled": false
68
+ },
69
+ {
70
+ "variant": "square",
71
+ "tone": "brand",
72
+ "indeterminate": true,
73
+ "disabled": false
74
+ },
75
+ {
76
+ "variant": "square",
77
+ "tone": "neutral",
78
+ "indeterminate": true,
79
+ "disabled": false
80
+ },
81
+ {
82
+ "variant": "square",
83
+ "disabled": true
84
+ },
85
+ {
86
+ "variant": "square",
87
+ "checked": true,
88
+ "disabled": true
89
+ },
90
+ {
91
+ "variant": "square",
92
+ "indeterminate": true,
93
+ "disabled": true
94
+ },
95
+ {
96
+ "variant": "ghost",
97
+ "tone": "brand",
98
+ "checked": true,
99
+ "disabled": false
100
+ },
101
+ {
102
+ "variant": "ghost",
103
+ "tone": "neutral",
104
+ "checked": true,
105
+ "disabled": false
106
+ },
107
+ {
108
+ "variant": "ghost",
109
+ "disabled": true
110
+ },
111
+ {
112
+ "variant": "ghost",
113
+ "checked": true,
114
+ "disabled": true
115
+ },
116
+ {
117
+ "variant": "square",
118
+ "pressed": true,
119
+ "checked": false,
120
+ "indeterminate": false,
121
+ "disabled": false
122
+ },
123
+ {
124
+ "variant": "square",
125
+ "tone": "brand",
126
+ "pressed": true,
127
+ "checked": true,
128
+ "disabled": false
129
+ },
130
+ {
131
+ "variant": "square",
132
+ "tone": "neutral",
133
+ "pressed": true,
134
+ "checked": true,
135
+ "disabled": false
136
+ },
137
+ {
138
+ "variant": "square",
139
+ "tone": "brand",
140
+ "pressed": true,
141
+ "indeterminate": true,
142
+ "disabled": false
143
+ },
144
+ {
145
+ "variant": "square",
146
+ "tone": "neutral",
147
+ "pressed": true,
148
+ "indeterminate": true,
149
+ "disabled": false
150
+ },
151
+ {
152
+ "variant": "ghost",
153
+ "pressed": true,
154
+ "checked": false,
155
+ "indeterminate": false,
156
+ "disabled": false
157
+ },
158
+ {
159
+ "variant": "ghost",
160
+ "tone": "brand",
161
+ "pressed": true,
162
+ "checked": true,
163
+ "disabled": false
164
+ },
165
+ {
166
+ "variant": "ghost",
167
+ "tone": "neutral",
168
+ "pressed": true,
169
+ "checked": true,
170
+ "disabled": false
171
+ }
172
+ ];
173
+
174
+ export const checkmarkVariantMap = {
175
+ "variant": [
176
+ "square",
177
+ "ghost"
178
+ ],
179
+ "tone": [
180
+ "brand",
181
+ "neutral"
182
+ ],
183
+ "size": [
184
+ "medium",
185
+ "large"
186
+ ],
187
+ "checked": [
188
+ true,
189
+ false
190
+ ],
191
+ "disabled": [
192
+ true,
193
+ false
194
+ ],
195
+ "indeterminate": [
196
+ true,
197
+ false
198
+ ],
199
+ "pressed": [
200
+ true,
201
+ false
202
+ ]
203
+ };
204
+
205
+ export const checkmarkVariantKeys = Object.keys(checkmarkVariantMap);
206
+
207
+ export function checkmark(props) {
208
+ return Object.fromEntries(
209
+ checkmarkSlotNames.map(([slot, className]) => {
210
+ return [
211
+ slot,
212
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
213
+ ];
214
+ }),
215
+ );
216
+ }
217
+
218
+ Object.assign(checkmark, { splitVariantProps: (props) => splitVariantProps(props, checkmarkVariantMap) });
219
+
220
+ // @recipe(seed): checkmark
@@ -0,0 +1,80 @@
1
+ /* TODO: Lynx SVG(stroke-dasharray) 지원 시 qvism recipe로 전환하고 이 파일 삭제 */
2
+
3
+ .seed-progress-circle__root {
4
+ border-radius: 50%;
5
+ position: relative;
6
+ display: flex;
7
+ overflow: hidden;
8
+ }
9
+
10
+ /* size 40: outer r=20, inner r=15 (0.53 * sqrt(2) * 20) */
11
+ .seed-progress-circle__root--size_40 {
12
+ clip-path: path(
13
+ "M20 0 A20 20 0 1 1 20 40 A20 20 0 1 1 20 0 Z M20 5 A15 15 0 1 0 20 35 A15 15 0 1 0 20 5 Z"
14
+ );
15
+ }
16
+
17
+ /* size 24: outer r=12, inner r=9 (0.53 * sqrt(2) * 12) */
18
+ .seed-progress-circle__root--size_24 {
19
+ clip-path: path(
20
+ "M12 0 A12 12 0 1 1 12 24 A12 12 0 1 1 12 0 Z M12 3 A9 9 0 1 0 12 21 A9 9 0 1 0 12 3 Z"
21
+ );
22
+ }
23
+
24
+ /* size 18: outer r=9, inner r=7 — used inside action-button (large) loading state */
25
+ .seed-progress-circle__root--size_18 {
26
+ clip-path: path("M9 0 A9 9 0 1 1 9 18 A9 9 0 1 1 9 0 Z M9 2 A7 7 0 1 0 9 16 A7 7 0 1 0 9 2 Z");
27
+ }
28
+
29
+ /* size 16: outer r=8, inner r=6 — used inside action-button (medium) loading state */
30
+ .seed-progress-circle__root--size_16 {
31
+ clip-path: path("M8 0 A8 8 0 1 1 8 16 A8 8 0 1 1 8 0 Z M8 2 A6 6 0 1 0 8 14 A6 6 0 1 0 8 2 Z");
32
+ }
33
+
34
+ /* size 14: outer r=7, inner r=5 — used inside action-button (xsmall/small) loading state */
35
+ .seed-progress-circle__root--size_14 {
36
+ clip-path: path("M7 0 A7 7 0 1 1 7 14 A7 7 0 1 1 7 0 Z M7 2 A5 5 0 1 0 7 12 A5 5 0 1 0 7 2 Z");
37
+ }
38
+
39
+ .seed-progress-circle__cap {
40
+ position: absolute;
41
+ border-radius: 50%;
42
+ z-index: 1;
43
+ }
44
+
45
+ .seed-progress-circle__root--tone_neutral {
46
+ background: var(--seed-color-palette-gray-200);
47
+ }
48
+
49
+ .seed-progress-circle__root--tone_brand {
50
+ background: var(--seed-color-palette-carrot-200);
51
+ }
52
+
53
+ .seed-progress-circle__root--tone_staticWhite {
54
+ background: var(--seed-color-palette-static-white-alpha-300);
55
+ }
56
+
57
+ .seed-progress-circle__range--tone_neutral,
58
+ .seed-progress-circle__cap--tone_neutral {
59
+ background: var(--seed-color-palette-gray-500);
60
+ }
61
+
62
+ .seed-progress-circle__range--tone_brand,
63
+ .seed-progress-circle__cap--tone_brand {
64
+ background: var(--seed-color-bg-brand-solid);
65
+ }
66
+
67
+ .seed-progress-circle__range--tone_staticWhite,
68
+ .seed-progress-circle__cap--tone_staticWhite {
69
+ background: var(--seed-color-palette-static-white);
70
+ }
71
+
72
+ /* inherit: inherits --track-color / --range-color from parent (e.g. action-button) */
73
+ .seed-progress-circle__root--tone_inherit {
74
+ background: var(--track-color);
75
+ }
76
+
77
+ .seed-progress-circle__range--tone_inherit,
78
+ .seed-progress-circle__cap--tone_inherit {
79
+ background: var(--range-color);
80
+ }
@@ -0,0 +1,30 @@
1
+ /* TODO: Lynx SVG(stroke-dasharray) 지원 시 qvism recipe 자동 생성으로 전환하고 이 파일 삭제 */
2
+
3
+ declare interface ProgressCircleVariant {
4
+ /**
5
+ * @default "neutral"
6
+ */
7
+ tone: "neutral" | "brand" | "staticWhite" | "inherit";
8
+ /**
9
+ * @default "40"
10
+ */
11
+ size: "14" | "16" | "18" | "24" | "40";
12
+ }
13
+
14
+ declare type ProgressCircleVariantMap = {
15
+ [key in keyof ProgressCircleVariant]: Array<ProgressCircleVariant[key]>;
16
+ };
17
+
18
+ export declare type ProgressCircleVariantProps = Partial<ProgressCircleVariant>;
19
+
20
+ export declare type ProgressCircleSlotName = "root" | "range" | "cap";
21
+
22
+ export declare const progressCircleVariantMap: ProgressCircleVariantMap;
23
+
24
+ export declare const progressCircle: ((
25
+ props?: ProgressCircleVariantProps,
26
+ ) => Record<ProgressCircleSlotName, string>) & {
27
+ splitVariantProps: <T extends ProgressCircleVariantProps>(
28
+ props: T,
29
+ ) => [ProgressCircleVariantProps, Omit<T, keyof ProgressCircleVariantProps>];
30
+ };
@@ -0,0 +1,40 @@
1
+ /* TODO: Lynx SVG(stroke-dasharray) 지원 시 qvism recipe 자동 생성으로 전환하고 이 파일 삭제 */
2
+ import "./progress-circle.css";
3
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
4
+
5
+ const progressCircleSlotNames = [
6
+ ["root", "seed-progress-circle__root"],
7
+ ["range", "seed-progress-circle__range"],
8
+ ["cap", "seed-progress-circle__cap"],
9
+ ];
10
+
11
+ const defaultVariant = {
12
+ tone: "neutral",
13
+ size: "40",
14
+ };
15
+
16
+ const compoundVariants = [];
17
+
18
+ export const progressCircleVariantMap = {
19
+ tone: ["neutral", "brand", "staticWhite", "inherit"],
20
+ size: ["14", "16", "18", "24", "40"],
21
+ };
22
+
23
+ export const progressCircleVariantKeys = Object.keys(progressCircleVariantMap);
24
+
25
+ export function progressCircle(props) {
26
+ return Object.fromEntries(
27
+ progressCircleSlotNames.map(([slot, className]) => {
28
+ return [
29
+ slot,
30
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
31
+ ];
32
+ }),
33
+ );
34
+ }
35
+
36
+ Object.assign(progressCircle, {
37
+ splitVariantProps: (props) => splitVariantProps(props, progressCircleVariantMap),
38
+ });
39
+
40
+ // @recipe(seed): progress-circle
@@ -0,0 +1,5 @@
1
+ .seed-radio-group__root {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--seed-dimension-x1)
5
+ }
@@ -0,0 +1,21 @@
1
+ declare interface RadioGroupVariant {
2
+
3
+ }
4
+
5
+ declare type RadioGroupVariantMap = {
6
+ [key in keyof RadioGroupVariant]: Array<RadioGroupVariant[key]>;
7
+ };
8
+
9
+ export declare type RadioGroupVariantProps = Partial<RadioGroupVariant>;
10
+
11
+ export declare type RadioGroupSlotName = "root" | "text";
12
+
13
+ export declare const radioGroupVariantMap: RadioGroupVariantMap;
14
+
15
+ export declare const radioGroup: ((
16
+ props?: RadioGroupVariantProps,
17
+ ) => Record<RadioGroupSlotName, string>) & {
18
+ splitVariantProps: <T extends RadioGroupVariantProps>(
19
+ props: T,
20
+ ) => [RadioGroupVariantProps, Omit<T, keyof RadioGroupVariantProps>];
21
+ }
@@ -0,0 +1,36 @@
1
+ import './radio-group.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const radioGroupSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-radio-group__root"
8
+ ],
9
+ [
10
+ "text",
11
+ "seed-radio-group__text"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {};
16
+
17
+ const compoundVariants = [];
18
+
19
+ export const radioGroupVariantMap = {};
20
+
21
+ export const radioGroupVariantKeys = Object.keys(radioGroupVariantMap);
22
+
23
+ export function radioGroup(props) {
24
+ return Object.fromEntries(
25
+ radioGroupSlotNames.map(([slot, className]) => {
26
+ return [
27
+ slot,
28
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
29
+ ];
30
+ }),
31
+ );
32
+ }
33
+
34
+ Object.assign(radioGroup, { splitVariantProps: (props) => splitVariantProps(props, radioGroupVariantMap) });
35
+
36
+ // @recipe(seed): radio-group
@@ -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
+ }