@egose/shadcn-theme-ng 0.0.26 → 0.0.28

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 (333) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +107 -2
  3. package/accordion/fesm2022/accordion.mjs +42 -37
  4. package/accordion/fesm2022/accordion.mjs.map +1 -1
  5. package/accordion/package.json +25 -0
  6. package/accordion/{index.d.ts → types/accordion.d.ts} +1 -1
  7. package/alert/fesm2022/alert.mjs +32 -27
  8. package/alert/fesm2022/alert.mjs.map +1 -1
  9. package/alert/package.json +25 -0
  10. package/alert-dialog/README.md +11 -0
  11. package/alert-dialog/fesm2022/alert-dialog.mjs +287 -0
  12. package/alert-dialog/fesm2022/alert-dialog.mjs.map +1 -0
  13. package/alert-dialog/package.json +25 -0
  14. package/alert-dialog/types/alert-dialog.d.ts +90 -0
  15. package/aspect-ratio/README.md +11 -0
  16. package/aspect-ratio/fesm2022/aspect-ratio.mjs +62 -0
  17. package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +1 -0
  18. package/aspect-ratio/package.json +25 -0
  19. package/aspect-ratio/types/aspect-ratio.d.ts +21 -0
  20. package/autocomplete/fesm2022/autocomplete.mjs +323 -457
  21. package/autocomplete/fesm2022/autocomplete.mjs.map +1 -1
  22. package/autocomplete/package.json +24 -0
  23. package/autocomplete/types/autocomplete.d.ts +96 -0
  24. package/avatar/README.md +11 -0
  25. package/avatar/fesm2022/avatar.mjs +178 -0
  26. package/avatar/fesm2022/avatar.mjs.map +1 -0
  27. package/avatar/package.json +25 -0
  28. package/avatar/types/avatar.d.ts +50 -0
  29. package/badge/fesm2022/badge.mjs +16 -10
  30. package/badge/fesm2022/badge.mjs.map +1 -1
  31. package/badge/package.json +25 -0
  32. package/basic-alert/fesm2022/basic-alert.mjs +12 -8
  33. package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
  34. package/basic-alert/package.json +24 -0
  35. package/breadcrumb/README.md +11 -0
  36. package/breadcrumb/fesm2022/breadcrumb.mjs +224 -0
  37. package/breadcrumb/fesm2022/breadcrumb.mjs.map +1 -0
  38. package/breadcrumb/package.json +25 -0
  39. package/breadcrumb/types/breadcrumb.d.ts +57 -0
  40. package/button/fesm2022/button.mjs +100 -26
  41. package/button/fesm2022/button.mjs.map +1 -1
  42. package/button/package.json +25 -0
  43. package/button/{index.d.ts → types/button.d.ts} +30 -9
  44. package/button-group/README.md +11 -0
  45. package/button-group/fesm2022/button-group.mjs +102 -0
  46. package/button-group/fesm2022/button-group.mjs.map +1 -0
  47. package/button-group/package.json +25 -0
  48. package/button-group/types/button-group.d.ts +30 -0
  49. package/calendar/fesm2022/calendar.mjs +868 -546
  50. package/calendar/fesm2022/calendar.mjs.map +1 -1
  51. package/calendar/package.json +24 -0
  52. package/calendar/types/calendar.d.ts +94 -0
  53. package/card/README.md +11 -0
  54. package/card/fesm2022/card.mjs +169 -0
  55. package/card/fesm2022/card.mjs.map +1 -0
  56. package/card/package.json +25 -0
  57. package/card/types/card.d.ts +54 -0
  58. package/carousel/README.md +11 -0
  59. package/carousel/fesm2022/carousel.mjs +309 -0
  60. package/carousel/fesm2022/carousel.mjs.map +1 -0
  61. package/carousel/package.json +25 -0
  62. package/carousel/types/carousel.d.ts +84 -0
  63. package/checkbox/fesm2022/checkbox.mjs +25 -20
  64. package/checkbox/fesm2022/checkbox.mjs.map +1 -1
  65. package/checkbox/package.json +24 -0
  66. package/collapsible/README.md +11 -0
  67. package/collapsible/fesm2022/collapsible.mjs +77 -0
  68. package/collapsible/fesm2022/collapsible.mjs.map +1 -0
  69. package/collapsible/package.json +25 -0
  70. package/collapsible/types/collapsible.d.ts +27 -0
  71. package/combobox/README.md +11 -0
  72. package/combobox/fesm2022/combobox.mjs +683 -0
  73. package/combobox/fesm2022/combobox.mjs.map +1 -0
  74. package/combobox/package.json +25 -0
  75. package/combobox/types/combobox.d.ts +151 -0
  76. package/command/README.md +11 -0
  77. package/command/fesm2022/command.mjs +361 -0
  78. package/command/fesm2022/command.mjs.map +1 -0
  79. package/command/package.json +25 -0
  80. package/command/types/command.d.ts +89 -0
  81. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +19 -8
  82. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -1
  83. package/confirmation-dialog/package.json +24 -0
  84. package/context-menu/README.md +11 -0
  85. package/context-menu/fesm2022/context-menu.mjs +89 -0
  86. package/context-menu/fesm2022/context-menu.mjs.map +1 -0
  87. package/context-menu/package.json +25 -0
  88. package/context-menu/types/context-menu.d.ts +34 -0
  89. package/date-picker/fesm2022/date-picker.mjs +1262 -307
  90. package/date-picker/fesm2022/date-picker.mjs.map +1 -1
  91. package/date-picker/package.json +24 -0
  92. package/date-picker/types/date-picker.d.ts +551 -0
  93. package/dialog/fesm2022/dialog.mjs +137 -108
  94. package/dialog/fesm2022/dialog.mjs.map +1 -1
  95. package/dialog/package.json +24 -0
  96. package/dialog/types/dialog.d.ts +95 -0
  97. package/drawer/README.md +11 -0
  98. package/drawer/fesm2022/drawer.mjs +271 -0
  99. package/drawer/fesm2022/drawer.mjs.map +1 -0
  100. package/drawer/package.json +25 -0
  101. package/drawer/types/drawer.d.ts +76 -0
  102. package/dropdown-menu/README.md +11 -0
  103. package/dropdown-menu/fesm2022/dropdown-menu.mjs +542 -0
  104. package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +1 -0
  105. package/dropdown-menu/package.json +25 -0
  106. package/dropdown-menu/types/dropdown-menu.d.ts +176 -0
  107. package/empty/README.md +11 -0
  108. package/empty/fesm2022/empty.mjs +151 -0
  109. package/empty/fesm2022/empty.mjs.map +1 -0
  110. package/empty/package.json +25 -0
  111. package/empty/types/empty.d.ts +54 -0
  112. package/field/README.md +11 -0
  113. package/field/fesm2022/field.mjs +367 -0
  114. package/field/fesm2022/field.mjs.map +1 -0
  115. package/field/package.json +25 -0
  116. package/field/types/field.d.ts +107 -0
  117. package/form-checkbox/fesm2022/form-checkbox.mjs +39 -22
  118. package/form-checkbox/fesm2022/form-checkbox.mjs.map +1 -1
  119. package/form-checkbox/package.json +24 -0
  120. package/form-date-picker/fesm2022/form-date-picker.mjs +58 -51
  121. package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -1
  122. package/form-date-picker/package.json +24 -0
  123. package/form-field/fesm2022/form-field.mjs +39 -27
  124. package/form-field/fesm2022/form-field.mjs.map +1 -1
  125. package/form-field/package.json +25 -0
  126. package/form-field/{index.d.ts → types/form-field.d.ts} +4 -3
  127. package/form-field-simple/fesm2022/form-field-simple.mjs +15 -10
  128. package/form-field-simple/fesm2022/form-field-simple.mjs.map +1 -1
  129. package/form-field-simple/package.json +24 -0
  130. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +44 -25
  131. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -1
  132. package/form-searchable-multiselect/package.json +24 -0
  133. package/form-select/fesm2022/form-select.mjs +132 -71
  134. package/form-select/fesm2022/form-select.mjs.map +1 -1
  135. package/form-select/package.json +24 -0
  136. package/form-text-input/fesm2022/form-text-input.mjs +68 -39
  137. package/form-text-input/fesm2022/form-text-input.mjs.map +1 -1
  138. package/form-text-input/package.json +24 -0
  139. package/form-textarea/fesm2022/form-textarea.mjs +54 -30
  140. package/form-textarea/fesm2022/form-textarea.mjs.map +1 -1
  141. package/form-textarea/package.json +24 -0
  142. package/hover-card/README.md +11 -0
  143. package/hover-card/fesm2022/hover-card.mjs +123 -0
  144. package/hover-card/fesm2022/hover-card.mjs.map +1 -0
  145. package/hover-card/package.json +25 -0
  146. package/hover-card/types/hover-card.d.ts +36 -0
  147. package/icon/fesm2022/icon.mjs +12 -10
  148. package/icon/fesm2022/icon.mjs.map +1 -1
  149. package/icon/package.json +25 -0
  150. package/input/fesm2022/input.mjs +20 -70
  151. package/input/fesm2022/input.mjs.map +1 -1
  152. package/input/package.json +25 -0
  153. package/input/types/input.d.ts +18 -0
  154. package/input-group/README.md +11 -0
  155. package/input-group/fesm2022/input-group.mjs +199 -0
  156. package/input-group/fesm2022/input-group.mjs.map +1 -0
  157. package/input-group/package.json +25 -0
  158. package/input-group/types/input-group.d.ts +52 -0
  159. package/input-otp/README.md +11 -0
  160. package/input-otp/fesm2022/input-otp.mjs +141 -0
  161. package/input-otp/fesm2022/input-otp.mjs.map +1 -0
  162. package/input-otp/package.json +25 -0
  163. package/input-otp/types/input-otp.d.ts +43 -0
  164. package/item/README.md +11 -0
  165. package/item/fesm2022/item.mjs +278 -0
  166. package/item/fesm2022/item.mjs.map +1 -0
  167. package/item/package.json +25 -0
  168. package/item/types/item.d.ts +101 -0
  169. package/kbd/README.md +11 -0
  170. package/kbd/fesm2022/kbd.mjs +61 -0
  171. package/kbd/fesm2022/kbd.mjs.map +1 -0
  172. package/kbd/package.json +25 -0
  173. package/kbd/types/kbd.d.ts +22 -0
  174. package/label/fesm2022/label.mjs +11 -10
  175. package/label/fesm2022/label.mjs.map +1 -1
  176. package/label/package.json +25 -0
  177. package/layout-simple/fesm2022/layout-simple.mjs +438 -325
  178. package/layout-simple/fesm2022/layout-simple.mjs.map +1 -1
  179. package/layout-simple/package.json +24 -0
  180. package/layout-simple/{index.d.ts → types/layout-simple.d.ts} +28 -17
  181. package/menubar/README.md +11 -0
  182. package/menubar/fesm2022/menubar.mjs +108 -0
  183. package/menubar/fesm2022/menubar.mjs.map +1 -0
  184. package/menubar/package.json +25 -0
  185. package/menubar/types/menubar.d.ts +40 -0
  186. package/native-select/README.md +11 -0
  187. package/native-select/fesm2022/native-select.mjs +207 -0
  188. package/native-select/fesm2022/native-select.mjs.map +1 -0
  189. package/native-select/package.json +25 -0
  190. package/native-select/types/native-select.d.ts +70 -0
  191. package/navigation-menu/README.md +11 -0
  192. package/navigation-menu/fesm2022/navigation-menu.mjs +206 -0
  193. package/navigation-menu/fesm2022/navigation-menu.mjs.map +1 -0
  194. package/navigation-menu/package.json +25 -0
  195. package/navigation-menu/types/navigation-menu.d.ts +54 -0
  196. package/package.json +223 -81
  197. package/pagination/README.md +11 -0
  198. package/pagination/fesm2022/pagination.mjs +808 -0
  199. package/pagination/fesm2022/pagination.mjs.map +1 -0
  200. package/pagination/package.json +25 -0
  201. package/pagination/types/pagination.d.ts +192 -0
  202. package/popover/fesm2022/popover.mjs +121 -27
  203. package/popover/fesm2022/popover.mjs.map +1 -1
  204. package/popover/package.json +24 -0
  205. package/popover/types/popover.d.ts +54 -0
  206. package/progress/README.md +11 -0
  207. package/progress/fesm2022/progress.mjs +77 -0
  208. package/progress/fesm2022/progress.mjs.map +1 -0
  209. package/progress/package.json +25 -0
  210. package/progress/types/progress.d.ts +27 -0
  211. package/radio-group/fesm2022/radio-group.mjs +96 -62
  212. package/radio-group/fesm2022/radio-group.mjs.map +1 -1
  213. package/radio-group/package.json +25 -0
  214. package/radio-group/{index.d.ts → types/radio-group.d.ts} +22 -14
  215. package/resizable/README.md +11 -0
  216. package/resizable/fesm2022/resizable.mjs +111 -0
  217. package/resizable/fesm2022/resizable.mjs.map +1 -0
  218. package/resizable/package.json +25 -0
  219. package/resizable/types/resizable.d.ts +32 -0
  220. package/scroll-area/README.md +11 -0
  221. package/scroll-area/fesm2022/scroll-area.mjs +51 -0
  222. package/scroll-area/fesm2022/scroll-area.mjs.map +1 -0
  223. package/scroll-area/package.json +25 -0
  224. package/scroll-area/types/scroll-area.d.ts +16 -0
  225. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +92 -88
  226. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -1
  227. package/searchable-multiselect/package.json +24 -0
  228. package/searchable-multiselect/{index.d.ts → types/searchable-multiselect.d.ts} +13 -24
  229. package/select/fesm2022/select.mjs +371 -189
  230. package/select/fesm2022/select.mjs.map +1 -1
  231. package/select/package.json +25 -0
  232. package/select/types/select.d.ts +119 -0
  233. package/separator/fesm2022/separator.mjs +16 -14
  234. package/separator/fesm2022/separator.mjs.map +1 -1
  235. package/separator/package.json +24 -0
  236. package/separator/{index.d.ts → types/separator.d.ts} +4 -5
  237. package/sheet/fesm2022/sheet.mjs +57 -51
  238. package/sheet/fesm2022/sheet.mjs.map +1 -1
  239. package/sheet/package.json +24 -0
  240. package/sidebar/README.md +11 -0
  241. package/sidebar/fesm2022/sidebar.mjs +948 -0
  242. package/sidebar/fesm2022/sidebar.mjs.map +1 -0
  243. package/sidebar/package.json +25 -0
  244. package/sidebar/types/sidebar.d.ts +237 -0
  245. package/skeleton/README.md +11 -0
  246. package/skeleton/fesm2022/skeleton.mjs +44 -0
  247. package/skeleton/fesm2022/skeleton.mjs.map +1 -0
  248. package/skeleton/package.json +25 -0
  249. package/skeleton/types/skeleton.d.ts +16 -0
  250. package/slider/README.md +11 -0
  251. package/slider/fesm2022/slider.mjs +144 -0
  252. package/slider/fesm2022/slider.mjs.map +1 -0
  253. package/slider/package.json +25 -0
  254. package/slider/types/slider.d.ts +19 -0
  255. package/sonner/fesm2022/sonner.mjs +30 -35
  256. package/sonner/fesm2022/sonner.mjs.map +1 -1
  257. package/sonner/package.json +25 -0
  258. package/spinner/fesm2022/spinner.mjs +18 -14
  259. package/spinner/fesm2022/spinner.mjs.map +1 -1
  260. package/spinner/package.json +25 -0
  261. package/switch/fesm2022/switch.mjs +29 -26
  262. package/switch/fesm2022/switch.mjs.map +1 -1
  263. package/switch/package.json +25 -0
  264. package/table/README.md +11 -0
  265. package/table/fesm2022/table.mjs +211 -0
  266. package/table/fesm2022/table.mjs.map +1 -0
  267. package/table/package.json +25 -0
  268. package/table/types/table.d.ts +87 -0
  269. package/tabs/fesm2022/tabs.mjs +131 -103
  270. package/tabs/fesm2022/tabs.mjs.map +1 -1
  271. package/tabs/package.json +25 -0
  272. package/tabs/types/tabs.d.ts +71 -0
  273. package/textarea/README.md +11 -0
  274. package/textarea/fesm2022/textarea.mjs +47 -0
  275. package/textarea/fesm2022/textarea.mjs.map +1 -0
  276. package/textarea/package.json +25 -0
  277. package/textarea/types/textarea.d.ts +18 -0
  278. package/toggle/README.md +11 -0
  279. package/toggle/fesm2022/toggle.mjs +78 -0
  280. package/toggle/fesm2022/toggle.mjs.map +1 -0
  281. package/toggle/package.json +25 -0
  282. package/toggle/types/toggle.d.ts +27 -0
  283. package/toggle-group/README.md +11 -0
  284. package/toggle-group/fesm2022/toggle-group.mjs +117 -0
  285. package/toggle-group/fesm2022/toggle-group.mjs.map +1 -0
  286. package/toggle-group/package.json +25 -0
  287. package/toggle-group/types/toggle-group.d.ts +39 -0
  288. package/tooltip/fesm2022/tooltip.mjs +33 -54
  289. package/tooltip/fesm2022/tooltip.mjs.map +1 -1
  290. package/tooltip/package.json +25 -0
  291. package/tooltip/types/tooltip.d.ts +22 -0
  292. package/typography/README.md +11 -0
  293. package/typography/fesm2022/typography.mjs +242 -0
  294. package/typography/fesm2022/typography.mjs.map +1 -0
  295. package/typography/package.json +25 -0
  296. package/typography/types/typography.d.ts +94 -0
  297. package/utils/fesm2022/utils.mjs +184 -1
  298. package/utils/fesm2022/utils.mjs.map +1 -1
  299. package/utils/package.json +25 -0
  300. package/utils/types/utils.d.ts +13 -0
  301. package/autocomplete/index.d.ts +0 -162
  302. package/calendar/index.d.ts +0 -111
  303. package/date-picker/index.d.ts +0 -227
  304. package/dialog/index.d.ts +0 -89
  305. package/exports.json +0 -1
  306. package/input/index.d.ts +0 -41
  307. package/menu/README.md +0 -64
  308. package/menu/fesm2022/menu.mjs +0 -449
  309. package/menu/fesm2022/menu.mjs.map +0 -1
  310. package/menu/index.d.ts +0 -137
  311. package/popover/index.d.ts +0 -30
  312. package/select/index.d.ts +0 -92
  313. package/tabs/index.d.ts +0 -71
  314. package/tooltip/index.d.ts +0 -21
  315. package/utils/index.d.ts +0 -5
  316. /package/alert/{index.d.ts → types/alert.d.ts} +0 -0
  317. /package/badge/{index.d.ts → types/badge.d.ts} +0 -0
  318. /package/basic-alert/{index.d.ts → types/basic-alert.d.ts} +0 -0
  319. /package/checkbox/{index.d.ts → types/checkbox.d.ts} +0 -0
  320. /package/confirmation-dialog/{index.d.ts → types/confirmation-dialog.d.ts} +0 -0
  321. /package/form-checkbox/{index.d.ts → types/form-checkbox.d.ts} +0 -0
  322. /package/form-date-picker/{index.d.ts → types/form-date-picker.d.ts} +0 -0
  323. /package/form-field-simple/{index.d.ts → types/form-field-simple.d.ts} +0 -0
  324. /package/form-searchable-multiselect/{index.d.ts → types/form-searchable-multiselect.d.ts} +0 -0
  325. /package/form-select/{index.d.ts → types/form-select.d.ts} +0 -0
  326. /package/form-text-input/{index.d.ts → types/form-text-input.d.ts} +0 -0
  327. /package/form-textarea/{index.d.ts → types/form-textarea.d.ts} +0 -0
  328. /package/icon/{index.d.ts → types/icon.d.ts} +0 -0
  329. /package/label/{index.d.ts → types/label.d.ts} +0 -0
  330. /package/sheet/{index.d.ts → types/sheet.d.ts} +0 -0
  331. /package/sonner/{index.d.ts → types/sonner.d.ts} +0 -0
  332. /package/spinner/{index.d.ts → types/spinner.d.ts} +0 -0
  333. /package/switch/{index.d.ts → types/switch.d.ts} +0 -0
