@egose/shadcn-theme-ng 0.0.27 → 0.1.0

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 (316) hide show
  1. package/README.md +130 -13
  2. package/accordion/README.md +3 -0
  3. package/accordion/fesm2022/accordion.mjs +148 -0
  4. package/accordion/package.json +25 -0
  5. package/accordion/types/accordion.d.ts +49 -0
  6. package/alert/README.md +2 -63
  7. package/alert/fesm2022/alert.mjs +58 -53
  8. package/alert/package.json +25 -0
  9. package/alert-dialog/README.md +11 -0
  10. package/alert-dialog/fesm2022/alert-dialog.mjs +287 -0
  11. package/alert-dialog/package.json +25 -0
  12. package/alert-dialog/types/alert-dialog.d.ts +90 -0
  13. package/aspect-ratio/README.md +11 -0
  14. package/aspect-ratio/fesm2022/aspect-ratio.mjs +62 -0
  15. package/aspect-ratio/package.json +25 -0
  16. package/aspect-ratio/types/aspect-ratio.d.ts +21 -0
  17. package/autocomplete/README.md +3 -0
  18. package/autocomplete/fesm2022/autocomplete.mjs +391 -0
  19. package/autocomplete/package.json +24 -0
  20. package/autocomplete/types/autocomplete.d.ts +96 -0
  21. package/avatar/README.md +11 -0
  22. package/avatar/fesm2022/avatar.mjs +178 -0
  23. package/avatar/package.json +25 -0
  24. package/avatar/types/avatar.d.ts +50 -0
  25. package/badge/README.md +2 -63
  26. package/badge/fesm2022/badge.mjs +69 -63
  27. package/badge/package.json +25 -0
  28. package/basic-alert/README.md +2 -63
  29. package/basic-alert/fesm2022/basic-alert.mjs +14 -22
  30. package/basic-alert/package.json +24 -0
  31. package/breadcrumb/README.md +11 -0
  32. package/breadcrumb/fesm2022/breadcrumb.mjs +218 -0
  33. package/breadcrumb/package.json +25 -0
  34. package/breadcrumb/types/breadcrumb.d.ts +57 -0
  35. package/button/README.md +2 -63
  36. package/button/fesm2022/button.mjs +201 -177
  37. package/button/package.json +25 -0
  38. package/button/{index.d.ts → types/button.d.ts} +31 -10
  39. package/button-group/README.md +11 -0
  40. package/button-group/fesm2022/button-group.mjs +102 -0
  41. package/button-group/package.json +25 -0
  42. package/button-group/types/button-group.d.ts +30 -0
  43. package/calendar/README.md +2 -63
  44. package/calendar/fesm2022/calendar.mjs +178 -570
  45. package/calendar/package.json +24 -0
  46. package/calendar/types/calendar.d.ts +94 -0
  47. package/card/README.md +11 -0
  48. package/card/fesm2022/card.mjs +169 -0
  49. package/card/package.json +25 -0
  50. package/card/types/card.d.ts +54 -0
  51. package/carousel/README.md +11 -0
  52. package/carousel/fesm2022/carousel.mjs +267 -0
  53. package/carousel/package.json +25 -0
  54. package/carousel/types/carousel.d.ts +84 -0
  55. package/checkbox/README.md +3 -0
  56. package/checkbox/fesm2022/checkbox.mjs +113 -0
  57. package/checkbox/package.json +24 -0
  58. package/checkbox/types/checkbox.d.ts +56 -0
  59. package/collapsible/README.md +11 -0
  60. package/collapsible/fesm2022/collapsible.mjs +77 -0
  61. package/collapsible/package.json +25 -0
  62. package/collapsible/types/collapsible.d.ts +27 -0
  63. package/combobox/README.md +11 -0
  64. package/combobox/fesm2022/combobox.mjs +547 -0
  65. package/combobox/package.json +25 -0
  66. package/combobox/types/combobox.d.ts +151 -0
  67. package/command/README.md +11 -0
  68. package/command/fesm2022/command.mjs +301 -0
  69. package/command/package.json +25 -0
  70. package/command/types/command.d.ts +89 -0
  71. package/confirmation-dialog/README.md +3 -0
  72. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +79 -0
  73. package/confirmation-dialog/package.json +24 -0
  74. package/confirmation-dialog/types/confirmation-dialog.d.ts +28 -0
  75. package/context-menu/README.md +11 -0
  76. package/context-menu/fesm2022/context-menu.mjs +89 -0
  77. package/context-menu/package.json +25 -0
  78. package/context-menu/types/context-menu.d.ts +34 -0
  79. package/date-picker/README.md +2 -63
  80. package/date-picker/fesm2022/date-picker.mjs +1104 -352
  81. package/date-picker/package.json +24 -0
  82. package/date-picker/types/date-picker.d.ts +555 -0
  83. package/dialog/README.md +3 -0
  84. package/dialog/fesm2022/dialog.mjs +281 -0
  85. package/dialog/package.json +24 -0
  86. package/dialog/types/dialog.d.ts +95 -0
  87. package/drawer/README.md +11 -0
  88. package/drawer/fesm2022/drawer.mjs +261 -0
  89. package/drawer/package.json +25 -0
  90. package/drawer/types/drawer.d.ts +76 -0
  91. package/dropdown-menu/README.md +11 -0
  92. package/dropdown-menu/fesm2022/dropdown-menu.mjs +554 -0
  93. package/dropdown-menu/package.json +25 -0
  94. package/dropdown-menu/types/dropdown-menu.d.ts +180 -0
  95. package/empty/README.md +11 -0
  96. package/empty/fesm2022/empty.mjs +151 -0
  97. package/empty/package.json +25 -0
  98. package/empty/types/empty.d.ts +54 -0
  99. package/field/README.md +11 -0
  100. package/field/fesm2022/field.mjs +351 -0
  101. package/field/package.json +25 -0
  102. package/field/types/field.d.ts +107 -0
  103. package/form-checkbox/README.md +3 -0
  104. package/form-checkbox/fesm2022/form-checkbox.mjs +94 -0
  105. package/form-checkbox/package.json +24 -0
  106. package/form-checkbox/types/form-checkbox.d.ts +33 -0
  107. package/form-date-picker/README.md +2 -63
  108. package/form-date-picker/fesm2022/form-date-picker.mjs +74 -120
  109. package/form-date-picker/package.json +24 -0
  110. package/form-date-picker/{index.d.ts → types/form-date-picker.d.ts} +7 -1
  111. package/form-field/README.md +2 -63
  112. package/form-field/fesm2022/form-field.mjs +54 -28
  113. package/form-field/package.json +25 -0
  114. package/form-field/types/form-field.d.ts +46 -0
  115. package/form-field-simple/README.md +2 -63
  116. package/form-field-simple/fesm2022/form-field-simple.mjs +15 -10
  117. package/form-field-simple/package.json +24 -0
  118. package/form-searchable-multiselect/README.md +3 -0
  119. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +98 -0
  120. package/form-searchable-multiselect/package.json +24 -0
  121. package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +36 -0
  122. package/form-select/README.md +2 -63
  123. package/form-select/fesm2022/form-select.mjs +85 -141
  124. package/form-select/package.json +24 -0
  125. package/form-select/{index.d.ts → types/form-select.d.ts} +7 -1
  126. package/form-text-input/README.md +2 -63
  127. package/form-text-input/fesm2022/form-text-input.mjs +86 -171
  128. package/form-text-input/package.json +24 -0
  129. package/form-text-input/{index.d.ts → types/form-text-input.d.ts} +9 -12
  130. package/form-textarea/README.md +2 -63
  131. package/form-textarea/fesm2022/form-textarea.mjs +77 -128
  132. package/form-textarea/package.json +24 -0
  133. package/form-textarea/{index.d.ts → types/form-textarea.d.ts} +8 -1
  134. package/hover-card/README.md +11 -0
  135. package/hover-card/fesm2022/hover-card.mjs +123 -0
  136. package/hover-card/package.json +25 -0
  137. package/hover-card/types/hover-card.d.ts +36 -0
  138. package/icon/README.md +2 -63
  139. package/icon/fesm2022/icon.mjs +12 -10
  140. package/icon/package.json +25 -0
  141. package/input/README.md +2 -63
  142. package/input/fesm2022/input.mjs +25 -70
  143. package/input/package.json +25 -0
  144. package/input/types/input.d.ts +19 -0
  145. package/input-group/README.md +11 -0
  146. package/input-group/fesm2022/input-group.mjs +199 -0
  147. package/input-group/package.json +25 -0
  148. package/input-group/types/input-group.d.ts +52 -0
  149. package/input-otp/README.md +11 -0
  150. package/input-otp/fesm2022/input-otp.mjs +141 -0
  151. package/input-otp/package.json +25 -0
  152. package/input-otp/types/input-otp.d.ts +43 -0
  153. package/item/README.md +11 -0
  154. package/item/fesm2022/item.mjs +278 -0
  155. package/item/package.json +25 -0
  156. package/item/types/item.d.ts +101 -0
  157. package/kbd/README.md +11 -0
  158. package/kbd/fesm2022/kbd.mjs +61 -0
  159. package/kbd/package.json +25 -0
  160. package/kbd/types/kbd.d.ts +22 -0
  161. package/label/README.md +2 -63
  162. package/label/fesm2022/label.mjs +12 -11
  163. package/label/package.json +25 -0
  164. package/label/{index.d.ts → types/label.d.ts} +1 -1
  165. package/layout-simple/README.md +3 -0
  166. package/layout-simple/fesm2022/layout-simple.mjs +388 -0
  167. package/layout-simple/package.json +24 -0
  168. package/layout-simple/types/layout-simple.d.ts +167 -0
  169. package/menu/README.md +3 -0
  170. package/menu/fesm2022/menu.mjs +455 -0
  171. package/menu/package.json +24 -0
  172. package/menu/types/menu.d.ts +137 -0
  173. package/menubar/README.md +11 -0
  174. package/menubar/fesm2022/menubar.mjs +108 -0
  175. package/menubar/package.json +25 -0
  176. package/menubar/types/menubar.d.ts +40 -0
  177. package/native-select/README.md +11 -0
  178. package/native-select/fesm2022/native-select.mjs +207 -0
  179. package/native-select/package.json +25 -0
  180. package/native-select/types/native-select.d.ts +70 -0
  181. package/navigation-menu/README.md +11 -0
  182. package/navigation-menu/fesm2022/navigation-menu.mjs +194 -0
  183. package/navigation-menu/package.json +25 -0
  184. package/navigation-menu/types/navigation-menu.d.ts +54 -0
  185. package/package.json +284 -63
  186. package/pagination/README.md +11 -0
  187. package/pagination/fesm2022/pagination.mjs +522 -0
  188. package/pagination/package.json +25 -0
  189. package/pagination/types/pagination.d.ts +192 -0
  190. package/popover/README.md +2 -63
  191. package/popover/fesm2022/popover.mjs +124 -30
  192. package/popover/package.json +24 -0
  193. package/popover/types/popover.d.ts +54 -0
  194. package/progress/README.md +11 -0
  195. package/progress/fesm2022/progress.mjs +77 -0
  196. package/progress/package.json +25 -0
  197. package/progress/types/progress.d.ts +27 -0
  198. package/radio-group/README.md +3 -0
  199. package/radio-group/fesm2022/radio-group.mjs +207 -0
  200. package/radio-group/package.json +25 -0
  201. package/radio-group/types/radio-group.d.ts +71 -0
  202. package/resizable/README.md +11 -0
  203. package/resizable/fesm2022/resizable.mjs +103 -0
  204. package/resizable/package.json +25 -0
  205. package/resizable/types/resizable.d.ts +32 -0
  206. package/scroll-area/README.md +11 -0
  207. package/scroll-area/fesm2022/scroll-area.mjs +51 -0
  208. package/scroll-area/package.json +25 -0
  209. package/scroll-area/types/scroll-area.d.ts +16 -0
  210. package/searchable-multiselect/README.md +3 -0
  211. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +136 -0
  212. package/searchable-multiselect/package.json +24 -0
  213. package/searchable-multiselect/types/searchable-multiselect.d.ts +45 -0
  214. package/select/README.md +2 -63
  215. package/select/fesm2022/select.mjs +340 -198
  216. package/select/package.json +25 -0
  217. package/select/types/select.d.ts +121 -0
  218. package/separator/README.md +2 -63
  219. package/separator/fesm2022/separator.mjs +17 -15
  220. package/separator/package.json +24 -0
  221. package/separator/{index.d.ts → types/separator.d.ts} +4 -5
  222. package/sheet/README.md +2 -63
  223. package/sheet/fesm2022/sheet.mjs +56 -61
  224. package/sheet/package.json +24 -0
  225. package/sidebar/README.md +11 -0
  226. package/sidebar/fesm2022/sidebar.mjs +846 -0
  227. package/sidebar/package.json +25 -0
  228. package/sidebar/types/sidebar.d.ts +237 -0
  229. package/skeleton/README.md +11 -0
  230. package/skeleton/fesm2022/skeleton.mjs +44 -0
  231. package/skeleton/package.json +25 -0
  232. package/skeleton/types/skeleton.d.ts +16 -0
  233. package/slider/README.md +11 -0
  234. package/slider/fesm2022/slider.mjs +74 -0
  235. package/slider/package.json +25 -0
  236. package/slider/types/slider.d.ts +19 -0
  237. package/sonner/README.md +2 -63
  238. package/sonner/fesm2022/sonner.mjs +34 -39
  239. package/sonner/package.json +25 -0
  240. package/spinner/README.md +2 -63
  241. package/spinner/fesm2022/spinner.mjs +20 -16
  242. package/spinner/package.json +25 -0
  243. package/switch/README.md +2 -63
  244. package/switch/fesm2022/switch.mjs +28 -27
  245. package/switch/package.json +25 -0
  246. package/table/README.md +11 -0
  247. package/table/fesm2022/table.mjs +211 -0
  248. package/table/package.json +25 -0
  249. package/table/types/table.d.ts +87 -0
  250. package/tabs/README.md +3 -0
  251. package/tabs/fesm2022/tabs.mjs +210 -0
  252. package/tabs/package.json +25 -0
  253. package/tabs/types/tabs.d.ts +71 -0
  254. package/textarea/README.md +11 -0
  255. package/textarea/fesm2022/textarea.mjs +47 -0
  256. package/textarea/package.json +25 -0
  257. package/textarea/types/textarea.d.ts +18 -0
  258. package/toggle/README.md +11 -0
  259. package/toggle/fesm2022/toggle.mjs +78 -0
  260. package/toggle/package.json +25 -0
  261. package/toggle/types/toggle.d.ts +27 -0
  262. package/toggle-group/README.md +11 -0
  263. package/toggle-group/fesm2022/toggle-group.mjs +117 -0
  264. package/toggle-group/package.json +25 -0
  265. package/toggle-group/types/toggle-group.d.ts +45 -0
  266. package/tooltip/README.md +3 -0
  267. package/tooltip/fesm2022/tooltip.mjs +72 -0
  268. package/tooltip/package.json +25 -0
  269. package/tooltip/types/tooltip.d.ts +22 -0
  270. package/typography/README.md +11 -0
  271. package/typography/fesm2022/typography.mjs +242 -0
  272. package/typography/package.json +25 -0
  273. package/typography/types/typography.d.ts +94 -0
  274. package/utils/README.md +2 -63
  275. package/utils/fesm2022/utils.mjs +209 -2
  276. package/utils/package.json +25 -0
  277. package/utils/types/utils.d.ts +13 -0
  278. package/alert/fesm2022/alert.mjs.map +0 -1
  279. package/badge/fesm2022/badge.mjs.map +0 -1
  280. package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
  281. package/button/fesm2022/button.mjs.map +0 -1
  282. package/calendar/fesm2022/calendar.mjs.map +0 -1
  283. package/calendar/index.d.ts +0 -111
  284. package/date-picker/fesm2022/date-picker.mjs.map +0 -1
  285. package/date-picker/index.d.ts +0 -227
  286. package/form-date-picker/fesm2022/form-date-picker.mjs.map +0 -1
  287. package/form-field/fesm2022/form-field.mjs.map +0 -1
  288. package/form-field/index.d.ts +0 -37
  289. package/form-field-simple/fesm2022/form-field-simple.mjs.map +0 -1
  290. package/form-select/fesm2022/form-select.mjs.map +0 -1
  291. package/form-text-input/fesm2022/form-text-input.mjs.map +0 -1
  292. package/form-textarea/fesm2022/form-textarea.mjs.map +0 -1
  293. package/icon/fesm2022/icon.mjs.map +0 -1
  294. package/input/fesm2022/input.mjs.map +0 -1
  295. package/input/index.d.ts +0 -41
  296. package/label/fesm2022/label.mjs.map +0 -1
  297. package/popover/fesm2022/popover.mjs.map +0 -1
  298. package/popover/index.d.ts +0 -30
  299. package/select/fesm2022/select.mjs.map +0 -1
  300. package/select/index.d.ts +0 -92
  301. package/separator/fesm2022/separator.mjs.map +0 -1
  302. package/sheet/fesm2022/sheet.mjs.map +0 -1
  303. package/sonner/fesm2022/sonner.mjs.map +0 -1
  304. package/spinner/fesm2022/spinner.mjs.map +0 -1
  305. package/switch/fesm2022/switch.mjs.map +0 -1
  306. package/utils/fesm2022/utils.mjs.map +0 -1
  307. package/utils/index.d.ts +0 -5
  308. /package/alert/{index.d.ts → types/alert.d.ts} +0 -0
  309. /package/badge/{index.d.ts → types/badge.d.ts} +0 -0
  310. /package/basic-alert/{index.d.ts → types/basic-alert.d.ts} +0 -0
  311. /package/form-field-simple/{index.d.ts → types/form-field-simple.d.ts} +0 -0
  312. /package/icon/{index.d.ts → types/icon.d.ts} +0 -0
  313. /package/sheet/{index.d.ts → types/sheet.d.ts} +0 -0
  314. /package/sonner/{index.d.ts → types/sonner.d.ts} +0 -0
  315. /package/spinner/{index.d.ts → types/spinner.d.ts} +0 -0
  316. /package/switch/{index.d.ts → types/switch.d.ts} +0 -0
