@egose/shadcn-theme-ng-tw 0.0.28 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README.md +130 -13
  2. package/accordion/README.md +2 -63
  3. package/accordion/fesm2022/accordion.mjs +20 -20
  4. package/alert/README.md +2 -63
  5. package/alert/fesm2022/alert.mjs +18 -18
  6. package/alert-dialog/fesm2022/alert-dialog.mjs +48 -48
  7. package/alert-dialog/types/alert-dialog.d.ts +1 -1
  8. package/aspect-ratio/fesm2022/aspect-ratio.mjs +9 -9
  9. package/autocomplete/README.md +2 -63
  10. package/autocomplete/fesm2022/autocomplete.mjs +54 -54
  11. package/autocomplete/types/autocomplete.d.ts +1 -1
  12. package/avatar/fesm2022/avatar.mjs +32 -32
  13. package/badge/README.md +2 -63
  14. package/badge/fesm2022/badge.mjs +4 -4
  15. package/basic-alert/README.md +2 -63
  16. package/basic-alert/fesm2022/basic-alert.mjs +4 -4
  17. package/basic-alert/types/basic-alert.d.ts +1 -1
  18. package/breadcrumb/fesm2022/breadcrumb.mjs +34 -34
  19. package/button/README.md +2 -63
  20. package/button/fesm2022/button.mjs +11 -11
  21. package/button/types/button.d.ts +2 -2
  22. package/button-group/fesm2022/button-group.mjs +20 -20
  23. package/calendar/README.md +2 -63
  24. package/calendar/fesm2022/calendar.mjs +154 -154
  25. package/card/fesm2022/card.mjs +33 -33
  26. package/carousel/fesm2022/carousel.mjs +44 -44
  27. package/carousel/types/carousel.d.ts +1 -1
  28. package/checkbox/README.md +2 -63
  29. package/checkbox/fesm2022/checkbox.mjs +22 -20
  30. package/checkbox/types/checkbox.d.ts +5 -4
  31. package/collapsible/fesm2022/collapsible.mjs +15 -15
  32. package/combobox/fesm2022/combobox.mjs +92 -92
  33. package/combobox/types/combobox.d.ts +1 -1
  34. package/command/fesm2022/command.mjs +56 -56
  35. package/confirmation-dialog/README.md +2 -63
  36. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +13 -12
  37. package/confirmation-dialog/types/confirmation-dialog.d.ts +9 -5
  38. package/context-menu/fesm2022/context-menu.mjs +9 -9
  39. package/date-picker/README.md +2 -63
  40. package/date-picker/fesm2022/date-picker.mjs +79 -68
  41. package/date-picker/types/date-picker.d.ts +8 -4
  42. package/dialog/README.md +2 -63
  43. package/dialog/fesm2022/dialog.mjs +48 -48
  44. package/drawer/fesm2022/drawer.mjs +45 -45
  45. package/dropdown-menu/fesm2022/dropdown-menu.mjs +85 -73
  46. package/dropdown-menu/types/dropdown-menu.d.ts +4 -0
  47. package/empty/fesm2022/empty.mjs +31 -31
  48. package/field/fesm2022/field.mjs +59 -59
  49. package/field/types/field.d.ts +1 -1
  50. package/form-checkbox/README.md +2 -63
  51. package/form-checkbox/fesm2022/form-checkbox.mjs +37 -19
  52. package/form-checkbox/types/form-checkbox.d.ts +7 -1
  53. package/form-date-picker/README.md +2 -63
  54. package/form-date-picker/fesm2022/form-date-picker.mjs +59 -24
  55. package/form-date-picker/types/form-date-picker.d.ts +7 -1
  56. package/form-field/README.md +2 -63
  57. package/form-field/fesm2022/form-field.mjs +30 -16
  58. package/form-field/types/form-field.d.ts +28 -20
  59. package/form-field-simple/README.md +2 -63
  60. package/form-field-simple/fesm2022/form-field-simple.mjs +4 -4
  61. package/form-searchable-multiselect/README.md +2 -63
  62. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +41 -21
  63. package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +8 -2
  64. package/form-select/README.md +2 -63
  65. package/form-select/fesm2022/form-select.mjs +62 -29
  66. package/form-select/types/form-select.d.ts +7 -1
  67. package/form-text-input/README.md +2 -63
  68. package/form-text-input/fesm2022/form-text-input.mjs +43 -55
  69. package/form-text-input/types/form-text-input.d.ts +9 -12
  70. package/form-textarea/README.md +2 -63
  71. package/form-textarea/fesm2022/form-textarea.mjs +42 -23
  72. package/form-textarea/types/form-textarea.d.ts +8 -1
  73. package/hover-card/fesm2022/hover-card.mjs +19 -19
  74. package/icon/README.md +2 -63
  75. package/icon/fesm2022/icon.mjs +8 -8
  76. package/input/README.md +2 -63
  77. package/input/fesm2022/input.mjs +17 -12
  78. package/input/types/input.d.ts +2 -1
  79. package/input-group/fesm2022/input-group.mjs +37 -37
  80. package/input-group/types/input-group.d.ts +3 -3
  81. package/input-otp/fesm2022/input-otp.mjs +27 -27
  82. package/item/fesm2022/item.mjs +54 -54
  83. package/kbd/fesm2022/kbd.mjs +13 -13
  84. package/label/README.md +2 -63
  85. package/label/fesm2022/label.mjs +9 -9
  86. package/label/types/label.d.ts +1 -1
  87. package/layout-simple/README.md +2 -63
  88. package/layout-simple/fesm2022/layout-simple.mjs +88 -37
  89. package/layout-simple/types/layout-simple.d.ts +26 -12
  90. package/menu/README.md +3 -0
  91. package/menu/fesm2022/menu.mjs +461 -0
  92. package/menu/package.json +24 -0
  93. package/menu/types/menu.d.ts +137 -0
  94. package/menubar/fesm2022/menubar.mjs +13 -13
  95. package/native-select/fesm2022/native-select.mjs +19 -19
  96. package/navigation-menu/fesm2022/navigation-menu.mjs +37 -37
  97. package/package.json +183 -154
  98. package/pagination/fesm2022/pagination.mjs +63 -63
  99. package/popover/README.md +2 -63
  100. package/popover/fesm2022/popover.mjs +30 -30
  101. package/progress/fesm2022/progress.mjs +13 -13
  102. package/radio-group/README.md +2 -63
  103. package/radio-group/fesm2022/radio-group.mjs +22 -19
  104. package/resizable/fesm2022/resizable.mjs +19 -19
  105. package/scroll-area/fesm2022/scroll-area.mjs +9 -9
  106. package/searchable-multiselect/README.md +2 -63
  107. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +63 -16
  108. package/searchable-multiselect/types/searchable-multiselect.d.ts +8 -2
  109. package/select/README.md +2 -63
  110. package/select/fesm2022/select.mjs +80 -72
  111. package/select/types/select.d.ts +3 -1
  112. package/separator/README.md +2 -63
  113. package/separator/fesm2022/separator.mjs +9 -9
  114. package/separator/types/separator.d.ts +1 -1
  115. package/sheet/README.md +2 -63
  116. package/sheet/fesm2022/sheet.mjs +30 -30
  117. package/sidebar/fesm2022/sidebar.mjs +136 -134
  118. package/sidebar/types/sidebar.d.ts +3 -3
  119. package/skeleton/fesm2022/skeleton.mjs +9 -9
  120. package/slider/fesm2022/slider.mjs +25 -25
  121. package/sonner/README.md +2 -63
  122. package/sonner/fesm2022/sonner.mjs +9 -9
  123. package/spinner/README.md +2 -63
  124. package/spinner/fesm2022/spinner.mjs +8 -8
  125. package/switch/README.md +2 -63
  126. package/switch/fesm2022/switch.mjs +12 -14
  127. package/table/fesm2022/table.mjs +41 -41
  128. package/tabs/README.md +2 -63
  129. package/tabs/fesm2022/tabs.mjs +38 -38
  130. package/textarea/fesm2022/textarea.mjs +9 -9
  131. package/toggle/fesm2022/toggle.mjs +14 -14
  132. package/toggle-group/fesm2022/toggle-group.mjs +13 -13
  133. package/toggle-group/types/toggle-group.d.ts +13 -7
  134. package/tooltip/README.md +2 -63
  135. package/tooltip/fesm2022/tooltip.mjs +14 -14
  136. package/typography/fesm2022/typography.mjs +53 -53
  137. package/typography/types/typography.d.ts +12 -12
  138. package/utils/README.md +2 -63
  139. package/utils/fesm2022/utils.mjs +68 -44
  140. package/accordion/fesm2022/accordion.mjs.map +0 -1
  141. package/alert/fesm2022/alert.mjs.map +0 -1
  142. package/alert-dialog/fesm2022/alert-dialog.mjs.map +0 -1
  143. package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +0 -1
  144. package/autocomplete/fesm2022/autocomplete.mjs.map +0 -1
  145. package/avatar/fesm2022/avatar.mjs.map +0 -1
  146. package/badge/fesm2022/badge.mjs.map +0 -1
  147. package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
  148. package/breadcrumb/fesm2022/breadcrumb.mjs.map +0 -1
  149. package/button/fesm2022/button.mjs.map +0 -1
  150. package/button-group/fesm2022/button-group.mjs.map +0 -1
  151. package/calendar/fesm2022/calendar.mjs.map +0 -1
  152. package/card/fesm2022/card.mjs.map +0 -1
  153. package/carousel/fesm2022/carousel.mjs.map +0 -1
  154. package/checkbox/fesm2022/checkbox.mjs.map +0 -1
  155. package/collapsible/fesm2022/collapsible.mjs.map +0 -1
  156. package/combobox/fesm2022/combobox.mjs.map +0 -1
  157. package/command/fesm2022/command.mjs.map +0 -1
  158. package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +0 -1
  159. package/context-menu/fesm2022/context-menu.mjs.map +0 -1
  160. package/date-picker/fesm2022/date-picker.mjs.map +0 -1
  161. package/dialog/fesm2022/dialog.mjs.map +0 -1
  162. package/drawer/fesm2022/drawer.mjs.map +0 -1
  163. package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +0 -1
  164. package/empty/fesm2022/empty.mjs.map +0 -1
  165. package/field/fesm2022/field.mjs.map +0 -1
  166. package/form-checkbox/fesm2022/form-checkbox.mjs.map +0 -1
  167. package/form-date-picker/fesm2022/form-date-picker.mjs.map +0 -1
  168. package/form-field/fesm2022/form-field.mjs.map +0 -1
  169. package/form-field-simple/fesm2022/form-field-simple.mjs.map +0 -1
  170. package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +0 -1
  171. package/form-select/fesm2022/form-select.mjs.map +0 -1
  172. package/form-text-input/fesm2022/form-text-input.mjs.map +0 -1
  173. package/form-textarea/fesm2022/form-textarea.mjs.map +0 -1
  174. package/hover-card/fesm2022/hover-card.mjs.map +0 -1
  175. package/icon/fesm2022/icon.mjs.map +0 -1
  176. package/input/fesm2022/input.mjs.map +0 -1
  177. package/input-group/fesm2022/input-group.mjs.map +0 -1
  178. package/input-otp/fesm2022/input-otp.mjs.map +0 -1
  179. package/item/fesm2022/item.mjs.map +0 -1
  180. package/kbd/fesm2022/kbd.mjs.map +0 -1
  181. package/label/fesm2022/label.mjs.map +0 -1
  182. package/layout-simple/fesm2022/layout-simple.mjs.map +0 -1
  183. package/menubar/fesm2022/menubar.mjs.map +0 -1
  184. package/native-select/fesm2022/native-select.mjs.map +0 -1
  185. package/navigation-menu/fesm2022/navigation-menu.mjs.map +0 -1
  186. package/pagination/fesm2022/pagination.mjs.map +0 -1
  187. package/popover/fesm2022/popover.mjs.map +0 -1
  188. package/progress/fesm2022/progress.mjs.map +0 -1
  189. package/radio-group/fesm2022/radio-group.mjs.map +0 -1
  190. package/resizable/fesm2022/resizable.mjs.map +0 -1
  191. package/scroll-area/fesm2022/scroll-area.mjs.map +0 -1
  192. package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +0 -1
  193. package/select/fesm2022/select.mjs.map +0 -1
  194. package/separator/fesm2022/separator.mjs.map +0 -1
  195. package/sheet/fesm2022/sheet.mjs.map +0 -1
  196. package/sidebar/fesm2022/sidebar.mjs.map +0 -1
  197. package/skeleton/fesm2022/skeleton.mjs.map +0 -1
  198. package/slider/fesm2022/slider.mjs.map +0 -1
  199. package/sonner/fesm2022/sonner.mjs.map +0 -1
  200. package/spinner/fesm2022/spinner.mjs.map +0 -1
  201. package/switch/fesm2022/switch.mjs.map +0 -1
  202. package/table/fesm2022/table.mjs.map +0 -1
  203. package/tabs/fesm2022/tabs.mjs.map +0 -1
  204. package/textarea/fesm2022/textarea.mjs.map +0 -1
  205. package/toggle/fesm2022/toggle.mjs.map +0 -1
  206. package/toggle-group/fesm2022/toggle-group.mjs.map +0 -1
  207. package/tooltip/fesm2022/tooltip.mjs.map +0 -1
  208. package/typography/fesm2022/typography.mjs.map +0 -1
  209. package/utils/fesm2022/utils.mjs.map +0 -1
