@donotdev/expo 0.0.1
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/dist/__tests__/components/atomic.test.d.ts +10 -0
- package/dist/__tests__/components/atomic.test.d.ts.map +1 -0
- package/dist/__tests__/providers/ExpoAppProviders.test.d.ts +10 -0
- package/dist/__tests__/providers/ExpoAppProviders.test.d.ts.map +1 -0
- package/dist/__tests__/setup.d.ts +10 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/test-utils.d.ts +22 -0
- package/dist/__tests__/test-utils.d.ts.map +1 -0
- package/dist/atomic/Accordion/index.d.ts +65 -0
- package/dist/atomic/Accordion/index.d.ts.map +1 -0
- package/dist/atomic/Alert/index.d.ts +69 -0
- package/dist/atomic/Alert/index.d.ts.map +1 -0
- package/dist/atomic/AlertDialog/index.d.ts +83 -0
- package/dist/atomic/AlertDialog/index.d.ts.map +1 -0
- package/dist/atomic/Avatar/index.d.ts +53 -0
- package/dist/atomic/Avatar/index.d.ts.map +1 -0
- package/dist/atomic/Badge/index.d.ts +61 -0
- package/dist/atomic/Badge/index.d.ts.map +1 -0
- package/dist/atomic/Blockquote/index.d.ts +70 -0
- package/dist/atomic/Blockquote/index.d.ts.map +1 -0
- package/dist/atomic/Button/index.d.ts +117 -0
- package/dist/atomic/Button/index.d.ts.map +1 -0
- package/dist/atomic/Calendar/index.d.ts +55 -0
- package/dist/atomic/Calendar/index.d.ts.map +1 -0
- package/dist/atomic/CallToAction/index.d.ts +56 -0
- package/dist/atomic/CallToAction/index.d.ts.map +1 -0
- package/dist/atomic/Card/index.d.ts +102 -0
- package/dist/atomic/Card/index.d.ts.map +1 -0
- package/dist/atomic/Checkbox/index.d.ts +79 -0
- package/dist/atomic/Checkbox/index.d.ts.map +1 -0
- package/dist/atomic/Collapsible/index.d.ts +56 -0
- package/dist/atomic/Collapsible/index.d.ts.map +1 -0
- package/dist/atomic/Combobox/index.d.ts +137 -0
- package/dist/atomic/Combobox/index.d.ts.map +1 -0
- package/dist/atomic/Command/index.d.ts +94 -0
- package/dist/atomic/Command/index.d.ts.map +1 -0
- package/dist/atomic/CommandDialog/index.d.ts +62 -0
- package/dist/atomic/CommandDialog/index.d.ts.map +1 -0
- package/dist/atomic/ContextMenu/index.d.ts +60 -0
- package/dist/atomic/ContextMenu/index.d.ts.map +1 -0
- package/dist/atomic/CopyToClipboard/index.d.ts +78 -0
- package/dist/atomic/CopyToClipboard/index.d.ts.map +1 -0
- package/dist/atomic/DescriptionList/index.d.ts +60 -0
- package/dist/atomic/DescriptionList/index.d.ts.map +1 -0
- package/dist/atomic/Dialog/index.d.ts +105 -0
- package/dist/atomic/Dialog/index.d.ts.map +1 -0
- package/dist/atomic/DropdownMenu/index.d.ts +85 -0
- package/dist/atomic/DropdownMenu/index.d.ts.map +1 -0
- package/dist/atomic/DualCard/index.d.ts +101 -0
- package/dist/atomic/DualCard/index.d.ts.map +1 -0
- package/dist/atomic/FeatureFallback/index.d.ts +75 -0
- package/dist/atomic/FeatureFallback/index.d.ts.map +1 -0
- package/dist/atomic/FileButton/index.d.ts +55 -0
- package/dist/atomic/FileButton/index.d.ts.map +1 -0
- package/dist/atomic/Grid/index.d.ts +93 -0
- package/dist/atomic/Grid/index.d.ts.map +1 -0
- package/dist/atomic/HeroSection/index.d.ts +72 -0
- package/dist/atomic/HeroSection/index.d.ts.map +1 -0
- package/dist/atomic/HoverCard/index.d.ts +70 -0
- package/dist/atomic/HoverCard/index.d.ts.map +1 -0
- package/dist/atomic/Icons/index.d.ts +55 -0
- package/dist/atomic/Icons/index.d.ts.map +1 -0
- package/dist/atomic/InfiniteScroll/index.d.ts +62 -0
- package/dist/atomic/InfiniteScroll/index.d.ts.map +1 -0
- package/dist/atomic/Input/index.d.ts +100 -0
- package/dist/atomic/Input/index.d.ts.map +1 -0
- package/dist/atomic/Label/index.d.ts +49 -0
- package/dist/atomic/Label/index.d.ts.map +1 -0
- package/dist/atomic/List/index.d.ts +62 -0
- package/dist/atomic/List/index.d.ts.map +1 -0
- package/dist/atomic/NavigationMenu/index.d.ts +81 -0
- package/dist/atomic/NavigationMenu/index.d.ts.map +1 -0
- package/dist/atomic/Pagination/index.d.ts +86 -0
- package/dist/atomic/Pagination/index.d.ts.map +1 -0
- package/dist/atomic/PasswordInput/index.d.ts +95 -0
- package/dist/atomic/PasswordInput/index.d.ts.map +1 -0
- package/dist/atomic/Popover/index.d.ts +98 -0
- package/dist/atomic/Popover/index.d.ts.map +1 -0
- package/dist/atomic/Portal/index.d.ts +41 -0
- package/dist/atomic/Portal/index.d.ts.map +1 -0
- package/dist/atomic/PortalButton/index.d.ts +54 -0
- package/dist/atomic/PortalButton/index.d.ts.map +1 -0
- package/dist/atomic/Progress/index.d.ts +59 -0
- package/dist/atomic/Progress/index.d.ts.map +1 -0
- package/dist/atomic/RadioGroup/index.d.ts +91 -0
- package/dist/atomic/RadioGroup/index.d.ts.map +1 -0
- package/dist/atomic/RangeInput/index.d.ts +117 -0
- package/dist/atomic/RangeInput/index.d.ts.map +1 -0
- package/dist/atomic/Rating/index.d.ts +74 -0
- package/dist/atomic/Rating/index.d.ts.map +1 -0
- package/dist/atomic/ScrollArea/index.d.ts +59 -0
- package/dist/atomic/ScrollArea/index.d.ts.map +1 -0
- package/dist/atomic/Section/index.d.ts +83 -0
- package/dist/atomic/Section/index.d.ts.map +1 -0
- package/dist/atomic/Select/index.d.ts +116 -0
- package/dist/atomic/Select/index.d.ts.map +1 -0
- package/dist/atomic/Separator/index.d.ts +58 -0
- package/dist/atomic/Separator/index.d.ts.map +1 -0
- package/dist/atomic/Sheet/index.d.ts +106 -0
- package/dist/atomic/Sheet/index.d.ts.map +1 -0
- package/dist/atomic/Skeleton/index.d.ts +59 -0
- package/dist/atomic/Skeleton/index.d.ts.map +1 -0
- package/dist/atomic/Slider/index.d.ts +101 -0
- package/dist/atomic/Slider/index.d.ts.map +1 -0
- package/dist/atomic/Slot/index.d.ts +28 -0
- package/dist/atomic/Slot/index.d.ts.map +1 -0
- package/dist/atomic/Spinner/index.d.ts +52 -0
- package/dist/atomic/Spinner/index.d.ts.map +1 -0
- package/dist/atomic/Stack/index.d.ts +123 -0
- package/dist/atomic/Stack/index.d.ts.map +1 -0
- package/dist/atomic/Stepper/index.d.ts +102 -0
- package/dist/atomic/Stepper/index.d.ts.map +1 -0
- package/dist/atomic/Switch/index.d.ts +88 -0
- package/dist/atomic/Switch/index.d.ts.map +1 -0
- package/dist/atomic/Table/index.d.ts +107 -0
- package/dist/atomic/Table/index.d.ts.map +1 -0
- package/dist/atomic/Tabs/index.d.ts +91 -0
- package/dist/atomic/Tabs/index.d.ts.map +1 -0
- package/dist/atomic/Tag/index.d.ts +78 -0
- package/dist/atomic/Tag/index.d.ts.map +1 -0
- package/dist/atomic/Text/index.d.ts +81 -0
- package/dist/atomic/Text/index.d.ts.map +1 -0
- package/dist/atomic/Textarea/index.d.ts +66 -0
- package/dist/atomic/Textarea/index.d.ts.map +1 -0
- package/dist/atomic/Toaster/index.d.ts +69 -0
- package/dist/atomic/Toaster/index.d.ts.map +1 -0
- package/dist/atomic/Toggle/index.d.ts +76 -0
- package/dist/atomic/Toggle/index.d.ts.map +1 -0
- package/dist/atomic/ToggleGroup/index.d.ts +82 -0
- package/dist/atomic/ToggleGroup/index.d.ts.map +1 -0
- package/dist/atomic/Tooltip/index.d.ts +68 -0
- package/dist/atomic/Tooltip/index.d.ts.map +1 -0
- package/dist/atomic/VideoPlayer/index.d.ts +68 -0
- package/dist/atomic/VideoPlayer/index.d.ts.map +1 -0
- package/dist/atomic/VisuallyHidden/index.d.ts +33 -0
- package/dist/atomic/VisuallyHidden/index.d.ts.map +1 -0
- package/dist/atomic/index.d.ts +146 -0
- package/dist/atomic/index.d.ts.map +1 -0
- package/dist/crud/components/DateFilter.d.ts +29 -0
- package/dist/crud/components/DateFilter.d.ts.map +1 -0
- package/dist/crud/components/DisplayFieldRenderer.d.ts +29 -0
- package/dist/crud/components/DisplayFieldRenderer.d.ts.map +1 -0
- package/dist/crud/components/EntityCardList.d.ts +25 -0
- package/dist/crud/components/EntityCardList.d.ts.map +1 -0
- package/dist/crud/components/EntityDisplayRenderer.d.ts +26 -0
- package/dist/crud/components/EntityDisplayRenderer.d.ts.map +1 -0
- package/dist/crud/components/EntityFilters.d.ts +40 -0
- package/dist/crud/components/EntityFilters.d.ts.map +1 -0
- package/dist/crud/components/EntityFormRenderer.d.ts +66 -0
- package/dist/crud/components/EntityFormRenderer.d.ts.map +1 -0
- package/dist/crud/components/EntityList.d.ts +23 -0
- package/dist/crud/components/EntityList.d.ts.map +1 -0
- package/dist/crud/components/FormFieldRenderer.d.ts +38 -0
- package/dist/crud/components/FormFieldRenderer.d.ts.map +1 -0
- package/dist/crud/components/FormLayout.d.ts +33 -0
- package/dist/crud/components/FormLayout.d.ts.map +1 -0
- package/dist/crud/components/index.d.ts +27 -0
- package/dist/crud/components/index.d.ts.map +1 -0
- package/dist/crud/contexts/UploadContext.d.ts +22 -0
- package/dist/crud/contexts/UploadContext.d.ts.map +1 -0
- package/dist/crud/forms/hooks/useEntityForm.d.ts +11 -0
- package/dist/crud/forms/hooks/useEntityForm.d.ts.map +1 -0
- package/dist/crud/hooks/useUnsavedChangesWarning.d.ts +23 -0
- package/dist/crud/hooks/useUnsavedChangesWarning.d.ts.map +1 -0
- package/dist/crud/index.d.ts +17 -0
- package/dist/crud/index.d.ts.map +1 -0
- package/dist/crud/stores/index.d.ts +11 -0
- package/dist/crud/stores/index.d.ts.map +1 -0
- package/dist/features/auth/components/AuthPartnerButton.d.ts +31 -0
- package/dist/features/auth/components/AuthPartnerButton.d.ts.map +1 -0
- package/dist/features/auth/components/ConfirmDeleteDialog.d.ts +30 -0
- package/dist/features/auth/components/ConfirmDeleteDialog.d.ts.map +1 -0
- package/dist/features/auth/components/FeatureGuard.d.ts +53 -0
- package/dist/features/auth/components/FeatureGuard.d.ts.map +1 -0
- package/dist/features/auth/components/GoogleOneTap.d.ts +19 -0
- package/dist/features/auth/components/GoogleOneTap.d.ts.map +1 -0
- package/dist/features/auth/components/LoginModal.d.ts +18 -0
- package/dist/features/auth/components/LoginModal.d.ts.map +1 -0
- package/dist/features/auth/components/MultipleAuthProviders.d.ts +37 -0
- package/dist/features/auth/components/MultipleAuthProviders.d.ts.map +1 -0
- package/dist/features/auth/components/ReauthDialog.d.ts +30 -0
- package/dist/features/auth/components/ReauthDialog.d.ts.map +1 -0
- package/dist/features/auth/components/index.d.ts +22 -0
- package/dist/features/auth/components/index.d.ts.map +1 -0
- package/dist/features/auth/hooks/index.d.ts +14 -0
- package/dist/features/auth/hooks/index.d.ts.map +1 -0
- package/dist/features/auth/hooks/useAuthState.d.ts +29 -0
- package/dist/features/auth/hooks/useAuthState.d.ts.map +1 -0
- package/dist/features/auth/hooks/useCanAccess.d.ts +25 -0
- package/dist/features/auth/hooks/useCanAccess.d.ts.map +1 -0
- package/dist/features/auth/hooks/useHasRole.d.ts +26 -0
- package/dist/features/auth/hooks/useHasRole.d.ts.map +1 -0
- package/dist/features/auth/hooks/useUserRole.d.ts +25 -0
- package/dist/features/auth/hooks/useUserRole.d.ts.map +1 -0
- package/dist/features/auth/index.d.ts +16 -0
- package/dist/features/auth/index.d.ts.map +1 -0
- package/dist/features/billing/components/ProductCard.d.ts +37 -0
- package/dist/features/billing/components/ProductCard.d.ts.map +1 -0
- package/dist/features/billing/components/SecurityNotice.d.ts +26 -0
- package/dist/features/billing/components/SecurityNotice.d.ts.map +1 -0
- package/dist/features/billing/components/StripeCheckoutButton.d.ts +41 -0
- package/dist/features/billing/components/StripeCheckoutButton.d.ts.map +1 -0
- package/dist/features/billing/components/SubscriptionManager.d.ts +29 -0
- package/dist/features/billing/components/SubscriptionManager.d.ts.map +1 -0
- package/dist/features/billing/components/index.d.ts +17 -0
- package/dist/features/billing/components/index.d.ts.map +1 -0
- package/dist/features/billing/index.d.ts +12 -0
- package/dist/features/billing/index.d.ts.map +1 -0
- package/dist/features/index.d.ts +12 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/oauth/components/MultipleOAuthProviders.d.ts +42 -0
- package/dist/features/oauth/components/MultipleOAuthProviders.d.ts.map +1 -0
- package/dist/features/oauth/components/OAuthConnectionModal.d.ts +21 -0
- package/dist/features/oauth/components/OAuthConnectionModal.d.ts.map +1 -0
- package/dist/features/oauth/components/OAuthFallback.d.ts +22 -0
- package/dist/features/oauth/components/OAuthFallback.d.ts.map +1 -0
- package/dist/features/oauth/components/OAuthPartnerButton.d.ts +35 -0
- package/dist/features/oauth/components/OAuthPartnerButton.d.ts.map +1 -0
- package/dist/features/oauth/components/index.d.ts +17 -0
- package/dist/features/oauth/components/index.d.ts.map +1 -0
- package/dist/features/oauth/index.d.ts +11 -0
- package/dist/features/oauth/index.d.ts.map +1 -0
- package/dist/firebase/authPersistence.d.ts +23 -0
- package/dist/firebase/authPersistence.d.ts.map +1 -0
- package/dist/firebase/index.d.ts +10 -0
- package/dist/firebase/index.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/providers/ExpoAppProviders.d.ts +46 -0
- package/dist/providers/ExpoAppProviders.d.ts.map +1 -0
- package/dist/routing/components.d.ts +26 -0
- package/dist/routing/components.d.ts.map +1 -0
- package/dist/routing/hooks.d.ts +87 -0
- package/dist/routing/hooks.d.ts.map +1 -0
- package/dist/routing/index.d.ts +11 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/utils/useFormStoreSafe.d.ts +15 -0
- package/dist/routing/utils/useFormStoreSafe.d.ts.map +1 -0
- package/dist/storage/AsyncStorageStrategy.d.ts +55 -0
- package/dist/storage/AsyncStorageStrategy.d.ts.map +1 -0
- package/dist/storage/zustandAsyncStorage.d.ts +22 -0
- package/dist/storage/zustandAsyncStorage.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +111 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/index.d.ts +8 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/tokens.d.ts +152 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +73 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +39 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/theme-helpers.d.ts +29 -0
- package/dist/utils/theme-helpers.d.ts.map +1 -0
- package/dist/utils/useAuthSafe.d.ts +8 -0
- package/dist/utils/useAuthSafe.d.ts.map +1 -0
- package/dist/utils/variants.d.ts +25 -0
- package/dist/utils/variants.d.ts.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CopyToClipboard component
|
|
3
|
+
* @description Component for copying text to clipboard with visual feedback
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import { type ButtonProps } from '../Button';
|
|
11
|
+
import type { ReactNode } from 'react';
|
|
12
|
+
/**
|
|
13
|
+
* CopyToClipboard component props interface
|
|
14
|
+
*/
|
|
15
|
+
export interface CopyToClipboardProps extends Omit<ButtonProps, 'children' | 'onPress'> {
|
|
16
|
+
/**
|
|
17
|
+
* Text to copy to clipboard
|
|
18
|
+
*/
|
|
19
|
+
text: string;
|
|
20
|
+
/**
|
|
21
|
+
* Custom copy button content
|
|
22
|
+
*/
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Callback when copy is successful
|
|
26
|
+
*/
|
|
27
|
+
onCopy?: (text: string) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Tooltip text when not copied
|
|
30
|
+
* @default 'Copy to clipboard'
|
|
31
|
+
*/
|
|
32
|
+
tooltipText?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Tooltip text when copied
|
|
35
|
+
* @default 'Copied!'
|
|
36
|
+
*/
|
|
37
|
+
copiedTooltipText?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Additional style
|
|
40
|
+
*/
|
|
41
|
+
style?: ViewStyle;
|
|
42
|
+
/**
|
|
43
|
+
* Test ID for testing
|
|
44
|
+
*/
|
|
45
|
+
testID?: string;
|
|
46
|
+
/**
|
|
47
|
+
* ARIA label (for API parity with web)
|
|
48
|
+
*/
|
|
49
|
+
ariaLabel?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Form name attribute (for API parity with web)
|
|
52
|
+
*/
|
|
53
|
+
name?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Form type attribute (for API parity with web)
|
|
56
|
+
*/
|
|
57
|
+
type?: 'button' | 'submit' | 'reset';
|
|
58
|
+
/**
|
|
59
|
+
* Form value attribute (for API parity with web)
|
|
60
|
+
*/
|
|
61
|
+
value?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Icon prop (expo-only, for API parity)
|
|
64
|
+
*/
|
|
65
|
+
icon?: ReactNode;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Component for copying text to clipboard with visual feedback.
|
|
69
|
+
*
|
|
70
|
+
* @component
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* <CopyToClipboard text="Hello World" />
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
declare const CopyToClipboard: ({ text, children, variant, onCopy, tooltipText, copiedTooltipText, style, testID, ...buttonProps }: CopyToClipboardProps) => import("react/jsx-runtime").JSX.Element;
|
|
77
|
+
export default CopyToClipboard;
|
|
78
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/CopyToClipboard/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,WAAW,EACX,UAAU,GAAG,SAAS,CACvB;IACC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,GAAI,oGAUtB,oBAAoB,4CA2BtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview DescriptionList component
|
|
3
|
+
* @description Semantic description list for key-value pairs
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import type { ReactNode } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* Description item interface
|
|
13
|
+
*/
|
|
14
|
+
export interface DescriptionItem {
|
|
15
|
+
/** Term/label */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Definition/value */
|
|
18
|
+
value: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* DescriptionList component props interface
|
|
22
|
+
*/
|
|
23
|
+
export interface DescriptionListProps {
|
|
24
|
+
/**
|
|
25
|
+
* Array of term/definition pairs
|
|
26
|
+
*/
|
|
27
|
+
items?: DescriptionItem[];
|
|
28
|
+
/**
|
|
29
|
+
* Alternative content (replaces items array rendering)
|
|
30
|
+
*/
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Layout orientation
|
|
34
|
+
* @default 'vertical'
|
|
35
|
+
*/
|
|
36
|
+
orientation?: 'horizontal' | 'vertical';
|
|
37
|
+
/**
|
|
38
|
+
* Additional style
|
|
39
|
+
*/
|
|
40
|
+
style?: ViewStyle;
|
|
41
|
+
/**
|
|
42
|
+
* Test ID for testing
|
|
43
|
+
*/
|
|
44
|
+
testID?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* DescriptionList component for key-value pairs.
|
|
48
|
+
*
|
|
49
|
+
* @component
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* <DescriptionList items={[
|
|
53
|
+
* { label: 'Email', value: user.email },
|
|
54
|
+
* { label: 'Plan', value: 'Pro' }
|
|
55
|
+
* ]} />
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
declare const DescriptionList: ({ items, children, orientation, style, testID, }: DescriptionListProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
59
|
+
export default DescriptionList;
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/DescriptionList/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAaD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,GAAI,kDAMtB,oBAAoB,mDAwDtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Dialog component
|
|
3
|
+
* @description Accessible modal dialog component
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import { SURFACE_VARIANT } from '../../utils/constants';
|
|
11
|
+
import type { ButtonVariant } from '../Button';
|
|
12
|
+
import type { ReactNode } from 'react';
|
|
13
|
+
/**
|
|
14
|
+
* Content size type
|
|
15
|
+
*/
|
|
16
|
+
export type ContentSize = 'auto' | 'form' | 'text' | 'image' | 'code' | 'full';
|
|
17
|
+
/**
|
|
18
|
+
* Dialog component props interface
|
|
19
|
+
*/
|
|
20
|
+
export interface DialogProps {
|
|
21
|
+
/**
|
|
22
|
+
* The element that opens the dialog
|
|
23
|
+
*/
|
|
24
|
+
trigger?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Dialog title
|
|
27
|
+
*/
|
|
28
|
+
title?: string | ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Dialog description
|
|
31
|
+
*/
|
|
32
|
+
description?: string | ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Main content
|
|
35
|
+
*/
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Controlled open state
|
|
39
|
+
*/
|
|
40
|
+
open?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Callback when open state changes
|
|
43
|
+
*/
|
|
44
|
+
onOpenChange?: (open: boolean) => void;
|
|
45
|
+
/**
|
|
46
|
+
* Content size
|
|
47
|
+
* @default 'auto'
|
|
48
|
+
*/
|
|
49
|
+
contentSize?: ContentSize;
|
|
50
|
+
/**
|
|
51
|
+
* Visual variant
|
|
52
|
+
* @default 'default'
|
|
53
|
+
*/
|
|
54
|
+
variant?: (typeof SURFACE_VARIANT)[keyof typeof SURFACE_VARIANT];
|
|
55
|
+
/**
|
|
56
|
+
* Structured action buttons for the dialog footer
|
|
57
|
+
*/
|
|
58
|
+
actions?: {
|
|
59
|
+
cancel?: {
|
|
60
|
+
label: string;
|
|
61
|
+
onClick?: () => void;
|
|
62
|
+
};
|
|
63
|
+
confirm?: {
|
|
64
|
+
label: string;
|
|
65
|
+
onClick?: () => void;
|
|
66
|
+
variant?: ButtonVariant;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Footer actions (custom ReactNode)
|
|
71
|
+
*/
|
|
72
|
+
footer?: ReactNode;
|
|
73
|
+
/**
|
|
74
|
+
* Additional style
|
|
75
|
+
*/
|
|
76
|
+
style?: ViewStyle;
|
|
77
|
+
/**
|
|
78
|
+
* Label for the auto-rendered close button (shown when no footer/actions provided).
|
|
79
|
+
* Localize this at the call site.
|
|
80
|
+
* @default 'Close'
|
|
81
|
+
*/
|
|
82
|
+
closeText?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Test ID for testing
|
|
85
|
+
*/
|
|
86
|
+
testID?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Accessible modal dialog component.
|
|
90
|
+
*
|
|
91
|
+
* @component
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* <Dialog
|
|
95
|
+
* trigger={<Button>Open Dialog</Button>}
|
|
96
|
+
* title="Confirm"
|
|
97
|
+
* description="Are you sure?"
|
|
98
|
+
* >
|
|
99
|
+
* <Text>Dialog content</Text>
|
|
100
|
+
* </Dialog>
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
declare const Dialog: ({ trigger, title, description, children, open: controlledOpen, onOpenChange, contentSize, variant, actions, footer, style, closeText, testID, }: DialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
104
|
+
export default Dialog;
|
|
105
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Dialog/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;IACjE;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;QACjD,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;YAAC,OAAO,CAAC,EAAE,aAAa,CAAA;SAAE,CAAC;KAC5E,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2BD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,MAAM,GAAI,iJAcb,WAAW,4CA+Ib,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview DropdownMenu component
|
|
3
|
+
* @description Dropdown menu component
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import type { ReactNode } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* Dropdown menu item data interface
|
|
13
|
+
*/
|
|
14
|
+
export interface DropdownMenuItemData {
|
|
15
|
+
label: string;
|
|
16
|
+
value?: string;
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
separator?: boolean;
|
|
20
|
+
onSelect?: () => void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* DropdownMenu component props interface
|
|
24
|
+
*/
|
|
25
|
+
export interface DropdownMenuProps {
|
|
26
|
+
/**
|
|
27
|
+
* Trigger element
|
|
28
|
+
*/
|
|
29
|
+
trigger?: ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* Trigger content (alternative to trigger prop)
|
|
32
|
+
*/
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Menu items
|
|
36
|
+
*/
|
|
37
|
+
items?: DropdownMenuItemData[];
|
|
38
|
+
/**
|
|
39
|
+
* Menu content (alternative to items)
|
|
40
|
+
*/
|
|
41
|
+
content?: ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* Width of the dropdown content
|
|
44
|
+
*/
|
|
45
|
+
contentWidth?: number | string;
|
|
46
|
+
/**
|
|
47
|
+
* Alignment of the dropdown content relative to trigger
|
|
48
|
+
* @default 'start'
|
|
49
|
+
*/
|
|
50
|
+
contentAlign?: 'start' | 'center' | 'end';
|
|
51
|
+
/**
|
|
52
|
+
* Controlled open state
|
|
53
|
+
*/
|
|
54
|
+
open?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Callback when open state changes
|
|
57
|
+
*/
|
|
58
|
+
onOpenChange?: (open: boolean) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Additional style
|
|
61
|
+
*/
|
|
62
|
+
style?: ViewStyle;
|
|
63
|
+
/**
|
|
64
|
+
* Test ID for testing
|
|
65
|
+
*/
|
|
66
|
+
testID?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Dropdown menu component.
|
|
70
|
+
*
|
|
71
|
+
* @component
|
|
72
|
+
* @example
|
|
73
|
+
* ```tsx
|
|
74
|
+
* <DropdownMenu
|
|
75
|
+
* trigger={<Button>Menu</Button>}
|
|
76
|
+
* items={[
|
|
77
|
+
* { label: 'Item 1', onSelect: () => console.log('1') },
|
|
78
|
+
* { label: 'Item 2', onSelect: () => console.log('2') }
|
|
79
|
+
* ]}
|
|
80
|
+
* />
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare const DropdownMenu: ({ trigger, children, items, content, contentWidth, contentAlign, open: controlledOpen, onOpenChange, style, testID, }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export default DropdownMenu;
|
|
85
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/DropdownMenu/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,YAAY,GAAI,uHAWnB,iBAAiB,4CA6FnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview DualCard component
|
|
3
|
+
* @description Two-column card layout with vertical separator
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import { SURFACE_VARIANT } from '../../utils/constants';
|
|
11
|
+
import type { ReactNode } from 'react';
|
|
12
|
+
import type { CardContent } from '../Card';
|
|
13
|
+
/**
|
|
14
|
+
* DualCard component props interface
|
|
15
|
+
*/
|
|
16
|
+
export interface DualCardProps {
|
|
17
|
+
/**
|
|
18
|
+
* Left side title
|
|
19
|
+
*/
|
|
20
|
+
leftTitle?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Left side subtitle
|
|
23
|
+
*/
|
|
24
|
+
leftSubtitle?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Left side content
|
|
27
|
+
*/
|
|
28
|
+
leftContent?: CardContent;
|
|
29
|
+
/**
|
|
30
|
+
* Left side CTA
|
|
31
|
+
*/
|
|
32
|
+
leftCTA?: ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Left side icon (for API parity with web)
|
|
35
|
+
*/
|
|
36
|
+
leftIcon?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Right side title
|
|
39
|
+
*/
|
|
40
|
+
rightTitle?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Right side subtitle
|
|
43
|
+
*/
|
|
44
|
+
rightSubtitle?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Right side content
|
|
47
|
+
*/
|
|
48
|
+
rightContent?: CardContent;
|
|
49
|
+
/**
|
|
50
|
+
* Right side CTA
|
|
51
|
+
*/
|
|
52
|
+
rightCTA?: ReactNode;
|
|
53
|
+
/**
|
|
54
|
+
* Right side icon (for API parity with web)
|
|
55
|
+
*/
|
|
56
|
+
rightIcon?: ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Visual variant
|
|
59
|
+
* @default 'default'
|
|
60
|
+
*/
|
|
61
|
+
variant?: (typeof SURFACE_VARIANT)[keyof typeof SURFACE_VARIANT];
|
|
62
|
+
/**
|
|
63
|
+
* Increases card shadow for elevated appearance
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
elevated?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Custom content override (replaces default dual layout)
|
|
69
|
+
*/
|
|
70
|
+
children?: ReactNode;
|
|
71
|
+
/**
|
|
72
|
+
* Click handler
|
|
73
|
+
*/
|
|
74
|
+
onClick?: () => void;
|
|
75
|
+
/**
|
|
76
|
+
* Additional style
|
|
77
|
+
*/
|
|
78
|
+
style?: ViewStyle;
|
|
79
|
+
/**
|
|
80
|
+
* Test ID for testing
|
|
81
|
+
*/
|
|
82
|
+
testID?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Two-column card with vertical separator.
|
|
86
|
+
* Responsive: 2 columns on tablet+, stacks to 1 column on mobile.
|
|
87
|
+
*
|
|
88
|
+
* @component
|
|
89
|
+
* @example
|
|
90
|
+
* ```tsx
|
|
91
|
+
* <DualCard
|
|
92
|
+
* leftTitle="What we do"
|
|
93
|
+
* leftContent="Content left"
|
|
94
|
+
* rightTitle="How we do it"
|
|
95
|
+
* rightContent="Content right"
|
|
96
|
+
* />
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
declare const DualCard: ({ leftTitle, leftSubtitle, leftContent, leftCTA, rightTitle, rightSubtitle, rightContent, rightCTA, variant, elevated, children, onClick, style, testID, }: DualCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
100
|
+
export default DualCard;
|
|
101
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/DualCard/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,QAAQ,GAAI,4JAef,aAAa,4CAuFf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FeatureFallback component
|
|
3
|
+
* @description Component for graceful feature degradation
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import type { ReactNode, ComponentType } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* FeatureFallback component props interface
|
|
13
|
+
*/
|
|
14
|
+
export interface FeatureFallbackProps {
|
|
15
|
+
/**
|
|
16
|
+
* Fallback content to show when feature is unavailable
|
|
17
|
+
*/
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Name of the unavailable feature
|
|
21
|
+
*/
|
|
22
|
+
featureName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Custom message to display
|
|
25
|
+
*/
|
|
26
|
+
message?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Icon to display above the message
|
|
29
|
+
*/
|
|
30
|
+
icon?: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to show an action button
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
showActionButton?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Action button text
|
|
38
|
+
* @default 'Go Back'
|
|
39
|
+
*/
|
|
40
|
+
actionButtonText?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Additional help text below the message
|
|
43
|
+
*/
|
|
44
|
+
helpText?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Additional style
|
|
47
|
+
*/
|
|
48
|
+
style?: ViewStyle;
|
|
49
|
+
/**
|
|
50
|
+
* Test ID for testing
|
|
51
|
+
*/
|
|
52
|
+
testID?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Component for graceful feature degradation.
|
|
56
|
+
*
|
|
57
|
+
* @component
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* <FeatureFallback>
|
|
61
|
+
* <Text>Feature not available</Text>
|
|
62
|
+
* </FeatureFallback>
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
declare const FeatureFallback: ({ children, featureName, message, icon, showActionButton, actionButtonText, helpText, style, testID, }: FeatureFallbackProps) => import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
/**
|
|
67
|
+
* HOC to wrap components with feature fallback via ErrorBoundary.
|
|
68
|
+
* Catches React render errors that try/catch cannot.
|
|
69
|
+
*/
|
|
70
|
+
export declare const withFeatureFallback: <P extends object>(WrappedComponent: ComponentType<P>, fallback: ReactNode) => {
|
|
71
|
+
(props: P): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
displayName: string;
|
|
73
|
+
};
|
|
74
|
+
export default FeatureFallback;
|
|
75
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/FeatureFallback/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOpD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,eAAe,GAAI,wGAUtB,oBAAoB,4CA4DtB,CAAC;AAgCF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,EAClD,kBAAkB,aAAa,CAAC,CAAC,CAAC,EAClC,UAAU,SAAS;YAEiB,CAAC;;CAStC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FileButton component
|
|
3
|
+
* @description Button for file input
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import { type ButtonProps } from '../Button';
|
|
11
|
+
/**
|
|
12
|
+
* FileButton component props interface
|
|
13
|
+
*/
|
|
14
|
+
export interface FileButtonProps extends Omit<ButtonProps, 'onPress'> {
|
|
15
|
+
/**
|
|
16
|
+
* Callback when file is selected
|
|
17
|
+
*/
|
|
18
|
+
onFileSelect?: (file: {
|
|
19
|
+
uri: string;
|
|
20
|
+
name: string;
|
|
21
|
+
type: string;
|
|
22
|
+
size: number;
|
|
23
|
+
}) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Accepted file types (MIME types)
|
|
26
|
+
*/
|
|
27
|
+
accept?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Multiple file selection
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
multiple?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Additional style
|
|
35
|
+
*/
|
|
36
|
+
style?: ViewStyle;
|
|
37
|
+
/**
|
|
38
|
+
* Test ID for testing
|
|
39
|
+
*/
|
|
40
|
+
testID?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Button for file input.
|
|
44
|
+
*
|
|
45
|
+
* @component
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* <FileButton onFileSelect={(file) => console.log(file)}>
|
|
49
|
+
* Choose File
|
|
50
|
+
* </FileButton>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare const FileButton: ({ onFileSelect, accept, multiple, children, style, testID, ...buttonProps }: FileButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export default FileButton;
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/FileButton/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5E,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;IACnE;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,UAAU,GAAI,6EAQjB,eAAe,4CAiCjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Grid component
|
|
3
|
+
* @description Grid layout component with responsive columns
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ViewStyle } from 'react-native';
|
|
10
|
+
import type { ReactNode } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* Responsive columns array: [mobile, tablet, laptop, desktop]
|
|
13
|
+
*/
|
|
14
|
+
export type ResponsiveCols = [number, number, number, number];
|
|
15
|
+
/**
|
|
16
|
+
* Grid component props interface
|
|
17
|
+
*/
|
|
18
|
+
export interface GridProps {
|
|
19
|
+
/**
|
|
20
|
+
* Number of columns - fixed or responsive
|
|
21
|
+
* @default 1
|
|
22
|
+
*/
|
|
23
|
+
cols?: number | ResponsiveCols;
|
|
24
|
+
/**
|
|
25
|
+
* Spacing between items (in pixels)
|
|
26
|
+
* @default 16
|
|
27
|
+
*/
|
|
28
|
+
gap?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Cross-axis alignment of grid items
|
|
31
|
+
*/
|
|
32
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
33
|
+
/**
|
|
34
|
+
* Main-axis content justification
|
|
35
|
+
*/
|
|
36
|
+
justify?: 'start' | 'center' | 'end' | 'space-between' | 'space-around';
|
|
37
|
+
/**
|
|
38
|
+
* Grid children
|
|
39
|
+
*/
|
|
40
|
+
children: ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* Additional style
|
|
43
|
+
*/
|
|
44
|
+
style?: ViewStyle;
|
|
45
|
+
/**
|
|
46
|
+
* Test ID for testing
|
|
47
|
+
*/
|
|
48
|
+
testID?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* GridArea component props interface
|
|
52
|
+
*/
|
|
53
|
+
export interface GridAreaProps {
|
|
54
|
+
/**
|
|
55
|
+
* Area name
|
|
56
|
+
*/
|
|
57
|
+
name: string;
|
|
58
|
+
/**
|
|
59
|
+
* Area content
|
|
60
|
+
*/
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
/**
|
|
63
|
+
* Self-alignment within the grid cell
|
|
64
|
+
* @default 'auto'
|
|
65
|
+
*/
|
|
66
|
+
alignSelf?: 'auto' | 'start' | 'center' | 'end' | 'stretch';
|
|
67
|
+
/**
|
|
68
|
+
* Justify self alignment (horizontal alignment within grid cell)
|
|
69
|
+
* @default 'stretch'
|
|
70
|
+
*/
|
|
71
|
+
justifySelf?: 'start' | 'center' | 'end' | 'stretch';
|
|
72
|
+
/**
|
|
73
|
+
* Overflow behavior
|
|
74
|
+
* @default 'hidden'
|
|
75
|
+
*/
|
|
76
|
+
overflow?: 'hidden' | 'visible' | 'auto' | 'scroll';
|
|
77
|
+
/**
|
|
78
|
+
* Minimum width for GridArea
|
|
79
|
+
*/
|
|
80
|
+
min?: string | number;
|
|
81
|
+
/**
|
|
82
|
+
* Additional style
|
|
83
|
+
*/
|
|
84
|
+
style?: ViewStyle;
|
|
85
|
+
/**
|
|
86
|
+
* Test ID for testing
|
|
87
|
+
*/
|
|
88
|
+
testID?: string;
|
|
89
|
+
}
|
|
90
|
+
declare const Grid: ({ cols, gap, align, justify, children, style, testID }: GridProps) => import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
export declare const GridArea: ({ name, children, alignSelf, justifySelf, overflow, min, style, testID }: GridAreaProps) => import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
export default Grid;
|
|
93
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Grid/index.tsx"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,cAAc,CAAC;IACxE;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpD;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8BD,QAAA,MAAM,IAAI,GAAI,wDAAiE,SAAS,4CA4CvF,CAAC;AAsBF,eAAO,MAAM,QAAQ,GAAI,0EAStB,aAAa,4CAaf,CAAC;AAEF,eAAe,IAAI,CAAC"}
|