@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
package/popover/README.md CHANGED
@@ -1,64 +1,332 @@
1
- # Popover
1
+ # Popover (`@egose/shadcn-theme-ng/popover`)
2
2
 
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.
3
+ Floating panel anchored to a button (shadcn/ui `popover` equivalent). Thin shadcn styling directives over the spartan-ng `BrnPopover` brain family: a stateful `hlm-popover` root, a `button[hlmPopoverTrigger]` opener, portal/content pieces for the floating panel, and header/title/description typography helpers.
4
4
 
5
- ## Code scaffolding
5
+ Ships as `@egose/shadcn-theme-ng/popover` and `@egose/shadcn-theme-ng-tw/popover` (tw: variant). See the [package README](../../README.md) for installation, peer dependencies, Tailwind setup, and testing. 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
+ Peer dependencies are inherited from the package root (see [package README](../../README.md)). This subpath itself declares `@angular/common`, `@angular/core` as peers plus a `tslib` runtime dependency; at runtime it uses `@spartan-ng/brain/popover` and `@spartan-ng/brain/core`. No extra install step is needed beyond the package install above.
14
18
 
15
- ```bash
16
- ng generate --help
19
+ ## Imports
20
+
21
+ Real exported symbols (from `src/public-api.ts`):
22
+
23
+ ```ts
24
+ import {
25
+ HlmPopover, // directive: [hlmPopover],hlm-popover
26
+ HlmPopoverTrigger, // directive: button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]
27
+ HlmPopoverPortal, // directive: [hlmPopoverPortal]
28
+ HlmPopoverContent, // directive: [hlmPopoverContent],hlm-popover-content
29
+ HlmPopoverHeader, // directive: [hlmPopoverHeader],hlm-popover-header
30
+ HlmPopoverTitle, // directive: [hlmPopoverTitle]
31
+ HlmPopoverDescription, // directive: [hlmPopoverDescription]
32
+ HlmPopoverImports, // all seven above
33
+ HlmPopoverModule, // NgModule wrapping HlmPopoverImports
34
+ } from '@egose/shadcn-theme-ng/popover';
17
35
  ```
18
36
 
19
- ## Building
37
+ Standalone usage:
20
38
 
21
- To build the library, run:
39
+ ```ts
40
+ import { Component } from '@angular/core';
41
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
22
42
 
23
- ```bash
24
- ng build popover
43
+ @Component({
44
+ selector: 'app-demo',
45
+ standalone: true,
46
+ imports: [...HlmPopoverImports],
47
+ template: `
48
+ <hlm-popover>
49
+ <button hlmPopoverTrigger type="button">Open</button>
50
+ <hlm-popover-content *hlmPopoverPortal>
51
+ <p>Hello</p>
52
+ </hlm-popover-content>
53
+ </hlm-popover>
54
+ `,
55
+ })
56
+ export class DemoComponent {}
25
57
  ```
26
58
 
27
- This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
59
+ NgModule usage:
28
60
 
29
- ### Publishing the Library
61
+ ```ts
62
+ import { NgModule } from '@angular/core';
63
+ import { HlmPopoverModule } from '@egose/shadcn-theme-ng/popover';
30
64
 
31
- Once the project is built, you can publish your library by following these steps:
65
+ @NgModule({ imports: [HlmPopoverModule] })
66
+ export class DemoModule {}
67
+ ```
32
68
 
33
- 1. Navigate to the `dist` directory:
69
+ For the `tw:` build, swap the specifier to `@egose/shadcn-theme-ng-tw/popover`. Symbol names are identical.
34
70
 
35
- ```bash
36
- cd dist/popover
37
- ```
71
+ ## Anatomy / Structure
38
72
 
39
- 2. Run the `npm publish` command to publish your library to the npm registry:
40
- ```bash
41
- npm publish
42
- ```
73
+ ```html
74
+ <hlm-popover>
75
+ <!-- opener (must be a <button>) -->
76
+ <button hlmPopoverTrigger type="button">Settings</button>
43
77
 
44
- ## Running unit tests
78
+ <!-- floating panel: content styling + portal projection -->
79
+ <hlm-popover-content *hlmPopoverPortal class="tw:w-80">
80
+ <div hlmPopoverHeader>
81
+ <h4 hlmPopoverTitle>Dimensions</h4>
82
+ <p hlmPopoverDescription>Set the size of the layer.</p>
83
+ </div>
84
+ <!-- panel body -->
85
+ </hlm-popover-content>
86
+ </hlm-popover>
87
+ ```
45
88
 
