ngwr 14.11.0 → 14.12.1

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 (266) hide show
  1. package/card/styles/_rules.scss +1 -1
  2. package/cascader/styles/_rules.scss +9 -4
  3. package/event-calendar/styles/_index.scss +14 -0
  4. package/fesm2022/ngwr-action-sheet.mjs +3 -3
  5. package/fesm2022/ngwr-affix.mjs +13 -3
  6. package/fesm2022/ngwr-affix.mjs.map +1 -1
  7. package/fesm2022/ngwr-alert.mjs +3 -3
  8. package/fesm2022/ngwr-anchor.mjs +3 -3
  9. package/fesm2022/ngwr-aurora.mjs +3 -3
  10. package/fesm2022/ngwr-avatar.mjs +3 -3
  11. package/fesm2022/ngwr-back-top.mjs +3 -3
  12. package/fesm2022/ngwr-badge.mjs +6 -6
  13. package/fesm2022/ngwr-bar-chart.mjs +3 -3
  14. package/fesm2022/ngwr-blur-text.mjs +3 -3
  15. package/fesm2022/ngwr-border-glow.mjs +3 -3
  16. package/fesm2022/ngwr-breadcrumbs.mjs +6 -6
  17. package/fesm2022/ngwr-burger.mjs +3 -3
  18. package/fesm2022/ngwr-button.mjs +6 -6
  19. package/fesm2022/ngwr-calendar-heatmap.mjs +3 -3
  20. package/fesm2022/ngwr-calendar.mjs +14 -3
  21. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  22. package/fesm2022/ngwr-card.mjs +11 -11
  23. package/fesm2022/ngwr-carousel.mjs +6 -6
  24. package/fesm2022/ngwr-cascader.mjs +12 -7
  25. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  26. package/fesm2022/ngwr-checkbox.mjs +32 -9
  27. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  28. package/fesm2022/ngwr-circular-text.mjs +3 -3
  29. package/fesm2022/ngwr-click-spark.mjs +3 -3
  30. package/fesm2022/ngwr-clipboard.mjs +3 -3
  31. package/fesm2022/ngwr-collapse.mjs +9 -9
  32. package/fesm2022/ngwr-color-picker.mjs +37 -14
  33. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  34. package/fesm2022/ngwr-command-palette.mjs +3 -3
  35. package/fesm2022/ngwr-compare.mjs +3 -3
  36. package/fesm2022/ngwr-confetti.mjs +3 -3
  37. package/fesm2022/ngwr-context-menu.mjs +12 -12
  38. package/fesm2022/ngwr-cookie.mjs +3 -3
  39. package/fesm2022/ngwr-counter.mjs +11 -10
  40. package/fesm2022/ngwr-counter.mjs.map +1 -1
  41. package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
  42. package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
  43. package/fesm2022/ngwr-date-picker.mjs +31 -23
  44. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  45. package/fesm2022/ngwr-date.mjs +3 -3
  46. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  47. package/fesm2022/ngwr-density.mjs +6 -6
  48. package/fesm2022/ngwr-descriptions.mjs +6 -6
  49. package/fesm2022/ngwr-dialog.mjs +15 -15
  50. package/fesm2022/ngwr-directives.mjs +12 -12
  51. package/fesm2022/ngwr-divider.mjs +3 -3
  52. package/fesm2022/ngwr-donut-chart.mjs +3 -3
  53. package/fesm2022/ngwr-drag-drop.mjs +6 -6
  54. package/fesm2022/ngwr-drawer.mjs +18 -18
  55. package/fesm2022/ngwr-dropdown.mjs +9 -9
  56. package/fesm2022/ngwr-editor.mjs +3 -3
  57. package/fesm2022/ngwr-empty.mjs +3 -3
  58. package/fesm2022/ngwr-event-calendar-testing.mjs +3 -1
  59. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  60. package/fesm2022/ngwr-event-calendar.mjs +8 -8
  61. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  62. package/fesm2022/ngwr-falling-text.mjs +3 -3
  63. package/fesm2022/ngwr-file-upload-testing.mjs +6 -1
  64. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  65. package/fesm2022/ngwr-file-upload.mjs +26 -8
  66. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  67. package/fesm2022/ngwr-form.mjs +9 -9
  68. package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
  69. package/fesm2022/ngwr-gauge.mjs +3 -3
  70. package/fesm2022/ngwr-glitch-text.mjs +3 -3
  71. package/fesm2022/ngwr-gradient-text.mjs +3 -3
  72. package/fesm2022/ngwr-graph.mjs +6 -6
  73. package/fesm2022/ngwr-hotkey.mjs +6 -6
  74. package/fesm2022/ngwr-i18n-ar.mjs +2 -3
  75. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  76. package/fesm2022/ngwr-i18n-cs.mjs +2 -3
  77. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  78. package/fesm2022/ngwr-i18n-de.mjs +2 -3
  79. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  80. package/fesm2022/ngwr-i18n-en.mjs +2 -3
  81. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  82. package/fesm2022/ngwr-i18n-es.mjs +2 -3
  83. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  84. package/fesm2022/ngwr-i18n-fr.mjs +2 -3
  85. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  86. package/fesm2022/ngwr-i18n-he.mjs +2 -3
  87. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  88. package/fesm2022/ngwr-i18n-hi.mjs +2 -3
  89. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  90. package/fesm2022/ngwr-i18n-id.mjs +2 -3
  91. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  92. package/fesm2022/ngwr-i18n-it.mjs +2 -3
  93. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  94. package/fesm2022/ngwr-i18n-ja.mjs +2 -3
  95. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  96. package/fesm2022/ngwr-i18n-ko.mjs +2 -3
  97. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  98. package/fesm2022/ngwr-i18n-nl.mjs +2 -3
  99. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  100. package/fesm2022/ngwr-i18n-pl.mjs +2 -3
  101. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  102. package/fesm2022/ngwr-i18n-pt.mjs +2 -3
  103. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  104. package/fesm2022/ngwr-i18n-ru.mjs +2 -3
  105. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  106. package/fesm2022/ngwr-i18n-sv.mjs +2 -3
  107. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  108. package/fesm2022/ngwr-i18n-tr.mjs +2 -3
  109. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  110. package/fesm2022/ngwr-i18n-uk.mjs +2 -3
  111. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  112. package/fesm2022/ngwr-i18n-vi.mjs +2 -3
  113. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  114. package/fesm2022/ngwr-i18n-zh-TW.mjs +2 -3
  115. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  116. package/fesm2022/ngwr-i18n-zh.mjs +2 -3
  117. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  118. package/fesm2022/ngwr-i18n.mjs +9 -9
  119. package/fesm2022/ngwr-icon.mjs +6 -6
  120. package/fesm2022/ngwr-icon.mjs.map +1 -1
  121. package/fesm2022/ngwr-image-cropper.mjs +3 -3
  122. package/fesm2022/ngwr-input-number.mjs +19 -4
  123. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  124. package/fesm2022/ngwr-input-otp.mjs +9 -5
  125. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  126. package/fesm2022/ngwr-input.mjs +15 -15
  127. package/fesm2022/ngwr-keyboard.mjs +3 -3
  128. package/fesm2022/ngwr-knob.mjs +21 -6
  129. package/fesm2022/ngwr-knob.mjs.map +1 -1
  130. package/fesm2022/ngwr-layout.mjs +15 -15
  131. package/fesm2022/ngwr-lightbox.mjs +3 -3
  132. package/fesm2022/ngwr-line-chart.mjs +3 -3
  133. package/fesm2022/ngwr-list.mjs +10 -16
  134. package/fesm2022/ngwr-list.mjs.map +1 -1
  135. package/fesm2022/ngwr-loading-bar.mjs +8 -8
  136. package/fesm2022/ngwr-markdown.mjs +6 -6
  137. package/fesm2022/ngwr-marquee.mjs +5 -5
  138. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  139. package/fesm2022/ngwr-media.mjs +3 -3
  140. package/fesm2022/ngwr-mention.mjs +6 -6
  141. package/fesm2022/ngwr-meta.mjs +6 -6
  142. package/fesm2022/ngwr-meter-group.mjs +3 -3
  143. package/fesm2022/ngwr-overlay.mjs +6 -6
  144. package/fesm2022/ngwr-page-header.mjs +3 -3
  145. package/fesm2022/ngwr-pagination.mjs +3 -3
  146. package/fesm2022/ngwr-pipes.mjs +22 -22
  147. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  148. package/fesm2022/ngwr-platform.mjs +9 -9
  149. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  150. package/fesm2022/ngwr-popover.mjs +12 -12
  151. package/fesm2022/ngwr-progress.mjs +3 -3
  152. package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
  153. package/fesm2022/ngwr-qr.mjs +3 -3
  154. package/fesm2022/ngwr-radio.mjs +16 -7
  155. package/fesm2022/ngwr-radio.mjs.map +1 -1
  156. package/fesm2022/ngwr-rating.mjs +21 -6
  157. package/fesm2022/ngwr-rating.mjs.map +1 -1
  158. package/fesm2022/ngwr-result.mjs +18 -12
  159. package/fesm2022/ngwr-result.mjs.map +1 -1
  160. package/fesm2022/ngwr-rotating-text.mjs +3 -3
  161. package/fesm2022/ngwr-schema-form.mjs +3 -3
  162. package/fesm2022/ngwr-scroll.mjs +3 -3
  163. package/fesm2022/ngwr-segmented.mjs +11 -4
  164. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  165. package/fesm2022/ngwr-select.mjs +43 -15
  166. package/fesm2022/ngwr-select.mjs.map +1 -1
  167. package/fesm2022/ngwr-shiny-text.mjs +6 -6
  168. package/fesm2022/ngwr-sidebar.mjs +3 -3
  169. package/fesm2022/ngwr-skeleton.mjs +3 -3
  170. package/fesm2022/ngwr-slider.mjs +21 -5
  171. package/fesm2022/ngwr-slider.mjs.map +1 -1
  172. package/fesm2022/ngwr-sparkline.mjs +3 -3
  173. package/fesm2022/ngwr-speed-dial.mjs +3 -3
  174. package/fesm2022/ngwr-spinner.mjs +3 -3
  175. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  176. package/fesm2022/ngwr-split-text.mjs +3 -3
  177. package/fesm2022/ngwr-splitter.mjs +3 -3
  178. package/fesm2022/ngwr-spotlight-card.mjs +6 -6
  179. package/fesm2022/ngwr-squircle.mjs +6 -6
  180. package/fesm2022/ngwr-star-border.mjs +3 -3
  181. package/fesm2022/ngwr-statistic.mjs +9 -9
  182. package/fesm2022/ngwr-stepper.mjs +6 -6
  183. package/fesm2022/ngwr-storage.mjs +3 -3
  184. package/fesm2022/ngwr-switch.mjs +22 -7
  185. package/fesm2022/ngwr-switch.mjs.map +1 -1
  186. package/fesm2022/ngwr-table.mjs +50 -25
  187. package/fesm2022/ngwr-table.mjs.map +1 -1
  188. package/fesm2022/ngwr-tabs-router.mjs +3 -3
  189. package/fesm2022/ngwr-tabs.mjs +8 -8
  190. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  191. package/fesm2022/ngwr-textarea.mjs +10 -5
  192. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  193. package/fesm2022/ngwr-theme.mjs +3 -3
  194. package/fesm2022/ngwr-tilt-card.mjs +6 -6
  195. package/fesm2022/ngwr-timeline.mjs +6 -6
  196. package/fesm2022/ngwr-toast.mjs +10 -10
  197. package/fesm2022/ngwr-toast.mjs.map +1 -1
  198. package/fesm2022/ngwr-toolbar.mjs +3 -3
  199. package/fesm2022/ngwr-tour.mjs +8 -6
  200. package/fesm2022/ngwr-tour.mjs.map +1 -1
  201. package/fesm2022/ngwr-transfer.mjs +11 -4
  202. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  203. package/fesm2022/ngwr-tree.mjs +13 -5
  204. package/fesm2022/ngwr-tree.mjs.map +1 -1
  205. package/fesm2022/ngwr-typewriter.mjs +3 -3
  206. package/fesm2022/ngwr-typography.mjs +3 -3
  207. package/fesm2022/ngwr-version.mjs +1 -1
  208. package/fesm2022/ngwr-version.mjs.map +1 -1
  209. package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
  210. package/fesm2022/ngwr-waves.mjs +3 -3
  211. package/fesm2022/ngwr-window.mjs +12 -12
  212. package/i18n/ar.json +2 -3
  213. package/i18n/cs.json +2 -3
  214. package/i18n/de.json +2 -3
  215. package/i18n/en.json +2 -3
  216. package/i18n/es.json +2 -3
  217. package/i18n/fr.json +2 -3
  218. package/i18n/he.json +2 -3
  219. package/i18n/hi.json +2 -3
  220. package/i18n/id.json +2 -3
  221. package/i18n/it.json +2 -3
  222. package/i18n/ja.json +2 -3
  223. package/i18n/ko.json +2 -3
  224. package/i18n/nl.json +2 -3
  225. package/i18n/pl.json +2 -3
  226. package/i18n/pt.json +2 -3
  227. package/i18n/ru.json +2 -3
  228. package/i18n/sv.json +2 -3
  229. package/i18n/tr.json +2 -3
  230. package/i18n/uk.json +2 -3
  231. package/i18n/vi.json +2 -3
  232. package/i18n/zh-TW.json +2 -3
  233. package/i18n/zh.json +2 -3
  234. package/llms-full.txt +1 -1
  235. package/loading-bar/styles/_rules.scss +1 -1
  236. package/package.json +2 -2
  237. package/theme/_index.scss +84 -0
  238. package/theme/styles/_contrast.scss +1 -1
  239. package/theme/styles/_dark.scss +59 -3
  240. package/types/ngwr-affix.d.ts +5 -2
  241. package/types/ngwr-calendar.d.ts +18 -0
  242. package/types/ngwr-cascader.d.ts +20 -0
  243. package/types/ngwr-checkbox.d.ts +28 -0
  244. package/types/ngwr-color-picker.d.ts +24 -0
  245. package/types/ngwr-counter.d.ts +7 -4
  246. package/types/ngwr-date-picker.d.ts +31 -0
  247. package/types/ngwr-event-calendar-testing.d.ts +5 -1
  248. package/types/ngwr-file-upload-testing.d.ts +7 -6
  249. package/types/ngwr-file-upload.d.ts +24 -7
  250. package/types/ngwr-icon.d.ts +12 -9
  251. package/types/ngwr-input-number.d.ts +7 -0
  252. package/types/ngwr-input-otp.d.ts +8 -0
  253. package/types/ngwr-knob.d.ts +9 -0
  254. package/types/ngwr-radio.d.ts +18 -0
  255. package/types/ngwr-rating.d.ts +8 -0
  256. package/types/ngwr-segmented.d.ts +20 -0
  257. package/types/ngwr-select.d.ts +35 -1
  258. package/types/ngwr-sidebar.d.ts +1 -1
  259. package/types/ngwr-slider.d.ts +27 -0
  260. package/types/ngwr-switch.d.ts +7 -0
  261. package/types/ngwr-table.d.ts +35 -1
  262. package/types/ngwr-textarea.d.ts +20 -0
  263. package/types/ngwr-tour.d.ts +3 -2
  264. package/types/ngwr-transfer.d.ts +25 -0
  265. package/types/ngwr-tree.d.ts +7 -0
  266. package/types/ngwr-version.d.ts +1 -1
