@keepui/ui 0.1.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 (56) hide show
  1. package/README.md +267 -0
  2. package/capacitor/index.d.ts +6 -0
  3. package/capacitor/keepui-ui-capacitor.d.ts.map +1 -0
  4. package/capacitor/lib/providers/provide-keep-ui-capacitor.d.ts +22 -0
  5. package/capacitor/lib/providers/provide-keep-ui-capacitor.d.ts.map +1 -0
  6. package/capacitor/lib/services/capacitor-file.service.d.ts +23 -0
  7. package/capacitor/lib/services/capacitor-file.service.d.ts.map +1 -0
  8. package/capacitor/public-api.d.ts +3 -0
  9. package/capacitor/public-api.d.ts.map +1 -0
  10. package/fesm2022/keepui-ui-capacitor.mjs +79 -0
  11. package/fesm2022/keepui-ui-capacitor.mjs.map +1 -0
  12. package/fesm2022/keepui-ui.mjs +656 -0
  13. package/fesm2022/keepui-ui.mjs.map +1 -0
  14. package/index.d.ts +6 -0
  15. package/keepui-ui.d.ts.map +1 -0
  16. package/lib/components/button/button.component.d.ts +72 -0
  17. package/lib/components/button/button.component.d.ts.map +1 -0
  18. package/lib/components/button/button.types.d.ts +17 -0
  19. package/lib/components/button/button.types.d.ts.map +1 -0
  20. package/lib/components/card/card.component.d.ts +23 -0
  21. package/lib/components/card/card.component.d.ts.map +1 -0
  22. package/lib/components/image-preview/image-preview.component.d.ts +40 -0
  23. package/lib/components/image-preview/image-preview.component.d.ts.map +1 -0
  24. package/lib/i18n/keep-ui-translations.d.ts +21 -0
  25. package/lib/i18n/keep-ui-translations.d.ts.map +1 -0
  26. package/lib/i18n/translation-keys.d.ts +26 -0
  27. package/lib/i18n/translation-keys.d.ts.map +1 -0
  28. package/lib/models/file-result.model.d.ts +11 -0
  29. package/lib/models/file-result.model.d.ts.map +1 -0
  30. package/lib/ports/file.port.d.ts +17 -0
  31. package/lib/ports/file.port.d.ts.map +1 -0
  32. package/lib/providers/keep-ui-i18n.provider.d.ts +43 -0
  33. package/lib/providers/keep-ui-i18n.provider.d.ts.map +1 -0
  34. package/lib/providers/provide-keep-ui.d.ts +16 -0
  35. package/lib/providers/provide-keep-ui.d.ts.map +1 -0
  36. package/lib/services/keep-ui-language.service.d.ts +36 -0
  37. package/lib/services/keep-ui-language.service.d.ts.map +1 -0
  38. package/lib/services/keep-ui-transloco-loader.service.d.ts +18 -0
  39. package/lib/services/keep-ui-transloco-loader.service.d.ts.map +1 -0
  40. package/lib/services/web-file.service.d.ts +17 -0
  41. package/lib/services/web-file.service.d.ts.map +1 -0
  42. package/lib/testing/mock-file.service.d.ts +21 -0
  43. package/lib/testing/mock-file.service.d.ts.map +1 -0
  44. package/lib/tokens/file.token.d.ts +11 -0
  45. package/lib/tokens/file.token.d.ts.map +1 -0
  46. package/package.json +40 -0
  47. package/public-api.d.ts +15 -0
  48. package/public-api.d.ts.map +1 -0
  49. package/schematics/collection.json +10 -0
  50. package/schematics/ng-add/index.d.ts +12 -0
  51. package/schematics/ng-add/index.js +34 -0
  52. package/schematics/ng-add/index.js.map +1 -0
  53. package/schematics/ng-add/index.ts +42 -0
  54. package/schematics/ng-add/schema.json +16 -0
  55. package/styles/_index.css +73 -0
  56. package/styles/themes.css +130 -0
