@digitaldefiance/express-suite-react-components 2.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +268 -0
  2. package/package.json +72 -0
  3. package/src/auth/Private.d.ts +8 -0
  4. package/src/auth/Private.d.ts.map +1 -0
  5. package/src/auth/PrivateRoute.d.ts +10 -0
  6. package/src/auth/PrivateRoute.d.ts.map +1 -0
  7. package/src/auth/UnAuthRoute.d.ts +10 -0
  8. package/src/auth/UnAuthRoute.d.ts.map +1 -0
  9. package/src/auth/index.d.ts +4 -0
  10. package/src/auth/index.d.ts.map +1 -0
  11. package/src/components/ApiAccess.d.ts +15 -0
  12. package/src/components/ApiAccess.d.ts.map +1 -0
  13. package/src/components/BackupCodeLoginForm.d.ts +46 -0
  14. package/src/components/BackupCodeLoginForm.d.ts.map +1 -0
  15. package/src/components/BackupCodesForm.d.ts +25 -0
  16. package/src/components/BackupCodesForm.d.ts.map +1 -0
  17. package/src/components/ChangePasswordForm.d.ts +25 -0
  18. package/src/components/ChangePasswordForm.d.ts.map +1 -0
  19. package/src/components/ConfirmationDialog.d.ts +12 -0
  20. package/src/components/ConfirmationDialog.d.ts.map +1 -0
  21. package/src/components/CurrencyCodeSelector.d.ts +8 -0
  22. package/src/components/CurrencyCodeSelector.d.ts.map +1 -0
  23. package/src/components/CurrencyInput.d.ts +11 -0
  24. package/src/components/CurrencyInput.d.ts.map +1 -0
  25. package/src/components/DashboardPage.d.ts +7 -0
  26. package/src/components/DashboardPage.d.ts.map +1 -0
  27. package/src/components/DropdownMenu.d.ts +15 -0
  28. package/src/components/DropdownMenu.d.ts.map +1 -0
  29. package/src/components/ExpirationSecondsSelector.d.ts +12 -0
  30. package/src/components/ExpirationSecondsSelector.d.ts.map +1 -0
  31. package/src/components/Flag.d.ts +9 -0
  32. package/src/components/Flag.d.ts.map +1 -0
  33. package/src/components/ForgotPasswordForm.d.ts +17 -0
  34. package/src/components/ForgotPasswordForm.d.ts.map +1 -0
  35. package/src/components/LoginForm.d.ts +43 -0
  36. package/src/components/LoginForm.d.ts.map +1 -0
  37. package/src/components/LogoutPage.d.ts +7 -0
  38. package/src/components/LogoutPage.d.ts.map +1 -0
  39. package/src/components/RegisterForm.d.ts +53 -0
  40. package/src/components/RegisterForm.d.ts.map +1 -0
  41. package/src/components/ResetPasswordForm.d.ts +22 -0
  42. package/src/components/ResetPasswordForm.d.ts.map +1 -0
  43. package/src/components/SideMenu.d.ts +13 -0
  44. package/src/components/SideMenu.d.ts.map +1 -0
  45. package/src/components/SideMenuListItem.d.ts +12 -0
  46. package/src/components/SideMenuListItem.d.ts.map +1 -0
  47. package/src/components/TopMenu.d.ts +18 -0
  48. package/src/components/TopMenu.d.ts.map +1 -0
  49. package/src/components/TranslatedTitle.d.ts +7 -0
  50. package/src/components/TranslatedTitle.d.ts.map +1 -0
  51. package/src/components/UserLanguageSelector.d.ts +14 -0
  52. package/src/components/UserLanguageSelector.d.ts.map +1 -0
  53. package/src/components/VerifyEmailPage.d.ts +22 -0
  54. package/src/components/VerifyEmailPage.d.ts.map +1 -0
  55. package/src/components/index.d.ts +23 -0
  56. package/src/components/index.d.ts.map +1 -0
  57. package/src/contexts/I18nProvider.d.ts +16 -0
  58. package/src/contexts/I18nProvider.d.ts.map +1 -0
  59. package/src/contexts/ThemeProvider.d.ts +14 -0
  60. package/src/contexts/ThemeProvider.d.ts.map +1 -0
  61. package/src/contexts/index.d.ts +3 -0
  62. package/src/contexts/index.d.ts.map +1 -0
  63. package/src/enumerations/IncludeOnMenu.d.ts +6 -0
  64. package/src/enumerations/IncludeOnMenu.d.ts.map +1 -0
  65. package/src/enumerations/index.d.ts +2 -0
  66. package/src/enumerations/index.d.ts.map +1 -0
  67. package/src/hooks/index.d.ts +3 -0
  68. package/src/hooks/index.d.ts.map +1 -0
  69. package/src/hooks/useExpiringValue.d.ts +14 -0
  70. package/src/hooks/useExpiringValue.d.ts.map +1 -0
  71. package/src/hooks/useLocalStorage.d.ts +2 -0
  72. package/src/hooks/useLocalStorage.d.ts.map +1 -0
  73. package/src/index.d.ts +9 -0
  74. package/src/index.d.ts.map +1 -0
  75. package/src/interfaces/AppConfig.d.ts +8 -0
  76. package/src/interfaces/AppConfig.d.ts.map +1 -0
  77. package/src/interfaces/IMenuOption.d.ts +57 -0
  78. package/src/interfaces/IMenuOption.d.ts.map +1 -0
  79. package/src/interfaces/index.d.ts +3 -0
  80. package/src/interfaces/index.d.ts.map +1 -0
  81. package/src/services/api.d.ts +3 -0
  82. package/src/services/api.d.ts.map +1 -0
  83. package/src/services/authenticatedApi.d.ts +3 -0
  84. package/src/services/authenticatedApi.d.ts.map +1 -0
  85. package/src/services/index.d.ts +3 -0
  86. package/src/services/index.d.ts.map +1 -0
  87. package/src/types/expirationSeconds.d.ts +3 -0
  88. package/src/types/expirationSeconds.d.ts.map +1 -0
  89. package/src/types/index.d.ts +3 -0
  90. package/src/types/index.d.ts.map +1 -0
  91. package/src/types/translation.d.ts +10 -0
  92. package/src/types/translation.d.ts.map +1 -0
