@nobak/design-system 1.0.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 (304) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +142 -0
  3. package/lib/assets/icons.js +67 -0
  4. package/lib/components/AccountOverview/AccountOverview.js +122 -0
  5. package/lib/components/AdminPanel.js +58 -0
  6. package/lib/components/AssetExchange/AssetExchange.js +189 -0
  7. package/lib/components/AuthenticationFlow.js +216 -0
  8. package/lib/components/ConversationInterface/ConversationInterface.js +232 -0
  9. package/lib/components/DevFooter.js +38 -0
  10. package/lib/components/DevMenu.js +35 -0
  11. package/lib/components/DevSidebar.js +28 -0
  12. package/lib/components/DigitalDisplay.js +83 -0
  13. package/lib/components/Footer.js +45 -0
  14. package/lib/components/HeroContainer.js +10 -0
  15. package/lib/components/IntentRecognition/IntentRecognition.js +174 -0
  16. package/lib/components/Logo.js +259 -0
  17. package/lib/components/MenuBar.js +56 -0
  18. package/lib/components/NetworkSettings.js +223 -0
  19. package/lib/components/RecoverySetup/RecoverySetup.js +354 -0
  20. package/lib/components/RisingSun.js +122 -0
  21. package/lib/components/Symbol.js +226 -0
  22. package/lib/components/TransactionComposer/TransactionComposer.js +258 -0
  23. package/lib/components/TransactionConfirmation.js +184 -0
  24. package/lib/components/WalletMenu.js +33 -0
  25. package/lib/components/console/code/CodeBlock.js +150 -0
  26. package/lib/components/console/code/index.js +9 -0
  27. package/lib/components/console/data/DataTable.js +245 -0
  28. package/lib/components/console/data/MetricCard.js +79 -0
  29. package/lib/components/console/data/index.js +11 -0
  30. package/lib/components/console/documentation/index.js +10 -0
  31. package/lib/components/console/forms/APIKeyGenerator.js +261 -0
  32. package/lib/components/console/forms/SearchBar.js +210 -0
  33. package/lib/components/console/forms/index.js +10 -0
  34. package/lib/components/console/index.js +29 -0
  35. package/lib/components/console/layout/ConsoleCard.js +82 -0
  36. package/lib/components/console/layout/ConsoleLayout.js +86 -0
  37. package/lib/components/console/layout/index.js +10 -0
  38. package/lib/components/console/monitoring/StatusIndicator.js +128 -0
  39. package/lib/components/console/monitoring/index.js +9 -0
  40. package/lib/components/console/navigation/DevFooter.js +38 -0
  41. package/lib/components/console/navigation/DevMenu.js +35 -0
  42. package/lib/components/console/navigation/DevSidebar.js +28 -0
  43. package/lib/components/console/navigation/index.js +11 -0
  44. package/lib/components/console/settings/index.js +10 -0
  45. package/lib/components/index.js +12 -0
  46. package/lib/design/ColorPicker.stories.js +9 -0
  47. package/lib/design/HSLTool-V1.js +345 -0
  48. package/lib/design/HSLTool-V2.js +475 -0
  49. package/lib/design/HSLTool-V3.js +543 -0
  50. package/lib/design/HSLTool-V4.js +1139 -0
  51. package/lib/design/HSLTool.js +374 -0
  52. package/lib/design/OKLCHColorPicker.stories.js +24 -0
  53. package/lib/design/OKLCHTool.js +1014 -0
  54. package/lib/index.js +4 -0
  55. package/lib/shared/components/Avatar/Avatar.js +18 -0
  56. package/lib/shared/components/Avatar/index.js +1 -0
  57. package/lib/shared/components/Badge/Badge.js +34 -0
  58. package/lib/shared/components/Badge/index.js +1 -0
  59. package/lib/shared/components/Breadcrumb/Breadcrumb.js +13 -0
  60. package/lib/shared/components/Breadcrumb/index.js +1 -0
  61. package/lib/shared/components/Button/Button.js +184 -0
  62. package/lib/shared/components/Button/index.js +1 -0
  63. package/lib/shared/components/Calendar/Calendar.js +155 -0
  64. package/lib/shared/components/Calendar/CalendarDay.js +251 -0
  65. package/lib/shared/components/Calendar/CalendarHeader.js +88 -0
  66. package/lib/shared/components/Calendar/CalendarMonth.js +106 -0
  67. package/lib/shared/components/Calendar/CalendarWeek.js +267 -0
  68. package/lib/shared/components/Calendar/constants.js +73 -0
  69. package/lib/shared/components/Calendar/index.js +3 -0
  70. package/lib/shared/components/Calendar/types.d.js +0 -0
  71. package/lib/shared/components/Cartel/Cartel.js +44 -0
  72. package/lib/shared/components/Cartel/index.js +1 -0
  73. package/lib/shared/components/Cell/Cell.js +105 -0
  74. package/lib/shared/components/Cell/index.js +1 -0
  75. package/lib/shared/components/Checkbox/Checkbox.js +27 -0
  76. package/lib/shared/components/Checkbox/index.js +1 -0
  77. package/lib/shared/components/Clock/Clock.js +6 -0
  78. package/lib/shared/components/Clock/index.js +1 -0
  79. package/lib/shared/components/ColorChecker/ColorChecker.js +89 -0
  80. package/lib/shared/components/ColorChecker/index.js +2 -0
  81. package/lib/shared/components/ColorChecker/utils.js +159 -0
  82. package/lib/shared/components/Command/Command.js +95 -0
  83. package/lib/shared/components/Command/index.js +1 -0
  84. package/lib/shared/components/Container/Container.js +18 -0
  85. package/lib/shared/components/Container/index.js +1 -0
  86. package/lib/shared/components/Cover/Cover.js +17 -0
  87. package/lib/shared/components/Cover/index.js +1 -0
  88. package/lib/shared/components/DatePicker/DatePicker.js +52 -0
  89. package/lib/shared/components/DatePicker/components/Calendar.js +125 -0
  90. package/lib/shared/components/DatePicker/components/CalendarDay.js +23 -0
  91. package/lib/shared/components/DatePicker/components/DateWrapper.js +15 -0
  92. package/lib/shared/components/DatePicker/components/index.js +2 -0
  93. package/lib/shared/components/DatePicker/index.js +1 -0
  94. package/lib/shared/components/DateTime/DateTime.js +51 -0
  95. package/lib/shared/components/DateTime/index.js +1 -0
  96. package/lib/shared/components/Debug/Debug.js +12 -0
  97. package/lib/shared/components/Debug/index.js +1 -0
  98. package/lib/shared/components/Disclosure/Disclosure.js +31 -0
  99. package/lib/shared/components/Disclosure/index.js +1 -0
  100. package/lib/shared/components/Dropdown/Dropdown.js +91 -0
  101. package/lib/shared/components/Dropdown/index.js +1 -0
  102. package/lib/shared/components/EmptyState/EmptyState.js +40 -0
  103. package/lib/shared/components/EmptyState/index.js +1 -0
  104. package/lib/shared/components/Form/Form.js +41 -0
  105. package/lib/shared/components/Form/components/DynamicForm.js +66 -0
  106. package/lib/shared/components/Form/components/StepperForm.js +266 -0
  107. package/lib/shared/components/Form/components/index.js +2 -0
  108. package/lib/shared/components/Form/context/Form.js +164 -0
  109. package/lib/shared/components/Form/context/index.js +1 -0
  110. package/lib/shared/components/Form/index.js +1 -0
  111. package/lib/shared/components/Form/types.d.js +1 -0
  112. package/lib/shared/components/Form/utils/index.js +31 -0
  113. package/lib/shared/components/GroupItems/GroupItems.js +17 -0
  114. package/lib/shared/components/GroupItems/index.js +1 -0
  115. package/lib/shared/components/Header/Header.js +26 -0
  116. package/lib/shared/components/Header/index.js +1 -0
  117. package/lib/shared/components/Heading/Heading.js +5 -0
  118. package/lib/shared/components/Heading/index.js +1 -0
  119. package/lib/shared/components/Icon/Icon.js +28 -0
  120. package/lib/shared/components/Icon/index.js +1 -0
  121. package/lib/shared/components/Identicons/Identicons.js +6 -0
  122. package/lib/shared/components/Identicons/index.d.js +0 -0
  123. package/lib/shared/components/Identicons/index.js +1 -0
  124. package/lib/shared/components/Image/Image.js +22 -0
  125. package/lib/shared/components/Image/index.js +1 -0
  126. package/lib/shared/components/Input/Input.js +201 -0
  127. package/lib/shared/components/Input/components/CheckBoxInput.js +81 -0
  128. package/lib/shared/components/Input/components/DateInput.js +89 -0
  129. package/lib/shared/components/Input/components/DefaultInput.js +102 -0
  130. package/lib/shared/components/Input/components/FileReaderInput.js +88 -0
  131. package/lib/shared/components/Input/components/NumberInput.js +141 -0
  132. package/lib/shared/components/Input/components/PickerInput.js +122 -0
  133. package/lib/shared/components/Input/components/RCInput.js +112 -0
  134. package/lib/shared/components/Input/components/Radiobox/RadioboxBasic.js +56 -0
  135. package/lib/shared/components/Input/components/Radiobox/RadioboxCard.js +27 -0
  136. package/lib/shared/components/Input/components/Radiobox/RadioboxFull.js +44 -0
  137. package/lib/shared/components/Input/components/Radiobox/index.js +3 -0
  138. package/lib/shared/components/Input/components/RadioboxInput.js +102 -0
  139. package/lib/shared/components/Input/components/SelectInput.js +70 -0
  140. package/lib/shared/components/Input/components/TextAreaInput.js +67 -0
  141. package/lib/shared/components/Input/components/TextInput.js +139 -0
  142. package/lib/shared/components/Input/components/TimeInput.js +37 -0
  143. package/lib/shared/components/Input/components/UploadFileInput.js +123 -0
  144. package/lib/shared/components/Input/components/index.js +13 -0
  145. package/lib/shared/components/Input/components/types.d.js +0 -0
  146. package/lib/shared/components/Input/index.js +1 -0
  147. package/lib/shared/components/Input/types.d.js +0 -0
  148. package/lib/shared/components/Layout/Layout.js +13 -0
  149. package/lib/shared/components/Layout/index.js +1 -0
  150. package/lib/shared/components/List/List.js +30 -0
  151. package/lib/shared/components/List/index.js +1 -0
  152. package/lib/shared/components/Loader/Loader.js +27 -0
  153. package/lib/shared/components/Loader/index.js +1 -0
  154. package/lib/shared/components/Modal/Modal.js +102 -0
  155. package/lib/shared/components/Modal/index.js +1 -0
  156. package/lib/shared/components/Notification/Notification.js +39 -0
  157. package/lib/shared/components/Notification/index.js +1 -0
  158. package/lib/shared/components/Person/Person.js +81 -0
  159. package/lib/shared/components/Person/index.js +1 -0
  160. package/lib/shared/components/Popover/Popover.js +39 -0
  161. package/lib/shared/components/Popover/index.js +1 -0
  162. package/lib/shared/components/QRCode/QRCode.js +329 -0
  163. package/lib/shared/components/QRCode/index.js +1 -0
  164. package/lib/shared/components/RadioGroup/RadioGroup.js +35 -0
  165. package/lib/shared/components/RadioGroup/components/DefaultGroup.js +71 -0
  166. package/lib/shared/components/RadioGroup/components/VerticalGroup.js +83 -0
  167. package/lib/shared/components/RadioGroup/components/index.js +2 -0
  168. package/lib/shared/components/RadioGroup/index.js +1 -0
  169. package/lib/shared/components/Search/Search.js +12 -0
  170. package/lib/shared/components/Search/index.js +1 -0
  171. package/lib/shared/components/Select/Select.js +90 -0
  172. package/lib/shared/components/Select/index.js +1 -0
  173. package/lib/shared/components/Sidebar/Sidebar.js +42 -0
  174. package/lib/shared/components/Sidebar/index.js +1 -0
  175. package/lib/shared/components/SlideOver/SlideOver.js +81 -0
  176. package/lib/shared/components/SlideOver/index.js +1 -0
  177. package/lib/shared/components/Slider/Slider.js +80 -0
  178. package/lib/shared/components/Slider/index.js +1 -0
  179. package/lib/shared/components/Stepper/Stepper.js +32 -0
  180. package/lib/shared/components/Stepper/index.js +1 -0
  181. package/lib/shared/components/Steps/Steps.js +53 -0
  182. package/lib/shared/components/Steps/index.js +1 -0
  183. package/lib/shared/components/Switch/Switch.js +26 -0
  184. package/lib/shared/components/Switch/index.js +1 -0
  185. package/lib/shared/components/Tab/Tab.js +59 -0
  186. package/lib/shared/components/Tab/index.js +1 -0
  187. package/lib/shared/components/Table/Table.js +47 -0
  188. package/lib/shared/components/Table/index.js +1 -0
  189. package/lib/shared/components/Text/Text.js +11 -0
  190. package/lib/shared/components/Text/index.js +1 -0
  191. package/lib/shared/components/TextList/TextList.js +15 -0
  192. package/lib/shared/components/TextList/index.js +1 -0
  193. package/lib/shared/components/TimePicker/TimePicker.js +161 -0
  194. package/lib/shared/components/TimePicker/index.js +1 -0
  195. package/lib/shared/components/Tooltip/Tooltip.js +13 -0
  196. package/lib/shared/components/Tooltip/index.js +1 -0
  197. package/lib/shared/components/Uploader/Uploader.js +63 -0
  198. package/lib/shared/components/Uploader/index.js +1 -0
  199. package/lib/shared/components/Video/Video.js +20 -0
  200. package/lib/shared/components/Video/index.js +1 -0
  201. package/lib/shared/components/index.d.js +0 -0
  202. package/lib/shared/components/index.js +50 -0
  203. package/lib/shared/elements/Color/ColorPallet.js +20 -0
  204. package/lib/shared/elements/Color/index.js +1 -0
  205. package/lib/shared/elements/Text.js +37 -0
  206. package/lib/shared/elements/index.js +1 -0
  207. package/lib/shared/helpers/FakeLink.js +8 -0
  208. package/lib/shared/helpers/constants.js +359 -0
  209. package/lib/shared/helpers/index.js +2 -0
  210. package/lib/shared/helpers/isEqual.js +56 -0
  211. package/lib/shared/index.d.js +0 -0
  212. package/lib/shared/index.js +1 -0
  213. package/lib/shared/stories/components/Avatar.stories.js +17 -0
  214. package/lib/shared/stories/components/Badge.stories.dev.js +37 -0
  215. package/lib/shared/stories/components/Button.stories.js +553 -0
  216. package/lib/shared/stories/components/Calendar.stories.js +62 -0
  217. package/lib/shared/stories/components/Cartel.stories.js +32 -0
  218. package/lib/shared/stories/components/Checkbox.stories.js +15 -0
  219. package/lib/shared/stories/components/ColorChecker.stories.dev.js +16 -0
  220. package/lib/shared/stories/components/DateTime.stories.js +27 -0
  221. package/lib/shared/stories/components/Disclosure.stories.js +30 -0
  222. package/lib/shared/stories/components/Dropdown.stories.js +39 -0
  223. package/lib/shared/stories/components/Form/Default.stories.js +201 -0
  224. package/lib/shared/stories/components/Form/DummyForm.stories.js +48 -0
  225. package/lib/shared/stories/components/Form/DynamicForm.stories.js +155 -0
  226. package/lib/shared/stories/components/Form/StepperForm.stories.js +138 -0
  227. package/lib/shared/stories/components/Form/ValidateForm.stories.js +70 -0
  228. package/lib/shared/stories/components/Form/Validation.stories.js +184 -0
  229. package/lib/shared/stories/components/GroupItems.stories.js +23 -0
  230. package/lib/shared/stories/components/Header.stories.js +29 -0
  231. package/lib/shared/stories/components/Heading.stories.js +27 -0
  232. package/lib/shared/stories/components/Icon.stories.js +22 -0
  233. package/lib/shared/stories/components/Image.stories.js +23 -0
  234. package/lib/shared/stories/components/Input/Checkbox.stories.js +45 -0
  235. package/lib/shared/stories/components/Input/DatePicker.stories.js +23 -0
  236. package/lib/shared/stories/components/Input/Defaut.stories.js +24 -0
  237. package/lib/shared/stories/components/Input/Number.stories.js +24 -0
  238. package/lib/shared/stories/components/Input/RCI.stories.js +59 -0
  239. package/lib/shared/stories/components/Input/Radiobox.stories.dev.js +28 -0
  240. package/lib/shared/stories/components/Input/Select.stories.dev.js +27 -0
  241. package/lib/shared/stories/components/Input/SelectMultiple.stories.dev.js +510 -0
  242. package/lib/shared/stories/components/Input/Textarea.stories.js +24 -0
  243. package/lib/shared/stories/components/List.stories.js +34 -0
  244. package/lib/shared/stories/components/Loader.stories.js +15 -0
  245. package/lib/shared/stories/components/Modal.stories.js +50 -0
  246. package/lib/shared/stories/components/Notification.stories.js +22 -0
  247. package/lib/shared/stories/components/Person.stories.js +41 -0
  248. package/lib/shared/stories/components/Picker.stories.js +15 -0
  249. package/lib/shared/stories/components/Popover.stories.js +36 -0
  250. package/lib/shared/stories/components/QRCode.stories.js +20 -0
  251. package/lib/shared/stories/components/RadioGroup.stories.js +56 -0
  252. package/lib/shared/stories/components/Select.stories.js +50 -0
  253. package/lib/shared/stories/components/Sidebar.stories.js +35 -0
  254. package/lib/shared/stories/components/Slider.stories.dev.js +48 -0
  255. package/lib/shared/stories/components/Stepper/Stepper.stories.js +38 -0
  256. package/lib/shared/stories/components/Steps.stories.js +15 -0
  257. package/lib/shared/stories/components/Switch.stories.js +15 -0
  258. package/lib/shared/stories/components/Tab.stories.js +15 -0
  259. package/lib/shared/stories/components/Table.stories.js +95 -0
  260. package/lib/shared/stories/components/TextList.stories.js +23 -0
  261. package/lib/shared/stories/components/Tooltip.stories.dev.js +40 -0
  262. package/lib/shared/stories/elements/Color.stories.js +269 -0
  263. package/lib/shared/stories/elements/Text.stories.js +45 -0
  264. package/lib/shared/types/index.js +1 -0
  265. package/lib/stories/Foundation/BrandIdentity.prod.stories.js +510 -0
  266. package/lib/stories/Foundation/Logo.stories.js +19 -0
  267. package/lib/stories/Foundation/RisingSun.stories.js +16 -0
  268. package/lib/stories/Foundation/Shadows.stories.js +601 -0
  269. package/lib/stories/Foundation/Symbol.stories.js +18 -0
  270. package/lib/stories/HeroContainer.stories.js +18 -0
  271. package/lib/styles/accessibilityTokens.js +72 -0
  272. package/lib/styles/borderWidth.js +10 -0
  273. package/lib/styles/colors.js +303 -0
  274. package/lib/styles/elevation.js +240 -0
  275. package/lib/styles/icons.js +218 -0
  276. package/lib/styles/index.js +29 -0
  277. package/lib/styles/motion.js +668 -0
  278. package/lib/styles/opacity.js +10 -0
  279. package/lib/styles/radius.js +11 -0
  280. package/lib/styles/sizing.js +35 -0
  281. package/lib/styles/space.js +24 -0
  282. package/lib/styles/theme/darkTheme.js +471 -0
  283. package/lib/styles/theme/index.js +44 -0
  284. package/lib/styles/theme/lightTheme.js +480 -0
  285. package/lib/styles/theme/themeTypes.js +1 -0
  286. package/lib/styles/theme/themeUtils.js +63 -0
  287. package/lib/styles/typography-advanced.js +510 -0
  288. package/lib/styles/typography.js +1419 -0
  289. package/lib/styles/zIndex.js +19 -0
  290. package/lib/tokens/borders.js +161 -0
  291. package/lib/tokens/colors.js +426 -0
  292. package/lib/tokens/components.js +499 -0
  293. package/lib/tokens/index.js +84 -0
  294. package/lib/tokens/lighting.js +384 -0
  295. package/lib/tokens/motion.js +284 -0
  296. package/lib/tokens/semantic.js +367 -0
  297. package/lib/tokens/shadows.js +114 -0
  298. package/lib/tokens/spacing.js +189 -0
  299. package/lib/tokens/typography.js +268 -0
  300. package/package.json +176 -0
  301. package/styles/generated-tokens.css +677 -0
  302. package/styles/index.css +2 -0
  303. package/styles/main.css +610 -0
  304. package/tailwind.config.js +64 -0