@@ -82,7 +82,7 @@
82
82
  &__spinner {
83
83
  width: 1.5rem;
84
84
  height: 1.5rem;
85
- border: 2px solid rgb(var(--wr-color-on-surface-muted-rgb) / 30%);
85
+ border: 2px solid rgba(var(--wr-color-on-surface-muted-rgb), 0.3);
86
86
  border-top-color: var(--wr-color-primary);
87
87
  border-radius: 50%;
88
88
  animation: wr-card-spin 0.7s linear infinite;
@@ -21,8 +21,6 @@
21
21
  --wr-cascader-padding-x: var(--wr-control-padding-x-md);
22
22
  --wr-cascader-font-size: var(--wr-control-font-size-md);
23
23
  --wr-cascader-line-height: var(--wr-control-line-height-md);
24
- --wr-cascader-col-width: 12rem;
25
- --wr-cascader-max-height: 16rem;
26
24
  // Trigger width floor, the same contract as `--wr-select-min-width`. Despite
27
25
  // the name it is a DEFAULT width rather than a minimum: an explicit `width`,
28
26
  // `width: 100%` in a narrow parent, a `minmax(0, 1fr)` cell and a shrinking
@@ -230,6 +228,13 @@
230
228
  // can't inherit the host size class). Default md.
231
229
  --wr-cascader-opt-font: var(--wr-control-font-size-md);
232
230
  --wr-cascader-opt-py: 0.5rem;
231
+ // Column geometry, declared HERE for the same reason. Both used to sit on
232
+ // `.wr-cascader` and be read inside this panel, which the overlay appends to
233
+ // the CDK container — so the host is not an ancestor of the thing reading
234
+ // them, and a consumer setting either on `<wr-cascader>` got the `var()`
235
+ // fallback and no change. Reach them through `panelClass`.
236
+ --wr-cascader-col-width: 12rem;
237
+ --wr-cascader-max-height: 16rem;
233
238
 
234
239
  display: flex;
235
240
  background: var(--wr-color-surface);
@@ -255,8 +260,8 @@
255
260
  margin: 0;
256
261
  // Inset padding so options read as rounded pills, matching the select panel.
257
262
  padding: 0.25rem;
258
- width: var(--wr-cascader-col-width, 12rem);
259
- max-height: var(--wr-cascader-max-height, 16rem);
263
+ width: var(--wr-cascader-col-width);
264
+ max-height: var(--wr-cascader-max-height);
260
265
  overflow-y: auto;
261
266
  display: flex;
262
267
  flex-direction: column;
@@ -311,6 +311,20 @@
311
311
  z-index: -1;
312
312
  }