46
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
89
+ The two-directive split on the panel is load-bearing: `hlmPopoverContent` paints the panel (fixed `w-72`, animations, `data-state` reflection), while `*hlmPopoverPortal` (a `BrnPopoverContent` host) projects it into the overlay at the anchored position. Always use them together as `hlm-popover-content *hlmPopoverPortal`.
47
90
 
48
- ```bash
49
- ng test
91
+ | Class | Selector | Role |
92
+ | ----------------------- | -------------------------------------------------------- | ----------------------------------------------------- |
93
+ | `HlmPopover` | `[hlmPopover],hlm-popover` | Stateful root (`BrnPopover` host) |
94
+ | `HlmPopoverTrigger` | `button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]` | Opener (`BrnPopoverTrigger` host; must be `<button>`) |
95
+ | `HlmPopoverPortal` | `[hlmPopoverPortal]` | Overlay projection (`BrnPopoverContent` host) |
96
+ | `HlmPopoverContent` | `[hlmPopoverContent],hlm-popover-content` | Panel styling + `data-state` mirror |
97
+ | `HlmPopoverHeader` | `[hlmPopoverHeader],hlm-popover-header` | Header stack (`flex flex-col gap-1 text-sm`) |
98
+ | `HlmPopoverTitle` | `[hlmPopoverTitle]` | Title (`font-medium`) |
99
+ | `HlmPopoverDescription` | `[hlmPopoverDescription]` | Subtitle (`text-muted-foreground`) |
100
+
101
+ ## API reference
102
+
103
+ | Selector | Inputs (incl. host passthroughs) | Outputs | Notes |
104
+ | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
105
+ | `[hlmPopover],hlm-popover` (`HlmPopover`) | `align`, `attachTo`, `autoFocus`, `closeOnOutsidePointerEvents`, `offsetX`, `sideOffset`, `state` (all via `BrnPopover`) | `stateChanged`, `closed` (via `BrnPopover`) | No shadcn inputs of its own; `data-slot="popover"` |
106
+ | `button[hlmPopoverTrigger]` (`HlmPopoverTrigger`) | `id`, `hlmPopoverTriggerFor` (→ `brnPopoverTriggerFor`), `type` (all via `BrnPopoverTrigger`) | — | `data-slot="popover-trigger"`. `hlmPopoverTriggerFor` targets an explicit popover when the trigger lives outside the root |
107
+ | `[hlmPopoverPortal]` (`HlmPopoverPortal`) | `context`, `class` (via `BrnPopoverContent`) | — | Structural directive (`*hlmPopoverPortal`); `class` merges onto the overlay panel |
108
+ | `[hlmPopoverContent]` (`HlmPopoverContent`) | — | — | Exposes `state` (brain state signal, default `signal('closed')`); mirrors it to `data-state` via `Renderer2` for the `data-open:`/`data-closed:` animations |
109
+ | `[hlmPopoverHeader]` / `[hlmPopoverTitle]` / `[hlmPopoverDescription]` | — | — | Typography only |
110
+
111
+ Panel styling (`HlmPopoverContent`): `bg-popover text-popover-foreground rounded-md p-4 text-sm shadow-md ring-1 ring-foreground/10 relative flex w-72 flex-col gap-4 outline-none` plus open/close zoom+fade animations keyed off `data-state`/`data-side`.
112
+
113
+ ## Examples
114
+
115
+ ### 1. Basic popover with header
116
+
117
+ ```ts
118
+ import { Component } from '@angular/core';
119
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
120
+ import { HlmButton } from '@egose/shadcn-theme-ng/button';
121
+
122
+ @Component({
123
+ selector: 'app-popover-basic',
124
+ standalone: true,
125
+ imports: [...HlmPopoverImports, HlmButton],
126
+ template: `
127
+ <hlm-popover>
128
+ <button hlmPopoverTrigger hlmButton variant="secondary" appearance="outline" type="button">Open settings</button>
129
+ <hlm-popover-content *hlmPopoverPortal>
130
+ <div hlmPopoverHeader>
131
+ <h4 hlmPopoverTitle>Dimensions</h4>
132
+ <p hlmPopoverDescription>Set the size of the layer.</p>
133
+ </div>
134
+ <div class="tw:grid tw:gap-2 tw:text-sm">
135
+ <label class="tw:grid tw:gap-1"
136
+ >Width <input class="tw:border tw:rounded tw:px-2 tw:py-1" value="100%"
137
+ /></label>
138
+ <label class="tw:grid tw:gap-1"
139
+ >Height <input class="tw:border tw:rounded tw:px-2 tw:py-1" value="24px"
140
+ /></label>
141
+ </div>
142
+ </hlm-popover-content>
143
+ </hlm-popover>
144
+ `,
145
+ })
146
+ export class PopoverBasicComponent {}
50
147
  ```
51
148
 
52
- ## Running end-to-end tests
149
+ ### 2. Placement, offsets, and state events
53
150
 
54
- For end-to-end (e2e) testing, run:
151
+ ```ts
152
+ import { Component, signal } from '@angular/core';
153
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
55
154
 
