@ngbase/adk 0.1.5 → 0.1.7

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 (73) hide show
  1. package/breadcrumb/breadcrumb-separator.d.ts +1 -5
  2. package/breadcrumb/breadcrumb.d.ts +1 -0
  3. package/breadcrumb/breadcrumbs.d.ts +3 -1
  4. package/breadcrumb/public-api.d.ts +1 -1
  5. package/fesm2022/ngbase-adk-breadcrumb.mjs +32 -34
  6. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/ngbase-adk-table.mjs +4 -7
  8. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  9. package/package.json +13 -13
  10. package/schematics/components/files/accordion/accordion-llm.md.template +35 -0
  11. package/schematics/components/files/alert/alert-llm.md.template +34 -0
  12. package/schematics/components/files/autocomplete/autocomplete-llm.md.template +76 -0
  13. package/schematics/components/files/avatar/avatar-llm.md.template +37 -0
  14. package/schematics/components/files/avatar/avatar.ts.template +5 -2
  15. package/schematics/components/files/badge/badge-llm.md.template +21 -0
  16. package/schematics/components/files/badge/badge.ts.template +6 -3
  17. package/schematics/components/files/breadcrumb/breadcrumb-llm.md.template +26 -0
  18. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +9 -18
  19. package/schematics/components/files/button/button-llm.md.template +22 -0
  20. package/schematics/components/files/button/button.ts.template +3 -1
  21. package/schematics/components/files/card/card-llm.md.template +16 -0
  22. package/schematics/components/files/carousel/carousel-llm.md.template +38 -0
  23. package/schematics/components/files/checkbox/checkbox-llm.md.template +27 -0
  24. package/schematics/components/files/chip/chip-llm.md.template +29 -0
  25. package/schematics/components/files/color-picker/color-picker-llm.md.template +27 -0
  26. package/schematics/components/files/command/command.ts.template +2 -3
  27. package/schematics/components/files/datepicker/datepicker-llm.md.template +43 -0
  28. package/schematics/components/files/datepicker/datepicker.ts.template +3 -3
  29. package/schematics/components/files/datepicker/time.ts.template +3 -3
  30. package/schematics/components/files/dialog/dialog-llm.md.template +69 -0
  31. package/schematics/components/files/drawer/drawer-llm.md.template +54 -0
  32. package/schematics/components/files/drawer/drawer.ts.template +1 -1
  33. package/schematics/components/files/form-field/form-field-llm.md.template +56 -0
  34. package/schematics/components/files/form-field/form-field.ts.template +1 -1
  35. package/schematics/components/files/hover-card/hover-card-llm.md.template +26 -0
  36. package/schematics/components/files/icon/icon-llm.md.template +19 -0
  37. package/schematics/components/files/inline-edit/inline-edit-llm.md.template +22 -0
  38. package/schematics/components/files/list/list-llm.md.template +23 -0
  39. package/schematics/components/files/mask/mask-llm.md.template +19 -0
  40. package/schematics/components/files/menu/context-menu-llm.md.template +28 -0
  41. package/schematics/components/files/menu/menu-llm.md.template +37 -0
  42. package/schematics/components/files/menu/menu.ts.template +7 -1
  43. package/schematics/components/files/otp/otp-llm.md.template +21 -0
  44. package/schematics/components/files/pagination/pagination-llm.md.template +29 -0
  45. package/schematics/components/files/popover/popover-llm.md.template +59 -0
  46. package/schematics/components/files/progress/progress-llm.md.template +19 -0
  47. package/schematics/components/files/radio/radio-llm.md.template +36 -0
  48. package/schematics/components/files/radio/radio.ts.template +1 -1
  49. package/schematics/components/files/resizable/resizable-llm.md.template +31 -0
  50. package/schematics/components/files/select/select-llm.md.template +87 -0
  51. package/schematics/components/files/select/select.ts.template +4 -1
  52. package/schematics/components/files/selectable/selectable-llm.md.template +31 -0
  53. package/schematics/components/files/sheet/sheet-llm.md.template +54 -0
  54. package/schematics/components/files/sidenav/sidenav-llm.md.template +37 -0
  55. package/schematics/components/files/skeleton/skeleton-llm.md.template +22 -0
  56. package/schematics/components/files/slider/slider-llm.md.template +35 -0
  57. package/schematics/components/files/sonner/sonner-llm.md.template +34 -0
  58. package/schematics/components/files/spinner/spinner-llm.md.template +29 -0
  59. package/schematics/components/files/stepper/stepper-llm.md.template +32 -0
  60. package/schematics/components/files/switch/switch-llm.md.template +23 -0
  61. package/schematics/components/files/table/table-llm.md.template +31 -0
  62. package/schematics/components/files/tabs/tab.ts.template +1 -1
  63. package/schematics/components/files/tabs/tabs-llm.md.template +48 -0
  64. package/schematics/components/files/theme/index.ts.template +1 -1
  65. package/schematics/components/files/theme/theme-button.ts.template +27 -0
  66. package/schematics/components/files/theme/theme-llm.md.template +23 -0
  67. package/schematics/components/files/theme/theme.service.ts.template +1 -3
  68. package/schematics/components/files/toggle/toggle-llm.md.template +19 -0
  69. package/schematics/components/files/toggle-group/toggle-group-llm.md.template +32 -0
  70. package/schematics/components/files/tooltip/tooltip-llm.md.template +37 -0
  71. package/schematics/components/files/tooltip/tooltip.ts.template +1 -5
  72. package/schematics/components/files/tree/tree.ts.template +1 -1
  73. package/schematics/components/schema.json +2 -0
