@egose/shadcn-theme-ng 0.0.28 → 0.2.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 (237) hide show
  1. package/README.md +130 -13
  2. package/accordion/README.md +376 -34
  3. package/accordion/fesm2022/accordion.mjs +27 -39
  4. package/alert/README.md +343 -34
  5. package/alert/fesm2022/alert.mjs +47 -47
  6. package/alert-dialog/README.md +471 -5
  7. package/alert-dialog/fesm2022/alert-dialog.mjs +47 -47
  8. package/aspect-ratio/README.md +272 -5
  9. package/aspect-ratio/fesm2022/aspect-ratio.mjs +9 -9
  10. package/autocomplete/README.md +473 -34
  11. package/autocomplete/fesm2022/autocomplete.mjs +53 -71
  12. package/avatar/README.md +357 -5
  13. package/avatar/fesm2022/avatar.mjs +32 -32
  14. package/badge/README.md +289 -34
  15. package/badge/fesm2022/badge.mjs +57 -57
  16. package/basic-alert/README.md +324 -34
  17. package/basic-alert/fesm2022/basic-alert.mjs +6 -18
  18. package/breadcrumb/README.md +406 -5
  19. package/breadcrumb/fesm2022/breadcrumb.mjs +33 -39
  20. package/button/README.md +453 -34
  21. package/button/fesm2022/button.mjs +147 -219
  22. package/button/types/button.d.ts +7 -10
  23. package/button-group/README.md +318 -5
  24. package/button-group/fesm2022/button-group.mjs +20 -20
  25. package/calendar/README.md +328 -34
  26. package/calendar/fesm2022/calendar.mjs +29 -743
  27. package/card/README.md +331 -5
  28. package/card/fesm2022/card.mjs +33 -33
  29. package/carousel/README.md +333 -5
  30. package/carousel/fesm2022/carousel.mjs +39 -78
  31. package/checkbox/README.md +291 -34
  32. package/checkbox/fesm2022/checkbox.mjs +20 -58
  33. package/checkbox/types/checkbox.d.ts +5 -4
  34. package/collapsible/README.md +332 -5
  35. package/collapsible/fesm2022/collapsible.mjs +15 -15
  36. package/combobox/README.md +507 -5
  37. package/combobox/fesm2022/combobox.mjs +91 -224
  38. package/command/README.md +435 -5
  39. package/command/fesm2022/command.mjs +49 -109
  40. package/confirmation-dialog/README.md +272 -34
  41. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +15 -40
  42. package/confirmation-dialog/types/confirmation-dialog.d.ts +8 -4
  43. package/context-menu/README.md +366 -5
  44. package/context-menu/fesm2022/context-menu.mjs +9 -9
  45. package/date-picker/README.md +436 -34
  46. package/date-picker/fesm2022/date-picker.mjs +64 -267
  47. package/date-picker/types/date-picker.d.ts +7 -3
  48. package/dialog/README.md +419 -34
  49. package/dialog/fesm2022/dialog.mjs +45 -71
  50. package/drawer/README.md +395 -5
  51. package/drawer/fesm2022/drawer.mjs +44 -54
  52. package/dropdown-menu/README.md +417 -5
  53. package/dropdown-menu/fesm2022/dropdown-menu.mjs +82 -70
  54. package/dropdown-menu/types/dropdown-menu.d.ts +4 -0
  55. package/empty/README.md +329 -5
  56. package/empty/fesm2022/empty.mjs +30 -30
  57. package/field/README.md +385 -5
  58. package/field/fesm2022/field.mjs +56 -72
  59. package/form-checkbox/README.md +283 -34
  60. package/form-checkbox/fesm2022/form-checkbox.mjs +25 -85
  61. package/form-checkbox/types/form-checkbox.d.ts +7 -1
  62. package/form-date-picker/README.md +293 -34
  63. package/form-date-picker/fesm2022/form-date-picker.mjs +31 -84
  64. package/form-date-picker/types/form-date-picker.d.ts +7 -1
  65. package/form-field/README.md +327 -34
  66. package/form-field/fesm2022/form-field.mjs +33 -19
  67. package/form-field/types/form-field.d.ts +28 -20
  68. package/form-field-simple/README.md +311 -34
  69. package/form-field-simple/fesm2022/form-field-simple.mjs +4 -4
  70. package/form-searchable-multiselect/README.md +332 -34
  71. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +31 -91
  72. package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +7 -1
  73. package/form-select/README.md +321 -34
  74. package/form-select/fesm2022/form-select.mjs +32 -149
  75. package/form-select/types/form-select.d.ts +7 -1
  76. package/form-text-input/README.md +342 -34
  77. package/form-text-input/fesm2022/form-text-input.mjs +35 -149
  78. package/form-text-input/types/form-text-input.d.ts +9 -12
  79. package/form-textarea/README.md +318 -34
  80. package/form-textarea/fesm2022/form-textarea.mjs +34 -109
  81. package/form-textarea/types/form-textarea.d.ts +8 -1
  82. package/hover-card/README.md +256 -5
  83. package/hover-card/fesm2022/hover-card.mjs +19 -19
  84. package/icon/README.md +210 -34
  85. package/icon/fesm2022/icon.mjs +8 -8
  86. package/input/README.md +240 -34
  87. package/input/fesm2022/input.mjs +17 -12
  88. package/input/types/input.d.ts +2 -1
  89. package/input-group/README.md +335 -5
  90. package/input-group/fesm2022/input-group.mjs +34 -34
  91. package/input-otp/README.md +375 -5
  92. package/input-otp/fesm2022/input-otp.mjs +26 -26
  93. package/item/README.md +385 -5
  94. package/item/fesm2022/item.mjs +53 -53
  95. package/kbd/README.md +291 -5
  96. package/kbd/fesm2022/kbd.mjs +12 -12
  97. package/label/README.md +243 -34
  98. package/label/fesm2022/label.mjs +10 -10
  99. package/label/types/label.d.ts +1 -1
  100. package/layout-simple/README.md +174 -44
  101. package/layout-simple/fesm2022/layout-simple.mjs +508 -603
  102. package/layout-simple/types/layout-simple.d.ts +179 -128
  103. package/menu/README.md +418 -0
  104. package/menu/fesm2022/menu.mjs +455 -0
  105. package/menu/package.json +24 -0
  106. package/menu/types/menu.d.ts +137 -0
  107. package/menubar/README.md +343 -5
  108. package/menubar/fesm2022/menubar.mjs +13 -13
  109. package/native-select/README.md +323 -5
  110. package/native-select/fesm2022/native-select.mjs +19 -19
  111. package/navigation-menu/README.md +369 -5
  112. package/navigation-menu/fesm2022/navigation-menu.mjs +35 -47
  113. package/package.json +183 -154
  114. package/pagination/README.md +388 -5
  115. package/pagination/fesm2022/pagination.mjs +45 -331
  116. package/popover/README.md +302 -34
  117. package/popover/fesm2022/popover.mjs +30 -30
  118. package/progress/README.md +311 -5
  119. package/progress/fesm2022/progress.mjs +13 -13
  120. package/radio-group/README.md +335 -34
  121. package/radio-group/fesm2022/radio-group.mjs +26 -19
  122. package/radio-group/types/radio-group.d.ts +1 -1
  123. package/resizable/README.md +269 -5
  124. package/resizable/fesm2022/resizable.mjs +18 -26
  125. package/scroll-area/README.md +233 -5
  126. package/scroll-area/fesm2022/scroll-area.mjs +9 -9
  127. package/searchable-multiselect/README.md +294 -34
  128. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +28 -117
  129. package/searchable-multiselect/types/searchable-multiselect.d.ts +8 -2
  130. package/select/README.md +408 -34
  131. package/select/fesm2022/select.mjs +71 -111
  132. package/select/types/select.d.ts +3 -1
  133. package/separator/README.md +193 -34
  134. package/separator/fesm2022/separator.mjs +9 -9
  135. package/separator/types/separator.d.ts +1 -1
  136. package/sheet/README.md +282 -34
  137. package/sheet/fesm2022/sheet.mjs +41 -53
  138. package/sidebar/README.md +457 -5
  139. package/sidebar/fesm2022/sidebar.mjs +125 -227
  140. package/skeleton/README.md +217 -5
  141. package/skeleton/fesm2022/skeleton.mjs +9 -9
  142. package/slider/README.md +273 -5
  143. package/slider/fesm2022/slider.mjs +10 -80
  144. package/sonner/README.md +317 -34
  145. package/sonner/fesm2022/sonner.mjs +13 -13
  146. package/spinner/README.md +255 -34
  147. package/spinner/fesm2022/spinner.mjs +11 -11
  148. package/switch/README.md +281 -34
  149. package/switch/fesm2022/switch.mjs +13 -15
  150. package/table/README.md +423 -5
  151. package/table/fesm2022/table.mjs +41 -41
  152. package/tabs/README.md +382 -34
  153. package/tabs/fesm2022/tabs.mjs +35 -111
  154. package/textarea/README.md +282 -5
  155. package/textarea/fesm2022/textarea.mjs +9 -9
  156. package/toggle/README.md +270 -5
  157. package/toggle/fesm2022/toggle.mjs +13 -13
  158. package/toggle-group/README.md +340 -5
  159. package/toggle-group/fesm2022/toggle-group.mjs +13 -13
  160. package/toggle-group/types/toggle-group.d.ts +13 -7
  161. package/tooltip/README.md +240 -34
  162. package/tooltip/fesm2022/tooltip.mjs +14 -14
  163. package/typography/README.md +271 -5
  164. package/typography/fesm2022/typography.mjs +53 -53
  165. package/typography/types/typography.d.ts +19 -19
  166. package/utils/README.md +274 -34
  167. package/utils/fesm2022/utils.mjs +68 -44
  168. package/accordion/fesm2022/accordion.mjs.map +0 -1
  169. package/alert/fesm2022/alert.mjs.map +0 -1
  170. package/alert-dialog/fesm2022/alert-dialog.mjs.map +0 -1
  171. package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +0 -1
  172. package/autocomplete/fesm2022/autocomplete.mjs.map +0 -1
  173. package/avatar/fesm2022/avatar.mjs.map +0 -1
  174. package/badge/fesm2022/badge.mjs.map +0 -1
  175. package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
  176. package/breadcrumb/fesm2022/breadcrumb.mjs.map +0 -1
  177. package/button/fesm2022/button.mjs.map +0 -1
  178. package/button-group/fesm2022/button-group.mjs.map +0 -1
  179. package/calendar/fesm2022/calendar.mjs.map +0 -1
  180. package/card/fesm2022/card.mjs.map +0 -1
  181. package/carousel/fesm2022/carousel.mjs.map +0 -1
  182. package/checkbox/fesm2022/checkbox.mjs.map +0 -1
  183. package/collapsible/fesm2022/collapsible.mjs.map +0 -1
  184. package/combobox/fesm2022/combobox.mjs.map +0 -1
  185. package/command/fesm2022/command.mjs.map +0 -1
  186. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +0 -1
  187. package/context-menu/fesm2022/context-menu.mjs.map +0 -1
  188. package/date-picker/fesm2022/date-picker.mjs.map +0 -1
  189. package/dialog/fesm2022/dialog.mjs.map +0 -1
  190. package/drawer/fesm2022/drawer.mjs.map +0 -1
  191. package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +0 -1
  192. package/empty/fesm2022/empty.mjs.map +0 -1
  193. package/field/fesm2022/field.mjs.map +0 -1
  194. package/form-checkbox/fesm2022/form-checkbox.mjs.map +0 -1
  195. package/form-date-picker/fesm2022/form-date-picker.mjs.map +0 -1
  196. package/form-field/fesm2022/form-field.mjs.map +0 -1
  197. package/form-field-simple/fesm2022/form-field-simple.mjs.map +0 -1
  198. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +0 -1
  199. package/form-select/fesm2022/form-select.mjs.map +0 -1
  200. package/form-text-input/fesm2022/form-text-input.mjs.map +0 -1
  201. package/form-textarea/fesm2022/form-textarea.mjs.map +0 -1
  202. package/hover-card/fesm2022/hover-card.mjs.map +0 -1
  203. package/icon/fesm2022/icon.mjs.map +0 -1
  204. package/input/fesm2022/input.mjs.map +0 -1
  205. package/input-group/fesm2022/input-group.mjs.map +0 -1
  206. package/input-otp/fesm2022/input-otp.mjs.map +0 -1
  207. package/item/fesm2022/item.mjs.map +0 -1
  208. package/kbd/fesm2022/kbd.mjs.map +0 -1
  209. package/label/fesm2022/label.mjs.map +0 -1
  210. package/layout-simple/fesm2022/layout-simple.mjs.map +0 -1
  211. package/menubar/fesm2022/menubar.mjs.map +0 -1
  212. package/native-select/fesm2022/native-select.mjs.map +0 -1
  213. package/navigation-menu/fesm2022/navigation-menu.mjs.map +0 -1
  214. package/pagination/fesm2022/pagination.mjs.map +0 -1
  215. package/popover/fesm2022/popover.mjs.map +0 -1
  216. package/progress/fesm2022/progress.mjs.map +0 -1
  217. package/radio-group/fesm2022/radio-group.mjs.map +0 -1
  218. package/resizable/fesm2022/resizable.mjs.map +0 -1
  219. package/scroll-area/fesm2022/scroll-area.mjs.map +0 -1
  220. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +0 -1
  221. package/select/fesm2022/select.mjs.map +0 -1
  222. package/separator/fesm2022/separator.mjs.map +0 -1
  223. package/sheet/fesm2022/sheet.mjs.map +0 -1
  224. package/sidebar/fesm2022/sidebar.mjs.map +0 -1
  225. package/skeleton/fesm2022/skeleton.mjs.map +0 -1
  226. package/slider/fesm2022/slider.mjs.map +0 -1
  227. package/sonner/fesm2022/sonner.mjs.map +0 -1
  228. package/spinner/fesm2022/spinner.mjs.map +0 -1
  229. package/switch/fesm2022/switch.mjs.map +0 -1
  230. package/table/fesm2022/table.mjs.map +0 -1
  231. package/tabs/fesm2022/tabs.mjs.map +0 -1
  232. package/textarea/fesm2022/textarea.mjs.map +0 -1
  233. package/toggle/fesm2022/toggle.mjs.map +0 -1
  234. package/toggle-group/fesm2022/toggle-group.mjs.map +0 -1
  235. package/tooltip/fesm2022/tooltip.mjs.map +0 -1
  236. package/typography/fesm2022/typography.mjs.map +0 -1
  237. package/utils/fesm2022/utils.mjs.map +0 -1