package/README.md CHANGED
@@ -14,17 +14,28 @@ npm install @egose/shadcn-theme-ng
14
14
  npm install @egose/shadcn-theme-ng-tw
15
15
  ```
16
16
 
17
- `pnpm` / `yarn` equivalents work too. Make sure your project's versions satisfy the peer ranges below.
17
+ `pnpm` / `yarn` equivalents work too. npm installs peer dependencies automatically when it can resolve compatible
18
+ versions; applications must keep their existing framework versions inside the supported ranges below.
18
19
 
19
20
  ### Peer dependencies
20
21
 
21
- | Package | Supported version |
22
- | ------------------- | ------------------- |
23
- | `@angular/common` | `^20.2.0` |
24
- | `@angular/core` | `^20.2.0` |
25
- | `@spartan-ng/brain` | `^0.0.1-alpha.512+` |
22
+ | Package | Supported version | Tested version |
23
+ | ------------------- | ------------------ | -------------- |
24
+ | `@angular/cdk` | `>=22.0.0 <23.0.0` | `22.1.3` |
25
+ | `@angular/common` | `>=22.0.0 <23.0.0` | `22.1.3` |
26
+ | `@angular/core` | `>=22.0.0 <23.0.0` | `22.1.3` |
27
+ | `@angular/forms` | `>=22.0.0 <23.0.0` | `22.1.3` |
28
+ | `@angular/router` | `>=22.0.0 <23.0.0` | `22.1.3` |
29
+ | `@ng-icons/core` | `>=35.0.1 <36.0.0` | `35.0.1` |
30
+ | `@spartan-ng/brain` | `>=1.3.2 <2.0.0` | `1.3.2` |
31
+ | `rxjs` | `>=7.8.0 <8.0.0` | `7.8.2` |
26
32
 
27
- `@spartan-ng/brain` is the underlying primitive library that powers most components.
33
+ Angular and CDK must use the same major version. The tested consumer contract is Angular 22, CDK 22, and Spartan 1.3.2;
34
+ the ranges above are copied from the published peer metadata and validated with strict isolated installs.
35
+
36
+ Runtime implementation dependencies such as `@ng-icons/lucide`, `@ng-icons/tabler-icons`, `class-variance-authority`,
37
+ `clsx`, `embla-carousel`, `embla-carousel-angular`, `ngx-scrollbar`, `ngx-sonner`, `tailwind-merge`, and `tslib` are
38
+ installed transitively. Do not install them directly unless your application also imports them.
28
39
 
29
40
  ### Tailwind variants
30
41
 
@@ -37,6 +48,59 @@ There are two published variants of this package. They produce identical markup
37
48
 
38
49
  If your project mixes shadcn styles with other Tailwind utilities that share class names, use the `-tw` variant to avoid collisions.
39
50
 
51
+ Class utilities are normalized to one unprefixed canonical representation during packaging. The plain artifact emits
52
+ unprefixed utilities, while the `-tw` artifact prefixes every recognized utility with `tw:`. Generated JavaScript source
53
+ maps are intentionally excluded because this post-build class and package-identity transformation invalidates ng-packagr's
54
+ maps; shipping no map is safer than shipping a map that points at different generated code.
55
+
56
+ ## Release preparation
57
+
58
+ Prepare both release candidates without publishing by supplying the intended version explicitly:
59
+
60
+ ```bash
61
+ pnpm --dir packages/angular prepare:release --version 1.2.3
62
+ ```
63
+
64
+ This runs `@repo-toolkit/publish-package` with `publish.config.mjs`: it serially
65
+ builds, validates, and packs the plain (`release/plain` → `@egose/shadcn-theme-ng`)
66
+ and `tw:` (`release/tw` → `@egose/shadcn-theme-ng-tw`) variants. The inspectable
67
+ stages and two exact `.tgz` artifacts are written under `packages/angular/release/`.
68
+ Neither package is published unless both candidates pass every step. Publishing is
69
+ intended to run from protected CI with npm trusted publishing/OIDC; `--otp` remains
70
+ available for manual publishes (passed to the toolkit publish command, never logged).
71
+
72
+ ## Source tests
73
+
74
+ Headless-test prerequisite (local and CI): the Karma suites need a
75
+ Chrome-compatible binary. The repository-supported setup downloads it into
76
+ the repo-local `.puppeteer-cache/` directory:
77
+
78
+ ```bash
79
+ pnpm --dir packages/angular install:browser
80
+ ```
81
+
82
+ Alternatively, set `CHROME_BIN` to any Chrome/Chromium binary yourself
83
+ (`test/karma.conf.js` honors a pre-set `CHROME_BIN`, then falls back to a
84
+ system Chrome).
85
+
86
+ Focused library tests are intentionally separate from staged-package and artifact validation:
87
+
88
+ ```bash
89
+ # One selected library
90
+ pnpm --dir packages/angular test:library form-text-input
91
+ pnpm --dir packages/angular test:library utils
92
+
93
+ # Source export contracts plus every selected library, serially and headlessly
94
+ pnpm --dir packages/angular test:libraries
95
+
96
+ # The example shell and router behavior
97
+ pnpm --dir packages/angular/@examples/standard test:ci
98
+ ```
99
+
100
+ The browser suites share `packages/angular/test/setup.ts`, which provides zoneless Angular setup and assertions for form
101
+ bindings and resource teardown. DOM reconciliation uses real `MutationObserver` and animation-frame scheduling; server-mode
102
+ coverage verifies those browser resources are not created. All CI commands disable watch mode so they terminate after one run.
103
+
40
104
  ## Import forms
41
105
 
42
106
  Import each component via its own npm subpath:
@@ -72,23 +136,27 @@ export class MyModule {}
72
136
 
73
137
  Import by component name. Component `NameX` is reachable at `@egose/shadcn-theme-ng/<name-x>` (kebab-case). The current surface:
74
138
 
75
- `accordion`, `alert`, `autocomplete`, `badge`, `basic-alert`, `button`, `calendar`, `checkbox`, `confirmation-dialog`, `date-picker`, `dialog`, `form-checkbox`, `form-date-picker`, `form-field`, `form-field-simple`, `form-searchable-multiselect`, `form-select`, `form-text-input`, `form-textarea`, `icon`, `input`, `label`, `layout-simple`, `menu`, `popover`, `radio-group`, `searchable-multiselect`, `select`, `separator`, `sheet`, `sonner`, `spinner`, `switch`, `tabs`, `tooltip`, `utils`.
139
+ <!-- BEGIN GENERATED SUBPATHS -->
140
+
141
+ `accordion`, `alert`, `alert-dialog`, `aspect-ratio`, `autocomplete`, `avatar`, `badge`, `basic-alert`, `breadcrumb`, `button`, `button-group`, `calendar`, `card`, `carousel`, `checkbox`, `collapsible`, `combobox`, `command`, `confirmation-dialog`, `context-menu`, `date-picker`, `dialog`, `drawer`, `dropdown-menu`, `empty`, `field`, `form-checkbox`, `form-date-picker`, `form-field`, `form-field-simple`, `form-searchable-multiselect`, `form-select`, `form-text-input`, `form-textarea`, `hover-card`, `icon`, `input`, `input-group`, `input-otp`, `item`, `kbd`, `label`, `layout-simple`, `menu`, `menubar`, `native-select`, `navigation-menu`, `pagination`, `popover`, `progress`, `radio-group`, `resizable`, `scroll-area`, `searchable-multiselect`, `select`, `separator`, `sheet`, `sidebar`, `skeleton`, `slider`, `sonner`, `spinner`, `switch`, `table`, `tabs`, `textarea`, `toggle`, `toggle-group`, `tooltip`, `typography`, `utils`.
142
+
143
+ <!-- END GENERATED SUBPATHS -->
76
144
 
77
145
  Anything not in this list is not part of the public surface. The published `exports` map in `package.json` reflects this set exactly — if a subpath is not listed, do not assume it is importable.
78
146
 
79
147
  ## Quick start (Angular standalone)
80
148
 
81
149
  ```ts
