@salas-ds/cli 0.1.0 → 0.2.1

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 (92) hide show
  1. package/dist/index.js +296 -94
  2. package/package.json +4 -5
  3. package/templates/angular/accordion/accordion-content.component.ts +9 -0
  4. package/templates/angular/accordion/accordion-item.component.ts +138 -0
  5. package/templates/angular/accordion/accordion-trigger.component.ts +9 -0
  6. package/templates/angular/accordion/accordion.component.ts +120 -0
  7. package/templates/angular/accordion/accordion.module.ts +21 -0
  8. package/templates/angular/autocomplete/autocomplete.component.ts +707 -0
  9. package/templates/angular/autocomplete/autocomplete.module.ts +8 -0
  10. package/templates/angular/avatar/avatar-badge.component.ts +18 -0
  11. package/templates/angular/avatar/avatar-fallback.component.ts +39 -0
  12. package/templates/angular/avatar/avatar-group-count.component.ts +46 -0
  13. package/templates/angular/avatar/avatar-group.component.ts +33 -0
  14. package/templates/angular/avatar/avatar-image.component.ts +57 -0
  15. package/templates/angular/avatar/avatar.component.ts +73 -0
  16. package/templates/angular/avatar/avatar.module.ts +27 -0
  17. package/templates/angular/badge/badge.component.ts +84 -0
  18. package/templates/angular/badge/badge.module.ts +9 -0
  19. package/templates/angular/button/button.component.ts +24 -4
  20. package/templates/angular/card/card.component.ts +100 -0
  21. package/templates/angular/card/card.module.ts +8 -0
  22. package/templates/angular/checkbox/checkbox.component.ts +172 -0
  23. package/templates/angular/checkbox/checkbox.module.ts +8 -0
  24. package/templates/angular/datepicker/datepicker.component.ts +660 -0
  25. package/templates/angular/datepicker/datepicker.module.ts +8 -0
  26. package/templates/angular/dialog/dialog-content.component.ts +9 -0
  27. package/templates/angular/dialog/dialog-description.component.ts +17 -0
  28. package/templates/angular/dialog/dialog-footer.component.ts +17 -0
  29. package/templates/angular/dialog/dialog-header.component.ts +14 -0
  30. package/templates/angular/dialog/dialog-title.component.ts +18 -0
  31. package/templates/angular/dialog/dialog-trigger.component.ts +9 -0
  32. package/templates/angular/dialog/dialog.component.ts +212 -0
  33. package/templates/angular/dialog/dialog.module.ts +31 -0
  34. package/templates/angular/input/input.component.ts +229 -0
  35. package/templates/angular/input/input.module.ts +8 -0
  36. package/templates/angular/scroll-area/scroll-area.component.ts +72 -0
  37. package/templates/angular/scroll-area/scroll-area.module.ts +9 -0
  38. package/templates/angular/scroll-area/scroll-bar.component.ts +15 -0
  39. package/templates/angular/select/select.component.ts +292 -0
  40. package/templates/angular/select/select.module.ts +8 -0
  41. package/templates/angular/separator/separator.component.ts +63 -0
  42. package/templates/angular/separator/separator.module.ts +9 -0
  43. package/templates/angular/sheet/sheet-content.component.ts +13 -0
  44. package/templates/angular/sheet/sheet-description.component.ts +29 -0
  45. package/templates/angular/sheet/sheet-footer.component.ts +27 -0
  46. package/templates/angular/sheet/sheet-header.component.ts +26 -0
  47. package/templates/angular/sheet/sheet-title.component.ts +31 -0
  48. package/templates/angular/sheet/sheet-trigger.component.ts +11 -0
  49. package/templates/angular/sheet/sheet.component.ts +251 -0
  50. package/templates/angular/sheet/sheet.module.ts +30 -0
  51. package/templates/angular/sidebar/sidebar-content.component.ts +25 -0
  52. package/templates/angular/sidebar/sidebar-footer.component.ts +20 -0
  53. package/templates/angular/sidebar/sidebar-group-content.component.ts +16 -0
  54. package/templates/angular/sidebar/sidebar-group-label.component.ts +20 -0
  55. package/templates/angular/sidebar/sidebar-group.component.ts +14 -0
  56. package/templates/angular/sidebar/sidebar-header.component.ts +25 -0
  57. package/templates/angular/sidebar/sidebar-inset.component.ts +85 -0
  58. package/templates/angular/sidebar/sidebar-menu-button.component.ts +75 -0
  59. package/templates/angular/sidebar/sidebar-menu-item.component.ts +14 -0
  60. package/templates/angular/sidebar/sidebar-menu.component.ts +19 -0
  61. package/templates/angular/sidebar/sidebar-provider.component.ts +77 -0
  62. package/templates/angular/sidebar/sidebar-trigger.component.ts +58 -0
  63. package/templates/angular/sidebar/sidebar.component.ts +228 -0
  64. package/templates/angular/sidebar/sidebar.module.ts +48 -0
  65. package/templates/angular/sidebar/sidebar.service.ts +93 -0
  66. package/templates/angular/skeleton/skeleton.component.ts +44 -0
  67. package/templates/angular/skeleton/skeleton.module.ts +8 -0
  68. package/templates/angular/spinner/spinner.component.ts +75 -0
  69. package/templates/angular/spinner/spinner.module.ts +8 -0
  70. package/templates/angular/table/table-body.component.ts +23 -0
  71. package/templates/angular/table/table-caption.component.ts +29 -0
  72. package/templates/angular/table/table-cell.component.ts +49 -0
  73. package/templates/angular/table/table-footer.component.ts +32 -0
  74. package/templates/angular/table/table-head.component.ts +48 -0
  75. package/templates/angular/table/table-header.component.ts +28 -0
  76. package/templates/angular/table/table-row.component.ts +36 -0
  77. package/templates/angular/table/table.component.ts +35 -0
  78. package/templates/angular/table/table.module.ts +33 -0
  79. package/templates/angular/tabs/tabs-content.component.ts +71 -0
  80. package/templates/angular/tabs/tabs-list.component.ts +70 -0
  81. package/templates/angular/tabs/tabs-trigger.component.ts +149 -0
  82. package/templates/angular/tabs/tabs.component.ts +155 -0
  83. package/templates/angular/tabs/tabs.module.ts +21 -0
  84. package/templates/angular/textarea/textarea.component.ts +268 -0
  85. package/templates/angular/textarea/textarea.module.ts +8 -0
  86. package/templates/angular/toast/toast.module.ts +8 -0
  87. package/templates/angular/toast/toast.service.ts +104 -0
  88. package/templates/angular/toast/toaster.component.ts +329 -0
  89. package/templates/angular/tooltip/tooltip-content.component.ts +43 -0
  90. package/templates/angular/tooltip/tooltip-trigger.component.ts +13 -0
  91. package/templates/angular/tooltip/tooltip.component.ts +243 -0
  92. package/templates/angular/tooltip/tooltip.module.ts +10 -0