package/README.md ADDED
@@ -0,0 +1,268 @@
1
+ # @digitaldefiance/express-suite-react-components
2
+
3
+ React MUI components library for Digital Defiance Express Suite applications.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @digitaldefiance/express-suite-react-components
9
+ # or
10
+ yarn add @digitaldefiance/express-suite-react-components
11
+ ```
12
+
13
+ ## Components
14
+
15
+ ### Authentication & Routing
16
+
17
+ - **PrivateRoute** - Protected route wrapper requiring authentication
18
+ - **UnAuthRoute** - Route wrapper for unauthenticated users only
19
+ - **Private** - Conditional rendering based on authentication
20
+ - **LoginForm** - Flexible login form with email/username and password/mnemonic options (extensible)
21
+ - **RegisterForm** - User registration form with timezone selection (extensible)
22
+ - **ForgotPasswordForm** - Password reset request form
23
+ - **ResetPasswordForm** - Password reset form with token validation
24
+ - **ChangePasswordForm** - Password change form with validation
25
+ - **BackupCodeLoginForm** - Backup code login with mnemonic recovery
26
+ - **BackupCodesForm** - Generate new backup codes with mnemonic/password
27
+ - **VerifyEmailPage** - Email verification page with token handling
28
+ - **LogoutPage** - Logout handler with redirect
29
+ - **DashboardPage** - Basic dashboard layout
30
+ - **ApiAccess** - API token display and copy component
31
+
32
+ ### UI Components
33
+
34
+ - **ConfirmationDialog** - Reusable confirmation dialog
35
+ - **CurrencyCodeSelector** - Currency selection dropdown
36
+ - **CurrencyInput** - Formatted currency input field
37
+ - **DropdownMenu** - Generic dropdown menu component
38
+ - **ExpirationSecondsSelector** - Time duration selector for expiring values
39
+ - **Flag** - Country flag display component
40
+ - **SideMenu** - Drawer-based side navigation menu
41
+ - **SideMenuListItem** - Menu list item for side navigation
42
+ - **TopMenu** - App bar with navigation and menu
43
+ - **TranslatedTitle** - Document title updater with i18n support
44
+ - **UserLanguageSelector** - Language selection component
45
+
46
+ ### Hooks
47
+
48
+ - **useLocalStorage** - React hook for localStorage with state sync
49
+ - **useExpiringValue** - React hook for values that expire after a duration
50
+
51
+ ### Contexts & Providers
52
+
53
+ - **I18nProvider** - Internationalization context with i18n engine integration
54
+ - **AppThemeProvider** - MUI theme provider with dark/light mode toggle
55
+ - **ThemeToggleButton** - Button component for theme switching
56
+ - **useI18n** - Hook for accessing i18n context
57
+ - **useTheme** - Hook for accessing theme context
58
+
59
+ ### Services
60
+
61
+ - **createApiClient** - Factory for axios API client with language headers
62
+ - **createAuthenticatedApiClient** - Factory for authenticated axios client
63
+
64
+ ### Types & Interfaces
65
+
66
+ - **IMenuOption** - Menu option interface
67
+ - **IncludeOnMenu** - Menu location enumeration
68
+
69
+ ## Usage
70
+
71
+ ### Authentication
72
+
73
+ ```tsx
74
+ import { PrivateRoute, LoginForm } from '@digitaldefiance/express-suite-react-components';
75
+
76
+ function App() {
77
+ return (
78
+ <Routes>
79
+ <Route path="/login" element={
80
+ <LoginForm onSubmit={handleLogin} />
81
+ } />
82
+ <Route path="/dashboard" element={
83
+ <PrivateRoute isAuthenticated={isAuth} isCheckingAuth={checking}>
84
+ <Dashboard />
85
+ </PrivateRoute>
86
+ } />
87
+ </Routes>
88
+ );
89
+ }
90
+ ```
91
+
92
+ ### Providers
93
+
94
+ ```tsx
95
+ import { I18nProvider, AppThemeProvider } from '@digitaldefiance/express-suite-react-components';
96
+ import { getCoreI18nEngine } from '@digitaldefiance/i18n-lib';
97
+
98
+ function App() {
99
+ const i18nEngine = getCoreI18nEngine();
100
+
101
+ return (
102
+ <AppThemeProvider>
103
+ <I18nProvider i18nEngine={i18nEngine}>
104
+ <YourApp />
105
+ </I18nProvider>
106
+ </AppThemeProvider>
107
+ );
108
+ }
109
+ ```
110
+
111
+ ### Forms & UI
112
+
113
+ ```tsx
114
+ import { ConfirmationDialog, CurrencyInput, ChangePasswordForm } from '@digitaldefiance/express-suite-react-components';
115
+
116
+ function MyComponent() {
117
+ return (
118
+ <>
119
+ <CurrencyInput value={100} onChange={handleChange} />
120
+ <ConfirmationDialog open={true} onConfirm={handleConfirm} />
121
+ <ChangePasswordForm onSubmit={handlePasswordChange} />
122
+ </>
123
+ );
124
+ }
125
+ ```
126
+
127
+ ### Extensible Forms
128
+
129
+ LoginForm and RegisterForm support custom fields via render props:
130
+
131
+ ```tsx
132
+ import { LoginForm } from '@digitaldefiance/express-suite-react-components';
133
+ import * as Yup from 'yup';
134
+
135
+ function CustomLoginPage() {
136
+ return (
137
+ <LoginForm
138
+ onSubmit={handleSubmit}
139
+ additionalInitialValues={{
140
+ customField: 'defaultValue',
141
+ }}
142
+ additionalValidation={{
143
+ customField: Yup.string().required(),
144
+ }}
145
+ additionalFields={(formik) => (
146
+ <TextField
147
+ name="customField"
148
+ label="Custom Field"
149
+ value={formik.values.customField}
150
+ onChange={formik.handleChange}
151
+ error={formik.touched.customField && Boolean(formik.errors.customField)}
152
+ helperText={formik.touched.customField && formik.errors.customField}
153
+ />
154
+ )}
155
+ />
156
+ );
157
+ }
158
+ ```
159
+
160
+ ```tsx
161
+ import { RegisterForm } from '@digitaldefiance/express-suite-react-components';
162
+ import moment from 'moment-timezone';
163
+
164
+ function CustomRegisterPage() {
165
+ return (
166
+ <RegisterForm
167
+ onSubmit={handleSubmit}
168
+ timezones={moment.tz.names()}
169
+ getInitialTimezone={() => Intl.DateTimeFormat().resolvedOptions().timeZone}
170
+ additionalInitialValues={{
171
+ referralCode: '',
172
+ }}
173
+ additionalValidation={{
174
+ referralCode: Yup.string().optional(),
175
+ }}
176
+ additionalFields={(formik, usePassword) => (
177
+ <TextField
178
+ name="referralCode"
179
+ label="Referral Code (Optional)"
180
+ value={formik.values.referralCode}
181
+ onChange={formik.handleChange}
182
+ />
183
+ )}
184
+ />
185
+ );
186
+ }
187
+ ```
188
+
189
+ ## API Reference
190
+
191
+ ### LoginForm Props
192
+
193
+ ```typescript
194
+ interface LoginFormProps {
195
+ onSubmit: (values: LoginFormValues) => Promise<void>;
196
+ loginType?: 'email' | 'username';
197
+ authType?: 'password' | 'mnemonic';
198
+ allowLoginTypeToggle?: boolean;
199
+ allowAuthTypeToggle?: boolean;
200
+ showForgotPassword?: boolean;
201
+ showSignUp?: boolean;
202
+ forgotPasswordLink?: string;
203
+ signUpLink?: string;
204
+
205
+ // Extensibility
206
+ additionalFields?: (formik) => React.ReactNode;
207
+ additionalInitialValues?: Record<string, any>;
208
+ additionalValidation?: Record<string, Yup.Schema>;
209
+
210
+ // Customization
211
+ emailLabel?: string;
212
+ usernameLabel?: string;
213
+ passwordLabel?: string;
214
+ mnemonicLabel?: string;
215
+ signInButtonText?: string;
216
+ // ... more label props
217
+
218
+ // Validation overrides
219
+ emailValidation?: Yup.StringSchema;
220
+ usernameValidation?: Yup.StringSchema;
221
+ passwordValidation?: Yup.StringSchema;
222
+ mnemonicValidation?: Yup.StringSchema;
223
+ }
224
+ ```
225
+
226
+ ### RegisterForm Props
227
+
228
+ ```typescript
229
+ interface RegisterFormProps {
230
+ onSubmit: (values: RegisterFormValues, usePassword: boolean) => Promise<Result>;
231
+ timezones: string[];
232
+ getInitialTimezone: () => string;
233
+
234
+ // Extensibility
235
+ additionalFields?: (formik, usePassword: boolean) => React.ReactNode;
236
+ additionalInitialValues?: Record<string, any>;
237
+ additionalValidation?: Record<string, Yup.Schema>;
238
+
239
+ // Validation overrides
240
+ usernameValidation?: Yup.StringSchema;
241
+ emailValidation?: Yup.StringSchema;
242
+ timezoneValidation?: Yup.StringSchema;
243
+ passwordValidation?: Yup.StringSchema;
244
+ confirmPasswordValidation?: Yup.StringSchema;
245
+
246
+ // Labels
247
+ labels?: {
248
+ title?: string;
249
+ username?: string;
250
+ email?: string;
251
+ // ... more labels
252
+ };
253
+ }
254
+ ```
255
+
256
+ ## License
257
+
258
+ MIT © Digital Defiance
259
+
260
+ ## ChangeLog
261
+
262
+ ### v2.1.35
263
+
264
+ - Initial version (starting number matches rest of Express Suite)
265
+ - Added extensibility to LoginForm and RegisterForm
266
+ - Added `additionalFields`, `additionalInitialValues`, and `additionalValidation` props
267
+ - Added index signatures to form value types for custom fields
268
+ - Added tests for extensibility features
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@digitaldefiance/express-suite-react-components",
3
+ "version": "2.1.35",
4
+ "description": "React MUI components for Digital Defiance Express Suite",
5
+ "main": "src/index.js",
6
+ "types": "src/index.d.ts",
7
+ "scripts": {
8
+ "build": "npx nx build digitaldefiance-express-suite-react-components",
9
+ "build:stream": "npx nx build --outputStyle=stream digitaldefiance-express-suite-react-components",
10
+ "build:logged": "npx nx build --outputStyle=stream digitaldefiance-express-suite-react-components 2>&1 | ansifilter -o build.log",
11
+ "test": "npx nx test digitaldefiance-express-suite-react-components",
12
+ "test:stream": "npx nx test --outputStyle=stream digitaldefiance-express-suite-react-components",
13
+ "test:logged": "npx nx test --outputStyle=stream digitaldefiance-express-suite-react-components 2>&1 | ansifilter -o test.log",
14
+ "test:coverage": "npx jest --coverage --testPathPattern=digitaldefiance-express-suite-react-components --coverageReporters=text",
15
+ "lint": "npx nx lint digitaldefiance-express-suite-react-components",
16
+ "lint:fix": "npx nx lint digitaldefiance-express-suite-react-components --fix",
17
+ "prettier:check": "prettier --check 'src/**/*.{ts,tsx}'",
18
+ "prettier:fix": "prettier --write 'src/**/*.{ts,tsx}'",
19
+ "format": "npx nx format:write --projects=digitaldefiance-express-suite-react-components",
20
+ "format:check": "npx nx format:check --projects=digitaldefiance-express-suite-react-components",
21
+ "prepublishOnly": "npx nx build digitaldefiance-express-suite-react-components",
22
+ "publish:public": "npm publish --access public"
23
+ },
24
+ "peerDependencies": {
25
+ "react": "^19.0.0",
26
+ "react-dom": "^19.0.0"
27
+ },
28
+ "dependencies": {
29
+ "@digitaldefiance/i18n-lib": "2.1.32",
30
+ "@digitaldefiance/suite-core-lib": "2.1.35",
31
+ "@emotion/react": "^11.14.0",
32
+ "@emotion/styled": "^11.14.0",
33
+ "@mui/icons-material": "^7.0.2",
34
+ "@mui/material": "^7.0.2",
35
+ "@mui/system": "^7.0.2",
36
+ "@mui/x-date-pickers": "^8.9.0",
37
+ "axios": "^1.9.0",
38
+ "formik": "^2.4.6",
39
+ "react-number-format": "^5.4.4",
40
+ "react-router-dom": "^6.29.0",
41
+ "yup": "^1.6.1"
42
+ },
43
+ "devDependencies": {
44
+ "@digitaldefiance/express-suite-test-utils": "1.0.6",
45
+ "@testing-library/dom": "^10.4.0",
46
+ "@testing-library/jest-dom": "^6.9.1",
47
+ "@testing-library/react": "^16.3.0",
48
+ "@testing-library/user-event": "^14.6.1",
49
+ "@types/jest": "^30.0.0",
50
+ "@types/react": "19.0.0",
51
+ "@types/react-dom": "19.0.0",
52
+ "jest": "^30.2.0",
53
+ "jest-environment-jsdom": "^30.2.0",
54
+ "react": "^19.0.0",
55
+ "react-dom": "^19.0.0",
56
+ "ts-jest": "^29.4.5"
57
+ },
58
+ "files": [
59
+ "src",
60
+ "README.md"
61
+ ],
62
+ "keywords": [
63
+ "react",
64
+ "mui",
65
+ "components",
66
+ "typescript"
67
+ ],
68
+ "author": "Digital Defiance",
69
+ "license": "MIT",
70
+ "packageManager": "yarn@4.10.3",
71
+ "type": "commonjs"
72
+ }
@@ -0,0 +1,8 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface PrivateProps {
3
+ children: ReactNode;
4
+ isAuthenticated: boolean;
5
+ isCheckingAuth: boolean;
6
+ }
7
+ export declare const Private: FC<PrivateProps>;
8
+ //# sourceMappingURL=Private.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Private.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/auth/Private.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAUpC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface PrivateRouteProps {
3
+ children: ReactNode;
4
+ isAuthenticated: boolean;
5
+ isCheckingAuth: boolean;
6
+ redirectTo?: string;
7
+ loadingComponent?: ReactNode;
8
+ }
9
+ export declare const PrivateRoute: FC<PrivateRouteProps>;
10
+ //# sourceMappingURL=PrivateRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrivateRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/auth/PrivateRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAkB9C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface UnAuthRouteProps {
3
+ children: ReactNode;
4
+ isAuthenticated: boolean;
5
+ isCheckingAuth: boolean;
6
+ redirectTo?: string;
7
+ loadingComponent?: ReactNode;
8
+ }
9
+ export declare const UnAuthRoute: FC<UnAuthRouteProps>;
10
+ //# sourceMappingURL=UnAuthRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnAuthRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/auth/UnAuthRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAkB5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './PrivateRoute';
2
+ export * from './UnAuthRoute';
3
+ export * from './Private';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ export interface ApiAccessProps {
3
+ token: string | null;
4
+ labels?: {
5
+ title?: string;
6
+ tokenNotAvailable?: string;
7
+ copyButton?: string;
8
+ notificationTitle?: string;
9
+ copied?: string;
10
+ copyFailed?: string;
11
+ ok?: string;
12
+ };
13
+ }
14
+ export declare const ApiAccess: FC<ApiAccessProps>;
15
+ //# sourceMappingURL=ApiAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiAccess.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/ApiAccess.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AA4BrC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA4ExC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { FC } from 'react';
2
+ import * as Yup from 'yup';
3
+ export interface BackupCodeLoginFormValues {
4
+ email: string;
5
+ username: string;
6
+ code: string;
7
+ newPassword?: string;
8
+ confirmNewPassword?: string;
9
+ recoverMnemonic: boolean;
10
+ }
11
+ export interface BackupCodeLoginFormProps {
12
+ onSubmit: (identifier: string, code: string, isEmail: boolean, recoverMnemonic: boolean, newPassword?: string) => Promise<{
13
+ token: string;
14
+ codeCount: number;
15
+ mnemonic?: string;
16
+ message?: string;
17
+ } | {
18
+ error: string;
19
+ status?: number;
20
+ }>;
21
+ onNavigate?: (path: string, state?: any) => void;
22
+ isAuthenticated?: boolean;
23
+ emailValidation?: Yup.StringSchema;
24
+ usernameValidation?: Yup.StringSchema;
25
+ codeValidation?: Yup.StringSchema;
26
+ passwordValidation?: Yup.StringSchema;
27
+ confirmPasswordValidation?: Yup.StringSchema;
28
+ labels?: {
29
+ title?: string;
30
+ email?: string;
31
+ username?: string;
32
+ code?: string;
33
+ newPassword?: string;
34
+ confirmPassword?: string;
35
+ recoverMnemonic?: string;
36
+ login?: string;
37
+ useUsername?: string;
38
+ useEmail?: string;
39
+ dashboard?: string;
40
+ generateNewCodes?: string;
41
+ mnemonicLabel?: string;
42
+ codesRemaining?: string;
43
+ };
44
+ }
45
+ export declare const BackupCodeLoginForm: FC<BackupCodeLoginFormProps>;
46
+ //# sourceMappingURL=BackupCodeLoginForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupCodeLoginForm.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/BackupCodeLoginForm.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAI3B,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,CACR,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,OAAO,EACxB,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CACrC,CAAC;IACF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACnC,kBAAkB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACtC,cAAc,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACtC,yBAAyB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAgQ5D,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { FC } from 'react';
2
+ import * as Yup from 'yup';
3
+ export interface BackupCodesFormValues {
4
+ password?: string;
5
+ mnemonic?: string;
6
+ }
7
+ export interface BackupCodesFormProps {
8
+ onSubmit: (values: BackupCodesFormValues) => Promise<{
9
+ message: string;
10
+ backupCodes: string[];
11
+ }>;
12
+ backupCodesRemaining?: number | null;
13
+ mnemonicValidation?: Yup.StringSchema;
14
+ passwordValidation?: Yup.StringSchema;
15
+ labels?: {
16
+ title?: string;
17
+ codesRemaining?: string;
18
+ mnemonic?: string;
19
+ password?: string;
20
+ generateButton?: string;
21
+ successTitle?: string;
22
+ };
23
+ }
24
+ export declare const BackupCodesForm: FC<BackupCodesFormProps>;
25
+ //# sourceMappingURL=BackupCodesForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackupCodesForm.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/BackupCodesForm.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAI3B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACtC,kBAAkB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACtC,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqKpD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { FC } from 'react';
2
+ import * as Yup from 'yup';
3
+ export interface ChangePasswordFormValues {
4
+ currentPassword: string;
5
+ newPassword: string;
6
+ confirmPassword: string;
7
+ }
8
+ export interface ChangePasswordFormProps {
9
+ onSubmit: (values: ChangePasswordFormValues) => Promise<{
10
+ success?: boolean;
11
+ error?: string;
12
+ }>;
13
+ titleText?: string;
14
+ currentPasswordLabel?: string;
15
+ newPasswordLabel?: string;
16
+ confirmPasswordLabel?: string;
17
+ submitButtonText?: string;
18
+ submittingButtonText?: string;
19
+ successMessage?: string;
20
+ currentPasswordValidation?: Yup.StringSchema;
21
+ newPasswordValidation?: Yup.StringSchema;
22
+ confirmPasswordValidation?: Yup.StringSchema;
23
+ }
24
+ export declare const ChangePasswordForm: FC<ChangePasswordFormProps>;
25
+ //# sourceMappingURL=ChangePasswordForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangePasswordForm.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/ChangePasswordForm.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAI3B,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IAC7C,qBAAqB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;IACzC,yBAAyB,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC;CAC9C;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAiJ1D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface ConfirmationDialogProps {
3
+ open: boolean;
4
+ title: string;
5
+ message: string;
6
+ confirmText?: string;
7
+ cancelText?: string;
8
+ onConfirm: () => void;
9
+ onCancel: () => void;
10
+ }
11
+ export declare const ConfirmationDialog: React.FC<ConfirmationDialogProps>;
12
+ //# sourceMappingURL=ConfirmationDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/ConfirmationDialog.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAyBhE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ export interface CurrencyCodeSelectorProps {
3
+ name: string;
4
+ label: string;
5
+ onCurrencyChange?: (code: string) => void;
6
+ }
7
+ export declare const CurrencyCodeSelector: FC<CurrencyCodeSelectorProps>;
8
+ //# sourceMappingURL=CurrencyCodeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurrencyCodeSelector.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/CurrencyCodeSelector.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CA8C9D,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface CurrencyInputProps {
2
+ value: number;
3
+ onChange: (value: number) => void;
4
+ currencyCode?: string;
5
+ label: string;
6
+ error?: boolean;
7
+ helperText?: string;
8
+ name: string;
9
+ }
10
+ export declare const CurrencyInput: React.FC<CurrencyInputProps>;
11
+ //# sourceMappingURL=CurrencyInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurrencyInput.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/CurrencyInput.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAgBD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6DtD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DashboardPageProps {
3
+ title?: string;
4
+ children?: ReactNode;
5
+ }
6
+ export declare const DashboardPage: FC<DashboardPageProps>;
7
+ //# sourceMappingURL=DashboardPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/DashboardPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAahD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { FC, ReactElement } from 'react';
2
+ export interface MenuOption {
3
+ id: string;
4
+ label: string;
5
+ icon?: ReactElement;
6
+ action?: () => void;
7
+ link?: string;
8
+ }
9
+ export interface DropdownMenuProps {
10
+ menuIcon: ReactElement;
11
+ options: MenuOption[];
12
+ onNavigate?: (link: string) => void;
13
+ }
14
+ export declare const DropdownMenu: FC<DropdownMenuProps>;
15
+ //# sourceMappingURL=DropdownMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/DropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAc,YAAY,EAAyB,MAAM,OAAO,CAAC;AAE5E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAmE9C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FormikProps } from 'formik';
2
+ import { FC } from 'react';
3
+ export interface ExpirationSecondsSelectorProps {
4
+ name: string;
5
+ label: string;
6
+ formik: FormikProps<any>;
7
+ optionValues: number[];
8
+ optionNames: string[];
9
+ onChange?: (value: number) => void;
10
+ }
11
+ export declare const ExpirationSecondsSelector: FC<ExpirationSecondsSelectorProps>;
12
+ //# sourceMappingURL=ExpirationSecondsSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpirationSecondsSelector.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/ExpirationSecondsSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAiDxE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ import { FC } from 'react';
3
+ export interface FlagProps {
4
+ languageCode: string;
5
+ countryCode: string;
6
+ sx?: SxProps<Theme>;
7
+ }
8
+ export declare const Flag: FC<FlagProps>;
9
+ //# sourceMappingURL=Flag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Flag.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/components/Flag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CA6B9B,CAAC"}