82
- import { Component } from "@angular/core";
83
- import { HlmButtonImports } from "@egose/shadcn-theme-ng/button";
84
- import { EgLayoutSimple, MenuItem } from "@egose/shadcn-theme-ng/layout-simple";
150
+ import { Component } from '@angular/core';
151
+ import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
152
+ import { EgLayoutSimple, MenuItem } from '@egose/shadcn-theme-ng/layout-simple';
85
153
 
86
154
  @Component({
87
155
  selector: "app-demo",
88
156
  standalone: true,
89
- imports: [...HlmButtonImports],
157
+ imports: [EgLayoutSimple, ...HlmButtonImports],
90
158
  template: \`
91
- <eg-layout-simple [menuItems]="items">
159
+ <eg-layout-simple [leftMenus]="items">
92
160
  <button hlmBtn variant="primary">Click</button>
93
161
  </eg-layout-simple>
94
162
  \`,
@@ -98,6 +166,55 @@ export class DemoComponent {
98
166
  }
99
167
  ```
100
168
 
169
+ ## Date picker values
170
+
171
+ `hlm-date-picker` emits a native JS `Date` (or `null` when cleared) via the `dateChange` output. Read it in the
172
+ controller with `(dateChange)`, a template ref (`picker.value()`), or a form binding (`ngModel`/`formControlName`,
173
+ the picker is a `ControlValueAccessor`):
174
+
175
+ ```html
176
+ <hlm-date-picker (dateChange)="onDate($event)">
177
+ <hlm-date-picker-input placeholder="Pick a date" />
178
+ </hlm-date-picker>
179
+ ```
180
+
181
+ ```ts
182
+ onDate(date: Date | null) {
183
+ // date is a JS Date, e.g. 2026-09-23T00:00:00 local time (or null on clear)
184
+ }
185
+ ```
186
+
187
+ Unlike the React `FormDatePicker` (which normalizes to local midnight), the Angular picker passes dates through
188
+ untouched by default: calendar clicks usually arrive at local midnight already, but dates typed into the input are
189
+ parsed with `new Date(value)`, where `"YYYY-MM-DD"` means UTC midnight — so the time portion can be non-zero. To
190
+ normalize every value reaching the controller to local midnight, provide a custom config (no library changes needed):
191
+
192
+ ```ts
193
+ import { provideHlmDatePickerConfig } from '@egose/shadcn-theme-ng/date-picker';
194
+
195
+ @Component({
196
+ // ...
197
+ providers: [
198
+ provideHlmDatePickerConfig({
199
+ // Strip the time portion, mirroring React's normalizeDate.
200
+ transformDate: (date: Date) => new Date(date.getFullYear(), date.getMonth(), date.getDate()),
201
+ // Parse typed "YYYY-MM-DD" as a local date instead of new Date(value) (UTC).
202
+ parseDate: (value: string) => {
203
+ const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
204
+ if (!match) return null;
205
+ const date = new Date(+match[1], +match[2] - 1, +match[3]);
206
+ return isNaN(date.getTime()) ? null : date;
207
+ },
208
+ }),
209
+ ],
210
+ })
211
+ export class MyComponent {}
212
+ ```
213
+
214
+ `transformDate` runs on every path into the model (calendar selection, typed input, `writeValue`), so the controller
215
+ then always sees local-midnight dates. Related: the picker stays open after selection by default; add the
216
+ `autoCloseOnSelect` attribute (or set it in the same config) to close it on select.
217
+
101
218
  ## Working example
102
219
 
103
220
  A complete Angular consumer app lives at [`@examples/standard`](https://github.com/egose/shadcn-theme/tree/main/packages/angular/@examples/standard) — see its `src/app/...` for real usage of `@egose/shadcn-theme-ng/button`, `.../layout-simple`, `.../form-text-input`, `.../autocomplete`, `.../select`, `.../form-checkbox`, `.../sheet`, etc.
@@ -1,64 +1,3 @@
1
- # Accordion
1
+ # Accordion Subpath
2
2
 
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
-
9
- ```bash
10
- ng generate component component-name
11
- ```
12
-
13
- For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
-
15
- ```bash
16
- ng generate --help
17
- ```
18
-
19
- ## Building
20
-
21
- To build the library, run:
22
-
23
- ```bash
24
- ng build accordion
25
- ```
26
-
27
- This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
-
29
- ### Publishing the Library
30
-
31
- Once the project is built, you can publish your library by following these steps:
32
-
33
- 1. Navigate to the `dist` directory:
34
-
35
- ```bash
36
- cd dist/accordion
37
- ```
38
-
39
- 2. Run the `npm publish` command to publish your library to the npm registry:
40
- ```bash
41
- npm publish
42
- ```
43
-
44
- ## Running unit tests
45
-
46
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
47
-
48
- ```bash
49
- ng test
50
- ```
51
-
52
- ## Running end-to-end tests
53
-
54
- For end-to-end (e2e) testing, run:
55
-
56
- ```bash
57
- ng e2e
58
- ```
59
-
60
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
61
-
62
- ## Additional Resources
63
-
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.
3
+ This project ships only as `@egose/shadcn-theme-ng/accordion` or `@egose/shadcn-theme-ng-tw/accordion`. See the [package README](../../README.md) for installation, compatibility, Tailwind variant, test, and release guidance. Do not publish this project directory independently.
@@ -12,10 +12,10 @@ class HlmAccordion {
12
12
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
13
13
  _computedClass = computed(() => hlm('tw:flex', this._brn.orientation() === 'horizontal' ? 'tw:flex-row' : 'tw:flex-col', this.userClass()), /* @ts-ignore */
14
14
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAccordion, isStandalone: true, selector: "[hlmAccordion], hlm-accordion", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordion, inputs: ["type", "type", "orientation", "orientation"] }], ngImport: i0 });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordion, isStandalone: true, selector: "[hlmAccordion], hlm-accordion", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordion, inputs: ["type", "type", "orientation", "orientation"] }], ngImport: i0 });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordion, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordion, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[hlmAccordion], hlm-accordion',
@@ -33,8 +33,8 @@ class HlmAccordionContent extends BrnAccordionContent {
33
33
  return hlm('tw:grid tw:text-sm tw:transition-all', gridRows, this.userClass());
34
34
  }, /* @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: HlmAccordionContent, deps: null, target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: HlmAccordionContent, isStandalone: true, selector: "hlm-accordion-content", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, usesInheritance: true, ngImport: i0, template: `
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionContent, deps: null, target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionContent, isStandalone: true, selector: "hlm-accordion-content", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, usesInheritance: true, ngImport: i0, template: `
38
38
  <div [attr.inert]="_inert()" style="tw:overflow:hidden">
39
39
  <div class="tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0">
40
40
  <ng-content />
@@ -42,7 +42,7 @@ class HlmAccordionContent extends BrnAccordionContent {
42
42
  </div>
43
43
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionContent, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionContent, decorators: [{
46
46
  type: Component,
47
47
  args: [{
48
48
  selector: 'hlm-accordion-content',
@@ -65,10 +65,10 @@ class HlmAccordionIcon {
65
65
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
66
66
  _computedClass = computed(() => hlm('tw:text-muted-foreground tw:pointer-events-none tw:size-4 tw:shrink-0 tw:translate-y-0.5 tw:transition-transform tw:duration-200', this.userClass()), /* @ts-ignore */