56
- ```bash
57
- ng e2e
155
+ @Component({
156
+ selector: 'app-popover-placement',
157
+ standalone: true,
158
+ imports: [...HlmPopoverImports],
159
+ template: `
160
+ <hlm-popover
161
+ align="start"
162
+ [sideOffset]="8"
163
+ [closeOnOutsidePointerEvents]="true"
164
+ (stateChanged)="open.set($event === 'open')"
165
+ (closed)="open.set(false)"
166
+ >
167
+ <button hlmPopoverTrigger type="button">Aligned start, offset 8</button>
168
+ <hlm-popover-content *hlmPopoverPortal>
169
+ <p class="tw:text-sm">Panel state: {{ open() ? 'open' : 'closed' }}.</p>
170
+ </hlm-popover-content>
171
+ </hlm-popover>
172
+ `,
173
+ })
174
+ export class PopoverPlacementComponent {
175
+ readonly open = signal(false);
176
+ }
58
177
  ```
59
178
 
60
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
179
+ `align`, `sideOffset`, `closeOnOutsidePointerEvents` are brain inputs on `HlmPopover`; `stateChanged`/`closed` are its outputs.
180
+
181
+ ### 3. Form inside a popover (template-driven)
182
+
183
+ ```ts
184
+ import { Component } from '@angular/core';
185
+ import { FormsModule } from '@angular/forms';
186
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
187
+ import { HlmInput } from '@egose/shadcn-theme-ng/input';
188
+ import { HlmLabelImports } from '@egose/shadcn-theme-ng/label';
189
+
190
+ @Component({
191
+ selector: 'app-popover-form',
192
+ standalone: true,
193
+ imports: [FormsModule, ...HlmPopoverImports, HlmInput, ...HlmLabelImports],
194
+ template: `
195
+ <hlm-popover>
196
+ <button hlmPopoverTrigger type="button">Invite member</button>
197
+ <hlm-popover-content *hlmPopoverPortal class="tw:w-80">
198
+ <div hlmPopoverHeader>
199
+ <h4 hlmPopoverTitle>Invite</h4>
200
+ <p hlmPopoverDescription>They receive an email invitation.</p>
201
+ </div>
202
+ <div class="tw:grid tw:gap-1.5">
203
+ <label hlmLabel for="invite-email">Email</label>
204
+ <input hlmInput id="invite-email" [(ngModel)]="email" type="email" placeholder="ada@example.com" />
205
+ <button type="button" (click)="invite()">Send invite</button>
206
+ </div>
207
+ </hlm-popover-content>
208
+ </hlm-popover>
209
+ `,
210
+ })
211
+ export class PopoverFormComponent {
212
+ email = '';
213
+
214
+ invite(): void {
215
+ console.log('invite', this.email);
216
+ }
217
+ }
218
+ ```
219
+
220
+ ### 4. Custom panel width via portal `class`
221
+
222
+ The portal's `class` input lands on the overlay host; the content directive keeps its own `w-72` unless you override it on the element as well.
223
+
224
+ ```ts
225
+ import { Component } from '@angular/core';
226
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
227
+
228
+ @Component({
229
+ selector: 'app-popover-wide',
230
+ standalone: true,
231
+ imports: [...HlmPopoverImports],
232
+ template: `
233
+ <hlm-popover>
234
+ <button hlmPopoverTrigger type="button">Wide panel</button>
235
+ <hlm-popover-content *hlmPopoverPortal class="tw:w-96">
236
+ <div hlmPopoverHeader>
237
+ <h4 hlmPopoverTitle>Preview</h4>
238
+ <p hlmPopoverDescription>A wider panel for rich content.</p>
239
+ </div>
240
+ <div class="tw:grid tw:grid-cols-2 tw:gap-2 tw:text-sm">
241
+ <div class="tw:rounded tw:bg-muted tw:p-2">Column A</div>
242
+ <div class="tw:rounded tw:bg-muted tw:p-2">Column B</div>
243
+ </div>
244
+ </hlm-popover-content>
245
+ </hlm-popover>
246
+ `,
247
+ })
248
+ export class PopoverWideComponent {}
249
+ ```
250
+
251
+ ### 5. External trigger (`hlmPopoverTriggerFor`)
252
+
253
+ ```ts
254
+ import { Component } from '@angular/core';
255
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
256
+
257
+ @Component({
258
+ selector: 'app-popover-external',
259
+ standalone: true,
260
+ imports: [...HlmPopoverImports],
261
+ template: `
262
+ <hlm-popover #pop="hlmPopover">
263
+ <hlm-popover-content *hlmPopoverPortal>
264
+ <p class="tw:text-sm">Triggered from outside the root.</p>
265
+ </hlm-popover-content>
266
+ </hlm-popover>
267
+
268
+ <button hlmPopoverTriggerFor [hlmPopoverTriggerFor]="pop" type="button">Open from here</button>
269
+ `,
270
+ })
271
+ export class PopoverExternalComponent {}
272
+ ```
273
+
274
+ > The exact template-ref export name follows the brain `BrnPopover` directive (`#pop="…"`) — verify against your installed `@spartan-ng/brain` version if the alias differs.
275
+
276
+ ### 6. Async content + loading state
277
+
278
+ ```ts
279
+ import { Component, signal } from '@angular/core';
280
+ import { HlmPopoverImports } from '@egose/shadcn-theme-ng/popover';
281
+
282
+ @Component({
283
+ selector: 'app-popover-async',
284
+ standalone: true,
285
+ imports: [...HlmPopoverImports],
286
+ template: `
287
+ <hlm-popover (stateChanged)="onState($event)">
288
+ <button hlmPopoverTrigger type="button">Recent activity</button>
289
+ <hlm-popover-content *hlmPopoverPortal>
290
+ <div hlmPopoverHeader>
291
+ <h4 hlmPopoverTitle>Activity</h4>
292
+ <p hlmPopoverDescription>{{ loading() ? 'Loading…' : 'Last 3 events.' }}</p>
293
+ </div>
294
+ @for (e of events(); track e) {
295
+ <p class="tw:text-sm">{{ e }}</p>
296
+ } @empty {
297
+ <p class="tw:text-sm tw:text-muted-foreground">Nothing yet.</p>
298
+ }
299
+ </hlm-popover-content>
300
+ </hlm-popover>
301
+ `,
302
+ })
303
+ export class PopoverAsyncComponent {
304
+ readonly events = signal<string[]>([]);
305
+ readonly loading = signal(false);
306
+
307
+ async onState(state: string): Promise<void> {
308
+ if (state !== 'open' || this.events().length) return;
309
+ this.loading.set(true);
310
+ await new Promise((r) => setTimeout(r, 400));
311
+ this.events.set(['Deploy succeeded', 'Review requested', 'Comment added']);
312
+ this.loading.set(false);
313
+ }
314
+ }
315
+ ```
316
+
317
+ ## Accessibility notes
318
+
319
+ - Triggers must be `<button>` (both selector variants require it) with a text label; the brain layer wires `aria-expanded`, `aria-controls`, and focus return.
320
+ - Keep a heading (`hlmPopoverTitle`) as the first element when the panel conveys a topic — screen-reader users land inside the panel on open.
321
+ - `autoFocus` (brain input) controls initial focus; form panels should focus the first field, read-only panels should keep focus on the trigger side and let users tab in.
322
+ - `Escape`/outside-pointer close comes from the brain defaults (`closeOnOutsidePointerEvents` is configurable); don't trap focus manually.
323
+
324
+ ## Theming / CSS variables
325
+
326
+ No theming inputs. The panel uses `bg-popover text-popover-foreground ring-foreground/10`; header/title/description use text tokens. Widen via portal `class` (example 4); state-driven animations read the mirrored `data-state`.
61
327
 
