@cdx-ui/components 0.0.1-beta.79 → 0.0.1-beta.80
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/lib/commonjs/animation/hooks/index.js +17 -0
- package/lib/commonjs/animation/hooks/index.js.map +1 -0
- package/lib/commonjs/animation/hooks/useCombinedAnimationDisabledState.js +50 -0
- package/lib/commonjs/animation/hooks/useCombinedAnimationDisabledState.js.map +1 -0
- package/lib/commonjs/animation/index.js +39 -0
- package/lib/commonjs/animation/index.js.map +1 -0
- package/lib/commonjs/animation/types.js +6 -0
- package/lib/commonjs/animation/types.js.map +1 -0
- package/lib/commonjs/animation/utils.js +223 -0
- package/lib/commonjs/animation/utils.js.map +1 -0
- package/lib/commonjs/components/CLAUDE.md +1 -1
- package/lib/commonjs/components/Card/index.js +45 -17
- package/lib/commonjs/components/Card/index.js.map +1 -1
- package/lib/commonjs/components/Toast/animation.js +329 -0
- package/lib/commonjs/components/Toast/animation.js.map +1 -0
- package/lib/commonjs/components/Toast/hooks.js +66 -0
- package/lib/commonjs/components/Toast/hooks.js.map +1 -0
- package/lib/commonjs/components/Toast/index.js +493 -0
- package/lib/commonjs/components/Toast/index.js.map +1 -0
- package/lib/commonjs/components/Toast/styles.js +141 -0
- package/lib/commonjs/components/Toast/styles.js.map +1 -0
- package/lib/commonjs/components/Toast/types.js +6 -0
- package/lib/commonjs/components/Toast/types.js.map +1 -0
- package/lib/commonjs/components/index.js +12 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/index.js +15 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/providers/animation-settings/index.js +31 -0
- package/lib/commonjs/providers/animation-settings/index.js.map +1 -0
- package/lib/commonjs/providers/animation-settings/provider.js +59 -0
- package/lib/commonjs/providers/animation-settings/provider.js.map +1 -0
- package/lib/commonjs/providers/animation-settings/types.js +6 -0
- package/lib/commonjs/providers/animation-settings/types.js.map +1 -0
- package/lib/commonjs/providers/forge-design/index.js +29 -0
- package/lib/commonjs/providers/forge-design/index.js.map +1 -0
- package/lib/commonjs/providers/forge-design/provider.js +71 -0
- package/lib/commonjs/providers/forge-design/provider.js.map +1 -0
- package/lib/commonjs/providers/forge-design/types.js +6 -0
- package/lib/commonjs/providers/forge-design/types.js.map +1 -0
- package/lib/commonjs/providers/text-component/index.js +28 -0
- package/lib/commonjs/providers/text-component/index.js.map +1 -0
- package/lib/commonjs/providers/text-component/provider.js +11 -0
- package/lib/commonjs/providers/text-component/provider.js.map +1 -0
- package/lib/commonjs/providers/text-component/types.js +6 -0
- package/lib/commonjs/providers/text-component/types.js.map +1 -0
- package/lib/commonjs/providers/toast/index.js +33 -0
- package/lib/commonjs/providers/toast/index.js.map +1 -0
- package/lib/commonjs/providers/toast/insets-container.js +160 -0
- package/lib/commonjs/providers/toast/insets-container.js.map +1 -0
- package/lib/commonjs/providers/toast/lifecycle.context.js +36 -0
- package/lib/commonjs/providers/toast/lifecycle.context.js.map +1 -0
- package/lib/commonjs/providers/toast/provider.js +508 -0
- package/lib/commonjs/providers/toast/provider.js.map +1 -0
- package/lib/commonjs/providers/toast/reducer.js +46 -0
- package/lib/commonjs/providers/toast/reducer.js.map +1 -0
- package/lib/commonjs/providers/toast/toast-config.context.js +29 -0
- package/lib/commonjs/providers/toast/toast-config.context.js.map +1 -0
- package/lib/commonjs/providers/toast/toast-item-renderer.js +43 -0
- package/lib/commonjs/providers/toast/toast-item-renderer.js.map +1 -0
- package/lib/commonjs/providers/toast/types.js +6 -0
- package/lib/commonjs/providers/toast/types.js.map +1 -0
- package/lib/module/animation/hooks/index.js +4 -0
- package/lib/module/animation/hooks/index.js.map +1 -0
- package/lib/module/animation/hooks/useCombinedAnimationDisabledState.js +47 -0
- package/lib/module/animation/hooks/useCombinedAnimationDisabledState.js.map +1 -0
- package/lib/module/animation/index.js +6 -0
- package/lib/module/animation/index.js.map +1 -0
- package/lib/module/animation/types.js +4 -0
- package/lib/module/animation/types.js.map +1 -0
- package/lib/module/animation/utils.js +212 -0
- package/lib/module/animation/utils.js.map +1 -0
- package/lib/module/components/CLAUDE.md +1 -1
- package/lib/module/components/Card/index.js +47 -19
- package/lib/module/components/Card/index.js.map +1 -1
- package/lib/module/components/Toast/animation.js +324 -0
- package/lib/module/components/Toast/animation.js.map +1 -0
- package/lib/module/components/Toast/hooks.js +61 -0
- package/lib/module/components/Toast/hooks.js.map +1 -0
- package/lib/module/components/Toast/index.js +487 -0
- package/lib/module/components/Toast/index.js.map +1 -0
- package/lib/module/components/Toast/styles.js +138 -0
- package/lib/module/components/Toast/styles.js.map +1 -0
- package/lib/module/components/Toast/types.js +4 -0
- package/lib/module/components/Toast/types.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/providers/animation-settings/index.js +4 -0
- package/lib/module/providers/animation-settings/index.js.map +1 -0
- package/lib/module/providers/animation-settings/provider.js +52 -0
- package/lib/module/providers/animation-settings/provider.js.map +1 -0
- package/lib/module/providers/animation-settings/types.js +4 -0
- package/lib/module/providers/animation-settings/types.js.map +1 -0
- package/lib/module/providers/forge-design/index.js +5 -0
- package/lib/module/providers/forge-design/index.js.map +1 -0
- package/lib/module/providers/forge-design/provider.js +66 -0
- package/lib/module/providers/forge-design/provider.js.map +1 -0
- package/lib/module/providers/forge-design/types.js +4 -0
- package/lib/module/providers/forge-design/types.js.map +1 -0
- package/lib/module/providers/text-component/index.js +5 -0
- package/lib/module/providers/text-component/index.js.map +1 -0
- package/lib/module/providers/text-component/provider.js +6 -0
- package/lib/module/providers/text-component/provider.js.map +1 -0
- package/lib/module/providers/text-component/types.js +4 -0
- package/lib/module/providers/text-component/types.js.map +1 -0
- package/lib/module/providers/toast/index.js +6 -0
- package/lib/module/providers/toast/index.js.map +1 -0
- package/lib/module/providers/toast/insets-container.js +156 -0
- package/lib/module/providers/toast/insets-container.js.map +1 -0
- package/lib/module/providers/toast/lifecycle.context.js +32 -0
- package/lib/module/providers/toast/lifecycle.context.js.map +1 -0
- package/lib/module/providers/toast/provider.js +503 -0
- package/lib/module/providers/toast/provider.js.map +1 -0
- package/lib/module/providers/toast/reducer.js +42 -0
- package/lib/module/providers/toast/reducer.js.map +1 -0
- package/lib/module/providers/toast/toast-config.context.js +25 -0
- package/lib/module/providers/toast/toast-config.context.js.map +1 -0
- package/lib/module/providers/toast/toast-item-renderer.js +39 -0
- package/lib/module/providers/toast/toast-item-renderer.js.map +1 -0
- package/lib/module/providers/toast/types.js +4 -0
- package/lib/module/providers/toast/types.js.map +1 -0
- package/lib/typescript/animation/hooks/index.d.ts +2 -0
- package/lib/typescript/animation/hooks/index.d.ts.map +1 -0
- package/lib/typescript/animation/hooks/useCombinedAnimationDisabledState.d.ts +22 -0
- package/lib/typescript/animation/hooks/useCombinedAnimationDisabledState.d.ts.map +1 -0
- package/lib/typescript/animation/index.d.ts +4 -0
- package/lib/typescript/animation/index.d.ts.map +1 -0
- package/lib/typescript/animation/types.d.ts +105 -0
- package/lib/typescript/animation/types.d.ts.map +1 -0
- package/lib/typescript/animation/utils.d.ts +120 -0
- package/lib/typescript/animation/utils.d.ts.map +1 -0
- package/lib/typescript/components/Card/index.d.ts +4 -0
- package/lib/typescript/components/Card/index.d.ts.map +1 -1
- package/lib/typescript/components/Toast/animation.d.ts +21 -0
- package/lib/typescript/components/Toast/animation.d.ts.map +1 -0
- package/lib/typescript/components/Toast/hooks.d.ts +17 -0
- package/lib/typescript/components/Toast/hooks.d.ts.map +1 -0
- package/lib/typescript/components/Toast/index.d.ts +28 -0
- package/lib/typescript/components/Toast/index.d.ts.map +1 -0
- package/lib/typescript/components/Toast/styles.d.ts +73 -0
- package/lib/typescript/components/Toast/styles.d.ts.map +1 -0
- package/lib/typescript/components/Toast/types.d.ts +303 -0
- package/lib/typescript/components/Toast/types.d.ts.map +1 -0
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/providers/animation-settings/index.d.ts +3 -0
- package/lib/typescript/providers/animation-settings/index.d.ts.map +1 -0
- package/lib/typescript/providers/animation-settings/provider.d.ts +28 -0
- package/lib/typescript/providers/animation-settings/provider.d.ts.map +1 -0
- package/lib/typescript/providers/animation-settings/types.d.ts +35 -0
- package/lib/typescript/providers/animation-settings/types.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/index.d.ts +3 -0
- package/lib/typescript/providers/forge-design/index.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/provider.d.ts +24 -0
- package/lib/typescript/providers/forge-design/provider.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/types.d.ts +82 -0
- package/lib/typescript/providers/forge-design/types.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/index.d.ts +3 -0
- package/lib/typescript/providers/text-component/index.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/provider.d.ts +7 -0
- package/lib/typescript/providers/text-component/provider.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/types.d.ts +51 -0
- package/lib/typescript/providers/text-component/types.d.ts.map +1 -0
- package/lib/typescript/providers/toast/index.d.ts +5 -0
- package/lib/typescript/providers/toast/index.d.ts.map +1 -0
- package/lib/typescript/providers/toast/insets-container.d.ts +72 -0
- package/lib/typescript/providers/toast/insets-container.d.ts.map +1 -0
- package/lib/typescript/providers/toast/lifecycle.context.d.ts +32 -0
- package/lib/typescript/providers/toast/lifecycle.context.d.ts.map +1 -0
- package/lib/typescript/providers/toast/provider.d.ts +32 -0
- package/lib/typescript/providers/toast/provider.d.ts.map +1 -0
- package/lib/typescript/providers/toast/reducer.d.ts +14 -0
- package/lib/typescript/providers/toast/reducer.d.ts.map +1 -0
- package/lib/typescript/providers/toast/toast-config.context.d.ts +20 -0
- package/lib/typescript/providers/toast/toast-config.context.d.ts.map +1 -0
- package/lib/typescript/providers/toast/toast-item-renderer.d.ts +7 -0
- package/lib/typescript/providers/toast/toast-item-renderer.d.ts.map +1 -0
- package/lib/typescript/providers/toast/types.d.ts +422 -0
- package/lib/typescript/providers/toast/types.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/animation/hooks/index.ts +1 -0
- package/src/animation/hooks/useCombinedAnimationDisabledState.ts +46 -0
- package/src/animation/index.ts +3 -0
- package/src/animation/types.ts +128 -0
- package/src/animation/utils.ts +249 -0
- package/src/components/CLAUDE.md +1 -1
- package/src/components/Card/index.tsx +58 -28
- package/src/components/Toast/animation.ts +387 -0
- package/src/components/Toast/hooks.ts +92 -0
- package/src/components/Toast/index.tsx +520 -0
- package/src/components/Toast/styles.ts +186 -0
- package/src/components/Toast/types.ts +332 -0
- package/src/components/index.ts +1 -0
- package/src/index.ts +2 -0
- package/src/providers/animation-settings/index.ts +11 -0
- package/src/providers/animation-settings/provider.tsx +54 -0
- package/src/providers/animation-settings/types.ts +37 -0
- package/src/providers/forge-design/index.ts +2 -0
- package/src/providers/forge-design/provider.tsx +61 -0
- package/src/providers/forge-design/types.ts +84 -0
- package/src/providers/text-component/index.ts +2 -0
- package/src/providers/text-component/provider.tsx +7 -0
- package/src/providers/text-component/types.ts +52 -0
- package/src/providers/toast/index.ts +4 -0
- package/src/providers/toast/insets-container.tsx +230 -0
- package/src/providers/toast/lifecycle.context.tsx +37 -0
- package/src/providers/toast/provider.tsx +567 -0
- package/src/providers/toast/reducer.ts +40 -0
- package/src/providers/toast/toast-config.context.ts +25 -0
- package/src/providers/toast/toast-item-renderer.tsx +40 -0
- package/src/providers/toast/types.ts +431 -0
package/lib/module/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export * from './components';
|
|
5
5
|
export * from './hooks';
|
|
6
6
|
export * from './navigation';
|
|
7
|
+
export { ToastProvider, useToast } from './providers/toast';
|
|
7
8
|
export { View, ScrollView, KeyboardAvoidingView } from 'react-native';
|
|
8
9
|
export { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","ScrollView","KeyboardAvoidingView","SafeAreaView","useSafeAreaInsets"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,SAASA,IAAI,EAAEC,UAAU,EAAEC,oBAAoB,QAAQ,cAAc;AACrE,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,gCAAgC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ToastProvider","useToast","View","ScrollView","KeyboardAvoidingView","SafeAreaView","useSafeAreaInsets"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,SAASA,aAAa,EAAEC,QAAQ,QAAQ,mBAAmB;AAE3D,SAASC,IAAI,EAAEC,UAAU,EAAEC,oBAAoB,QAAQ,cAAc;AACrE,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,gCAAgC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GlobalAnimationSettingsProvider","AnimationSettingsProvider","useGlobalAnimationSettings","useAnimationSettings"],"sourceRoot":"../../../../src","sources":["providers/animation-settings/index.ts"],"mappings":";;AAAA,SACEA,+BAA+B,EAC/BC,yBAAyB,EACzBC,0BAA0B,EAC1BC,oBAAoB,QACf,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useReducedMotion } from 'react-native-reanimated';
|
|
5
|
+
import { createContext } from '@cdx-ui/utils';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const [GlobalAnimationSettingsProviderComponent, useGlobalAnimationSettings] = createContext('GlobalAnimationSettingsContext', {
|
|
8
|
+
strict: false,
|
|
9
|
+
defaultValue: {
|
|
10
|
+
globalIsAllAnimationsDisabled: false
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
export { useGlobalAnimationSettings };
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* GlobalAnimationSettingsProvider Component
|
|
17
|
+
*
|
|
18
|
+
* @description
|
|
19
|
+
* Provider component that controls global animation settings across the application.
|
|
20
|
+
* When animation is set to 'disable-all', all animations will be disabled globally.
|
|
21
|
+
* Additionally, if the user has enabled reduce motion in accessibility settings,
|
|
22
|
+
* all animations will be disabled automatically.
|
|
23
|
+
*
|
|
24
|
+
* The global setting is read directly via `useGlobalAnimationSettings`; the
|
|
25
|
+
* separate `AnimationSettingsProvider` handles per-subtree cascading. Both
|
|
26
|
+
* contexts are non-strict, so components can read them without a provider
|
|
27
|
+
* mounted (falling back to "animations enabled").
|
|
28
|
+
*
|
|
29
|
+
* @param {GlobalAnimationSettingsProviderProps} props - Provider props
|
|
30
|
+
* @param {AnimationRootDisableAll} [props.animation] - Global animation setting
|
|
31
|
+
* @param {ReactNode} props.children - Child components to wrap
|
|
32
|
+
*/
|
|
33
|
+
export const GlobalAnimationSettingsProvider = ({
|
|
34
|
+
animation,
|
|
35
|
+
children
|
|
36
|
+
}) => {
|
|
37
|
+
const reducedMotion = useReducedMotion();
|
|
38
|
+
const globalIsAllAnimationsDisabled = animation === 'disable-all' || reducedMotion;
|
|
39
|
+
return /*#__PURE__*/_jsx(GlobalAnimationSettingsProviderComponent, {
|
|
40
|
+
value: {
|
|
41
|
+
globalIsAllAnimationsDisabled
|
|
42
|
+
},
|
|
43
|
+
children: children
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
export const [AnimationSettingsProvider, useAnimationSettings] = createContext('AnimationSettingsContext', {
|
|
47
|
+
strict: false,
|
|
48
|
+
defaultValue: {
|
|
49
|
+
isAllAnimationsDisabled: false
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useReducedMotion","createContext","jsx","_jsx","GlobalAnimationSettingsProviderComponent","useGlobalAnimationSettings","strict","defaultValue","globalIsAllAnimationsDisabled","GlobalAnimationSettingsProvider","animation","children","reducedMotion","value","AnimationSettingsProvider","useAnimationSettings","isAllAnimationsDisabled"],"sourceRoot":"../../../../src","sources":["providers/animation-settings/provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,aAAa,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO9C,MAAM,CAACC,wCAAwC,EAAEC,0BAA0B,CAAC,GAC1EJ,aAAa,CAAsC,gCAAgC,EAAE;EACnFK,MAAM,EAAE,KAAK;EACbC,YAAY,EAAE;IAAEC,6BAA6B,EAAE;EAAM;AACvD,CAAC,CAAC;AAEJ,SAASH,0BAA0B;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,+BAA+E,GAAGA,CAAC;EAC9FC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGZ,gBAAgB,CAAC,CAAC;EACxC,MAAMQ,6BAA6B,GAAGE,SAAS,KAAK,aAAa,IAAIE,aAAa;EAElF,oBACET,IAAA,CAACC,wCAAwC;IAACS,KAAK,EAAE;MAAEL;IAA8B,CAAE;IAAAG,QAAA,EAChFA;EAAQ,CAC+B,CAAC;AAE/C,CAAC;AAED,OAAO,MAAM,CAACG,yBAAyB,EAAEC,oBAAoB,CAAC,GAC5Dd,aAAa,CAAgC,0BAA0B,EAAE;EACvEK,MAAM,EAAE,KAAK;EACbC,YAAY,EAAE;IAAES,uBAAuB,EAAE;EAAM;AACjD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["providers/animation-settings/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","ForgeDesignProvider"],"sourceRoot":"../../../../src","sources":["providers/forge-design/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,mBAAmB,QAAQ,YAAY;AAC3D,cAAc,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { SafeAreaListener } from 'react-native-safe-area-context';
|
|
5
|
+
import { Uniwind } from 'uniwind';
|
|
6
|
+
import { PortalHost } from '@cdx-ui/primitives';
|
|
7
|
+
import { GlobalAnimationSettingsProvider } from '../animation-settings';
|
|
8
|
+
import { TextComponentProvider } from '../text-component/provider';
|
|
9
|
+
import { ToastProvider } from '../toast/provider';
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
+
/**
|
|
12
|
+
* ForgeDesignProvider Component
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* Main provider component for HeroUI Native that configures the application
|
|
16
|
+
* with global settings. This component should wrap your entire application
|
|
17
|
+
* or the section where you want to use HeroUI Native components.
|
|
18
|
+
*
|
|
19
|
+
* Currently provides:
|
|
20
|
+
* - Global animation settings
|
|
21
|
+
* - Global text component configuration
|
|
22
|
+
* - Toast notification system
|
|
23
|
+
* - Portal management for overlays
|
|
24
|
+
*
|
|
25
|
+
* @param {ForgeDesignProviderProps} props - Provider configuration props
|
|
26
|
+
* @param {ReactNode} props.children - Child components to wrap
|
|
27
|
+
* @param {ForgeDesignConfig} [props.config] - Configuration object
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
const ForgeDesignProvider = ({
|
|
31
|
+
children,
|
|
32
|
+
config = {}
|
|
33
|
+
}) => {
|
|
34
|
+
const {
|
|
35
|
+
textProps,
|
|
36
|
+
toast,
|
|
37
|
+
animation
|
|
38
|
+
} = config;
|
|
39
|
+
|
|
40
|
+
// Determine if toast should be enabled and get props
|
|
41
|
+
const isToastEnabled = toast !== false && toast !== 'disabled';
|
|
42
|
+
const toastProps = typeof toast === 'object' ? toast : {};
|
|
43
|
+
return /*#__PURE__*/_jsx(SafeAreaListener, {
|
|
44
|
+
onChange: ({
|
|
45
|
+
insets
|
|
46
|
+
}) => {
|
|
47
|
+
Uniwind.updateInsets(insets);
|
|
48
|
+
},
|
|
49
|
+
children: /*#__PURE__*/_jsx(GlobalAnimationSettingsProvider, {
|
|
50
|
+
animation: animation,
|
|
51
|
+
children: /*#__PURE__*/_jsx(TextComponentProvider, {
|
|
52
|
+
value: {
|
|
53
|
+
textProps
|
|
54
|
+
},
|
|
55
|
+
children: isToastEnabled ? /*#__PURE__*/_jsxs(ToastProvider, {
|
|
56
|
+
...toastProps,
|
|
57
|
+
children: [children, /*#__PURE__*/_jsx(PortalHost, {})]
|
|
58
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
59
|
+
children: [children, /*#__PURE__*/_jsx(PortalHost, {})]
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export default ForgeDesignProvider;
|
|
66
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","SafeAreaListener","Uniwind","PortalHost","GlobalAnimationSettingsProvider","TextComponentProvider","ToastProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ForgeDesignProvider","children","config","textProps","toast","animation","isToastEnabled","toastProps","onChange","insets","updateInsets","value"],"sourceRoot":"../../../../src","sources":["providers/forge-design/provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,+BAA+B,QAAQ,uBAAuB;AACvE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,aAAa,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAuD,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,MAAM,GAAG,CAAC;AAAE,CAAC,KAAK;EAC7F,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAU,CAAC,GAAGH,MAAM;;EAE9C;EACA,MAAMI,cAAc,GAAGF,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,UAAU;EAC9D,MAAMG,UAAU,GAAG,OAAOH,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAAC;EAEzD,oBACET,IAAA,CAACP,gBAAgB;IACfoB,QAAQ,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK;MACxBpB,OAAO,CAACqB,YAAY,CAACD,MAAM,CAAC;IAC9B,CAAE;IAAAR,QAAA,eAEFN,IAAA,CAACJ,+BAA+B;MAACc,SAAS,EAAEA,SAAU;MAAAJ,QAAA,eACpDN,IAAA,CAACH,qBAAqB;QAACmB,KAAK,EAAE;UAAER;QAAU,CAAE;QAAAF,QAAA,EACzCK,cAAc,gBACbT,KAAA,CAACJ,aAAa;UAAA,GAAKc,UAAU;UAAAN,QAAA,GAC1BA,QAAQ,eACTN,IAAA,CAACL,UAAU,IAAE,CAAC;QAAA,CACD,CAAC,gBAEhBO,KAAA,CAAAE,SAAA;UAAAE,QAAA,GACGA,QAAQ,eACTN,IAAA,CAACL,UAAU,IAAE,CAAC;QAAA,CACd;MACH,CACoB;IAAC,CACO;EAAC,CAClB,CAAC;AAEvB,CAAC;AAED,eAAeU,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["providers/forge-design/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["providers/text-component/index.ts"],"mappings":";;AAAA,cAAc,YAAY;AAC1B,cAAc,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","TextComponentProvider","useTextComponent"],"sourceRoot":"../../../../src","sources":["providers/text-component/provider.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAG7C,MAAM,CAACC,qBAAqB,EAAEC,gBAAgB,CAAC,GAC7CF,aAAa,CAA4B,sBAAsB,CAAC;AAElE,SAASC,qBAAqB,EAAEC,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["providers/text-component/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ToastProvider","useToast","useToastConfig","useToastLifecycle"],"sourceRoot":"../../../../src","sources":["providers/toast/index.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,YAAY;AACpD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,iBAAiB,QAAQ,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
|
+
import { Platform, View } from 'react-native';
|
|
5
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
6
|
+
import { FullWindowOverlay } from '@cdx-ui/primitives';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* Container component that applies inset padding to position toasts
|
|
10
|
+
* away from screen edges and safe areas
|
|
11
|
+
*
|
|
12
|
+
* Combines custom insets with safe area insets:
|
|
13
|
+
* - If custom inset is provided, it overrides safe area + default padding
|
|
14
|
+
* - If not provided, uses platform-specific defaults:
|
|
15
|
+
* - iOS: safe area inset + 0px for top, + 6px for bottom, + 12px for left/right
|
|
16
|
+
* - Android: safe area inset + 12px for all edges
|
|
17
|
+
*
|
|
18
|
+
* On web, wires pointer/focus/visibility listeners to pause/resume timers
|
|
19
|
+
* per WCAG 2.2.1 (keyboard/pointer/hidden-tab pausing).
|
|
20
|
+
*/
|
|
21
|
+
export function InsetsContainer({
|
|
22
|
+
insets,
|
|
23
|
+
announceLabel = 'Notifications',
|
|
24
|
+
contentWrapper,
|
|
25
|
+
children,
|
|
26
|
+
disableFullWindowOverlay,
|
|
27
|
+
unstable_accessibilityContainerViewIsModal,
|
|
28
|
+
pauseAll,
|
|
29
|
+
resumeAll,
|
|
30
|
+
hide
|
|
31
|
+
}) {
|
|
32
|
+
const safeAreaInsets = useSafeAreaInsets();
|
|
33
|
+
const finalInsets = useMemo(() => {
|
|
34
|
+
return {
|
|
35
|
+
top: insets?.top ?? safeAreaInsets.top + (Platform.OS === 'ios' ? 0 : 12),
|
|
36
|
+
bottom: insets?.bottom ?? safeAreaInsets.bottom + (Platform.OS === 'ios' ? 6 : 12),
|
|
37
|
+
left: insets?.left ?? safeAreaInsets.left + 12,
|
|
38
|
+
right: insets?.right ?? safeAreaInsets.right + 12
|
|
39
|
+
};
|
|
40
|
+
}, [safeAreaInsets, insets]);
|
|
41
|
+
|
|
42
|
+
// Track pause sources independently so overlapping pointer + focus
|
|
43
|
+
// don't accidentally resume while the other source is still active.
|
|
44
|
+
const pauseSourcesRef = useRef(new Set());
|
|
45
|
+
const pauseAllRef = useRef(pauseAll);
|
|
46
|
+
const resumeAllRef = useRef(resumeAll);
|
|
47
|
+
pauseAllRef.current = pauseAll;
|
|
48
|
+
resumeAllRef.current = resumeAll;
|
|
49
|
+
const addPauseSource = useCallback(source => {
|
|
50
|
+
const wasEmpty = pauseSourcesRef.current.size === 0;
|
|
51
|
+
pauseSourcesRef.current.add(source);
|
|
52
|
+
if (wasEmpty) pauseAllRef.current();
|
|
53
|
+
}, []);
|
|
54
|
+
const removePauseSource = useCallback(source => {
|
|
55
|
+
pauseSourcesRef.current.delete(source);
|
|
56
|
+
if (pauseSourcesRef.current.size === 0) resumeAllRef.current();
|
|
57
|
+
}, []);
|
|
58
|
+
|
|
59
|
+
// Ref for the container so we can attach native DOM listeners on web.
|
|
60
|
+
const containerRef = useRef(null);
|
|
61
|
+
const hideRef = useRef(hide);
|
|
62
|
+
hideRef.current = hide;
|
|
63
|
+
|
|
64
|
+
// Web-only: attach pointer, focus, visibility, and keyboard listeners
|
|
65
|
+
// via native DOM APIs to avoid RNW making the container focusable
|
|
66
|
+
// (RNW adds tabIndex when React onFocus/onBlur handlers are present).
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (Platform.OS !== 'web') return;
|
|
69
|
+
const node = containerRef.current;
|
|
70
|
+
const sources = pauseSourcesRef.current;
|
|
71
|
+
const handleVisibilityChange = () => {
|
|
72
|
+
if (document.hidden) {
|
|
73
|
+
addPauseSource('visibility');
|
|
74
|
+
} else {
|
|
75
|
+
removePauseSource('visibility');
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// The container is `absolute inset-0` (full viewport). Using
|
|
80
|
+
// pointerenter/pointerleave here would pause as soon as the cursor
|
|
81
|
+
// is anywhere on the page — far too aggressive. Instead use
|
|
82
|
+
// pointerover/pointerout (which bubble) and gate on whether the
|
|
83
|
+
// pointer is actually over a toast element (identified by the
|
|
84
|
+
// `data-state` attribute emitted on every toast wrapper).
|
|
85
|
+
const isInsideToast = el => {
|
|
86
|
+
if (!el || !(el instanceof HTMLElement)) return false;
|
|
87
|
+
return !!el.closest('[data-state]');
|
|
88
|
+
};
|
|
89
|
+
const handlePointerOver = e => {
|
|
90
|
+
if (isInsideToast(e.target)) addPauseSource('pointer');
|
|
91
|
+
};
|
|
92
|
+
const handlePointerOut = e => {
|
|
93
|
+
if (!isInsideToast(e.relatedTarget)) removePauseSource('pointer');
|
|
94
|
+
};
|
|
95
|
+
const handleFocusIn = e => {
|
|
96
|
+
if (isInsideToast(e.target)) addPauseSource('focus');
|
|
97
|
+
};
|
|
98
|
+
const handleFocusOut = e => {
|
|
99
|
+
if (!isInsideToast(e.relatedTarget)) removePauseSource('focus');
|
|
100
|
+
};
|
|
101
|
+
const handleKeyDown = event => {
|
|
102
|
+
if (event.key === 'Escape') {
|
|
103
|
+
event.stopPropagation();
|
|
104
|
+
hideRef.current();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
108
|
+
if (node && typeof node.addEventListener === 'function') {
|
|
109
|
+
node.addEventListener('pointerover', handlePointerOver);
|
|
110
|
+
node.addEventListener('pointerout', handlePointerOut);
|
|
111
|
+
node.addEventListener('focusin', handleFocusIn);
|
|
112
|
+
node.addEventListener('focusout', handleFocusOut);
|
|
113
|
+
node.addEventListener('keydown', handleKeyDown);
|
|
114
|
+
}
|
|
115
|
+
return () => {
|
|
116
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
117
|
+
if (node && typeof node.removeEventListener === 'function') {
|
|
118
|
+
node.removeEventListener('pointerover', handlePointerOver);
|
|
119
|
+
node.removeEventListener('pointerout', handlePointerOut);
|
|
120
|
+
node.removeEventListener('focusin', handleFocusIn);
|
|
121
|
+
node.removeEventListener('focusout', handleFocusOut);
|
|
122
|
+
node.removeEventListener('keydown', handleKeyDown);
|
|
123
|
+
}
|
|
124
|
+
if (sources.size > 0) {
|
|
125
|
+
sources.clear();
|
|
126
|
+
resumeAllRef.current();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}, [addPauseSource, removePauseSource]);
|
|
130
|
+
const content = /*#__PURE__*/_jsx(View, {
|
|
131
|
+
ref: containerRef,
|
|
132
|
+
className: "absolute inset-0 pointer-events-box-none",
|
|
133
|
+
role: "region",
|
|
134
|
+
"aria-label": announceLabel,
|
|
135
|
+
...(Platform.OS === 'web' && {
|
|
136
|
+
'aria-live': 'polite',
|
|
137
|
+
'aria-atomic': false
|
|
138
|
+
}),
|
|
139
|
+
style: {
|
|
140
|
+
paddingTop: finalInsets.top,
|
|
141
|
+
paddingBottom: finalInsets.bottom,
|
|
142
|
+
paddingLeft: finalInsets.left,
|
|
143
|
+
paddingRight: finalInsets.right
|
|
144
|
+
},
|
|
145
|
+
children: contentWrapper ? contentWrapper(children) : children
|
|
146
|
+
});
|
|
147
|
+
if (Platform.OS !== 'ios') {
|
|
148
|
+
return content;
|
|
149
|
+
}
|
|
150
|
+
return /*#__PURE__*/_jsx(FullWindowOverlay, {
|
|
151
|
+
disableFullWindowOverlay: disableFullWindowOverlay,
|
|
152
|
+
unstable_accessibilityContainerViewIsModal: unstable_accessibilityContainerViewIsModal,
|
|
153
|
+
children: content
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=insets-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","Platform","View","useSafeAreaInsets","FullWindowOverlay","jsx","_jsx","InsetsContainer","insets","announceLabel","contentWrapper","children","disableFullWindowOverlay","unstable_accessibilityContainerViewIsModal","pauseAll","resumeAll","hide","safeAreaInsets","finalInsets","top","OS","bottom","left","right","pauseSourcesRef","Set","pauseAllRef","resumeAllRef","current","addPauseSource","source","wasEmpty","size","add","removePauseSource","delete","containerRef","hideRef","node","sources","handleVisibilityChange","document","hidden","isInsideToast","el","HTMLElement","closest","handlePointerOver","e","target","handlePointerOut","relatedTarget","handleFocusIn","handleFocusOut","handleKeyDown","event","key","stopPropagation","addEventListener","removeEventListener","clear","content","ref","className","role","style","paddingTop","paddingBottom","paddingLeft","paddingRight"],"sourceRoot":"../../../../src","sources":["providers/toast/insets-container.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Internal context that exposes the pending-removal lifecycle for web toasts.
|
|
7
|
+
*
|
|
8
|
+
* Web toasts stay mounted after `hide()` is dispatched so the CSS exit
|
|
9
|
+
* transition can play. The toast component reads `pendingRemovalIds` to
|
|
10
|
+
* flip its `data-state="closed"` attribute and calls `remove(id)` when
|
|
11
|
+
* the CSS transition completes (or a safety timeout fires).
|
|
12
|
+
*
|
|
13
|
+
* On native this context is provided but effectively unused — Reanimated's
|
|
14
|
+
* `exiting` layout animation plays before unmount, so nothing lingers.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export const ToastLifecycleContext = /*#__PURE__*/createContext(null);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Access the toast lifecycle context.
|
|
23
|
+
*
|
|
24
|
+
* Returns `null` when the styled Toast is rendered outside a `ToastProvider`
|
|
25
|
+
* (e.g. in isolated unit tests) so callers must handle the null case.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function useToastLifecycle() {
|
|
30
|
+
return useContext(ToastLifecycleContext);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=lifecycle.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","ToastLifecycleContext","useToastLifecycle"],"sourceRoot":"../../../../src","sources":["providers/toast/lifecycle.context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAO,MAAMC,qBAAqB,gBAAGF,aAAa,CAAoC,IAAI,CAAC;;AAE3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,iBAAiBA,CAAA,EAAsC;EACrE,OAAOF,UAAU,CAACC,qBAAqB,CAAC;AAC1C","ignoreList":[]}
|