@molecule/app-solid 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +115 -0
  2. package/README.md +2543 -0
  3. package/dist/context.d.ts +82 -0
  4. package/dist/context.d.ts.map +1 -0
  5. package/dist/context.js +141 -0
  6. package/dist/context.js.map +1 -0
  7. package/dist/index.d.ts +61 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +61 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/primitives/async-state.d.ts +46 -0
  12. package/dist/primitives/async-state.d.ts.map +1 -0
  13. package/dist/primitives/async-state.js +83 -0
  14. package/dist/primitives/async-state.js.map +1 -0
  15. package/dist/primitives/auth.d.ts +85 -0
  16. package/dist/primitives/auth.d.ts.map +1 -0
  17. package/dist/primitives/auth.js +147 -0
  18. package/dist/primitives/auth.js.map +1 -0
  19. package/dist/primitives/capacitor-app.d.ts +46 -0
  20. package/dist/primitives/capacitor-app.d.ts.map +1 -0
  21. package/dist/primitives/capacitor-app.js +57 -0
  22. package/dist/primitives/capacitor-app.js.map +1 -0
  23. package/dist/primitives/change-password.d.ts +36 -0
  24. package/dist/primitives/change-password.d.ts.map +1 -0
  25. package/dist/primitives/change-password.js +32 -0
  26. package/dist/primitives/change-password.js.map +1 -0
  27. package/dist/primitives/device.d.ts +48 -0
  28. package/dist/primitives/device.d.ts.map +1 -0
  29. package/dist/primitives/device.js +47 -0
  30. package/dist/primitives/device.js.map +1 -0
  31. package/dist/primitives/forms.d.ts +193 -0
  32. package/dist/primitives/forms.d.ts.map +1 -0
  33. package/dist/primitives/forms.js +309 -0
  34. package/dist/primitives/forms.js.map +1 -0
  35. package/dist/primitives/http.d.ts +176 -0
  36. package/dist/primitives/http.d.ts.map +1 -0
  37. package/dist/primitives/http.js +254 -0
  38. package/dist/primitives/http.js.map +1 -0
  39. package/dist/primitives/i18n.d.ts +146 -0
  40. package/dist/primitives/i18n.d.ts.map +1 -0
  41. package/dist/primitives/i18n.js +223 -0
  42. package/dist/primitives/i18n.js.map +1 -0
  43. package/dist/primitives/index.d.ts +27 -0
  44. package/dist/primitives/index.d.ts.map +1 -0
  45. package/dist/primitives/index.js +27 -0
  46. package/dist/primitives/index.js.map +1 -0
  47. package/dist/primitives/logger.d.ts +143 -0
  48. package/dist/primitives/logger.d.ts.map +1 -0
  49. package/dist/primitives/logger.js +165 -0
  50. package/dist/primitives/logger.js.map +1 -0
  51. package/dist/primitives/login.d.ts +37 -0
  52. package/dist/primitives/login.d.ts.map +1 -0
  53. package/dist/primitives/login.js +32 -0
  54. package/dist/primitives/login.js.map +1 -0
  55. package/dist/primitives/oauth.d.ts +102 -0
  56. package/dist/primitives/oauth.d.ts.map +1 -0
  57. package/dist/primitives/oauth.js +232 -0
  58. package/dist/primitives/oauth.js.map +1 -0
  59. package/dist/primitives/password-reset.d.ts +46 -0
  60. package/dist/primitives/password-reset.d.ts.map +1 -0
  61. package/dist/primitives/password-reset.js +49 -0
  62. package/dist/primitives/password-reset.js.map +1 -0
  63. package/dist/primitives/platform.d.ts +48 -0
  64. package/dist/primitives/platform.d.ts.map +1 -0
  65. package/dist/primitives/platform.js +47 -0
  66. package/dist/primitives/platform.js.map +1 -0
  67. package/dist/primitives/promise.d.ts +46 -0
  68. package/dist/primitives/promise.d.ts.map +1 -0
  69. package/dist/primitives/promise.js +104 -0
  70. package/dist/primitives/promise.js.map +1 -0
  71. package/dist/primitives/push.d.ts +52 -0
  72. package/dist/primitives/push.d.ts.map +1 -0
  73. package/dist/primitives/push.js +72 -0
  74. package/dist/primitives/push.js.map +1 -0
  75. package/dist/primitives/router.d.ts +170 -0
  76. package/dist/primitives/router.d.ts.map +1 -0
  77. package/dist/primitives/router.js +251 -0
  78. package/dist/primitives/router.js.map +1 -0
  79. package/dist/primitives/signup.d.ts +37 -0
  80. package/dist/primitives/signup.d.ts.map +1 -0
  81. package/dist/primitives/signup.js +32 -0
  82. package/dist/primitives/signup.js.map +1 -0
  83. package/dist/primitives/state.d.ts +132 -0
  84. package/dist/primitives/state.d.ts.map +1 -0
  85. package/dist/primitives/state.js +167 -0
  86. package/dist/primitives/state.js.map +1 -0
  87. package/dist/primitives/storage.d.ts +132 -0
  88. package/dist/primitives/storage.d.ts.map +1 -0
  89. package/dist/primitives/storage.js +275 -0
  90. package/dist/primitives/storage.js.map +1 -0
  91. package/dist/primitives/theme.d.ts +106 -0
  92. package/dist/primitives/theme.d.ts.map +1 -0
  93. package/dist/primitives/theme.js +187 -0
  94. package/dist/primitives/theme.js.map +1 -0
  95. package/dist/primitives/version.d.ts +50 -0
  96. package/dist/primitives/version.d.ts.map +1 -0
  97. package/dist/primitives/version.js +62 -0
  98. package/dist/primitives/version.js.map +1 -0
  99. package/dist/provider.d.ts +36 -0
  100. package/dist/provider.d.ts.map +1 -0
  101. package/dist/provider.jsx +71 -0
  102. package/dist/provider.jsx.map +1 -0
  103. package/dist/types.d.ts +82 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +7 -0
  106. package/dist/types.js.map +1 -0
  107. package/package.json +58 -0
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Solid.js primitives for HTTP requests.
3
+ *
4
+ * @module
5
+ */
6
+ import { createResource, createSignal } from 'solid-js';
7
+ import { getHttpClient } from '../context.js';
8
+ /**
9
+ * Create HTTP primitives for making requests.
10
+ *
11
+ * @returns HTTP methods and utilities
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { createHttp } from '@molecule/app-solid'
16
+ *
17
+ * function UserList() {
18
+ * const { get } = createHttp()
19
+ * const [users] = createResource(() => get<User[]>('/api/users'))
20
+ *
21
+ * return (
22
+ * <Show when={!users.loading} fallback={<Spinner />}>
23
+ * <For each={users()}>
24
+ * {(user) => <UserCard user={user} />}
25
+ * </For>
26
+ * </Show>
27
+ * )
28
+ * }
29
+ * ```
30
+ */
31
+ /**
32
+ * Creates a http.
33
+ * @returns The created result.
34
+ */
35
+ export function createHttp() {
36
+ const client = getHttpClient();
37
+ return {
38
+ get: (url, config) => client.get(url, config),
39
+ post: (url, data, config) => client.post(url, data, config),
40
+ put: (url, data, config) => client.put(url, data, config),
41
+ patch: (url, data, config) => client.patch(url, data, config),
42
+ delete: (url, config) => client.delete(url, config),
43
+ request: (config) => client.request(config),
44
+ };
45
+ }
46
+ /**
47
+ * Create a resource for fetching data.
48
+ *
49
+ * @param url - URL string or accessor returning a URL string.
50
+ * @param config - Optional request configuration.
51
+ * @returns Solid resource
52
+ *
53
+ * @example
54
+ * ```tsx
55
+ * function UserProfile(props: { userId: string }) {
56
+ * const user = useFetch<User>(() => `/api/users/${props.userId}`)
57
+ *
58
+ * return (
59
+ * <Show when={!user.loading} fallback={<Loading />}>
60
+ * <h1>{user()?.name}</h1>
61
+ * </Show>
62
+ * )
63
+ * }
64
+ * ```
65
+ */
66
+ export function useFetch(url, config) {
67
+ const client = getHttpClient();
68
+ const getUrl = typeof url === 'function' ? url : () => url;
69
+ const [data] = createResource(getUrl, async (resolvedUrl) => {
70
+ const response = await client.get(resolvedUrl, config);
71
+ return response.data;
72
+ });
73
+ return data;
74
+ }
75
+ /**
76
+ * Create a mutation function.
77
+ *
78
+ * @returns Mutation function and state
79
+ *
80
+ * @example
81
+ * ```tsx
82
+ * function CreateUserForm() {
83
+ * const { mutate, isLoading, error } = useMutation<User>()
84
+ *
85
+ * const handleSubmit = async (data: CreateUserData) => {
86
+ * const user = await mutate('/api/users', data)
87
+ * console.log('Created:', user)
88
+ * }
89
+ *
90
+ * return (
91
+ * <form onSubmit={handleSubmit}>
92
+ * <Show when={error()}>
93
+ * <ErrorMessage error={error()} />
94
+ * </Show>
95
+ * <button type="submit" disabled={isLoading()}>
96
+ * Create
97
+ * </button>
98
+ * </form>
99
+ * )
100
+ * }
101
+ * ```
102
+ */
103
+ /**
104
+ * Hook for mutation.
105
+ * @returns The result.
106
+ */
107
+ export function useMutation() {
108
+ const client = getHttpClient();
109
+ const [isLoading, setIsLoading] = createSignal(false);
110
+ const [error, setError] = createSignal(null);
111
+ const [data, setData] = createSignal(null);
112
+ const mutate = async (url, payload, method = 'POST') => {
113
+ setIsLoading(true);
114
+ setError(null);
115
+ try {
116
+ let response;
117
+ switch (method) {
118
+ case 'POST':
119
+ response = await client.post(url, payload);
120
+ break;
121
+ case 'PUT':
122
+ response = await client.put(url, payload);
123
+ break;
124
+ case 'PATCH':
125
+ response = await client.patch(url, payload);
126
+ break;
127
+ case 'DELETE':
128
+ response = await client.delete(url);
129
+ break;
130
+ }
131
+ setData(() => response.data);
132
+ return response.data;
133
+ }
134
+ catch (err) {
135
+ const error = err instanceof Error ? err : new Error(String(err));
136
+ setError(error);
137
+ throw error;
138
+ }
139
+ finally {
140
+ setIsLoading(false);
141
+ }
142
+ };
143
+ return {
144
+ mutate,
145
+ isLoading,
146
+ error,
147
+ data,
148
+ reset: () => {
149
+ setIsLoading(false);
150
+ setError(null);
151
+ setData(null);
152
+ },
153
+ };
154
+ }
155
+ /**
156
+ * Create a lazy query that only executes when called.
157
+ *
158
+ * @returns Query function and state
159
+ *
160
+ * @example
161
+ * ```tsx
162
+ * function SearchResults() {
163
+ * const { execute, data, isLoading } = useLazyQuery<SearchResult[]>()
164
+ *
165
+ * const handleSearch = (query: string) => {
166
+ * execute(`/api/search?q=${encodeURIComponent(query)}`)
167
+ * }
168
+ *
169
+ * return (
170
+ * <div>
171
+ * <SearchInput onSearch={handleSearch} />
172
+ * <Show when={!isLoading()} fallback={<Loading />}>
173
+ * <ResultsList results={data() ?? []} />
174
+ * </Show>
175
+ * </div>
176
+ * )
177
+ * }
178
+ * ```
179
+ */
180
+ /**
181
+ * Hook for lazy query.
182
+ * @returns The result.
183
+ */
184
+ export function useLazyQuery() {
185
+ const client = getHttpClient();
186
+ const [state, setState] = createSignal({
187
+ data: null,
188
+ loading: false,
189
+ error: null,
190
+ });
191
+ const execute = async (url, config) => {
192
+ setState({ data: null, loading: true, error: null });
193
+ try {
194
+ const response = await client.get(url, config);
195
+ setState({ data: response.data, loading: false, error: null });
196
+ return response.data;
197
+ }
198
+ catch (err) {
199
+ const error = err instanceof Error ? err : new Error(String(err));
200
+ setState({ data: null, loading: false, error });
201
+ throw error;
202
+ }
203
+ };
204
+ return {
205
+ execute,
206
+ data: () => state().data,
207
+ isLoading: () => state().loading,
208
+ error: () => state().error,
209
+ reset: () => setState({ data: null, loading: false, error: null }),
210
+ };
211
+ }
212
+ /**
213
+ * Create HTTP helpers from context.
214
+ *
215
+ * @returns HTTP helper functions
216
+ */
217
+ /**
218
+ * Creates a http helpers.
219
+ * @returns The created result.
220
+ */
221
+ export function createHttpHelpers() {
222
+ const client = getHttpClient();
223
+ return {
224
+ get: (url, config) => client.get(url, config),
225
+ post: (url, data, config) => client.post(url, data, config),
226
+ put: (url, data, config) => client.put(url, data, config),
227
+ patch: (url, data, config) => client.patch(url, data, config),
228
+ delete: (url, config) => client.delete(url, config),
229
+ setAuthToken: (token) => client.setAuthToken(token),
230
+ getAuthToken: () => client.getAuthToken(),
231
+ };
232
+ }
233
+ /**
234
+ * Create HTTP primitives from a specific client.
235
+ *
236
+ * @param client - HTTP client
237
+ * @returns HTTP methods
238
+ */
239
+ /**
240
+ * Creates a http from client.
241
+ * @param client - The client instance.
242
+ * @returns The created result.
243
+ */
244
+ export function createHttpFromClient(client) {
245
+ return {
246
+ get: (url, config) => client.get(url, config),
247
+ post: (url, data, config) => client.post(url, data, config),
248
+ put: (url, data, config) => client.put(url, data, config),
249
+ patch: (url, data, config) => client.patch(url, data, config),
250
+ delete: (url, config) => client.delete(url, config),
251
+ request: (config) => client.request(config),
252
+ };
253
+ }
254
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/primitives/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Solid.js primitives for internationalization.
3
+ *
4
+ * @module
5
+ */
6
+ import { type Accessor } from 'solid-js';
7
+ import type { I18nProvider, InterpolationValues, LocaleConfig, TranslateFunction, TranslateOptions } from '@molecule/app-i18n';
8
+ /**
9
+ * Create i18n primitives for translations.
10
+ *
11
+ * @returns I18n primitives object
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { createI18n } from '@molecule/app-solid'
16
+ *
17
+ * function Greeting() {
18
+ * const { t, locale, setLocale } = createI18n()
19
+ *
20
+ * return (
21
+ * <div>
22
+ * <h1>{t('greeting.hello')}</h1>
23
+ * <select
24
+ * value={locale()}
25
+ * onChange={(e) => setLocale(e.target.value)}
26
+ * >
27
+ * <option value="en">English</option>
28
+ * <option value="es">Español</option>
29
+ * </select>
30
+ * </div>
31
+ * )
32
+ * }
33
+ * ```
34
+ */
35
+ /**
36
+ * Creates a i18n.
37
+ * @returns The created result.
38
+ */
39
+ export declare function createI18n(): {
40
+ t: TranslateFunction;
41
+ locale: Accessor<string>;
42
+ setLocale: (newLocale: string) => Promise<void>;
43
+ isReady: Accessor<boolean>;
44
+ getLocales: () => LocaleConfig[];
45
+ hasKey: (key: string) => boolean;
46
+ };
47
+ /**
48
+ * Get translate function.
49
+ *
50
+ * @returns Translate function
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * function Button() {
55
+ * const t = useTranslate()
56
+ * return <button>{t('buttons.submit')}</button>
57
+ * }
58
+ * ```
59
+ */
60
+ export declare function useTranslate(): TranslateFunction;
61
+ /**
62
+ * Get current locale as accessor.
63
+ *
64
+ * @returns Accessor for current locale
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * function LocaleIndicator() {
69
+ * const locale = useLocale()
70
+ * return <span>Current: {locale()}</span>
71
+ * }
72
+ * ```
73
+ */
74
+ export declare function useLocale(): Accessor<string>;
75
+ /**
76
+ * Create a reactive translation.
77
+ *
78
+ * @param key - Translation key
79
+ * @param values - Interpolation values for the translation.
80
+ * @param options - Translation options
81
+ * @returns Accessor for translated string
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * function WelcomeMessage() {
86
+ * const message = useTranslation('welcome.message', { name: 'User' })
87
+ * return <p>{message()}</p>
88
+ * }
89
+ * ```
90
+ */
91
+ export declare function useTranslation(key: string, values?: InterpolationValues, options?: TranslateOptions): Accessor<string>;
92
+ /**
93
+ * Create a reactive plural translation.
94
+ *
95
+ * @param key - Translation key
96
+ * @param count - Count accessor for pluralization
97
+ * @param values - Interpolation values for the translation.
98
+ * @returns Accessor for translated string
99
+ *
100
+ * @example
101
+ * ```tsx
102
+ * function ItemCount() {
103
+ * const [count, setCount] = createSignal(5)
104
+ * const text = usePlural('items.count', count)
105
+ * return <span>{text()}</span>
106
+ * }
107
+ * ```
108
+ */
109
+ export declare function usePlural(key: string, count: Accessor<number>, values?: InterpolationValues): Accessor<string>;
110
+ /**
111
+ * Create i18n helpers from context.
112
+ *
113
+ * @returns I18n helper functions
114
+ */
115
+ /**
116
+ * Creates a i18n helpers.
117
+ * @returns The created result.
118
+ */
119
+ export declare function createI18nHelpers(): {
120
+ t: TranslateFunction;
121
+ getLocale: () => string;
122
+ setLocale: (locale: string) => Promise<void>;
123
+ getLocales: () => LocaleConfig[];
124
+ hasKey: (key: string) => boolean;
125
+ isReady: () => boolean;
126
+ };
127
+ /**
128
+ * Create i18n primitives from a specific provider.
129
+ *
130
+ * @param provider - I18n provider
131
+ * @returns I18n primitives
132
+ */
133
+ /**
134
+ * Creates a i18n from provider.
135
+ * @param provider - The provider implementation.
136
+ * @returns The created result.
137
+ */
138
+ export declare function createI18nFromProvider(provider: I18nProvider): {
139
+ t: TranslateFunction;
140
+ locale: Accessor<string>;
141
+ setLocale: (newLocale: string) => Promise<void>;
142
+ isReady: Accessor<boolean>;
143
+ getLocales: () => LocaleConfig[];
144
+ hasKey: (key: string) => boolean;
145
+ };
146
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/primitives/i18n.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAqD,MAAM,UAAU,CAAA;AAE3F,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAI3B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,IAAI;IAC5B,CAAC,EAAE,iBAAiB,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,YAAY,EAAE,CAAA;IAChC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CACjC,CAiDA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,IAAI,iBAAiB,CAGhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAG5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,QAAQ,CAAC,MAAM,CAAC,CAQlB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,QAAQ,CAAC,MAAM,CAAC,CAOlB;AAED;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,CAAC,EAAE,iBAAiB,CAAA;IACpB,SAAS,EAAE,MAAM,MAAM,CAAA;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,UAAU,EAAE,MAAM,YAAY,EAAE,CAAA;IAChC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IAChC,OAAO,EAAE,MAAM,OAAO,CAAA;CACvB,CAWA;AAED;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,GAAG;IAC9D,CAAC,EAAE,iBAAiB,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,YAAY,EAAE,CAAA;IAChC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CACjC,CA0CA"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Solid.js primitives for internationalization.
3
+ *
4
+ * @module
5
+ */
6
+ import { createEffect, createMemo, createSignal, onCleanup } from 'solid-js';
7
+ import { getI18nProvider } from '../context.js';
8
+ /**
9
+ * Create i18n primitives for translations.
10
+ *
11
+ * @returns I18n primitives object
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { createI18n } from '@molecule/app-solid'
16
+ *
17
+ * function Greeting() {
18
+ * const { t, locale, setLocale } = createI18n()
19
+ *
20
+ * return (
21
+ * <div>
22
+ * <h1>{t('greeting.hello')}</h1>
23
+ * <select
24
+ * value={locale()}
25
+ * onChange={(e) => setLocale(e.target.value)}
26
+ * >
27
+ * <option value="en">English</option>
28
+ * <option value="es">Español</option>
29
+ * </select>
30
+ * </div>
31
+ * )
32
+ * }
33
+ * ```
34
+ */
35
+ /**
36
+ * Creates a i18n.
37
+ * @returns The created result.
38
+ */
39
+ export function createI18n() {
40
+ const provider = getI18nProvider();
41
+ const [locale, setLocaleSignal] = createSignal(provider.getLocale());
42
+ const [isReady, setIsReady] = createSignal(provider.isReady?.() ?? true);
43
+ const [translationVersion, setTranslationVersion] = createSignal(0);
44
+ // Subscribe to locale changes
45
+ createEffect(() => {
46
+ const unsubscribe = provider.onLocaleChange((newLocale) => {
47
+ setLocaleSignal(newLocale);
48
+ setTranslationVersion((v) => v + 1);
49
+ });
50
+ onCleanup(unsubscribe);
51
+ });
52
+ // Subscribe to ready state
53
+ createEffect(() => {
54
+ const unsubscribe = provider.onReady?.(() => {
55
+ setIsReady(true);
56
+ });
57
+ onCleanup(() => unsubscribe?.());
58
+ });
59
+ const t = (key, values, options) => {
60
+ // Re-run when locale or translations change
61
+ locale();
62
+ translationVersion();
63
+ return provider.t(key, values, options);
64
+ };
65
+ const setLocale = async (newLocale) => {
66
+ await provider.setLocale(newLocale);
67
+ };
68
+ return {
69
+ t,
70
+ locale,
71
+ setLocale,
72
+ isReady,
73
+ getLocales: () => provider.getLocales(),
74
+ hasKey: (key) => provider.hasKey?.(key) ?? provider.exists(key),
75
+ };
76
+ }
77
+ /**
78
+ * Get translate function.
79
+ *
80
+ * @returns Translate function
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * function Button() {
85
+ * const t = useTranslate()
86
+ * return <button>{t('buttons.submit')}</button>
87
+ * }
88
+ * ```
89
+ */
90
+ export function useTranslate() {
91
+ const { t } = createI18n();
92
+ return t;
93
+ }
94
+ /**
95
+ * Get current locale as accessor.
96
+ *
97
+ * @returns Accessor for current locale
98
+ *
99
+ * @example
100
+ * ```tsx
101
+ * function LocaleIndicator() {
102
+ * const locale = useLocale()
103
+ * return <span>Current: {locale()}</span>
104
+ * }
105
+ * ```
106
+ */
107
+ export function useLocale() {
108
+ const { locale } = createI18n();
109
+ return locale;
110
+ }
111
+ /**
112
+ * Create a reactive translation.
113
+ *
114
+ * @param key - Translation key
115
+ * @param values - Interpolation values for the translation.
116
+ * @param options - Translation options
117
+ * @returns Accessor for translated string
118
+ *
119
+ * @example
120
+ * ```tsx
121
+ * function WelcomeMessage() {
122
+ * const message = useTranslation('welcome.message', { name: 'User' })
123
+ * return <p>{message()}</p>
124
+ * }
125
+ * ```
126
+ */
127
+ export function useTranslation(key, values, options) {
128
+ const { t, locale } = createI18n();
129
+ return createMemo(() => {
130
+ // Re-run when locale changes
131
+ locale();
132
+ return t(key, values, options);
133
+ });
134
+ }
135
+ /**
136
+ * Create a reactive plural translation.
137
+ *
138
+ * @param key - Translation key
139
+ * @param count - Count accessor for pluralization
140
+ * @param values - Interpolation values for the translation.
141
+ * @returns Accessor for translated string
142
+ *
143
+ * @example
144
+ * ```tsx
145
+ * function ItemCount() {
146
+ * const [count, setCount] = createSignal(5)
147
+ * const text = usePlural('items.count', count)
148
+ * return <span>{text()}</span>
149
+ * }
150
+ * ```
151
+ */
152
+ export function usePlural(key, count, values) {
153
+ const { t, locale } = createI18n();
154
+ return createMemo(() => {
155
+ locale();
156
+ return t(key, values, { count: count() });
157
+ });
158
+ }
159
+ /**
160
+ * Create i18n helpers from context.
161
+ *
162
+ * @returns I18n helper functions
163
+ */
164
+ /**
165
+ * Creates a i18n helpers.
166
+ * @returns The created result.
167
+ */
168
+ export function createI18nHelpers() {
169
+ const provider = getI18nProvider();
170
+ return {
171
+ t: provider.t.bind(provider),
172
+ getLocale: () => provider.getLocale(),
173
+ setLocale: (locale) => provider.setLocale(locale),
174
+ getLocales: () => provider.getLocales(),
175
+ hasKey: (key) => provider.hasKey?.(key) ?? provider.exists(key),
176
+ isReady: () => provider.isReady?.() ?? true,
177
+ };
178
+ }
179
+ /**
180
+ * Create i18n primitives from a specific provider.
181
+ *
182
+ * @param provider - I18n provider
183
+ * @returns I18n primitives
184
+ */
185
+ /**
186
+ * Creates a i18n from provider.
187
+ * @param provider - The provider implementation.
188
+ * @returns The created result.
189
+ */
190
+ export function createI18nFromProvider(provider) {
191
+ const [locale, setLocaleSignal] = createSignal(provider.getLocale());
192
+ const [isReady, setIsReady] = createSignal(provider.isReady?.() ?? true);
193
+ const [translationVersion, setTranslationVersion] = createSignal(0);
194
+ createEffect(() => {
195
+ const unsubscribe = provider.onLocaleChange((newLocale) => {
196
+ setLocaleSignal(newLocale);
197
+ setTranslationVersion((v) => v + 1);
198
+ });
199
+ onCleanup(unsubscribe);
200
+ });
201
+ createEffect(() => {
202
+ const unsubscribe = provider.onReady?.(() => {
203
+ setIsReady(true);
204
+ });
205
+ onCleanup(() => unsubscribe?.());
206
+ });
207
+ const t = (key, values, options) => {
208
+ locale();
209
+ translationVersion();
210
+ return provider.t(key, values, options);
211
+ };
212
+ return {
213
+ t,
214
+ locale,
215
+ setLocale: async (newLocale) => {
216
+ await provider.setLocale(newLocale);
217
+ },
218
+ isReady,
219
+ getLocales: () => provider.getLocales(),
220
+ hasKey: (key) => provider.hasKey?.(key) ?? provider.exists(key),
221
+ };
222
+ }
223
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/primitives/i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Solid.js primitives for molecule.dev framework bindings.
3
+ *
4
+ * @module
5
+ */
6
+ export * from './async-state.js';
7
+ export * from './auth.js';
8
+ export * from './capacitor-app.js';
9
+ export * from './change-password.js';
10
+ export * from './device.js';
11
+ export * from './forms.js';
12
+ export * from './http.js';
13
+ export * from './i18n.js';
14
+ export * from './logger.js';
15
+ export * from './login.js';
16
+ export * from './oauth.js';
17
+ export * from './password-reset.js';
18
+ export * from './platform.js';
19
+ export * from './promise.js';
20
+ export * from './push.js';
21
+ export * from './router.js';
22
+ export * from './signup.js';
23
+ export * from './state.js';
24
+ export * from './storage.js';
25
+ export * from './theme.js';
26
+ export * from './version.js';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}