@codeleap/mobile 1.9.27 → 1.9.30

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 (119) hide show
  1. package/dist/components/Backdrop.d.ts +66 -0
  2. package/dist/components/Backdrop.js +70 -0
  3. package/dist/components/Backdrop.js.map +1 -0
  4. package/dist/components/Button.d.ts +3 -3
  5. package/dist/components/Button.js.map +1 -1
  6. package/dist/components/FileInput.js +0 -2
  7. package/dist/components/FileInput.js.map +1 -1
  8. package/dist/components/Image.js +2 -2
  9. package/dist/components/Image.js.map +1 -1
  10. package/dist/components/List.d.ts +23 -4
  11. package/dist/components/List.js +17 -1
  12. package/dist/components/List.js.map +1 -1
  13. package/dist/components/Modal/index.d.ts +1 -1
  14. package/dist/components/Modal/index.js +26 -27
  15. package/dist/components/Modal/index.js.map +1 -1
  16. package/dist/components/Modal/styles.d.ts +4 -15
  17. package/dist/components/Modal/styles.js +27 -23
  18. package/dist/components/Modal/styles.js.map +1 -1
  19. package/dist/components/NewModal/index.d.ts +27 -0
  20. package/dist/components/NewModal/index.js +99 -0
  21. package/dist/components/NewModal/index.js.map +1 -0
  22. package/dist/components/NewModal/styles.d.ts +57 -0
  23. package/dist/components/NewModal/styles.js +58 -0
  24. package/dist/components/NewModal/styles.js.map +1 -0
  25. package/dist/components/NewPager/index.js +3 -7
  26. package/dist/components/NewPager/index.js.map +1 -1
  27. package/dist/components/Overlay.js +13 -9
  28. package/dist/components/Overlay.js.map +1 -1
  29. package/dist/components/Scroll.d.ts +4 -2
  30. package/dist/components/Scroll.js.map +1 -1
  31. package/dist/components/SegmentedControl/index.d.ts +42 -0
  32. package/dist/components/SegmentedControl/index.js +137 -0
  33. package/dist/components/SegmentedControl/index.js.map +1 -0
  34. package/dist/components/SegmentedControl/styles.d.ts +54 -0
  35. package/dist/components/SegmentedControl/styles.js +36 -0
  36. package/dist/components/SegmentedControl/styles.js.map +1 -0
  37. package/dist/components/SegmentedControl.d.ts +5 -0
  38. package/dist/components/SegmentedControl.js +32 -0
  39. package/dist/components/SegmentedControl.js.map +1 -0
  40. package/dist/components/Select/index.js +1 -1
  41. package/dist/components/Select/index.js.map +1 -1
  42. package/dist/components/Text.d.ts +8 -3
  43. package/dist/components/Text.js +12 -5
  44. package/dist/components/Text.js.map +1 -1
  45. package/dist/components/TextInput.d.ts +4 -2
  46. package/dist/components/TextInput.js +2 -2
  47. package/dist/components/TextInput.js.map +1 -1
  48. package/dist/components/Touchable.d.ts +5 -3
  49. package/dist/components/Touchable.js +26 -19
  50. package/dist/components/Touchable.js.map +1 -1
  51. package/dist/components/View.js +1 -1
  52. package/dist/components/View.js.map +1 -1
  53. package/dist/components/_Modal/index.d.ts +27 -0
  54. package/dist/components/_Modal/index.js +114 -0
  55. package/dist/components/_Modal/index.js.map +1 -0
  56. package/dist/components/_Modal/styles.d.ts +64 -0
  57. package/dist/components/_Modal/styles.js +60 -0
  58. package/dist/components/_Modal/styles.js.map +1 -0
  59. package/dist/components/components.d.ts +3 -0
  60. package/dist/components/components.js +3 -0
  61. package/dist/components/components.js.map +1 -1
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +18 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/utils/ModalManager/components.d.ts +12 -0
  66. package/dist/utils/ModalManager/components.js +86 -0
  67. package/dist/utils/ModalManager/components.js.map +1 -0
  68. package/dist/utils/ModalManager/context.d.ts +47 -0
  69. package/dist/utils/ModalManager/context.js +196 -0
  70. package/dist/utils/ModalManager/context.js.map +1 -0
  71. package/dist/utils/ModalManager/index.d.ts +10 -0
  72. package/dist/utils/ModalManager/index.js +12 -0
  73. package/dist/utils/ModalManager/index.js.map +1 -0
  74. package/dist/utils/PermissionManager/components.d.ts +18 -0
  75. package/dist/utils/PermissionManager/components.js +52 -0
  76. package/dist/utils/PermissionManager/components.js.map +1 -0
  77. package/dist/utils/PermissionManager/context.d.ts +52 -0
  78. package/dist/utils/PermissionManager/context.js +325 -0
  79. package/dist/utils/PermissionManager/context.js.map +1 -0
  80. package/dist/utils/PermissionManager/index.d.ts +4 -0
  81. package/dist/utils/PermissionManager/index.js +9 -0
  82. package/dist/utils/PermissionManager/index.js.map +1 -0
  83. package/dist/utils/PermissionManager/types.d.ts +13 -0
  84. package/dist/utils/PermissionManager/types.js +3 -0
  85. package/dist/utils/PermissionManager/types.js.map +1 -0
  86. package/dist/utils/hooks.d.ts +6 -0
  87. package/dist/utils/hooks.js +62 -0
  88. package/dist/utils/hooks.js.map +1 -0
  89. package/package.json +2 -1
  90. package/src/components/Backdrop.tsx +77 -0
  91. package/src/components/Button.tsx +3 -2
  92. package/src/components/FileInput.tsx +2 -2
  93. package/src/components/Image.tsx +3 -2
  94. package/src/components/List.tsx +44 -5
  95. package/src/components/Modal/index.tsx +37 -50
  96. package/src/components/Modal/styles.ts +36 -39
  97. package/src/components/NewPager/index.tsx +5 -7
  98. package/src/components/Overlay.tsx +22 -13
  99. package/src/components/Scroll.tsx +3 -1
  100. package/src/components/SegmentedControl/index.tsx +182 -0
  101. package/src/components/SegmentedControl/styles.ts +65 -0
  102. package/src/components/Select/index.tsx +1 -2
  103. package/src/components/Text.tsx +23 -10
  104. package/src/components/TextInput.tsx +4 -2
  105. package/src/components/Touchable.tsx +31 -20
  106. package/src/components/View.tsx +1 -1
  107. package/src/components/_Modal/index.tsx +162 -0
  108. package/src/components/_Modal/styles.ts +125 -0
  109. package/src/components/components.ts +3 -0
  110. package/src/index.ts +6 -0
  111. package/src/modules/imageCropPicker.d.ts +497 -0
  112. package/src/modules/index.d.ts +186 -0
  113. package/src/utils/ModalManager/components.tsx +69 -0
  114. package/src/utils/ModalManager/context.tsx +247 -0
  115. package/src/utils/ModalManager/index.ts +13 -0
  116. package/src/utils/PermissionManager/context.tsx +299 -0
  117. package/src/utils/PermissionManager/index.ts +20 -0
  118. package/src/utils/PermissionManager/types.ts +24 -0
  119. package/src/utils/hooks.ts +65 -0
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.useModalSequence = exports.useModalContext = exports.Provider = void 0;
38
+ var React = __importStar(require("react"));
39
+ var common_1 = require("@codeleap/common");
40
+ var portal_1 = require("@gorhom/portal");
41
+ var ModalContext = React.createContext({});
42
+ function Provider(_a) {
43
+ var _b, _c, _d, _e;
44
+ var children = _a.children;
45
+ var _f = (0, common_1.useState)({}), modals = _f[0], setModals = _f[1];
46
+ var currentModal = Object.keys(modals).find(function (name) { return modals[name].visible; });
47
+ function isVisible(name) {
48
+ var _a;
49
+ return !!((_a = modals[name]) === null || _a === void 0 ? void 0 : _a.visible);
50
+ }
51
+ var toggleModal = function (name, set, props) {
52
+ var visible = isVisible(name);
53
+ var newVisible = typeof set === 'boolean' ? set : !visible;
54
+ setModals(function (current) {
55
+ var _a;
56
+ var attached = newVisible ? [] : current[name].attachments.map(function (m) { return [m, __assign(__assign({}, current[m]), { visible: false })]; });
57
+ return __assign(__assign(__assign({}, current), (_a = {}, _a[name] = __assign(__assign({}, current[name]), { visible: newVisible, props: props }), _a)), Object.fromEntries(attached));
58
+ });
59
+ };
60
+ var setModal = function (name, to) {
61
+ setModals(function (current) {
62
+ var _a;
63
+ return (__assign(__assign({}, current), (_a = {}, _a[name] = __assign(__assign({}, current[name]), to), _a)));
64
+ });
65
+ };
66
+ var codeleapCtx = (0, common_1.useCodeleapContext)();
67
+ var defaultDuration = ((_e = (_d = (_c = (_b = codeleapCtx === null || codeleapCtx === void 0 ? void 0 : codeleapCtx.Theme) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c.transitions) === null || _d === void 0 ? void 0 : _d.modal) === null || _e === void 0 ? void 0 : _e.duration) || 300;
68
+ var transition = function (from, to, options) {
69
+ return new Promise(function (resolve) {
70
+ setTimeout(function () {
71
+ if (!from) {
72
+ toggleModal(to, true, options === null || options === void 0 ? void 0 : options.props);
73
+ return;
74
+ }
75
+ var _options = __assign({ duration: defaultDuration }, options);
76
+ var toVisible = isVisible(to);
77
+ var fromVisible = isVisible(from);
78
+ // if (!fromVisible && !toVisible) {
79
+ // toggleModal(to, true, options?.props)
80
+ // return
81
+ // }
82
+ toggleModal(from, false);
83
+ setTimeout(function () {
84
+ toggleModal(to, true, options === null || options === void 0 ? void 0 : options.props);
85
+ resolve();
86
+ }, _options.duration);
87
+ });
88
+ });
89
+ };
90
+ function attach(modal, to) {
91
+ setModals(function (modals) {
92
+ var toModal = modals[to];
93
+ var _modal = modals[modal];
94
+ if (!toModal || !_modal)
95
+ return modals;
96
+ var isAttached = toModal.attachments.includes(modal) || _modal.attachedTo.includes(to);
97
+ var newVal = __assign({}, modals);
98
+ if (isAttached) {
99
+ newVal[to].attachments = newVal[to].attachments.filter(function (x) { return x !== modal; });
100
+ newVal[modal].attachedTo = newVal[modal].attachedTo.filter(function (x) { return x !== to; });
101
+ }
102
+ else {
103
+ newVal[to].attachments.push(modal);
104
+ newVal[modal].attachedTo.push(to);
105
+ }
106
+ return newVal;
107
+ });
108
+ }
109
+ return <ModalContext.Provider value={{
110
+ state: modals,
111
+ toggleModal: toggleModal,
112
+ setModal: setModal,
113
+ currentModal: currentModal,
114
+ attach: attach,
115
+ isVisible: isVisible,
116
+ transition: transition,
117
+ transitionDuration: defaultDuration,
118
+ }}>
119
+ <portal_1.PortalProvider>
120
+
121
+ {children}
122
+ </portal_1.PortalProvider>
123
+ </ModalContext.Provider>;
124
+ }
125
+ exports.Provider = Provider;
126
+ function useModalContext() {
127
+ var context = React.useContext(ModalContext);
128
+ return context;
129
+ }
130
+ exports.useModalContext = useModalContext;
131
+ function useModalSequence(ids, options) {
132
+ var _options = __assign({ closeLastOnFinish: true, onFinish: function () { }, resetOnFinish: false, waitForLastToCloseBeforeCallingFinish: true }, options);
133
+ var modals = useModalContext();
134
+ var _a = (0, common_1.useState)(0), idx = _a[0], setIdx = _a[1];
135
+ var state = {
136
+ currentId: ids[idx],
137
+ nextId: ids[idx + 1],
138
+ previousId: ids[idx - 1],
139
+ };
140
+ (0, common_1.onUpdate)(function () {
141
+ if (_options.autoOpen && typeof (ids === null || ids === void 0 ? void 0 : ids[0]) === 'number') {
142
+ if (!modals.isVisible(ids[0])) {
143
+ modals.toggleModal(ids[0]);
144
+ }
145
+ }
146
+ }, [_options.autoOpen, ids === null || ids === void 0 ? void 0 : ids[0]]);
147
+ function next(props) {
148
+ if (idx === ids.length - 1) {
149
+ if (_options.closeLastOnFinish) {
150
+ modals.transition(ids[idx], null).then(function () {
151
+ if (_options.waitForLastToCloseBeforeCallingFinish) {
152
+ _options.onFinish();
153
+ }
154
+ });
155
+ }
156
+ if (_options.resetOnFinish) {
157
+ reset();
158
+ }
159
+ if (!(_options.waitForLastToCloseBeforeCallingFinish && _options.closeLastOnFinish)) {
160
+ _options.onFinish();
161
+ }
162
+ return;
163
+ }
164
+ else {
165
+ if (!state.nextId)
166
+ return;
167
+ modals.transition(ids[idx], state.nextId, props);
168
+ setIdx(function (i) { return i + 1; });
169
+ }
170
+ }
171
+ function previous(props) {
172
+ if (!state.previousId)
173
+ return;
174
+ modals.transition(ids[idx], state.previousId, props);
175
+ setIdx(function (i) { return i - 1; });
176
+ }
177
+ function goto(idxOrId, props) {
178
+ var newId = null;
179
+ if (common_1.TypeGuards.isString(idxOrId)) {
180
+ newId = idxOrId;
181
+ }
182
+ else {
183
+ newId = ids[idxOrId];
184
+ }
185
+ modals.transition(ids[idx], newId, {
186
+ props: props,
187
+ });
188
+ setIdx(ids.indexOf(newId));
189
+ }
190
+ function reset() {
191
+ setIdx(0);
192
+ }
193
+ return __assign({ reset: reset, next: next, previous: previous, setModal: setIdx, goto: goto, currentIdx: idx }, state);
194
+ }
195
+ exports.useModalSequence = useModalSequence;
196
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/utils/ModalManager/context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { useModalContext, useModalSequence, Provider } from './context';
3
+ import { ManagedModalProps } from './components';
4
+ export declare const ModalManager: {
5
+ useModalContext: typeof useModalContext;
6
+ Modal: import("react").FC<ManagedModalProps<import("../..").ModalProps>>;
7
+ Provider: typeof Provider;
8
+ useModalSequence: typeof useModalSequence;
9
+ };
10
+ export type { ManagedModalProps, };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalManager = void 0;
4
+ var context_1 = require("./context");
5
+ var components_1 = require("./components");
6
+ exports.ModalManager = {
7
+ useModalContext: context_1.useModalContext,
8
+ Modal: components_1.Modal,
9
+ Provider: context_1.Provider,
10
+ useModalSequence: context_1.useModalSequence,
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/ModalManager/index.ts"],"names":[],"mappings":";;;AAAA,qCAAuE;AACvE,2CAAuD;AAE1C,QAAA,YAAY,GAAG;IAC1B,eAAe,2BAAA;IACf,KAAK,oBAAA;IACL,QAAQ,oBAAA;IACR,gBAAgB,4BAAA;CACjB,CAAA"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { ButtonProps } from '../../components/components';
3
+ import { AnyFunction } from '@codeleap/common';
4
+ import { PermissionConfig } from './types';
5
+ declare type PermissionModalProps = {
6
+ permissionName: string;
7
+ };
8
+ declare type PermissionRequestDisplayProps = {
9
+ config: PermissionConfig;
10
+ onAllow: AnyFunction;
11
+ onDeny: AnyFunction;
12
+ allowButtonProps?: Partial<ButtonProps>;
13
+ dismissButtonProps?: Partial<ButtonProps>;
14
+ };
15
+ export declare function PermissionRequestDisplay({ config, onAllow, onDeny, allowButtonProps, dismissButtonProps, }: PermissionRequestDisplayProps): JSX.Element;
16
+ export declare function PermissionModal(props: PermissionModalProps): JSX.Element;
17
+ export declare function AllPermissionModals(): JSX.Element;
18
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AllPermissionModals = exports.PermissionModal = exports.PermissionRequestDisplay = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var mobile_1 = require("@codeleap/mobile");
9
+ var context_1 = require("./context");
10
+ var components_1 = require("../../components/components");
11
+ function PermissionRequestDisplay(_a) {
12
+ var config = _a.config, onAllow = _a.onAllow, onDeny = _a.onDeny, allowButtonProps = _a.allowButtonProps, dismissButtonProps = _a.dismissButtonProps;
13
+ var textByPermission = config.onAllow === 'ask' ? (config.onAllowText || 'Continue') : 'Open Settings';
14
+ var description = config.description, title = config.title, icon = config.icon;
15
+ return <components_1.View variants={['alignCenter']}>
16
+ {icon ? (<components_1.View variants={['margin:2', 'marginBottom:4']}>
17
+ <components_1.Icon name={icon} size={45} style={{
18
+ minHeight: 50,
19
+ }} variants={['alignSelfCenter', 'primary']}/>
20
+ </components_1.View>) : null}
21
+
22
+ <components_1.Gap value={2} variants={['center', 'marginBottom:4', 'marginHorizontal:1']}>
23
+ {title ? <components_1.Text text={title} variants={['textCenter', 'h3']}/> : null}
24
+ {description === null || description === void 0 ? void 0 : description.map(function (text, idx) { return <components_1.Text text={text} key={idx} variants={['textCenter']}/>; })}
25
+ </components_1.Gap>
26
+ <components_1.View variants={['fullWidth']}>
27
+ <components_1.Button text={textByPermission} debugName={textByPermission} onPress={onAllow} {...allowButtonProps}/>
28
+ {!config.dismissable ?
29
+ <components_1.Button variants={['marginTop:2']} text={'Dismiss'} debugName={'Ask later Permission request'} onPress={onDeny} {...dismissButtonProps}/>
30
+ : null}
31
+ </components_1.View>
32
+
33
+ </components_1.View>;
34
+ }
35
+ exports.PermissionRequestDisplay = PermissionRequestDisplay;
36
+ function PermissionModal(props) {
37
+ var permissionName = props.permissionName;
38
+ var _a = (0, context_1.usePermissionModal)(permissionName), config = _a.config, onAllow = _a.onAllow, onDeny = _a.onDeny, modalId = _a.modalId;
39
+ return <mobile_1.ModalManager.AbsoluteModal id={modalId} dismissOnBackdrop={false} closable={false}>
40
+ <PermissionRequestDisplay config={config} onAllow={onAllow} onDeny={onDeny}/>
41
+ </mobile_1.ModalManager.AbsoluteModal>;
42
+ }
43
+ exports.PermissionModal = PermissionModal;
44
+ function AllPermissionModals() {
45
+ var modalConfig = (0, context_1.usePermissions)().modalConfig;
46
+ var allPermissions = Object.keys(modalConfig);
47
+ return <>
48
+ {allPermissions.map(function (permissionName) { return <PermissionModal key={permissionName} permissionName={permissionName}/>; })}
49
+ </>;
50
+ }
51
+ exports.AllPermissionModals = AllPermissionModals;
52
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/utils/PermissionManager/components.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import { PermissionManager, PermissionTypes } from '@codeleap/common';
3
+ import { PermissionConfig, PermissionModalsConfig } from './types';
4
+ declare type TPermissionContext = {
5
+ state: Record<string, PermissionTypes.PermissionStatus>;
6
+ modalConfig: PermissionModalsConfig<any>;
7
+ manager: PermissionManager<any, any>;
8
+ };
9
+ declare type PermissionProviderProps = {
10
+ children: React.ReactElement;
11
+ AppPermissions: PermissionManager<any, any>;
12
+ modalConfig: PermissionModalsConfig<any>;
13
+ };
14
+ export declare function Provider({ children, AppPermissions, modalConfig }: PermissionProviderProps): JSX.Element;
15
+ declare type TAskManyResults<T extends string> = Record<T, PermissionTypes.PermissionStatus> & {
16
+ overall: PermissionTypes.PermissionStatus;
17
+ };
18
+ declare type AskManyOpts<T extends string | number | symbol> = {
19
+ breakOnDenied?: T[];
20
+ };
21
+ export declare type UsePermissions<_PermissionNames extends string, PermissionNames extends string = `${_PermissionNames}?` | _PermissionNames> = () => TPermissionContext & {
22
+ askPermission: (name: PermissionNames, onResolve?: (status: PermissionTypes.PermissionStatus) => any) => any;
23
+ askMany<T extends PermissionNames, R = TAskManyResults<T>>(perms: T[], onResolve?: (res: R) => any, options?: AskManyOpts<T>): Promise<void>;
24
+ };
25
+ export declare const usePermissions: UsePermissions<any>;
26
+ export declare function usePermissionModal(permissionName: string): {
27
+ onAllow: () => Promise<void>;
28
+ onDeny: () => void;
29
+ modalId: string;
30
+ permissionName: string;
31
+ modalState: {
32
+ visible: boolean;
33
+ attachments: string[];
34
+ attachedTo: string[];
35
+ props?: any;
36
+ };
37
+ currentState: "unavailable" | "pending" | "denied" | "limited" | "granted" | "blocked";
38
+ config: PermissionConfig;
39
+ };
40
+ declare type PermissionManagerArgTypes<M extends PermissionManager<any, any>> = {
41
+ perms: M extends PermissionManager<infer P, any> ? P extends Record<string, any> ? P : never : never;
42
+ opts: M extends PermissionManager<any, infer O> ? O : never;
43
+ };
44
+ declare type CreateTypedPermissionHooksArgs<M extends PermissionManager<any, any>, Args extends PermissionManagerArgTypes<M> = PermissionManagerArgTypes<M>, ModalConfig extends PermissionModalsConfig<keyof Args['perms']> = PermissionModalsConfig<keyof Args['perms']>> = {
45
+ modalConfig: ModalConfig;
46
+ permissionsManager: M;
47
+ };
48
+ export declare function createTypedPermissionHooks<M extends PermissionManager<any, any>, Args extends PermissionManagerArgTypes<M> = PermissionManagerArgTypes<M>>(configuration: CreateTypedPermissionHooksArgs<M>): {
49
+ usePermissions: UsePermissions<Exclude<keyof Args["perms"], number | symbol>, Exclude<keyof Args["perms"], number | symbol> | `${Exclude<keyof Args["perms"], number | symbol>}?`>;
50
+ usePermissionModal: (name: keyof Args['perms']) => ReturnType<typeof usePermissionModal>;
51
+ };
52
+ export {};