@ojiepermana/angular 0.1.1 → 21.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/README.md +41 -249
- package/fesm2022/ojiepermana-angular-chart.mjs +3714 -0
- package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-component.mjs +3463 -0
- package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-layout.mjs +276 -408
- package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-navigation.mjs +2198 -404
- package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-theme.mjs +381 -1
- package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular.mjs +15 -1
- package/fesm2022/ojiepermana-angular.mjs.map +1 -1
- package/package.json +49 -36
- package/theme/styles/etos.css +38 -0
- package/theme/styles/index.css +32 -8
- package/theme/styles/themes/brand/etos/color.css +21 -0
- package/theme/styles/themes/brand/etos/style.css +50 -0
- package/theme/styles/themes/library/_components.css +63 -0
- package/theme/styles/themes/library/_layers.css +15 -0
- package/theme/styles/themes/library/_material-overrides.css +254 -0
- package/theme/styles/themes/library/_tokens.css +54 -0
- package/theme/styles/themes/library/color/amber.css +18 -0
- package/theme/styles/themes/library/color/blue.css +23 -0
- package/theme/styles/themes/library/color/green.css +18 -0
- package/theme/styles/themes/library/color/index.css +9 -0
- package/theme/styles/themes/library/color/purple.css +18 -0
- package/theme/styles/themes/library/color/red.css +18 -0
- package/theme/styles/themes/library/style/brutal.css +47 -0
- package/theme/styles/themes/library/style/default.css +51 -0
- package/theme/styles/themes/library/style/index.css +8 -0
- package/theme/styles/themes/library/style/sharp.css +47 -0
- package/theme/styles/themes/library/style/soft.css +47 -0
- package/theme/styles/themes/mode/dark.css +20 -0
- package/theme/styles/themes/mode/index.css +6 -0
- package/theme/styles/themes/mode/light.css +24 -0
- package/theme/styles/themes/taildwind.css +109 -0
- package/types/ojiepermana-angular-chart.d.ts +1094 -0
- package/types/ojiepermana-angular-component.d.ts +1174 -0
- package/types/ojiepermana-angular-layout.d.ts +123 -76
- package/types/ojiepermana-angular-navigation.d.ts +256 -116
- package/types/ojiepermana-angular-theme.d.ts +170 -1
- package/types/ojiepermana-angular.d.ts +2 -1
- package/fesm2022/ojiepermana-angular-internal.mjs +0 -489
- package/fesm2022/ojiepermana-angular-internal.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs +0 -721
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs +0 -1647
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-shell.mjs +0 -19
- package/fesm2022/ojiepermana-angular-shell.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-component.mjs +0 -235
- package/fesm2022/ojiepermana-angular-theme-component.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-directive.mjs +0 -29
- package/fesm2022/ojiepermana-angular-theme-directive.mjs.map +0 -1
- package/fesm2022/ojiepermana-angular-theme-service.mjs +0 -241
- package/fesm2022/ojiepermana-angular-theme-service.mjs.map +0 -1
- package/layout/README.md +0 -144
- package/layout/src/component/horizontal/horizontal.css +0 -130
- package/layout/src/component/vertical/vertical.css +0 -75
- package/layout/src/layout.css +0 -16
- package/navigation/README.md +0 -301
- package/navigation/horizontal/README.md +0 -49
- package/shell/README.md +0 -41
- package/styles/index.css +0 -2
- package/styles/resets.css +0 -22
- package/theme/README.md +0 -379
- package/theme/styles/adapters/material-ui/index.css +0 -205
- package/theme/styles/modes/dark.css +0 -84
- package/theme/styles/presets/colors/blue.css +0 -45
- package/theme/styles/presets/colors/brand.css +0 -52
- package/theme/styles/presets/colors/cyan.css +0 -45
- package/theme/styles/presets/colors/green.css +0 -45
- package/theme/styles/presets/colors/index.css +0 -7
- package/theme/styles/presets/colors/orange.css +0 -45
- package/theme/styles/presets/colors/purple.css +0 -45
- package/theme/styles/presets/colors/red.css +0 -45
- package/theme/styles/presets/styles/flat.css +0 -61
- package/theme/styles/presets/styles/glass.css +0 -28
- package/theme/styles/presets/styles/index.css +0 -2
- package/theme/styles/roles/index.css +0 -67
- package/theme/styles/tokens/foundation.css +0 -136
- package/theme/styles/tokens/semantic.css +0 -87
- package/theme/styles/utilities/index.css +0 -88
- package/types/ojiepermana-angular-internal.d.ts +0 -90
- package/types/ojiepermana-angular-navigation-horizontal.d.ts +0 -81
- package/types/ojiepermana-angular-navigation-vertical.d.ts +0 -262
- package/types/ojiepermana-angular-shell.d.ts +0 -14
- package/types/ojiepermana-angular-theme-component.d.ts +0 -46
- package/types/ojiepermana-angular-theme-directive.d.ts +0 -10
- package/types/ojiepermana-angular-theme-service.d.ts +0 -68
- /package/{navigation/vertical → chart}/README.md +0 -0
package/navigation/README.md
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
# Navigation
|
|
2
|
-
|
|
3
|
-
Navigation for `@ojiepermana/angular` is split into three secondary entry points so consumers can import only the state helpers or component variants they need.
|
|
4
|
-
|
|
5
|
-
## Entry Points
|
|
6
|
-
|
|
7
|
-
- `@ojiepermana/angular/navigation` exposes the navigation item model, utility helpers, `NavigationService`, and `NavigationPreferencesService`.
|
|
8
|
-
- `@ojiepermana/angular/navigation/vertical` exposes the vertical navigation container variants and vertical item components.
|
|
9
|
-
- `@ojiepermana/angular/navigation/horizontal` exposes the horizontal navigation variants and branch item component.
|
|
10
|
-
|
|
11
|
-
Do not import consumer code from `@ojiepermana/angular/internal` or from source file paths under this folder. Those paths are implementation details and are not part of the public contract.
|
|
12
|
-
|
|
13
|
-
## Requirements
|
|
14
|
-
|
|
15
|
-
- Configure Angular Router before rendering the navigation components.
|
|
16
|
-
- Import `@ojiepermana/angular/styles/index.css` in the consuming application so the shared theme tokens are available.
|
|
17
|
-
- Use Lucide icon names or aliases in `NavigationItem.icon`. The navigation components resolve icons through `@lucide/angular`.
|
|
18
|
-
|
|
19
|
-
## Source Layout
|
|
20
|
-
|
|
21
|
-
```text
|
|
22
|
-
navigation/
|
|
23
|
-
├── data/
|
|
24
|
-
│ └── demo-navigation.data.ts
|
|
25
|
-
├── state/
|
|
26
|
-
│ ├── navigation.service.ts
|
|
27
|
-
│ ├── navigation.type.ts
|
|
28
|
-
│ └── navigation.utils.ts
|
|
29
|
-
├── horizontal/
|
|
30
|
-
│ ├── core/
|
|
31
|
-
│ │ ├── horizontal-navigation.base.ts
|
|
32
|
-
│ │ └── horizontal-navigation.shared.ts
|
|
33
|
-
│ ├── default/
|
|
34
|
-
│ │ ├── default.ts
|
|
35
|
-
│ │ ├── default.css
|
|
36
|
-
│ │ └── README.md
|
|
37
|
-
│ ├── mega/
|
|
38
|
-
│ │ ├── mega.ts
|
|
39
|
-
│ │ ├── mega.css
|
|
40
|
-
│ │ └── README.md
|
|
41
|
-
│ └── types/
|
|
42
|
-
│ ├── index.ts
|
|
43
|
-
│ ├── branch.ts
|
|
44
|
-
│ └── branch/
|
|
45
|
-
│ ├── branch.ts
|
|
46
|
-
│ └── README.md
|
|
47
|
-
├── shared/
|
|
48
|
-
│ ├── content/
|
|
49
|
-
│ └── tree/
|
|
50
|
-
└── vertical/
|
|
51
|
-
├── core/
|
|
52
|
-
│ ├── vertical-navigation.base.ts
|
|
53
|
-
│ └── vertical-navigation.shared.ts
|
|
54
|
-
├── default/
|
|
55
|
-
│ ├── default.ts
|
|
56
|
-
│ └── default.css
|
|
57
|
-
├── collapsible/
|
|
58
|
-
│ └── collapsible.ts
|
|
59
|
-
└── types/
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Quick Start
|
|
63
|
-
|
|
64
|
-
### 1. Define a navigation tree
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
import { NavigationItem } from '@ojiepermana/angular/navigation';
|
|
68
|
-
|
|
69
|
-
export const appNavigation = [
|
|
70
|
-
{
|
|
71
|
-
id: 'dashboard',
|
|
72
|
-
title: 'Dashboard',
|
|
73
|
-
type: 'basic',
|
|
74
|
-
icon: 'layout-dashboard',
|
|
75
|
-
link: '/dashboard',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'workspace',
|
|
79
|
-
title: 'Workspace',
|
|
80
|
-
type: 'collapsable',
|
|
81
|
-
icon: 'folders',
|
|
82
|
-
children: [
|
|
83
|
-
{
|
|
84
|
-
id: 'workspace-overview',
|
|
85
|
-
title: 'Overview',
|
|
86
|
-
type: 'basic',
|
|
87
|
-
link: '/workspace/overview',
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
id: 'workspace-settings',
|
|
91
|
-
title: 'Settings',
|
|
92
|
-
type: 'basic',
|
|
93
|
-
link: '/workspace/settings',
|
|
94
|
-
badge: {
|
|
95
|
-
title: 'Beta',
|
|
96
|
-
classes: 'bg-primary text-primary-foreground',
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
},
|
|
101
|
-
] satisfies NavigationItem[];
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### 2. Render a vertical navigation
|
|
105
|
-
|
|
106
|
-
```ts
|
|
107
|
-
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
|
|
108
|
-
import { NavigationItem } from '@ojiepermana/angular/navigation';
|
|
109
|
-
import { VerticalNavigationDefaultComponent } from '@ojiepermana/angular/navigation/vertical';
|
|
110
|
-
|
|
111
|
-
import { appNavigation } from './app.navigation';
|
|
112
|
-
|
|
113
|
-
@Component({
|
|
114
|
-
selector: 'app-shell-navigation',
|
|
115
|
-
imports: [VerticalNavigationDefaultComponent],
|
|
116
|
-
template: `
|
|
117
|
-
<vertical-navigation [navigation]="navigation()" [opened]="true" mode="side" position="left"></vertical-navigation>
|
|
118
|
-
`,
|
|
119
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
120
|
-
})
|
|
121
|
-
export class ShellNavigationComponent {
|
|
122
|
-
readonly navigation = signal<NavigationItem[]>(appNavigation);
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Vertical variants use these selectors:
|
|
127
|
-
|
|
128
|
-
- `<vertical-navigation>` for the default width and density.
|
|
129
|
-
- `<vertical-navigation-collapsible>` for the upcoming collapsible variant contract. It currently reuses the default layout.
|
|
130
|
-
|
|
131
|
-
All vertical variants share the same public API surface inherited from the base component, including `navigation`, `opened`, `mode`, `position`, `autoCollapse`, `inner`, `transparentOverlay`, and the `openedChanged` output.
|
|
132
|
-
|
|
133
|
-
### 3. Render a horizontal navigation
|
|
134
|
-
|
|
135
|
-
```ts
|
|
136
|
-
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
|
|
137
|
-
import { NavigationItem } from '@ojiepermana/angular/navigation';
|
|
138
|
-
import { HorizontalNavigation } from '@ojiepermana/angular/navigation/horizontal';
|
|
139
|
-
|
|
140
|
-
import { appNavigation } from './app.navigation';
|
|
141
|
-
|
|
142
|
-
@Component({
|
|
143
|
-
selector: 'app-top-navigation',
|
|
144
|
-
imports: [HorizontalNavigation],
|
|
145
|
-
template: `
|
|
146
|
-
<horizontal-navigation [navigation]="navigation()" (itemClicked)="onItemClicked($event)"></horizontal-navigation>
|
|
147
|
-
`,
|
|
148
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
|
-
})
|
|
150
|
-
export class TopNavigationComponent {
|
|
151
|
-
readonly navigation = signal<NavigationItem[]>(appNavigation);
|
|
152
|
-
|
|
153
|
-
onItemClicked(item: NavigationItem): void {
|
|
154
|
-
console.log('Navigation item clicked:', item.id);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
Horizontal variants use these selectors:
|
|
160
|
-
|
|
161
|
-
- `<horizontal-navigation>` for the default horizontal layout.
|
|
162
|
-
- `<horizontal-navigation-mega>` for a roomier mega-style horizontal layout.
|
|
163
|
-
|
|
164
|
-
### 4. Optionally mirror the tree into `NavigationService`
|
|
165
|
-
|
|
166
|
-
`NavigationService` is useful when other parts of the application need lookup helpers, active item state, or expanded item state. Vertical navigation renders from its `navigation` input. Horizontal navigation renders from its `navigation` input first, and falls back to the service only when the input array is empty.
|
|
167
|
-
|
|
168
|
-
```ts
|
|
169
|
-
import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
|
|
170
|
-
import { NavigationItem, NavigationService } from '@ojiepermana/angular/navigation';
|
|
171
|
-
|
|
172
|
-
import { appNavigation } from './app.navigation';
|
|
173
|
-
|
|
174
|
-
@Component({
|
|
175
|
-
selector: 'app-navigation-store',
|
|
176
|
-
template: '',
|
|
177
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
178
|
-
})
|
|
179
|
-
export class NavigationStoreComponent {
|
|
180
|
-
private readonly navigationService = inject(NavigationService);
|
|
181
|
-
readonly navigation = signal<NavigationItem[]>(appNavigation);
|
|
182
|
-
|
|
183
|
-
ngOnInit(): void {
|
|
184
|
-
this.navigationService.storeNavigation(this.navigation());
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Navigation Item Model
|
|
190
|
-
|
|
191
|
-
Every tree node is a `NavigationItem`. The public union is split across these item types:
|
|
192
|
-
|
|
193
|
-
- `basic` is a leaf item that can route, open an external link, or run an `action` callback.
|
|
194
|
-
- `aside` is a routable branch rendered through the vertical aside panel pattern.
|
|
195
|
-
- `collapsable` is a branch that expands and collapses inline.
|
|
196
|
-
- `group` is a non-routable section label with children.
|
|
197
|
-
- `divider` renders a visual separator.
|
|
198
|
-
- `spacer` renders flexible empty space.
|
|
199
|
-
|
|
200
|
-
Shared fields available on most item types:
|
|
201
|
-
|
|
202
|
-
- `id`, `title`, `subtitle`, `tooltip`, `icon`, `disabled`, and `meta`.
|
|
203
|
-
- `classes.wrapper`, `classes.icon`, `classes.title`, and `classes.subtitle` for per-item styling hooks.
|
|
204
|
-
- `badge.title` and `badge.classes` for optional item badges.
|
|
205
|
-
- `isHidden` for conditional visibility.
|
|
206
|
-
|
|
207
|
-
Routable item fields available on `basic`, `aside`, and `collapsable`:
|
|
208
|
-
|
|
209
|
-
- `link`, `fragment`, `preserveFragment`, `queryParams`, and `queryParamsHandling`.
|
|
210
|
-
- `externalLink` and `target` for external navigation.
|
|
211
|
-
- `exactMatch` and `isActiveMatchOptions` for route activity matching.
|
|
212
|
-
- `action` for click callbacks.
|
|
213
|
-
|
|
214
|
-
## Navigation Service
|
|
215
|
-
|
|
216
|
-
`NavigationService` is provided in root and exposes navigation state as signals plus a small lookup API.
|
|
217
|
-
|
|
218
|
-
Readonly state:
|
|
219
|
-
|
|
220
|
-
- `navigationItems`
|
|
221
|
-
- `activeItemId`
|
|
222
|
-
- `flatNavigation`
|
|
223
|
-
- `expandedItemIds`
|
|
224
|
-
|
|
225
|
-
Mutation and lookup methods:
|
|
226
|
-
|
|
227
|
-
- `storeNavigation()` and `deleteNavigation()`
|
|
228
|
-
- `setActiveItem()` and `clearActiveItem()`
|
|
229
|
-
- `expandItem()`, `collapseItem()`, `toggleItemExpanded()`, and `clearExpandedItems()`
|
|
230
|
-
- `getNavigation()`, `getActiveItem()`, `getFlatNavigation()`, `getItem()`, and `getItemParent()`
|
|
231
|
-
|
|
232
|
-
`activeItemId` and `expandedItemIds` now persist automatically through `NavigationPreferencesService`, while `NavigationService` stays focused on the navigation tree and lookup helpers.
|
|
233
|
-
|
|
234
|
-
## Navigation Preferences Service
|
|
235
|
-
|
|
236
|
-
`NavigationPreferencesService` is provided in root and stores persisted navigation preferences separately from the navigation tree itself.
|
|
237
|
-
|
|
238
|
-
`provideNgNavigation()` configures the defaults that are used before any persisted browser state exists.
|
|
239
|
-
|
|
240
|
-
Readonly state:
|
|
241
|
-
|
|
242
|
-
- `horizontalVariant`
|
|
243
|
-
- `verticalAppearance`
|
|
244
|
-
- `activeItemId`
|
|
245
|
-
- `expandedItemIds`
|
|
246
|
-
|
|
247
|
-
Mutation methods:
|
|
248
|
-
|
|
249
|
-
- `setHorizontalVariant()`
|
|
250
|
-
- `setVerticalAppearance()`
|
|
251
|
-
- `setActiveItem()` and `clearActiveItem()`
|
|
252
|
-
- `setExpandedItemIds()`, `expandItem()`, `collapseItem()`, `toggleExpandedItem()`, and `clearExpandedItems()`
|
|
253
|
-
- `syncWithNavigation()` and `reset()`
|
|
254
|
-
|
|
255
|
-
Persisted flat localStorage keys:
|
|
256
|
-
|
|
257
|
-
- `navigation-horizontal-variant`
|
|
258
|
-
- `navigation-vertical-appearance`
|
|
259
|
-
- `navigation-active-item`
|
|
260
|
-
- `navigation-expanded-items`
|
|
261
|
-
|
|
262
|
-
Legacy `ng-navigation:v1:vertical-appearance`, `ng-navigation:v1:active-item`, and `ng-navigation:v1:expanded-items` entries migrate automatically when they are read.
|
|
263
|
-
|
|
264
|
-
Use `horizontalVariant()` to choose which horizontal variant component to render in the consumer app, and `verticalAppearance()` to choose which vertical variant component to render.
|
|
265
|
-
|
|
266
|
-
Default provider config fields:
|
|
267
|
-
|
|
268
|
-
- `defaultHorizontalVariant`
|
|
269
|
-
- `defaultVerticalVariant`
|
|
270
|
-
|
|
271
|
-
## Styling Notes
|
|
272
|
-
|
|
273
|
-
- Pass Tailwind utility classes or other class names through the item `classes` and `badge.classes` fields when you need local visual overrides.
|
|
274
|
-
- Icons are resolved from Lucide. Use names such as `layout-dashboard`, `folders`, `settings-2`, or valid Lucide aliases.
|
|
275
|
-
- Active state depends on Angular Router. Use `exactMatch` or `isActiveMatchOptions` when the default subset matching is too broad.
|
|
276
|
-
|
|
277
|
-
## Troubleshooting
|
|
278
|
-
|
|
279
|
-
### Nothing renders
|
|
280
|
-
|
|
281
|
-
- Confirm the component receives a non-empty `navigation` input.
|
|
282
|
-
- If a horizontal navigation intentionally relies on service fallback, call `NavigationService.storeNavigation()` before it renders.
|
|
283
|
-
- Check whether `isHidden` returns `true` for the affected items.
|
|
284
|
-
|
|
285
|
-
### Icons do not appear
|
|
286
|
-
|
|
287
|
-
- Use Lucide icon names or aliases, not Material icon names.
|
|
288
|
-
- Check the `icon` value on the affected item.
|
|
289
|
-
|
|
290
|
-
### Active state is wrong
|
|
291
|
-
|
|
292
|
-
- Verify Router is configured and the application uses the expected route paths.
|
|
293
|
-
- Tune `exactMatch` or `isActiveMatchOptions` for the affected items.
|
|
294
|
-
|
|
295
|
-
## Notes For Contributors
|
|
296
|
-
|
|
297
|
-
- Keep `@ojiepermana/angular/navigation` focused on the item model, helpers, and `NavigationService`.
|
|
298
|
-
- Keep navigation persistence and UI preferences in `NavigationPreferencesService` instead of storing the full navigation tree in browser storage.
|
|
299
|
-
- Keep render components in `@ojiepermana/angular/navigation/vertical` and `@ojiepermana/angular/navigation/horizontal`.
|
|
300
|
-
- Move shared implementation helpers behind `@ojiepermana/angular/internal` instead of reaching across entry point boundaries with relative imports.
|
|
301
|
-
- Treat `projects/library/navigation/shared` as a local compatibility layer for tests and source organization, not as consumer API.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Horizontal Navigation
|
|
2
|
-
|
|
3
|
-
The horizontal entrypoint exposes shared top-bar navigation variants for `@ojiepermana/angular`.
|
|
4
|
-
|
|
5
|
-
## Public Imports
|
|
6
|
-
|
|
7
|
-
```ts
|
|
8
|
-
import { HorizontalNavigation, HorizontalNavigationMegaComponent } from '@ojiepermana/angular/navigation/horizontal';
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Variants
|
|
12
|
-
|
|
13
|
-
- `HorizontalNavigation` renders the default selector `<horizontal-navigation>`.
|
|
14
|
-
- `HorizontalNavigationMegaComponent` renders the mega selector `<horizontal-navigation-mega>`.
|
|
15
|
-
|
|
16
|
-
## Source Layout
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
horizontal/
|
|
20
|
-
├── core/
|
|
21
|
-
│ ├── horizontal-navigation.base.ts
|
|
22
|
-
│ └── horizontal-navigation.shared.ts
|
|
23
|
-
├── default/
|
|
24
|
-
│ ├── default.ts
|
|
25
|
-
│ ├── default.css
|
|
26
|
-
│ └── README.md
|
|
27
|
-
├── mega/
|
|
28
|
-
│ ├── mega.ts
|
|
29
|
-
│ ├── mega.css
|
|
30
|
-
│ └── README.md
|
|
31
|
-
├── types/
|
|
32
|
-
│ ├── index.ts
|
|
33
|
-
│ ├── README.md
|
|
34
|
-
│ ├── branch.ts
|
|
35
|
-
│ └── branch/
|
|
36
|
-
│ ├── branch.ts
|
|
37
|
-
│ └── README.md
|
|
38
|
-
├── horizontal.ts
|
|
39
|
-
├── index.ts
|
|
40
|
-
├── ng-package.json
|
|
41
|
-
└── public-api.ts
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Notes
|
|
45
|
-
|
|
46
|
-
- `core/` contains variant-agnostic logic and template composition.
|
|
47
|
-
- `default/` and `mega/` contain variant-specific components and styles.
|
|
48
|
-
- `types/` contains reusable branch rendering primitives shared by all horizontal variants.
|
|
49
|
-
- `horizontal.ts` remains a compatibility barrel that points to the default variant implementation.
|
package/shell/README.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Shell Provider
|
|
2
|
-
|
|
3
|
-
Convenience provider helpers for `@ojiepermana/angular` applications.
|
|
4
|
-
|
|
5
|
-
Import from:
|
|
6
|
-
|
|
7
|
-
- `@ojiepermana/angular/shell`
|
|
8
|
-
|
|
9
|
-
## Public API
|
|
10
|
-
|
|
11
|
-
- `provideNgShell`
|
|
12
|
-
- `NgShellConfig`
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
```ts
|
|
17
|
-
import { ApplicationConfig } from '@angular/core';
|
|
18
|
-
import { provideNgShell } from '@ojiepermana/angular/shell';
|
|
19
|
-
|
|
20
|
-
export const appConfig: ApplicationConfig = {
|
|
21
|
-
providers: [
|
|
22
|
-
provideNgShell({
|
|
23
|
-
theme: {
|
|
24
|
-
defaultScheme: 'system',
|
|
25
|
-
defaultColor: 'brand',
|
|
26
|
-
defaultStyle: 'flat',
|
|
27
|
-
},
|
|
28
|
-
layout: {
|
|
29
|
-
defaultMode: 'vertical',
|
|
30
|
-
defaultContainer: 'boxed',
|
|
31
|
-
},
|
|
32
|
-
navigation: {
|
|
33
|
-
defaultHorizontalVariant: 'default',
|
|
34
|
-
defaultVerticalVariant: 'default',
|
|
35
|
-
},
|
|
36
|
-
}),
|
|
37
|
-
],
|
|
38
|
-
};
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
`provideNgShell()` is a convenience wrapper over `provideNgTheme()`, `provideNgLayout()`, and `provideNgNavigation()`. It does not introduce a separate runtime state layer.
|
package/styles/index.css
DELETED
package/styles/resets.css
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* Optional application-level resets. Not imported by the default library bundle. */
|
|
2
|
-
|
|
3
|
-
*,
|
|
4
|
-
*::before,
|
|
5
|
-
*::after {
|
|
6
|
-
box-sizing: border-box;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
html,
|
|
10
|
-
body {
|
|
11
|
-
min-block-size: 100%;
|
|
12
|
-
background: var(--background);
|
|
13
|
-
color: var(--foreground);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
body {
|
|
17
|
-
margin: 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
a {
|
|
21
|
-
color: inherit;
|
|
22
|
-
}
|