@ojiepermana/angular 0.0.2

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 (51) hide show
  1. package/README.md +237 -0
  2. package/fesm2022/ojiepermana-angular-internal.mjs +58 -0
  3. package/fesm2022/ojiepermana-angular-internal.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-layout.mjs +471 -0
  5. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -0
  6. package/fesm2022/ojiepermana-angular-shell.mjs +14 -0
  7. package/fesm2022/ojiepermana-angular-shell.mjs.map +1 -0
  8. package/fesm2022/ojiepermana-angular-theme-component.mjs +249 -0
  9. package/fesm2022/ojiepermana-angular-theme-component.mjs.map +1 -0
  10. package/fesm2022/ojiepermana-angular-theme-directive.mjs +29 -0
  11. package/fesm2022/ojiepermana-angular-theme-directive.mjs.map +1 -0
  12. package/fesm2022/ojiepermana-angular-theme-service.mjs +243 -0
  13. package/fesm2022/ojiepermana-angular-theme-service.mjs.map +1 -0
  14. package/fesm2022/ojiepermana-angular-theme.mjs +6 -0
  15. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -0
  16. package/fesm2022/ojiepermana-angular.mjs +6 -0
  17. package/fesm2022/ojiepermana-angular.mjs.map +1 -0
  18. package/layout/README.md +143 -0
  19. package/layout/styles/index.css +157 -0
  20. package/package.json +59 -0
  21. package/shell/README.md +37 -0
  22. package/styles/index.css +2 -0
  23. package/styles/resets.css +22 -0
  24. package/theme/README.md +382 -0
  25. package/theme/styles/adapters/material-ui/index.css +210 -0
  26. package/theme/styles/index.css +8 -0
  27. package/theme/styles/layout/index.css +1 -0
  28. package/theme/styles/modes/dark.css +84 -0
  29. package/theme/styles/presets/colors/blue.css +10 -0
  30. package/theme/styles/presets/colors/brand.css +11 -0
  31. package/theme/styles/presets/colors/cyan.css +10 -0
  32. package/theme/styles/presets/colors/green.css +10 -0
  33. package/theme/styles/presets/colors/index.css +7 -0
  34. package/theme/styles/presets/colors/orange.css +10 -0
  35. package/theme/styles/presets/colors/purple.css +10 -0
  36. package/theme/styles/presets/colors/red.css +10 -0
  37. package/theme/styles/presets/styles/flat.css +30 -0
  38. package/theme/styles/presets/styles/glass.css +34 -0
  39. package/theme/styles/presets/styles/index.css +2 -0
  40. package/theme/styles/roles/index.css +49 -0
  41. package/theme/styles/tokens/foundation.css +139 -0
  42. package/theme/styles/tokens/semantic.css +87 -0
  43. package/theme/styles/utilities/index.css +88 -0
  44. package/types/ojiepermana-angular-internal.d.ts +26 -0
  45. package/types/ojiepermana-angular-layout.d.ts +90 -0
  46. package/types/ojiepermana-angular-shell.d.ts +12 -0
  47. package/types/ojiepermana-angular-theme-component.d.ts +46 -0
  48. package/types/ojiepermana-angular-theme-directive.d.ts +10 -0
  49. package/types/ojiepermana-angular-theme-service.d.ts +68 -0
  50. package/types/ojiepermana-angular-theme.d.ts +2 -0
  51. package/types/ojiepermana-angular.d.ts +2 -0