@@ -0,0 +1,668 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ // src/styles/motion.ts
8
+ // Motion Design System with Semantic Token Architecture
9
+ // Following Adobe Spectrum patterns: Global → Semantic → Fintech → Component
10
+
11
+ import { Easing } from 'react-native-reanimated';
12
+
13
+ // ===========================
14
+ // TYPE DEFINITIONS
15
+ // ===========================
16
+
17
+ // ===========================
18
+ // LAYER 1: GLOBAL MOTION TOKENS
19
+ // Raw motion values - the source of truth
20
+ // ===========================
21
+
22
+ export var globalMotion = {
23
+ // Duration scale with clean numeric naming
24
+ duration: {
25
+ // Micro-interactions (0-150ms)
26
+ 75: 75,
27
+ 100: 100,
28
+ 130: 130,
29
+ // Standard interactions (150-300ms)
30
+ 160: 160,
31
+ 200: 200,
32
+ 250: 250,
33
+ // Emphasized interactions (300-700ms)
34
+ 300: 300,
35
+ 400: 400,
36
+ 500: 500,
37
+ // Expressive interactions (700ms+)
38
+ 600: 600,
39
+ 700: 700,
40
+ 1000: 1000,
41
+ 1500: 1500,
42
+ 2000: 2000
43
+ },
44
+ // Easing curves for different motion characteristics
45
+ easing: {
46
+ // Standard CSS easing
47
+ linear: Easing.linear,
48
+ ease: Easing.ease,
49
+ easeIn: Easing["in"](Easing.ease),
50
+ easeOut: Easing.out(Easing.ease),
51
+ easeInOut: Easing.inOut(Easing.ease),
52
+ // Material Design inspired curves
53
+ accelerate: Easing.bezier(0.4, 0.0, 1, 1),
54
+ // Elements leaving
55
+ decelerate: Easing.bezier(0.0, 0.0, 0.2, 1),
56
+ // Elements entering
57
+ standard: Easing.bezier(0.4, 0.0, 0.2, 1),
58
+ // Standard transitions
59
+ emphasize: Easing.bezier(0.2, 0.0, 0, 1),
60
+ // Attention-getting
61
+
62
+ // Expressive curves with personality
63
+ gentle: Easing.bezier(0.25, 0.1, 0.25, 1),
64
+ // Soft, trustworthy
65
+ confident: Easing.bezier(0.4, 0.0, 0.2, 1),
66
+ // Decisive, professional
67
+ bounce: Easing.bezier(0.175, 0.885, 0.32, 1.275),
68
+ // Celebratory
69
+ springy: Easing.bezier(0.68, -0.55, 0.265, 1.55),
70
+ // Attention-grabbing
71
+ sharp: Easing.bezier(0.77, 0, 0.175, 1),
72
+ // Firm, immediate
73
+ smooth: Easing.bezier(0.645, 0.045, 0.355, 1) // Continuous, flowing
74
+ },
75
+ // Reduced motion scale for accessibility
76
+ reducedDuration: {
77
+ 75: 0,
78
+ 100: 0,
79
+ 130: 50,
80
+ 160: 50,
81
+ 200: 100,
82
+ 250: 100,
83
+ 300: 150,
84
+ 400: 150,
85
+ 500: 200,
86
+ 600: 200,
87
+ 700: 250,
88
+ 1000: 300,
89
+ 1500: 400,
90
+ 2000: 500
91
+ }
92
+ };
93
+
94
+ // ===========================
95
+ // LAYER 2: SEMANTIC MOTION TOKENS
96
+ // Purpose-based motion assignments
97
+ // ===========================
98
+
99
+ export var semanticMotion = {
100
+ // Interactive feedback - immediate response to user actions
101
+ interactive: {
102
+ // Hover states
103
+ hover: {
104
+ duration: globalMotion.duration[75],
105
+ easing: globalMotion.easing.standard,
106
+ delay: 0
107
+ },
108
+ // Focus states
109
+ focus: {
110
+ duration: globalMotion.duration[100],
111
+ easing: globalMotion.easing.decelerate,
112
+ delay: 0
113
+ },
114
+ // Active/pressed states
115
+ press: {
116
+ duration: globalMotion.duration[130],
117
+ easing: globalMotion.easing.accelerate,
118
+ delay: 0
119
+ },
120
+ // Selection states
121
+ select: {
122
+ duration: globalMotion.duration[160],
123
+ easing: globalMotion.easing.standard,
124
+ delay: 0
125
+ }
126
+ },
127
+ // Content transitions - revealing and hiding content
128
+ content: {
129
+ // Showing content
130
+ enter: {
131
+ duration: globalMotion.duration[200],
132
+ easing: globalMotion.easing.decelerate,
133
+ delay: 0
134
+ },
135
+ // Hiding content
136
+ exit: {
137
+ duration: globalMotion.duration[160],
138
+ easing: globalMotion.easing.accelerate,
139
+ delay: 0
140
+ },
141
+ // Fading content
142
+ fade: {
143
+ duration: globalMotion.duration[250],
144
+ easing: globalMotion.easing.standard,
145
+ delay: 0
146
+ },
147
+ // Sliding content
148
+ slide: {
149
+ duration: globalMotion.duration[300],
150
+ easing: globalMotion.easing.standard,
151
+ delay: 0
152
+ }
153
+ },
154
+ // Navigation transitions - moving between views
155
+ navigation: {
156
+ // Page transitions
157
+ page: {
158
+ duration: globalMotion.duration[300],
159
+ easing: globalMotion.easing.standard,
160
+ delay: 0
161
+ },
162
+ // Modal presentations
163
+ modal: {
164
+ duration: globalMotion.duration[250],
165
+ easing: globalMotion.easing.decelerate,
166
+ delay: 0
167
+ },
168
+ // Drawer slides
169
+ drawer: {
170
+ duration: globalMotion.duration[300],
171
+ easing: globalMotion.easing.emphasize,
172
+ delay: 0
173
+ },
174
+ // Tab switching
175
+ tab: {
176
+ duration: globalMotion.duration[200],
177
+ easing: globalMotion.easing.standard,
178
+ delay: 0
179
+ }
180
+ },
181
+ // Feedback animations - system responses
182
+ feedback: {
183
+ // Success states
184
+ success: {
185
+ duration: globalMotion.duration[400],
186
+ easing: globalMotion.easing.gentle,
187
+ delay: 0
188
+ },
189
+ // Error states
190
+ error: {
191
+ duration: globalMotion.duration[400],
192
+ easing: globalMotion.easing.sharp,
193
+ delay: 0
194
+ },
195
+ // Warning states
196
+ warning: {
197
+ duration: globalMotion.duration[400],
198
+ easing: globalMotion.easing.springy,
199
+ delay: 0
200
+ },
201
+ // Loading states
202
+ loading: {
203
+ duration: globalMotion.duration[1000],
204
+ easing: globalMotion.easing.smooth,
205
+ delay: 0
206
+ }
207
+ },
208
+ // Data visualization animations
209
+ data: {
210
+ // Chart animations
211
+ chart: {
212
+ duration: globalMotion.duration[500],
213
+ easing: globalMotion.easing.decelerate,
214
+ delay: 0
215
+ },
216
+ // Number changes
217
+ number: {
218
+ duration: globalMotion.duration[300],
219
+ easing: globalMotion.easing.standard,
220
+ delay: 0
221
+ },
222
+ // Progress updates
223
+ progress: {
224
+ duration: globalMotion.duration[400],
225
+ easing: globalMotion.easing.standard,
226
+ delay: 0
227
+ }
228
+ }
229
+ };
230
+
231
+ // ===========================
232
+ // LAYER 3: FINTECH-SPECIFIC MOTION TOKENS
233
+ // Business domain motion assignments
234
+ // ===========================
235
+
236
+ export var fintechMotion = {
237
+ // Transaction-related animations
238
+ transaction: {
239
+ // Processing states
240
+ processing: {
241
+ duration: globalMotion.duration[1000],
242
+ easing: globalMotion.easing.smooth,
243
+ delay: 0
244
+ },
245
+ // Transaction completion
246
+ completed: {
247
+ duration: globalMotion.duration[600],
248
+ easing: globalMotion.easing.confident,
249
+ delay: 0
250
+ },
251
+ // Transaction failure
252
+ failed: {
253
+ duration: globalMotion.duration[400],
254
+ easing: globalMotion.easing.sharp,
255
+ delay: 0
256
+ },
257
+ // Pending states
258
+ pending: {
259
+ duration: globalMotion.duration[700],
260
+ easing: globalMotion.easing.gentle,
261
+ delay: 0
262
+ }
263
+ },
264
+ // Currency and market data animations
265
+ market: {
266
+ // Price changes
267
+ priceChange: {
268
+ duration: globalMotion.duration[300],
269
+ easing: globalMotion.easing.confident,
270
+ delay: 0
271
+ },
272
+ // Significant price movements
273
+ priceMovement: {
274
+ duration: globalMotion.duration[400],
275
+ easing: globalMotion.easing.emphasize,
276
+ delay: 0
277
+ },
278
+ // Real-time updates
279
+ liveUpdate: {
280
+ duration: globalMotion.duration[200],
281
+ easing: globalMotion.easing.standard,
282
+ delay: 0
283
+ },
284
+ // Market alerts
285
+ alert: {
286
+ duration: globalMotion.duration[500],
287
+ easing: globalMotion.easing.springy,
288
+ delay: 0
289
+ }
290
+ },
291
+ // Security and authentication animations
292
+ security: {
293
+ // Authentication success
294
+ authSuccess: {
295
+ duration: globalMotion.duration[500],
296
+ easing: globalMotion.easing.confident,
297
+ delay: 0
298
+ },
299
+ // Authentication failure
300
+ authFailure: {
301
+ duration: globalMotion.duration[400],
302
+ easing: globalMotion.easing.sharp,
303
+ delay: 100 // Slight delay for emphasis
304
+ },
305
+ // Biometric prompts
306
+ biometric: {
307
+ duration: globalMotion.duration[300],
308
+ easing: globalMotion.easing.gentle,
309
+ delay: 0
310
+ },
311
+ // Security warnings
312
+ warning: {
313
+ duration: globalMotion.duration[600],
314
+ easing: globalMotion.easing.springy,
315
+ delay: 0
316
+ }
317
+ },
318
+ // Account and portfolio animations
319
+ account: {
320
+ // Balance updates
321
+ balanceUpdate: {
322
+ duration: globalMotion.duration[400],
323
+ easing: globalMotion.easing.confident,
324
+ delay: 0
325
+ },
326
+ // Portfolio changes
327
+ portfolioChange: {
328
+ duration: globalMotion.duration[500],
329
+ easing: globalMotion.easing.standard,
330
+ delay: 0
331
+ },
332
+ // Achievement unlocks
333
+ achievement: {
334
+ duration: globalMotion.duration[1000],
335
+ easing: globalMotion.easing.bounce,
336
+ delay: 0
337
+ },
338
+ // Goal completions
339
+ goalComplete: {
340
+ duration: globalMotion.duration[700],
341
+ easing: globalMotion.easing.bounce,
342
+ delay: 0
343
+ }
344
+ },
345
+ // Risk and compliance animations
346
+ risk: {
347
+ // Risk level changes
348
+ levelChange: {
349
+ duration: globalMotion.duration[400],
350
+ easing: globalMotion.easing.emphasize,
351
+ delay: 0
352
+ },
353
+ // Compliance alerts
354
+ compliance: {
355
+ duration: globalMotion.duration[500],
356
+ easing: globalMotion.easing.sharp,
357
+ delay: 0
358
+ },
359
+ // KYC flow progression
360
+ kyc: {
361
+ duration: globalMotion.duration[300],
362
+ easing: globalMotion.easing.standard,
363
+ delay: 0
364
+ }
365
+ }
366
+ };
367
+
368
+ // ===========================
369
+ // LAYER 4: COMPONENT-SPECIFIC MOTION TOKENS
370
+ // Motion for specific UI components
371
+ // ===========================
372
+
373
+ export var componentMotion = {
374
+ // Button component animations
375
+ button: {
376
+ // Standard button press
377
+ press: {
378
+ duration: globalMotion.duration[130],
379
+ easing: globalMotion.easing.accelerate,
380
+ scale: 0.95,
381
+ delay: 0
382
+ },
383
+ // Primary action button
384
+ primary: {
385
+ duration: globalMotion.duration[160],
386
+ easing: globalMotion.easing.confident,
387
+ scale: 0.98,
388
+ delay: 0
389
+ },
390
+ // Destructive action button
391
+ destructive: {
392
+ duration: globalMotion.duration[200],
393
+ easing: globalMotion.easing.sharp,
394
+ scale: 0.96,
395
+ delay: 50 // Slight delay for caution
396
+ }
397
+ },
398
+ // Input component animations
399
+ input: {
400
+ // Focus animation
401
+ focus: {
402
+ duration: globalMotion.duration[200],
403
+ easing: globalMotion.easing.decelerate,
404
+ delay: 0
405
+ },
406
+ // Validation success
407
+ valid: {
408
+ duration: globalMotion.duration[300],
409
+ easing: globalMotion.easing.gentle,
410
+ delay: 0
411
+ },
412
+ // Validation error
413
+ invalid: {
414
+ duration: globalMotion.duration[300],
415
+ easing: globalMotion.easing.springy,
416
+ delay: 0
417
+ },
418
+ // Autocomplete dropdown
419
+ dropdown: {
420
+ duration: globalMotion.duration[200],
421
+ easing: globalMotion.easing.decelerate,
422
+ delay: 0
423
+ }
424
+ },
425
+ // Card component animations
426
+ card: {
427
+ // Card hover
428
+ hover: {
429
+ duration: globalMotion.duration[200],
430
+ easing: globalMotion.easing.standard,
431
+ scale: 1.02,
432
+ delay: 0
433
+ },
434
+ // Card selection
435
+ select: {
436
+ duration: globalMotion.duration[250],
437
+ easing: globalMotion.easing.confident,
438
+ scale: 1.01,
439
+ delay: 0
440
+ },
441
+ // Card flip (for reveals)
442
+ flip: {
443
+ duration: globalMotion.duration[500],
444
+ easing: globalMotion.easing.standard,
445
+ delay: 0
446
+ }
447
+ },
448
+ // Modal component animations
449
+ modal: {
450
+ // Modal entrance
451
+ enter: {
452
+ duration: globalMotion.duration[300],
453
+ easing: globalMotion.easing.decelerate,
454
+ scale: 0.95,
455
+ delay: 0
456
+ },
457
+ // Modal exit
458
+ exit: {
459
+ duration: globalMotion.duration[200],
460
+ easing: globalMotion.easing.accelerate,
461
+ scale: 0.95,
462
+ delay: 0
463
+ },
464
+ // Backdrop animation
465
+ backdrop: {
466
+ duration: globalMotion.duration[250],
467
+ easing: globalMotion.easing.standard,
468
+ delay: 0
469
+ }
470
+ },
471
+ // Toast/notification animations
472
+ toast: {
473
+ // Toast entrance
474
+ enter: {
475
+ duration: globalMotion.duration[300],
476
+ easing: globalMotion.easing.decelerate,
477
+ translateY: -100,
478
+ delay: 0
479
+ },
480
+ // Toast exit
481
+ exit: {
482
+ duration: globalMotion.duration[200],
483
+ easing: globalMotion.easing.accelerate,
484
+ translateY: -100,
485
+ delay: 0
486
+ },
487
+ // Auto-dismiss timing
488
+ autoDismiss: {
489
+ duration: globalMotion.duration[500],
490
+ easing: globalMotion.easing.standard,
491
+ delay: 4000 // 4 second delay before auto-dismiss starts
492
+ }
493
+ },
494
+ // Loading spinner animations
495
+ spinner: {
496
+ // Standard spinner
497
+ rotate: {
498
+ duration: globalMotion.duration[1000],
499
+ easing: globalMotion.easing.linear,
500
+ delay: 0
501
+ },
502
+ // Pulsing loader
503
+ pulse: {
504
+ duration: globalMotion.duration[1500],
505
+ easing: globalMotion.easing.smooth,
506
+ delay: 0
507
+ },
508
+ // Progress bar
509
+ progress: {
510
+ duration: globalMotion.duration[300],
511
+ easing: globalMotion.easing.standard,
512
+ delay: 0
513
+ }
514
+ }
515
+ };
516
+
517
+ // ===========================
518
+ // MOTION UTILITIES
519
+ // ===========================
520
+
521
+ export var motionUtils = {
522
+ /**
523
+ * Get motion values with reduced motion support
524
+ */
525
+ getMotionConfig: function getMotionConfig(motionToken) {
526
+ var respectReducedMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
527
+ if (respectReducedMotion && shouldReduceMotion()) {
528
+ return _objectSpread(_objectSpread({}, motionToken), {}, {
529
+ duration: globalMotion.reducedDuration[motionToken.duration] || motionToken.duration,
530
+ easing: globalMotion.easing.linear
531
+ });
532
+ }
533
+ return motionToken;
534
+ },
535
+ /**
536
+ * Create motion configuration from individual tokens
537
+ */
538
+ createMotionConfig: function createMotionConfig(options) {
539
+ return _objectSpread(_objectSpread(_objectSpread({
540
+ duration: globalMotion.duration[options.duration],
541
+ easing: globalMotion.easing[options.easing],
542
+ delay: options.delay || 0
543
+ }, options.scale && {
544
+ scale: options.scale
545
+ }), options.translateX && {
546
+ translateX: options.translateX
547
+ }), options.translateY && {
548
+ translateY: options.translateY
549
+ });
550
+ },
551
+ /**
552
+ * Get staggered animation delays for lists
553
+ */
554
+ getStaggeredDelay: function getStaggeredDelay(index) {
555
+ var baseDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
556
+ var maxDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;
557
+ return Math.min(index * baseDelay, maxDelay);
558
+ },
559
+ /**
560
+ * Convert to CSS-compatible strings
561
+ */
562
+ toCSSStrings: function toCSSStrings(motionToken) {
563
+ return {
564
+ duration: "".concat(motionToken.duration, "ms"),
565
+ easing: convertEasingToCSSString(motionToken.easing),
566
+ delay: "".concat(motionToken.delay || 0, "ms")
567
+ };
568
+ },
569
+ /**
570
+ * Get motion based on urgency level
571
+ */
572
+ getUrgencyMotion: function getUrgencyMotion(baseMotion, urgency) {
573
+ var urgencyMultipliers = {
574
+ low: {
575
+ duration: 1.0,
576
+ delay: 0
577
+ },
578
+ medium: {
579
+ duration: 0.8,
580
+ delay: 0
581
+ },
582
+ high: {
583
+ duration: 0.6,
584
+ delay: 100
585
+ },
586
+ critical: {
587
+ duration: 0.4,
588
+ delay: 200
589
+ }
590
+ };
591
+ var multiplier = urgencyMultipliers[urgency];
592
+ return _objectSpread(_objectSpread({}, baseMotion), {}, {
593
+ duration: Math.round(baseMotion.duration * multiplier.duration),
594
+ delay: (baseMotion.delay || 0) + multiplier.delay,
595
+ easing: urgency === 'critical' ? globalMotion.easing.sharp : baseMotion.easing
596
+ });
597
+ },
598
+ /**
599
+ * Get motion based on data importance
600
+ */
601
+ getImportanceMotion: function getImportanceMotion(baseMotion, importance) {
602
+ var importanceAdjustments = {
603
+ primary: {
604
+ duration: 1.2,
605
+ easing: globalMotion.easing.emphasize
606
+ },
607
+ secondary: {
608
+ duration: 1.0,
609
+ easing: globalMotion.easing.standard
610
+ },
611
+ tertiary: {
612
+ duration: 0.8,
613
+ easing: globalMotion.easing.gentle
614
+ }
615
+ };
616
+ var adjustment = importanceAdjustments[importance];
617
+ return _objectSpread(_objectSpread({}, baseMotion), {}, {
618
+ duration: Math.round(baseMotion.duration * adjustment.duration),
619
+ easing: adjustment.easing
620
+ });
621
+ }
622
+ };
623
+
624
+ // ===========================
625
+ // HELPER FUNCTIONS
626
+ // ===========================
627
+
628
+ /**
629
+ * Check if user prefers reduced motion
630
+ */
631
+ var shouldReduceMotion = function shouldReduceMotion() {
632
+ // Implementation depends on platform
633
+ // For React Native: Use AccessibilityInfo.isReduceMotionEnabled()
634
+ // For web: Use window.matchMedia('(prefers-reduced-motion: reduce)').matches
635
+ return false; // Default implementation
636
+ };
637
+
638
+ /**
639
+ * Convert React Native easing to CSS string
640
+ */
641
+ var convertEasingToCSSString = function convertEasingToCSSString(easing) {
642
+ // This would need platform-specific implementation
643
+ // For now, return a default
644
+ return 'cubic-bezier(0.4, 0.0, 0.2, 1)';
645
+ };
646
+
647
+ // ===========================
648
+ // TYPE EXPORTS
649
+ // ===========================
650
+
651
+ // Core motion token types
652
+
653
+ // Semantic category types
654
+
655
+ // Backward compatibility aliases
656
+
657
+ // ===========================
658
+ // MAIN EXPORT
659
+ // ===========================
660
+
661
+ export var motion = {
662
+ global: globalMotion,
663
+ semantic: semanticMotion,
664
+ fintech: fintechMotion,
665
+ component: componentMotion,
666
+ utils: motionUtils
667
+ };
668
+ export default motion;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Opacity scale with semantic naming
3
+ */
4
+ export var opacity = {
5
+ transparent: 0,
6
+ disabled: 0.4,
7
+ muted: 0.6,
8
+ subtle: 0.8,
9
+ opaque: 1
10
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Border radius scale with semantic naming
3
+ */
4
+ export var radius = {
5
+ none: 0,
6
+ small: 4,
7
+ medium: 8,
8
+ large: 12,
9
+ extraLarge: 16,
10
+ full: 999
11
+ };