62
- ## Additional Resources
328
+ ## Related subpaths
63
329
 
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.
330
+ - `@egose/shadcn-theme-ng/tooltip` — hover hint vs this component's click-anchored panel.
331
+ - `@egose/shadcn-theme-ng/dropdown-menu`, `@egose/shadcn-theme-ng/select` — menu/select overlays built on the same brain overlay concepts.
332
+ - `@egose/shadcn-theme-ng/input`, `@egose/shadcn-theme-ng/label` — form controls commonly hosted inside popover panels.
@@ -6,10 +6,10 @@ import { injectExposesStateProvider } from '@spartan-ng/brain/core';
6
6
  import { classes } from '@egose/shadcn-theme-ng/utils';
7
7
 
8
8
  class HlmPopover {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopover, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopover, isStandalone: true, selector: "[hlmPopover],hlm-popover", host: { attributes: { "data-slot": "popover" } }, hostDirectives: [{ directive: i1.BrnPopover, inputs: ["align", "align", "attachTo", "attachTo", "autoFocus", "autoFocus", "closeOnOutsidePointerEvents", "closeOnOutsidePointerEvents", "offsetX", "offsetX", "sideOffset", "sideOffset", "state", "state"], outputs: ["stateChanged", "stateChanged", "closed", "closed"] }], ngImport: i0 });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopover, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopover, isStandalone: true, selector: "[hlmPopover],hlm-popover", host: { attributes: { "data-slot": "popover" } }, hostDirectives: [{ directive: i1.BrnPopover, inputs: ["align", "align", "attachTo", "attachTo", "autoFocus", "autoFocus", "closeOnOutsidePointerEvents", "closeOnOutsidePointerEvents", "offsetX", "offsetX", "sideOffset", "sideOffset", "state", "state"], outputs: ["stateChanged", "stateChanged", "closed", "closed"] }], ngImport: i0 });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopover, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopover, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[hlmPopover],hlm-popover',