@@ -8,48 +8,13 @@ class HlmSlider {
8
8
  _slider = injectBrnSlider();
9
9
  constructor() {
10
10
  classes(() => [
11
- 'group flex w-full touch-none flex-col select-none data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-row data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
11
+ "group flex w-full touch-none flex-col select-none data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-row data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
12
12
  ]);
13
13
  }
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmSlider, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: HlmSlider, isStandalone: true, selector: "hlm-slider, brn-slider [hlm]", hostDirectives: [{ directive: i1.BrnSlider, inputs: ["id", "id", "value", "value", "disabled", "disabled", "min", "min", "max", "max", "step", "step", "minStepsBetweenThumbs", "minStepsBetweenThumbs", "inverted", "inverted", "orientation", "orientation", "showTicks", "showTicks", "maxTicks", "maxTicks", "tickLabelInterval", "tickLabelInterval", "formatTick", "formatTick", "draggableRange", "draggableRange", "draggableRangeOnly", "draggableRangeOnly", "aria-label", "aria-label", "aria-labelledby", "aria-labelledby"], outputs: ["valueChange", "valueChange"] }], ngImport: i0, template: `
16
- <div class="relative flex w-full items-center group-data-vertical:w-auto group-data-vertical:flex-col">
17
- <div
18
- brnSliderTrack
19
- class="bg-muted rounded-full data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5 relative grow overflow-hidden"
20
- >
21
- <div
22
- class="bg-primary absolute select-none data-draggable-range:cursor-move data-horizontal:h-full data-vertical:w-full"
23
- brnSliderRange
24
- ></div>
25
- </div>
26
-
27
- @for (i of _slider.thumbIndexes(); track i) {
28
- <span
29
- class="border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden absolute block shrink-0 select-none after:absolute after:-inset-2"
30
- brnSliderThumb
31
- ></span>
32
- }
33
- </div>
34
-
35
- @if (_slider.showTicks()) {
36
- <div
37
- class="px-2 group-data-vertical:px-0 group-data-vertical:py-2 text-muted-foreground mt-3 flex w-full items-start justify-between gap-1 text-xs font-medium group-data-horizontal:group-data-inverted:flex-row-reverse group-data-vertical:ms-3 group-data-vertical:mt-0 group-data-vertical:w-auto group-data-vertical:flex-col-reverse group-data-vertical:group-data-inverted:flex-col"
38
- >
39
- <div
40
- *brnSliderTick="let tick; let formattedTick = formattedTick"
41
- class="group flex w-0 flex-col items-center justify-center gap-2 group-data-vertical:h-0 group-data-vertical:w-auto group-data-vertical:flex-row"
42
- >
43
- <div
44
- class="bg-muted-foreground/70 h-1 w-px group-data-vertical:h-px group-data-vertical:w-1 group-data-horizontal:group-data-[skip]:h-0.5 group-data-vertical:group-data-[skip]:w-0.5"
45
- ></div>
46
- <div class="text-center group-data-[skip]:opacity-0">{{ formattedTick }}</div>
47
- </div>
48
- </div>
49
- }
50
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.BrnSliderTrack, selector: "[brnSliderTrack]" }, { kind: "directive", type: i1.BrnSliderThumb, selector: "[brnSliderThumb]" }, { kind: "directive", type: i1.BrnSliderRange, selector: "[brnSliderRange]" }, { kind: "directive", type: i1.BrnSliderTick, selector: "[brnSliderTick]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmSlider, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: HlmSlider, isStandalone: true, selector: "hlm-slider, brn-slider [hlm]", hostDirectives: [{ directive: i1.BrnSlider, inputs: ["id", "id", "value", "value", "disabled", "disabled", "min", "min", "max", "max", "step", "step", "minStepsBetweenThumbs", "minStepsBetweenThumbs", "inverted", "inverted", "orientation", "orientation", "showTicks", "showTicks", "maxTicks", "maxTicks", "tickLabelInterval", "tickLabelInterval", "formatTick", "formatTick", "draggableRange", "draggableRange", "draggableRangeOnly", "draggableRangeOnly", "aria-label", "aria-label", "aria-labelledby", "aria-labelledby"], outputs: ["valueChange", "valueChange"] }], ngImport: i0, template: "\n <div\n class=\"relative flex w-full items-center group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-col\"\n >\n <div\n brnSliderTrack\n class=\"bg-muted rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5 relative grow overflow-hidden\"\n >\n <div\n class=\"bg-primary absolute select-none data-draggable-range:cursor-move data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n brnSliderRange\n ></div>\n </div>\n\n @for (i of _slider.thumbIndexes(); track i) {\n <span\n class=\"border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden absolute block shrink-0 select-none after:absolute after:-inset-2\"\n brnSliderThumb\n ></span>\n }\n </div>\n\n @if (_slider.showTicks()) {\n <div\n class=\"px-2 group-data-[orientation=vertical]:px-0 group-data-[orientation=vertical]:py-2 text-muted-foreground mt-3 flex w-full items-start justify-between gap-1 text-xs font-medium group-data-[orientation=horizontal]:group-data-inverted:flex-row-reverse group-data-[orientation=vertical]:ms-3 group-data-[orientation=vertical]:mt-0 group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-col-reverse group-data-[orientation=vertical]:group-data-inverted:flex-col\"\n >\n <div\n *brnSliderTick=\"let tick; let formattedTick = formattedTick\"\n class=\"group flex w-0 flex-col items-center justify-center gap-2 group-data-[orientation=vertical]:h-0 group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-row\"\n >\n <div\n class=\"bg-muted-foreground/70 h-1 w-px group-data-[orientation=vertical]:h-px group-data-[orientation=vertical]:w-1 group-data-[orientation=horizontal]:group-data-[skip]:h-0.5 group-data-[orientation=vertical]:group-data-[skip]:w-0.5\"\n ></div>\n <div class=\"text-center group-data-[skip]:opacity-0\">{{ formattedTick }}</div>\n </div>\n </div>\n }\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.BrnSliderTrack, selector: "[brnSliderTrack]" }, { kind: "directive", type: i1.BrnSliderThumb, selector: "[brnSliderThumb]" }, { kind: "directive", type: i1.BrnSliderRange, selector: "[brnSliderRange]" }, { kind: "directive", type: i1.BrnSliderTick, selector: "[brnSliderTick]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
16
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmSlider, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmSlider, decorators: [{
53
18
  type: Component,
54
19
  args: [{
55
20
  selector: 'hlm-slider, brn-slider [hlm]',
@@ -80,42 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
80
45
  outputs: ['valueChange'],
81
46
  },
82
47
  ],
83
- template: `
84
- <div class="relative flex w-full items-center group-data-vertical:w-auto group-data-vertical:flex-col">
85
- <div
86
- brnSliderTrack
87
- class="bg-muted rounded-full data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5 relative grow overflow-hidden"
88
- >
89
- <div
90
- class="bg-primary absolute select-none data-draggable-range:cursor-move data-horizontal:h-full data-vertical:w-full"
91
- brnSliderRange
92
- ></div>
93
- </div>
94
-
95
- @for (i of _slider.thumbIndexes(); track i) {
96
- <span
97
- class="border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden absolute block shrink-0 select-none after:absolute after:-inset-2"
98
- brnSliderThumb
99
- ></span>
100
- }
101
- </div>
102
-
103
- @if (_slider.showTicks()) {
104
- <div
105
- class="px-2 group-data-vertical:px-0 group-data-vertical:py-2 text-muted-foreground mt-3 flex w-full items-start justify-between gap-1 text-xs font-medium group-data-horizontal:group-data-inverted:flex-row-reverse group-data-vertical:ms-3 group-data-vertical:mt-0 group-data-vertical:w-auto group-data-vertical:flex-col-reverse group-data-vertical:group-data-inverted:flex-col"
106
- >
107
- <div
108
- *brnSliderTick="let tick; let formattedTick = formattedTick"
109
- class="group flex w-0 flex-col items-center justify-center gap-2 group-data-vertical:h-0 group-data-vertical:w-auto group-data-vertical:flex-row"
110
- >
111
- <div
112
- class="bg-muted-foreground/70 h-1 w-px group-data-vertical:h-px group-data-vertical:w-1 group-data-horizontal:group-data-[skip]:h-0.5 group-data-vertical:group-data-[skip]:w-0.5"
113
- ></div>
114
- <div class="text-center group-data-[skip]:opacity-0">{{ formattedTick }}</div>
115
- </div>
116
- </div>
117
- }
118
- `,
48
+ template: "\n <div\n class=\"relative flex w-full items-center group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-col\"\n >\n <div\n brnSliderTrack\n class=\"bg-muted rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5 relative grow overflow-hidden\"\n >\n <div\n class=\"bg-primary absolute select-none data-draggable-range:cursor-move data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n brnSliderRange\n ></div>\n </div>\n\n @for (i of _slider.thumbIndexes(); track i) {\n <span\n class=\"border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden absolute block shrink-0 select-none after:absolute after:-inset-2\"\n brnSliderThumb\n ></span>\n }\n </div>\n\n @if (_slider.showTicks()) {\n <div\n class=\"px-2 group-data-[orientation=vertical]:px-0 group-data-[orientation=vertical]:py-2 text-muted-foreground mt-3 flex w-full items-start justify-between gap-1 text-xs font-medium group-data-[orientation=horizontal]:group-data-inverted:flex-row-reverse group-data-[orientation=vertical]:ms-3 group-data-[orientation=vertical]:mt-0 group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-col-reverse group-data-[orientation=vertical]:group-data-inverted:flex-col\"\n >\n <div\n *brnSliderTick=\"let tick; let formattedTick = formattedTick\"\n class=\"group flex w-0 flex-col items-center justify-center gap-2 group-data-[orientation=vertical]:h-0 group-data-[orientation=vertical]:w-auto group-data-[orientation=vertical]:flex-row\"\n >\n <div\n class=\"bg-muted-foreground/70 h-1 w-px group-data-[orientation=vertical]:h-px group-data-[orientation=vertical]:w-1 group-data-[orientation=horizontal]:group-data-[skip]:h-0.5 group-data-[orientation=vertical]:group-data-[skip]:w-0.5\"\n ></div>\n <div class=\"text-center group-data-[skip]:opacity-0\">{{ formattedTick }}</div>\n </div>\n </div>\n }\n ",
119
49
  }]
120
50
  }], ctorParameters: () => [] });
121
51
 
@@ -124,11 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
124
54
  */
125
55
  const HlmSliderImports = [HlmSlider];
126
56
  class HlmSliderModule {
127
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
128
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmSliderModule, imports: [HlmSlider], exports: [HlmSlider] });
129
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmSliderModule });
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
58
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmSliderModule, imports: [HlmSlider], exports: [HlmSlider] });
59
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmSliderModule });
130
60
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmSliderModule, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmSliderModule, decorators: [{
132
62
  type: NgModule,
133
63
  args: [{
134
64
  imports: [...HlmSliderImports],
@@ -141,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
141
71
  */
142
72
 
143
73
  export { HlmSlider, HlmSliderImports, HlmSliderModule };
144
- //# sourceMappingURL=slider.mjs.map
74
+
package/sonner/README.md CHANGED
@@ -1,64 +1,347 @@
1
- # Sonner
1
+ # Sonner (`@egose/shadcn-theme-ng/sonner`)
2
2
 
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0.
3
+ Toast notifications for Angular, styled like [shadcn/ui Sonner](https://ui.shadcn.com/docs/components/sonner). This subpath ships a single standalone component, `HlmToaster`, which is a thin shadcn-styled wrapper around the `NgxSonnerToaster` component from [`ngx-sonner`](https://github.com/adamwathan/ngx-sonner) (the Angular port of [sonner](https://sonner.emilkowal.ski/)). Place one `<hlm-toaster />` at your app root, then fire toasts imperatively with the `toast()` helpers from `ngx-sonner`.
4
4
 
5
- ## Code scaffolding
5
+ > **Ships as:** `@egose/shadcn-theme-ng/sonner` and `@egose/shadcn-theme-ng-tw/sonner` (the `tw:`-prefixed Tailwind variant). See the [package README](../../README.md) for install steps, peer dependencies, Tailwind setup, and testing/release guidance. Do not publish this project directory independently.
6
6
 
7
- Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
7
+ ## Installation
8
8
 
9
9
  ```bash
10
- ng generate component component-name
10
+ # Plain Tailwind (no prefix)
11
+ npm install @egose/shadcn-theme-ng
12
+
13
+ # Or the tw:-prefixed variant
14
+ npm install @egose/shadcn-theme-ng-tw
11
15
  ```
12
16
 
13
- For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
17
+ This library has no extra runtime install beyond the package itself — `ngx-sonner` is installed transitively. See the [package README](../../README.md) for the full peer-dependency table (`@angular/core`, `@angular/common`, `@spartan-ng/brain`, `rxjs`, etc.) and the Tailwind variant contract.
14
18
 
15
- ```bash
16
- ng generate --help
19
+ > You call `toast()`, `toast.success()`, etc. from the **`ngx-sonner`** package, not from this subpath. This subpath only provides the styled `<hlm-toaster />` outlet component.
20
+
21
+ ## Imports
22
+
23
+ All public symbols are re-exported from `projects/sonner/src/public-api.ts`:
24
+
25
+ ```ts
26
+ import { HlmToaster, HlmToasterImports, HlmToasterModule } from '@egose/shadcn-theme-ng/sonner';
27
+ // tw variant:
28
+ // import { HlmToaster, HlmToasterImports, HlmToasterModule } from '@egose/shadcn-theme-ng-tw/sonner';
17
29
  ```
18
30
 
19
- ## Building
31
+ Standalone-component usage (preferred):
20
32
 
21
- To build the library, run:
33
+ ```ts
34
+ import { Component } from '@angular/core';
35
+ import { HlmToasterImports } from '@egose/shadcn-theme-ng/sonner';
22
36
 
23
- ```bash
24
- ng build sonner
37
+ @Component({
38
+ selector: 'app-root',
39
+ standalone: true,
40
+ imports: [...HlmToasterImports],
41
+ template: `<hlm-toaster />`,
42
+ })
43
+ export class AppComponent {}
25
44
  ```
26
45
 
27
- This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
46
+ NgModule usage:
28
47
 
29
- ### Publishing the Library
48
+ ```ts
49
+ import { NgModule } from '@angular/core';
50
+ import { HlmToasterModule } from '@egose/shadcn-theme-ng/sonner';
30
51
 
31
- Once the project is built, you can publish your library by following these steps:
52
+ @NgModule({ imports: [HlmToasterModule] })
53
+ export class AppModule {}
54
+ ```
32
55
 
33
- 1. Navigate to the `dist` directory:
56
+ | Symbol | Kind | Description |
57
+ | ------------------- | -------------------- | ------------------------------------------------ |
58
+ | `HlmToaster` | Standalone component | The `<hlm-toaster>` outlet. Renders toasts. |
59
+ | `HlmToasterImports` | `const` array | `[HlmToaster]` — spread into `imports: [...]`. |
60
+ | `HlmToasterModule` | NgModule | Imports + re-exports `HlmToaster` for NgModules. |
34
61
 
35
- ```bash
36
- cd dist/sonner
37
- ```
62
+ ## Anatomy / Structure
38
63
 
39
- 2. Run the `npm publish` command to publish your library to the npm registry:
40
- ```bash
41
- npm publish
42
- ```
64
+ Render exactly one toaster outlet, typically in `AppComponent`:
43
65
 
44
- ## Running unit tests
66
+ ```html
67
+ <!-- app.component.html -->
68
+ <hlm-toaster />
69
+ <router-outlet />
70
+ ```
45
71
 
46
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
72
+ With common options:
47
73
 
48
- ```bash
49
- ng test
74
+ ```html
75
+ <hlm-toaster
76
+ theme="system"
77
+ position="top-center"
78
+ [richColors]="true"
79
+ [expand]="true"
80
+ [closeButton]="true"
81
+ [duration]="5000"
82
+ [visibleToasts]="5"
83
+ />
50
84
  ```
51
85
 
52
- ## Running end-to-end tests
86
+ The component template forwards everything to `<ngx-sonner-toaster>` internally — you never write `<ngx-sonner-toaster>` yourself.
53
87
 
54
- For end-to-end (e2e) testing, run:
88
+ ## API reference
55
89
 
56
- ```bash
57
- ng e2e
90
+ ### `HlmToaster` — selector `hlm-toaster` (component)
91
+
92
+ All inputs are Angular signal `input()`s mirroring `ToasterProps` from `ngx-sonner`.
93
+
94
+ | Input | Type | Default | Description |
95
+ | --------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
96
+ | `invert` | `boolean` (coerced with `booleanAttribute`) | `false` | Dark mode inversion. |
97
+ | `theme` | `ToasterProps['theme']` (`'light' \| 'dark' \| 'system'` approx.) | `'light'` | Color theme of the toasts. |
98
+ | `position` | `ToasterProps['position']` | `'bottom-right'` | Screen corner/edge: e.g. `top-left`, `top-center`, `top-right`, `bottom-left`, `bottom-center`, `bottom-right`. |
99
+ | `hotKey` | `ToasterProps['hotkey']` (`string[]`) | `['altKey', 'KeyT']` | Hotkey that focuses/expands toasts. |
100
+ | `richColors` | `boolean` (coerced) | `false` | Success/error color accents. |
101
+ | `expand` | `boolean` (coerced) | `false` | Expand all toasts by default (else stacked). |
102
+ | `duration` | `number` (coerced with `numberAttribute`) | `4000` | Default toast lifetime in ms. |
103
+ | `visibleToasts` | `number` (coerced) | `3` | Max simultaneously visible toasts. |
104
+ | `closeButton` | `boolean` (coerced) | `false` | Show an × close button on every toast. |
105
+ | `toastOptions` | `ToasterProps['toastOptions']` | `{ classes: { toast: 'group toast group-[.toaster]:bg-background …', description: 'group-[.toast]:text-muted-foreground', actionButton: 'group-[.toast]:bg-primary …', cancelButton: 'group-[.toast]:bg-muted …' } }` | Per-toast default options + shadcn class overrides. |
106
+ | `offset` | `ToasterProps['offset']` | `null` | Pixel offset from the viewport edge. |
107
+ | `dir` | `ToasterProps['dir']` | `'auto'` | Text direction (`auto` / `ltr` / `rtl`). |
108
+ | `class` | `ClassValue` (aliased input `userClass`) | `''` | Extra classes merged via `hlm('toaster group', …)` onto the outlet. |
109
+ | `style` | `Record<string, string>` (aliased input `userStyle`) | `{}` | Inline styles forwarded to `ngx-sonner-toaster`. |
110
+
111
+ No outputs, no methods. The host element gets computed class `toaster group` (+ your `class`).
112
+
113
+ > `toast()`, `toast.success()`, `toast.error()`, `toast.promise()`, `toast.dismiss()` etc. are imported from **`ngx-sonner`**, not from this subpath:
114
+ >
115
+ > ```ts
116
+ > import { toast } from 'ngx-sonner';
117
+ > ```
118
+
119
+ ## Examples
120
+
121
+ ### 1. Basic setup + plain toast
122
+
123
+ Add the outlet once at the app root.
124
+
125
+ ```ts
126
+ // app.component.ts
127
+ import { Component } from '@angular/core';
128
+ import { HlmToasterImports } from '@egose/shadcn-theme-ng/sonner';
129
+
130
+ @Component({
131
+ selector: 'app-root',
132
+ standalone: true,
133
+ imports: [...HlmToasterImports],
134
+ template: `
135
+ <hlm-toaster />
136
+ <router-outlet />
137
+ `,
138
+ })
139
+ export class AppComponent {}
140
+ ```
141
+
142
+ Fire a toast from anywhere:
143
+
144
+ ```ts
145
+ // demo.component.ts
146
+ import { Component } from '@angular/core';
147
+ import { toast } from 'ngx-sonner';
148
+ import { HlmButton } from '@egose/shadcn-theme-ng/button';
149
+
150
+ @Component({
151
+ selector: 'demo-basic',
152
+ standalone: true,
153
+ imports: [HlmButton],
154
+ template: `<button hlmBtn (click)="notify()">Show toast</button>`,
155
+ })
156
+ export class DemoBasic {
157
+ notify() {
158
+ toast('Event created', { description: 'Your event is now live.' });
159
+ }
160
+ }
161
+ ```
162
+
163
+ ### 2. Success / error / warning states
164
+
165
+ ```ts
166
+ // demo-states.component.ts
167
+ import { Component } from '@angular/core';
168
+ import { toast } from 'ngx-sonner';
169
+ import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
170
+
171
+ @Component({
172
+ selector: 'demo-states',
173
+ standalone: true,
174
+ imports: [...HlmButtonImports],
175
+ template: `
176
+ <div class="flex gap-2">
177
+ <button hlmBtn variant="default" (click)="ok()">Success</button>
178
+ <button hlmBtn variant="destructive" (click)="fail()">Error</button>
179
+ <button hlmBtn variant="secondary" (click)="warn()">Warning</button>
180
+ <button hlmBtn variant="outline" (click)="info()">Info</button>
181
+ </div>
182
+ `,
183
+ })
184
+ export class DemoStates {
185
+ ok() {
186
+ toast.success('Profile saved', { description: 'Your changes are live.' });
187
+ }
188
+ fail() {
189
+ toast.error('Upload failed', { description: 'File exceeds 10 MB.' });
190
+ }
191
+ warn() {
192
+ toast.warning('Session expiring', { description: 'You will be logged out in 2 minutes.' });
193
+ }
194
+ info() {
195
+ toast.info('New version', { description: 'Refresh to get the latest UI.' });
196
+ }
197
+ }
58
198
  ```
59
199
 
60
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
200
+ ### 3. Positions, themes, rich colors
201
+
202
+ ```html
203
+ <!-- Top-center, system theme, colored toasts with close buttons -->
204
+ <hlm-toaster position="top-center" theme="system" [richColors]="true" [closeButton]="true" [expand]="true" />
205
+ ```
206
+
207
+ ```ts
208
+ import { Component, signal } from '@angular/core';
209
+ import { HlmToasterImports } from '@egose/shadcn-theme-ng/sonner';
210
+
211
+ @Component({
212
+ selector: 'demo-position',
213
+ standalone: true,
214
+ imports: [...HlmToasterImports],
215
+ template: ` <hlm-toaster [position]="position()" theme="dark" [visibleToasts]="5" /> `,
216
+ })
217
+ export class DemoPosition {
218
+ // 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'
219
+ readonly position = signal<'top-center'>('top-center');
220
+ }
221
+ ```
222
+
223
+ ### 4. Actions, cancellation, and durations
224
+
225
+ ```ts
226
+ // demo-actions.component.ts
227
+ import { Component } from '@angular/core';
228
+ import { toast } from 'ngx-sonner';
229
+ import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
230
+
231
+ @Component({
232
+ selector: 'demo-actions',
233
+ standalone: true,
234
+ imports: [...HlmButtonImports],
235
+ template: `
236
+ <div class="flex gap-2">
237
+ <button hlmBtn (click)="withAction()">Undoable delete</button>
238
+ <button hlmBtn variant="outline" (click)="sticky()">Sticky toast</button>
239
+ <button hlmBtn variant="ghost" (click)="dismissAll()">Dismiss all</button>
240
+ </div>
241
+ `,
242
+ })
243
+ export class DemoActions {
244
+ withAction() {
245
+ toast('Conversation archived', {
246
+ description: 'You can undo this within 10 seconds.',
247
+ duration: 10000,
248
+ action: { label: 'Undo', onClick: () => toast.success('Restored') },
249
+ cancel: { label: 'Dismiss', onClick: () => {} },
250
+ });
251
+ }
252
+ sticky() {
253
+ toast('Sync paused — offline', { duration: Infinity, closeButton: true });
254
+ }
255
+ dismissAll() {
256
+ toast.dismiss();
257
+ }
258
+ }
259
+ ```
260
+
261
+ ### 5. Async / promise toasts (loading → success → error)
262
+
263
+ ```ts
264
+ // demo-promise.component.ts
265
+ import { Component, inject } from '@angular/core';
266
+ import { HttpClient } from '@angular/common/http';
267
+ import { toast } from 'ngx-sonner';
268
+ import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
269
+ import { HlmSpinnerImports } from '@egose/shadcn-theme-ng/spinner';
270
+
271
+ @Component({
272
+ selector: 'demo-promise',
273
+ standalone: true,
274
+ imports: [...HlmButtonImports, ...HlmSpinnerImports],
275
+ template: `<button hlmBtn (click)="save()">Save report</button>`,
276
+ })
277
+ export class DemoPromise {
278
+ private readonly http = inject(HttpClient);
279
+
280
+ save() {
281
+ const request = this.http.post('/api/reports', { title: 'Q3' }).toPromise();
282
+ toast.promise(request, {
283
+ loading: 'Saving report…',
284
+ success: 'Report saved',
285
+ error: 'Could not save report',
286
+ });
287
+ }
288
+ }
289
+ ```
290
+
291
+ Combine with a spinner while the promise is pending by driving `show` from a signal — see `@egose/shadcn-theme-ng/spinner`.
292
+
293
+ ### 6. Custom styling via `toastOptions`, `class`, and `style`
294
+
295
+ ```ts
296
+ // app.component.ts
297
+ import { Component } from '@angular/core';
298
+ import { HlmToasterImports } from '@egose/shadcn-theme-ng/sonner';
299
+
300
+ @Component({
301
+ selector: 'app-root',
302
+ standalone: true,
303
+ imports: [...HlmToasterImports],
304
+ template: ` <hlm-toaster class="my-toaster" [toastOptions]="toastOptions" [offset]="24" dir="ltr" /> `,
305
+ })
306
+ export class AppComponent {
307
+ readonly toastOptions = {
308
+ classes: {
309
+ toast: 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground',
310
+ description: 'group-[.toast]:text-muted-foreground',
311
+ actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',
312
+ cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',
313
+ },
314
+ // per-toast defaults can also set duration/style here
315
+ duration: 6000,
316
+ };
317
+ }
318
+ ```
319
+
320
+ Per-toast override (description + action button classes come from `toastOptions.classes` above unless overridden):
321
+
322
+ ```ts
323
+ toast('Custom toast', {
324
+ description: 'This toast uses the global toastOptions classes.',
325
+ className: 'border-primary',
326
+ style: { borderWidth: '2px' },
327
+ });
328
+ ```
329
+
330
+ ## Accessibility notes
331
+
332
+ - `ngx-sonner` renders toasts in an `aria-live` region so screen readers announce them; keep messages short and put detail in `description`.
333
+ - Always pair an icon-only trigger with visible text or an `aria-label` on the button that fires the toast.
334
+ - Do not use toasts as the only feedback for errors on form submit — also surface the error inline near the field (the `description` alone is not focusable).
335
+ - `duration: Infinity` toasts trap no focus but persist; always provide a `closeButton` or explicit dismiss action for sticky toasts.
336
+ - Hotkey defaults to `Alt+T` (`hotKey` input); document it if your app relies on keyboard flows, or override it to avoid conflicts.
337
+
338
+ ## Theming / CSS variables
339
+
340
+ The outlet merges `hlm('toaster group', userClass)` and ships `toastOptions.classes` mapped onto shadcn theme tokens (`bg-background`, `text-foreground`, `border-border`, `bg-primary`, `bg-muted`, …). It follows your shadcn CSS-variable theme automatically. Override via the `class` input (outlet position/layout) or `toastOptions.classes` (toast/description/action/cancel styling).
61
341
 
62
- ## Additional Resources
342
+ ## Related subpaths
63
343
 
64
- For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
344
+ - `@egose/shadcn-theme-ng/button` — trigger buttons for toast demos.
345
+ - `@egose/shadcn-theme-ng/spinner` — loading indicator to pair with `toast.promise()`.
346
+ - `@egose/shadcn-theme-ng/alert` / `@egose/shadcn-theme-ng/basic-alert` — persistent inline feedback (vs. transient toasts).
347
+ - `@egose/shadcn-theme-ng/utils` — `hlm()` merger used internally for outlet classes.
@@ -18,10 +18,10 @@ class HlmToaster {
18
18
  closeButton = input(false, { ...(ngDevMode ? { debugName: "closeButton" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
19
19
  toastOptions = input({
20
20
  classes: {
21
- toast: 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',
22
- description: 'group-[.toast]:text-muted-foreground',
23
- actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',
24
- cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',
21
+ toast: "group tw:toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
22
+ description: "group-[.toast]:text-muted-foreground",
23
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
24
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
25
25
  },
26
26
  }, /* @ts-ignore */
27
27
  ...(ngDevMode ? [{ debugName: "toastOptions" }] : /* istanbul ignore next */ []));
@@ -31,10 +31,10 @@ class HlmToaster {
31
31
  ...(ngDevMode ? [{ debugName: "dir" }] : /* istanbul ignore next */ []));
32
32
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
33
33
  userStyle = input({}, { ...(ngDevMode ? { debugName: "userStyle" } : /* istanbul ignore next */ {}), alias: 'style' });
34
- _computedClass = computed(() => hlm('toaster group', this.userClass()), /* @ts-ignore */
34
+ _computedClass = computed(() => hlm("toaster group", this.userClass()), /* @ts-ignore */
35
35
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmToaster, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: HlmToaster, isStandalone: true, selector: "hlm-toaster", inputs: { invert: { classPropertyName: "invert", publicName: "invert", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, hotKey: { classPropertyName: "hotKey", publicName: "hotKey", isSignal: true, isRequired: false, transformFunction: null }, richColors: { classPropertyName: "richColors", publicName: "richColors", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, visibleToasts: { classPropertyName: "visibleToasts", publicName: "visibleToasts", isSignal: true, isRequired: false, transformFunction: null }, closeButton: { classPropertyName: "closeButton", publicName: "closeButton", isSignal: true, isRequired: false, transformFunction: null }, toastOptions: { classPropertyName: "toastOptions", publicName: "toastOptions", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, userStyle: { classPropertyName: "userStyle", publicName: "style", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmToaster, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: HlmToaster, isStandalone: true, selector: "hlm-toaster", inputs: { invert: { classPropertyName: "invert", publicName: "invert", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, hotKey: { classPropertyName: "hotKey", publicName: "hotKey", isSignal: true, isRequired: false, transformFunction: null }, richColors: { classPropertyName: "richColors", publicName: "richColors", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, visibleToasts: { classPropertyName: "visibleToasts", publicName: "visibleToasts", isSignal: true, isRequired: false, transformFunction: null }, closeButton: { classPropertyName: "closeButton", publicName: "closeButton", isSignal: true, isRequired: false, transformFunction: null }, toastOptions: { classPropertyName: "toastOptions", publicName: "toastOptions", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, userStyle: { classPropertyName: "userStyle", publicName: "style", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
38
38
  <ngx-sonner-toaster
39
39
  [class]="_computedClass()"
40
40
  [invert]="invert()"
@@ -53,7 +53,7 @@ class HlmToaster {
53
53
  />
54
54
  `, isInline: true, dependencies: [{ kind: "component", type: NgxSonnerToaster, selector: "ngx-sonner-toaster", inputs: ["invert", "theme", "position", "hotKey", "richColors", "expand", "duration", "visibleToasts", "closeButton", "toastOptions", "offset", "dir", "class", "style"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmToaster, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmToaster, decorators: [{
57
57
  type: Component,
58
58
  args: [{
59
59
  selector: 'hlm-toaster',
@@ -85,11 +85,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
85
85
  */
86
86
  const HlmToasterImports = [HlmToaster];
87
87
  class HlmToasterModule {
88
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmToasterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
89
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmToasterModule, imports: [HlmToaster], exports: [HlmToaster] });
90
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmToasterModule, imports: [HlmToasterImports] });
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmToasterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
89
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmToasterModule, imports: [HlmToaster], exports: [HlmToaster] });
90
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmToasterModule, imports: [HlmToasterImports] });
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmToasterModule, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmToasterModule, decorators: [{
93
93
  type: NgModule,
94
94
  args: [{
95
95
  imports: [...HlmToasterImports],
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
102
102
  */
103
103
 
104
104
  export { HlmToaster, HlmToasterImports, HlmToasterModule };
105
- //# sourceMappingURL=sonner.mjs.map
105
+