@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.
- package/LICENSE +73 -0
- package/README.md +142 -0
- package/lib/assets/icons.js +67 -0
- package/lib/components/AccountOverview/AccountOverview.js +122 -0
- package/lib/components/AdminPanel.js +58 -0
- package/lib/components/AssetExchange/AssetExchange.js +189 -0
- package/lib/components/AuthenticationFlow.js +216 -0
- package/lib/components/ConversationInterface/ConversationInterface.js +232 -0
- package/lib/components/DevFooter.js +38 -0
- package/lib/components/DevMenu.js +35 -0
- package/lib/components/DevSidebar.js +28 -0
- package/lib/components/DigitalDisplay.js +83 -0
- package/lib/components/Footer.js +45 -0
- package/lib/components/HeroContainer.js +10 -0
- package/lib/components/IntentRecognition/IntentRecognition.js +174 -0
- package/lib/components/Logo.js +259 -0
- package/lib/components/MenuBar.js +56 -0
- package/lib/components/NetworkSettings.js +223 -0
- package/lib/components/RecoverySetup/RecoverySetup.js +354 -0
- package/lib/components/RisingSun.js +122 -0
- package/lib/components/Symbol.js +226 -0
- package/lib/components/TransactionComposer/TransactionComposer.js +258 -0
- package/lib/components/TransactionConfirmation.js +184 -0
- package/lib/components/WalletMenu.js +33 -0
- package/lib/components/console/code/CodeBlock.js +150 -0
- package/lib/components/console/code/index.js +9 -0
- package/lib/components/console/data/DataTable.js +245 -0
- package/lib/components/console/data/MetricCard.js +79 -0
- package/lib/components/console/data/index.js +11 -0
- package/lib/components/console/documentation/index.js +10 -0
- package/lib/components/console/forms/APIKeyGenerator.js +261 -0
- package/lib/components/console/forms/SearchBar.js +210 -0
- package/lib/components/console/forms/index.js +10 -0
- package/lib/components/console/index.js +29 -0
- package/lib/components/console/layout/ConsoleCard.js +82 -0
- package/lib/components/console/layout/ConsoleLayout.js +86 -0
- package/lib/components/console/layout/index.js +10 -0
- package/lib/components/console/monitoring/StatusIndicator.js +128 -0
- package/lib/components/console/monitoring/index.js +9 -0
- package/lib/components/console/navigation/DevFooter.js +38 -0
- package/lib/components/console/navigation/DevMenu.js +35 -0
- package/lib/components/console/navigation/DevSidebar.js +28 -0
- package/lib/components/console/navigation/index.js +11 -0
- package/lib/components/console/settings/index.js +10 -0
- package/lib/components/index.js +12 -0
- package/lib/design/ColorPicker.stories.js +9 -0
- package/lib/design/HSLTool-V1.js +345 -0
- package/lib/design/HSLTool-V2.js +475 -0
- package/lib/design/HSLTool-V3.js +543 -0
- package/lib/design/HSLTool-V4.js +1139 -0
- package/lib/design/HSLTool.js +374 -0
- package/lib/design/OKLCHColorPicker.stories.js +24 -0
- package/lib/design/OKLCHTool.js +1014 -0
- package/lib/index.js +4 -0
- package/lib/shared/components/Avatar/Avatar.js +18 -0
- package/lib/shared/components/Avatar/index.js +1 -0
- package/lib/shared/components/Badge/Badge.js +34 -0
- package/lib/shared/components/Badge/index.js +1 -0
- package/lib/shared/components/Breadcrumb/Breadcrumb.js +13 -0
- package/lib/shared/components/Breadcrumb/index.js +1 -0
- package/lib/shared/components/Button/Button.js +184 -0
- package/lib/shared/components/Button/index.js +1 -0
- package/lib/shared/components/Calendar/Calendar.js +155 -0
- package/lib/shared/components/Calendar/CalendarDay.js +251 -0
- package/lib/shared/components/Calendar/CalendarHeader.js +88 -0
- package/lib/shared/components/Calendar/CalendarMonth.js +106 -0
- package/lib/shared/components/Calendar/CalendarWeek.js +267 -0
- package/lib/shared/components/Calendar/constants.js +73 -0
- package/lib/shared/components/Calendar/index.js +3 -0
- package/lib/shared/components/Calendar/types.d.js +0 -0
- package/lib/shared/components/Cartel/Cartel.js +44 -0
- package/lib/shared/components/Cartel/index.js +1 -0
- package/lib/shared/components/Cell/Cell.js +105 -0
- package/lib/shared/components/Cell/index.js +1 -0
- package/lib/shared/components/Checkbox/Checkbox.js +27 -0
- package/lib/shared/components/Checkbox/index.js +1 -0
- package/lib/shared/components/Clock/Clock.js +6 -0
- package/lib/shared/components/Clock/index.js +1 -0
- package/lib/shared/components/ColorChecker/ColorChecker.js +89 -0
- package/lib/shared/components/ColorChecker/index.js +2 -0
- package/lib/shared/components/ColorChecker/utils.js +159 -0
- package/lib/shared/components/Command/Command.js +95 -0
- package/lib/shared/components/Command/index.js +1 -0
- package/lib/shared/components/Container/Container.js +18 -0
- package/lib/shared/components/Container/index.js +1 -0
- package/lib/shared/components/Cover/Cover.js +17 -0
- package/lib/shared/components/Cover/index.js +1 -0
- package/lib/shared/components/DatePicker/DatePicker.js +52 -0
- package/lib/shared/components/DatePicker/components/Calendar.js +125 -0
- package/lib/shared/components/DatePicker/components/CalendarDay.js +23 -0
- package/lib/shared/components/DatePicker/components/DateWrapper.js +15 -0
- package/lib/shared/components/DatePicker/components/index.js +2 -0
- package/lib/shared/components/DatePicker/index.js +1 -0
- package/lib/shared/components/DateTime/DateTime.js +51 -0
- package/lib/shared/components/DateTime/index.js +1 -0
- package/lib/shared/components/Debug/Debug.js +12 -0
- package/lib/shared/components/Debug/index.js +1 -0
- package/lib/shared/components/Disclosure/Disclosure.js +31 -0
- package/lib/shared/components/Disclosure/index.js +1 -0
- package/lib/shared/components/Dropdown/Dropdown.js +91 -0
- package/lib/shared/components/Dropdown/index.js +1 -0
- package/lib/shared/components/EmptyState/EmptyState.js +40 -0
- package/lib/shared/components/EmptyState/index.js +1 -0
- package/lib/shared/components/Form/Form.js +41 -0
- package/lib/shared/components/Form/components/DynamicForm.js +66 -0
- package/lib/shared/components/Form/components/StepperForm.js +266 -0
- package/lib/shared/components/Form/components/index.js +2 -0
- package/lib/shared/components/Form/context/Form.js +164 -0
- package/lib/shared/components/Form/context/index.js +1 -0
- package/lib/shared/components/Form/index.js +1 -0
- package/lib/shared/components/Form/types.d.js +1 -0
- package/lib/shared/components/Form/utils/index.js +31 -0
- package/lib/shared/components/GroupItems/GroupItems.js +17 -0
- package/lib/shared/components/GroupItems/index.js +1 -0
- package/lib/shared/components/Header/Header.js +26 -0
- package/lib/shared/components/Header/index.js +1 -0
- package/lib/shared/components/Heading/Heading.js +5 -0
- package/lib/shared/components/Heading/index.js +1 -0
- package/lib/shared/components/Icon/Icon.js +28 -0
- package/lib/shared/components/Icon/index.js +1 -0
- package/lib/shared/components/Identicons/Identicons.js +6 -0
- package/lib/shared/components/Identicons/index.d.js +0 -0
- package/lib/shared/components/Identicons/index.js +1 -0
- package/lib/shared/components/Image/Image.js +22 -0
- package/lib/shared/components/Image/index.js +1 -0
- package/lib/shared/components/Input/Input.js +201 -0
- package/lib/shared/components/Input/components/CheckBoxInput.js +81 -0
- package/lib/shared/components/Input/components/DateInput.js +89 -0
- package/lib/shared/components/Input/components/DefaultInput.js +102 -0
- package/lib/shared/components/Input/components/FileReaderInput.js +88 -0
- package/lib/shared/components/Input/components/NumberInput.js +141 -0
- package/lib/shared/components/Input/components/PickerInput.js +122 -0
- package/lib/shared/components/Input/components/RCInput.js +112 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxBasic.js +56 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxCard.js +27 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxFull.js +44 -0
- package/lib/shared/components/Input/components/Radiobox/index.js +3 -0
- package/lib/shared/components/Input/components/RadioboxInput.js +102 -0
- package/lib/shared/components/Input/components/SelectInput.js +70 -0
- package/lib/shared/components/Input/components/TextAreaInput.js +67 -0
- package/lib/shared/components/Input/components/TextInput.js +139 -0
- package/lib/shared/components/Input/components/TimeInput.js +37 -0
- package/lib/shared/components/Input/components/UploadFileInput.js +123 -0
- package/lib/shared/components/Input/components/index.js +13 -0
- package/lib/shared/components/Input/components/types.d.js +0 -0
- package/lib/shared/components/Input/index.js +1 -0
- package/lib/shared/components/Input/types.d.js +0 -0
- package/lib/shared/components/Layout/Layout.js +13 -0
- package/lib/shared/components/Layout/index.js +1 -0
- package/lib/shared/components/List/List.js +30 -0
- package/lib/shared/components/List/index.js +1 -0
- package/lib/shared/components/Loader/Loader.js +27 -0
- package/lib/shared/components/Loader/index.js +1 -0
- package/lib/shared/components/Modal/Modal.js +102 -0
- package/lib/shared/components/Modal/index.js +1 -0
- package/lib/shared/components/Notification/Notification.js +39 -0
- package/lib/shared/components/Notification/index.js +1 -0
- package/lib/shared/components/Person/Person.js +81 -0
- package/lib/shared/components/Person/index.js +1 -0
- package/lib/shared/components/Popover/Popover.js +39 -0
- package/lib/shared/components/Popover/index.js +1 -0
- package/lib/shared/components/QRCode/QRCode.js +329 -0
- package/lib/shared/components/QRCode/index.js +1 -0
- package/lib/shared/components/RadioGroup/RadioGroup.js +35 -0
- package/lib/shared/components/RadioGroup/components/DefaultGroup.js +71 -0
- package/lib/shared/components/RadioGroup/components/VerticalGroup.js +83 -0
- package/lib/shared/components/RadioGroup/components/index.js +2 -0
- package/lib/shared/components/RadioGroup/index.js +1 -0
- package/lib/shared/components/Search/Search.js +12 -0
- package/lib/shared/components/Search/index.js +1 -0
- package/lib/shared/components/Select/Select.js +90 -0
- package/lib/shared/components/Select/index.js +1 -0
- package/lib/shared/components/Sidebar/Sidebar.js +42 -0
- package/lib/shared/components/Sidebar/index.js +1 -0
- package/lib/shared/components/SlideOver/SlideOver.js +81 -0
- package/lib/shared/components/SlideOver/index.js +1 -0
- package/lib/shared/components/Slider/Slider.js +80 -0
- package/lib/shared/components/Slider/index.js +1 -0
- package/lib/shared/components/Stepper/Stepper.js +32 -0
- package/lib/shared/components/Stepper/index.js +1 -0
- package/lib/shared/components/Steps/Steps.js +53 -0
- package/lib/shared/components/Steps/index.js +1 -0
- package/lib/shared/components/Switch/Switch.js +26 -0
- package/lib/shared/components/Switch/index.js +1 -0
- package/lib/shared/components/Tab/Tab.js +59 -0
- package/lib/shared/components/Tab/index.js +1 -0
- package/lib/shared/components/Table/Table.js +47 -0
- package/lib/shared/components/Table/index.js +1 -0
- package/lib/shared/components/Text/Text.js +11 -0
- package/lib/shared/components/Text/index.js +1 -0
- package/lib/shared/components/TextList/TextList.js +15 -0
- package/lib/shared/components/TextList/index.js +1 -0
- package/lib/shared/components/TimePicker/TimePicker.js +161 -0
- package/lib/shared/components/TimePicker/index.js +1 -0
- package/lib/shared/components/Tooltip/Tooltip.js +13 -0
- package/lib/shared/components/Tooltip/index.js +1 -0
- package/lib/shared/components/Uploader/Uploader.js +63 -0
- package/lib/shared/components/Uploader/index.js +1 -0
- package/lib/shared/components/Video/Video.js +20 -0
- package/lib/shared/components/Video/index.js +1 -0
- package/lib/shared/components/index.d.js +0 -0
- package/lib/shared/components/index.js +50 -0
- package/lib/shared/elements/Color/ColorPallet.js +20 -0
- package/lib/shared/elements/Color/index.js +1 -0
- package/lib/shared/elements/Text.js +37 -0
- package/lib/shared/elements/index.js +1 -0
- package/lib/shared/helpers/FakeLink.js +8 -0
- package/lib/shared/helpers/constants.js +359 -0
- package/lib/shared/helpers/index.js +2 -0
- package/lib/shared/helpers/isEqual.js +56 -0
- package/lib/shared/index.d.js +0 -0
- package/lib/shared/index.js +1 -0
- package/lib/shared/stories/components/Avatar.stories.js +17 -0
- package/lib/shared/stories/components/Badge.stories.dev.js +37 -0
- package/lib/shared/stories/components/Button.stories.js +553 -0
- package/lib/shared/stories/components/Calendar.stories.js +62 -0
- package/lib/shared/stories/components/Cartel.stories.js +32 -0
- package/lib/shared/stories/components/Checkbox.stories.js +15 -0
- package/lib/shared/stories/components/ColorChecker.stories.dev.js +16 -0
- package/lib/shared/stories/components/DateTime.stories.js +27 -0
- package/lib/shared/stories/components/Disclosure.stories.js +30 -0
- package/lib/shared/stories/components/Dropdown.stories.js +39 -0
- package/lib/shared/stories/components/Form/Default.stories.js +201 -0
- package/lib/shared/stories/components/Form/DummyForm.stories.js +48 -0
- package/lib/shared/stories/components/Form/DynamicForm.stories.js +155 -0
- package/lib/shared/stories/components/Form/StepperForm.stories.js +138 -0
- package/lib/shared/stories/components/Form/ValidateForm.stories.js +70 -0
- package/lib/shared/stories/components/Form/Validation.stories.js +184 -0
- package/lib/shared/stories/components/GroupItems.stories.js +23 -0
- package/lib/shared/stories/components/Header.stories.js +29 -0
- package/lib/shared/stories/components/Heading.stories.js +27 -0
- package/lib/shared/stories/components/Icon.stories.js +22 -0
- package/lib/shared/stories/components/Image.stories.js +23 -0
- package/lib/shared/stories/components/Input/Checkbox.stories.js +45 -0
- package/lib/shared/stories/components/Input/DatePicker.stories.js +23 -0
- package/lib/shared/stories/components/Input/Defaut.stories.js +24 -0
- package/lib/shared/stories/components/Input/Number.stories.js +24 -0
- package/lib/shared/stories/components/Input/RCI.stories.js +59 -0
- package/lib/shared/stories/components/Input/Radiobox.stories.dev.js +28 -0
- package/lib/shared/stories/components/Input/Select.stories.dev.js +27 -0
- package/lib/shared/stories/components/Input/SelectMultiple.stories.dev.js +510 -0
- package/lib/shared/stories/components/Input/Textarea.stories.js +24 -0
- package/lib/shared/stories/components/List.stories.js +34 -0
- package/lib/shared/stories/components/Loader.stories.js +15 -0
- package/lib/shared/stories/components/Modal.stories.js +50 -0
- package/lib/shared/stories/components/Notification.stories.js +22 -0
- package/lib/shared/stories/components/Person.stories.js +41 -0
- package/lib/shared/stories/components/Picker.stories.js +15 -0
- package/lib/shared/stories/components/Popover.stories.js +36 -0
- package/lib/shared/stories/components/QRCode.stories.js +20 -0
- package/lib/shared/stories/components/RadioGroup.stories.js +56 -0
- package/lib/shared/stories/components/Select.stories.js +50 -0
- package/lib/shared/stories/components/Sidebar.stories.js +35 -0
- package/lib/shared/stories/components/Slider.stories.dev.js +48 -0
- package/lib/shared/stories/components/Stepper/Stepper.stories.js +38 -0
- package/lib/shared/stories/components/Steps.stories.js +15 -0
- package/lib/shared/stories/components/Switch.stories.js +15 -0
- package/lib/shared/stories/components/Tab.stories.js +15 -0
- package/lib/shared/stories/components/Table.stories.js +95 -0
- package/lib/shared/stories/components/TextList.stories.js +23 -0
- package/lib/shared/stories/components/Tooltip.stories.dev.js +40 -0
- package/lib/shared/stories/elements/Color.stories.js +269 -0
- package/lib/shared/stories/elements/Text.stories.js +45 -0
- package/lib/shared/types/index.js +1 -0
- package/lib/stories/Foundation/BrandIdentity.prod.stories.js +510 -0
- package/lib/stories/Foundation/Logo.stories.js +19 -0
- package/lib/stories/Foundation/RisingSun.stories.js +16 -0
- package/lib/stories/Foundation/Shadows.stories.js +601 -0
- package/lib/stories/Foundation/Symbol.stories.js +18 -0
- package/lib/stories/HeroContainer.stories.js +18 -0
- package/lib/styles/accessibilityTokens.js +72 -0
- package/lib/styles/borderWidth.js +10 -0
- package/lib/styles/colors.js +303 -0
- package/lib/styles/elevation.js +240 -0
- package/lib/styles/icons.js +218 -0
- package/lib/styles/index.js +29 -0
- package/lib/styles/motion.js +668 -0
- package/lib/styles/opacity.js +10 -0
- package/lib/styles/radius.js +11 -0
- package/lib/styles/sizing.js +35 -0
- package/lib/styles/space.js +24 -0
- package/lib/styles/theme/darkTheme.js +471 -0
- package/lib/styles/theme/index.js +44 -0
- package/lib/styles/theme/lightTheme.js +480 -0
- package/lib/styles/theme/themeTypes.js +1 -0
- package/lib/styles/theme/themeUtils.js +63 -0
- package/lib/styles/typography-advanced.js +510 -0
- package/lib/styles/typography.js +1419 -0
- package/lib/styles/zIndex.js +19 -0
- package/lib/tokens/borders.js +161 -0
- package/lib/tokens/colors.js +426 -0
- package/lib/tokens/components.js +499 -0
- package/lib/tokens/index.js +84 -0
- package/lib/tokens/lighting.js +384 -0
- package/lib/tokens/motion.js +284 -0
- package/lib/tokens/semantic.js +367 -0
- package/lib/tokens/shadows.js +114 -0
- package/lib/tokens/spacing.js +189 -0
- package/lib/tokens/typography.js +268 -0
- package/package.json +176 -0
- package/styles/generated-tokens.css +677 -0
- package/styles/index.css +2 -0
- package/styles/main.css +610 -0
- 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;
|