@@ -0,0 +1,11 @@
1
+ # Menubar
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli).
4
+
5
+ ## Building
6
+
7
+ To build the library, run:
8
+
9
+ ```bash
10
+ ng build menubar
11
+ ```
@@ -0,0 +1,108 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, InjectionToken, inject, input, booleanAttribute, computed, effect, forwardRef, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/cdk/menu';
4
+ import { CdkMenuBar, CdkMenuTrigger, CdkMenuItem } from '@angular/cdk/menu';
5
+ import { classes } from '@egose/shadcn-theme-ng/utils';
6
+ import { createMenuPosition, MENU_SIDE } from '@spartan-ng/brain/core';
7
+
8
+ class HlmMenubar {
9
+ constructor() {
10
+ classes(() => "bg-background h-9 gap-1 rounded-md border p-1 shadow-xs flex items-center");
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmMenubar, isStandalone: true, selector: "[hlmMenubar],hlm-menubar", host: { attributes: { "data-slot": "menubar" } }, hostDirectives: [{ directive: i1.CdkMenuBar }], ngImport: i0 });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubar, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: '[hlmMenubar],hlm-menubar',
19
+ hostDirectives: [CdkMenuBar],
20
+ host: {
21
+ 'data-slot': 'menubar',
22
+ },
23
+ }]
24
+ }], ctorParameters: () => [] });
25
+
26
+ const defaultConfig = {
27
+ align: 'start',
28
+ side: 'bottom',
29
+ };
30
+ const HlmMenubarConfigToken = new InjectionToken('HlmMenubarConfig');
31
+ function provideHlmMenubarConfig(config) {
32
+ return { provide: HlmMenubarConfigToken, useValue: { ...defaultConfig, ...config } };
33
+ }
34
+ function injectHlmMenubarConfig() {
35
+ return inject(HlmMenubarConfigToken, { optional: true }) ?? defaultConfig;
36
+ }
37
+
38
+ class HlmMenubarTrigger {
39
+ _cdkTrigger = inject(CdkMenuTrigger, { host: true });
40
+ _config = injectHlmMenubarConfig();
41
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
42
+ align = input(this._config.align, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
44
+ side = input(this._config.side, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
46
+ _menuPosition = computed(() => createMenuPosition(this.align(), this.side()), /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "_menuPosition" }] : /* istanbul ignore next */ []));
48
+ constructor() {
49
+ // CDK sets transform-origin on the menu content (a shared hlm-dropdown-menu) from the resolved
50
+ // position; the content reads it to animate from the anchored corner and to derive its data-side.
51
+ // Cast tolerates @angular/cdk < 21.2 (we still support >=21.0), where the property is absent and
52
+ // the assignment is a harmless no-op.
53
+ this._cdkTrigger.transformOriginSelector = '[data-slot="dropdown-menu"]';
54
+ effect(() => {
55
+ this._cdkTrigger.menuPosition = this._menuPosition();
56
+ });
57
+ classes(() => "hover:bg-muted aria-expanded:bg-muted rounded-sm px-2 py-1 text-sm font-medium flex items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50");
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
60
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmMenubarTrigger, isStandalone: true, selector: "button[hlmMenubarTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "menubar-trigger" }, properties: { "disabled": "disabled() ", "attr.data-disabled": "disabled() ? \"\" : null" } }, providers: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmMenubarTrigger) }], hostDirectives: [{ directive: i1.CdkMenuItem, inputs: ["cdkMenuItemDisabled", "disabled"] }, { directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "hlmMenubarTrigger", "cdkMenuTriggerData", "hlmMenubarTriggerData"], outputs: ["cdkMenuOpened", "hlmDropdownMenuOpened", "cdkMenuClosed", "hlmDropdownMenuClosed"] }], ngImport: i0 });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarTrigger, decorators: [{
63
+ type: Directive,
64
+ args: [{
65
+ selector: 'button[hlmMenubarTrigger]',
66
+ providers: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmMenubarTrigger) }],
67
+ hostDirectives: [
68
+ {
69
+ directive: CdkMenuItem,
70
+ inputs: ['cdkMenuItemDisabled: disabled'],
71
+ },
72
+ {
73
+ directive: CdkMenuTrigger,
74
+ inputs: ['cdkMenuTriggerFor: hlmMenubarTrigger', 'cdkMenuTriggerData: hlmMenubarTriggerData'],
75
+ outputs: ['cdkMenuOpened: hlmDropdownMenuOpened', 'cdkMenuClosed: hlmDropdownMenuClosed'],
76
+ },
77
+ ],
78
+ host: {
79
+ 'data-slot': 'menubar-trigger',
80
+ '[disabled]': 'disabled() ',
81
+ '[attr.data-disabled]': 'disabled() ? "" : null',
82
+ },
83
+ }]
84
+ }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }] } });
85
+
86
+ /*
87
+ * Public API Surface of menubar
88
+ */
89
+ const HlmMenubarImports = [HlmMenubar, HlmMenubarTrigger];
90
+ class HlmMenubarModule {
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
92
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarModule, imports: [HlmMenubar, HlmMenubarTrigger], exports: [HlmMenubar, HlmMenubarTrigger] });
93
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarModule });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmMenubarModule, decorators: [{
96
+ type: NgModule,
97
+ args: [{
98
+ imports: [...HlmMenubarImports],
99
+ exports: [...HlmMenubarImports],
100
+ }]
101
+ }] });
102
+
103
+ /**
104
+ * Generated bundle index. Do not edit.
105
+ */
106
+
107
+ export { HlmMenubar, HlmMenubarImports, HlmMenubarModule, HlmMenubarTrigger, injectHlmMenubarConfig, provideHlmMenubarConfig };
108
+
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "menubar",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^22.0.0",
6
+ "@angular/core": "^22.0.0",
7
+ "@spartan-ng/brain": "^1.1.1"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "sideEffects": false,
13
+ "module": "fesm2022/menubar.mjs",
14
+ "typings": "types/menubar.d.ts",
15
+ "exports": {
16
+ "./package.json": {
17
+ "default": "./package.json"
18
+ },
19
+ ".": {
20
+ "types": "./types/menubar.d.ts",
21
+ "default": "./fesm2022/menubar.mjs"
22
+ }
23
+ },
24
+ "type": "module"
25
+ }
@@ -0,0 +1,40 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ValueProvider } from '@angular/core';
3
+ import * as i1 from '@angular/cdk/menu';
4
+ import { BooleanInput } from '@angular/cdk/coercion';
5
+ import { MenuAlign, MenuSide } from '@spartan-ng/brain/core';
6
+
7
+ declare class HlmMenubar {
8
+ constructor();
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmMenubar, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HlmMenubar, "[hlmMenubar],hlm-menubar", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkMenuBar; inputs: {}; outputs: {}; }]>;
11
+ }
12
+
13
+ declare class HlmMenubarTrigger {
14
+ private readonly _cdkTrigger;
15
+ private readonly _config;
16
+ readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
17
+ readonly align: i0.InputSignal<MenuAlign>;
18
+ readonly side: i0.InputSignal<MenuSide>;
19
+ private readonly _menuPosition;
20
+ constructor();
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmMenubarTrigger, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HlmMenubarTrigger, "button[hlmMenubarTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkMenuItem; inputs: { "cdkMenuItemDisabled": "disabled"; }; outputs: {}; }, { directive: typeof i1.CdkMenuTrigger; inputs: { "cdkMenuTriggerFor": "hlmMenubarTrigger"; "cdkMenuTriggerData": "hlmMenubarTriggerData"; }; outputs: { "cdkMenuOpened": "hlmDropdownMenuOpened"; "cdkMenuClosed": "hlmDropdownMenuClosed"; }; }]>;
23
+ }
24
+
25
+ interface HlmMenubarConfig {
26
+ align: MenuAlign;
27
+ side: MenuSide;
28
+ }
29
+ declare function provideHlmMenubarConfig(config: Partial<HlmMenubarConfig>): ValueProvider;
30
+ declare function injectHlmMenubarConfig(): HlmMenubarConfig;
31
+
32
+ declare const HlmMenubarImports: readonly [typeof HlmMenubar, typeof HlmMenubarTrigger];
33
+ declare class HlmMenubarModule {
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<HlmMenubarModule, never>;
35
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HlmMenubarModule, never, [typeof HlmMenubar, typeof HlmMenubarTrigger], [typeof HlmMenubar, typeof HlmMenubarTrigger]>;
36
+ static ɵinj: i0.ɵɵInjectorDeclaration<HlmMenubarModule>;
37
+ }
38
+
39
+ export { HlmMenubar, HlmMenubarImports, HlmMenubarModule, HlmMenubarTrigger, injectHlmMenubarConfig, provideHlmMenubarConfig };
40
+ export type { HlmMenubarConfig };
@@ -0,0 +1,11 @@
1
+ # NativeSelect
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli).
4
+
5
+ ## Building
6
+
7
+ To build the library, run:
8
+
9
+ ```bash
10
+ ng build native-select
11
+ ```
@@ -0,0 +1,207 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, inject, input, computed, booleanAttribute, linkedSignal, output, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { NgIcon, provideIcons } from '@ng-icons/core';
5
+ import { lucideChevronDown } from '@ng-icons/lucide';
6
+ import * as i1 from '@spartan-ng/brain/field';
7
+ import { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';
8
+ import { hlm, classes } from '@egose/shadcn-theme-ng/utils';
9
+
10
+ const HLM_NATIVE_SELECT_VALUE_ACCESSOR = {
11
+ provide: NG_VALUE_ACCESSOR,
12
+ useExisting: forwardRef(() => HlmNativeSelect),
13
+ multi: true,
14
+ };
15
+ class HlmNativeSelect {
16
+ _fieldControl = inject(BrnFieldControl, { optional: true });
17
+ static _id = 0;
18
+ selectId = input(`hlm-native-select-${HlmNativeSelect._id++}`, /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "selectId" }] : /* istanbul ignore next */ []));
20
+ selectClass = input('', /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "selectClass" }] : /* istanbul ignore next */ []));
22
+ _computedSelectClass = computed(() => hlm("border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 data-[matches-spartan-invalid=true]:ring-destructive/20 dark:data-[matches-spartan-invalid=true]:ring-destructive/40 data-[matches-spartan-invalid=true]:border-destructive dark:data-[matches-spartan-invalid=true]:border-destructive/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent py-1 ps-2.5 pe-8 text-sm shadow-xs transition-[color,box-shadow] select-none focus-visible:ring-3 data-[matches-spartan-invalid=true]:ring-3 data-[size=sm]:h-8 outline-none disabled:pointer-events-none disabled:cursor-not-allowed", this.selectClass()), /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "_computedSelectClass" }] : /* istanbul ignore next */ []));
24
+ selectIconClass = input('', /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "selectIconClass" }] : /* istanbul ignore next */ []));
26
+ _computedSelectIconClass = computed(() => hlm("text-muted-foreground end-2.5 top-1/2 -translate-y-1/2 text-[length:--spacing(4)] pointer-events-none absolute select-none", this.selectIconClass()), /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "_computedSelectIconClass" }] : /* istanbul ignore next */ []));
28
+ size = input('default', /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
30
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
31
+ _disabled = linkedSignal(this.disabled, /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
33
+ /** Whether to force the input into an invalid state. */
34
+ forceInvalid = input(false, { ...(ngDevMode ? { debugName: "forceInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
35
+ /** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */
36
+ ariaInvalidOverride = input(undefined, { ...(ngDevMode ? { debugName: "ariaInvalidOverride" } : /* istanbul ignore next */ {}), transform: (v) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),
37
+ alias: 'aria-invalid' });
38
+ _ariaInvalid = computed(() => this.ariaInvalidOverride() ?? this._invalid?.(), /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "_ariaInvalid" }] : /* istanbul ignore next */ []));
40
+ valueInput = input('', { ...(ngDevMode ? { debugName: "valueInput" } : /* istanbul ignore next */ {}), alias: 'value' });
41
+ value = linkedSignal(this.valueInput, /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
43
+ valueChange = output();
44
+ _onChange;
45
+ _onTouched;
46
+ labelableId = this.selectId;
47
+ _invalid = this._fieldControl?.invalid;
48
+ _touched = this._fieldControl?.touched;
49
+ _dirty = this._fieldControl?.dirty;
50
+ _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid(), /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "_spartanInvalid" }] : /* istanbul ignore next */ []));
52
+ constructor() {
53
+ classes(() => "group/native-select relative w-fit has-[select:disabled]:opacity-50");
54
+ }
55
+ _valueChanged(event) {
56
+ const value = event.target.value;
57
+ this.value.set(value);
58
+ this.valueChange.emit(value);
59
+ this._onChange?.(value);
60
+ this._onTouched?.();
61
+ }
62
+ _blur() {
63
+ this._onTouched?.();
64
+ }
65
+ /** CONTROL VALUE ACCESSOR */
66
+ writeValue(value) {
67
+ this.value.set(value);
68
+ }
69
+ registerOnChange(fn) {
70
+ this._onChange = fn;
71
+ }
72
+ registerOnTouched(fn) {
73
+ this._onTouched = fn;
74
+ }
75
+ setDisabledState(isDisabled) {
76
+ this._disabled.set(isDisabled);
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: HlmNativeSelect, isStandalone: true, selector: "hlm-native-select", inputs: { selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: false, transformFunction: null }, selectClass: { classPropertyName: "selectClass", publicName: "selectClass", isSignal: true, isRequired: false, transformFunction: null }, selectIconClass: { classPropertyName: "selectIconClass", publicName: "selectIconClass", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, forceInvalid: { classPropertyName: "forceInvalid", publicName: "forceInvalid", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalidOverride: { classPropertyName: "ariaInvalidOverride", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, valueInput: { classPropertyName: "valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-slot": "native-select-wrapper" }, properties: { "attr.data-size": "size()" } }, providers: [
80
+ HLM_NATIVE_SELECT_VALUE_ACCESSOR,
81
+ provideIcons({ lucideChevronDown }),
82
+ provideBrnLabelable(HlmNativeSelect),
83
+ ], hostDirectives: [{ directive: i1.BrnFieldControl }], ngImport: i0, template: `
84
+ <select
85
+ data-slot="native-select"
86
+ [id]="selectId()"
87
+ [class]="_computedSelectClass()"
88
+ [attr.data-size]="size()"
89
+ [attr.aria-invalid]="_ariaInvalid() ? 'true' : null"
90
+ [attr.data-invalid]="_ariaInvalid() ? 'true' : null"
91
+ [attr.data-dirty]="_dirty?.() ? 'true' : null"
92
+ [attr.data-touched]="_touched?.() ? 'true' : null"
93
+ [attr.data-matches-spartan-invalid]="_spartanInvalid() ? 'true' : null"
94
+ [value]="value()"
95
+ [disabled]="_disabled()"
96
+ (change)="_valueChanged($event)"
97
+ (blur)="_blur()"
98
+ >
99
+ <ng-content />
100
+ </select>
101
+
102
+ <ng-icon
103
+ name="lucideChevronDown"
104
+ [class]="_computedSelectIconClass()"
105
+ aria-hidden="true"
106
+ data-slot="native-select-icon"
107
+ />
108
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelect, decorators: [{
111
+ type: Component,
112
+ args: [{
113
+ selector: 'hlm-native-select',
114
+ imports: [NgIcon],
115
+ providers: [
116
+ HLM_NATIVE_SELECT_VALUE_ACCESSOR,
117
+ provideIcons({ lucideChevronDown }),
118
+ provideBrnLabelable(HlmNativeSelect),
119
+ ],
120
+ changeDetection: ChangeDetectionStrategy.OnPush,
121
+ hostDirectives: [BrnFieldControl],
122
+ host: {
123
+ 'data-slot': 'native-select-wrapper',
124
+ '[attr.data-size]': 'size()',
125
+ },
126
+ template: `
127
+ <select
128
+ data-slot="native-select"
129
+ [id]="selectId()"
130
+ [class]="_computedSelectClass()"
131
+ [attr.data-size]="size()"
132
+ [attr.aria-invalid]="_ariaInvalid() ? 'true' : null"
133
+ [attr.data-invalid]="_ariaInvalid() ? 'true' : null"
134
+ [attr.data-dirty]="_dirty?.() ? 'true' : null"
135
+ [attr.data-touched]="_touched?.() ? 'true' : null"
136
+ [attr.data-matches-spartan-invalid]="_spartanInvalid() ? 'true' : null"
137
+ [value]="value()"
138
+ [disabled]="_disabled()"
139
+ (change)="_valueChanged($event)"
140
+ (blur)="_blur()"
141
+ >
142
+ <ng-content />
143
+ </select>
144
+
145
+ <ng-icon
146
+ name="lucideChevronDown"
147
+ [class]="_computedSelectIconClass()"
148
+ aria-hidden="true"
149
+ data-slot="native-select-icon"
150
+ />
151
+ `,
152
+ }]
153
+ }], ctorParameters: () => [], propDecorators: { selectId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectId", required: false }] }], selectClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectClass", required: false }] }], selectIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectIconClass", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], forceInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceInvalid", required: false }] }], ariaInvalidOverride: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-invalid", required: false }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
154
+
155
+ class HlmNativeSelectOptGroup {
156
+ constructor() {
157
+ classes(() => "bg-[Canvas] text-[CanvasText]");
158
+ }
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectOptGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
160
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmNativeSelectOptGroup, isStandalone: true, selector: "optgroup[hlmNativeSelectOptGroup]", host: { attributes: { "data-slot": "native-select-optgroup" } }, ngImport: i0 });
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectOptGroup, decorators: [{
163
+ type: Directive,
164
+ args: [{
165
+ selector: 'optgroup[hlmNativeSelectOptGroup]',
166
+ host: { 'data-slot': 'native-select-optgroup' },
167
+ }]
168
+ }], ctorParameters: () => [] });
169
+
170
+ class HlmNativeSelectOption {
171
+ constructor() {
172
+ classes(() => "bg-[Canvas] text-[CanvasText]");
173
+ }
174
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
175
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmNativeSelectOption, isStandalone: true, selector: "option[hlmNativeSelectOption]", host: { attributes: { "data-slot": "native-select-option" } }, ngImport: i0 });
176
+ }
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectOption, decorators: [{
178
+ type: Directive,
179
+ args: [{
180
+ selector: 'option[hlmNativeSelectOption]',
181
+ host: { 'data-slot': 'native-select-option' },
182
+ }]
183
+ }], ctorParameters: () => [] });
184
+
185
+ /*
186
+ * Public API Surface of native-select
187
+ */
188
+ const HlmNativeSelectImports = [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup];
189
+ class HlmNativeSelectModule {
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
191
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectModule, imports: [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup], exports: [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup] });
192
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectModule, imports: [HlmNativeSelect] });
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmNativeSelectModule, decorators: [{
195
+ type: NgModule,
196
+ args: [{
197
+ imports: [...HlmNativeSelectImports],
198
+ exports: [...HlmNativeSelectImports],
199
+ }]
200
+ }] });
201
+
202
+ /**
203
+ * Generated bundle index. Do not edit.
204
+ */
205
+
206
+ export { HLM_NATIVE_SELECT_VALUE_ACCESSOR, HlmNativeSelect, HlmNativeSelectImports, HlmNativeSelectModule, HlmNativeSelectOptGroup, HlmNativeSelectOption };
207
+
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "native-select",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^22.0.0",
6
+ "@angular/core": "^22.0.0",
7
+ "@spartan-ng/brain": "^1.1.1"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "sideEffects": false,
13
+ "module": "fesm2022/native-select.mjs",
14
+ "typings": "types/native-select.d.ts",
15
+ "exports": {
16
+ "./package.json": {
17
+ "default": "./package.json"
18
+ },
19
+ ".": {
20
+ "types": "./types/native-select.d.ts",
21
+ "default": "./fesm2022/native-select.mjs"
22
+ }
23
+ },
24
+ "type": "module"
25
+ }
@@ -0,0 +1,70 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { BooleanInput } from '@angular/cdk/coercion';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
5
+ import { ClassValue } from 'clsx';
6
+ import * as i1 from '@spartan-ng/brain/field';
7
+
8
+ declare const HLM_NATIVE_SELECT_VALUE_ACCESSOR: {
9
+ provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
10
+ useExisting: _angular_core.Type<any>;
11
+ multi: boolean;
12
+ };
13
+ declare class HlmNativeSelect implements ControlValueAccessor {
14
+ private readonly _fieldControl;
15
+ private static _id;
16
+ readonly selectId: _angular_core.InputSignal<string>;
17
+ readonly selectClass: _angular_core.InputSignal<ClassValue>;
18
+ protected readonly _computedSelectClass: _angular_core.Signal<string>;
19
+ readonly selectIconClass: _angular_core.InputSignal<ClassValue>;
20
+ protected readonly _computedSelectIconClass: _angular_core.Signal<string>;
21
+ readonly size: _angular_core.InputSignal<"sm" | "default">;
22
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
23
+ protected readonly _disabled: _angular_core.WritableSignal<boolean>;
24
+ /** Whether to force the input into an invalid state. */
25
+ readonly forceInvalid: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
26
+ /** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */
27
+ readonly ariaInvalidOverride: _angular_core.InputSignalWithTransform<boolean | undefined, BooleanInput>;
28
+ protected readonly _ariaInvalid: _angular_core.Signal<boolean | null | undefined>;
29
+ readonly valueInput: _angular_core.InputSignal<string | null | undefined>;
30
+ readonly value: _angular_core.WritableSignal<string | null | undefined>;
31
+ readonly valueChange: _angular_core.OutputEmitterRef<string | null | undefined>;
32
+ protected _onChange?: ChangeFn<string | undefined | null>;
33
+ protected _onTouched?: TouchFn;
34
+ readonly labelableId: _angular_core.InputSignal<string>;
35
+ protected readonly _invalid: _angular_core.Signal<boolean | null> | undefined;
36
+ protected readonly _touched: _angular_core.Signal<boolean | null> | undefined;
37
+ protected readonly _dirty: _angular_core.Signal<boolean | null> | undefined;
38
+ protected readonly _spartanInvalid: _angular_core.Signal<boolean | null | undefined>;
39
+ constructor();
40
+ protected _valueChanged(event: Event): void;
41
+ protected _blur(): void;
42
+ /** CONTROL VALUE ACCESSOR */
43
+ writeValue(value: string | undefined | null): void;
44
+ registerOnChange(fn: ChangeFn<string | undefined | null>): void;
45
+ registerOnTouched(fn: TouchFn): void;
46
+ setDisabledState(isDisabled: boolean): void;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmNativeSelect, never>;
48
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmNativeSelect, "hlm-native-select", never, { "selectId": { "alias": "selectId"; "required": false; "isSignal": true; }; "selectClass": { "alias": "selectClass"; "required": false; "isSignal": true; }; "selectIconClass": { "alias": "selectIconClass"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "forceInvalid": { "alias": "forceInvalid"; "required": false; "isSignal": true; }; "ariaInvalidOverride": { "alias": "aria-invalid"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, [{ directive: typeof i1.BrnFieldControl; inputs: {}; outputs: {}; }]>;
49
+ }
50
+
51
+ declare class HlmNativeSelectOptGroup {
52
+ constructor();
53
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmNativeSelectOptGroup, never>;
54
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmNativeSelectOptGroup, "optgroup[hlmNativeSelectOptGroup]", never, {}, {}, never, never, true, never>;
55
+ }
56
+
57
+ declare class HlmNativeSelectOption {
58
+ constructor();
59
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmNativeSelectOption, never>;
60
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<HlmNativeSelectOption, "option[hlmNativeSelectOption]", never, {}, {}, never, never, true, never>;
61
+ }
62
+
63
+ declare const HlmNativeSelectImports: readonly [typeof HlmNativeSelect, typeof HlmNativeSelectOption, typeof HlmNativeSelectOptGroup];
64
+ declare class HlmNativeSelectModule {
65
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmNativeSelectModule, never>;
66
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<HlmNativeSelectModule, never, [typeof HlmNativeSelect, typeof HlmNativeSelectOption, typeof HlmNativeSelectOptGroup], [typeof HlmNativeSelect, typeof HlmNativeSelectOption, typeof HlmNativeSelectOptGroup]>;
67
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<HlmNativeSelectModule>;
68
+ }
69
+
70
+ export { HLM_NATIVE_SELECT_VALUE_ACCESSOR, HlmNativeSelect, HlmNativeSelectImports, HlmNativeSelectModule, HlmNativeSelectOptGroup, HlmNativeSelectOption };
@@ -0,0 +1,11 @@
1
+ # NavigationMenu
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli).
4
+
5
+ ## Building
6
+
7
+ To build the library, run:
8
+
9
+ ```bash
10
+ ng build navigation-menu
11
+ ```