@@ -0,0 +1,32 @@
1
+ # Stepper
2
+
3
+ ```typescript
4
+ import { Stepper, Step, StepHeader } from '@/ui/stepper';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<%= name %>-stepper`
10
+
11
+ - **Inputs**
12
+ - `activeIndex`: number = 0 - The index of the active step (2way)
13
+ - `direction`: 'horizontal' | 'vertical' = 'horizontal' - The direction of the stepper
14
+ - **Export** - `<%= name %>Stepper` - Template reference
15
+
16
+ ### `<%= name %>-step`
17
+
18
+ - **Inputs**
19
+ - `title`: string - The title of the step
20
+ - **Export** - `<%= name %>Step` - Template reference
21
+
22
+ ### `[<%= name %>StepHeader]`
23
+
24
+ ## Usage
25
+
26
+ ```html
27
+ <<%= name %>-stepper [(activeIndex)]="activeIndex" [direction]="direction()">
28
+ <<%= name %>-step title="Step 1"> Step 1 </<%= name %>-step>
29
+ <<%= name %>-step title="Step 2"> Step 2 </<%= name %>-step>
30
+ <<%= name %>-step title="Step 3"> Step 3 </<%= name %>-step>
31
+ </<%= name %>-stepper>
32
+ ```
@@ -0,0 +1,23 @@
1
+ # Switch
2
+
3
+ ```typescript
4
+ import { Switch } from '@/ui/switch';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<%= name %>-switch`
10
+
11
+ - **Inputs**
12
+ - `checked`: boolean = false - Whether the switch is checked (2way)
13
+ - `disabled`: boolean = false - Whether the switch is disabled
14
+ - **Outputs**
15
+ - `checkedChange`: EventEmitter<boolean> - Emits the checked value when it changes
16
+ - `change`: EventEmitter<boolean> - Emits the checked value when it changes
17
+ - **Export** - `<%= name %>Switch` - Template reference
18
+
19
+ ## Usage
20
+
21
+ ```html
22
+ <<%= name %>-switch [(checked)]="checked" [disabled]="disabled()"></<%= name %>-switch>
23
+ ```
@@ -0,0 +1,31 @@
1
+ # Table
2
+
3
+ ```typescript
4
+ import { TableComponents } from '@/ui/table';
5
+ ```
6
+
7
+ ### `<%= name %>Table`
8
+
9
+ - **inputs**
10
+
11
+ - `data`: `T[]`
12
+ - `trackBy`: `(index: number, item: T) => string`
13
+
14
+ - **Exports** - `<%= name %>Table`
15
+
16
+ ## Usage
17
+
18
+ ```html
19
+ <table <%= name %>Table [data]="data" [trackBy]="trackBy">
20
+ <ng-container <%= name %>Column="name">
21
+ <th <%= name %>Head *<%= name %>HeadDef>Name</th>
22
+ <td <%= name %>Cell *<%= name %>CellDef="let row">{{row.name}}</td>
23
+ </ng-container>
24
+ <ng-container <%= name %>Column="age">
25
+ <th <%= name %>Head *<%= name %>HeadDef>Age</th>
26
+ <td <%= name %>Cell *<%= name %>CellDef="let row">{{row.age}}</td>
27
+ </ng-container>
28
+ <tr <%= name %>HeadRow *<%= name %>HeadRowDef="columns()"></tr>
29
+ <tr <%= name %>BodyRow *<%= name %>BodyRowDef="let row; columns: columns()"></tr>
30
+ </table>
31
+ ```
@@ -36,7 +36,7 @@ import {
36
36
  @for (tab of tabs(); track tab.id) {
37
37
  <button
38
38
  [ngbTabButton]="tab"
39
- class="text-muted-foreground aria-[disabled=true]:text-muted-foreground whitespace-nowrap border-b-2 border-transparent px-4 py-3 font-medium aria-[disabled=true]:cursor-not-allowed aria-[selected=true]:!border-primary aria-[selected=true]:!text-primary aria-[disabled=true]:opacity-50"
39
+ class="whitespace-nowrap border-b-2 border-transparent px-4 py-3 font-medium text-muted-foreground aria-[disabled=true]:cursor-not-allowed aria-[selected=true]:!border-primary aria-[disabled=true]:text-muted-foreground aria-[selected=true]:!text-primary aria-[disabled=true]:opacity-50"
40
40
  ></button>
41
41
  }
42
42
  </div>
@@ -0,0 +1,48 @@
1
+ ## Tabs
2
+
3
+ ```typescript
4
+ import { Tabs, Tab, TabHeader, TabLazy } from '@/ui/tabs';
5
+ ```
6
+
7
+ ### `<%= name %>-tabs`
8
+
9
+ - **inputs**
10
+
11
+ - `selectedIndex`: number (2way)
12
+
13
+ - **outputs**
14
+ - `selectedTabChange`: `EventEmitter<TabChangeEvent>`
15
+
16
+ ### `<%= name %>-tab`
17
+
18
+ - **inputs**
19
+
20
+ - `label`: string
21
+ - `disabled`: boolean
22
+ - `mode`: 'hidden' | 'lazy'
23
+ - `value`: string | number
24
+
25
+ - **exports** - `<%= name %>Tab`
26
+
27
+ ### `<%= name %>-tab-header`
28
+
29
+ - **exports** - `<%= name %>TabHeader`
30
+
31
+ ### `<%= name %>-tab-lazy`
32
+
33
+ Use it to render the tab every time user visit the tab
34
+
35
+ - **exports** - `<%= name %>TabLazy`
36
+
37
+ ## Usage
38
+
39
+ ```html
40
+ <<%= name %>-tabs [(selectedIndex)]="selectedIndex">
41
+ <<%= name %>-tab label="Tab 1">Tab 1 Content</<%= name %>-tab>
42
+ <<%= name %>-tab>
43
+ <h4 *<%= name %>TabHeader>Tab 2</h4>
44
+ Tab 2 Content
45
+ </<%= name %>-tab>
46
+ <<%= name %>-tab *<%= name %>TabLazy="let tab"> Tab 3 </<%= name %>-tab>
47
+ </<%= name %>-tabs>
48
+ ```
@@ -1,2 +1,2 @@
1
1
  export { injectTheme } from './theme.service';
2
- export { ThemeButton } from './theme-button.component';
2
+ export { ThemeButton } from './theme-button';
@@ -0,0 +1,27 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { Button } from '<%= basepath %>/button';
3
+ import { Icon } from '<%= basepath %>/icon';
4
+ import { provideIcons } from '@ng-icons/core';
5
+ import { lucideMoon, lucideSun } from '@ng-icons/lucide';
6
+ import { injectTheme } from './theme.service';
7
+ // import { keyMap } from '@ngbase/adk/keys';
8
+
9
+ @Component({
10
+ selector: '<%= name %>-theme-button',
11
+ imports: [Icon, Button],
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
13
+ viewProviders: [provideIcons({ lucideMoon, lucideSun })],
14
+ template: `
15
+ <button <%= name %>Button="icon" class="tour-mode h-9 w-9" (click)="themeService.toggle()">
16
+ <<%= name %>-icon [name]="themeService.mode() === 'dark' ? 'lucideSun' : 'lucideMoon'" />
17
+ <span class="sr-only">Toggle theme</span>
18
+ </button>
19
+ `,
20
+ })
21
+ export class ThemeButton {
22
+ readonly themeService = injectTheme();
23
+
24
+ constructor() {
25
+ // keyMap('ctrl+b', () => this.themeService.toggle());
26
+ }
27
+ }
@@ -0,0 +1,23 @@
1
+ # Theme
2
+
3
+ ```typescript
4
+ import { ThemeButton, injectTheme } from '@/ui/theme';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### ThemeButton
10
+
11
+ ```html
12
+ <<%= name %>-theme-button />
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```typescript
18
+ const theme = injectTheme();
19
+
20
+ theme.toggle();
21
+ theme.mode(); // 'light' | 'dark' | ''
22
+ theme.mode.set('light');
23
+ ```
@@ -3,14 +3,12 @@ import { isClient } from '@ngbase/adk/utils';
3
3
 
4
4
  @Injectable({ providedIn: 'root' })
5
5
  export class ThemeService {
6
- mode = signal<'light' | 'dark' | ''>('light');
6
+ readonly mode = signal<'light' | 'dark' | ''>('light');
7
7
 
8
8
  constructor() {
9
9
  if (isClient()) {
10
10
  const theme = localStorage.getItem('theme');
11
11
  this._update((theme as 'light' | 'dark') || 'light');
12
-
13
- // registerShortcut('ctrl+h', () => this.open());
14
12
  }
15
13
  }
16
14
 
@@ -0,0 +1,19 @@
1
+ # Toggle
2
+
3
+ ```typescript
4
+ import { Toggle } from '@/ui/toggle';
5
+ ```
6
+
7
+ ### `<%= name %>-toggle`
8
+
9
+ - **inputs**
10
+
11
+ - `value`: boolean (2way)
12
+
13
+ - **exports** - `<%= name %>Toggle`
14
+
15
+ ## Usage
16
+
17
+ ```html
18
+ <<%= name %>-toggle [(value)]="value" />
19
+ ```
@@ -0,0 +1,32 @@
1
+ # Toggle
2
+
3
+ ```typescript
4
+ import { ToggleGroup, ToggleItem } from '@/ui/toggle-group';
5
+ ```
6
+
7
+ ### `<%= name %>-toggle-group`
8
+
9
+ - **inputs**
10
+
11
+ - `value`: boolean (2way)
12
+ - `multiple`: boolean
13
+
14
+ - **exports** - `<%= name %>ToggleGroup`
15
+
16
+ ### `<%= name %>-toggle-item`
17
+
18
+ - **inputs**
19
+
20
+ - `value`: boolean
21
+ - `disabled`: boolean
22
+
23
+ - **exports** - `<%= name %>ToggleItem`
24
+
25
+ ## Usage
26
+
27
+ ```html
28
+ <<%= name %>-toggle-group [(value)]="value" [multiple]="multiple">
29
+ <button <%= name %>ToggleItem value="1">1</button>
30
+ <button <%= name %>ToggleItem value="2">2</button>
31
+ </<%= name %>-toggle-group>
32
+ ```
@@ -0,0 +1,37 @@
1
+ # Tooltip
2
+
3
+ ```typescript
4
+ import { Tooltip } from '@/ui/tooltip';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ PopoverPosition =
10
+ | 'top'
11
+ | 'bottom'
12
+ | 'left'
13
+ | 'right'
14
+ | 'rs'
15
+ | 're'
16
+ | 'ls'
17
+ | 'le'
18
+ | 'tl'
19
+ | 'tr'
20
+ | 'bl'
21
+ | 'br';
22
+
23
+ ### `<%= name %>-tooltip`
24
+
25
+ - **inputs**
26
+
27
+ - `<%= name %>Tooltip`: string
28
+ - `<%= name %>TooltipPosition`: PopoverPosition
29
+ - `delay`: number
30
+
31
+ - **exports** - `<%= name %>Tooltip`
32
+
33
+ ## Usage
34
+
35
+ ```html
36
+ <<%= name %>-tooltip <%= name %>Tooltip="Tooltip content" [delay]="100" />
37
+ ```
@@ -14,11 +14,7 @@ import {
14
14
  hostDirectives: [
15
15
  {
16
16
  directive: NgbTooltip,
17
- inputs: [
18
- 'ngbTooltip: <%= name %>Tooltip',
19
- 'ngbTooltipPosition: <%= name %>TooltipPosition',
20
- 'delay',
21
- ],
17
+ inputs: ['ngbTooltip: <%= name %>Tooltip', 'ngbTooltipPosition: <%= name %>TooltipPosition', 'delay'],
22
18
  },
23
19
  ],
24
20
  })
@@ -25,6 +25,7 @@ export class Tree<T> extends NgbTree<T> {}
25
25
  selector: '<%= name %>-tree-node',
26
26
  exportAs: '<%= name %>TreeNode',
27
27
  changeDetection: ChangeDetectionStrategy.OnPush,
28
+ providers: [aliasTreeNode(TreeNode)],
28
29
  template: `
29
30
  <div class="flex items-start">
30
31
  <ng-content />
@@ -32,7 +33,6 @@ export class Tree<T> extends NgbTree<T> {}
32
33
  <ng-content select="[<%= name %>TreeNodeContent]" />
33
34
  <ng-container #container />
34
35
  `,
35
- providers: [provideTreeNode(TreeNode)],
36
36
  host: {
37
37
  class: 'block w-full cursor-pointer',
38
38
  },
@@ -73,6 +73,7 @@
73
73
  "switch",
74
74
  "table",
75
75
  "tabs",
76
+ "theme",
76
77
  "toggle",
77
78
  "toggle-group",
78
79
  "tooltip",
@@ -129,6 +130,7 @@
129
130
  { "value": "switch", "label": "Switch" },
130
131
  { "value": "table", "label": "Table" },
131
132
  { "value": "tabs", "label": "Tabs" },
133
+ { "value": "theme", "label": "Theme" },
132
134
  { "value": "toggle", "label": "Toggle" },
133
135
  { "value": "toggle-group", "label": "Toggle Group" },
134
136
  { "value": "tooltip", "label": "Tooltip" },