@@ -0,0 +1,120 @@
1
+ import {
2
+ Component,
3
+ Input,
4
+ Output,
5
+ EventEmitter,
6
+ ContentChildren,
7
+ QueryList,
8
+ AfterContentInit,
9
+ OnDestroy,
10
+ ViewEncapsulation,
11
+ } from '@angular/core';
12
+ import { SalasAccordionItemComponent } from './accordion-item.component';
13
+
14
+ export type AccordionType = 'single' | 'multiple';
15
+
16
+ export interface AccordionProps {
17
+ type?: AccordionType;
18
+ collapsible?: boolean;
19
+ defaultValue?: string | string[];
20
+ value?: string | string[];
21
+ disabled?: boolean;
22
+ }
23
+
24
+ export interface AccordionItemProps {
25
+ value: string;
26
+ disabled?: boolean;
27
+ }
28
+
29
+
30
+ @Component({
31
+ selector: 'salas-accordion',
32
+ standalone: true,
33
+ imports: [],
34
+ encapsulation: ViewEncapsulation.None,
35
+ template: `
36
+ <div class="salas-accordion">
37
+ <ng-content></ng-content>
38
+ </div>
39
+ `,
40
+ styles: [`
41
+ .salas-accordion {
42
+ display: flex;
43
+ flex-direction: column;
44
+ }
45
+ `],
46
+ })
47
+ export class SalasAccordionComponent implements AfterContentInit, OnDestroy {
48
+ @Input() type: AccordionType = 'single';
49
+ @Input() collapsible = true;
50
+ @Input() defaultValue?: string | string[];
51
+ @Input() disabled = false;
52
+
53
+ @Output() valueChange = new EventEmitter<string | string[] | undefined>();
54
+
55
+ @ContentChildren(SalasAccordionItemComponent) items!: QueryList<SalasAccordionItemComponent>;
56
+
57
+ private unsubscribes: Array<() => void> = [];
58
+
59
+ ngAfterContentInit(): void {
60
+ this.initItems();
61
+
62
+ this.items.changes.subscribe(() => {
63
+ this.clearSubscriptions();
64
+ this.initItems();
65
+ });
66
+ }
67
+
68
+ ngOnDestroy(): void {
69
+ this.clearSubscriptions();
70
+ }
71
+
72
+ private initItems(): void {
73
+ if (this.defaultValue) {
74
+ const defaults = Array.isArray(this.defaultValue)
75
+ ? this.defaultValue
76
+ : [this.defaultValue];
77
+ this.items.forEach((item) => {
78
+ item.open = defaults.includes(item.value);
79
+ });
80
+ }
81
+
82
+ this.items.forEach((item) => {
83
+ const sub = item.toggled.subscribe((value: string) => {
84
+ this.handleToggle(item);
85
+ });
86
+ this.unsubscribes.push(() => sub.unsubscribe());
87
+ });
88
+ }
89
+
90
+ private handleToggle(toggledItem: SalasAccordionItemComponent): void {
91
+ if (this.type === 'single') {
92
+ const wasOpen = toggledItem.open;
93
+ this.items.forEach((item) => {
94
+ item.open = false;
95
+ });
96
+ toggledItem.open = this.collapsible ? !wasOpen : true;
97
+ } else {
98
+ toggledItem.open = !toggledItem.open;
99
+ }
100
+
101
+ this.emitValue();
102
+ }
103
+
104
+ private emitValue(): void {
105
+ const openItems = this.items
106
+ .filter((item) => item.open)
107
+ .map((item) => item.value);
108
+
109
+ if (this.type === 'single') {
110
+ this.valueChange.emit(openItems[0] ?? undefined);
111
+ } else {
112
+ this.valueChange.emit(openItems.length > 0 ? openItems : undefined);
113
+ }
114
+ }
115
+
116
+ private clearSubscriptions(): void {
117
+ this.unsubscribes.forEach((unsub) => unsub());
118
+ this.unsubscribes = [];
119
+ }
120
+ }
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SalasAccordionComponent } from './accordion.component';
3
+ import { SalasAccordionItemComponent } from './accordion-item.component';
4
+ import { SalasAccordionTriggerComponent } from './accordion-trigger.component';
5
+ import { SalasAccordionContentComponent } from './accordion-content.component';
6
+
7
+ @NgModule({
8
+ imports: [
9
+ SalasAccordionComponent,
10
+ SalasAccordionItemComponent,
11
+ SalasAccordionTriggerComponent,
12
+ SalasAccordionContentComponent,
13
+ ],
14
+ exports: [
15
+ SalasAccordionComponent,
16
+ SalasAccordionItemComponent,
17
+ SalasAccordionTriggerComponent,
18
+ SalasAccordionContentComponent,
19
+ ],
20
+ })
21
+ export class SalasAccordionModule {}