pdm-ui-kit 0.1.0 → 0.1.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 (245) hide show
  1. package/README.md +115 -59
  2. package/esm2020/lib/components/accordion/accordion.component.mjs +42 -0
  3. package/esm2020/lib/components/alert/alert.component.mjs +35 -0
  4. package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +69 -0
  5. package/esm2020/lib/components/aspect-ratio/aspect-ratio.component.mjs +31 -0
  6. package/esm2020/lib/components/avatar/avatar.component.mjs +46 -0
  7. package/esm2020/lib/components/badge/badge.component.mjs +23 -0
  8. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +29 -0
  9. package/esm2020/lib/components/button/button.component.mjs +82 -0
  10. package/esm2020/lib/components/button-group/button-group.component.mjs +23 -0
  11. package/esm2020/lib/components/calendar/calendar.component.mjs +71 -0
  12. package/esm2020/lib/components/card/card.component.mjs +65 -0
  13. package/esm2020/lib/components/carousel/carousel.component.mjs +97 -0
  14. package/esm2020/lib/components/chart/chart.component.mjs +174 -0
  15. package/esm2020/lib/components/checkbox/checkbox.component.mjs +47 -0
  16. package/esm2020/lib/components/collapsible/collapsible.component.mjs +43 -0
  17. package/esm2020/lib/components/combobox/combobox.component.mjs +51 -0
  18. package/esm2020/lib/components/command/command.component.mjs +75 -0
  19. package/esm2020/lib/components/context-menu/context-menu.component.mjs +78 -0
  20. package/esm2020/lib/components/data-table/data-table.component.mjs +89 -0
  21. package/esm2020/lib/components/date-picker/date-picker.component.mjs +63 -0
  22. package/esm2020/lib/components/dialog/dialog.component.mjs +90 -0
  23. package/esm2020/lib/components/drawer/drawer.component.mjs +72 -0
  24. package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +120 -0
  25. package/esm2020/lib/components/empty/empty.component.mjs +58 -0
  26. package/esm2020/lib/components/field/field.component.mjs +52 -0
  27. package/esm2020/lib/components/hover-card/hover-card.component.mjs +44 -0
  28. package/esm2020/lib/components/icon/icon.component.mjs +94 -0
  29. package/esm2020/lib/components/input/input.component.mjs +65 -0
  30. package/esm2020/lib/components/input-group/input-group.component.mjs +54 -0
  31. package/esm2020/lib/components/input-otp/input-otp.component.mjs +140 -0
  32. package/esm2020/lib/components/input-password/input-password.component.mjs +72 -0
  33. package/esm2020/lib/components/item/item.component.mjs +23 -0
  34. package/esm2020/lib/components/kbd/kbd.component.mjs +17 -0
  35. package/esm2020/lib/components/label/label.component.mjs +23 -0
  36. package/esm2020/lib/components/menubar/menubar.component.mjs +31 -0
  37. package/esm2020/lib/components/native-select/native-select.component.mjs +42 -0
  38. package/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +20 -0
  39. package/esm2020/lib/components/pagination/pagination.component.mjs +47 -0
  40. package/esm2020/lib/components/popover/popover.component.mjs +58 -0
  41. package/esm2020/lib/components/progress/progress.component.mjs +33 -0
  42. package/esm2020/lib/components/radio-group/radio-group.component.mjs +38 -0
  43. package/esm2020/lib/components/scroll-area/scroll-area.component.mjs +20 -0
  44. package/esm2020/lib/components/select/select.component.mjs +38 -0
  45. package/esm2020/lib/components/separator/separator.component.mjs +26 -0
  46. package/esm2020/lib/components/sheet/sheet.component.mjs +39 -0
  47. package/esm2020/lib/components/sidebar/sidebar.component.mjs +20 -0
  48. package/esm2020/lib/components/skeleton/skeleton.component.mjs +17 -0
  49. package/esm2020/lib/components/slider/slider.component.mjs +46 -0
  50. package/esm2020/lib/components/sonner/sonner.component.mjs +39 -0
  51. package/esm2020/lib/components/spinner/spinner.component.mjs +20 -0
  52. package/esm2020/lib/components/switch/switch.component.mjs +35 -0
  53. package/esm2020/lib/components/table/table.component.mjs +17 -0
  54. package/esm2020/lib/components/tabs/tabs.component.mjs +31 -0
  55. package/esm2020/lib/components/textarea/textarea.component.mjs +59 -0
  56. package/esm2020/lib/components/toggle/toggle.component.mjs +41 -0
  57. package/esm2020/lib/components/toggle-group/toggle-group.component.mjs +31 -0
  58. package/esm2020/lib/components/tooltip/tooltip.component.mjs +33 -0
  59. package/esm2020/lib/pdm-ui-kit.module.mjs +245 -0
  60. package/esm2020/pdm-ui-kit.mjs +5 -0
  61. package/esm2020/public-api.mjs +59 -0
  62. package/fesm2015/pdm-ui-kit.mjs +2959 -0
  63. package/fesm2015/pdm-ui-kit.mjs.map +1 -0
  64. package/fesm2020/pdm-ui-kit.mjs +2954 -0
  65. package/fesm2020/pdm-ui-kit.mjs.map +1 -0
  66. package/index.d.ts +5 -0
  67. package/lib/components/accordion/accordion.component.d.ts +19 -0
  68. package/lib/components/alert/alert.component.d.ts +13 -0
  69. package/lib/components/alert-dialog/alert-dialog.component.d.ts +21 -0
  70. package/lib/components/aspect-ratio/aspect-ratio.component.d.ts +10 -0
  71. package/lib/components/avatar/avatar.component.d.ts +20 -0
  72. package/lib/components/badge/badge.component.d.ts +9 -0
  73. package/lib/components/breadcrumb/breadcrumb.component.d.ts +10 -0
  74. package/lib/components/button/button.component.d.ts +24 -0
  75. package/lib/components/button-group/button-group.component.d.ts +9 -0
  76. package/lib/components/calendar/calendar.component.d.ts +28 -0
  77. package/lib/components/card/card.component.d.ts +24 -0
  78. package/lib/components/carousel/carousel.component.d.ts +25 -0
  79. package/lib/components/chart/chart.component.d.ts +41 -0
  80. package/lib/components/checkbox/checkbox.component.d.ts +17 -0
  81. package/lib/components/collapsible/collapsible.component.d.ts +14 -0
  82. package/lib/components/combobox/combobox.component.d.ts +18 -0
  83. package/lib/components/command/command.component.d.ts +33 -0
  84. package/lib/components/context-menu/context-menu.component.d.ts +26 -0
  85. package/lib/components/data-table/data-table.component.d.ts +36 -0
  86. package/lib/components/date-picker/date-picker.component.d.ts +23 -0
  87. package/lib/components/dialog/dialog.component.d.ts +30 -0
  88. package/lib/components/drawer/drawer.component.d.ts +27 -0
  89. package/lib/components/dropdown-menu/dropdown-menu.component.d.ts +34 -0
  90. package/lib/components/empty/empty.component.d.ts +19 -0
  91. package/lib/components/field/field.component.d.ts +18 -0
  92. package/lib/components/hover-card/hover-card.component.d.ts +14 -0
  93. package/lib/components/icon/icon.component.d.ts +18 -0
  94. package/lib/components/input/input.component.d.ts +23 -0
  95. package/lib/components/input-group/input-group.component.d.ts +19 -0
  96. package/lib/components/input-otp/input-otp.component.d.ts +26 -0
  97. package/lib/components/input-password/input-password.component.d.ts +25 -0
  98. package/lib/components/item/item.component.d.ts +8 -0
  99. package/lib/components/kbd/kbd.component.d.ts +6 -0
  100. package/lib/components/label/label.component.d.ts +8 -0
  101. package/lib/components/menubar/menubar.component.d.ts +17 -0
  102. package/lib/components/native-select/native-select.component.d.ts +20 -0
  103. package/lib/components/navigation-menu/navigation-menu.component.d.ts +12 -0
  104. package/lib/components/pagination/pagination.component.d.ts +13 -0
  105. package/lib/components/popover/popover.component.d.ts +17 -0
  106. package/lib/components/progress/progress.component.d.ts +10 -0
  107. package/lib/components/radio-group/radio-group.component.d.ts +19 -0
  108. package/lib/components/scroll-area/scroll-area.component.d.ts +7 -0
  109. package/lib/components/select/select.component.d.ts +19 -0
  110. package/lib/components/separator/separator.component.d.ts +9 -0
  111. package/lib/components/sheet/sheet.component.d.ts +13 -0
  112. package/lib/components/sidebar/sidebar.component.d.ts +7 -0
  113. package/lib/components/skeleton/skeleton.component.d.ts +6 -0
  114. package/lib/components/slider/slider.component.d.ts +15 -0
  115. package/lib/components/sonner/sonner.component.d.ts +13 -0
  116. package/lib/components/spinner/spinner.component.d.ts +7 -0
  117. package/lib/components/switch/switch.component.d.ts +13 -0
  118. package/lib/components/table/table.component.d.ts +6 -0
  119. package/lib/components/tabs/tabs.component.d.ts +16 -0
  120. package/lib/components/textarea/textarea.component.d.ts +21 -0
  121. package/lib/components/toggle/toggle.component.d.ts +14 -0
  122. package/lib/components/toggle-group/toggle-group.component.d.ts +16 -0
  123. package/lib/components/tooltip/tooltip.component.d.ts +10 -0
  124. package/lib/pdm-ui-kit.module.d.ts +64 -0
  125. package/package.json +25 -10
  126. package/FIGMA_COMPONENT_AUDIT.md +0 -154
  127. package/ng-package.json +0 -7
  128. package/src/lib/components/accordion/accordion.component.html +0 -34
  129. package/src/lib/components/accordion/accordion.component.ts +0 -38
  130. package/src/lib/components/alert/alert.component.html +0 -52
  131. package/src/lib/components/alert/alert.component.ts +0 -25
  132. package/src/lib/components/alert-dialog/alert-dialog.component.html +0 -41
  133. package/src/lib/components/alert-dialog/alert-dialog.component.ts +0 -45
  134. package/src/lib/components/aspect-ratio/aspect-ratio.component.html +0 -11
  135. package/src/lib/components/aspect-ratio/aspect-ratio.component.ts +0 -18
  136. package/src/lib/components/avatar/avatar.component.html +0 -21
  137. package/src/lib/components/avatar/avatar.component.ts +0 -32
  138. package/src/lib/components/badge/badge.component.html +0 -28
  139. package/src/lib/components/badge/badge.component.ts +0 -23
  140. package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -39
  141. package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -26
  142. package/src/lib/components/button/button.component.html +0 -15
  143. package/src/lib/components/button/button.component.ts +0 -84
  144. package/src/lib/components/button-group/button-group.component.html +0 -39
  145. package/src/lib/components/button-group/button-group.component.ts +0 -15
  146. package/src/lib/components/calendar/calendar.component.html +0 -73
  147. package/src/lib/components/calendar/calendar.component.ts +0 -78
  148. package/src/lib/components/card/card.component.html +0 -77
  149. package/src/lib/components/card/card.component.ts +0 -39
  150. package/src/lib/components/carousel/carousel.component.html +0 -86
  151. package/src/lib/components/carousel/carousel.component.ts +0 -100
  152. package/src/lib/components/chart/chart.component.html +0 -143
  153. package/src/lib/components/chart/chart.component.ts +0 -147
  154. package/src/lib/components/checkbox/checkbox.component.html +0 -38
  155. package/src/lib/components/checkbox/checkbox.component.ts +0 -32
  156. package/src/lib/components/collapsible/collapsible.component.html +0 -26
  157. package/src/lib/components/collapsible/collapsible.component.ts +0 -29
  158. package/src/lib/components/combobox/combobox.component.html +0 -42
  159. package/src/lib/components/combobox/combobox.component.ts +0 -32
  160. package/src/lib/components/command/command.component.html +0 -55
  161. package/src/lib/components/command/command.component.ts +0 -67
  162. package/src/lib/components/context-menu/context-menu.component.html +0 -47
  163. package/src/lib/components/context-menu/context-menu.component.ts +0 -67
  164. package/src/lib/components/data-table/data-table.component.html +0 -63
  165. package/src/lib/components/data-table/data-table.component.ts +0 -78
  166. package/src/lib/components/date-picker/date-picker.component.html +0 -38
  167. package/src/lib/components/date-picker/date-picker.component.ts +0 -34
  168. package/src/lib/components/dialog/dialog.component.html +0 -78
  169. package/src/lib/components/dialog/dialog.component.ts +0 -55
  170. package/src/lib/components/drawer/drawer.component.html +0 -56
  171. package/src/lib/components/drawer/drawer.component.ts +0 -43
  172. package/src/lib/components/dropdown-menu/dropdown-menu.component.html +0 -56
  173. package/src/lib/components/dropdown-menu/dropdown-menu.component.ts +0 -126
  174. package/src/lib/components/empty/empty.component.html +0 -29
  175. package/src/lib/components/empty/empty.component.ts +0 -35
  176. package/src/lib/components/field/field.component.html +0 -22
  177. package/src/lib/components/field/field.component.ts +0 -28
  178. package/src/lib/components/hover-card/hover-card.component.html +0 -24
  179. package/src/lib/components/hover-card/hover-card.component.ts +0 -36
  180. package/src/lib/components/icon/icon.component.html +0 -286
  181. package/src/lib/components/icon/icon.component.ts +0 -133
  182. package/src/lib/components/input/input.component.html +0 -22
  183. package/src/lib/components/input/input.component.ts +0 -33
  184. package/src/lib/components/input-group/input-group.component.html +0 -31
  185. package/src/lib/components/input-group/input-group.component.ts +0 -26
  186. package/src/lib/components/input-otp/input-otp.component.html +0 -25
  187. package/src/lib/components/input-otp/input-otp.component.ts +0 -146
  188. package/src/lib/components/input-password/input-password.component.html +0 -64
  189. package/src/lib/components/input-password/input-password.component.ts +0 -46
  190. package/src/lib/components/item/item.component.html +0 -10
  191. package/src/lib/components/item/item.component.ts +0 -12
  192. package/src/lib/components/kbd/kbd.component.html +0 -3
  193. package/src/lib/components/kbd/kbd.component.ts +0 -10
  194. package/src/lib/components/label/label.component.html +0 -7
  195. package/src/lib/components/label/label.component.ts +0 -12
  196. package/src/lib/components/menubar/menubar.component.html +0 -16
  197. package/src/lib/components/menubar/menubar.component.ts +0 -29
  198. package/src/lib/components/native-select/native-select.component.html +0 -17
  199. package/src/lib/components/native-select/native-select.component.ts +0 -28
  200. package/src/lib/components/navigation-menu/navigation-menu.component.html +0 -15
  201. package/src/lib/components/navigation-menu/navigation-menu.component.ts +0 -17
  202. package/src/lib/components/pagination/pagination.component.html +0 -30
  203. package/src/lib/components/pagination/pagination.component.ts +0 -37
  204. package/src/lib/components/popover/popover.component.html +0 -6
  205. package/src/lib/components/popover/popover.component.ts +0 -40
  206. package/src/lib/components/progress/progress.component.html +0 -9
  207. package/src/lib/components/progress/progress.component.ts +0 -20
  208. package/src/lib/components/radio-group/radio-group.component.html +0 -25
  209. package/src/lib/components/radio-group/radio-group.component.ts +0 -30
  210. package/src/lib/components/scroll-area/scroll-area.component.html +0 -5
  211. package/src/lib/components/scroll-area/scroll-area.component.ts +0 -11
  212. package/src/lib/components/select/select.component.html +0 -14
  213. package/src/lib/components/select/select.component.ts +0 -27
  214. package/src/lib/components/separator/separator.component.html +0 -5
  215. package/src/lib/components/separator/separator.component.ts +0 -16
  216. package/src/lib/components/sheet/sheet.component.html +0 -10
  217. package/src/lib/components/sheet/sheet.component.ts +0 -28
  218. package/src/lib/components/sidebar/sidebar.component.html +0 -3
  219. package/src/lib/components/sidebar/sidebar.component.ts +0 -11
  220. package/src/lib/components/skeleton/skeleton.component.html +0 -1
  221. package/src/lib/components/skeleton/skeleton.component.ts +0 -10
  222. package/src/lib/components/slider/slider.component.html +0 -15
  223. package/src/lib/components/slider/slider.component.ts +0 -31
  224. package/src/lib/components/sonner/sonner.component.html +0 -10
  225. package/src/lib/components/sonner/sonner.component.ts +0 -25
  226. package/src/lib/components/spinner/spinner.component.html +0 -6
  227. package/src/lib/components/spinner/spinner.component.ts +0 -11
  228. package/src/lib/components/switch/switch.component.html +0 -14
  229. package/src/lib/components/switch/switch.component.ts +0 -20
  230. package/src/lib/components/table/table.component.html +0 -5
  231. package/src/lib/components/table/table.component.ts +0 -10
  232. package/src/lib/components/tabs/tabs.component.html +0 -21
  233. package/src/lib/components/tabs/tabs.component.ts +0 -26
  234. package/src/lib/components/textarea/textarea.component.html +0 -21
  235. package/src/lib/components/textarea/textarea.component.ts +0 -28
  236. package/src/lib/components/toggle/toggle.component.html +0 -16
  237. package/src/lib/components/toggle/toggle.component.ts +0 -29
  238. package/src/lib/components/toggle-group/toggle-group.component.html +0 -17
  239. package/src/lib/components/toggle-group/toggle-group.component.ts +0 -26
  240. package/src/lib/components/tooltip/tooltip.component.html +0 -6
  241. package/src/lib/components/tooltip/tooltip.component.ts +0 -20
  242. package/src/lib/pdm-ui-kit.module.ts +0 -126
  243. package/tsconfig.lib.json +0 -17
  244. package/tsconfig.lib.prod.json +0 -9
  245. /package/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -1,126 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
