@rovula/ui 0.1.6 → 0.1.8

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 (232) hide show
  1. package/dist/cjs/bundle.css +630 -467
  2. package/dist/cjs/bundle.js +1545 -1545
  3. package/dist/cjs/bundle.js.map +1 -1
  4. package/dist/cjs/types/components/AlertDialog/AlertDialog.stories.d.ts +3 -0
  5. package/dist/cjs/types/components/Dialog/Dialog.d.ts +7 -1
  6. package/dist/cjs/types/components/Dialog/Dialog.stories.d.ts +3 -0
  7. package/dist/cjs/types/components/Dropdown/Dropdown.d.ts +2 -0
  8. package/dist/cjs/types/components/Dropdown/Dropdown.stories.d.ts +2 -0
  9. package/dist/cjs/types/components/Form/Field.d.ts +26 -0
  10. package/dist/cjs/types/components/Form/FieldMessage.d.ts +7 -0
  11. package/dist/cjs/types/components/Form/Form.d.ts +49 -11
  12. package/dist/cjs/types/components/Form/Form.stories.d.ts +23 -0
  13. package/dist/cjs/types/components/Form/ValidationHintList.d.ts +17 -0
  14. package/dist/cjs/types/components/Form/ValidationHintList.stories.d.ts +9 -0
  15. package/dist/cjs/types/components/Form/index.d.ts +10 -0
  16. package/dist/cjs/types/components/Form/useOptionBridge.d.ts +17 -0
  17. package/dist/cjs/types/components/OtpInput/OtpInput.d.ts +17 -0
  18. package/dist/cjs/types/components/OtpInput/OtpInput.stories.d.ts +15 -0
  19. package/dist/cjs/types/components/OtpInput/OtpInputGroup.d.ts +25 -0
  20. package/dist/cjs/types/components/OtpInput/index.d.ts +5 -0
  21. package/dist/cjs/types/components/TextInput/TextInput.styles.d.ts +3 -0
  22. package/dist/cjs/types/index.d.ts +5 -0
  23. package/dist/cjs/types/theme/ThemeColorCoverageRuntime.stories.d.ts +10 -0
  24. package/dist/cjs/types/utils/colors.d.ts +351 -267
  25. package/dist/components/ActionButton/ActionButton.stories.js +2 -2
  26. package/dist/components/ActionButton/ActionButton.styles.js +1 -1
  27. package/dist/components/AlertDialog/AlertDialog.js +6 -6
  28. package/dist/components/AlertDialog/AlertDialog.stories.js +3 -0
  29. package/dist/components/Avatar/Avatar.stories.js +1 -1
  30. package/dist/components/Avatar/Avatar.styles.js +1 -1
  31. package/dist/components/Avatar/AvatarBase.js +1 -1
  32. package/dist/components/Avatar/AvatarGroup.stories.js +1 -1
  33. package/dist/components/Button/Buttons.stories.js +2 -2
  34. package/dist/components/Calendar/Calendar.js +1 -1
  35. package/dist/components/Checkbox/Checkbox.js +1 -1
  36. package/dist/components/Checkbox/Checkbox.stories.js +17 -7
  37. package/dist/components/Collapsible/Collapsible.styles.js +1 -1
  38. package/dist/components/DataTable/DataTable.js +2 -2
  39. package/dist/components/Dialog/Dialog.js +12 -7
  40. package/dist/components/Dialog/Dialog.stories.js +90 -2
  41. package/dist/components/Dropdown/Dropdown.js +2 -2
  42. package/dist/components/DropdownMenu/DropdownMenu.js +3 -3
  43. package/dist/components/FocusedScrollView/FocusedScrollView.stories.js +6 -6
  44. package/dist/components/Form/Field.js +60 -0
  45. package/dist/components/Form/FieldMessage.js +24 -0
  46. package/dist/components/Form/Form.js +73 -41
  47. package/dist/components/Form/Form.stories.js +221 -0
  48. package/dist/components/Form/ValidationHintList.js +30 -0
  49. package/dist/components/Form/ValidationHintList.stories.js +50 -0
  50. package/dist/components/Form/index.js +5 -0
  51. package/dist/components/Form/useOptionBridge.js +27 -0
  52. package/dist/components/InputFilter/InputFilter.js +5 -4
  53. package/dist/components/InputFilter/InputFilter.stories.js +1 -1
  54. package/dist/components/InputFilter/InputFilter.styles.js +14 -1
  55. package/dist/components/Label/Label.styles.js +1 -1
  56. package/dist/components/Menu/Menu.js +2 -2
  57. package/dist/components/NumberInput/NumberInput.stories.js +1 -1
  58. package/dist/components/OtpInput/OtpInput.js +118 -0
  59. package/dist/components/OtpInput/OtpInput.stories.js +60 -0
  60. package/dist/components/OtpInput/OtpInputGroup.js +23 -0
  61. package/dist/components/OtpInput/index.js +3 -0
  62. package/dist/components/PasswordInput/PasswordInput.stories.js +1 -1
  63. package/dist/components/Popover/Popover.js +1 -1
  64. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  65. package/dist/components/RadioGroup/RadioGroup.stories.js +2 -2
  66. package/dist/components/Search/Search.js +13 -1
  67. package/dist/components/Search/Search.stories.js +1 -1
  68. package/dist/components/Slider/Slider.js +1 -1
  69. package/dist/components/Slider/Slider.stories.js +5 -5
  70. package/dist/components/Switch/Switch.stories.js +2 -2
  71. package/dist/components/Switch/Switch.styles.js +1 -1
  72. package/dist/components/Table/Table.js +5 -5
  73. package/dist/components/Tabs/Tabs.js +12 -9
  74. package/dist/components/Tabs/Tabs.stories.js +1 -1
  75. package/dist/components/Text/Text.js +1 -1
  76. package/dist/components/Text/Text.stories.js +1 -1
  77. package/dist/components/TextArea/TextArea.stories.js +1 -1
  78. package/dist/components/TextArea/TextArea.styles.js +3 -3
  79. package/dist/components/TextInput/TextInput.js +3 -2
  80. package/dist/components/TextInput/TextInput.stories.js +3 -3
  81. package/dist/components/TextInput/TextInput.styles.js +41 -19
  82. package/dist/components/Toast/Toast.js +4 -2
  83. package/dist/components/Toast/Toast.stories.js +1 -1
  84. package/dist/components/Toast/Toast.styles.js +4 -4
  85. package/dist/components/Toast/Toaster.js +2 -2
  86. package/dist/components/Tree/Tree.stories.js +1 -1
  87. package/dist/components/Tree/TreeItem.js +1 -1
  88. package/dist/esm/bundle.css +630 -467
  89. package/dist/esm/bundle.js +1545 -1545
  90. package/dist/esm/bundle.js.map +1 -1
  91. package/dist/esm/types/components/AlertDialog/AlertDialog.stories.d.ts +3 -0
  92. package/dist/esm/types/components/Dialog/Dialog.d.ts +7 -1
  93. package/dist/esm/types/components/Dialog/Dialog.stories.d.ts +3 -0
  94. package/dist/esm/types/components/Dropdown/Dropdown.d.ts +2 -0
  95. package/dist/esm/types/components/Dropdown/Dropdown.stories.d.ts +2 -0
  96. package/dist/esm/types/components/Form/Field.d.ts +26 -0
  97. package/dist/esm/types/components/Form/FieldMessage.d.ts +7 -0
  98. package/dist/esm/types/components/Form/Form.d.ts +49 -11
  99. package/dist/esm/types/components/Form/Form.stories.d.ts +23 -0
  100. package/dist/esm/types/components/Form/ValidationHintList.d.ts +17 -0
  101. package/dist/esm/types/components/Form/ValidationHintList.stories.d.ts +9 -0
  102. package/dist/esm/types/components/Form/index.d.ts +10 -0
  103. package/dist/esm/types/components/Form/useOptionBridge.d.ts +17 -0
  104. package/dist/esm/types/components/OtpInput/OtpInput.d.ts +17 -0
  105. package/dist/esm/types/components/OtpInput/OtpInput.stories.d.ts +15 -0
  106. package/dist/esm/types/components/OtpInput/OtpInputGroup.d.ts +25 -0
  107. package/dist/esm/types/components/OtpInput/index.d.ts +5 -0
  108. package/dist/esm/types/components/TextInput/TextInput.styles.d.ts +3 -0
  109. package/dist/esm/types/index.d.ts +5 -0
  110. package/dist/esm/types/theme/ThemeColorCoverageRuntime.stories.d.ts +10 -0
  111. package/dist/esm/types/utils/colors.d.ts +351 -267
  112. package/dist/index.d.ts +512 -269
  113. package/dist/index.js +3 -0
  114. package/dist/src/theme/global.css +2739 -2681
  115. package/dist/theme/ThemeColorCoverageRuntime.stories.js +91 -0
  116. package/dist/utils/colors.js +359 -267
  117. package/package.json +4 -2
  118. package/src/components/ActionButton/ActionButton.stories.tsx +6 -6
  119. package/src/components/ActionButton/ActionButton.styles.ts +1 -1
  120. package/src/components/AlertDialog/AlertDialog.stories.tsx +22 -0
  121. package/src/components/AlertDialog/AlertDialog.tsx +6 -6
  122. package/src/components/Avatar/Avatar.stories.tsx +1 -1
  123. package/src/components/Avatar/Avatar.styles.ts +1 -1
  124. package/src/components/Avatar/AvatarBase.tsx +1 -1
  125. package/src/components/Avatar/AvatarGroup.stories.tsx +1 -1
  126. package/src/components/Button/Buttons.stories.tsx +25 -17
  127. package/src/components/Calendar/Calendar.tsx +3 -3
  128. package/src/components/Checkbox/Checkbox.stories.tsx +35 -12
  129. package/src/components/Checkbox/Checkbox.tsx +7 -5
  130. package/src/components/Collapsible/Collapsible.styles.ts +1 -1
  131. package/src/components/DataTable/DataTable.tsx +2 -2
  132. package/src/components/Dialog/Dialog.stories.tsx +173 -0
  133. package/src/components/Dialog/Dialog.tsx +32 -15
  134. package/src/components/Dropdown/Dropdown.styles.ts +1 -1
  135. package/src/components/Dropdown/Dropdown.tsx +16 -14
  136. package/src/components/DropdownMenu/DropdownMenu.tsx +3 -3
  137. package/src/components/FocusedScrollView/FocusedScrollView.stories.tsx +10 -10
  138. package/src/components/Form/Field.tsx +160 -0
  139. package/src/components/Form/FieldMessage.tsx +38 -0
  140. package/src/components/Form/Form.docs.mdx +67 -0
  141. package/src/components/Form/Form.stories.tsx +490 -0
  142. package/src/components/Form/Form.tsx +185 -87
  143. package/src/components/Form/README.md +284 -0
  144. package/src/components/Form/ValidationHintList.stories.tsx +118 -0
  145. package/src/components/Form/ValidationHintList.tsx +82 -0
  146. package/src/components/Form/index.ts +28 -0
  147. package/src/components/Form/useOptionBridge.ts +55 -0
  148. package/src/components/InputFilter/InputFilter.stories.tsx +1 -1
  149. package/src/components/InputFilter/InputFilter.styles.ts +14 -1
  150. package/src/components/InputFilter/InputFilter.tsx +33 -28
  151. package/src/components/Label/Label.styles.ts +2 -2
  152. package/src/components/Label/Label.tsx +1 -1
  153. package/src/components/Menu/Menu.tsx +12 -12
  154. package/src/components/NumberInput/NumberInput.stories.tsx +1 -1
  155. package/src/components/OtpInput/OtpInput.stories.tsx +168 -0
  156. package/src/components/OtpInput/OtpInput.tsx +210 -0
  157. package/src/components/OtpInput/OtpInputGroup.tsx +74 -0
  158. package/src/components/OtpInput/index.ts +5 -0
  159. package/src/components/PasswordInput/PasswordInput.stories.tsx +1 -1
  160. package/src/components/Popover/Popover.tsx +1 -1
  161. package/src/components/RadioGroup/RadioGroup.stories.tsx +4 -4
  162. package/src/components/RadioGroup/RadioGroup.tsx +2 -1
  163. package/src/components/Search/Search.stories.tsx +1 -1
  164. package/src/components/Search/Search.tsx +6 -2
  165. package/src/components/Slider/Slider.stories.tsx +7 -7
  166. package/src/components/Slider/Slider.tsx +1 -1
  167. package/src/components/Switch/Switch.stories.tsx +4 -4
  168. package/src/components/Switch/Switch.styles.ts +1 -1
  169. package/src/components/Table/Table.tsx +5 -5
  170. package/src/components/Tabs/Tabs.stories.tsx +1 -1
  171. package/src/components/Tabs/Tabs.tsx +29 -18
  172. package/src/components/Text/Text.stories.tsx +1 -1
  173. package/src/components/Text/Text.tsx +1 -1
  174. package/src/components/TextArea/TextArea.stories.tsx +1 -1
  175. package/src/components/TextArea/TextArea.styles.ts +3 -3
  176. package/src/components/TextInput/TextInput.stories.tsx +7 -7
  177. package/src/components/TextInput/TextInput.styles.ts +42 -19
  178. package/src/components/TextInput/TextInput.tsx +3 -1
  179. package/src/components/Toast/Toast.stories.tsx +1 -1
  180. package/src/components/Toast/Toast.styles.tsx +7 -7
  181. package/src/components/Toast/Toast.tsx +5 -4
  182. package/src/components/Toast/Toaster.tsx +17 -20
  183. package/src/components/Tree/Tree.stories.tsx +1 -1
  184. package/src/components/Tree/TreeItem.tsx +1 -1
  185. package/src/index.ts +5 -0
  186. package/src/theme/THEME_MAPPING.md +36 -37
  187. package/src/theme/ThemeColorCoverageRuntime.stories.tsx +236 -0
  188. package/src/theme/direct-token-migration-plan.md +121 -0
  189. package/src/theme/figma-mcp-check-report.md +225 -0
  190. package/src/theme/figma-mcp-component-checklist.json +1250 -0
  191. package/src/theme/global.css +7 -3
  192. package/src/theme/presets/colors.js +173 -64
  193. package/src/theme/themes/skyller/baseline.css +0 -4
  194. package/src/theme/themes/variable-mapping.css +1064 -0
  195. package/src/theme/themes/variable.css +248 -230
  196. package/src/theme/themes/xspector/baseline.css +0 -4
  197. package/src/theme/themes/xspector/components/dropdown-menu.css +4 -4
  198. package/src/theme/themes/xspector/components/loading.css +2 -2
  199. package/src/theme/tokens/baseline.css +0 -3
  200. package/src/theme/tokens/color.css +36 -65
  201. package/src/theme/tokens/components/action-button.css +6 -6
  202. package/src/theme/tokens/components/button.css +189 -189
  203. package/src/theme/tokens/components/dropdown-menu.css +5 -5
  204. package/src/theme/tokens/components/footer.css +1 -1
  205. package/src/theme/tokens/components/loading.css +2 -2
  206. package/src/theme/tokens/components/switch.css +11 -11
  207. package/src/theme/tokens/typography.css +28 -28
  208. package/src/theme/tokens_old/baseline.css +13 -0
  209. package/src/theme/tokens_old/color.css +78 -0
  210. package/src/theme/tokens_old/components/action-button.css +127 -0
  211. package/src/theme/tokens_old/components/button.css +512 -0
  212. package/src/theme/tokens_old/components/dropdown-menu.css +27 -0
  213. package/src/theme/tokens_old/components/footer.css +9 -0
  214. package/src/theme/tokens_old/components/loading.css +11 -0
  215. package/src/theme/tokens_old/components/navbar.css +9 -0
  216. package/src/theme/tokens_old/components/progress-bar.css +8 -0
  217. package/src/theme/tokens_old/components/switch.css +29 -0
  218. package/src/theme/tokens_old/typography.css +199 -0
  219. package/src/theme/tokens_old/variables.css +28 -0
  220. package/src/theme/utils.js +172 -33
  221. package/src/utils/colors.ts +367 -278
  222. package/src/theme/themes/skyller/color.css +0 -79
  223. package/src/theme/themes/skyller/palette.css +0 -143
  224. package/src/theme/themes/skyller/state.css +0 -94
  225. package/src/theme/themes/skyller/transparent.css +0 -94
  226. package/src/theme/themes/xspector/color.css +0 -83
  227. package/src/theme/themes/xspector/palette.css +0 -142
  228. package/src/theme/themes/xspector/state.css +0 -94
  229. package/src/theme/themes/xspector/transparent.css +0 -93
  230. /package/src/theme/{tokens → tokens_old}/palette.css +0 -0
  231. /package/src/theme/{tokens → tokens_old}/state.css +0 -0
  232. /package/src/theme/{tokens → tokens_old}/transparent.css +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovula/ui",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "main": "dist/cjs/bundle.js",