@@ -0,0 +1,15 @@
1
+ export * from './lib/models/file-result.model';
2
+ export * from './lib/ports/file.port';
3
+ export * from './lib/tokens/file.token';
4
+ export * from './lib/services/web-file.service';
5
+ export * from './lib/components/button/button.types';
6
+ export * from './lib/components/button/button.component';
7
+ export * from './lib/components/card/card.component';
8
+ export * from './lib/components/image-preview/image-preview.component';
9
+ export * from './lib/providers/provide-keep-ui';
10
+ export * from './lib/providers/keep-ui-i18n.provider';
11
+ export * from './lib/i18n/translation-keys';
12
+ export * from './lib/i18n/keep-ui-translations';
13
+ export * from './lib/services/keep-ui-language.service';
14
+ export * from './lib/testing/mock-file.service';
15
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/keep-ui/src/public-api.ts"],"names":[],"mappings":"AAGA,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wDAAwD,CAAC;AAGvE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Add KeepUI to an Angular project",
6
+ "factory": "./ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,12 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ interface NgAddOptions {
3
+ project?: string;
4
+ }
5
+ /**
6
+ * `ng add @keepui/ui` schematic.
7
+ *
8
+ * Installs the package and prints guidance on how to register
9
+ * `provideKeepUi()` in the host application's `app.config.ts`.
10
+ */
11
+ export declare function ngAdd(_options: NgAddOptions): Rule;
12
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ngAdd = ngAdd;
4
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
5
+ /**
6
+ * `ng add @keepui/ui` schematic.
7
+ *
8
+ * Installs the package and prints guidance on how to register
9
+ * `provideKeepUi()` in the host application's `app.config.ts`.
10
+ */
11
+ function ngAdd(_options) {
12
+ return (tree, context) => {
13
+ context.addTask(new tasks_1.NodePackageInstallTask());
14
+ context.logger.info('');
15
+ context.logger.info('✅ KeepUI has been added to your project!');
16
+ context.logger.info('');
17
+ context.logger.info('Next steps:');
18
+ context.logger.info(' 1. Open your app.config.ts and add provideKeepUi() to the providers array:');
19
+ context.logger.info('');
20
+ context.logger.info(" import { provideKeepUi } from '@keepui/ui';");
21
+ context.logger.info('');
22
+ context.logger.info(' export const appConfig: ApplicationConfig = {');
23
+ context.logger.info(' providers: [provideKeepUi()],');
24
+ context.logger.info(' };');
25
+ context.logger.info('');
26
+ context.logger.info(' 2. Use KeepUI components in your templates:');
27
+ context.logger.info(" import { ImagePreviewComponent } from '@keepui/ui';");
28
+ context.logger.info('');
29
+ context.logger.info(' 3. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.');
30
+ context.logger.info('');
31
+ return tree;
32
+ };
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAaA,sBA4BC;AAxCD,4DAA0E;AAM1E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAsB;IAC1C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8EAA8E,CAC/E,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8FAA8F,CAC/F,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
3
+
4
+ interface NgAddOptions {
5
+ project?: string;
6
+ }
7
+
8
+ /**
9
+ * `ng add @keepui/ui` schematic.
10
+ *
11
+ * Installs the package and prints guidance on how to register
12
+ * `provideKeepUi()` in the host application's `app.config.ts`.
13
+ */
14
+ export function ngAdd(_options: NgAddOptions): Rule {
15
+ return (tree: Tree, context: SchematicContext) => {
16
+ context.addTask(new NodePackageInstallTask());
17
+
18
+ context.logger.info('');
19
+ context.logger.info('✅ KeepUI has been added to your project!');
20
+ context.logger.info('');
21
+ context.logger.info('Next steps:');
22
+ context.logger.info(
23
+ ' 1. Open your app.config.ts and add provideKeepUi() to the providers array:',
24
+ );
25
+ context.logger.info('');
26
+ context.logger.info(" import { provideKeepUi } from '@keepui/ui';");
27
+ context.logger.info('');
28
+ context.logger.info(' export const appConfig: ApplicationConfig = {');
29
+ context.logger.info(' providers: [provideKeepUi()],');
30
+ context.logger.info(' };');
31
+ context.logger.info('');
32
+ context.logger.info(' 2. Use KeepUI components in your templates:');
33
+ context.logger.info(" import { ImagePreviewComponent } from '@keepui/ui';");
34
+ context.logger.info('');
35
+ context.logger.info(
36
+ ' 3. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.',
37
+ );
38
+ context.logger.info('');
39
+
40
+ return tree;
41
+ };
42
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "id": "KeepUINgAdd",
4
+ "title": "Add KeepUI to an Angular project",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "The name of the project to add KeepUI to.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ },
15
+ "required": []
16
+ }
@@ -0,0 +1,73 @@
1
+ /*
2
+ * KeepUI — Styles entry point
3
+ *
4
+ * Import this file once in your application's global stylesheet:
5
+ *
6
+ * @import "@keepui/ui/styles";
7
+ *
8
+ * It includes:
9
+ * - Default light & dark theme tokens (CSS custom properties)
10
+ * - Tailwind CSS v4 theme mappings via @theme inline
11
+ *
12
+ * ─── Tailwind v4 utilities generated ────────────────────────────────────────
13
+ *
14
+ * Surface & background:
15
+ * bg-keepui-background bg-keepui-surface bg-keepui-surface-hover
16
+ *
17
+ * Text:
18
+ * text-keepui-text text-keepui-text-muted text-keepui-text-disabled
19
+ *
20
+ * Borders:
21
+ * border-keepui-border border-keepui-border-strong
22
+ *
23
+ * Brand / Primary:
24
+ * bg-keepui-primary bg-keepui-primary-hover bg-keepui-primary-active
25
+ * text-keepui-primary-fg border-keepui-primary
26
+ *
27
+ * Feedback:
28
+ * text-keepui-error bg-keepui-error bg-keepui-success bg-keepui-warning
29
+ *
30
+ * Shadows:
31
+ * shadow-keepui-sm shadow-keepui-md shadow-keepui-lg
32
+ *
33
+ * ─── Requirements ───────────────────────────────────────────────────────────
34
+ *
35
+ * Your application must process this file with Tailwind CSS v4 (e.g. via
36
+ * @tailwindcss/postcss or @tailwindcss/vite) to generate the utility classes.
37
+ * ────────────────────────────────────────────────────────────────────────────
38
+ */
39
+
40
+ @import "./themes.css";
41
+
42
+ @theme inline {
43
+ /* ── Surfaces ── */
44
+ --color-keepui-background: var(--keepui-background);
45
+ --color-keepui-surface: var(--keepui-surface);
46
+ --color-keepui-surface-hover: var(--keepui-surface-hover);
47
+
48
+ /* ── Borders ── */
49
+ --color-keepui-border: var(--keepui-border);
50
+ --color-keepui-border-strong: var(--keepui-border-strong);
51
+
52
+ /* ── Text ── */
53
+ --color-keepui-text: var(--keepui-text);
54
+ --color-keepui-text-muted: var(--keepui-text-muted);
55
+ --color-keepui-text-disabled: var(--keepui-text-disabled);
56
+
57
+ /* ── Primary ── */
58
+ --color-keepui-primary: var(--keepui-primary);
59
+ --color-keepui-primary-hover: var(--keepui-primary-hover);
60
+ --color-keepui-primary-active: var(--keepui-primary-active);
61
+ --color-keepui-primary-fg: var(--keepui-primary-foreground);
62
+
63
+ /* ── Feedback ── */
64
+ --color-keepui-error: var(--keepui-error);
65
+ --color-keepui-error-fg: var(--keepui-error-foreground);
66
+ --color-keepui-success: var(--keepui-success);
67
+ --color-keepui-warning: var(--keepui-warning);
68
+
69
+ /* ── Shadows ── */
70
+ --shadow-keepui-sm: var(--keepui-shadow-sm);
71
+ --shadow-keepui-md: var(--keepui-shadow-md);
72
+ --shadow-keepui-lg: var(--keepui-shadow-lg);
73
+ }
@@ -0,0 +1,130 @@
1
+ /*
2
+ * KeepUI — Default Theme
3
+ *
4
+ * This file defines all the CSS custom properties (design tokens) used by
5
+ * KeepUI components. Import it once in your application's global stylesheet:
6
+ *
7
+ * @import "@keepui/ui/styles/themes.css";
8
+ *
9
+ * ─── How to customise ───────────────────────────────────────────────────
10
+ *
11
+ * Override any variable in your own CSS to create a custom theme:
12
+ *
13
+ * :root {
14
+ * --keepui-primary: #6366f1;
15
+ * --keepui-primary-hover: #4f46e5;
16
+ * }
17
+ *
18
+ * [data-theme="dark"] {
19
+ * --keepui-primary: #818cf8;
20
+ * --keepui-primary-hover: #a5b4fc;
21
+ * }
22
+ *
23
+ * ─── Switching themes at runtime ────────────────────────────────────────
24
+ *
25
+ * Add `data-theme="dark"` to <html> or any ancestor element:
26
+ *
27
+ * document.documentElement.setAttribute('data-theme', 'dark');
28
+ *
29
+ * Or rely on the user's OS preference — the defaults already include
30
+ * a `@media (prefers-color-scheme: dark)` block.
31
+ * ────────────────────────────────────────────────────────────────────────
32
+ */
33
+
34
+ /* ===== LIGHT THEME (default) ===== */
35
+ :root {
36
+ /* ── Brand ── */
37
+ --keepui-primary: #3b82f6;
38
+ --keepui-primary-hover: #2563eb;
39
+ --keepui-primary-active: #1d4ed8;
40
+ --keepui-primary-foreground: #ffffff;
41
+
42
+ /* ── Surfaces ── */
43
+ --keepui-background: #f5f5f5;
44
+ --keepui-surface: #ffffff;
45
+ --keepui-surface-hover: #f0f0f0;
46
+
47
+ /* ── Borders ── */
48
+ --keepui-border: #e0e0e0;
49
+ --keepui-border-strong: #cccccc;
50
+
51
+ /* ── Text ── */
52
+ --keepui-text: #1f2937;
53
+ --keepui-text-muted: #6b7280;
54
+ --keepui-text-disabled: #9ca3af;
55
+
56
+ /* ── Feedback ── */
57
+ --keepui-error: #dc2626;
58
+ --keepui-error-foreground: #ffffff;
59
+ --keepui-success: #16a34a;
60
+ --keepui-warning: #f59e0b;
61
+
62
+ /* ── Misc ── */
63
+ --keepui-radius: 0.5rem;
64
+ --keepui-radius-sm: 0.25rem;
65
+ --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.12);
66
+ --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.15);
67
+ --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.18);
68
+ --keepui-transition: 0.2s ease;
69
+ --keepui-disabled-opacity: 0.5;
70
+ --keepui-font-family: system-ui, -apple-system, sans-serif;
71
+ }
72
+
73
+ /* ===== DARK THEME ===== */
74
+ [data-theme="dark"] {
75
+ --keepui-primary: #60a5fa;
76
+ --keepui-primary-hover: #93c5fd;
77
+ --keepui-primary-active: #3b82f6;
78
+ --keepui-primary-foreground: #0f172a;
79
+
80
+ --keepui-background: #0f172a;
81
+ --keepui-surface: #1e293b;
82
+ --keepui-surface-hover: #334155;
83
+
84
+ --keepui-border: #334155;
85
+ --keepui-border-strong: #475569;
86
+
87
+ --keepui-text: #f1f5f9;
88
+ --keepui-text-muted: #94a3b8;
89
+ --keepui-text-disabled: #64748b;
90
+
91
+ --keepui-error: #f87171;
92
+ --keepui-error-foreground: #0f172a;
93
+ --keepui-success: #4ade80;
94
+ --keepui-warning: #fbbf24;
95
+
96
+ --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
97
+ --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.45);
98
+ --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.5);
99
+ }
100
+
101
+ /* ===== Auto dark (OS preference) ===== */
102
+ @media (prefers-color-scheme: dark) {
103
+ :root:not([data-theme="light"]) {
104
+ --keepui-primary: #60a5fa;
105
+ --keepui-primary-hover: #93c5fd;
106
+ --keepui-primary-active: #3b82f6;
107
+ --keepui-primary-foreground: #0f172a;
108
+
109
+ --keepui-background: #0f172a;
110
+ --keepui-surface: #1e293b;
111
+ --keepui-surface-hover: #334155;
112
+
113
+ --keepui-border: #334155;
114
+ --keepui-border-strong: #475569;
115
+
116
+ --keepui-text: #f1f5f9;
117
+ --keepui-text-muted: #94a3b8;
118
+ --keepui-text-disabled: #64748b;
119
+
120
+ --keepui-error: #f87171;
121
+ --keepui-error-foreground: #0f172a;
122
+ --keepui-success: #4ade80;
123
+ --keepui-warning: #fbbf24;
124
+
125
+ --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
126
+ --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.45);
127
+ --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.5);
128
+ }
129
+ }
130
+