@ngbase/adk 0.1.1 → 0.1.3

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 (275) hide show
  1. package/a11y/accessibility-group.d.ts +2 -5
  2. package/accordion/accordion-item.d.ts +7 -1
  3. package/accordion/public-api.d.ts +1 -1
  4. package/autocomplete/autocomplete-input.d.ts +2 -4
  5. package/autocomplete/autocomplete.d.ts +13 -4
  6. package/avatar/avatar.d.ts +1 -1
  7. package/breadcrumb/breadcrumb.d.ts +2 -3
  8. package/breadcrumb/public-api.d.ts +1 -1
  9. package/carousel/carousel.d.ts +3 -3
  10. package/checkbox/checkbox.d.ts +11 -3
  11. package/checkbox/public-api.d.ts +1 -1
  12. package/chip/chip.d.ts +2 -2
  13. package/datepicker/calendar.d.ts +3 -3
  14. package/datepicker/datepicker-trigger.d.ts +22 -5
  15. package/datepicker/datepicker.d.ts +4 -3
  16. package/datepicker/time.d.ts +2 -2
  17. package/dialog/dialog.d.ts +1 -1
  18. package/drag/drag.d.ts +1 -2
  19. package/fesm2022/ngbase-adk-a11y.mjs +29 -26
  20. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-accordion.mjs +16 -3
  22. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-autocomplete.mjs +23 -52
  24. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  25. package/fesm2022/ngbase-adk-avatar.mjs +2 -2
  26. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  27. package/fesm2022/ngbase-adk-breadcrumb.mjs +2 -2
  28. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  29. package/fesm2022/ngbase-adk-carousel.mjs +7 -7
  30. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  31. package/fesm2022/ngbase-adk-checkbox.mjs +8 -6
  32. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-chip.mjs +4 -2
  34. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  35. package/fesm2022/ngbase-adk-datepicker.mjs +187 -350
  36. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-dialog.mjs +14 -15
  38. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  39. package/fesm2022/ngbase-adk-drag.mjs +1 -2
  40. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  41. package/fesm2022/ngbase-adk-form-field.mjs +2 -156
  42. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  43. package/fesm2022/ngbase-adk-list.mjs +2 -2
  44. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  45. package/fesm2022/ngbase-adk-mask.mjs +5 -3
  46. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-menu.mjs +34 -34
  48. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  49. package/fesm2022/ngbase-adk-otp.mjs +164 -0
  50. package/fesm2022/ngbase-adk-otp.mjs.map +1 -0
  51. package/fesm2022/ngbase-adk-pagination.mjs +10 -67
  52. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  53. package/fesm2022/ngbase-adk-popover.mjs +434 -556
  54. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  55. package/fesm2022/ngbase-adk-portal.mjs +5 -10
  56. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-radio.mjs +8 -19
  58. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  59. package/fesm2022/ngbase-adk-resizable.mjs +10 -43
  60. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-select.mjs +87 -185
  62. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-sheet.mjs +95 -0
  64. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -0
  65. package/fesm2022/ngbase-adk-sidenav.mjs +2 -2
  66. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-slider.mjs +12 -23
  68. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  69. package/fesm2022/ngbase-adk-sonner.mjs +13 -63
  70. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  71. package/fesm2022/ngbase-adk-stepper.mjs +16 -114
  72. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  73. package/fesm2022/ngbase-adk-switch.mjs +2 -2
  74. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  75. package/fesm2022/ngbase-adk-table.mjs +17 -35
  76. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  77. package/fesm2022/ngbase-adk-tabs.mjs +14 -94
  78. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  79. package/fesm2022/ngbase-adk-test.mjs +11 -1
  80. package/fesm2022/ngbase-adk-test.mjs.map +1 -1
  81. package/fesm2022/ngbase-adk-tooltip.mjs +49 -39
  82. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  83. package/fesm2022/ngbase-adk-tour.mjs +3 -3
  84. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  85. package/fesm2022/ngbase-adk-tree.mjs +11 -43
  86. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  87. package/fesm2022/ngbase-adk-utils.mjs +12 -9
  88. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  89. package/form-field/public-api.d.ts +0 -1
  90. package/mask/mask.d.ts +1 -2
  91. package/menu/menu-trigger.d.ts +3 -3
  92. package/menu/menu.d.ts +13 -7
  93. package/otp/index.d.ts +5 -0
  94. package/{form-field → otp}/otp.d.ts +1 -1
  95. package/otp/public-api.d.ts +1 -0
  96. package/package.json +27 -19
  97. package/pagination/pagination.d.ts +7 -3
  98. package/popover/base-popover.service.d.ts +1 -1
  99. package/popover/popover-arrow.ng.d.ts +34 -0
  100. package/popover/popover.d.ts +17 -7
  101. package/popover/popover.service.d.ts +5 -4
  102. package/popover/public-api.d.ts +1 -0
  103. package/popover/utils.d.ts +32 -48
  104. package/portal/dialog-ref.d.ts +0 -1
  105. package/portal/portal-base.service.d.ts +3 -3
  106. package/portal/portal-close.directive.d.ts +3 -2
  107. package/radio/radio.d.ts +5 -1
  108. package/resizable/resizable-group.d.ts +2 -2
  109. package/resizable/resizable.d.ts +2 -2
  110. package/select/option-group.d.ts +3 -3
  111. package/select/option.d.ts +1 -1
  112. package/select/select-base.d.ts +8 -6
  113. package/select/select.d.ts +6 -3
  114. package/sheet/index.d.ts +5 -0
  115. package/sheet/public-api.d.ts +2 -0
  116. package/sheet/sheet.d.ts +26 -0
  117. package/sheet/sheet.service.d.ts +13 -0
  118. package/sidenav/public-api.d.ts +1 -1
  119. package/sidenav/sidenav.d.ts +1 -1
  120. package/slider/public-api.d.ts +1 -1
  121. package/slider/slider.d.ts +6 -5
  122. package/sonner/sonner.d.ts +2 -1
  123. package/stepper/animation.d.ts +1 -1
  124. package/stepper/step.d.ts +1 -1
  125. package/stepper/stepper.d.ts +2 -2
  126. package/switch/switch.d.ts +1 -1
  127. package/table/body-row.d.ts +3 -3
  128. package/table/head-row.d.ts +3 -3
  129. package/table/table.d.ts +3 -3
  130. package/tabs/tab-group.d.ts +4 -4
  131. package/tabs/tab.d.ts +2 -2
  132. package/test/utils.d.ts +19 -3
  133. package/tooltip/public-api.d.ts +1 -1
  134. package/tooltip/tooltip.d.ts +5 -1
  135. package/tooltip/tooltip.directive.d.ts +1 -1
  136. package/tooltip/tooltip.service.d.ts +4 -2
  137. package/tour/tour.service.d.ts +3 -4
  138. package/tree/public-api.d.ts +2 -2
  139. package/tree/tree-node.d.ts +2 -2
  140. package/tree/tree.d.ts +2 -2
  141. package/utils/utils.d.ts +5 -4
  142. package/schematics/collection.json +0 -15
  143. package/schematics/components/files/accordion/accordion.ts.template +0 -55
  144. package/schematics/components/files/accordion/index.ts.template +0 -5
  145. package/schematics/components/files/alert/alert.ts.template +0 -62
  146. package/schematics/components/files/alert/index.ts.template +0 -1
  147. package/schematics/components/files/autocomplete/autocomplete.ts.template +0 -48
  148. package/schematics/components/files/autocomplete/index.ts.template +0 -5
  149. package/schematics/components/files/avatar/avatar.ts.template +0 -31
  150. package/schematics/components/files/avatar/index.ts.template +0 -1
  151. package/schematics/components/files/badge/badge.ts.template +0 -11
  152. package/schematics/components/files/badge/index.ts.template +0 -1
  153. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +0 -49
  154. package/schematics/components/files/breadcrumb/index.ts.template +0 -1
  155. package/schematics/components/files/button/button.ts.template +0 -29
  156. package/schematics/components/files/button/index.ts.template +0 -5
  157. package/schematics/components/files/card/card.ts.template +0 -11
  158. package/schematics/components/files/card/index.ts.template +0 -5
  159. package/schematics/components/files/carousel/carousel.ts.template +0 -44
  160. package/schematics/components/files/carousel/index.ts.template +0 -1
  161. package/schematics/components/files/checkbox/checkbox.ts.template +0 -46
  162. package/schematics/components/files/checkbox/focus-style.directive.ts.template +0 -12
  163. package/schematics/components/files/checkbox/index.ts.template +0 -6
  164. package/schematics/components/files/chip/chip.ts.template +0 -36
  165. package/schematics/components/files/chip/index.ts.template +0 -1
  166. package/schematics/components/files/color-picker/color-picker.ts.template +0 -104
  167. package/schematics/components/files/color-picker/index.ts.template +0 -5
  168. package/schematics/components/files/command/command.ts.template +0 -82
  169. package/schematics/components/files/command/index.ts.template +0 -1
  170. package/schematics/components/files/datepicker/calendar.ts.template +0 -117
  171. package/schematics/components/files/datepicker/datepicker-trigger.ts.template +0 -27
  172. package/schematics/components/files/datepicker/datepicker.ts.template +0 -28
  173. package/schematics/components/files/datepicker/index.ts.template +0 -3
  174. package/schematics/components/files/datepicker/time.ts.template +0 -46
  175. package/schematics/components/files/dialog/dialog.ts.template +0 -89
  176. package/schematics/components/files/dialog/index.ts.template +0 -5
  177. package/schematics/components/files/drawer/drawer.ts.template +0 -104
  178. package/schematics/components/files/drawer/index.ts.template +0 -5
  179. package/schematics/components/files/form-field/index.ts.template +0 -7
  180. package/schematics/components/files/form-field/input-style.directive.ts.template +0 -11
  181. package/schematics/components/files/form-field/input.ts.template +0 -100
  182. package/schematics/components/files/form-field/otp.ts.template +0 -37
  183. package/schematics/components/files/hover-card/hover-card.ts.template +0 -13
  184. package/schematics/components/files/hover-card/index.ts.template +0 -5
  185. package/schematics/components/files/icon/icon.ts.template +0 -16
  186. package/schematics/components/files/icon/index.ts.template +0 -1
  187. package/schematics/components/files/inline-edit/index.ts.template +0 -1
  188. package/schematics/components/files/inline-edit/inline-edit.ts.template +0 -24
  189. package/schematics/components/files/keys/index.ts.template +0 -5
  190. package/schematics/components/files/keys/key.ts.template +0 -35
  191. package/schematics/components/files/list/index.ts.template +0 -5
  192. package/schematics/components/files/list/list.ts.template +0 -28
  193. package/schematics/components/files/mask/index.ts.template +0 -1
  194. package/schematics/components/files/mask/mask.ts.template +0 -8
  195. package/schematics/components/files/menu/context-menu.ts.template +0 -14
  196. package/schematics/components/files/menu/index.ts.template +0 -8
  197. package/schematics/components/files/menu/mention.ts.template +0 -14
  198. package/schematics/components/files/menu/menu.ts.template +0 -37
  199. package/schematics/components/files/menu/navigation-menu.ts.template +0 -8
  200. package/schematics/components/files/pagination/index.ts.template +0 -1
  201. package/schematics/components/files/pagination/pagination.ts.template +0 -71
  202. package/schematics/components/files/picasa/index.ts.template +0 -1
  203. package/schematics/components/files/picasa/picasa-base.component.ts.template +0 -80
  204. package/schematics/components/files/picasa/picasa.component.ts.template +0 -57
  205. package/schematics/components/files/picasa/picasa.directive.ts.template +0 -41
  206. package/schematics/components/files/picasa/picase.service.ts.template +0 -24
  207. package/schematics/components/files/popover/index.ts.template +0 -1
  208. package/schematics/components/files/popover/popover.ts.template +0 -87
  209. package/schematics/components/files/progress/index.ts.template +0 -5
  210. package/schematics/components/files/progress/progress.ts.template +0 -14
  211. package/schematics/components/files/radio/index.ts.template +0 -5
  212. package/schematics/components/files/radio/radio.ts.template +0 -40
  213. package/schematics/components/files/resizable/index.ts.template +0 -5
  214. package/schematics/components/files/resizable/resizable.ts.template +0 -56
  215. package/schematics/components/files/scroll-area/index.ts.template +0 -1
  216. package/schematics/components/files/scroll-area/scroll-area.ts.template +0 -40
  217. package/schematics/components/files/select/index.ts.template +0 -8
  218. package/schematics/components/files/select/list-selection.ts.template +0 -15
  219. package/schematics/components/files/select/option.ts.template +0 -34
  220. package/schematics/components/files/select/select-input.ts.template +0 -21
  221. package/schematics/components/files/select/select.ts.template +0 -96
  222. package/schematics/components/files/selectable/index.ts.template +0 -1
  223. package/schematics/components/files/selectable/selectable.ts.template +0 -34
  224. package/schematics/components/files/separator/index.ts.template +0 -5
  225. package/schematics/components/files/separator/separator.ts.template +0 -19
  226. package/schematics/components/files/sheet/index.ts.template +0 -5
  227. package/schematics/components/files/sheet/sheet.ts.template +0 -134
  228. package/schematics/components/files/sidenav/index.ts.template +0 -1
  229. package/schematics/components/files/sidenav/sidenav.ts.template +0 -48
  230. package/schematics/components/files/skeleton/index.ts.template +0 -1
  231. package/schematics/components/files/skeleton/skeleton.ts.template +0 -15
  232. package/schematics/components/files/slider/index.ts.template +0 -5
  233. package/schematics/components/files/slider/slider.ts.template +0 -42
  234. package/schematics/components/files/sonner/index.ts.template +0 -5
  235. package/schematics/components/files/sonner/sonner.ts.template +0 -58
  236. package/schematics/components/files/spinner/index.ts.template +0 -1
  237. package/schematics/components/files/spinner/spinner.ts.template +0 -79
  238. package/schematics/components/files/stepper/index.ts.template +0 -1
  239. package/schematics/components/files/stepper/stepper.ts.template +0 -88
  240. package/schematics/components/files/switch/index.ts.template +0 -5
  241. package/schematics/components/files/switch/switch.ts.template +0 -29
  242. package/schematics/components/files/table/body-cell.ts.template +0 -19
  243. package/schematics/components/files/table/body-row.ts.template +0 -21
  244. package/schematics/components/files/table/column.ts.template +0 -8
  245. package/schematics/components/files/table/head-cell.ts.template +0 -19
  246. package/schematics/components/files/table/head-row.ts.template +0 -27
  247. package/schematics/components/files/table/index.ts.template +0 -26
  248. package/schematics/components/files/table/table.ts.template +0 -20
  249. package/schematics/components/files/tabs/index.ts.template +0 -5
  250. package/schematics/components/files/tabs/tab.ts.template +0 -89
  251. package/schematics/components/files/theme/index.ts.template +0 -2
  252. package/schematics/components/files/theme/theme-button.component.ts.template +0 -26
  253. package/schematics/components/files/theme/theme.component.ts.template +0 -165
  254. package/schematics/components/files/theme/theme.service.ts.template +0 -44
  255. package/schematics/components/files/toggle/index.ts.template +0 -5
  256. package/schematics/components/files/toggle/toggle.ts.template +0 -13
  257. package/schematics/components/files/toggle-group/index.ts.template +0 -5
  258. package/schematics/components/files/toggle-group/toggle-group.ts.template +0 -25
  259. package/schematics/components/files/tooltip/index.ts.template +0 -5
  260. package/schematics/components/files/tooltip/tooltip.ts.template +0 -40
  261. package/schematics/components/files/tour/index.ts.template +0 -3
  262. package/schematics/components/files/tour/tour-step.ts.template +0 -8
  263. package/schematics/components/files/tour/tour.service.ts.template +0 -7
  264. package/schematics/components/files/tour/tour.ts.template +0 -8
  265. package/schematics/components/files/tree/index.ts.template +0 -1
  266. package/schematics/components/files/tree/tree.ts.template +0 -66
  267. package/schematics/components/index.d.ts +0 -3
  268. package/schematics/components/index.js +0 -17
  269. package/schematics/components/index.js.map +0 -1
  270. package/schematics/components/index.ts +0 -29
  271. package/schematics/components/schema.d.ts +0 -6
  272. package/schematics/components/schema.js +0 -3
  273. package/schematics/components/schema.js.map +0 -1
  274. package/schematics/components/schema.json +0 -137
  275. package/schematics/components/schema.ts +0 -6