-
3
- export type PdmDropdownMenuVariant = 'default' | 'checkboxes' | 'radio-group';
4
-
5
- export interface PdmMenuItem {
6
- type?: 'item' | 'label' | 'separator';
7
- label?: string;
8
- value?: string;
9
- shortcut?: string;
10
- disabled?: boolean;
11
- inset?: boolean;
12
- showChevron?: boolean;
13
- checked?: boolean;
14
- radioSelected?: boolean;
15
- }
16
-
17
- @Component({
18
- selector: 'pdm-dropdown-menu',
19
- templateUrl: './dropdown-menu.component.html',
20
- changeDetection: ChangeDetectionStrategy.OnPush
21
- })
22
- export class PdmDropdownMenuComponent {
23
- @Input() triggerText = 'Open';
24
- @Input() variant: PdmDropdownMenuVariant = 'default';
25
- @Input() items: PdmMenuItem[] = [];
26
- @Input() closeOnSelect = true;
27
- @Input() panelClassName = '';
28
- @Input() className = '';
29
-
30
- @Output() itemSelect = new EventEmitter<string>();
31
- @Output() itemsChange = new EventEmitter<PdmMenuItem[]>();
32
-
33
- open = false;
34
-
35
- constructor(private readonly elementRef: ElementRef<HTMLElement>) {}
36
-
37
- toggle(): void {
38
- this.open = !this.open;
39
- }
40
-
41
- get resolvedItems(): PdmMenuItem[] {
42
- if (this.items.length) {
43
- return this.items;
44
- }
45
-
46
- if (this.variant === 'checkboxes') {
47
- return [
48
- { type: 'label', label: 'Appearance' },
49
- { type: 'separator' },
50
- { type: 'item', label: 'Status Bar', value: 'status-bar', checked: true },
51
- { type: 'item', label: 'Activity Bar', value: 'activity-bar', checked: false },
52
- { type: 'item', label: 'Panel', value: 'panel', checked: false }
53
- ];
54
- }
55
-
56
- if (this.variant === 'radio-group') {
57
- return [
58
- { type: 'label', label: 'Panel Position' },
59
- { type: 'separator' },
60
- { type: 'item', label: 'Top', value: 'top', radioSelected: true },
61
- { type: 'item', label: 'Bottom', value: 'bottom', radioSelected: false },
62
- { type: 'item', label: 'Right', value: 'right', radioSelected: false }
63
- ];
64
- }
65
-
66
- return [
67
- { type: 'label', label: 'My Account', inset: true },
68
- { type: 'separator' },
69
- { type: 'item', label: 'Profile', value: 'profile', shortcut: '⇧⌘P' },
70
- { type: 'item', label: 'Billing', value: 'billing', shortcut: '⌘B' },
71
- { type: 'item', label: 'Settings', value: 'settings', shortcut: '⌘S' },
72
- { type: 'item', label: 'Keyboard shortcuts', value: 'shortcuts', shortcut: '⌘K' },
73
- { type: 'separator' },
74
- { type: 'item', label: 'Team', value: 'team' },
75
- { type: 'item', label: 'Invite users', value: 'invite', showChevron: true },
76
- { type: 'item', label: 'New Team', value: 'new-team', shortcut: '⌘+T' },
77
- { type: 'separator' },
78
- { type: 'item', label: 'GitHub', value: 'github' },
79
- { type: 'item', label: 'Support', value: 'support' },
80
- { type: 'item', label: 'API', value: 'api', disabled: true },
81
- { type: 'separator' },
82
- { type: 'item', label: 'Log out', value: 'logout', shortcut: '⇧⌘Q' }
83
- ];
84
- }
85
-
86
- select(item: PdmMenuItem): void {
87
- if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;
88
-
89
- if (this.variant === 'checkboxes') {
90
- const updated = this.resolvedItems.map((entry) =>
91
- entry.value === item.value ? { ...entry, checked: !entry.checked } : entry
92
- );
93
- this.itemsChange.emit(updated);
94
- }
95
-
96
- if (this.variant === 'radio-group') {
97
- const updated = this.resolvedItems.map((entry) =>
98
- entry.type === 'item'
99
- ? { ...entry, radioSelected: entry.value === item.value }
100
- : entry
101
- );
102
- this.itemsChange.emit(updated);
103
- }
104
-
105
- this.itemSelect.emit(item.value);
106
-
107
- const shouldClose = this.variant === 'default' ? this.closeOnSelect : false;
108
- if (shouldClose) {
109
- this.open = false;
110
- }
111
- }
112
-
113
- @HostListener('document:keydown.escape')
114
- onEsc(): void {
115
- this.open = false;
116
- }
117
-
118
- @HostListener('document:click', ['$event'])
119
- onDocumentClick(event: MouseEvent): void {
120
- if (!this.open) return;
121
- const target = event.target as Node | null;
122
- if (target && !this.elementRef.nativeElement.contains(target)) {
123
- this.open = false;
124
- }
125
- }
126
- }
@@ -1,29 +0,0 @@
1
- <section [ngClass]="['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-[hsl(var(--foreground))]', containerClass, className]">
2
- <div class="flex h-10 w-10 items-center justify-center rounded-[10px] bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]">
3
- <pdm-icon [name]="iconName" [size]="20"></pdm-icon>
4
- </div>
5
-
6
- <div class="space-y-2">
7
- <h3 class="text-2xl font-semibold leading-none tracking-tight">{{ title }}</h3>
8
- <p class="mx-auto max-w-[420px] text-sm leading-relaxed text-[hsl(var(--muted-foreground))]">
9
- {{ description }}
10
- </p>
11
- </div>
12
-
13
- <div *ngIf="primaryActionLabel || secondaryActionLabel" class="mt-1 flex flex-wrap items-center justify-center gap-3">
14
- <pdm-button *ngIf="primaryActionLabel" variant="default" (pressed)="primaryAction.emit()">{{ primaryActionLabel }}</pdm-button>
15
- <pdm-button *ngIf="secondaryActionLabel" variant="outline" (pressed)="secondaryAction.emit()">{{ secondaryActionLabel }}</pdm-button>
16
- </div>
17
-
18
- <button
19
- *ngIf="linkLabel"
20
- type="button"
21
- class="mt-1 inline-flex items-center gap-2 text-[15px] font-medium text-[hsl(var(--muted-foreground))] underline-offset-4 hover:underline"
22
- (click)="linkAction.emit()"
23
- >
24
- <span>{{ linkLabel }}</span>
25
- <pdm-icon name="arrow-up-right" [size]="16"></pdm-icon>
26
- </button>
27
-
28
- <ng-content></ng-content>
29
- </section>
@@ -1,35 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
-
3
- export type PdmEmptyVariant = 'default' | 'outline' | 'background';
4
-
5
- @Component({
6
- selector: 'pdm-empty',
7
- templateUrl: './empty.component.html',
8
- changeDetection: ChangeDetectionStrategy.OnPush
9
- })
10
- export class PdmEmptyComponent {
11
- @Input() variant: PdmEmptyVariant = 'default';
12
- @Input() title = 'No Projects Yet';
13
- @Input() description = "You haven't created any projects yet. Get started by creating your first project.";
14
- @Input() iconName = 'folder';
15
- @Input() primaryActionLabel = '';
16
- @Input() secondaryActionLabel = '';
17
- @Input() linkLabel = '';
18
- @Input() className = '';
19
-
20
- @Output() primaryAction = new EventEmitter<void>();
21
- @Output() secondaryAction = new EventEmitter<void>();
22
- @Output() linkAction = new EventEmitter<void>();
23
-
24
- get containerClass(): string {
25
- if (this.variant === 'outline') {
26
- return 'border border-dashed border-[hsl(var(--border))] rounded-[12px]';
27
- }
28
-
29
- if (this.variant === 'background') {
30
- return 'rounded-[12px] bg-[hsl(var(--muted))]';
31
- }
32
-
33
- return '';
34
- }
35
- }
@@ -1,22 +0,0 @@
1
- <div [ngClass]="[rootClass, className]">
2
- <div class="grid gap-2">
3
- <label
4
- *ngIf="label"
5
- [attr.for]="id"
6
- [ngClass]="['text-sm font-medium leading-5 text-[hsl(var(--foreground))]', disabled ? 'opacity-70' : '', labelClassName]"
7
- >
8
- {{ label }}
9
- <span *ngIf="required" class="text-[hsl(var(--destructive))]">*</span>
10
- </label>
11
-
12
- <p *ngIf="description && !invalid" class="text-sm leading-5 text-[hsl(var(--muted-foreground))]">{{ description }}</p>
13
- <p *ngIf="invalid && error" class="text-sm leading-5 text-[hsl(var(--destructive))]">{{ error }}</p>
14
-
15
- <ng-content select="[pdmFieldDescription]"></ng-content>
16
- </div>
17
-
18
- <div [ngClass]="controlClassName">
19
- <ng-content></ng-content>
20
- <ng-content select="[pdmFieldControl]"></ng-content>
21
- </div>
22
- </div>
@@ -1,28 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
-
3
- export type PdmFieldOrientation = 'vertical' | 'horizontal';
4
-
5
- @Component({
6
- selector: 'pdm-field',
7
- templateUrl: './field.component.html',
8
- changeDetection: ChangeDetectionStrategy.OnPush
9
- })
10
- export class PdmFieldComponent {
11
- @Input() id = '';
12
- @Input() label = '';
13
- @Input() description = '';
14
- @Input() error = '';
15
- @Input() required = false;
16
- @Input() disabled = false;
17
- @Input() invalid = false;
18
- @Input() orientation: PdmFieldOrientation = 'vertical';
19
- @Input() className = '';
20
- @Input() labelClassName = '';
21
- @Input() controlClassName = '';
22
-
23
- get rootClass(): string {
24
- return this.orientation === 'horizontal'
25
- ? 'grid items-start gap-3 sm:grid-cols-[200px_minmax(0,1fr)] sm:gap-4'
26
- : 'grid w-full gap-3';
27
- }
28
- }
@@ -1,24 +0,0 @@
1
- <div
2
- class="relative inline-flex"
3
- [ngClass]="className"
4
- (mouseenter)="open = true"
5
- (mouseleave)="open = false"
6
- (focusin)="open = true"
7
- (focusout)="open = false"
8
- >
9
- <div>
10
- <ng-content select="[pdmHoverTrigger]"></ng-content>
11
- </div>
12
-
13
- <section
14
- *ngIf="open"
15
- [style.width.px]="panelWidth"
16
- [ngClass]="[
17
- 'absolute z-30 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-[0_10px_30px_rgba(15,23,42,0.15)]',
18
- positionClass,
19
- panelClassName
20
- ]"
21
- >
22
- <ng-content select="[pdmHoverContent]"></ng-content>
23
- </section>
24
- </div>
@@ -1,36 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
-
3
- export type PdmHoverCardSide = 'top' | 'right' | 'bottom' | 'left';
4
- export type PdmHoverCardAlign = 'start' | 'center' | 'end';
5
-
6
- @Component({
7
- selector: 'pdm-hover-card',
8
- templateUrl: './hover-card.component.html',
9
- changeDetection: ChangeDetectionStrategy.OnPush
10
- })
11
- export class PdmHoverCardComponent {
12
- @Input() className = '';
13
- @Input() panelClassName = '';
14
- @Input() side: PdmHoverCardSide = 'bottom';
15
- @Input() align: PdmHoverCardAlign = 'start';
16
- @Input() panelWidth = 304;
17
-
18
- open = false;
19
-
20
- get positionClass(): string {
21
- const sideClassMap: Record<PdmHoverCardSide, string> = {
22
- top: 'bottom-full mb-2',
23
- right: 'left-full ml-2',
24
- bottom: 'top-full mt-2',
25
- left: 'right-full mr-2'
26
- };
27
-
28
- const alignClassMap: Record<PdmHoverCardAlign, string> = {
29
- start: this.side === 'top' || this.side === 'bottom' ? 'left-0' : 'top-0',
30
- center: this.side === 'top' || this.side === 'bottom' ? 'left-1/2 -translate-x-1/2' : 'top-1/2 -translate-y-1/2',
31
- end: this.side === 'top' || this.side === 'bottom' ? 'right-0' : 'bottom-0'
32
- };
33
-
34
- return `${sideClassMap[this.side]} ${alignClassMap[this.align]}`;
35
- }
36
- }
@@ -1,286 +0,0 @@
1
- <ng-container *ngIf="assetUrl; else inlineIcon">
2
- <img
3
- [src]="assetUrl"
4
- [style.width.px]="size"
5
- [style.height.px]="size"
6
- [ngClass]="className"
7
- [attr.role]="decorative ? null : 'img'"
8
- [attr.aria-hidden]="decorative ? 'true' : null"
9
- [attr.aria-label]="!decorative ? ariaLabel || name : null"
10
- alt=""
11
- />
12
- </ng-container>
13
-
14
- <ng-template #inlineIcon>
15
- <svg
16
- [attr.width]="size"
17
- [attr.height]="size"
18
- [ngClass]="className"
19
- [attr.role]="decorative ? null : 'img'"
20
- [attr.aria-hidden]="decorative ? 'true' : null"
21
- [attr.aria-label]="!decorative ? ariaLabel || name : null"
22
- viewBox="0 0 24 24"
23
- fill="none"
24
- xmlns="http://www.w3.org/2000/svg"
25
- >
26
- <ng-container [ngSwitch]="iconKey">
27
- <g *ngSwitchCase="'command'">
28
- <path d="M9 9V15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
29
- <path d="M15 9V15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
30
- <path d="M9 9H15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
31
- <path d="M9 15H15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
32
- <path d="M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
33
- <path d="M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
34
- <path d="M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
35
- <path d="M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
36
- </g>
37
-
38
- <g *ngSwitchCase="'check'">
39
- <path d="M5 12.5L9.2 16.7L19 7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
40
- </g>
41
-
42
- <g *ngSwitchCase="'check-circle'">
43
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
44
- <path d="M8.5 12.2L11 14.7L15.8 9.9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
45
- </g>
46
-
47
- <g *ngSwitchCase="'circle'">
48
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
49
- </g>
50
-
51
- <g *ngSwitchCase="'dot'">
52
- <circle cx="12" cy="12" r="2.5" fill="currentColor"></circle>
53
- </g>
54
-
55
- <g *ngSwitchCase="'x'">
56
- <path d="M6 6L18 18M18 6L6 18" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
57
- </g>
58
-
59
- <g *ngSwitchCase="'alert-circle'">
60
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
61
- <path d="M12 8V12" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
62
- <circle cx="12" cy="16" r="1" fill="currentColor"></circle>
63
- </g>
64
-
65
- <g *ngSwitchCase="'info'">
66
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
67
- <path d="M12 11V16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
68
- <circle cx="12" cy="8" r="1" fill="currentColor"></circle>
69
- </g>
70
-
71
- <g *ngSwitchCase="'loader-2'">
72
- <path d="M12 3A9 9 0 1 0 21 12" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
73
- </g>
74
-
75
- <g *ngSwitchCase="'menu'">
76
- <path d="M4 7H20M4 12H20M4 17H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
77
- </g>
78
-
79
- <g *ngSwitchCase="'search'">
80
- <circle cx="11" cy="11" r="7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
81
- <path d="M20 20L16.6 16.6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
82
- </g>
83
-
84
- <g *ngSwitchCase="'calendar'">
85
- <path d="M8 3V6M16 3V6M4 10H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
86
- <rect x="4" y="6" width="16" height="14" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
87
- </g>
88
-
89
- <g *ngSwitchCase="'panel-left'">
90
- <rect x="3" y="4" width="18" height="16" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
91
- <path d="M9 4V20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></path>
92
- </g>
93
-
94
- <g *ngSwitchCase="'monitor'">
95
- <rect x="3" y="4" width="18" height="13" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
96
- <path d="M8 20H16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
97
- <path d="M12 17V20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
98
- </g>
99
-
100
- <g *ngSwitchCase="'laptop'">
101
- <rect x="5" y="5" width="14" height="10" rx="1.5" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
102
- <path d="M3 18H21" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
103
- </g>
104
-
105
- <g *ngSwitchCase="'sun'">
106
- <circle cx="12" cy="12" r="4" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
107
- <path d="M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
108
- </g>
109
-
110
- <g *ngSwitchCase="'moon'">
111
- <path d="M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
112
- </g>
113
-
114
- <g *ngSwitchCase="'chevron-down'">
115
- <path d="M7 10L12 15L17 10" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
116
- </g>
117
-
118
- <g *ngSwitchCase="'chevron-up'">
119
- <path d="M17 14L12 9L7 14" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
120
- </g>
121
-
122
- <g *ngSwitchCase="'chevron-left'">
123
- <path d="M15 18L9 12L15 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
124
- </g>
125
-
126
- <g *ngSwitchCase="'chevron-right'">
127
- <path d="M9 18L15 12L9 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
128
- </g>
129
-
130
- <g *ngSwitchCase="'chevrons-left'">
131
- <path d="M14 18L8 12L14 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
132
- <path d="M20 18L14 12L20 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
133
- </g>
134
-
135
- <g *ngSwitchCase="'chevrons-right'">
136
- <path d="M10 18L16 12L10 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
137
- <path d="M4 18L10 12L4 6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
138
- </g>
139
-
140
- <g *ngSwitchCase="'chevrons-up-down'">
141
- <path d="M7 15L12 20L17 15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
142
- <path d="M17 9L12 4L7 9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
143
- </g>
144
-
145
- <g *ngSwitchCase="'arrow-up-down'">
146
- <path d="M12 4V20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
147
- <path d="M8 8L12 4L16 8" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
148
- <path d="M8 16L12 20L16 16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
149
- </g>
150
-
151
- <g *ngSwitchCase="'ellipsis'">
152
- <circle cx="6" cy="12" r="1.5" fill="currentColor"></circle>
153
- <circle cx="12" cy="12" r="1.5" fill="currentColor"></circle>
154
- <circle cx="18" cy="12" r="1.5" fill="currentColor"></circle>
155
- </g>
156
-
157
- <g *ngSwitchCase="'filter'">
158
- <path d="M4 6H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
159
- <path d="M7 12H17" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
160
- <path d="M10 18H14" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
161
- </g>
162
-
163
- <g *ngSwitchCase="'sort-asc'">
164
- <path d="M7 18V6" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
165
- <path d="M4 9L7 6L10 9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
166
- <path d="M14 8H20M14 12H18M14 16H16" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
167
- </g>
168
-
169
- <g *ngSwitchCase="'sort-desc'">
170
- <path d="M7 6V18" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
171
- <path d="M4 15L7 18L10 15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
172
- <path d="M14 8H16M14 12H18M14 16H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
173
- </g>
174
-
175
- <g *ngSwitchCase="'plus'">
176
- <path d="M12 5V19M5 12H19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
177
- </g>
178
-
179
- <g *ngSwitchCase="'minus'">
180
- <path d="M5 12H19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
181
- </g>
182
-
183
- <g *ngSwitchCase="'copy'">
184
- <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
185
- <rect x="4" y="4" width="11" height="11" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
186
- </g>
187
-
188
- <g *ngSwitchCase="'pencil'">
189
- <path d="M12 20H21" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
190
- <path d="M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linejoin="round"></path>
191
- </g>
192
-
193
- <g *ngSwitchCase="'trash-2'">
194
- <path d="M4 7H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
195
- <path d="M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
196
- <path d="M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
197
- <path d="M10 11V17M14 11V17" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
198
- </g>
199
-
200
- <g *ngSwitchCase="'download'">
201
- <path d="M12 4V14" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
202
- <path d="M8 10L12 14L16 10" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
203
- <path d="M5 19H19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
204
- </g>
205
-
206
- <g *ngSwitchCase="'upload'">
207
- <path d="M12 20V10" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
208
- <path d="M8 14L12 10L16 14" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
209
- <path d="M5 5H19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
210
- </g>
211
-
212
- <g *ngSwitchCase="'home'">
213
- <path d="M4 10.5L12 4L20 10.5" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
214
- <path d="M6 9.5V20H18V9.5" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
215
- </g>
216
-
217
- <g *ngSwitchCase="'mail'">
218
- <rect x="3" y="5" width="18" height="14" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
219
- <path d="M4 7L12 13L20 7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
220
- </g>
221
-
222
- <g *ngSwitchCase="'phone'">
223
- <path d="M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linejoin="round"></path>
224
- </g>
225
-
226
- <g *ngSwitchCase="'log-in'">
227
- <path d="M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
228
- <path d="M10 17L14 13L10 9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
229
- <path d="M14 13H4" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
230
- </g>
231
-
232
- <g *ngSwitchCase="'log-out'">
233
- <path d="M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
234
- <path d="M14 17L10 13L14 9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
235
- <path d="M10 13H20" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
236
- </g>
237
-
238
- <g *ngSwitchCase="'user'">
239
- <circle cx="12" cy="8" r="3" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
240
- <path d="M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
241
- </g>
242
-
243
- <g *ngSwitchCase="'settings'">
244
- <circle cx="12" cy="12" r="3" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
245
- <path d="M19 12A7 7 0 1 0 12 19" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
246
- </g>
247
-
248
- <g *ngSwitchCase="'credit-card'">
249
- <rect x="3" y="6" width="18" height="12" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
250
- <path d="M3 10H21" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></path>
251
- </g>
252
-
253
- <g *ngSwitchCase="'smile'">
254
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
255
- <path d="M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
256
- <circle cx="9" cy="10" r="1" fill="currentColor"></circle>
257
- <circle cx="15" cy="10" r="1" fill="currentColor"></circle>
258
- </g>
259
-
260
- <g *ngSwitchCase="'calculator'">
261
- <rect x="6" y="3" width="12" height="18" rx="2" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></rect>
262
- <path d="M9 7H15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
263
- <path d="M9 12H10M14 12H15M9 16H10M14 16H15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
264
- </g>
265
-
266
- <g *ngSwitchCase="'external-link'">
267
- <path d="M14 5H19V10" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
268
- <path d="M10 14L19 5" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
269
- <path d="M19 14V19H5V5H10" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
270
- </g>
271
-
272
- <g *ngSwitchCase="'folder'">
273
- <path d="M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linejoin="round"></path>
274
- </g>
275
-
276
- <g *ngSwitchCase="'arrow-up-right'">
277
- <path d="M7 17L17 7" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round"></path>
278
- <path d="M9 7H17V15" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth" stroke-linecap="round" stroke-linejoin="round"></path>
279
- </g>
280
-
281
- <g *ngSwitchDefault>
282
- <circle cx="12" cy="12" r="9" stroke="currentColor" [attr.stroke-width]="resolvedStrokeWidth"></circle>
283
- </g>
284
- </ng-container>
285
- </svg>
286
- </ng-template>