5
5
  "module": "dist/esm/bundle.js",
6
6
  "types": "dist/index.d.ts",
@@ -77,7 +77,7 @@
77
77
  "dependencies": {
78
78
  "@headlessui/react": "^2.0.3",
79
79
  "@heroicons/react": "^2.1.3",
80
- "lucide-react": "^0.460.0",
80
+ "@hookform/resolvers": "^5.2.2",
81
81
  "@radix-ui/react-alert-dialog": "^1.0.5",
82
82
  "@radix-ui/react-avatar": "^1.1.0",
83
83
  "@radix-ui/react-checkbox": "^1.0.4",
@@ -99,9 +99,11 @@
99
99
  "class-variance-authority": "^0.7.0",
100
100
  "clsx": "^2.1.1",
101
101
  "date-fns": "^3.6.0",
102
+ "lucide-react": "^0.460.0",
102
103
  "react": "^17.0.0 || ^18.0.0",
103
104
  "react-day-picker": "^9.0.7",
104
105
  "react-dom": "^17.0.0 || ^18.0.0",
106
+ "react-hook-form": "^7.71.2",
105
107
  "tailwind-merge": "^2.3.0",
106
108
  "tailwindcss-animate": "^1.0.7",
107
109
  "yup": "^1.4.0"
@@ -20,7 +20,7 @@ const meta = {
20
20
  },
21
21
  decorators: [
22
22
  (Story) => (
23
- <div className="p-5 bg-base-bg2">
23
+ <div className="p-5 bg-bg-bg2">
24
24
  <Story />
25
25
  </div>
26
26
  ),
@@ -99,23 +99,23 @@ const forcedStateClassName: Record<
99
99
  const icon = <ArrowsUpDownIcon />;
100
100
 
101
101
  const renderPreview = (shape: "round" | "capsule") => (
102
- <div className="bg-base-bg2 p-8 min-h-screen">
102
+ <div className="bg-bg-bg2 p-8 min-h-screen">
103
103
  <div className="flex flex-col gap-6">
104
- <h3 className="text-xl font-semibold tracking-wide text-text-white">Function button</h3>
104
+ <h3 className="text-xl font-semibold tracking-wide text-text-contrast-max">Function button</h3>
105
105
 
106
106
  {previewStates.map((state) => (
107
107
  <div
108
108
  key={state.key}
109
109
  className="grid grid-cols-[120px_repeat(3,minmax(0,1fr))] items-stretch gap-4"
110
110
  >
111
- <span className="pt-3 text-sm font-semibold text-text-white">{state.label}</span>
111
+ <span className="pt-3 text-sm font-semibold text-text-contrast-max">{state.label}</span>
112
112
 
113
113
  {previewVariants.map((previewVariant) => (
114
114
  <div
115
115
  key={previewVariant.variant}
116
- className="h-full rounded-lg border border-base-bg-stroke1 bg-base-bg1 p-3"
116
+ className="h-full rounded-lg border border-bg-stroke1 bg-bg-bg1 p-3"
117
117
  >
118
- <span className="text-xs font-semibold tracking-wide text-text-white uppercase">
118
+ <span className="text-xs font-semibold tracking-wide text-text-contrast-max uppercase">
119
119
  {previewVariant.label}
120
120
  </span>
121
121
 
@@ -106,7 +106,7 @@ export const actionButtonVariants = cva(
106
106
  {
107
107
  size: "xxs",
108
108
  variant: "icon",
109
- className: "px-[1px] py-[1px] [&_svg]:size-[12px]",
109
+ className: "px-[1px] py-[1px] [&_svg]:size-[10px]",
110
110
  },
111
111
  {
112
112
  size: "xs",
@@ -105,3 +105,25 @@ export const CustomStyle = {
105
105
  );
106
106
  },
107
107
  } satisfies StoryObj;
108
+
109
+ export const FigmaFail = {
110
+ render: () => (
111
+ <div className="flex w-full">
112
+ <AlertDialog defaultOpen>
113
+ <AlertDialogContent>
114
+ <AlertDialogHeader>
115
+ <AlertDialogTitle>Infomation update failed</AlertDialogTitle>
116
+ <AlertDialogDescription>
117
+ Please login again and complete your profile to activate your account.
118
+ </AlertDialogDescription>
119
+ </AlertDialogHeader>
120
+ <AlertDialogFooter>
121
+ <AlertDialogAction className="w-[140px] justify-center">
122
+ Try again
123
+ </AlertDialogAction>
124
+ </AlertDialogFooter>
125
+ </AlertDialogContent>
126
+ </AlertDialog>
127
+ </div>
128
+ ),
129
+ } satisfies StoryObj;
@@ -18,7 +18,7 @@ const AlertDialogOverlay = React.forwardRef<
18
18
  >(({ className, ...props }, ref) => (
19
19
  <AlertDialogPrimitive.Overlay
20
20
  className={cn(
21
- "fixed inset-0 bg-base-popup-curtain z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
21
+ "fixed inset-0 bg-modal-overlay z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
22
22
  className
23
23
  )}
24
24
  {...props}
@@ -37,7 +37,7 @@ const AlertDialogContent = React.forwardRef<
37
37
  <AlertDialogPrimitive.Content
38
38
  ref={ref}
39
39
  className={cn(
40
- "fixed text-base-popup-foreground left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-6 border border-base-popup bg-base-popup p-8 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-md",
40
+ "fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-32px)] max-w-[460px] translate-x-[-50%] translate-y-[-50%] gap-8 rounded-md bg-modal-surface px-6 py-8 text-text-contrast-max shadow-[0px_12px_24px_-4px_rgba(0,0,0,0.12)] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
41
41
  className
42
42
  )}
43
43
  {...props}
@@ -52,7 +52,7 @@ const AlertDialogHeader = ({
52
52
  }: React.HTMLAttributes<HTMLDivElement>) => (
53
53
  <div
54
54
  className={cn(
55
- "flex flex-col space-y-2 text-center sm:text-left",
55
+ "flex flex-col items-center gap-2 text-center",
56
56
  className
57
57
  )}
58
58
  {...props}
@@ -66,7 +66,7 @@ const AlertDialogFooter = ({
66
66
  }: React.HTMLAttributes<HTMLDivElement>) => (
67
67
  <div
68
68
  className={cn(
69
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
69
+ "flex flex-col-reverse items-center justify-center gap-3 sm:flex-row sm:gap-4",
70
70
  className
71
71
  )}
72
72
  {...props}
@@ -80,7 +80,7 @@ const AlertDialogTitle = React.forwardRef<
80
80
  >(({ className, ...props }, ref) => (
81
81
  <AlertDialogPrimitive.Title
82
82
  ref={ref}
83
- className={cn("typography-h5", className)}
83
+ className={cn("typography-subtitle3 text-text-contrast-max", className)}
84
84
  {...props}
85
85
  />
86
86
  ));
@@ -92,7 +92,7 @@ const AlertDialogDescription = React.forwardRef<
92
92
  >(({ className, ...props }, ref) => (
93
93
  <AlertDialogPrimitive.Description
94
94
  ref={ref}
95
- className={cn("text-sm", className)}
95
+ className={cn("typography-small1 text-text-contrast-max", className)}
96
96
  {...props}
97
97
  />
98
98
  ));
@@ -52,7 +52,7 @@ export const Preview = {
52
52
  const BORDER: AvatarProps["rounded"][] = ["full", "normal", "none"];
53
53
 
54
54
  return (
55
- <div className="flex flex-col gap-2 w-full bg-black p-20">
55
+ <div className="flex flex-col gap-2 w-full bg-bg-bg2 p-20">
56
56
  {BORDER.map((rounded) => (
57
57
  <div key={rounded} className="flex flex-row items-center gap-3">
58
58
  <Avatar
@@ -2,7 +2,7 @@ import { cva } from "class-variance-authority";
2
2
 
3
3
  export const avatarVariants = cva(
4
4
  [
5
- "flex items-center justify-center bg-grey2-700 text-foreground typography-subtitle2 truncate",
5
+ "flex items-center justify-center bg-grey2-700 text-common-black typography-subtitle2 truncate",
6
6
  ],
7
7
  {
8
8
  variants: {
@@ -39,7 +39,7 @@ const AvatarFallback = React.forwardRef<
39
39
  <AvatarPrimitive.Fallback
40
40
  ref={ref}
41
41
  className={cn(
42
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
42
+ "flex h-full w-full items-center justify-center rounded-full bg-inherit text-inherit",
43
43
  className
44
44
  )}
45
45
  {...props}
@@ -55,7 +55,7 @@ export const Preview = {
55
55
  };
56
56
 
57
57
  return (
58
- <div className="flex flex-col gap-2 w-full bg-black p-20">
58
+ <div className="flex flex-col gap-2 w-full bg-bg-bg2 p-20">
59
59
  <div className="flex flex-row items-center gap-3">
60
60
  <AvatarGroup>
61
61
  <Avatar size="lg" rounded="full" type="text" text="AS" />
@@ -189,7 +189,13 @@ export const ShapePreview = {
189
189
  } satisfies Story;
190
190
 
191
191
  const previewColors: Array<
192
- "primary" | "secondary" | "tertiary" | "info" | "success" | "warning" | "error"
192
+ | "primary"
193
+ | "secondary"
194
+ | "tertiary"
195
+ | "info"
196
+ | "success"
197
+ | "warning"
198
+ | "error"
193
199
  > = ["primary", "secondary", "tertiary", "info", "success", "warning", "error"];
194
200
  const previewSizes: Array<"lg" | "md" | "sm"> = ["lg", "md", "sm"];
195
201
  const previewSizeLabel: Record<(typeof previewSizes)[number], string> = {
@@ -197,12 +203,14 @@ const previewSizeLabel: Record<(typeof previewSizes)[number], string> = {
197
203
  md: "Medium",
198
204
  sm: "Small",
199
205
  };
200
- const previewStyles: Array<{ label: string; variant: "solid" | "outline" | "text"; }> =
201
- [
202
- { label: "Solid", variant: "solid" },
203
- { label: "Outline", variant: "outline" },
204
- { label: "Text", variant: "text" },
205
- ];
206
+ const previewStyles: Array<{
207
+ label: string;
208
+ variant: "solid" | "outline" | "text";
209
+ }> = [
210
+ { label: "Solid", variant: "solid" },
211
+ { label: "Outline", variant: "outline" },
212
+ { label: "Text", variant: "text" },
213
+ ];
206
214
 
207
215
  const icon = <ArrowsUpDownIcon />;
208
216
  const previewStates = [
@@ -213,11 +221,11 @@ const previewStates = [
213
221
 
214
222
  export const FigmaPreview = {
215
223
  render: () => (
216
- <div className="bg-base-bg2 p-8 min-h-screen">
224
+ <div className="bg-bg-bg2 p-8 min-h-screen">
217
225
  <div className="flex flex-col gap-10">
218
226
  {previewColors.map((color) => (
219
227
  <div key={color} className="flex flex-col gap-2">
220
- <h3 className="text-xl font-semibold tracking-wide text-text-white capitalize">
228
+ <h3 className="text-xl font-semibold tracking-wide text-text-contrast-max capitalize">
221
229
  {color} btn
222
230
  </h3>
223
231
 
@@ -226,16 +234,16 @@ export const FigmaPreview = {
226
234
  key={state.label}
227
235
  className="grid grid-cols-[repeat(3,minmax(0,1fr))] items-stretch gap-2"
228
236
  >
229
- {/* <span className="pt-3 text-sm font-semibold text-text-white">
237
+ {/* <span className="pt-3 text-sm font-semibold text-text-contrast-max">
230
238
  {state.label}
231
239
  </span> */}
232
240
 
233
241
  {previewStyles.map((style) => (
234
242
  <div
235
243
  key={style.label}
236
- className="h-full rounded-lg border border-base-bg-stroke1 bg-base-bg1 p-3"
244
+ className="h-full rounded-lg border border-bg-stroke1 bg-bg-bg1 p-3"
237
245
  >
238
- <span className="text-xs font-semibold tracking-wide text-text-white uppercase">
246
+ <span className="text-xs font-semibold tracking-wide text-text-contrast-max uppercase">
239
247
  {style.label} ({state.label})
240
248
  </span>
241
249
 
@@ -287,11 +295,11 @@ export const FigmaPreview = {
287
295
 
288
296
  export const FigmaPreviewCapsule = {
289
297
  render: () => (
290
- <div className="bg-base-bg2 p-8 min-h-screen">
298
+ <div className="bg-bg-bg2 p-8 min-h-screen">
291
299
  <div className="flex flex-col gap-10">
292
300
  {previewColors.map((color) => (
293
301
  <div key={color} className="flex flex-col gap-4">
294
- <h3 className="text-xl font-semibold tracking-wide text-text-white capitalize">
302
+ <h3 className="text-xl font-semibold tracking-wide text-text-contrast-max capitalize">
295
303
  {color} btn
296
304
  </h3>
297
305
 
@@ -300,16 +308,16 @@ export const FigmaPreviewCapsule = {
300
308
  key={state.label}
301
309
  className="grid grid-cols-[repeat(3,minmax(0,1fr))] items-stretch gap-4"
302
310
  >
303
- {/* <span className="pt-3 text-sm font-semibold text-text-white">
311
+ {/* <span className="pt-3 text-sm font-semibold text-text-contrast-max">
304
312
  {state.label}
305
313
  </span> */}
306
314
 
307
315
  {previewStyles.map((style) => (
308
316
  <div
309
317
  key={style.label}
310
- className="h-full rounded-lg border border-base-bg-stroke1 bg-base-bg1 p-3"
318
+ className="h-full rounded-lg border border-bg-stroke1 bg-bg-bg1 p-3"
311
319
  >
312
- <span className="text-xs font-semibold tracking-wide text-text-white uppercase">
320
+ <span className="text-xs font-semibold tracking-wide text-text-contrast-max uppercase">
313
321
  {style.label} ({state.label})
314
322
  </span>
315
323
 
@@ -22,7 +22,7 @@ function Calendar({
22
22
  captionLayout="dropdown-years"
23
23
  {...props}
24
24
  className={cn(
25
- "bg-surface text-surface-foreground border-surface",
25
+ "bg-bg-bg1 text-common-black border-bg-bg1",
26
26
  className
27
27
  )}
28
28
  classNames={{
@@ -30,8 +30,8 @@ function Calendar({
30
30
  day_button: cn(defaultClassNames.day_button, "size-9"),
31
31
  day: "typography-subtitle1 ",
32
32
  today:
33
- "text-bold text-surface-foreground [&_button]:rounded-full [&_button]:!border-primary [&_button]:!border [&_button]:!border-solid",
34
- selected: "bg-primary !text-primary-foreground rounded-full ",
33
+ "text-bold text-common-black [&_button]:rounded-full [&_button]:!border-primary [&_button]:!border [&_button]:!border-solid",
34
+ selected: "bg-primary !text-state-primary-text-solid rounded-full ",
35
35
  weekdays: "text-gray-400",
36
36
  month_caption: cn(defaultClassNames.month_caption, "h-[54px]"),
37
37
  outside: "text-gray-400",
@@ -12,7 +12,7 @@ const meta = {
12
12
  },
13
13
  decorators: [
14
14
  (Story) => (
15
- <div className="p-5 flex w-full bg-base-bg2">
15
+ <div className="p-5 flex w-full bg-bg-bg2">
16
16
  <Story />
17
17
  </div>
18
18
  ),
@@ -37,7 +37,7 @@ export const Default = {
37
37
  <Checkbox id="terms" {...props} />
38
38
  <label
39
39
  htmlFor="terms"
40
- className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
40
+ className="text-sm font-medium leading-none text-text-contrast-max peer-disabled:cursor-not-allowed peer-disabled:text-state-disable-outline"
41
41
  >
42
42
  Accept terms and conditions
43
43
  </label>
@@ -59,11 +59,11 @@ export const WithText = {
59
59
  <div className="grid gap-1.5 leading-none">
60
60
  <label
61
61
  htmlFor="terms1"
62
- className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
62
+ className="text-sm font-medium leading-none text-text-contrast-max peer-disabled:cursor-not-allowed peer-disabled:text-state-disable-outline"
63
63
  >
64
64
  Accept terms and conditions
65
65
  </label>
66
- <p className="text-sm text-muted-foreground">
66
+ <p className="text-sm text-text-g-contrast-medium">
67
67
  You agree to our Terms of Service and Privacy Policy.
68
68
  </p>
69
69
  </div>
@@ -83,7 +83,7 @@ export const Disabled = {
83
83
  <Checkbox id="terms2" disabled />
84
84
  <label
85
85
  htmlFor="terms2"
86
- className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
86
+ className="text-sm font-medium leading-none text-state-disable-outline peer-disabled:cursor-not-allowed"
87
87
  >
88
88
  Accept terms and conditions
89
89
  </label>
@@ -101,7 +101,11 @@ type CheckboxPreviewRow = {
101
101
 
102
102
  const checkboxPreviewRows: CheckboxPreviewRow[] = [
103
103
  { label: "Default", checked: false },
104
- { label: "Hover", checked: false, className: "!border-function-default-hover" },
104
+ {
105
+ label: "Hover",
106
+ checked: false,
107
+ className: "!border-function-default-hover",
108
+ },
105
109
  { label: "Disable", checked: false, disabled: true },
106
110
  { label: "Checked", checked: true },
107
111
  {
@@ -118,17 +122,36 @@ const checkboxPreviewRows: CheckboxPreviewRow[] = [
118
122
  className:
119
123
  "!data-[state=indeterminate]:border-function-active-hover !data-[state=indeterminate]:bg-function-active-hover",
120
124
  },
121
- { label: "Indeterminate - Disable", checked: "indeterminate", disabled: true },
125
+ {
126
+ label: "Indeterminate - Disable",
127
+ checked: "indeterminate",
128
+ disabled: true,
129
+ },
122
130
  ];
123
131
 
124
132
  export const FigmaPreview = {
125
133
  render: () => (
126
- <div className="bg-base-bg2 p-8 min-h-screen">
127
- <div className="mx-auto flex w-full max-w-[360px] flex-col gap-4 rounded-lg border border-base-bg-stroke1 bg-base-bg1 p-6">
134
+ <div className="bg-bg-bg2 p-8 min-h-screen">
135
+ <div className="mx-auto flex w-full max-w-[360px] flex-col gap-4 rounded-lg border border-bg-stroke1 bg-bg-bg1 p-6">
128
136
  {checkboxPreviewRows.map((row) => (
129
- <div key={row.label} className="grid grid-cols-[160px_16px] items-center gap-4">
130
- <span className="text-sm font-medium text-text-white">{row.label}</span>
131
- <Checkbox checked={row.checked} disabled={row.disabled} className={row.className} />
137
+ <div
138
+ key={row.label}
139
+ className="grid grid-cols-[160px_16px] items-center gap-4"
140
+ >
141
+ <span
142
+ className={`text-sm font-medium ${
143
+ row.disabled
144
+ ? "text-state-disable-outline"
145
+ : "text-text-contrast-max"
146
+ }`}
147
+ >
148
+ {row.label}
149
+ </span>
150
+ <Checkbox
151
+ checked={row.checked}
152
+ disabled={row.disabled}
153
+ className={row.className}
154
+ />
132
155
  </div>
133
156
  ))}
134
157
  </div>
@@ -14,17 +14,19 @@ const Checkbox = React.forwardRef<
14
14
  <CheckboxPrimitive.Root
15
15
  ref={ref}
16
16
  className={cn(
17
- "peer size-4 shrink-0 cursor-pointer rounded-[var(--spacing-spacing-xxs,2px)] border border-function-default-solid ring-offset-background",
17
+ "peer size-4 shrink-0 cursor-pointer rounded-[var(--spacing-spacing-xxs,2px)] border border-function-default-solid ring-offset-bg-bg1",
18
18
  "hover:border-function-default-hover",
19
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
20
- "disabled:cursor-not-allowed disabled:border-state-disable-solid disabled:text-state-disable-outline disabled:data-[state=checked]:bg-state-disable-solid disabled:data-[state=indeterminate]:bg-state-disable-solid",
19
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-input-active-stroke focus-visible:ring-offset-2",
20
+ "disabled:cursor-not-allowed disabled:border-state-disable-outline disabled:text-state-disable-outline",
21
+ "disabled:data-[state=checked]:border-state-disable-solid disabled:data-[state=checked]:bg-state-disable-solid",
22
+ "disabled:data-[state=indeterminate]:border-state-disable-solid disabled:data-[state=indeterminate]:bg-state-disable-solid",
21
23
  {
22
24
  "data-[state=checked]:border-function-active-solid data-[state=checked]:bg-function-active-solid data-[state=checked]:text-function-active-icon data-[state=indeterminate]:border-function-active-solid data-[state=indeterminate]:bg-function-active-solid data-[state=indeterminate]:text-function-active-icon":
23
25
  !props.disabled,
24
26
  "hover:data-[state=checked]:border-function-active-hover hover:data-[state=checked]:bg-function-active-hover hover:data-[state=indeterminate]:border-function-active-hover hover:data-[state=indeterminate]:bg-function-active-hover":
25
27
  !props.disabled,
26
28
  },
27
- className
29
+ className,
28
30
  )}
29
31
  {...props}
30
32
  >
@@ -32,7 +34,7 @@ const Checkbox = React.forwardRef<
32
34
  className={cn(
33
35
  "flex size-[14px] items-center justify-center text-current",
34
36
  "[&[data-state=checked]_.checkbox-check-icon]:block",
35
- "[&[data-state=indeterminate]_.checkbox-minus-icon]:block"
37
+ "[&[data-state=indeterminate]_.checkbox-minus-icon]:block",
36
38
  )}
37
39
  >
38
40
  <CheckIcon className="checkbox-check-icon hidden size-[14px]" />
@@ -2,7 +2,7 @@ import { cva } from "class-variance-authority";
2
2
 
3
3
  export const collapseButtonVariants = cva(
4
4
  [
5
- "flex flex-1 bg-secondary-default hover:bg-secondary-hover text-secondary-foreground",
5
+ "flex flex-1 bg-secondary-default hover:bg-secondary-hover text-state-secondary-text-solid",
6
6
  "focus:outline-none focus-visible:ring focus-visible:ring-gray-500 focus-visible:ring-opacity-75",
7
7
  ],
8
8
  {
@@ -127,7 +127,7 @@ export function DataTable<TData, TValue>({
127
127
  desc: <ArrowDownIcon className="ml-3 h-4 w-4" />,
128
128
  }[header.column.getIsSorted() as string] ??
129
129
  (header.column.getCanSort() ? (
130
- <ArrowsUpDownIcon className="ml-3 h-4 w-4 text-text-grey-light" />
130
+ <ArrowsUpDownIcon className="ml-3 h-4 w-4 text-text-g-contrast-high" />
131
131
  ) : null)}
132
132
  </div>
133
133
  </TableHead>
@@ -155,7 +155,7 @@ export function DataTable<TData, TValue>({
155
155
  <TableRow className="h-full self-stretch">
156
156
  <TableCell
157
157
  colSpan={columns.length}
158
- className="typography-body1 text-text-grey-medium text-center h-full"
158
+ className="typography-body1 text-text-g-contrast-medium text-center h-full"
159
159
  >
160
160
  <div className="flex flex-1 h-full flex-col items-center justify-center gap-3">
161
161
  <ClipboardDocumentListIcon className="w-8 text-secondary-120" />