@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
package/tree/tree.d.ts CHANGED
@@ -46,9 +46,9 @@ export declare class NgbTree<T> {
46
46
  foldAll(): void;
47
47
  expandAll(): void;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbTree<any>, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<NgbTree<any>, "[ngbTree]", ["ngbTree"], { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": true; "isSignal": true; }; "children": { "alias": "children"; "required": true; "isSignal": true; }; }, {}, ["treeNodeDef"], never, true, [{ directive: typeof i1.AccessibleGroup; inputs: {}; outputs: {}; }]>;
49
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbTree<any>, "[ngbTree]", ["ngbTree"], { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": true; "isSignal": true; }; "children": { "alias": "children"; "required": true; "isSignal": true; }; }, {}, ["treeNodeDef"], never, true, [{ directive: typeof i1.AccessibleGroup; inputs: {}; outputs: {}; }]>;
50
50
  }
51
- export declare function provideTree<T>(tree: Type<NgbTree<T>>): {
51
+ export declare function aliasTree<T>(tree: Type<NgbTree<T>>): {
52
52
  provide: typeof NgbTree;
53
53
  useExisting: Type<NgbTree<T>>;
54
54
  };
package/utils/utils.d.ts CHANGED
@@ -15,12 +15,13 @@ export declare function documentListener<T extends Event>(ev: string, fn: (e: T)
15
15
  skip?: number;
16
16
  element?: HTMLElement | Document | Window;
17
17
  }>): ListenerOut;
18
- export declare function filterFunction<T, V = T>(data: Signal<T[]> | T[], options: {
19
- filter?: (v: V) => string;
18
+ export type FilterOptions<T, V = any> = {
19
+ filter: (v: V) => string;
20
+ query?: (query: string, option: V) => boolean;
20
21
  key?: keyof T;
21
22
  childrenFilter?: (v: T) => V[];
22
- query?: (v: V, search: string) => boolean;
23
- }): {
23
+ };
24
+ export declare function filterFunction<T, V = T>(data: Signal<T[]> | T[], ops: () => FilterOptions<T, V>): {
24
25
  search: import("@angular/core").WritableSignal<string>;
25
26
  list: import("@angular/core").WritableSignal<T[]>;
26
27
  filteredList: Signal<T[]>;
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
- "schematics": {
4
- "ng-add": {
5
- "description": "Add my library to the project.",
6
- "factory": "./ng-add/index#ngAdd",
7
- "schema": "./ng-add/schema.json"
8
- },
9
- "ui": {
10
- "description": "Add an component to the project.",
11
- "factory": "./components/index#myGenerator",
12
- "schema": "./components/schema.json"
13
- }
14
- }
15
- }
@@ -1,55 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive, inject } from '@angular/core';
2
- import {
3
- NgbAccordion,
4
- NgbAccordionContent,
5
- NgbAccordionGroup,
6
- NgbAccordionHeader,
7
- slideAnimation,
8
- } from '@ngbase/adk/accordion';
9
-
10
- @Component({
11
- selector: '<%= name %>-accordion-group',
12
- changeDetection: ChangeDetectionStrategy.OnPush,
13
- hostDirectives: [{ directive: NgbAccordionGroup, inputs: ['multiple'] }],
14
- template: `<ng-content />`,
15
- host: {
16
- class: 'block rounded-lg border bg-foreground',
17
- },
18
- })
19
- export class AccordionGroup {}
20
-
21
- @Component({
22
- selector: '<%= name %>-accordion',
23
- changeDetection: ChangeDetectionStrategy.OnPush,
24
- hostDirectives: [
25
- { directive: NgbAccordion, inputs: ['expanded', 'disabled'], outputs: ['expandedChange'] },
26
- ],
27
- imports: [NgbAccordionContent],
28
- template: `
29
- <ng-content select="[<%= name %>AccordionHeader]" />
30
- @if (accordion.expanded()) {
31
- <div ngbAccordionContent [@slide] class="overflow-hidden">
32
- <div class="px-3 pb-4 text-muted">
33
- <ng-content />
34
- </div>
35
- </div>
36
- }
37
- `,
38
- host: {
39
- class: 'block will-change-auto [&:not(:last-child)]:border-b',
40
- },
41
- animations: [slideAnimation],
42
- })
43
- export class Accordion {
44
- readonly accordion = inject(NgbAccordion);
45
- }
46
-
47
- @Directive({
48
- selector: '[<%= name %>AccordionHeader]',
49
- hostDirectives: [NgbAccordionHeader],
50
- host: {
51
- class:
52
- 'flex items-center w-full py-3 px-3 aria-disabled:cursor-not-allowed aria-disabled:opacity-50',
53
- },
54
- })
55
- export class AccordionHeader {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of accordion
3
- */
4
-
5
- export * from './accordion';
@@ -1,62 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';
3
- import { Button, ButtonVariant } from '<%= basepath %>/button';
4
- import { dialogPortal } from '<%= basepath %>/dialog';
5
-
6
- export interface AlertOptions {
7
- title?: string;
8
- description?: string;
9
- actions?: {
10
- text: string;
11
- type?: ButtonVariant;
12
- handler: (fn: VoidFunction) => any;
13
- }[];
14
- }
15
-
16
- export function alertPortal() {
17
- const base = dialogPortal();
18
-
19
- function open<T>(opt: AlertOptions, comp?: DialogInput<T>) {
20
- const options: DialogOptions = {
21
- ...new DialogOptions(),
22
- data: opt,
23
- title: opt.title,
24
- width: '32rem',
25
- maxWidth: '95vw',
26
- disableClose: true,
27
- header: true,
28
- focusTrap: true,
29
- };
30
-
31
- const diaRef = base.open(comp || Alert, options);
32
-
33
- return diaRef;
34
- }
35
-
36
- function closeAll() {
37
- base.closeAll();
38
- }
39
- return { open, closeAll };
40
- }
41
-
42
- @Component({
43
- selector: '<%= name %>-alert',
44
- changeDetection: ChangeDetectionStrategy.OnPush,
45
- imports: [Button],
46
- template: `
47
- <h4 class="mb-2 text-base font-bold">{{ data?.title }}</h4>
48
- <p class="text-muted-foreground pb-3">{{ data?.description }}</p>
49
- <div class="flex justify-end gap-4 pt-1">
50
- @for (action of data?.actions; track action) {
51
- <button [<%= name %>Button]="action.type || 'primary'" (click)="action.handler(diaRef.close)">
52
- {{ action.text }}
53
- </button>
54
- }
55
- </div>
56
- `,
57
- })
58
- export class Alert {
59
- diaRef = inject<DialogRef<AlertOptions>>(DialogRef);
60
-
61
- data = this.diaRef.options?.data;
62
- }
@@ -1 +0,0 @@
1
- export * from './alert';
@@ -1,48 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
- import {
3
- NgbAutocomplete,
4
- NgbAutocompleteInput,
5
- provideAutocomplete,
6
- } from '@ngbase/adk/autocomplete';
7
- import { NgbSelectOptionGroup } from '@ngbase/adk/select';
8
-
9
- @Component({
10
- selector: '<%= name %>-autocomplete',
11
- changeDetection: ChangeDetectionStrategy.OnPush,
12
- providers: [provideAutocomplete(Autocomplete)],
13
- imports: [NgbSelectOptionGroup],
14
- template: `
15
- <ul #container class="readonly !flex w-full flex-wrap gap-2" (click)="prevent($event)">
16
- <ng-content select="<%= name %>-chip, <%= name %>-chip-group" />
17
-
18
- <li class="flex min-w-8 flex-1 items-center" (click)="open()">
19
- <ng-content select="input" />
20
- </li>
21
- </ul>
22
- <ng-template #optionsTemplate>
23
- <div #optionsGroup ngbSelectOptionGroup class="p-1">
24
- <ng-content />
25
- </div>
26
- </ng-template>
27
- `,
28
- host: {
29
- class: 'inline-flex',
30
- },
31
- })
32
- export class Autocomplete<T> extends NgbAutocomplete<T> {}
33
-
34
- @Directive({
35
- selector: '[<%= name %>AutocompleteInput]',
36
- exportAs: '<%= name %>AutocompleteInput',
37
- hostDirectives: [
38
- {
39
- directive: NgbAutocompleteInput,
40
- inputs: ['options', 'filterFn'],
41
- outputs: ['ngbAutocompleteInput: <%= name %>AutocompleteInput'],
42
- },
43
- ],
44
- host: {
45
- class: 'w-full bg-transparent shadow-none outline-none',
46
- },
47
- })
48
- export class AutocompleteInput<T> {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of autocomplete
3
- */
4
-
5
- export * from './autocomplete';
@@ -1,31 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { NgbAvatar, NgbAvatarGroup, provideAvatar } from '@ngbase/adk/avatar';
3
-
4
- @Component({
5
- selector: '<%= name %>-avatar-group',
6
- changeDetection: ChangeDetectionStrategy.OnPush,
7
- hostDirectives: [{ directive: NgbAvatarGroup, inputs: ['reverse', 'left'] }],
8
- template: `<ng-content select="<%= name %>-avatar,[<%= name %>Avatar]" />`,
9
- host: {
10
- class: 'flex flex-row',
11
- },
12
- })
13
- export class AvatarGroup {}
14
-
15
- @Component({
16
- selector: '<%= name %>-avatar, [<%= name %>Avatar]',
17
- changeDetection: ChangeDetectionStrategy.OnPush,
18
- providers: [provideAvatar(Avatar)],
19
- template: `
20
- @if (src(); as img) {
21
- <img [src]="img" alt="avatar" class="h-full max-h-full max-w-full" />
22
- } @else {
23
- <ng-content>{{ nameChar() }}</ng-content>
24
- }
25
- `,
26
- host: {
27
- class:
28
- 'inline-flex aspect-square rounded-full overflow-hidden border-2 border-foreground relative bg-background text-muted items-center justify-center',
29
- },
30
- })
31
- export class Avatar extends NgbAvatar {}
@@ -1 +0,0 @@
1
- export * from './avatar';
@@ -1,11 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
-
3
- @Component({
4
- selector: '<%= name %>-badge, [<%= name %>Badge]',
5
- changeDetection: ChangeDetectionStrategy.OnPush,
6
- template: `<ng-content />`,
7
- host: {
8
- class: 'inline-block bg-muted-background rounded-full px-2 py-1 text-xs font-semibold',
9
- },
10
- })
11
- export class Badge {}
@@ -1 +0,0 @@
1
- export * from './badge';
@@ -1,49 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
- import {
3
- NgbBreadcrumb,
4
- NgbBreadcrumbLink,
5
- NgbBreadcrumbs,
6
- NgbBreadcrumbSeparator,
7
- NgbBreadcrumbSeparatorAria,
8
- provideBreadcrumb,
9
- } from '@ngbase/adk/breadcrumb';
10
- import { Icon } from '<%= basepath %>/icon';
11
- import { provideIcons } from '@ng-icons/core';
12
- import { lucideChevronRight } from '@ng-icons/lucide';
13
-
14
- @Component({
15
- selector: '<%= name %>-breadcrumbs',
16
- changeDetection: ChangeDetectionStrategy.OnPush,
17
- hostDirectives: [NgbBreadcrumbs],
18
- template: `<ng-content />`,
19
- host: {
20
- class: 'flex items-center gap-2',
21
- },
22
- })
23
- export class Breadcrumbs {}
24
-
25
- @Component({
26
- selector: '<%= name %>-breadcrumb',
27
- changeDetection: ChangeDetectionStrategy.OnPush,
28
- providers: [provideBreadcrumb(Breadcrumb)],
29
- viewProviders: [provideIcons({ lucideChevronRight })],
30
- imports: [Icon, NgbBreadcrumbLink, NgbBreadcrumbSeparatorAria],
31
- template: `
32
- <a class='hover:text-primary aria-[current="page"]:text-primary' ngbBreadcrumbLink>
33
- <ng-content />
34
- </a>
35
- @if (!active()) {
36
- <<%= name %>-icon ngbBreadcrumbSeparatorAria name="lucideChevronRight" class="text-muted" />
37
- }
38
- `,
39
- host: {
40
- class: 'flex items-center gap-2 text-muted',
41
- },
42
- })
43
- export class Breadcrumb extends NgbBreadcrumb {}
44
-
45
- @Directive({
46
- selector: '[<%= name %>BreadcrumbsSeparator]',
47
- hostDirectives: [NgbBreadcrumbSeparator],
48
- })
49
- export class BreadcrumbsSeparator {}
@@ -1 +0,0 @@
1
- export { Breadcrumbs, BreadcrumbsSeparator, Breadcrumb } from './breadcrumb';
@@ -1,29 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
- import { ɵFocusStyle as FocusStyle } from '<%= basepath %>/checkbox';
3
-
4
- export type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'outline' | 'icon';
5
-
6
- @Component({
7
- selector: '[<%= name %>Button]',
8
- changeDetection: ChangeDetectionStrategy.OnPush,
9
- hostDirectives: [FocusStyle],
10
- template: `<ng-content />`,
11
- host: {
12
- type: 'button',
13
- class:
14
- 'inline-flex items-center justify-center rounded-lg px-4 py-2 border disabled:text-muted disabled:cursor-not-allowed',
15
- '[class]': `variant() === 'primary'
16
- ? 'bg-primary text-foreground disabled:bg-background disabled:border-background border-primary'
17
- : variant() === 'secondary'
18
- ? 'bg-muted-background disabled:bg-muted-background border-muted-background'
19
- : variant() === 'ghost' || variant() === 'icon'
20
- ? '[&:not(:disabled)]:hover:bg-muted-background [&:not(:disabled)]:active:bg-muted-background/50 border-transparent'
21
- : ' text-primary [&:not(:disabled)]:hover:bg-background [&:not(:disabled)]:active:bg-background/50'`,
22
- },
23
- })
24
- export class Button {
25
- variant = input('primary', {
26
- alias: '<%= name %>Button',
27
- transform: (value: ButtonVariant | '') => value || 'primary',
28
- });
29
- }
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of button
3
- */
4
-
5
- export * from './button';
@@ -1,11 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
-
3
- @Component({
4
- selector: '<%= name %>-card, [<%= name %>Card]',
5
- changeDetection: ChangeDetectionStrategy.OnPush,
6
- template: `<ng-content />`,
7
- host: {
8
- class: 'block rounded-lg border bg-foreground p-4',
9
- },
10
- })
11
- export class Card {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of card
3
- */
4
-
5
- export * from './card';
@@ -1,44 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
- import {
3
- NgbCarousel,
4
- NgbCarouselButton,
5
- NgbCarouselContainer,
6
- NgbCarouselItem,
7
- NgbCarouselSubContainer,
8
- provideCarousel,
9
- } from '@ngbase/adk/carousel';
10
-
11
- @Component({
12
- selector: '<%= name %>-carousel',
13
- changeDetection: ChangeDetectionStrategy.OnPush,
14
- providers: [provideCarousel(Carousel)],
15
- imports: [NgbCarouselContainer, NgbCarouselSubContainer],
16
- template: `
17
- <div class="touch-none overflow-hidden" ngbCarouselContainer>
18
- <div ngbCarouselSubContainer class="relative -ml-4 flex">
19
- <ng-content select="[<%= name %>CarouselItem]" />
20
- </div>
21
- </div>
22
- <div>
23
- <ng-content />
24
- </div>
25
- `,
26
- host: {
27
- class: 'flex flex-col gap-4 relative',
28
- },
29
- })
30
- export class Carousel extends NgbCarousel {}
31
-
32
- @Directive({
33
- selector: '[<%= name %>CarouselItem]',
34
- hostDirectives: [NgbCarouselItem],
35
- })
36
- export class CarouselItem {}
37
-
38
- @Directive({
39
- selector: '[<%= name %>CarouselButton]',
40
- hostDirectives: [
41
- { directive: NgbCarouselButton, inputs: ['ngbCarouselButton: <%= name %>CarouselButton'] },
42
- ],
43
- })
44
- export class CarouselButton {}
@@ -1 +0,0 @@
1
- export * from './carousel';
@@ -1,46 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { FocusStyle } from './focus-style.directive';
4
- import { CheckboxButton, NgbCheckbox } from '@ngbase/adk/checkbox';
5
-
6
- @Component({
7
- selector: '<%= name %>-checkbox',
8
- changeDetection: ChangeDetectionStrategy.OnPush,
9
- hostDirectives: [
10
- {
11
- directive: NgbCheckbox,
12
- inputs: ['disabled', 'checked', 'indeterminate'],
13
- outputs: ['checkedChange', 'change'],
14
- },
15
- ],
16
- imports: [FormsModule, FocusStyle, CheckboxButton],
17
- template: `
18
- <button
19
- <%= name %>FocusStyle
20
- ngbCheckboxButton
21
- class="custom-checkbox relative flex h-4 w-4 flex-none items-center justify-center rounded border border-primary transition-colors"
22
- [class]="checkbox.disabled() ? '!border-muted bg-muted' : path() ? 'bg-primary' : ''"
23
- >
24
- @if (path(); as d) {
25
- <svg class="h-full w-full text-foreground" viewBox="0 0 24 24" aria-hidden="true">
26
- <path [attr.d]="d" stroke="currentColor" stroke-width="2" fill="none" />
27
- </svg>
28
- }
29
- </button>
30
- <ng-content />
31
- `,
32
- host: {
33
- class: 'inline-flex items-center gap-2 py-1 disabled:opacity-60 disabled:cursor-not-allowed',
34
- },
35
- })
36
- export class Checkbox {
37
- readonly checkbox = inject(NgbCheckbox);
38
-
39
- readonly path = computed(() =>
40
- this.checkbox.indeterminate()
41
- ? 'M6 12L18 12'
42
- : this.checkbox.checked()
43
- ? 'M20 6L9 17L4 12'
44
- : '',
45
- );
46
- }
@@ -1,12 +0,0 @@
1
- import { booleanAttribute, Directive, input } from '@angular/core';
2
-
3
- @Directive({
4
- selector: '[<%= name %>FocusStyle]',
5
- host: {
6
- class: 'outline-none',
7
- '[class]': `!unfocus() ? 'focus-visible:ring-2 focus:ring-2 focus:ring-offset-2 ring-primary focus-visible:ring-offset-2 ring-offset-background data-[focus]:ring-2 data-[focus]:ring-offset-2 data-[focus]:ring-offset-background data-[focus]:ring-primary' : ''`,
8
- },
9
- })
10
- export class FocusStyle {
11
- unfocus = input(false, { transform: booleanAttribute });
12
- }
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of checkbox
3
- */
4
-
5
- export * from './checkbox';
6
- export { FocusStyle as ɵFocusStyle } from './focus-style.directive';
@@ -1,36 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { NgbChip, NgbChipGroup, NgbChipRemove, provideChip } from '@ngbase/adk/chip';
3
- import { Button } from '<%= basepath %>/button';
4
- import { Icon } from '<%= basepath %>/icon';
5
- import { provideIcons } from '@ng-icons/core';
6
- import { lucideX } from '@ng-icons/lucide';
7
-
8
- @Component({
9
- selector: '<%= name %>-chip-group',
10
- hostDirectives: [NgbChipGroup],
11
- template: `<ng-content />`,
12
- })
13
- export class ChipGroup<T> {}
14
-
15
- @Component({
16
- selector: '<%= name %>-chip, [<%= name %>Chip]',
17
- changeDetection: ChangeDetectionStrategy.OnPush,
18
- providers: [provideChip(Chip)],
19
- viewProviders: [provideIcons({ lucideX })],
20
- imports: [Button, Icon, NgbChipRemove],
21
- template: `<ng-content />
22
- @if (removable()) {
23
- <button
24
- <%= name %>Button="ghost"
25
- ngbChipRemove
26
- class="small -my-2 data-[dir=ltr]:-mr-4 data-[dir=rtl]:-ml-4"
27
- >
28
- <<%= name %>-icon name="lucideX" />
29
- </button>
30
- }`,
31
- host: {
32
- class:
33
- 'inline-flex items-center bg-muted-background rounded-lg px-2 py-1 text-xs font-medium',
34
- },
35
- })
36
- export class Chip<T = any> extends NgbChip<T> {}
@@ -1 +0,0 @@
1
- export * from './chip';
@@ -1,104 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import {
3
- ColorAlpha,
4
- ColorAlphaThumb,
5
- ColorHue,
6
- ColorHueThumb,
7
- ColorPickerTrigger,
8
- ColorSelected,
9
- ColorSpectrum,
10
- ColorSpectrumSelector,
11
- NgbColorInput,
12
- NgbColorPicker,
13
- registerColorPicker,
14
- } from '@ngbase/adk/color-picker';
15
- import { InputBase } from '@ngbase/adk/form-field';
16
-
17
- @Component({
18
- selector: '<%= name %>-color-picker-container',
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
- imports: [
21
- ColorSpectrum,
22
- ColorSpectrumSelector,
23
- ColorSelected,
24
- ColorHue,
25
- ColorHueThumb,
26
- ColorAlpha,
27
- ColorAlphaThumb,
28
- ],
29
- template: `
30
- <div class="flex w-full flex-col">
31
- <div ngbColorSpectrum class="relative h-[160px] w-full overflow-hidden rounded-md">
32
- <button
33
- ngbColorSpectrumSelector
34
- class="pointer-events-none absolute -left-2 -top-2 h-4 w-4 cursor-pointer rounded-full border"
35
- ></button>
36
- </div>
37
- <div class="flex gap-4 p-3">
38
- <div ngbColorSelected class="aspect-square w-10 rounded-md border bg-slate-500"></div>
39
- <div class="flex flex-1 flex-col gap-4">
40
- <div ngbColorHue class="relative h-3">
41
- <button
42
- ngbColorHueThumb
43
- class="border-red pointer-events-none absolute -top-1 h-5 w-5 -translate-x-2.5 cursor-pointer rounded-full border-2"
44
- ></button>
45
- </div>
46
-
47
- <div ngbColorAlpha class="relative h-3">
48
- <button
49
- ngbColorAlphaThumb
50
- class="alpha-selector border-red pointer-events-none absolute -top-1 h-5 w-5 -translate-x-2.5 cursor-pointer rounded-full border-2"
51
- ></button>
52
- </div>
53
- </div>
54
- </div>
55
- @if (presetColors().length) {
56
- <div class="flex flex-wrap gap-2 border-t p-2 pt-3">
57
- @for (color of presetColors(); track color) {
58
- <button
59
- type="button"
60
- class="aspect-square w-4 rounded-md border"
61
- [style.backgroundColor]="color"
62
- (click)="setValue(color, true)"
63
- ></button>
64
- }
65
- </div>
66
- }
67
- </div>
68
- `,
69
- host: {
70
- class: 'inline-block min-w-[245px]',
71
- },
72
- })
73
- export class ColorPicker extends NgbColorPicker {}
74
-
75
- @Component({
76
- selector: '<%= name %>-color-input',
77
- changeDetection: ChangeDetectionStrategy.OnPush,
78
- providers: [registerColorPicker({ picker: ColorPicker, accessor: ColorInput })],
79
- imports: [ColorPickerTrigger, InputBase],
80
- template: `
81
- <input
82
- ngbInputBase
83
- type="text"
84
- [value]="value()"
85
- (valueChange)="updateValue($event)"
86
- class="w-full flex-1 bg-transparent outline-none"
87
- />
88
- <button
89
- #color
90
- type="button"
91
- ngbColorPickerTrigger
92
- [value]="value()"
93
- [format]="format()"
94
- [presetColors]="presetColors()"
95
- (valueChange)="updateValue($event)"
96
- class="h-5 w-5 flex-none rounded-full border"
97
- [style.backgroundColor]="value()"
98
- ></button>
99
- `,
100
- host: {
101
- class: '!inline-flex gap-2 items-center',
102
- },
103
- })
104
- export class ColorInput extends NgbColorInput {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of color-picker
3
- */
4
-
5
- export * from './color-picker';