@@ -33,12 +33,12 @@ class HlmPopoverContent {
33
33
  effect(() => {
34
34
  this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());
35
35
  });
36
- classes(() => 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 gap-4 rounded-md p-4 text-sm shadow-md ring-1 duration-100 relative flex w-72 flex-col outline-none');
36
+ classes(() => "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 gap-4 rounded-md p-4 text-sm shadow-md ring-1 duration-100 relative flex w-72 flex-col outline-none");
37
37
  }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
39
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverContent, isStandalone: true, selector: "[hlmPopoverContent],hlm-popover-content", host: { attributes: { "data-slot": "popover-content" } }, ngImport: i0 });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
39
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverContent, isStandalone: true, selector: "[hlmPopoverContent],hlm-popover-content", host: { attributes: { "data-slot": "popover-content" } }, ngImport: i0 });
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverContent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverContent, decorators: [{
42
42
  type: Directive,
43
43
  args: [{
44
44
  selector: '[hlmPopoverContent],hlm-popover-content',
@@ -48,12 +48,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
48
48
 
49
49
  class HlmPopoverDescription {
50
50
  constructor() {
51
- classes(() => 'text-muted-foreground');
51
+ classes(() => "text-muted-foreground");
52
52
  }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
54
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverDescription, isStandalone: true, selector: "[hlmPopoverDescription]", host: { attributes: { "data-slot": "popover-description" } }, ngImport: i0 });
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
54
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverDescription, isStandalone: true, selector: "[hlmPopoverDescription]", host: { attributes: { "data-slot": "popover-description" } }, ngImport: i0 });
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverDescription, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverDescription, decorators: [{
57
57
  type: Directive,
58
58
  args: [{
59
59
  selector: '[hlmPopoverDescription]',
@@ -63,12 +63,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
63
63
 
64
64
  class HlmPopoverHeader {
65
65
  constructor() {
66
- classes(() => 'flex flex-col gap-1 text-sm');
66
+ classes(() => "flex flex-col gap-1 text-sm");
67
67
  }
68
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverHeader, isStandalone: true, selector: "[hlmPopoverHeader],hlm-popover-header", host: { attributes: { "data-slot": "popover-header" } }, ngImport: i0 });
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverHeader, isStandalone: true, selector: "[hlmPopoverHeader],hlm-popover-header", host: { attributes: { "data-slot": "popover-header" } }, ngImport: i0 });
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverHeader, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverHeader, decorators: [{
72
72
  type: Directive,
73
73
  args: [{
74
74
  selector: '[hlmPopoverHeader],hlm-popover-header',
@@ -77,10 +77,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
77
77
  }], ctorParameters: () => [] });
78
78
 
79
79
  class HlmPopoverPortal {
80
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive });
81
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverPortal, isStandalone: true, selector: "[hlmPopoverPortal]", hostDirectives: [{ directive: i1.BrnPopoverContent, inputs: ["context", "context", "class", "class"] }], ngImport: i0 });
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive });
81
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverPortal, isStandalone: true, selector: "[hlmPopoverPortal]", hostDirectives: [{ directive: i1.BrnPopoverContent, inputs: ["context", "context", "class", "class"] }], ngImport: i0 });
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverPortal, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverPortal, decorators: [{
84
84
  type: Directive,
85
85
  args: [{
86
86
  selector: '[hlmPopoverPortal]',
@@ -90,12 +90,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
90
90
 
91
91
  class HlmPopoverTitle {
92
92
  constructor() {
93
- classes(() => 'font-medium');
93
+ classes(() => "font-medium");
94
94
  }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverTitle, isStandalone: true, selector: "[hlmPopoverTitle]", host: { attributes: { "data-slot": "popover-title" } }, ngImport: i0 });
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverTitle, isStandalone: true, selector: "[hlmPopoverTitle]", host: { attributes: { "data-slot": "popover-title" } }, ngImport: i0 });
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverTitle, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverTitle, decorators: [{
99
99
  type: Directive,
100
100
  args: [{
101
101
  selector: '[hlmPopoverTitle]',
@@ -104,10 +104,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
104
104
  }], ctorParameters: () => [] });
105
105
 
106
106
  class HlmPopoverTrigger {
107
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: HlmPopoverTrigger, isStandalone: true, selector: "button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]", host: { attributes: { "data-slot": "popover-trigger" } }, hostDirectives: [{ directive: i1.BrnPopoverTrigger, inputs: ["id", "id", "brnPopoverTriggerFor", "hlmPopoverTriggerFor", "type", "type"] }], ngImport: i0 });
107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmPopoverTrigger, isStandalone: true, selector: "button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]", host: { attributes: { "data-slot": "popover-trigger" } }, hostDirectives: [{ directive: i1.BrnPopoverTrigger, inputs: ["id", "id", "brnPopoverTriggerFor", "hlmPopoverTriggerFor", "type", "type"] }], ngImport: i0 });
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverTrigger, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverTrigger, decorators: [{
111
111
  type: Directive,
112
112
  args: [{
113
113
  selector: 'button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]',
@@ -131,8 +131,8 @@ const HlmPopoverImports = [
131
131
  HlmPopoverTrigger,
132
132
  ];
133
133
  class HlmPopoverModule {
134
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
135
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverModule, imports: [HlmPopover,
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
135
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverModule, imports: [HlmPopover,
136
136
  HlmPopoverContent,
137
137
  HlmPopoverDescription,
138
138
  HlmPopoverHeader,
@@ -145,9 +145,9 @@ class HlmPopoverModule {
145
145
  HlmPopoverPortal,
146
146
  HlmPopoverTitle,
147
147
  HlmPopoverTrigger] });
148
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverModule });
148
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverModule });
149
149
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmPopoverModule, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmPopoverModule, decorators: [{
151
151
  type: NgModule,
152
152
  args: [{
153
153
  imports: [...HlmPopoverImports],
@@ -160,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
160
160
  */
161
161
 
162
162
  export { HlmPopover, HlmPopoverContent, HlmPopoverDescription, HlmPopoverHeader, HlmPopoverImports, HlmPopoverModule, HlmPopoverPortal, HlmPopoverTitle, HlmPopoverTrigger };
163
- //# sourceMappingURL=popover.mjs.map
163
+