@@ -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.0.7", ngImport: i0, type: HlmNativeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", 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.0.7", 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.0.7", ngImport: i0, type: HlmNativeSelectOptGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
160
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", 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.0.7", 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.0.7", ngImport: i0, type: HlmNativeSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
175
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", 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.0.7", 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.0.7", ngImport: i0, type: HlmNativeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
191
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmNativeSelectModule, imports: [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup], exports: [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup] });
192
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNativeSelectModule, imports: [HlmNativeSelect] });
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", 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
+ //# sourceMappingURL=native-select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-select.mjs","sources":["../../../projects/native-select/src/lib/hlm-native-select.ts","../../../projects/native-select/src/lib/hlm-native-select-opt-group.ts","../../../projects/native-select/src/lib/hlm-native-select-option.ts","../../../projects/native-select/src/public-api.ts","../../../projects/native-select/src/native-select.ts"],"sourcesContent":["import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnFieldControl, provideBrnLabelable } from '@spartan-ng/brain/field';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { classes, hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\nexport const HLM_NATIVE_SELECT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmNativeSelect),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-native-select',\n imports: [NgIcon],\n providers: [\n HLM_NATIVE_SELECT_VALUE_ACCESSOR,\n provideIcons({ lucideChevronDown }),\n provideBrnLabelable(HlmNativeSelect),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [BrnFieldControl],\n host: {\n 'data-slot': 'native-select-wrapper',\n '[attr.data-size]': 'size()',\n },\n template: `\n <select\n data-slot=\"native-select\"\n [id]=\"selectId()\"\n [class]=\"_computedSelectClass()\"\n [attr.data-size]=\"size()\"\n [attr.aria-invalid]=\"_ariaInvalid() ? 'true' : null\"\n [attr.data-invalid]=\"_ariaInvalid() ? 'true' : null\"\n [attr.data-dirty]=\"_dirty?.() ? 'true' : null\"\n [attr.data-touched]=\"_touched?.() ? 'true' : null\"\n [attr.data-matches-spartan-invalid]=\"_spartanInvalid() ? 'true' : null\"\n [value]=\"value()\"\n [disabled]=\"_disabled()\"\n (change)=\"_valueChanged($event)\"\n (blur)=\"_blur()\"\n >\n <ng-content />\n </select>\n\n <ng-icon\n name=\"lucideChevronDown\"\n [class]=\"_computedSelectIconClass()\"\n aria-hidden=\"true\"\n data-slot=\"native-select-icon\"\n />\n `,\n})\nexport class HlmNativeSelect implements ControlValueAccessor {\n private readonly _fieldControl = inject(BrnFieldControl, { optional: true });\n\n private static _id = 0;\n\n public readonly selectId = input<string>(`hlm-native-select-${HlmNativeSelect._id++}`);\n\n public readonly selectClass = input<ClassValue>('');\n\n protected readonly _computedSelectClass = computed(() =>\n hlm(\n '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',\n this.selectClass(),\n ),\n );\n\n public readonly selectIconClass = input<ClassValue>('');\n\n protected readonly _computedSelectIconClass = computed(() =>\n hlm(\n 'text-muted-foreground end-2.5 top-1/2 -translate-y-1/2 text-[length:--spacing(4)] pointer-events-none absolute select-none',\n this.selectIconClass(),\n ),\n );\n\n public readonly size = input<'sm' | 'default'>('default');\n\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n /** Whether to force the input into an invalid state. */\n public readonly forceInvalid = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Manual override for aria-invalid. When not set, auto-detects from the parent autocomplete error state. */\n public readonly ariaInvalidOverride = input<boolean | undefined, BooleanInput>(undefined, {\n transform: (v: BooleanInput) => (v === '' || v === undefined ? undefined : booleanAttribute(v)),\n alias: 'aria-invalid',\n });\n\n protected readonly _ariaInvalid = computed(() => this.ariaInvalidOverride() ?? this._invalid?.());\n\n public readonly valueInput = input<string | undefined | null>('', { alias: 'value' });\n public readonly value = linkedSignal(this.valueInput);\n\n public readonly valueChange = output<string | undefined | null>();\n\n protected _onChange?: ChangeFn<string | undefined | null>;\n protected _onTouched?: TouchFn;\n\n public readonly labelableId = this.selectId;\n\n protected readonly _invalid = this._fieldControl?.invalid;\n protected readonly _touched = this._fieldControl?.touched;\n protected readonly _dirty = this._fieldControl?.dirty;\n protected readonly _spartanInvalid = computed(() => this.forceInvalid() || this._fieldControl?.spartanInvalid());\n\n constructor() {\n classes(() => 'group/native-select relative w-fit has-[select:disabled]:opacity-50');\n }\n\n protected _valueChanged(event: Event): void {\n const value = (event.target as HTMLSelectElement).value;\n this.value.set(value);\n this.valueChange.emit(value);\n this._onChange?.(value);\n this._onTouched?.();\n }\n\n protected _blur(): void {\n this._onTouched?.();\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: string | undefined | null): void {\n this.value.set(value);\n }\n\n public registerOnChange(fn: ChangeFn<string | undefined | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'optgroup[hlmNativeSelectOptGroup]',\n host: { 'data-slot': 'native-select-optgroup' },\n})\nexport class HlmNativeSelectOptGroup {\n constructor() {\n classes(() => 'bg-[Canvas] text-[CanvasText]');\n }\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'option[hlmNativeSelectOption]',\n host: { 'data-slot': 'native-select-option' },\n})\nexport class HlmNativeSelectOption {\n constructor() {\n classes(() => 'bg-[Canvas] text-[CanvasText]');\n }\n}\n","/*\n * Public API Surface of native-select\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmNativeSelect } from './lib/hlm-native-select';\nimport { HlmNativeSelectOptGroup } from './lib/hlm-native-select-opt-group';\nimport { HlmNativeSelectOption } from './lib/hlm-native-select-option';\n\nexport * from './lib/hlm-native-select';\nexport * from './lib/hlm-native-select-opt-group';\nexport * from './lib/hlm-native-select-option';\n\nexport const HlmNativeSelectImports = [HlmNativeSelect, HlmNativeSelectOption, HlmNativeSelectOptGroup] as const;\n\n@NgModule({\n imports: [...HlmNativeSelectImports],\n exports: [...HlmNativeSelectImports],\n})\nexport class HlmNativeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -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
+ ```
@@ -0,0 +1,206 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, input, numberAttribute, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import * as i1 from '@spartan-ng/brain/navigation-menu';
4
+ import { BrnNavigationMenu, BrnNavigationMenuItem, BrnNavigationMenuLink, BrnNavigationMenuList, BrnNavigationMenuContent, BrnNavigationMenuTrigger } from '@spartan-ng/brain/navigation-menu';
5
+ import { classes } from '@egose/shadcn-theme-ng/utils';
6
+ import { NgIcon, provideIcons } from '@ng-icons/core';
7
+ import { lucideChevronDown } from '@ng-icons/lucide';
8
+
9
+ class HlmNavigationMenu {
10
+ constructor() {
11
+ classes(() => 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center');
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
14
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenu, isStandalone: true, selector: "nav[hlmNavigationMenu]", host: { attributes: { "data-slot": "navigation-menu" } }, hostDirectives: [{ directive: i1.BrnNavigationMenu, inputs: ["value", "value", "delayDuration", "delayDuration", "skipDelayDuration", "skipDelayDuration", "orientation", "orientation", "openOn", "openOn"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenu, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: 'nav[hlmNavigationMenu]',
20
+ hostDirectives: [
21
+ {
22
+ directive: BrnNavigationMenu,
23
+ inputs: ['value', 'delayDuration', 'skipDelayDuration', 'orientation', 'openOn'],
24
+ outputs: ['valueChange'],
25
+ },
26
+ ],
27
+ host: {
28
+ 'data-slot': 'navigation-menu',
29
+ },
30
+ }]
31
+ }], ctorParameters: () => [] });
32
+
33
+ class HlmNavigationMenuContent {
34
+ navOffset = input(1.5, { ...(ngDevMode ? { debugName: "navOffset" } : /* istanbul ignore next */ {}), transform: numberAttribute });
35
+ constructor() {
36
+ classes(() => [
37
+ 'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:w-auto',
38
+ 'data-[orientation=horizontal]:data-[motion=from-end]:slide-in-from-right-52 data-[orientation=horizontal]:data-[motion=from-start]:slide-in-from-left-52 data-[orientation=horizontal]:data-[motion=to-end]:slide-out-to-right-52 data-[orientation=horizontal]:data-[motion=to-start]:slide-out-to-left-52',
39
+ 'data-[orientation=vertical]:data-[motion=from-end]:slide-in-from-bottom-52 data-[orientation=vertical]:data-[motion=from-start]:slide-in-from-top-52 data-[orientation=vertical]:data-[motion=to-end]:slide-out-to-bottom-52 data-[orientation=vertical]:data-[motion=to-start]:slide-out-to-top-52',
40
+ 'data-[orientation=horizontal]:mt-[--spacing(var(--nav-offset))] data-[orientation=vertical]:mx-[--spacing(var(--nav-offset))]',
41
+ 'bg-popover text-popover-foreground ring-foreground/10 rounded-lg shadow ring-1 transition-all ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0 block',
42
+ ]);
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
45
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmNavigationMenuContent, isStandalone: true, selector: "[hlmNavigationMenuContent],hlm-navigation-menu-content", inputs: { navOffset: { classPropertyName: "navOffset", publicName: "navOffset", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "navigation-menu-content" }, properties: { "style.--nav-offset": "navOffset()" } }, ngImport: i0 });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuContent, decorators: [{
48
+ type: Directive,
49
+ args: [{
50
+ selector: '[hlmNavigationMenuContent],hlm-navigation-menu-content',
51
+ host: {
52
+ 'data-slot': 'navigation-menu-content',
53
+ '[style.--nav-offset]': 'navOffset()',
54
+ },
55
+ }]
56
+ }], ctorParameters: () => [], propDecorators: { navOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "navOffset", required: false }] }] } });
57
+
58
+ class HlmNavigationMenuItem {
59
+ constructor() {
60
+ classes(() => 'relative has-[:focus]:z-10 data-active:z-10');
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
63
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenuItem, isStandalone: true, selector: "li[hlmNavigationMenuItem]", host: { attributes: { "data-slot": "navigation-menu-item" } }, hostDirectives: [{ directive: i1.BrnNavigationMenuItem, inputs: ["id", "id"] }], ngImport: i0 });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuItem, decorators: [{
66
+ type: Directive,
67
+ args: [{
68
+ selector: 'li[hlmNavigationMenuItem]',
69
+ hostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],
70
+ host: {
71
+ 'data-slot': 'navigation-menu-item',
72
+ },
73
+ }]
74
+ }], ctorParameters: () => [] });
75
+
76
+ class HlmNavigationMenuLink {
77
+ constructor() {
78
+ classes(() => "data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/50 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]");
79
+ }
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
81
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenuLink, isStandalone: true, selector: "a[hlmNavigationMenuLink]", host: { attributes: { "data-slot": "navigation-menu-link" } }, hostDirectives: [{ directive: i1.BrnNavigationMenuLink, inputs: ["active", "active"] }], ngImport: i0 });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuLink, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ selector: 'a[hlmNavigationMenuLink]',
87
+ hostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],
88
+ host: {
89
+ 'data-slot': 'navigation-menu-link',
90
+ },
91
+ }]
92
+ }], ctorParameters: () => [] });
93
+
94
+ class HlmNavigationMenuList {
95
+ constructor() {
96
+ classes(() => [
97
+ 'gap-0 group flex flex-1 list-none items-center justify-center',
98
+ 'data-[orientation=vertical]:flex-col',
99
+ ]);
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
102
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenuList, isStandalone: true, selector: "ul[hlmNavigationMenuList]", host: { attributes: { "data-slot": "navigation-menu-list" } }, hostDirectives: [{ directive: i1.BrnNavigationMenuList }], ngImport: i0 });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuList, decorators: [{
105
+ type: Directive,
106
+ args: [{
107
+ selector: 'ul[hlmNavigationMenuList]',
108
+ hostDirectives: [
109
+ {
110
+ directive: BrnNavigationMenuList,
111
+ },
112
+ ],
113
+ host: {
114
+ 'data-slot': 'navigation-menu-list',
115
+ },
116
+ }]
117
+ }], ctorParameters: () => [] });
118
+
119
+ class HlmNavigationMenuPortal {
120
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive });
121
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenuPortal, isStandalone: true, selector: "[hlmNavigationMenuPortal]", hostDirectives: [{ directive: i1.BrnNavigationMenuContent }], ngImport: i0 });
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuPortal, decorators: [{
124
+ type: Directive,
125
+ args: [{
126
+ selector: '[hlmNavigationMenuPortal]',
127
+ hostDirectives: [BrnNavigationMenuContent],
128
+ }]
129
+ }] });
130
+
131
+ class HlmNavigationMenuTrigger {
132
+ constructor() {
133
+ classes(() => 'bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center outline-none disabled:pointer-events-none');
134
+ }
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Component });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: HlmNavigationMenuTrigger, isStandalone: true, selector: "button[hlmNavigationMenuTrigger]", host: { attributes: { "data-slot": "navigation-menu-trigger" } }, providers: [provideIcons({ lucideChevronDown })], hostDirectives: [{ directive: i1.BrnNavigationMenuTrigger, inputs: ["align", "align"] }], ngImport: i0, template: `
137
+ <ng-content />
138
+ <ng-icon
139
+ name="lucideChevronDown"
140
+ class="relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180"
141
+ />
142
+ `, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
+ }
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuTrigger, decorators: [{
145
+ type: Component,
146
+ args: [{
147
+ // eslint-disable-next-line @angular-eslint/component-selector
148
+ selector: 'button[hlmNavigationMenuTrigger]',
149
+ imports: [NgIcon],
150
+ providers: [provideIcons({ lucideChevronDown })],
151
+ changeDetection: ChangeDetectionStrategy.OnPush,
152
+ hostDirectives: [{ directive: BrnNavigationMenuTrigger, inputs: ['align'] }],
153
+ host: { 'data-slot': 'navigation-menu-trigger' },
154
+ template: `
155
+ <ng-content />
156
+ <ng-icon
157
+ name="lucideChevronDown"
158
+ class="relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180"
159
+ />
160
+ `,
161
+ }]
162
+ }], ctorParameters: () => [] });
163
+
164
+ /*
165
+ * Public API Surface of navigation-menu
166
+ */
167
+ const HlmNavigationMenuImports = [
168
+ HlmNavigationMenu,
169
+ HlmNavigationMenuContent,
170
+ HlmNavigationMenuItem,
171
+ HlmNavigationMenuLink,
172
+ HlmNavigationMenuList,
173
+ HlmNavigationMenuPortal,
174
+ HlmNavigationMenuTrigger,
175
+ ];
176
+ class HlmNavigationMenuModule {
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
178
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuModule, imports: [HlmNavigationMenu,
179
+ HlmNavigationMenuContent,
180
+ HlmNavigationMenuItem,
181
+ HlmNavigationMenuLink,
182
+ HlmNavigationMenuList,
183
+ HlmNavigationMenuPortal,
184
+ HlmNavigationMenuTrigger], exports: [HlmNavigationMenu,
185
+ HlmNavigationMenuContent,
186
+ HlmNavigationMenuItem,
187
+ HlmNavigationMenuLink,
188
+ HlmNavigationMenuList,
189
+ HlmNavigationMenuPortal,
190
+ HlmNavigationMenuTrigger] });
191
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuModule, imports: [HlmNavigationMenuTrigger] });
192
+ }
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmNavigationMenuModule, decorators: [{
194
+ type: NgModule,
195
+ args: [{
196
+ imports: [...HlmNavigationMenuImports],
197
+ exports: [...HlmNavigationMenuImports],
198
+ }]
199
+ }] });
200
+
201
+ /**
202
+ * Generated bundle index. Do not edit.
203
+ */
204
+
205
+ export { HlmNavigationMenu, HlmNavigationMenuContent, HlmNavigationMenuImports, HlmNavigationMenuItem, HlmNavigationMenuLink, HlmNavigationMenuList, HlmNavigationMenuModule, HlmNavigationMenuPortal, HlmNavigationMenuTrigger };
206
+ //# sourceMappingURL=navigation-menu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.mjs","sources":["../../../projects/navigation-menu/src/lib/hlm-navigation-menu.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-content.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-item.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-link.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-list.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-portal.ts","../../../projects/navigation-menu/src/lib/hlm-navigation-menu-trigger.ts","../../../projects/navigation-menu/src/public-api.ts","../../../projects/navigation-menu/src/navigation-menu.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnNavigationMenu } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'nav[hlmNavigationMenu]',\n hostDirectives: [\n {\n directive: BrnNavigationMenu,\n inputs: ['value', 'delayDuration', 'skipDelayDuration', 'orientation', 'openOn'],\n outputs: ['valueChange'],\n },\n ],\n host: {\n 'data-slot': 'navigation-menu',\n },\n})\nexport class HlmNavigationMenu {\n constructor() {\n classes(() => 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center');\n }\n}\n","import { type NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmNavigationMenuContent],hlm-navigation-menu-content',\n host: {\n 'data-slot': 'navigation-menu-content',\n '[style.--nav-offset]': 'navOffset()',\n },\n})\nexport class HlmNavigationMenuContent {\n public readonly navOffset = input<number, NumberInput>(1.5, { transform: numberAttribute });\n\n constructor() {\n classes(() => [\n 'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:w-auto',\n 'data-[orientation=horizontal]:data-[motion=from-end]:slide-in-from-right-52 data-[orientation=horizontal]:data-[motion=from-start]:slide-in-from-left-52 data-[orientation=horizontal]:data-[motion=to-end]:slide-out-to-right-52 data-[orientation=horizontal]:data-[motion=to-start]:slide-out-to-left-52',\n 'data-[orientation=vertical]:data-[motion=from-end]:slide-in-from-bottom-52 data-[orientation=vertical]:data-[motion=from-start]:slide-in-from-top-52 data-[orientation=vertical]:data-[motion=to-end]:slide-out-to-bottom-52 data-[orientation=vertical]:data-[motion=to-start]:slide-out-to-top-52',\n 'data-[orientation=horizontal]:mt-[--spacing(var(--nav-offset))] data-[orientation=vertical]:mx-[--spacing(var(--nav-offset))]',\n 'bg-popover text-popover-foreground ring-foreground/10 rounded-lg shadow ring-1 transition-all ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0 block',\n ]);\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuItem } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'li[hlmNavigationMenuItem]',\n hostDirectives: [{ directive: BrnNavigationMenuItem, inputs: ['id'] }],\n host: {\n 'data-slot': 'navigation-menu-item',\n },\n})\nexport class HlmNavigationMenuItem {\n constructor() {\n classes(() => 'relative has-[:focus]:z-10 data-active:z-10');\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuLink } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'a[hlmNavigationMenuLink]',\n hostDirectives: [{ directive: BrnNavigationMenuLink, inputs: ['active'] }],\n host: {\n 'data-slot': 'navigation-menu-link',\n },\n})\nexport class HlmNavigationMenuLink {\n constructor() {\n classes(\n () =>\n \"data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/50 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]\",\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuList } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: 'ul[hlmNavigationMenuList]',\n hostDirectives: [\n {\n directive: BrnNavigationMenuList,\n },\n ],\n host: {\n 'data-slot': 'navigation-menu-list',\n },\n})\nexport class HlmNavigationMenuList {\n constructor() {\n classes(() => [\n 'gap-0 group flex flex-1 list-none items-center justify-center',\n 'data-[orientation=vertical]:flex-col',\n ]);\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnNavigationMenuContent } from '@spartan-ng/brain/navigation-menu';\n\n@Directive({\n selector: '[hlmNavigationMenuPortal]',\n hostDirectives: [BrnNavigationMenuContent],\n})\nexport class HlmNavigationMenuPortal {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { BrnNavigationMenuTrigger } from '@spartan-ng/brain/navigation-menu';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[hlmNavigationMenuTrigger]',\n imports: [NgIcon],\n providers: [provideIcons({ lucideChevronDown })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: BrnNavigationMenuTrigger, inputs: ['align'] }],\n host: { 'data-slot': 'navigation-menu-trigger' },\n template: `\n <ng-content />\n <ng-icon\n name=\"lucideChevronDown\"\n class=\"relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180\"\n />\n `,\n})\nexport class HlmNavigationMenuTrigger {\n constructor() {\n classes(\n () =>\n 'bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center outline-none disabled:pointer-events-none',\n );\n }\n}\n","/*\n * Public API Surface of navigation-menu\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmNavigationMenu } from './lib/hlm-navigation-menu';\nimport { HlmNavigationMenuContent } from './lib/hlm-navigation-menu-content';\nimport { HlmNavigationMenuItem } from './lib/hlm-navigation-menu-item';\nimport { HlmNavigationMenuLink } from './lib/hlm-navigation-menu-link';\nimport { HlmNavigationMenuList } from './lib/hlm-navigation-menu-list';\nimport { HlmNavigationMenuPortal } from './lib/hlm-navigation-menu-portal';\nimport { HlmNavigationMenuTrigger } from './lib/hlm-navigation-menu-trigger';\n\nexport * from './lib/hlm-navigation-menu';\nexport * from './lib/hlm-navigation-menu-content';\nexport * from './lib/hlm-navigation-menu-item';\nexport * from './lib/hlm-navigation-menu-link';\nexport * from './lib/hlm-navigation-menu-list';\nexport * from './lib/hlm-navigation-menu-portal';\nexport * from './lib/hlm-navigation-menu-trigger';\n\nexport const HlmNavigationMenuImports = [\n HlmNavigationMenu,\n HlmNavigationMenuContent,\n HlmNavigationMenuItem,\n HlmNavigationMenuLink,\n HlmNavigationMenuList,\n HlmNavigationMenuPortal,\n HlmNavigationMenuTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmNavigationMenuImports],\n exports: [...HlmNavigationMenuImports],\n})\nexport class HlmNavigationMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}