@@ -0,0 +1,11 @@
1
+ :root,
2
+ [data-theme-color='brand'] {
3
+ --theme-primary: oklch(0.59 0.18 257.5);
4
+ --theme-on-primary: oklch(0.985 0 0);
5
+ --theme-secondary: oklch(0.654 0.137 259.075);
6
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
7
+ --theme-tertiary: oklch(0.72 0.096 260.483);
8
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
9
+ --theme-neutral: oklch(0.736 0.035 265.705);
10
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
11
+ }
@@ -0,0 +1,10 @@
1
+ [data-theme-color='cyan'] {
2
+ --theme-primary: oklch(0.73 0.13 219.2);
3
+ --theme-on-primary: oklch(0.181 0.01 220.8);
4
+ --theme-secondary: oklch(0.755 0.097 223.466);
5
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
6
+ --theme-tertiary: oklch(0.787 0.067 227.388);
7
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
8
+ --theme-neutral: oklch(0.756 0.024 242.306);
9
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
10
+ }
@@ -0,0 +1,10 @@
1
+ [data-theme-color='green'] {
2
+ --theme-primary: oklch(0.68 0.18 153.4);
3
+ --theme-on-primary: oklch(0.188 0.012 162.1);
4
+ --theme-secondary: oklch(0.719 0.124 156.054);
5
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
6
+ --theme-tertiary: oklch(0.763 0.08 158.902);
7
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
8
+ --theme-neutral: oklch(0.749 0.02 176.021);
9
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
10
+ }
@@ -0,0 +1,7 @@
1
+ @import './brand.css';
2
+ @import './blue.css';
3
+ @import './green.css';
4
+ @import './red.css';
5
+ @import './cyan.css';
6
+ @import './purple.css';
7
+ @import './orange.css';
@@ -0,0 +1,10 @@
1
+ [data-theme-color='orange'] {
2
+ --theme-primary: oklch(0.74 0.16 68.4);
3
+ --theme-on-primary: oklch(0.188 0.012 73.2);
4
+ --theme-secondary: oklch(0.762 0.109 65.881);
5
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
6
+ --theme-tertiary: oklch(0.792 0.069 63.101);
7
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
8
+ --theme-neutral: oklch(0.757 0.016 44.49);
9
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
10
+ }
@@ -0,0 +1,10 @@
1
+ [data-theme-color='purple'] {
2
+ --theme-primary: oklch(0.62 0.21 314.5);
3
+ --theme-on-primary: oklch(0.985 0 0);
4
+ --theme-secondary: oklch(0.676 0.158 313.149);
5
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
6
+ --theme-tertiary: oklch(0.734 0.11 311.924);
7
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
8
+ --theme-neutral: oklch(0.74 0.039 307.23);
9
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
10
+ }
@@ -0,0 +1,10 @@
1
+ [data-theme-color='red'] {
2
+ --theme-primary: oklch(0.63 0.23 27.2);
3
+ --theme-on-primary: oklch(0.985 0 0);
4
+ --theme-secondary: oklch(0.683 0.164 24.516);
5
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
6
+ --theme-tertiary: oklch(0.739 0.109 21.822);
7
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
8
+ --theme-neutral: oklch(0.742 0.032 8.67);
9
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
10
+ }
@@ -0,0 +1,30 @@
1
+ :root,
2
+ [data-theme-style='flat'] {
3
+ --typeface-plain: var(
4
+ --theme-style-flat-plain-font,
5
+ ui-sans-serif,
6
+ system-ui,
7
+ -apple-system,
8
+ BlinkMacSystemFont,
9
+ 'Segoe UI',
10
+ sans-serif
11
+ );
12
+ --typeface-brand: var(--theme-style-flat-brand-font, var(--typeface-plain));
13
+ --typeface-mono: var(
14
+ --theme-style-flat-mono-font,
15
+ 'SFMono-Regular',
16
+ 'Cascadia Mono',
17
+ 'Liberation Mono',
18
+ ui-monospace,
19
+ monospace
20
+ );
21
+ --shell-surface: var(--card);
22
+ --shell-foreground: var(--card-foreground);
23
+ --shell-border: var(--border);
24
+ --shell-shadow: var(--shadow-xs);
25
+ --shell-backdrop: var(--backdrop);
26
+ --surface-elevated: var(--popover);
27
+ --surface-elevated-foreground: var(--popover-foreground);
28
+ --surface-elevated-border: var(--border);
29
+ --surface-elevated-shadow: var(--shadow-sm);
30
+ }
@@ -0,0 +1,34 @@
1
+ [data-theme-style='glass'] {
2
+ --typeface-plain: var(
3
+ --theme-style-glass-plain-font,
4
+ 'Avenir Next',
5
+ 'Helvetica Neue',
6
+ 'Segoe UI',
7
+ ui-sans-serif,
8
+ sans-serif
9
+ );
10
+ --typeface-brand: var(
11
+ --theme-style-glass-brand-font,
12
+ ui-rounded,
13
+ 'Avenir Next',
14
+ 'Segoe UI',
15
+ sans-serif
16
+ );
17
+ --typeface-mono: var(
18
+ --theme-style-glass-mono-font,
19
+ 'SFMono-Regular',
20
+ 'Cascadia Mono',
21
+ 'Liberation Mono',
22
+ ui-monospace,
23
+ monospace
24
+ );
25
+ --shell-surface: color-mix(in oklab, var(--card) 84%, transparent);
26
+ --shell-foreground: var(--card-foreground);
27
+ --shell-border: color-mix(in oklab, var(--border) 82%, white 18%);
28
+ --shell-shadow: var(--shadow-md);
29
+ --shell-backdrop: blur(18px) saturate(1.14);
30
+ --surface-elevated: color-mix(in oklab, var(--popover) 90%, transparent);
31
+ --surface-elevated-foreground: var(--popover-foreground);
32
+ --surface-elevated-border: color-mix(in oklab, var(--border) 80%, white 20%);
33
+ --surface-elevated-shadow: var(--shadow-lg);
34
+ }
@@ -0,0 +1,2 @@
1
+ @import './flat.css';
2
+ @import './glass.css';
@@ -0,0 +1,49 @@
1
+ :root {
2
+ /* Component-group role tokens bridge style presets and selectors. */
3
+ --nav-surface: color-mix(in oklab, var(--shell-surface) 92%, transparent);
4
+ --nav-foreground: var(--shell-foreground);
5
+ --nav-border: var(--shell-border);
6
+ --nav-item-hover-surface: var(--tertiary-container);
7
+ --nav-item-hover-foreground: var(--tertiary-container-foreground);
8
+ --nav-item-active-surface: var(--secondary-container);
9
+ --nav-item-active-foreground: var(--secondary-container-foreground);
10
+
11
+ --sidebar-chrome-surface: var(--sidebar);
12
+ --sidebar-chrome-foreground: var(--sidebar-foreground);
13
+ --sidebar-chrome-border: var(--sidebar-border);
14
+ --sidebar-item-hover-surface: var(--sidebar-accent);
15
+ --sidebar-item-hover-foreground: var(--sidebar-accent-foreground);
16
+ --sidebar-item-active-surface: var(--sidebar-primary);
17
+ --sidebar-item-active-foreground: var(--sidebar-primary-foreground);
18
+
19
+ --container-surface: var(--shell-surface);
20
+ --container-foreground: var(--shell-foreground);
21
+ --container-border: var(--shell-border);
22
+ --container-shadow: var(--shell-shadow);
23
+ --container-backdrop: var(--shell-backdrop);
24
+
25
+ --overlay-surface: var(--surface-elevated);
26
+ --overlay-foreground: var(--surface-elevated-foreground);
27
+ --overlay-border: var(--surface-elevated-border);
28
+ --overlay-shadow: var(--surface-elevated-shadow);
29
+ --overlay-backdrop: var(--shell-backdrop);
30
+
31
+ --data-surface: var(--container-surface);
32
+ --data-foreground: var(--container-foreground);
33
+ --data-border: var(--container-border);
34
+ --data-header-surface: color-mix(in oklab, var(--overlay-surface) 72%, var(--data-surface));
35
+ --data-header-foreground: var(--data-foreground);
36
+ --data-row-hover-surface: color-mix(in oklab, var(--tertiary-container) 72%, var(--data-surface));
37
+ --data-row-selected-surface: var(--secondary-container);
38
+
39
+ --control-surface: var(--container-surface);
40
+ --control-foreground: var(--container-foreground);
41
+ --control-border: var(--container-border);
42
+ --control-shadow: none;
43
+ --control-backdrop: var(--container-backdrop);
44
+ --control-hover-surface: var(--tertiary-container);
45
+ --control-hover-foreground: var(--tertiary-container-foreground);
46
+ --control-active-surface: var(--secondary-container);
47
+ --control-active-foreground: var(--secondary-container-foreground);
48
+ --control-focus-ring: var(--ring);
49
+ }
@@ -0,0 +1,139 @@
1
+ @theme inline {
2
+ --font-sans: var(--typeface-plain);
3
+ --font-display: var(--typeface-brand);
4
+ --font-mono: var(--typeface-mono);
5
+ --color-background: var(--background);
6
+ --color-foreground: var(--foreground);
7
+ --color-card: var(--card);
8
+ --color-card-foreground: var(--card-foreground);
9
+ --color-popover: var(--popover);
10
+ --color-popover-foreground: var(--popover-foreground);
11
+ --color-primary: var(--primary);
12
+ --color-primary-foreground: var(--primary-foreground);
13
+ --color-primary-solid: var(--primary-solid);
14
+ --color-primary-solid-foreground: var(--primary-solid-foreground);
15
+ --color-primary-container: var(--primary-container);
16
+ --color-primary-container-foreground: var(--primary-container-foreground);
17
+ --color-secondary: var(--secondary);
18
+ --color-secondary-foreground: var(--secondary-foreground);
19
+ --color-secondary-solid: var(--secondary-solid);
20
+ --color-secondary-solid-foreground: var(--secondary-solid-foreground);
21
+ --color-secondary-container: var(--secondary-container);
22
+ --color-secondary-container-foreground: var(--secondary-container-foreground);
23
+ --color-tertiary: var(--tertiary);
24
+ --color-tertiary-foreground: var(--tertiary-foreground);
25
+ --color-tertiary-solid: var(--tertiary-solid);
26
+ --color-tertiary-solid-foreground: var(--tertiary-solid-foreground);
27
+ --color-tertiary-container: var(--tertiary-container);
28
+ --color-tertiary-container-foreground: var(--tertiary-container-foreground);
29
+ --color-neutral: var(--neutral);
30
+ --color-neutral-foreground: var(--neutral-foreground);
31
+ --color-neutral-solid: var(--neutral-solid);
32
+ --color-neutral-solid-foreground: var(--neutral-solid-foreground);
33
+ --color-neutral-container: var(--neutral-container);
34
+ --color-neutral-container-foreground: var(--neutral-container-foreground);
35
+ --color-muted: var(--muted);
36
+ --color-muted-foreground: var(--muted-foreground);
37
+ --color-accent: var(--accent);
38
+ --color-accent-foreground: var(--accent-foreground);
39
+ --color-destructive: var(--destructive);
40
+ --color-destructive-solid: var(--destructive-solid);
41
+ --color-destructive-solid-foreground: var(--destructive-solid-foreground);
42
+ --color-destructive-container: var(--destructive-container);
43
+ --color-destructive-container-foreground: var(--destructive-container-foreground);
44
+ --color-success: var(--success);
45
+ --color-success-foreground: var(--success-foreground);
46
+ --color-success-solid: var(--success-solid);
47
+ --color-success-solid-foreground: var(--success-solid-foreground);
48
+ --color-success-container: var(--success-container);
49
+ --color-success-container-foreground: var(--success-container-foreground);
50
+ --color-warning: var(--warning);
51
+ --color-warning-foreground: var(--warning-foreground);
52
+ --color-warning-solid: var(--warning-solid);
53
+ --color-warning-solid-foreground: var(--warning-solid-foreground);
54
+ --color-warning-container: var(--warning-container);
55
+ --color-warning-container-foreground: var(--warning-container-foreground);
56
+ --color-info: var(--info);
57
+ --color-info-foreground: var(--info-foreground);
58
+ --color-info-solid: var(--info-solid);
59
+ --color-info-solid-foreground: var(--info-solid-foreground);
60
+ --color-info-container: var(--info-container);
61
+ --color-info-container-foreground: var(--info-container-foreground);
62
+ --color-disabled: var(--disabled);
63
+ --color-disabled-foreground: var(--disabled-foreground);
64
+ --color-disabled-border: var(--disabled-border);
65
+ --color-inverse: var(--inverse);
66
+ --color-inverse-foreground: var(--inverse-foreground);
67
+ --color-inverse-border: var(--inverse-border);
68
+ --color-border: var(--border);
69
+ --color-input: var(--input);
70
+ --color-ring: var(--ring);
71
+ --color-sidebar: var(--sidebar);
72
+ --color-sidebar-foreground: var(--sidebar-foreground);
73
+ --color-sidebar-primary: var(--sidebar-primary);
74
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
75
+ --color-sidebar-accent: var(--sidebar-accent);
76
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
77
+ --color-sidebar-border: var(--sidebar-border);
78
+ --color-sidebar-ring: var(--sidebar-ring);
79
+ --radius-sm: calc(var(--radius) * 0.6);
80
+ --radius-md: calc(var(--radius) * 0.8);
81
+ --radius-lg: var(--radius);
82
+ --radius-xl: calc(var(--radius) * 1.4);
83
+ --radius-2xl: calc(var(--radius) * 1.8);
84
+ --radius-3xl: calc(var(--radius) * 2.2);
85
+ --radius-4xl: calc(var(--radius) * 2.6);
86
+ }
87
+
88
+ /* Keep these radius tokens in :root as well so non-Tailwind consumers get the same values as @theme. */
89
+ :root {
90
+ --typeface-plain:
91
+ ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
92
+ --typeface-brand: var(--typeface-plain);
93
+ --typeface-mono: 'SFMono-Regular', 'Cascadia Mono', 'Liberation Mono', ui-monospace, monospace;
94
+ --radius: 0.75rem;
95
+ --radius-sm: calc(var(--radius) * 0.6);
96
+ --radius-md: calc(var(--radius) * 0.8);
97
+ --radius-lg: var(--radius);
98
+ --radius-xl: calc(var(--radius) * 1.4);
99
+ --radius-2xl: calc(var(--radius) * 1.8);
100
+ --radius-3xl: calc(var(--radius) * 2.2);
101
+ --radius-4xl: calc(var(--radius) * 2.6);
102
+ --shadow-xs: 0 1px 2px rgb(15 23 42 / 0.06);
103
+ --shadow-sm: 0 12px 24px -18px rgb(15 23 42 / 0.18);
104
+ --shadow-md: 0 20px 40px -24px rgb(15 23 42 / 0.22);
105
+ --shadow-lg: 0 32px 60px -32px rgb(15 23 42 / 0.28);
106
+ --backdrop: none;
107
+ --theme-primary: oklch(0.59 0.18 257.5);
108
+ --theme-on-primary: oklch(0.985 0 0);
109
+ --theme-secondary: oklch(0.654 0.137 259.075);
110
+ --theme-on-secondary: oklch(0.205 0.012 285.9);
111
+ --theme-tertiary: oklch(0.72 0.096 260.483);
112
+ --theme-on-tertiary: oklch(0.205 0.012 285.9);
113
+ --theme-neutral: oklch(0.736 0.035 265.705);
114
+ --theme-on-neutral: oklch(0.205 0.012 285.9);
115
+ --layout-shell-max-width: 100%;
116
+ --layout-shell-padding: 0rem;
117
+ --layout-shell-radius: 0rem;
118
+ --layout-sidebar-width: 17rem;
119
+ --layout-header-height: 3.75rem;
120
+ --layout-header-display: grid;
121
+ --layout-sidebar-display: flex;
122
+ --ngt-motion-duration-fast: 140ms;
123
+ --ngt-motion-duration-medium: 220ms;
124
+ --ngt-motion-ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
125
+ --ngt-chrome-transition:
126
+ background-color var(--ngt-motion-duration-medium) var(--ngt-motion-ease-standard),
127
+ color var(--ngt-motion-duration-fast) var(--ngt-motion-ease-standard),
128
+ border-color var(--ngt-motion-duration-medium) var(--ngt-motion-ease-standard),
129
+ box-shadow var(--ngt-motion-duration-medium) var(--ngt-motion-ease-standard),
130
+ outline-color var(--ngt-motion-duration-fast) var(--ngt-motion-ease-standard),
131
+ text-decoration-color var(--ngt-motion-duration-fast) var(--ngt-motion-ease-standard),
132
+ backdrop-filter var(--ngt-motion-duration-medium) var(--ngt-motion-ease-standard);
133
+ --ngt-shell-transition:
134
+ var(--ngt-chrome-transition),
135
+ border-radius var(--ngt-motion-duration-medium) var(--ngt-motion-ease-standard);
136
+ --ngt-control-transition:
137
+ var(--ngt-chrome-transition),
138
+ transform var(--ngt-motion-duration-fast) var(--ngt-motion-ease-standard);
139
+ }
@@ -0,0 +1,87 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --background: oklch(0.988 0.003 286.1);
4
+ --foreground: oklch(0.205 0.012 285.9);
5
+ --card: oklch(0.998 0.001 286.4);
6
+ --card-foreground: var(--foreground);
7
+ --popover: oklch(0.997 0.002 286.5);
8
+ --popover-foreground: var(--foreground);
9
+ --primary-solid: var(--theme-primary);
10
+ --primary-solid-foreground: var(--theme-on-primary);
11
+ --primary-container: color-mix(in oklab, var(--theme-primary) 14%, var(--background));
12
+ --primary-container-foreground: var(--foreground);
13
+ --primary: var(--primary-solid);
14
+ --primary-foreground: var(--primary-solid-foreground);
15
+ --secondary-solid: var(--theme-secondary);
16
+ --secondary-solid-foreground: var(--theme-on-secondary);
17
+ --secondary-container: color-mix(in oklab, var(--theme-secondary) 12%, var(--background));
18
+ --secondary-container-foreground: var(--foreground);
19
+ --secondary: var(--secondary-container);
20
+ --secondary-foreground: var(--secondary-container-foreground);
21
+ --tertiary-solid: var(--theme-tertiary);
22
+ --tertiary-solid-foreground: var(--theme-on-tertiary);
23
+ --tertiary-container: color-mix(in oklab, var(--theme-tertiary) 10%, var(--background));
24
+ --tertiary-container-foreground: var(--foreground);
25
+ --tertiary: var(--tertiary-container);
26
+ --tertiary-foreground: var(--tertiary-container-foreground);
27
+ --neutral-solid: var(--theme-neutral);
28
+ --neutral-solid-foreground: var(--theme-on-neutral);
29
+ --neutral-container: color-mix(in oklab, var(--theme-neutral) 18%, var(--background));
30
+ --neutral-container-foreground: var(--foreground);
31
+ --neutral: var(--neutral-container);
32
+ --neutral-foreground: var(--neutral-container-foreground);
33
+ --muted: oklch(0.965 0.004 286.1);
34
+ --muted-foreground: oklch(0.553 0.013 286.2);
35
+ --accent: var(--tertiary-container);
36
+ --accent-foreground: var(--tertiary-container-foreground);
37
+ --destructive-solid: oklch(0.637 0.237 25.5);
38
+ --destructive-solid-foreground: oklch(0.985 0 0);
39
+ --destructive-container: color-mix(in oklab, var(--destructive-solid) 14%, var(--background));
40
+ --destructive-container-foreground: var(--foreground);
41
+ --destructive: var(--destructive-solid);
42
+ --destructive-foreground: var(--destructive-solid-foreground);
43
+ --success-solid: oklch(0.673 0.152 151.5);
44
+ --success-solid-foreground: oklch(0.192 0.015 151.3);
45
+ --success-container: color-mix(in oklab, var(--success-solid) 14%, var(--background));
46
+ --success-container-foreground: var(--foreground);
47
+ --success: var(--success-container);
48
+ --success-foreground: var(--success-container-foreground);
49
+ --warning-solid: oklch(0.796 0.136 82.4);
50
+ --warning-solid-foreground: oklch(0.262 0.028 73.1);
51
+ --warning-container: color-mix(in oklab, var(--warning-solid) 16%, var(--background));
52
+ --warning-container-foreground: var(--foreground);
53
+ --warning: var(--warning-container);
54
+ --warning-foreground: var(--warning-container-foreground);
55
+ --info-solid: oklch(0.69 0.116 239.4);
56
+ --info-solid-foreground: oklch(0.19 0.014 286.1);
57
+ --info-container: color-mix(in oklab, var(--info-solid) 14%, var(--background));
58
+ --info-container-foreground: var(--foreground);
59
+ --info: var(--info-container);
60
+ --info-foreground: var(--info-container-foreground);
61
+ --disabled: color-mix(in oklab, var(--neutral-solid) 14%, var(--background));
62
+ --disabled-foreground: color-mix(in oklab, var(--foreground) 38%, var(--background));
63
+ --disabled-border: color-mix(in oklab, var(--border) 70%, var(--background));
64
+ --inverse: var(--foreground);
65
+ --inverse-foreground: var(--background);
66
+ --inverse-border: color-mix(in oklab, var(--inverse) 84%, var(--inverse-foreground));
67
+ --border: color-mix(in oklab, var(--foreground) 12%, white 88%);
68
+ --input: color-mix(in oklab, var(--foreground) 10%, white 90%);
69
+ --ring: color-mix(in oklab, var(--primary-solid) 68%, white 32%);
70
+ --sidebar: color-mix(in oklab, var(--card) 90%, var(--muted) 10%);
71
+ --sidebar-foreground: var(--foreground);
72
+ --sidebar-primary: var(--primary);
73
+ --sidebar-primary-foreground: var(--primary-foreground);
74
+ --sidebar-accent: color-mix(in oklab, var(--tertiary-solid) 12%, var(--sidebar));
75
+ --sidebar-accent-foreground: var(--sidebar-foreground);
76
+ --sidebar-border: var(--border);
77
+ --sidebar-ring: var(--ring);
78
+ --shell-surface: var(--card);
79
+ --shell-foreground: var(--card-foreground);
80
+ --shell-border: var(--border);
81
+ --shell-shadow: var(--shadow-xs);
82
+ --shell-backdrop: var(--backdrop);
83
+ --surface-elevated: var(--popover);
84
+ --surface-elevated-foreground: var(--popover-foreground);
85
+ --surface-elevated-border: var(--border);
86
+ --surface-elevated-shadow: var(--shadow-sm);
87
+ }
@@ -0,0 +1,88 @@
1
+ :root {
2
+ font-family: var(--typeface-plain);
3
+ }
4
+
5
+ :where(button, input, textarea, select, optgroup) {
6
+ font-family: var(--typeface-plain);
7
+ }
8
+
9
+ :where(h1, h2, h3, h4, h5, h6) {
10
+ font-family: var(--typeface-brand);
11
+ }
12
+
13
+ :where(code, kbd, pre, samp) {
14
+ font-family: var(--typeface-mono);
15
+ }
16
+
17
+ .style-shell {
18
+ background: var(--container-surface);
19
+ color: var(--container-foreground);
20
+ border: 1px solid var(--container-border);
21
+ box-shadow: var(--container-shadow);
22
+ backdrop-filter: var(--container-backdrop);
23
+ -webkit-backdrop-filter: var(--container-backdrop);
24
+ transition: var(--ngt-shell-transition);
25
+ }
26
+
27
+ .focus-ring:focus-visible {
28
+ outline: 2px solid var(--control-focus-ring);
29
+ outline-offset: 2px;
30
+ transition: outline-color var(--ngt-motion-duration-fast) var(--ngt-motion-ease-standard);
31
+ }
32
+
33
+ .ngt-icon-button {
34
+ transition: var(--ngt-control-transition);
35
+ }
36
+
37
+ @media (prefers-reduced-motion: reduce) {
38
+ :root {
39
+ --ngt-motion-duration-fast: 0.01ms;
40
+ --ngt-motion-duration-medium: 0.01ms;
41
+ }
42
+ }
43
+
44
+ .ngt-icon-button.mat-mdc-icon-button .lucide {
45
+ inline-size: 1.1rem;
46
+ block-size: 1.1rem;
47
+ }
48
+
49
+ /* Compatibility aliases for consumers migrating toward direct Tailwind v4 token usage. */
50
+ .bg-background {
51
+ background-color: var(--background);
52
+ }
53
+
54
+ .bg-foreground {
55
+ background-color: var(--foreground);
56
+ }
57
+
58
+ .text-background {
59
+ color: var(--background);
60
+ }
61
+
62
+ .text-foreground {
63
+ color: var(--foreground);
64
+ }
65
+
66
+ .text-foreground\/50 {
67
+ color: color-mix(in oklab, var(--foreground) 50%, transparent);
68
+ }
69
+
70
+ .text-foreground\/60 {
71
+ color: color-mix(in oklab, var(--foreground) 60%, transparent);
72
+ }
73
+
74
+ .text-foreground\/65 {
75
+ color: color-mix(in oklab, var(--foreground) 65%, transparent);
76
+ }
77
+
78
+ .text-foreground\/70 {
79
+ color: color-mix(in oklab, var(--foreground) 70%, transparent);
80
+ }
81
+
82
+ .text-foreground\/75 {
83
+ color: color-mix(in oklab, var(--foreground) 75%, transparent);
84
+ }
85
+
86
+ .border-border {
87
+ border-color: var(--border);
88
+ }
@@ -0,0 +1,26 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ declare const libraryLucideConfigProvider: _angular_core.Provider;
4
+
5
+ interface StorageLike {
6
+ getItem(key: string): string | null;
7
+ setItem(key: string, value: string): void;
8
+ removeItem(key: string): void;
9
+ }
10
+ interface LocalStorageStateAdapterConfig<Axis extends string> {
11
+ readonly isBrowser: boolean;
12
+ readonly storage: StorageLike | null;
13
+ readonly keys: Record<Axis, string>;
14
+ readonly legacyPrefix: string;
15
+ }
16
+ declare class LocalStorageStateAdapter<Axis extends string> {
17
+ private readonly config;
18
+ constructor(config: LocalStorageStateAdapterConfig<Axis>);
19
+ clear(axis: Axis): void;
20
+ persist(axis: Axis, value: string): void;
21
+ read<T extends string>(axis: Axis, fallback: T, isValid: (value: string) => value is T): T;
22
+ private key;
23
+ private legacyKey;
24
+ }
25
+
26
+ export { LocalStorageStateAdapter, libraryLucideConfigProvider };
@@ -0,0 +1,90 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EnvironmentProviders, InjectionToken } from '@angular/core';
3
+
4
+ declare const LAYOUT_MODES: readonly ["vertical", "horizontal", "empty"];
5
+ type LayoutMode = (typeof LAYOUT_MODES)[number];
6
+ declare const LAYOUT_CONTAINERS: readonly ["full", "boxed"];
7
+ type LayoutContainer = (typeof LAYOUT_CONTAINERS)[number];
8
+ interface NgLayoutConfig {
9
+ defaultMode: LayoutMode;
10
+ defaultContainer: LayoutContainer;
11
+ }
12
+
13
+ declare class LayoutService {
14
+ private readonly config;
15
+ private readonly document;
16
+ private readonly isBrowser;
17
+ private readonly storage;
18
+ readonly mode: i0.WritableSignal<"vertical" | "horizontal" | "empty">;
19
+ readonly container: i0.WritableSignal<"full" | "boxed">;
20
+ constructor();
21
+ /**
22
+ * Updates the active shell mode and persists the value for future sessions.
23
+ */
24
+ setMode(value: LayoutMode): void;
25
+ /**
26
+ * Updates the active container width mode and persists the value for future sessions.
27
+ */
28
+ setContainer(value: LayoutContainer): void;
29
+ /**
30
+ * Clears persisted layout state and restores the configured defaults for mode and container.
31
+ */
32
+ reset(): void;
33
+ private applyToDOM;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutService, never>;
35
+ static ɵprov: i0.ɵɵInjectableDeclaration<LayoutService>;
36
+ }
37
+
38
+ declare class LayoutHostDirective {
39
+ protected readonly layout: LayoutService;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutHostDirective, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LayoutHostDirective, "[ngtLayoutHost]", never, {}, {}, never, never, true, never>;
42
+ }
43
+
44
+ declare class LayoutHorizontalComponent {
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutHorizontalComponent, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutHorizontalComponent, "horizontal", never, {}, {}, never, ["[headerBrand]", "[headerNavigation]", "[headerActions]"], true, never>;
47
+ }
48
+
49
+ declare class LayoutVerticalComponent {
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutVerticalComponent, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutVerticalComponent, "vertical", never, {}, {}, never, ["[navigation]"], true, never>;
52
+ }
53
+
54
+ declare class LayoutContainerSwitcherComponent {
55
+ protected readonly layout: LayoutService;
56
+ protected readonly label: i0.Signal<"Boxed layout container enabled" | "Boxed layout container disabled">;
57
+ protected toggle(): void;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutContainerSwitcherComponent, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutContainerSwitcherComponent, "layout-container-switcher", never, {}, {}, never, never, true, never>;
60
+ }
61
+
62
+ declare class LayoutModeSwitcherComponent {
63
+ protected readonly layout: LayoutService;
64
+ protected readonly options: ({
65
+ value: "vertical";
66
+ label: string;
67
+ } | {
68
+ value: "horizontal";
69
+ label: string;
70
+ })[];
71
+ protected readonly currentOption: i0.Signal<{
72
+ value: "vertical";
73
+ label: string;
74
+ } | {
75
+ value: "horizontal";
76
+ label: string;
77
+ } | {
78
+ value: "empty";
79
+ label: string;
80
+ }>;
81
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutModeSwitcherComponent, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutModeSwitcherComponent, "layout-mode-switcher", never, {}, {}, never, never, true, never>;
83
+ }
84
+
85
+ declare function provideNgLayout(config?: Partial<NgLayoutConfig>): EnvironmentProviders;
86
+
87
+ declare const NG_LAYOUT_CONFIG: InjectionToken<NgLayoutConfig>;
88
+
89
+ export { LayoutContainerSwitcherComponent, LayoutHorizontalComponent, LayoutHostDirective, LayoutModeSwitcherComponent, LayoutService, LayoutVerticalComponent, NG_LAYOUT_CONFIG, provideNgLayout };
90
+ export type { LayoutContainer, LayoutMode, NgLayoutConfig };
@@ -0,0 +1,12 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { NgLayoutConfig } from '@ojiepermana/angular/layout';
3
+ import { NgThemeConfig } from '@ojiepermana/angular/theme/service';
4
+
5
+ interface NgShellConfig {
6
+ readonly theme?: Partial<NgThemeConfig>;
7
+ readonly layout?: Partial<NgLayoutConfig>;
8
+ }
9
+ declare function provideNgShell(config?: NgShellConfig): EnvironmentProviders;
10
+
11
+ export { provideNgShell };
12
+ export type { NgShellConfig };