voirjs-native 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.
package/theme.md ADDED
@@ -0,0 +1,344 @@
1
+ Theme System
2
+
3
+ Sistema de temas inspirado en Material Design 3 para TabrisJS.
4
+
5
+ Características
6
+
7
+ - Temas claros y oscuros.
8
+ - Tipografía configurable.
9
+ - Radios configurables.
10
+ - Componentes temáticos.
11
+ - Clases reutilizables.
12
+ - Cambio dinámico de tema.
13
+ - Tokens semánticos.
14
+ - Soporte para personalización parcial mediante overrides.
15
+
16
+ ---
17
+
18
+ Estructura
19
+
20
+ theme
21
+ ├─ colors
22
+ ├─ typography
23
+ ├─ radius
24
+ ├─ components
25
+ └─ classes
26
+
27
+ ---
28
+
29
+ Registrar un tema
30
+ ```typescript
31
+ import { registerTheme } from './themes';
32
+
33
+ registerTheme('aurora-night', {
34
+
35
+ type: 'dark',
36
+
37
+ primary: '#7C4DFF',
38
+ onPrimary: '#FFFFFF',
39
+
40
+ background: '#0F1115',
41
+ onBackground: '#E6EAF2',
42
+
43
+ surface: '#181B22',
44
+ onSurface: '#E6EAF2'
45
+ });
46
+ ```
47
+ ---
48
+
49
+ Activar un tema
50
+ ```typescript
51
+ import { setTheme } from './themes';
52
+
53
+ setTheme('aurora-night');
54
+ ```
55
+ ---
56
+
57
+ Obtener el tema actual
58
+ ```typescript
59
+ import { getTheme } from './themes';
60
+
61
+ const theme = getTheme();
62
+
63
+ console.log(theme.primary);
64
+ ```
65
+ ---
66
+
67
+ Tipografía
68
+
69
+ La tipografía base sigue Material Design 3.
70
+
71
+ registerTypography('material');
72
+
73
+ También se pueden sobrescribir propiedades específicas.
74
+ ```typescript
75
+ registerTypography('modern', {
76
+
77
+ fontFamily: 'Inter',
78
+
79
+ bodyMedium: 15,
80
+
81
+ titleLarge: 24
82
+ });
83
+ ```
84
+ Activar:
85
+ ```typescript
86
+ setTypography('modern');
87
+ ```
88
+ ---
89
+
90
+ Tokens tipográficos
91
+
92
+ Disponibles por defecto:
93
+
94
+ displayLarge
95
+ displayMedium
96
+ displaySmall
97
+
98
+ headlineLarge
99
+ headlineMedium
100
+ headlineSmall
101
+
102
+ titleLarge
103
+ titleMedium
104
+ titleSmall
105
+
106
+ bodyLarge
107
+ bodyMedium
108
+ bodySmall
109
+
110
+ labelLarge
111
+ labelMedium
112
+ labelSmall
113
+
114
+ ---
115
+
116
+ Pesos de fuente
117
+
118
+ También pueden definirse mediante arrays.
119
+
120
+ font: ['titleSmall', 'bold']
121
+
122
+ font: ['headlineLarge', 'light']
123
+
124
+ font: ['bodyMedium', 'normal']
125
+
126
+ Resultado:
127
+
128
+ bold 14px sans-serif
129
+
130
+ ---
131
+
132
+ Radius
133
+
134
+ Valores disponibles:
135
+ ```javascript
136
+ {
137
+ small: 8,
138
+ medium: 12,
139
+ large: 16,
140
+ extraLarge: 28,
141
+ full: 999
142
+ }
143
+ ```
144
+ Uso:
145
+
146
+ cornerRadius: 'large'
147
+
148
+ ---
149
+
150
+ Componentes
151
+
152
+ Registrar estilos reutilizables para componentes.
153
+ ```typescript
154
+ registerComponent('ButtonFilled', {
155
+
156
+ background: 'primary',
157
+
158
+ textColor: 'onPrimary',
159
+
160
+ cornerRadius: 'full',
161
+
162
+ font: 'labelLarge'
163
+ });
164
+ ```
165
+ ---
166
+
167
+ Resolver componentes
168
+ ```
169
+ resolveComponent('ButtonFilled');
170
+ ```
171
+ Resultado:
172
+ ```
173
+ {
174
+ background: '#7C4DFF',
175
+ textColor: '#FFFFFF',
176
+ cornerRadius: 999,
177
+ font: 'bold 14px sans-serif'
178
+ }
179
+ ```
180
+ ---
181
+
182
+ Clases
183
+
184
+ Las clases permiten reutilizar estilos sin aplicar manualmente un tema.
185
+
186
+ Registrar clase simple
187
+ ```
188
+ registerClass('card', {
189
+
190
+ background: 'surface',
191
+
192
+ cornerRadius: 'large'
193
+ });
194
+ ```
195
+ ---
196
+
197
+ Heredar un componente
198
+ ```
199
+ registerClass(
200
+ 'btn',
201
+ 'ButtonFilled'
202
+ );
203
+ ```
204
+ Uso:
205
+ ```tsx
206
+ <Button
207
+ class="btn"
208
+ />
209
+ ```
210
+ ---
211
+
212
+ Sobrescribir propiedades
213
+ ```typescript
214
+ registerClass(
215
+ 'btn-danger',
216
+ 'ButtonFilled',
217
+ {
218
+ background: 'error',
219
+ textColor: 'onError'
220
+ }
221
+ );
222
+ ```
223
+ ---
224
+
225
+ Múltiples clases
226
+ ```tsx
227
+ <Button
228
+ class="btn rounded-large"
229
+ />
230
+ ```
231
+ Las clases se aplican en orden.
232
+
233
+ ---
234
+
235
+ Clases recomendadas
236
+
237
+ Botones
238
+
239
+ btn
240
+ btn-outline
241
+ btn-tonal
242
+ btn-danger
243
+
244
+ Texto
245
+
246
+ text-title
247
+ text-body
248
+ text-muted
249
+ text-primary
250
+
251
+ Preferencias
252
+
253
+ pref-category
254
+ pref-title
255
+ pref-summary
256
+
257
+ Layout
258
+
259
+ card
260
+ group-container
261
+ group-title
262
+
263
+ Utilidades
264
+
265
+ bg-primary
266
+ bg-surface
267
+
268
+ rounded-small
269
+ rounded-medium
270
+ rounded-large
271
+ rounded-full
272
+
273
+ ---
274
+
275
+ Preference Screen
276
+
277
+ Categoría:
278
+ ```jsx
279
+ <TextView
280
+ class="pref-category"
281
+ />
282
+ ```
283
+ Título:
284
+ ```jsx
285
+ <TextView
286
+ class="pref-title"
287
+ />
288
+ ```
289
+ Resumen:
290
+ ```jsx
291
+ <TextView
292
+ class="pref-summary"
293
+ />
294
+ ```
295
+ ---
296
+
297
+ Cambio dinámico
298
+ ```
299
+ setTheme('crimson-void');
300
+
301
+ setTypography('modern');
302
+ ```
303
+ Todos los componentes registrados pueden actualizarse automáticamente mediante los listeners del sistema de temas.
304
+
305
+ ---
306
+
307
+ Crear un tema personalizado
308
+ ```typescript
309
+ registerTheme('my-theme', {
310
+
311
+ primary: '#4CAF50',
312
+ onPrimary: '#FFFFFF',
313
+
314
+ background: '#101010',
315
+ onBackground: '#F5F5F5',
316
+
317
+ surface: '#1A1A1A',
318
+ onSurface: '#FFFFFF'
319
+ });
320
+ ```
321
+ Activar:
322
+ ```
323
+ setTheme('my-theme');
324
+ ```
325
+ ---
326
+
327
+ Filosofía
328
+
329
+ Nunca usar colores directos:
330
+
331
+ background: '#7C4DFF'
332
+
333
+ Siempre usar tokens:
334
+
335
+ background: 'primary'
336
+
337
+ Esto permite:
338
+
339
+ - Dark Mode.
340
+ - Light Mode.
341
+ - Cambio dinámico.
342
+ - Temas personalizados.
343
+ - Consistencia visual.
344
+ - Reutilización de componentes.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export function Bind({ target, children, ...props }: {
2
+ [x: string]: any;
3
+ target: any;
4
+ children: any;
5
+ }): any;
@@ -0,0 +1,8 @@
1
+ export function Border({ top, bottom, right, left, inside, children }: {
2
+ top: any;
3
+ bottom: any;
4
+ right: any;
5
+ left: any;
6
+ inside: any;
7
+ children: any;
8
+ }): any;
package/types/For.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export function For({ each, target, children, key }: {
2
+ each: any;
3
+ target: any;
4
+ children: any;
5
+ key: any;
6
+ }): any;
@@ -0,0 +1,41 @@
1
+ export function getFragmentManager(): any;
2
+ export class Fragment {
3
+ constructor(props?: {});
4
+ props: {};
5
+ state: {};
6
+ view: void;
7
+ created: boolean;
8
+ setState(partial: any): void;
9
+ onCreate(): void;
10
+ onStart(): void;
11
+ onResume(): void;
12
+ onPause(): void;
13
+ onStop(): void;
14
+ onDestroy(): void;
15
+ render(): void;
16
+ mount(parent: any): void;
17
+ unmount(): void;
18
+ update(): void;
19
+ }
20
+ export class FragmentManager {
21
+ constructor(container: any);
22
+ container: any;
23
+ stack: any[];
24
+ push(fragment: any): void;
25
+ replace(fragment: any): void;
26
+ pop(): void;
27
+ getCurrent(): any;
28
+ }
29
+ export class VoirFragmentHost {
30
+ constructor({ manager, ...props }: {
31
+ [x: string]: any;
32
+ manager: any;
33
+ });
34
+ manager: any;
35
+ _setManagerContainer(): void;
36
+ _intercept({ manager, defaultHost }: {
37
+ manager: any;
38
+ defaultHost: any;
39
+ }): void;
40
+ }
41
+ export const FragmentHost: any;
@@ -0,0 +1,5 @@
1
+ export function Group({ title, layout, children }: {
2
+ title: any;
3
+ layout: any;
4
+ children: any;
5
+ }): any;
@@ -0,0 +1 @@
1
+ export const Modal: any;
@@ -0,0 +1,9 @@
1
+ export function VoirNavItem({ icon, id, title: label, badge, host: ViewFragment, badgeColor, onClick }: {
2
+ icon: any;
3
+ id: any;
4
+ title: any;
5
+ badge: any;
6
+ host: any;
7
+ badgeColor: any;
8
+ onClick: any;
9
+ }): any;
@@ -0,0 +1,35 @@
1
+ declare const VoirAction_base: import("tabris").ActionFactory;
2
+ export class VoirAction extends VoirAction_base {
3
+ _actionView: any;
4
+ _intercept({ actionView, onClick }: {
5
+ actionView: any;
6
+ onClick: any;
7
+ }): void;
8
+ getActionView(): any;
9
+ getInstanceActionView(): any;
10
+ }
11
+ declare const VoirNavigationView_base: import("tabris").NavigationViewFactory;
12
+ export class VoirNavigationView extends VoirNavigationView_base {
13
+ constructor(props: any);
14
+ _voirProps: {
15
+ $history: any[];
16
+ };
17
+ _intercept({ children, menus, drawer: _drawer, navDrawer }: {
18
+ children: any;
19
+ menus: any;
20
+ drawer: any;
21
+ navDrawer: any;
22
+ }): this;
23
+ _interceptAction(action: any): void;
24
+ _interceptActions(actions: any): void;
25
+ get action(): {
26
+ add(action: any): /*elided*/ any;
27
+ remove(id: any): /*elided*/ any;
28
+ };
29
+ addScreen(screen: any): this;
30
+ }
31
+ export const NavigationView: any;
32
+ export const NavigationDrawer: any;
33
+ export const Action: any;
34
+ export const NavItem: any;
35
+ export {};
@@ -0,0 +1,9 @@
1
+ export function Screen({ children, ...props }?: {}): VoirScreen;
2
+ export class VoirScreen {
3
+ constructor(props?: {});
4
+ _intercept({ render }: {
5
+ render: any;
6
+ }): void;
7
+ addTitle(title: any): this;
8
+ onCreate(): void;
9
+ }
@@ -0,0 +1 @@
1
+ export const Snackbar: any;
@@ -0,0 +1 @@
1
+ export const Toast: any;
@@ -0,0 +1,8 @@
1
+ export function highOpacity(element: any, delay: any, duration: any): Promise<void>;
2
+ export function lowOpacity(element: any, delay: any, duration: any): Promise<void>;
3
+ export function animateOpacity(element: any, delay: any, duration: any): Promise<void>;
4
+ export class AnimationTime {
5
+ static LONG: number;
6
+ static MEDIUM: number;
7
+ static SHORT: number;
8
+ }
@@ -0,0 +1,28 @@
1
+ export const Action: {};
2
+ export const ActivityIndicator: {};
3
+ export const Button: {};
4
+ export const Canvas: {};
5
+ export const CheckBox: {};
6
+ export const CollectionView: {};
7
+ export const Composite: {};
8
+ export const ImageView: {};
9
+ export const ItemPicker: {};
10
+ export const ListView: {};
11
+ export const NavigationView: {};
12
+ export const Page: {};
13
+ export const Picker: {};
14
+ export const ProgressBar: {};
15
+ export const RadioButton: {};
16
+ export const RefreshComposite: {};
17
+ export const Row: {};
18
+ export const ScrollView: {};
19
+ export const SearchAction: {};
20
+ export const Slider: {};
21
+ export const Stack: {};
22
+ export const Switch: {};
23
+ export const Tab: {};
24
+ export const TabFolder: {};
25
+ export const TextInput: {};
26
+ export const TextView: {};
27
+ export const ToggleButton: {};
28
+ export { $, contentView, drawer, CameraView, CanvasContext, PdfView, RowLayout, StackLayout, Video, WebView, Widget, WidgetCollection, Color, ColorResources, Constraint, ConstraintLayout, Font, FontResources, Image, ImageBitmap, Layout, LayoutData, LinearGradient, Percent, ResourceBuilder, Resources, Setter, TextResources, fetch, Headers, Request, Response, WebSocket, XMLHttpRequest, ActionSheet, ActionSheetItem, AlertDialog, DateDialog, Popover, Popup, TimeDialog, app, authentication, crypto, device, devTools, fs, input, navigationBar, permission, printer, sizeMeasurement, statusBar, tabris, InactivityTimer } from "tabris";
@@ -0,0 +1,17 @@
1
+ declare const NavigationLayout_base: import("tabris").CompositeFactory;
2
+ export class NavigationLayout extends NavigationLayout_base {
3
+ constructor({ manager, drawerWidth, ...props }: {
4
+ [x: string]: any;
5
+ manager: any;
6
+ drawerWidth?: number;
7
+ });
8
+ manager: any;
9
+ drawerWidth: number;
10
+ _build(): void;
11
+ drawer: import("tabris").widgets.Composite<import("tabris").Widget<any>>;
12
+ content: any;
13
+ overlay: any;
14
+ openDrawer(): void;
15
+ closeDrawer(): void;
16
+ }
17
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @abstract
3
+ */
4
+ export class Checked extends ItemPreference {
5
+ _intercept({ label, summary, key, value, checked, onChange }: {
6
+ label: any;
7
+ summary: any;
8
+ key: any;
9
+ value: any;
10
+ checked: any;
11
+ onChange: any;
12
+ }): void;
13
+ _onChangePreference(): void;
14
+ onChange(fn: any): this;
15
+ /**
16
+ * @abstract
17
+ */
18
+ _getButton(): void;
19
+ }
20
+ import { ItemPreference } from "./AbstractItemPreference";
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @abstract
3
+ */
4
+ export class ItemPreference {
5
+ constructor(props: any);
6
+ _props: {
7
+ _views: {};
8
+ storage: {};
9
+ label: any;
10
+ summary: any;
11
+ };
12
+ _intercept({ label, key, summary, value, checked, onClick }: {
13
+ label: any;
14
+ key: any;
15
+ summary: any;
16
+ value: any;
17
+ checked: any;
18
+ onClick: any;
19
+ }): void;
20
+ setSummary(summary: any): this;
21
+ setLabel(label: any): this;
22
+ setValue(value: any): this;
23
+ onClick(fn: any): this;
24
+ }
@@ -0,0 +1,5 @@
1
+ export class VoirCheckBox extends Checked {
2
+ _getButton(checked: any): any;
3
+ }
4
+ export const CheckBoxPreference: any;
5
+ import { Checked } from "./AbstractCheked";
@@ -0,0 +1,9 @@
1
+ export class VoirListPreference extends ItemPreference {
2
+ _intercept({ entries, onChange, ...props }: {
3
+ [x: string]: any;
4
+ entries: any;
5
+ onChange: any;
6
+ }): void;
7
+ }
8
+ export const ListPreference: any;
9
+ import { ItemPreference } from "./AbstractItemPreference";
@@ -0,0 +1,7 @@
1
+ export class VoirPreferenceScreen {
2
+ constructor(props?: {});
3
+ _intercept({ children }: {
4
+ children: any;
5
+ }): void;
6
+ }
7
+ export const PreferenceScreen: any;
@@ -0,0 +1,5 @@
1
+ export class VoirSwitchPreference extends Checked {
2
+ _getButton(checked: any): any;
3
+ }
4
+ export const SwitchPreference: any;
5
+ import { Checked } from "./AbstractCheked";
@@ -0,0 +1,4 @@
1
+ export class VoirTextPreference extends ItemPreference {
2
+ }
3
+ export const TextPreference: any;
4
+ import { ItemPreference } from "./AbstractItemPreference";
@@ -0,0 +1,6 @@
1
+ export { CheckBoxPreference } from "./CheckBoxPreference";
2
+ export { SwitchPreference } from "./SwitchPreference";
3
+ export { TextPreference } from "./TextPreference";
4
+ export { PreferenceScreen } from "./PreferenceScreen";
5
+ export { ListPreference } from "./ListPreference";
6
+ export { setPreference, getValuePreference, existsKeyPreference } from "./storage";
@@ -0,0 +1,5 @@
1
+ export const name_key_pref: "voir-native-preference";
2
+ export const $preference: any;
3
+ export function setPreference(key: any, value: any): void;
4
+ export function getValuePreference(key: any): any;
5
+ export function existsKeyPreference(key: any): boolean;
@@ -0,0 +1,15 @@
1
+ export function schedule(effect: any): void;
2
+ export function createSignal(initial: any): {
3
+ (): any;
4
+ set(v: any): void;
5
+ update(fn: any): void;
6
+ __isSignal: boolean;
7
+ };
8
+ export function effect(fn: any, deps: any): () => void;
9
+ export function computed(fn: any): {
10
+ (): any;
11
+ set(v: any): void;
12
+ update(fn: any): void;
13
+ __isSignal: boolean;
14
+ };
15
+ export function batch(fn: any): void;
@@ -0,0 +1,18 @@
1
+ export function createStack(): {
2
+ set: typeof set;
3
+ remove: typeof remove;
4
+ clear: typeof clear;
5
+ has: typeof has;
6
+ iterator: typeof iterator;
7
+ asyncIterator: typeof asyncIterator;
8
+ readonly stacks: Set<any>;
9
+ readonly size: number;
10
+ };
11
+ export function stackView(Stack: any): Promise<void>;
12
+ declare function set(element: any, time?: number): any;
13
+ declare function remove(element: any): any;
14
+ declare function clear(): any;
15
+ declare function has(element: any): any;
16
+ declare function iterator(fn: any): void;
17
+ declare function asyncIterator(fn: any): Promise<void>;
18
+ export {};