@@ -1,82 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { RouterLink } from '@angular/router';
4
- import { AccessibleGroup, AccessibleItem, Autofocus } from '@ngbase/adk/a11y';
5
- import { DialogRef } from '@ngbase/adk/portal';
6
- import { filterFunction, uniqueId } from '@ngbase/adk/utils';
7
- import { List } from '<%= basepath %>/list';
8
-
9
- export interface CommandGroup {
10
- name: string;
11
- items: CommandItem[];
12
- }
13
-
14
- export interface CommandItem {
15
- name: string;
16
- link: string;
17
- }
18
-
19
- @Component({
20
- selector: '<%= name %>-command',
21
- changeDetection: ChangeDetectionStrategy.OnPush,
22
- imports: [FormsModule, List, AccessibleGroup, AccessibleItem, Autofocus, RouterLink],
23
- template: `
24
- <div ngbAccessibleGroup [ayId]="ayId" [isPopup]="true" class="static w-full">
25
- <input
26
- ngbAutofocus
27
- [(ngModel)]="filter.search"
28
- type="text"
29
- placeholder="Search for apps and commands"
30
- class="sticky -top-4 w-full border-b bg-foreground p-4 outline-none"
31
- />
32
- @for (group of filter.filteredList(); track group.name) {
33
- <h4 class="mx-4 my-2 text-sm text-gray-500">{{ group.name }}</h4>
34
- <div class="flex flex-col px-2">
35
- @for (item of group.items; track item.name) {
36
- <a
37
- <%= name %>List
38
- class="w-full"
39
- [ayId]="ayId"
40
- [routerLink]="item.link || null"
41
- (click)="close()"
42
- >
43
- <svg
44
- xmlns="http://www.w3.org/2000/svg"
45
- width="24"
46
- height="24"
47
- viewBox="0 0 24 24"
48
- fill="none"
49
- stroke="currentColor"
50
- stroke-width="2"
51
- stroke-linecap="round"
52
- stroke-linejoin="round"
53
- class="mr-2"
54
- >
55
- <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />
56
- </svg>
57
- <span>{{ item.name }}</span>
58
- </a>
59
- }
60
- </div>
61
- }
62
- </div>
63
- `,
64
- host: {
65
- class: 'block -m-4',
66
- },
67
- })
68
- export class Command {
69
- private dialogRef = inject<DialogRef<CommandGroup[]>>(DialogRef);
70
-
71
- readonly ayId = uniqueId();
72
-
73
- readonly filter = filterFunction<CommandGroup, CommandItem>(this.dialogRef.data!, {
74
- filter: item => item.name,
75
- key: 'items',
76
- childrenFilter: item => item.items,
77
- });
78
-
79
- close() {
80
- this.dialogRef.close();
81
- }
82
- }
@@ -1 +0,0 @@
1
- export * from './command';
@@ -1,117 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component } from '@angular/core';
3
- import {
4
- CalendarBtn,
5
- CalendarDayBtn,
6
- CalendarMonthBtn,
7
- CalendarTitle,
8
- CalendarYearBtn,
9
- NgbCalendar,
10
- provideCalendar,
11
- } from '@ngbase/adk/datepicker';
12
- import { Button } from '<%= basepath %>/button';
13
- import { Icon } from '<%= basepath %>/icon';
14
- import { provideIcons } from '@ng-icons/core';
15
- import { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';
16
- import { TimePicker } from './time';
17
-
18
- @Component({
19
- selector: '<%= name %>-calendar',
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
- providers: [provideCalendar(Calendar)],
22
- viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],
23
- imports: [
24
- NgClass,
25
- Button,
26
- Icon,
27
- TimePicker,
28
- CalendarBtn,
29
- CalendarTitle,
30
- CalendarYearBtn,
31
- CalendarMonthBtn,
32
- CalendarDayBtn,
33
- ],
34
- template: `
35
- <div class="mb-2 flex items-center justify-between">
36
- <button ngbCalendarBtn="left" <%= name %>Button="outline" class="h-6 w-6 rounded-md !px-0">
37
- <<%= name %>-icon [name]="dir.isRtl() ? 'lucideChevronRight' : 'lucideChevronLeft'" />
38
- </button>
39
- <button ngbCalendarTitle <%= name %>Button="ghost" class="small rounded-md">
40
- {{ title() }}
41
- </button>
42
- <button ngbCalendarBtn="right" <%= name %>Button="outline" class="h-6 w-6 rounded-md !px-0">
43
- <<%= name %>-icon [name]="dir.isRtl() ? 'lucideChevronLeft' : 'lucideChevronRight'" />
44
- </button>
45
- </div>
46
-
47
- @if (datePicker.showType() === 'year') {
48
- <div class="grid grid-cols-3">
49
- @for (year of years(); track year.year) {
50
- <button
51
- [ngbCalYearBtn]="year"
52
- #yearBtn="ngbCalYearBtn"
53
- class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
54
- year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
55
- }}"
56
- [ngClass]="{
57
- 'border bg-muted-background': yearBtn.selected(),
58
- '!bg-primary text-foreground': yearBtn.active(),
59
- }"
60
- >
61
- {{ year.year }}
62
- </button>
63
- }
64
- </div>
65
- } @else if (datePicker.showType() === 'month') {
66
- <div class="grid grid-cols-3">
67
- @for (month of months(); track month.value) {
68
- <button
69
- [ngbCalMonthBtn]="month"
70
- #monthBtn="ngbCalMonthBtn"
71
- class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
72
- month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
73
- }}"
74
- [ngClass]="{
75
- 'border bg-muted-background': monthBtn.selected(),
76
- '!bg-primary text-foreground': monthBtn.active(),
77
- }"
78
- >
79
- {{ month.name }}
80
- </button>
81
- }
82
- </div>
83
- } @else {
84
- <div class="day-names grid grid-cols-7">
85
- @for (dayName of dayNames; track dayName) {
86
- <div class="p-1 text-center text-muted">{{ dayName }}</div>
87
- }
88
- </div>
89
- <div class="grid grid-cols-7 gap-y-2">
90
- @for (day of getDaysArray(); track day.day + '-' + day.mon) {
91
- <button
92
- #days="ngbCalDayBtn"
93
- [ngbCalDayBtn]="day"
94
- class="mx-auto flex h-9 w-9 items-center justify-center text-center {{
95
- day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
96
- }}"
97
- [ngClass]="{
98
- 'bg-muted-background': days.selected(),
99
- 'opacity-40': days.dummy(),
100
- '!bg-primary text-foreground': days.active(),
101
- }"
102
- >
103
- {{ day.day }}
104
- </button>
105
- }
106
- </div>
107
- @if (datePicker.time() && datePicker.range()) {
108
- <<%= name %>-time class="mt-5 w-full" [(value)]="time1" (valueChange)="timeChanged(0, time1()!)" />
109
- <<%= name %>-time class="mt-5 w-full" [(value)]="time2" (valueChange)="timeChanged(1, time2()!)" />
110
- }
111
- }
112
- `,
113
- host: {
114
- class: 'inline-flex flex-col min-h-[18.75rem] p-2 w-full',
115
- },
116
- })
117
- export class Calendar<D> extends NgbCalendar<D> {}
@@ -1,27 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { NgbDatepickerTrigger, registerDatePicker } from '@ngbase/adk/datepicker';
3
- import { DatePicker } from './datepicker';
4
-
5
- @Directive({
6
- selector: '[<%= name %>DatepickerTrigger]',
7
- providers: [registerDatePicker(DatePicker)],
8
- hostDirectives: [
9
- {
10
- directive: NgbDatepickerTrigger,
11
- inputs: [
12
- 'noOfCalendars',
13
- 'range',
14
- 'time',
15
- 'format',
16
- 'fieldFormat',
17
- 'dateFilter',
18
- 'pickerType',
19
- 'pickerTemplate',
20
- ],
21
- },
22
- ],
23
- host: {
24
- class: 'cursor-pointer hover:bg-muted-background',
25
- },
26
- })
27
- export class DatepickerTrigger<D> {}
@@ -1,28 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { DatepickerGroup, NgbDatePicker, provideDatePicker } from '@ngbase/adk/datepicker';
4
- import { RangePipe } from '@ngbase/adk/utils';
5
- import { Calendar } from './calendar';
6
-
7
- @Component({
8
- selector: '<%= name %>-date-picker',
9
- changeDetection: ChangeDetectionStrategy.OnPush,
10
- providers: [provideDatePicker(DatePicker)],
11
- imports: [Calendar, RangePipe, NgTemplateOutlet, DatepickerGroup],
12
- template: `
13
- <div class="flex" ngbDatepickerGroup>
14
- @for (no of noOfCalendar() | range; track no) {
15
- <<%= name %>-calendar [first]="$first" [last]="$last" [index]="$index" />
16
- }
17
- </div>
18
- @if (template()) {
19
- <div class="px-2 pb-2">
20
- <ng-container *ngTemplateOutlet="template()" />
21
- </div>
22
- }
23
- `,
24
- host: {
25
- class: 'inline-block',
26
- },
27
- })
28
- export class DatePicker<D> extends NgbDatePicker<D> {}
@@ -1,3 +0,0 @@
1
- export * from './datepicker';
2
- export * from './datepicker-trigger';
3
- export * from './time';
@@ -1,46 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { NgbTimeInput, NgbTimePicker, provideTimePicker } from '@ngbase/adk/datepicker';
3
- import { Button } from '<%= basepath %>/button';
4
-
5
- @Component({
6
- selector: '<%= name %>-time',
7
- changeDetection: ChangeDetectionStrategy.OnPush,
8
- providers: [provideTimePicker(TimePicker)],
9
- imports: [Button, NgbTimeInput],
10
- template: `
11
- <input
12
- ngbTimeInput="hours"
13
- [(value)]="hours"
14
- (valueChange)="updateValue()"
15
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
16
- />
17
- <span>:</span>
18
- <input
19
- ngbTimeInput="minutes"
20
- [(value)]="minutes"
21
- (valueChange)="updateValue()"
22
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
23
- />
24
- <span>:</span>
25
- <input
26
- ngbTimeInput="seconds"
27
- [(value)]="seconds"
28
- (valueChange)="updateValue()"
29
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
30
- />
31
- @if (!is24()) {
32
- <div class="ml-1 flex gap-2">
33
- <button [<%= name %>Button]="am() ? 'primary' : 'ghost'" class="small" (click)="changeAm(true)">
34
- AM
35
- </button>
36
- <button [<%= name %>Button]="!am() ? 'primary' : 'ghost'" class="small" (click)="changeAm(false)">
37
- PM
38
- </button>
39
- </div>
40
- }
41
- `,
42
- host: {
43
- class: 'inline-flex gap-1 items-center justify-center',
44
- },
45
- })
46
- export class TimePicker extends NgbTimePicker {}
@@ -1,89 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
- import {
3
- NgbDialogBackdrop,
4
- NgbDialogContainer,
5
- NgbDialogMain,
6
- ngbDialogPortal,
7
- provideDialog,
8
- NgbDialog,
9
- NgbDialogClose,
10
- } from '@ngbase/adk/dialog';
11
- import { DragMove } from '@ngbase/adk/drag';
12
- import { Button } from '<%= basepath %>/button';
13
- import { Icon } from '<%= basepath %>/icon';
14
- import { provideIcons } from '@ng-icons/core';
15
- import { lucideX } from '@ng-icons/lucide';
16
-
17
- @Component({
18
- selector: '<%= name %>-dialog',
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
- providers: [provideDialog(DialogContainer)],
21
- viewProviders: [provideIcons({ lucideX })],
22
- imports: [Button, Icon, DragMove, NgbDialogMain, NgbDialogBackdrop],
23
- template: `
24
- <div class="pointer-events-none flex h-full items-center justify-center">
25
- <div
26
- #myDialog
27
- ngbDialogMain
28
- [@viewAnimation]
29
- class="{{
30
- 'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +
31
- (options().fullWindow
32
- ? ' h-screen w-screen border-none'
33
- : ' max-w-[calc(100vw-30px)] rounded-lg')
34
- }}"
35
- >
36
- @if (!isHideHeader) {
37
- <div
38
- class="flex items-center justify-between border-b px-4 py-2"
39
- ngbDragMove
40
- [target]="myDialog"
41
- >
42
- <h2 class="flex-1 text-base font-bold">{{ options().title }}</h2>
43
- @if (!options().disableClose) {
44
- <button <%= name %>Button="ghost" class="-mr-2 !p-2" (click)="close()">
45
- <<%= name %>-icon name="lucideX" />
46
- </button>
47
- }
48
- </div>
49
- }
50
- <div class="h-full overflow-auto p-4">
51
- <ng-container #contentContainer />
52
- </div>
53
- </div>
54
- @if (showBackdrop()) {
55
- <div
56
- class="pointer-events-auto absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30"
57
- ngbDialogBackdrop
58
- [@fadeAnimation]
59
- ></div>
60
- }
61
- </div>
62
- `,
63
- host: {
64
- class: 'fixed block top-0 bottom-0 left-0 right-0 overflow-auto pointer-events-none z-p',
65
- },
66
- })
67
- export class DialogContainer extends NgbDialogContainer {}
68
-
69
- @Directive({
70
- selector: '[<%= name %>DialogClose]',
71
- hostDirectives: [NgbDialogClose],
72
- })
73
- export class DialogClose {}
74
-
75
- @Component({
76
- selector: '[<%= name %>DialogTitle]',
77
- changeDetection: ChangeDetectionStrategy.OnPush,
78
- template: `<ng-content />`,
79
- host: {
80
- class: 'text-lg font-semibold',
81
- },
82
- })
83
- export class DialogTitle {}
84
-
85
- export function dialogPortal() {
86
- return ngbDialogPortal(DialogContainer);
87
- }
88
-
89
- export type Dialog = NgbDialog;
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of dialog
3
- */
4
-
5
- export * from './dialog';
@@ -1,104 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import {
3
- ChangeDetectionStrategy,
4
- Component,
5
- ViewContainerRef,
6
- afterNextRender,
7
- viewChild,
8
- } from '@angular/core';
9
- import { FocusTrap } from '@ngbase/adk/a11y';
10
- import { BaseDialog, basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';
11
- import { createHostAnimation, fadeAnimation } from '@ngbase/adk/utils';
12
-
13
- @Component({
14
- selector: '<%= name %>-drawer',
15
- template: `
16
- <div class="pointer-events-none flex h-full flex-col justify-end">
17
- <div
18
- class="pointer-events-auto flex max-h-[90vh] flex-col overflow-hidden rounded-tl-2xl rounded-tr-2xl border-t bg-foreground p-4 shadow-2xl"
19
- [@bottomAnimation]
20
- >
21
- <button class="mx-auto h-2 w-20 rounded-full bg-muted"></button>
22
- @if (!isHideHeader) {
23
- <div class="flex h-8 items-center">
24
- <h2 class="flex-1 font-bold">{{ options.title }}</h2>
25
- <!-- <button <%= name %>Button (click)="close()" class="mr-1"></button> -->
26
- </div>
27
- }
28
- <div class="h-full overflow-auto">
29
- <ng-container #myDialog />
30
- </div>
31
- </div>
32
- </div>
33
- @if (backdropColor) {
34
- <div
35
- class="absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30"
36
- [@fadeAnimation]
37
- (click)="close()"
38
- ></div>
39
- }
40
- `,
41
- host: {
42
- class: 'fixed block top-0 bottom-0 left-0 right-0 overflow-hidden z-p',
43
- '[@parentAnimation]': '',
44
- '(@parentAnimation.done)': 'animationDone()',
45
- },
46
- hostDirectives: [FocusTrap],
47
- changeDetection: ChangeDetectionStrategy.OnPush,
48
- animations: [
49
- createHostAnimation(['@bottomAnimation', '@fadeAnimation']),
50
- trigger('bottomAnimation', [
51
- state('1', style({ transform: 'none' })),
52
- state('void', style({ transform: 'translate3d(0, 100%, 0)' })),
53
- state('0', style({ transform: 'translate3d(0, 100%, 0)' })),
54
- transition('* => *', animate('200ms ease')),
55
- ]),
56
- fadeAnimation('200ms'),
57
- ],
58
- })
59
- export class DrawerContainer extends BaseDialog {
60
- myDialog = viewChild('myDialog', { read: ViewContainerRef });
61
- backdropColor = true;
62
- options!: DialogOptions;
63
- classNames = '';
64
- isHideHeader = false;
65
-
66
- constructor() {
67
- super();
68
- afterNextRender(() => {
69
- this._afterViewSource.next(this.myDialog()!);
70
- });
71
- }
72
-
73
- override setOptions(options: DialogOptions): void {
74
- this.options = options;
75
- this.classNames = this.options.classNames?.join(' ') || '';
76
- this.isHideHeader = this.options.header || false;
77
- this.backdropColor = this.options.backdropColor || true;
78
- }
79
- }
80
-
81
- export function drawerPortal() {
82
- const NAME = 'sheet';
83
- const base = basePortal(NAME, DrawerContainer);
84
-
85
- function open<T>(component: DialogInput<T>, opt?: DialogOptions) {
86
- const { diaRef } = base.open(
87
- component,
88
- (comp, options) => {
89
- comp.instance.setOptions(options);
90
- },
91
- opt,
92
- );
93
-
94
- const { afterClosed } = diaRef;
95
- return { afterClosed };
96
- }
97
-
98
- function closeAll() {
99
- base.closeAll();
100
- }
101
- return { open, closeAll };
102
- }
103
-
104
- export type Drawer = ReturnType<typeof drawerPortal>;
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of drawer
3
- */
4
-
5
- export * from './drawer';
@@ -1,7 +0,0 @@
1
- /*
2
- * Public API Surface of input
3
- */
4
-
5
- export * from './input';
6
- export * from './otp';
7
- export * from './input-style.directive';
@@ -1,11 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { ɵFocusStyle as FocusStyle } from '<%= basepath %>/checkbox';
3
-
4
- @Directive({
5
- selector: '[<%= name %>InputStyle]',
6
- hostDirectives: [{ directive: FocusStyle, inputs: ['unfocus'] }],
7
- host: {
8
- class: 'inline-block rounded-lg bg-foreground px-3 py-2 border font-normal min-h-10',
9
- },
10
- })
11
- export class InputStyle {}
@@ -1,100 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- Directive,
5
- effect,
6
- ElementRef,
7
- inject,
8
- viewChild,
9
- } from '@angular/core';
10
- import {
11
- InputBase,
12
- NgbFormField,
13
- NgbInputError,
14
- NgbLabel,
15
- toggleDiv,
16
- } from '@ngbase/adk/form-field';
17
- import { InputStyle } from './input-style.directive';
18
- import { NgbSelectTarget } from '@ngbase/adk/select';
19
-
20
- @Component({
21
- selector: '<%= name %>-form-field, [<%= name %>FormField]',
22
- changeDetection: ChangeDetectionStrategy.OnPush,
23
- hostDirectives: [NgbFormField, NgbSelectTarget],
24
- imports: [InputStyle],
25
- template: `
26
- <ng-content select="[<%= name %>Label]" />
27
- <ng-content select="[<%= name %>Description]" />
28
- <div class="flex items-center" #target <%= name %>InputStyle>
29
- <ng-content select="[<%= name %>InputPrefix]" />
30
- <ng-content />
31
- <ng-content select="[<%= name %>InputSuffix]" />
32
- </div>
33
- <ng-content select="[<%= name %>Error]" />
34
- `,
35
- host: {
36
- class: 'inline-flex flex-col font-medium mb-2 gap-1',
37
- },
38
- })
39
- export class FormField {
40
- readonly selectTarget = inject(NgbSelectTarget);
41
- readonly target = viewChild.required<ElementRef<HTMLDivElement>>('target');
42
- private _ = effect(() => {
43
- this.selectTarget.target.set(this.target().nativeElement);
44
- });
45
- }
46
-
47
- @Directive({
48
- selector: '[<%= name %>Input]',
49
- hostDirectives: [{ directive: InputBase, inputs: ['value'] }],
50
- host: {
51
- class: 'focus:outline-none',
52
- '[class.border-red-500]': 'formField?.hasErrors()',
53
- },
54
- })
55
- export class Input<T = unknown> {
56
- readonly formField = inject(NgbFormField, { optional: true });
57
- }
58
-
59
- @Component({
60
- selector: '[<%= name %>Label]',
61
- changeDetection: ChangeDetectionStrategy.OnPush,
62
- hostDirectives: [NgbLabel],
63
- template: `<ng-content />`,
64
- host: {
65
- class: 'block font-medium mx-0.5',
66
- },
67
- })
68
- export class Label {}
69
-
70
- @Directive({
71
- selector: '[<%= name %>Description]',
72
- host: {
73
- class: 'text-sm text-muted',
74
- },
75
- })
76
- export class Description {}
77
-
78
- @Directive({
79
- selector: '[<%= name %>InputPrefix]',
80
- })
81
- export class InputPrefix {}
82
-
83
- @Component({
84
- selector: '[<%= name %>Error]',
85
- hostDirectives: [{ directive: NgbInputError, inputs: ['ngbError: <%= name %>Error'] }],
86
- template: `<ng-content />`,
87
- host: {
88
- class: 'text-red-500 mx-0.5',
89
- '[@toggleDiv]': 'isInvalid() ? "visible" : "hidden"',
90
- },
91
- animations: [toggleDiv],
92
- })
93
- export class InputError {
94
- readonly error = inject(NgbInputError);
95
- readonly isInvalid = this.error.isInvalid;
96
-
97
- constructor() {
98
- this.error.animate.set(true);
99
- }
100
- }
@@ -1,37 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { injectDirectionality } from '@ngbase/adk/bidi';
3
- import { NgbInputOtp, NgbOtpInput, NgbOtpValue, provideInputOtp } from '@ngbase/adk/form-field';
4
- import { NumberOnly, RangePipe } from '@ngbase/adk/utils';
5
- import { InputStyle } from './input-style.directive';
6
-
7
- @Component({
8
- selector: '<%= name %>-input-otp',
9
- changeDetection: ChangeDetectionStrategy.OnPush,
10
- providers: [provideInputOtp(InputOtp)],
11
- imports: [InputStyle, RangePipe, NgbOtpInput, NgbOtpValue, NumberOnly],
12
- template: `
13
- @for (num of size(); track $index; let l = $last) {
14
- @for (n of num | range; track n; let i = $index; let ll = $last) {
15
- <div
16
- <%= name %>InputStyle
17
- ngbOtpValue
18
- class="{{
19
- 'mb-0 aspect-square w-10 rounded-none !px-0 text-center text-base font-semibold data-[disabled]:bg-muted-background/40 data-[disabled]:text-muted data-[focus]:relative' +
20
- ((dir.isRtl() ? ll : i === 0) ? ' !rounded-l-lg' : '') +
21
- ((dir.isRtl() ? i === 0 : ll) ? ' !rounded-r-lg' : '')
22
- }}"
23
- ></div>
24
- }
25
- @if (!l) {
26
- <div class="px-2">-</div>
27
- }
28
- }
29
- <input type="text" ngbOtpInput ngbNumberOnly class="selection:bg-transparent" />
30
- `,
31
- host: {
32
- class: 'inline-flex items-center justify-center rounded-lg relative',
33
- },
34
- })
35
- export class InputOtp extends NgbInputOtp {
36
- readonly dir = injectDirectionality();
37
- }