67
67
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
68
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAccordionIcon, isStandalone: true, selector: "ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionIcon, isStandalone: true, selector: "ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionIcon, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionIcon, decorators: [{
72
72
  type: Directive,
73
73
  args: [{
74
74
  selector: 'ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]',
@@ -83,10 +83,10 @@ class HlmAccordionItem {
83
83
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
84
84
  _computedClass = computed(() => hlm('tw:border-border tw:flex tw:flex-1 tw:flex-col tw:border-b', this.userClass()), /* @ts-ignore */
85
85
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
87
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAccordionItem, isStandalone: true, selector: "[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionItem, inputs: ["isOpened", "isOpened"] }], ngImport: i0 });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
87
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionItem, isStandalone: true, selector: "[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionItem, inputs: ["isOpened", "isOpened"] }], ngImport: i0 });
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionItem, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionItem, decorators: [{
90
90
  type: Directive,
91
91
  args: [{
92
92
  selector: '[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item',
@@ -106,10 +106,10 @@ class HlmAccordionTrigger {
106
106
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
107
107
  _computedClass = computed(() => hlm('tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:flex-1 tw:items-start tw:justify-between tw:gap-4 tw:rounded-md tw:py-4 tw:text-left tw:text-sm tw:font-medium tw:outline-none tw:transition-all tw:hover:underline tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:[&[data-state=open]>[egAccIcon]]:rotate-180', this.userClass()), /* @ts-ignore */
108
108
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
110
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAccordionTrigger, isStandalone: true, selector: "[hlmAccordionTrigger]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--tw-ring-offset-shadow": "\"0 0 #000\"", "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionTrigger }], ngImport: i0 });
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
110
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionTrigger, isStandalone: true, selector: "[hlmAccordionTrigger]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--tw-ring-offset-shadow": "\"0 0 #000\"", "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionTrigger }], ngImport: i0 });
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionTrigger, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionTrigger, decorators: [{
113
113
  type: Directive,
114
114
  args: [{
115
115
  selector: '[hlmAccordionTrigger]',
@@ -132,8 +132,8 @@ const HlmAccordionImports = [
132
132
  HlmAccordionContent,
133
133
  ];
134
134
  class HlmAccordionModule {
135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
136
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionModule, imports: [HlmAccordion,
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
136
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, imports: [HlmAccordion,
137
137
  HlmAccordionItem,
138
138
  HlmAccordionTrigger,
139
139
  HlmAccordionIcon,
@@ -142,9 +142,9 @@ class HlmAccordionModule {
142
142
  HlmAccordionTrigger,
143
143
  HlmAccordionIcon,
144
144
  HlmAccordionContent] });
145
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionModule });
145
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule });
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAccordionModule, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, decorators: [{
148
148
  type: NgModule,
149
149
  args: [{
150
150
  imports: [...HlmAccordionImports],
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
157
157
  */
158
158
 
159
159
  export { HlmAccordion, HlmAccordionContent, HlmAccordionIcon, HlmAccordionImports, HlmAccordionItem, HlmAccordionModule, HlmAccordionTrigger };
160
- //# sourceMappingURL=accordion.mjs.map
160
+
package/alert/README.md CHANGED
@@ -1,64 +1,3 @@
1
- # Alert
1
+ # Alert Subpath
2
2
 
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
-
9
- ```bash
10
- ng generate component component-name
11
- ```
12
-
13
- For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
-
15
- ```bash
16
- ng generate --help
17
- ```
18
-
19
- ## Building
20
-
21
- To build the library, run:
22
-
23
- ```bash
24
- ng build alert
25
- ```
26
-
27
- This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
-
29
- ### Publishing the Library
30
-
31
- Once the project is built, you can publish your library by following these steps:
32
-
33
- 1. Navigate to the `dist` directory:
34
-
35
- ```bash
36
- cd dist/alert
37
- ```
38
-
39
- 2. Run the `npm publish` command to publish your library to the npm registry:
40
- ```bash
41
- npm publish
42
- ```
43
-
44
- ## Running unit tests
45
-
46
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
47
-
48
- ```bash
49
- ng test
50
- ```
51
-
52
- ## Running end-to-end tests
53
-
54
- For end-to-end (e2e) testing, run:
55
-
56
- ```bash
57
- ng e2e
58
- ```
59
-
60
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
61
-
62
- ## Additional Resources
63
-
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.
3
+ This project ships only as `@egose/shadcn-theme-ng/alert` or `@egose/shadcn-theme-ng-tw/alert`. See the [package README](../../README.md) for installation, compatibility, Tailwind variant, test, and release guidance. Do not publish this project directory independently.
@@ -68,7 +68,7 @@ const alertVariants = cva('tw:relative tw:w-full tw:items-start tw:gap-y-0.5 tw:
68
68
  class: 'tw:bg-dark/20 tw:text-dark tw:[&>[hlmAlertDescription]]:text-dark',
69
69
  },
70
70
  {
71
- variant: 'accent',
71
+ variant: "tw:accent",
72
72
  appearance: 'light',
73
73
  class: 'tw:bg-accent/20 tw:text-accent tw:[&>[hlmAlertDescription]]:text-accent',
74
74
  },
@@ -109,10 +109,10 @@ class HlmAlert {
109
109
  appearance: this.appearance(),
110
110
  }), this.userClass()), /* @ts-ignore */
111
111
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
113
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAlert, isStandalone: true, selector: "[hlmAlert]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "alert" }, properties: { "class": "_computedClass()" } }, ngImport: i0 });
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
113
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlert, isStandalone: true, selector: "[hlmAlert]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "alert" }, properties: { "class": "_computedClass()" } }, ngImport: i0 });
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlert, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlert, decorators: [{
116
116
  type: Directive,
117
117
  args: [{
118
118
  selector: '[hlmAlert]',
@@ -127,10 +127,10 @@ class HlmAlertDescription {
127
127
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
128
128
  _computedClass = computed(() => hlm('tw:text-current tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed', this.userClass()), /* @ts-ignore */
129
129
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
131
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAlertDescription, isStandalone: true, selector: "[hlmAlertDesc],[hlmAlertDescription]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
131
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlertDescription, isStandalone: true, selector: "[hlmAlertDesc],[hlmAlertDescription]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertDescription, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertDescription, decorators: [{
134
134
  type: Directive,
135
135
  args: [{
136
136
  selector: '[hlmAlertDesc],[hlmAlertDescription]',
@@ -141,10 +141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
141
141
  }], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
142
142
 
143
143
  class HlmAlertIcon {
144
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
145
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmAlertIcon, isStandalone: true, selector: "[hlmAlertIcon]", providers: [provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
145
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmAlertIcon, isStandalone: true, selector: "[hlmAlertIcon]", providers: [provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertIcon, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertIcon, decorators: [{
148
148
  type: Directive,
149
149
  args: [{
150
150
  selector: '[hlmAlertIcon]',
@@ -156,10 +156,10 @@ class HlmAlertTitle {
156
156
  userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
157
157
  _computedClass = computed(() => hlm('tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:text-md tw:font-semibold tw:tracking-tight', this.userClass()), /* @ts-ignore */
158
158
  ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
159
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
160
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmAlertTitle, isStandalone: true, selector: "[hlmAlertTitle]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
160
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlertTitle, isStandalone: true, selector: "[hlmAlertTitle]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertTitle, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertTitle, decorators: [{
163
163
  type: Directive,
164
164
  args: [{
165
165
  selector: '[hlmAlertTitle]',
@@ -174,11 +174,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
174
174
  */
175
175
  const HlmAlertImports = [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon];
176
176
  class HlmAlertModule {
177
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
178
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertModule, imports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon], exports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon] });
179
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertModule });
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
178
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, imports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon], exports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon] });
179
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule });
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmAlertModule, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, decorators: [{
182
182
  type: NgModule,
183
183
  args: [{
184
184
  imports: [...HlmAlertImports],
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
191
191
  */
192
192
 
193
193
  export { HlmAlert, HlmAlertDescription, HlmAlertIcon, HlmAlertImports, HlmAlertModule, HlmAlertTitle };
194
- //# sourceMappingURL=alert.mjs.map
194
+