313
313
 
314
+ // The cell's date for a screen reader. It is text inside the cell rather than the
315
+ // cell's `aria-label`, because a label would REPLACE the cell's content as its
316
+ // name: the event titles and the "+N more" a sighted user reads would be missing
317
+ // from it (WCAG 2.5.3, Label in Name).
318
+ &__sr-only {
319
+ position: absolute;
320
+ width: 1px;
321
+ height: 1px;
322
+ overflow: hidden;
323
+ clip: rect(0 0 0 0);
324
+ clip-path: inset(50%);
325
+ white-space: nowrap;
326
+ }
327
+
314
328
  &__daynum {
315
329
  display: inline-flex;
316
330
  align-items: center;
@@ -30,7 +30,7 @@ var WrActionSheet = class WrActionSheet {
30
30
  }
31
31
  static ɵfac = i0.ɵɵngDeclareFactory({
32
32
  minVersion: "12.0.0",
33
- version: "22.2.0",
33
+ version: "22.2.3",
34
34
  ngImport: i0,
35
35
  type: WrActionSheet,
36
36
  deps: [],
@@ -38,7 +38,7 @@ var WrActionSheet = class WrActionSheet {
38
38
  });
39
39
  static ɵcmp = i0.ɵɵngDeclareComponent({
40
40
  minVersion: "17.0.0",
41
- version: "22.2.0",
41
+ version: "22.2.3",
42
42
  type: WrActionSheet,
43
43
  isStandalone: true,
44
44
  selector: "wr-action-sheet",
@@ -132,7 +132,7 @@ var WrActionSheet = class WrActionSheet {
132
132
  };
133
133
  i0.ɵɵngDeclareClassMetadata({
134
134
  minVersion: "12.0.0",
135
- version: "22.2.0",
135
+ version: "22.2.3",
136
136
  ngImport: i0,
137
137
  type: WrActionSheet,
138
138
  decorators: [{
@@ -8,6 +8,14 @@ import { DestroyRef, Directive, ElementRef, Injector, PLATFORM_ID, afterNextRend
8
8
  * Use of this source code is governed by an MIT-style license that can be
9
9
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
10
10
  */
11
+ function scrollParent(el) {
12
+ for (let node = el.parentElement; node !== null; node = node.parentElement) {
13
+ if (node === document.body || node === document.documentElement) break;
14
+ const style = getComputedStyle(node);
15
+ if (/auto|scroll|overlay|hidden/.test(`${style.overflowY} ${style.overflowX}`) && node.scrollHeight > node.clientHeight) return node;
16
+ }
17
+ return null;
18
+ }
11
19
  var WrAffix = class WrAffix {
12
20
  offsetTop = input(0, {
13
21
  ...ngDevMode ? { debugName: "offsetTop" } : /* istanbul ignore next */ {},
@@ -34,6 +42,7 @@ var WrAffix = class WrAffix {
34
42
  let observer = null;
35
43
  effect((onCleanup) => {
36
44
  const offset = this.offsetTop();
45
+ const root = scrollParent(el);
37
46
  observer = new IntersectionObserver(([entry]) => {
38
47
  const rootTop = entry.rootBounds?.top ?? offset;
39
48
  const next = !entry.isIntersecting && entry.boundingClientRect.top < rootTop;
@@ -42,6 +51,7 @@ var WrAffix = class WrAffix {
42
51
  el.classList.toggle("wr-affix--active", next);
43
52
  this.affixChange.emit(next);
44
53
  }, {
54
+ root,
45
55
  rootMargin: `-${offset}px 0px 0px 0px`,
46
56
  threshold: [0]
47
57
  });
@@ -57,7 +67,7 @@ var WrAffix = class WrAffix {
57
67
  }
58
68
  static ɵfac = i0.ɵɵngDeclareFactory({
59
69
  minVersion: "12.0.0",
60
- version: "22.2.0",
70
+ version: "22.2.3",
61
71
  ngImport: i0,
62
72
  type: WrAffix,
63
73
  deps: [],
@@ -65,7 +75,7 @@ var WrAffix = class WrAffix {
65
75
  });
66
76
  static ɵdir = i0.ɵɵngDeclareDirective({
67
77
  minVersion: "17.1.0",
68
- version: "22.2.0",
78
+ version: "22.2.3",
69
79
  type: WrAffix,
70
80
  isStandalone: true,
71
81
  selector: "[wrAffix]",
@@ -89,7 +99,7 @@ var WrAffix = class WrAffix {
89
99
  };
90
100
  i0.ɵɵngDeclareClassMetadata({
91
101
  minVersion: "12.0.0",
92
- version: "22.2.0",
102
+ version: "22.2.3",
93
103
  ngImport: i0,
94
104
  type: WrAffix,
95
105
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ngwr-affix.mjs","names":[],"sources":["../../../projects/lib/affix/affix.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n PLATFORM_ID,\n afterNextRender,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\n/**\n * Stick-on-scroll directive. Combines native CSS `position: sticky` with\n * an `IntersectionObserver`-driven `wr-affix--active` state class, so consumers\n * can style the element differently while it's pinned (e.g. add a\n * shadow, change the background, shrink the height).\n *\n * The host gets `position: sticky; top: ${offsetTop}px;` inline. A tiny\n * sentinel `<div>` is inserted just before the host — when the sentinel\n * scrolls out of view, the host is \"stuck\" and gets `wr-affix--active`\n * + an `(wrAffixChange)` emission.\n *\n * Works inside any scroll container without configuration — CSS sticky\n * picks the nearest scrollable ancestor automatically.\n *\n * @example\n * ```html\n * <header wrAffix [wrAffixOffsetTop]=\"0\">\n * <!-- adds a shadow once stuck -->\n * </header>\n * ```\n *\n * ```scss\n * header.wr-affix.wr-affix--active {\n * box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n * }\n * ```\n */\n@Directive({\n selector: '[wrAffix]',\n host: {\n class: 'wr-affix',\n '[style.position]': '\"sticky\"',\n '[style.top.px]': 'offsetTop()',\n },\n})\nexport class WrAffix {\n /** Pixels from the top of the scroll container when stuck. @default 0 */\n readonly offsetTop = input(0, {\n alias: 'wrAffixOffsetTop',\n transform: (v: unknown): number => coerceNumberProperty(v, 0),\n });\n\n /** Emits `true` when the element becomes affixed, `false` when it unsticks. */\n // eslint-disable-next-line @angular-eslint/no-output-rename -- keep wr-prefixed binding to match `[wrAffix]`\n readonly affixChange = output<boolean>({ alias: 'wrAffixChange' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n /**\n * `afterNextRender`'s callback is not an injection context, and the observer\n * cannot exist before the sentinel it watches — so the effect that rebuilds it\n * is handed the injector explicitly.\n */\n private readonly injector = inject(Injector);\n\n constructor() {\n if (!this.isBrowser) return;\n\n afterNextRender(() => {\n const el = this.host.nativeElement;\n const parent = el.parentElement;\n if (!parent) return;\n\n // Sentinel: an empty zero-height block placed immediately before\n // the host. When the sentinel scrolls out of view, the host is\n // necessarily \"stuck\" at the configured offset.\n const sentinel = el.ownerDocument.createElement('div');\n sentinel.className = 'wr-affix__sentinel';\n sentinel.setAttribute('aria-hidden', 'true');\n sentinel.style.cssText = 'height:0;width:100%;margin:0;padding:0;pointer-events:none;';\n parent.insertBefore(sentinel, el);\n\n // The observer reports STATE, not transitions: it delivers an entry for the\n // sentinel as soon as it starts watching it — before anything has scrolled —\n // and can repeat a state the host is already in (a resize, another crossing of\n // the same threshold). `affixChange` is documented as the transition, so it\n // only fires on one. The starting state is \"not affixed\", which is what the\n // element already renders as, so that first entry is silent.\n let affixed = false;\n\n let observer: IntersectionObserver | null = null;\n\n // `rootMargin` is fixed for an observer's lifetime, so a changed offset means\n // a NEW observer. Without this the two halves of the offset drifted apart:\n // `[style.top.px]` is a live binding, so a header that animates its offset\n // pinned at the new line while still flipping state at the old one.\n // Re-observing re-delivers the current state, which the transition guard\n // above absorbs when nothing has actually changed.\n effect(\n onCleanup => {\n const offset = this.offsetTop();\n\n observer = new IntersectionObserver(\n ([entry]) => {\n // NOT `!entry.isIntersecting` on its own. A sentinel is outside\n // the root in TWO directions, and only one of them means the\n // header has stuck: above the line because the page scrolled past\n // it, or below it because the host simply starts further down the\n // page than the first screen. The bare negation called both\n // \"affixed\", so any sticky element below the fold reported\n // `affixed = true` and painted `.wr-affix--active` on its very\n // first observer callback — before a pixel had scrolled — and\n // emitted a transition that never happened.\n //\n // `rootBounds.top` is the offset line (the negative `rootMargin`\n // above moves it), so a sentinel above it has genuinely gone by.\n const rootTop = entry.rootBounds?.top ?? offset;\n const next = !entry.isIntersecting && entry.boundingClientRect.top < rootTop;\n if (next === affixed) return;\n\n affixed = next;\n el.classList.toggle('wr-affix--active', next);\n this.affixChange.emit(next);\n },\n {\n // Trigger when the sentinel's top crosses the offset line.\n rootMargin: `-${offset}px 0px 0px 0px`,\n threshold: [0],\n }\n );\n observer.observe(sentinel);\n\n onCleanup(() => observer?.disconnect());\n },\n { injector: this.injector }\n );\n\n this.destroyRef.onDestroy(() => {\n observer?.disconnect();\n sentinel.remove();\n el.classList.remove('wr-affix--active');\n });\n });\n }\n}\n"],"mappings":";;;;;;;;;;AAyDA,IAAa,UAAb,MAAa,QAAO;CAET,YAAY,MAAM,GAAC;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAC1B,OAAO;EACP,YAAY,MAAuB,qBAAqB,GAAG,CAAC;CAAC,CAAA;CAKtD,cAAc,OAAgB,EAAE,OAAO,gBAAe,CAAE;CAEhD,OAAO,OAAgC,UAAU;CACjD,aAAa,OAAO,UAAU;CAC9B,YAAY,kBAAkB,OAAO,WAAW,CAAC;CAMjD,WAAW,OAAO,QAAQ;CAE3C,cAAA;EACE,IAAI,CAAC,KAAK,WAAW;EAErB,sBAAqB;GACnB,MAAM,KAAK,KAAK,KAAK;GACrB,MAAM,SAAS,GAAG;GAClB,IAAI,CAAC,QAAQ;GAKb,MAAM,WAAW,GAAG,cAAc,cAAc,KAAK;GACrD,SAAS,YAAY;GACrB,SAAS,aAAa,eAAe,MAAM;GAC3C,SAAS,MAAM,UAAU;GACzB,OAAO,aAAa,UAAU,EAAE;GAQhC,IAAI,UAAU;GAEd,IAAI,WAAwC;GAQ5C,QACE,cAAY;IACV,MAAM,SAAS,KAAK,UAAS;IAE7B,WAAW,IAAI,sBACZ,CAAC,WAAU;KAaV,MAAM,UAAU,MAAM,YAAY,OAAO;KACzC,MAAM,OAAO,CAAC,MAAM,kBAAkB,MAAM,mBAAmB,MAAM;KACrE,IAAI,SAAS,SAAS;KAEtB,UAAU;KACV,GAAG,UAAU,OAAO,oBAAoB,IAAI;KAC5C,KAAK,YAAY,KAAK,IAAI;IAC5B,GACA;KAEE,YAAY,IAAI,OAAM;KACtB,WAAW,CAAC,CAAC;IACd,CAAA;IAEH,SAAS,QAAQ,QAAQ;IAEzB,gBAAgB,UAAU,WAAU,CAAE;GACxC,GACA,EAAE,UAAU,KAAK,SAAQ,CAAE;GAG7B,KAAK,WAAW,gBAAe;IAC7B,UAAU,WAAU;IACpB,SAAS,OAAM;IACf,GAAG,UAAU,OAAO,kBAAkB;GACxC,CAAC;EACH,CAAC;CACH;CAnGW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAO,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAP,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAO,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,WAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,SAAA,EAAA,aAAA,gBAAA;EAAA,MAAA;GAAA,YAAA;IAAA,kBAAA;IAAA,gBAAA;GAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;CAAA,CAAA;;AAAP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAO,YAAA,CAAA;EARnB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM;IACJ,OAAO;IACP,oBAAoB;IACpB,kBAAkB;GACnB;EACF,CAAA"}
1
+ {"version":3,"file":"ngwr-affix.mjs","names":[],"sources":["../../../projects/lib/affix/affix.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n PLATFORM_ID,\n afterNextRender,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\n/**\n * The element a `position: sticky` host actually pins against.\n *\n * Walks up looking for an ancestor that scrolls — `overflow` anything but\n * `visible` on an axis, and a box that can actually be scrolled. `null` means\n * the document scroller, which is both what the browser uses and what\n * `IntersectionObserver` takes for \"the viewport\".\n *\n * A `getComputedStyle` read per ancestor, once per observer construction —\n * cheap, and the only way to answer the question: CSS resolves it internally\n * and exposes nothing.\n */\nfunction scrollParent(el: HTMLElement): HTMLElement | null {\n for (let node = el.parentElement; node !== null; node = node.parentElement) {\n if (node === document.body || node === document.documentElement) break;\n const style = getComputedStyle(node);\n const scrolls = /auto|scroll|overlay|hidden/.test(`${style.overflowY} ${style.overflowX}`);\n if (scrolls && node.scrollHeight > node.clientHeight) return node;\n }\n return null;\n}\n\n/**\n * Stick-on-scroll directive. Combines native CSS `position: sticky` with\n * an `IntersectionObserver`-driven `wr-affix--active` state class, so consumers\n * can style the element differently while it's pinned (e.g. add a\n * shadow, change the background, shrink the height).\n *\n * The host gets `position: sticky; top: ${offsetTop}px;` inline. A tiny\n * sentinel `<div>` is inserted just before the host — when the sentinel\n * scrolls out of view, the host is \"stuck\" and gets `wr-affix--active`\n * + an `(wrAffixChange)` emission.\n *\n * Works inside any scroll container without configuration: CSS sticky picks\n * the nearest scrollable ancestor, and the observer watching for the pinned\n * state is given that same element as its root — see `scrollParent`. Without\n * that second half the two measured different lines, and the state never\n * flipped inside a nested scroller.\n *\n * @example\n * ```html\n * <header wrAffix [wrAffixOffsetTop]=\"0\">\n * <!-- adds a shadow once stuck -->\n * </header>\n * ```\n *\n * ```scss\n * header.wr-affix.wr-affix--active {\n * box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n * }\n * ```\n */\n@Directive({\n selector: '[wrAffix]',\n host: {\n class: 'wr-affix',\n '[style.position]': '\"sticky\"',\n '[style.top.px]': 'offsetTop()',\n },\n})\nexport class WrAffix {\n /** Pixels from the top of the scroll container when stuck. @default 0 */\n readonly offsetTop = input(0, {\n alias: 'wrAffixOffsetTop',\n transform: (v: unknown): number => coerceNumberProperty(v, 0),\n });\n\n /** Emits `true` when the element becomes affixed, `false` when it unsticks. */\n // eslint-disable-next-line @angular-eslint/no-output-rename -- keep wr-prefixed binding to match `[wrAffix]`\n readonly affixChange = output<boolean>({ alias: 'wrAffixChange' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n /**\n * `afterNextRender`'s callback is not an injection context, and the observer\n * cannot exist before the sentinel it watches — so the effect that rebuilds it\n * is handed the injector explicitly.\n */\n private readonly injector = inject(Injector);\n\n constructor() {\n if (!this.isBrowser) return;\n\n afterNextRender(() => {\n const el = this.host.nativeElement;\n const parent = el.parentElement;\n if (!parent) return;\n\n // Sentinel: an empty zero-height block placed immediately before\n // the host. When the sentinel scrolls out of view, the host is\n // necessarily \"stuck\" at the configured offset.\n const sentinel = el.ownerDocument.createElement('div');\n sentinel.className = 'wr-affix__sentinel';\n sentinel.setAttribute('aria-hidden', 'true');\n sentinel.style.cssText = 'height:0;width:100%;margin:0;padding:0;pointer-events:none;';\n parent.insertBefore(sentinel, el);\n\n // The observer reports STATE, not transitions: it delivers an entry for the\n // sentinel as soon as it starts watching it — before anything has scrolled —\n // and can repeat a state the host is already in (a resize, another crossing of\n // the same threshold). `affixChange` is documented as the transition, so it\n // only fires on one. The starting state is \"not affixed\", which is what the\n // element already renders as, so that first entry is silent.\n let affixed = false;\n\n let observer: IntersectionObserver | null = null;\n\n // `rootMargin` is fixed for an observer's lifetime, so a changed offset means\n // a NEW observer. Without this the two halves of the offset drifted apart:\n // `[style.top.px]` is a live binding, so a header that animates its offset\n // pinned at the new line while still flipping state at the old one.\n // Re-observing re-delivers the current state, which the transition guard\n // above absorbs when nothing has actually changed.\n effect(\n onCleanup => {\n const offset = this.offsetTop();\n\n // The observer's ROOT has to be the element the host sticks to, not\n // the viewport. `position: sticky` pins against the nearest\n // SCROLLING ancestor, and an observer with no root measures against\n // the viewport — so inside any nested scroller whose top sits below\n // the viewport's, `rootBounds.top` was 0 while the host pinned at\n // the container's own top. The direction guard below then computed\n // `false` at the one crossing it was ever handed, and because\n // `isIntersecting` stays false afterwards no further callback came:\n // `wr-affix--active` was never added and `(wrAffixChange)` never\n // emitted, for the whole scroll. The JSDoc promised the opposite —\n // \"works inside any scroll container without configuration\" — and\n // the docs page's own demo is exactly that shape.\n const root = scrollParent(el);\n\n observer = new IntersectionObserver(\n ([entry]) => {\n // NOT `!entry.isIntersecting` on its own. A sentinel is outside\n // the root in TWO directions, and only one of them means the\n // header has stuck: above the line because the page scrolled past\n // it, or below it because the host simply starts further down the\n // page than the first screen. The bare negation called both\n // \"affixed\", so any sticky element below the fold reported\n // `affixed = true` and painted `.wr-affix--active` on its very\n // first observer callback — before a pixel had scrolled — and\n // emitted a transition that never happened.\n //\n // `rootBounds.top` is the offset line (the negative `rootMargin`\n // above moves it), so a sentinel above it has genuinely gone by.\n const rootTop = entry.rootBounds?.top ?? offset;\n const next = !entry.isIntersecting && entry.boundingClientRect.top < rootTop;\n if (next === affixed) return;\n\n affixed = next;\n el.classList.toggle('wr-affix--active', next);\n this.affixChange.emit(next);\n },\n {\n // `null` is the document scroller, which is what the browser\n // uses for a host with no scrolling ancestor.\n root,\n // Trigger when the sentinel's top crosses the offset line.\n rootMargin: `-${offset}px 0px 0px 0px`,\n threshold: [0],\n }\n );\n observer.observe(sentinel);\n\n onCleanup(() => observer?.disconnect());\n },\n { injector: this.injector }\n );\n\n this.destroyRef.onDestroy(() => {\n observer?.disconnect();\n sentinel.remove();\n el.classList.remove('wr-affix--active');\n });\n });\n }\n}\n"],"mappings":";;;;;;;;;;AAkCA,SAAS,aAAa,IAAe;CACnC,KAAK,IAAI,OAAO,GAAG,eAAe,SAAS,MAAM,OAAO,KAAK,eAAe;EAC1E,IAAI,SAAS,SAAS,QAAQ,SAAS,SAAS,iBAAiB;EACjE,MAAM,QAAQ,iBAAiB,IAAI;EAEnC,IADgB,6BAA6B,KAAK,GAAG,MAAM,UAAS,GAAI,MAAM,WAC1E,KAAW,KAAK,eAAe,KAAK,cAAc,OAAO;CAC/D;CACA,OAAO;AACT;AAwCA,IAAa,UAAb,MAAa,QAAO;CAET,YAAY,MAAM,GAAC;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAC1B,OAAO;EACP,YAAY,MAAuB,qBAAqB,GAAG,CAAC;CAAC,CAAA;CAKtD,cAAc,OAAgB,EAAE,OAAO,gBAAe,CAAE;CAEhD,OAAO,OAAgC,UAAU;CACjD,aAAa,OAAO,UAAU;CAC9B,YAAY,kBAAkB,OAAO,WAAW,CAAC;CAMjD,WAAW,OAAO,QAAQ;CAE3C,cAAA;EACE,IAAI,CAAC,KAAK,WAAW;EAErB,sBAAqB;GACnB,MAAM,KAAK,KAAK,KAAK;GACrB,MAAM,SAAS,GAAG;GAClB,IAAI,CAAC,QAAQ;GAKb,MAAM,WAAW,GAAG,cAAc,cAAc,KAAK;GACrD,SAAS,YAAY;GACrB,SAAS,aAAa,eAAe,MAAM;GAC3C,SAAS,MAAM,UAAU;GACzB,OAAO,aAAa,UAAU,EAAE;GAQhC,IAAI,UAAU;GAEd,IAAI,WAAwC;GAQ5C,QACE,cAAY;IACV,MAAM,SAAS,KAAK,UAAS;IAc7B,MAAM,OAAO,aAAa,EAAE;IAE5B,WAAW,IAAI,sBACZ,CAAC,WAAU;KAaV,MAAM,UAAU,MAAM,YAAY,OAAO;KACzC,MAAM,OAAO,CAAC,MAAM,kBAAkB,MAAM,mBAAmB,MAAM;KACrE,IAAI,SAAS,SAAS;KAEtB,UAAU;KACV,GAAG,UAAU,OAAO,oBAAoB,IAAI;KAC5C,KAAK,YAAY,KAAK,IAAI;IAC5B,GACA;KAGE;KAEA,YAAY,IAAI,OAAM;KACtB,WAAW,CAAC,CAAC;IACd,CAAA;IAEH,SAAS,QAAQ,QAAQ;IAEzB,gBAAgB,UAAU,WAAU,CAAE;GACxC,GACA,EAAE,UAAU,KAAK,SAAQ,CAAE;GAG7B,KAAK,WAAW,gBAAe;IAC7B,UAAU,WAAU;IACpB,SAAS,OAAM;IACf,GAAG,UAAU,OAAO,kBAAkB;GACxC,CAAC;EACH,CAAC;CACH;CApHW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAO,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAP,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAO,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,WAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,SAAA,EAAA,aAAA,gBAAA;EAAA,MAAA;GAAA,YAAA;IAAA,kBAAA;IAAA,gBAAA;GAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;CAAA,CAAA;;AAAP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAO,YAAA,CAAA;EARnB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM;IACJ,OAAO;IACP,oBAAoB;IACpB,kBAAkB;GACnB;EACF,CAAA"}
@@ -39,7 +39,7 @@ var WrAlert = class WrAlert {
39
39
  }
40
40
  static ɵfac = i0.ɵɵngDeclareFactory({
41
41
  minVersion: "12.0.0",
42
- version: "22.2.0",
42
+ version: "22.2.3",
43
43
  ngImport: i0,
44
44
  type: WrAlert,
45
45
  deps: [],
@@ -47,7 +47,7 @@ var WrAlert = class WrAlert {
47
47
  });
48
48
  static ɵcmp = i0.ɵɵngDeclareComponent({
49
49
  minVersion: "17.0.0",
50
- version: "22.2.0",
50
+ version: "22.2.3",
51
51
  type: WrAlert,
52
52
  isStandalone: true,
53
53
  selector: "wr-alert",
@@ -121,7 +121,7 @@ var WrAlert = class WrAlert {
121
121
  };
122
122
  i0.ɵɵngDeclareClassMetadata({
123
123
  minVersion: "12.0.0",
124
- version: "22.2.0",
124
+ version: "22.2.3",
125
125
  ngImport: i0,
126
126
  type: WrAlert,
127
127
  decorators: [{
@@ -62,7 +62,7 @@ var WrAnchor = class WrAnchor {
62
62
  }
63
63
  static ɵfac = i0.ɵɵngDeclareFactory({
64
64
  minVersion: "12.0.0",
65
- version: "22.2.0",
65
+ version: "22.2.3",
66
66
  ngImport: i0,
67
67
  type: WrAnchor,
68
68
  deps: [],
@@ -70,7 +70,7 @@ var WrAnchor = class WrAnchor {
70
70
  });
71
71
  static ɵcmp = i0.ɵɵngDeclareComponent({
72
72
  minVersion: "17.0.0",
73
- version: "22.2.0",
73
+ version: "22.2.3",
74
74
  type: WrAnchor,
75
75
  isStandalone: true,
76
76
  selector: "wr-anchor",
@@ -116,7 +116,7 @@ var WrAnchor = class WrAnchor {
116
116
  };
117
117
  i0.ɵɵngDeclareClassMetadata({
118
118
  minVersion: "12.0.0",
119
- version: "22.2.0",
119
+ version: "22.2.3",
120
120
  ngImport: i0,
121
121
  type: WrAnchor,
122
122
  decorators: [{
@@ -273,7 +273,7 @@ var WrAurora = class WrAurora {
273
273
  }
274
274
  static ɵfac = i0.ɵɵngDeclareFactory({
275
275
  minVersion: "12.0.0",
276
- version: "22.2.0",
276
+ version: "22.2.3",
277
277
  ngImport: i0,
278
278
  type: WrAurora,
279
279
  deps: [],
@@ -281,7 +281,7 @@ var WrAurora = class WrAurora {
281
281
  });
282
282
  static ɵcmp = i0.ɵɵngDeclareComponent({
283
283
  minVersion: "17.2.0",
284
- version: "22.2.0",
284
+ version: "22.2.3",
285
285
  type: WrAurora,
286
286
  isStandalone: true,
287
287
  selector: "wr-aurora",
@@ -332,7 +332,7 @@ var WrAurora = class WrAurora {
332
332
  };
333
333
  i0.ɵɵngDeclareClassMetadata({
334
334
  minVersion: "12.0.0",
335
- version: "22.2.0",
335
+ version: "22.2.3",
336
336
  ngImport: i0,
337
337
  type: WrAurora,
338
338
  decorators: [{
@@ -62,7 +62,7 @@ var WrAvatar = class WrAvatar {
62
62
  }
63
63
  static ɵfac = i0.ɵɵngDeclareFactory({
64
64
  minVersion: "12.0.0",
65
- version: "22.2.0",
65
+ version: "22.2.3",
66
66
  ngImport: i0,
67
67
  type: WrAvatar,
68
68
  deps: [],
@@ -70,7 +70,7 @@ var WrAvatar = class WrAvatar {
70
70
  });
71
71
  static ɵcmp = i0.ɵɵngDeclareComponent({
72
72
  minVersion: "17.0.0",
73
- version: "22.2.0",
73
+ version: "22.2.3",
74
74
  type: WrAvatar,
75
75
  isStandalone: true,
76
76
  selector: "wr-avatar",
@@ -130,7 +130,7 @@ var WrAvatar = class WrAvatar {
130
130
  };
131
131
  i0.ɵɵngDeclareClassMetadata({
132
132
  minVersion: "12.0.0",
133
- version: "22.2.0",
133
+ version: "22.2.3",
134
134
  ngImport: i0,
135
135
  type: WrAvatar,
136
136
  decorators: [{
@@ -46,7 +46,7 @@ var WrBackTop = class WrBackTop {
46
46
  }
47
47
  static ɵfac = i0.ɵɵngDeclareFactory({
48
48
  minVersion: "12.0.0",
49
- version: "22.2.0",
49
+ version: "22.2.3",
50
50
  ngImport: i0,
51
51
  type: WrBackTop,
52
52
  deps: [],
@@ -54,7 +54,7 @@ var WrBackTop = class WrBackTop {
54
54
  });
55
55
  static ɵcmp = i0.ɵɵngDeclareComponent({
56
56
  minVersion: "17.1.0",
57
- version: "22.2.0",
57
+ version: "22.2.3",
58
58
  type: WrBackTop,
59
59
  isStandalone: true,
60
60
  selector: "wr-back-top",
@@ -93,7 +93,7 @@ var WrBackTop = class WrBackTop {
93
93
  };
94
94
  i0.ɵɵngDeclareClassMetadata({
95
95
  minVersion: "12.0.0",
96
- version: "22.2.0",
96
+ version: "22.2.3",
97
97
  ngImport: i0,
98
98
  type: WrBackTop,
99
99
  decorators: [{
@@ -28,7 +28,7 @@ var WrBadge = class WrBadge {
28
28
  }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
29
29
  static ɵfac = i0.ɵɵngDeclareFactory({
30
30
  minVersion: "12.0.0",
31
- version: "22.2.0",
31
+ version: "22.2.3",
32
32
  ngImport: i0,
33
33
  type: WrBadge,
34
34
  deps: [],
@@ -36,7 +36,7 @@ var WrBadge = class WrBadge {
36
36
  });
37
37
  static ɵcmp = i0.ɵɵngDeclareComponent({
38
38
  minVersion: "17.1.0",
39
- version: "22.2.0",
39
+ version: "22.2.3",
40
40
  type: WrBadge,
41
41
  isStandalone: true,
42
42
  selector: "wr-badge",
@@ -79,7 +79,7 @@ var WrBadge = class WrBadge {
79
79
  };
80
80
  i0.ɵɵngDeclareClassMetadata({
81
81
  minVersion: "12.0.0",
82
- version: "22.2.0",
82
+ version: "22.2.3",
83
83
  ngImport: i0,
84
84
  type: WrBadge,
85
85
  decorators: [{
@@ -168,7 +168,7 @@ var WrTag = class WrTag {
168
168
  }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
169
169
  static ɵfac = i0.ɵɵngDeclareFactory({
170
170
  minVersion: "12.0.0",
171
- version: "22.2.0",
171
+ version: "22.2.3",
172
172
  ngImport: i0,
173
173
  type: WrTag,
174
174
  deps: [],
@@ -176,7 +176,7 @@ var WrTag = class WrTag {
176
176
  });
177
177
  static ɵcmp = i0.ɵɵngDeclareComponent({
178
178
  minVersion: "17.0.0",
179
- version: "22.2.0",
179
+ version: "22.2.3",
180
180
  type: WrTag,
181
181
  isStandalone: true,
182
182
  selector: "wr-tag",
@@ -257,7 +257,7 @@ var WrTag = class WrTag {
257
257
  };
258
258
  i0.ɵɵngDeclareClassMetadata({
259
259
  minVersion: "12.0.0",
260
- version: "22.2.0",
260
+ version: "22.2.3",
261
261
  ngImport: i0,
262
262
  type: WrTag,
263
263
  decorators: [{
@@ -64,7 +64,7 @@ var WrBarChart = class WrBarChart {
64
64
  });
65
65
  static ɵfac = i0.ɵɵngDeclareFactory({
66
66
  minVersion: "12.0.0",
67
- version: "22.2.0",
67
+ version: "22.2.3",
68
68
  ngImport: i0,
69
69
  type: WrBarChart,
70
70
  deps: [],
@@ -72,7 +72,7 @@ var WrBarChart = class WrBarChart {
72
72
  });
73
73
  static ɵcmp = i0.ɵɵngDeclareComponent({
74
74
  minVersion: "17.0.0",
75
- version: "22.2.0",
75
+ version: "22.2.3",
76
76
  type: WrBarChart,
77
77
  isStandalone: true,
78
78
  selector: "wr-bar-chart",
@@ -134,7 +134,7 @@ var WrBarChart = class WrBarChart {
134
134
  };
135
135
  i0.ɵɵngDeclareClassMetadata({
136
136
  minVersion: "12.0.0",
137
- version: "22.2.0",
137
+ version: "22.2.3",
138
138
  ngImport: i0,
139
139
  type: WrBarChart,
140
140
  decorators: [{
@@ -156,7 +156,7 @@ var WrBlurText = class WrBlurText {
156
156
  }
157
157
  static ɵfac = i0.ɵɵngDeclareFactory({
158
158
  minVersion: "12.0.0",
159
- version: "22.2.0",
159
+ version: "22.2.3",
160
160
  ngImport: i0,
161
161
  type: WrBlurText,
162
162
  deps: [],
@@ -164,7 +164,7 @@ var WrBlurText = class WrBlurText {
164
164
  });
165
165
  static ɵcmp = i0.ɵɵngDeclareComponent({
166
166
  minVersion: "17.0.0",
167
- version: "22.2.0",
167
+ version: "22.2.3",
168
168
  type: WrBlurText,
169
169
  isStandalone: true,
170
170
  selector: "wr-blur-text",
@@ -236,7 +236,7 @@ var WrBlurText = class WrBlurText {
236
236
  };
237
237
  i0.ɵɵngDeclareClassMetadata({
238
238
  minVersion: "12.0.0",
239
- version: "22.2.0",
239
+ version: "22.2.3",
240
240
  ngImport: i0,
241
241
  type: WrBlurText,
242
242
  decorators: [{
@@ -252,7 +252,7 @@ var WrBorderGlow = class WrBorderGlow {
252
252
  }
253
253
  static ɵfac = i0.ɵɵngDeclareFactory({
254
254
  minVersion: "12.0.0",
255
- version: "22.2.0",
255
+ version: "22.2.3",
256
256
  ngImport: i0,
257
257
  type: WrBorderGlow,
258
258
  deps: [],
@@ -260,7 +260,7 @@ var WrBorderGlow = class WrBorderGlow {
260
260
  });
261
261
  static ɵcmp = i0.ɵɵngDeclareComponent({
262
262
  minVersion: "17.1.0",
263
- version: "22.2.0",
263
+ version: "22.2.3",
264
264
  type: WrBorderGlow,
265
265
  isStandalone: true,
266
266
  selector: "wr-border-glow",
@@ -348,7 +348,7 @@ var WrBorderGlow = class WrBorderGlow {
348
348
  };
349
349
  i0.ɵɵngDeclareClassMetadata({
350
350
  minVersion: "12.0.0",
351
- version: "22.2.0",
351
+ version: "22.2.3",
352
352
  ngImport: i0,
353
353
  type: WrBorderGlow,
354
354
  decorators: [{
@@ -20,7 +20,7 @@ var WrBreadcrumbs = class WrBreadcrumbs {
20
20
  separatorValue = computed(() => `"${cssString(this.separator())}"`, ...ngDevMode ? [{ debugName: "separatorValue" }] : /* istanbul ignore next */ []);
21
21
  static ɵfac = i0.ɵɵngDeclareFactory({
22
22
  minVersion: "12.0.0",
23
- version: "22.2.0",
23
+ version: "22.2.3",
24
24
  ngImport: i0,
25
25
  type: WrBreadcrumbs,
26
26
  deps: [],
@@ -28,7 +28,7 @@ var WrBreadcrumbs = class WrBreadcrumbs {
28
28
  });
29
29
  static ɵcmp = i0.ɵɵngDeclareComponent({
30
30
  minVersion: "17.1.0",
31
- version: "22.2.0",
31
+ version: "22.2.3",
32
32
  type: WrBreadcrumbs,
33
33
  isStandalone: true,
34
34
  selector: "wr-breadcrumbs",
@@ -60,7 +60,7 @@ var WrBreadcrumbs = class WrBreadcrumbs {
60
60
  };
61
61
  i0.ɵɵngDeclareClassMetadata({
62
62
  minVersion: "12.0.0",
63
- version: "22.2.0",
63
+ version: "22.2.3",
64
64
  ngImport: i0,
65
65
  type: WrBreadcrumbs,
66
66
  decorators: [{
@@ -111,7 +111,7 @@ var WrBreadcrumbsItem = class WrBreadcrumbsItem {
111
111
  rootClass = computed(() => this.isLink() ? "wr-breadcrumbs__link" : "wr-breadcrumbs__current", ...ngDevMode ? [{ debugName: "rootClass" }] : /* istanbul ignore next */ []);
112
112
  static ɵfac = i0.ɵɵngDeclareFactory({
113
113
  minVersion: "12.0.0",
114
- version: "22.2.0",
114
+ version: "22.2.3",
115
115
  ngImport: i0,
116
116
  type: WrBreadcrumbsItem,
117
117
  deps: [],
@@ -119,7 +119,7 @@ var WrBreadcrumbsItem = class WrBreadcrumbsItem {
119
119
  });
120
120
  static ɵcmp = i0.ɵɵngDeclareComponent({
121
121
  minVersion: "17.0.0",
122
- version: "22.2.0",
122
+ version: "22.2.3",
123
123
  type: WrBreadcrumbsItem,
124
124
  isStandalone: true,
125
125
  selector: "wr-breadcrumbs-item",
@@ -201,7 +201,7 @@ var WrBreadcrumbsItem = class WrBreadcrumbsItem {
201
201
  };
202
202
  i0.ɵɵngDeclareClassMetadata({
203
203
  minVersion: "12.0.0",
204
- version: "22.2.0",
204
+ version: "22.2.3",
205
205
  ngImport: i0,
206
206
  type: WrBreadcrumbsItem,
207
207
  decorators: [{
@@ -26,7 +26,7 @@ var WrBurger = class WrBurger {
26
26
  }
27
27
  static ɵfac = i0.ɵɵngDeclareFactory({
28
28
  minVersion: "12.0.0",
29
- version: "22.2.0",
29
+ version: "22.2.3",
30
30
  ngImport: i0,
31
31
  type: WrBurger,
32
32
  deps: [],
@@ -34,7 +34,7 @@ var WrBurger = class WrBurger {
34
34
  });
35
35
  static ɵcmp = i0.ɵɵngDeclareComponent({
36
36
  minVersion: "17.1.0",
37
- version: "22.2.0",
37
+ version: "22.2.3",
38
38
  type: WrBurger,
39
39
  isStandalone: true,
40
40
  selector: "wr-burger",
@@ -70,7 +70,7 @@ var WrBurger = class WrBurger {
70
70
  };
71
71
  i0.ɵɵngDeclareClassMetadata({
72
72
  minVersion: "12.0.0",
73
- version: "22.2.0",
73
+ version: "22.2.3",
74
74
  ngImport: i0,
75
75
  type: WrBurger,
76
76
  decorators: [{
@@ -100,7 +100,7 @@ var WrButton = class WrButton {
100
100
  }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
101
101
  static ɵfac = i0.ɵɵngDeclareFactory({
102
102
  minVersion: "12.0.0",
103
- version: "22.2.0",
103
+ version: "22.2.3",
104
104
  ngImport: i0,
105
105
  type: WrButton,
106
106
  deps: [],
@@ -108,7 +108,7 @@ var WrButton = class WrButton {
108
108
  });
109
109
  static ɵcmp = i0.ɵɵngDeclareComponent({
110
110
  minVersion: "17.0.0",
111
- version: "22.2.0",
111
+ version: "22.2.3",
112
112
  type: WrButton,
113
113
  isStandalone: true,
114
114
  selector: "wr-btn, button[wr-btn], a[wr-btn]",
@@ -217,7 +217,7 @@ var WrButton = class WrButton {
217
217
  };
218
218
  i0.ɵɵngDeclareClassMetadata({
219
219
  minVersion: "12.0.0",
220
- version: "22.2.0",
220
+ version: "22.2.3",
221
221
  ngImport: i0,
222
222
  type: WrButton,
223
223
  decorators: [{
@@ -340,7 +340,7 @@ var WrButtonGroup = class WrButtonGroup {
340
340
  }, ...ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []);
341
341
  static ɵfac = i0.ɵɵngDeclareFactory({
342
342
  minVersion: "12.0.0",
343
- version: "22.2.0",
343
+ version: "22.2.3",
344
344
  ngImport: i0,
345
345
  type: WrButtonGroup,
346
346
  deps: [],
@@ -348,7 +348,7 @@ var WrButtonGroup = class WrButtonGroup {
348
348
  });
349
349
  static ɵcmp = i0.ɵɵngDeclareComponent({
350
350
  minVersion: "17.1.0",
351
- version: "22.2.0",
351
+ version: "22.2.3",
352
352
  type: WrButtonGroup,
353
353
  isStandalone: true,
354
354
  selector: "wr-btn-group",
@@ -375,7 +375,7 @@ var WrButtonGroup = class WrButtonGroup {
375
375
  };
376
376
  i0.ɵɵngDeclareClassMetadata({
377
377
  minVersion: "12.0.0",
378
- version: "22.2.0",
378
+ version: "22.2.3",
379
379
  ngImport: i0,
380
380
  type: WrButtonGroup,
381
381
  decorators: [{
@@ -165,7 +165,7 @@ var WrCalendarHeatmap = class WrCalendarHeatmap {
165
165
  }
166
166
  static ɵfac = i0.ɵɵngDeclareFactory({
167
167
  minVersion: "12.0.0",
168
- version: "22.2.0",
168
+ version: "22.2.3",
169
169
  ngImport: i0,
170
170
  type: WrCalendarHeatmap,
171
171
  deps: [],
@@ -173,7 +173,7 @@ var WrCalendarHeatmap = class WrCalendarHeatmap {
173
173
  });
174
174
  static ɵcmp = i0.ɵɵngDeclareComponent({
175
175
  minVersion: "17.0.0",
176
- version: "22.2.0",
176
+ version: "22.2.3",
177
177
  type: WrCalendarHeatmap,
178
178
  isStandalone: true,
179
179
  selector: "wr-calendar-heatmap",
@@ -264,7 +264,7 @@ var WrCalendarHeatmap = class WrCalendarHeatmap {
264
264
  };
265
265
  i0.ɵɵngDeclareClassMetadata({
266
266
  minVersion: "12.0.0",
267
- version: "22.2.0",
267
+ version: "22.2.3",
268
268
  ngImport: i0,
269
269
  type: WrCalendarHeatmap,
270
270
  decorators: [{