ngwr 9.1.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +23 -8
  2. package/action-sheet/styles/_index.scss +6 -1
  3. package/badge/styles/_index.scss +17 -7
  4. package/badge/styles/_tag.scss +12 -3
  5. package/border-glow/styles/_index.scss +5 -0
  6. package/button/styles/_index.scss +48 -1
  7. package/calendar/styles/_index.scss +9 -1
  8. package/circular-text/styles/_index.scss +6 -1
  9. package/density/styles/_index.scss +3 -1
  10. package/dialog/styles/_index.scss +66 -2
  11. package/drag-drop/styles/_index.scss +20 -7
  12. package/drawer/styles/_index.scss +61 -1
  13. package/event-calendar/styles/_index.scss +284 -0
  14. package/falling-text/styles/_index.scss +5 -0
  15. package/fesm2022/ngwr-action-sheet.mjs +1 -1
  16. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  17. package/fesm2022/ngwr-alert.mjs +8 -3
  18. package/fesm2022/ngwr-alert.mjs.map +1 -1
  19. package/fesm2022/ngwr-back-top.mjs +6 -4
  20. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  21. package/fesm2022/ngwr-border-glow.mjs +12 -9
  22. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  23. package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
  24. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  25. package/fesm2022/ngwr-calendar.mjs +5 -3
  26. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  27. package/fesm2022/ngwr-card.mjs +2 -2
  28. package/fesm2022/ngwr-card.mjs.map +1 -1
  29. package/fesm2022/ngwr-carousel.mjs +17 -4
  30. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  31. package/fesm2022/ngwr-cascader.mjs +35 -7
  32. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  33. package/fesm2022/ngwr-checkbox.mjs +12 -3
  34. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  35. package/fesm2022/ngwr-circular-text.mjs +2 -2
  36. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  37. package/fesm2022/ngwr-color-picker.mjs +6 -5
  38. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  39. package/fesm2022/ngwr-command-palette.mjs +7 -3
  40. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  41. package/fesm2022/ngwr-context-menu.mjs +7 -7
  42. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  43. package/fesm2022/ngwr-counter.mjs +9 -1
  44. package/fesm2022/ngwr-counter.mjs.map +1 -1
  45. package/fesm2022/ngwr-date-picker.mjs +37 -15
  46. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  47. package/fesm2022/ngwr-density.mjs +10 -2
  48. package/fesm2022/ngwr-density.mjs.map +1 -1
  49. package/fesm2022/ngwr-descriptions.mjs +5 -4
  50. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  51. package/fesm2022/ngwr-dialog.mjs +10 -1
  52. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  53. package/fesm2022/ngwr-drag-drop.mjs +2 -2
  54. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  55. package/fesm2022/ngwr-drawer.mjs +37 -16
  56. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  57. package/fesm2022/ngwr-dropdown.mjs +8 -3
  58. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  59. package/fesm2022/ngwr-event-calendar.mjs +723 -0
  60. package/fesm2022/ngwr-event-calendar.mjs.map +1 -0
  61. package/fesm2022/ngwr-falling-text.mjs +2 -2
  62. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  63. package/fesm2022/ngwr-file-upload.mjs +2 -2
  64. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  65. package/fesm2022/ngwr-form.mjs +258 -42
  66. package/fesm2022/ngwr-form.mjs.map +1 -1
  67. package/fesm2022/ngwr-fuzzy-text.mjs +15 -1
  68. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  69. package/fesm2022/ngwr-gauge.mjs +8 -3
  70. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  71. package/fesm2022/ngwr-glitch-text.mjs +2 -2
  72. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  73. package/fesm2022/ngwr-gradient-text.mjs +2 -2
  74. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  75. package/fesm2022/ngwr-i18n-en.mjs +89 -5
  76. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  77. package/fesm2022/ngwr-i18n-ru.mjs +90 -5
  78. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  79. package/fesm2022/ngwr-i18n.mjs +94 -3
  80. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  81. package/fesm2022/ngwr-icon.mjs +79 -35
  82. package/fesm2022/ngwr-icon.mjs.map +1 -1
  83. package/fesm2022/ngwr-input-number.mjs +19 -3
  84. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  85. package/fesm2022/ngwr-input.mjs +48 -6
  86. package/fesm2022/ngwr-input.mjs.map +1 -1
  87. package/fesm2022/ngwr-knob.mjs +8 -3
  88. package/fesm2022/ngwr-knob.mjs.map +1 -1
  89. package/fesm2022/ngwr-lightbox.mjs +32 -3
  90. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  91. package/fesm2022/ngwr-line-chart.mjs +3 -3
  92. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  93. package/fesm2022/ngwr-list.mjs +2 -2
  94. package/fesm2022/ngwr-list.mjs.map +1 -1
  95. package/fesm2022/ngwr-loading-bar.mjs +2 -2
  96. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  97. package/fesm2022/ngwr-marquee.mjs +2 -2
  98. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  99. package/fesm2022/ngwr-media.mjs +3 -0
  100. package/fesm2022/ngwr-media.mjs.map +1 -1
  101. package/fesm2022/ngwr-mention.mjs +166 -10
  102. package/fesm2022/ngwr-mention.mjs.map +1 -1
  103. package/fesm2022/ngwr-meter-group.mjs +14 -3
  104. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  105. package/fesm2022/ngwr-overlay.mjs +173 -3
  106. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  107. package/fesm2022/ngwr-page-header.mjs +2 -2
  108. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  109. package/fesm2022/ngwr-pagination.mjs +17 -4
  110. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  111. package/fesm2022/ngwr-popconfirm.mjs +4 -3
  112. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  113. package/fesm2022/ngwr-popover.mjs +10 -3
  114. package/fesm2022/ngwr-popover.mjs.map +1 -1
  115. package/fesm2022/ngwr-progress.mjs +8 -2
  116. package/fesm2022/ngwr-progress.mjs.map +1 -1
  117. package/fesm2022/ngwr-qr.mjs.map +1 -1
  118. package/fesm2022/ngwr-rating.mjs +6 -4
  119. package/fesm2022/ngwr-rating.mjs.map +1 -1
  120. package/fesm2022/ngwr-result.mjs +19 -12
  121. package/fesm2022/ngwr-result.mjs.map +1 -1
  122. package/fesm2022/ngwr-segmented.mjs +2 -2
  123. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  124. package/fesm2022/ngwr-select.mjs +40 -13
  125. package/fesm2022/ngwr-select.mjs.map +1 -1
  126. package/fesm2022/ngwr-shiny-text.mjs +4 -6
  127. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  128. package/fesm2022/ngwr-speed-dial.mjs +11 -3
  129. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  130. package/fesm2022/ngwr-spotlight-card.mjs +2 -2
  131. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  132. package/fesm2022/ngwr-squircle.mjs +1 -1
  133. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  134. package/fesm2022/ngwr-star-border.mjs +2 -2
  135. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  136. package/fesm2022/ngwr-switch.mjs +10 -3
  137. package/fesm2022/ngwr-switch.mjs.map +1 -1
  138. package/fesm2022/ngwr-table.mjs +233 -19
  139. package/fesm2022/ngwr-table.mjs.map +1 -1
  140. package/fesm2022/ngwr-tabs.mjs +21 -4
  141. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  142. package/fesm2022/ngwr-textarea.mjs +20 -4
  143. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  144. package/fesm2022/ngwr-theme.mjs +13 -3
  145. package/fesm2022/ngwr-theme.mjs.map +1 -1
  146. package/fesm2022/ngwr-tilt-card.mjs +2 -2
  147. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  148. package/fesm2022/ngwr-toolbar.mjs +2 -2
  149. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  150. package/fesm2022/ngwr-tour.mjs +264 -0
  151. package/fesm2022/ngwr-tour.mjs.map +1 -0
  152. package/fesm2022/ngwr-transfer.mjs +184 -0
  153. package/fesm2022/ngwr-transfer.mjs.map +1 -0
  154. package/fesm2022/ngwr-tree.mjs +27 -9
  155. package/fesm2022/ngwr-tree.mjs.map +1 -1
  156. package/fesm2022/ngwr-typewriter.mjs +2 -2
  157. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  158. package/fesm2022/ngwr-validators.mjs +118 -2
  159. package/fesm2022/ngwr-validators.mjs.map +1 -1
  160. package/fesm2022/ngwr-version.mjs +2 -2
  161. package/fesm2022/ngwr-version.mjs.map +1 -1
  162. package/fesm2022/ngwr-virtual-scroll.mjs +2 -2
  163. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  164. package/fesm2022/ngwr-waves.mjs +25 -3
  165. package/fesm2022/ngwr-waves.mjs.map +1 -1
  166. package/form/styles/_index.scss +8 -4
  167. package/glitch-text/styles/_index.scss +5 -0
  168. package/gradient-text/styles/_index.scss +5 -0
  169. package/i18n/en.json +233 -0
  170. package/i18n/ru.json +233 -0
  171. package/icon/styles/_index.scss +15 -1
  172. package/input/styles/_index.scss +16 -0
  173. package/input-number/styles/_index.scss +8 -1
  174. package/keyboard/styles/_index.scss +15 -3
  175. package/llms-full.txt +124 -63
  176. package/llms.txt +29 -8
  177. package/loading-bar/styles/_index.scss +5 -0
  178. package/marquee/styles/_index.scss +7 -2
  179. package/mention/styles/_index.scss +23 -0
  180. package/overlay/styles/_index.scss +5 -0
  181. package/package.json +15 -1
  182. package/pagination/styles/_index.scss +12 -0
  183. package/popover/styles/_index.scss +165 -45
  184. package/pull-to-refresh/styles/_index.scss +5 -0
  185. package/result/styles/_index.scss +3 -3
  186. package/schematics/icon-set/index.js +80 -34
  187. package/schematics/icon-set/schema.json +8 -3
  188. package/schematics/ng-add/index.js +23 -6
  189. package/schematics/package.json +3 -0
  190. package/schematics/page/templates.js +17 -21
  191. package/schematics/provider/index.js +31 -13
  192. package/schematics/provider/schema.json +40 -24
  193. package/schematics/use/index.js +5 -1
  194. package/schematics/use/schema.json +8 -3
  195. package/schematics/use/symbol-map.json +7 -176
  196. package/segmented/styles/_index.scss +1 -1
  197. package/select/styles/_index.scss +20 -3
  198. package/shiny-text/styles/_index.scss +5 -0
  199. package/speed-dial/styles/_index.scss +12 -1
  200. package/splitter/styles/_index.scss +7 -1
  201. package/spotlight-card/styles/_index.scss +5 -0
  202. package/squircle/styles/_index.scss +5 -0
  203. package/star-border/styles/_index.scss +5 -0
  204. package/statistic/styles/_index.scss +2 -2
  205. package/styles/_animations.scss +6 -0
  206. package/styles.scss +3 -0
  207. package/table/styles/_index.scss +128 -12
  208. package/theme/styles/_box-model.scss +29 -0
  209. package/theme/styles/_colors.scss +116 -15
  210. package/theme/styles/_dark.scss +65 -7
  211. package/theme/styles/_focus.scss +2 -8
  212. package/theme/styles/_index.scss +1 -0
  213. package/tilt-card/styles/_index.scss +5 -0
  214. package/toast/styles/_index.scss +6 -3
  215. package/tour/styles/_index.scss +63 -0
  216. package/transfer/styles/_index.scss +105 -0
  217. package/types/ngwr-alert.d.ts +4 -1
  218. package/types/ngwr-avatar.d.ts +1 -1
  219. package/types/ngwr-back-top.d.ts +3 -2
  220. package/types/ngwr-badge.d.ts +1 -1
  221. package/types/ngwr-border-glow.d.ts +0 -1
  222. package/types/ngwr-carousel.d.ts +10 -1
  223. package/types/ngwr-cascader.d.ts +13 -1
  224. package/types/ngwr-checkbox.d.ts +9 -1
  225. package/types/ngwr-color-picker.d.ts +1 -0
  226. package/types/ngwr-command-palette.d.ts +4 -1
  227. package/types/ngwr-context-menu.d.ts +1 -0
  228. package/types/ngwr-date-picker.d.ts +14 -4
  229. package/types/ngwr-density.d.ts +9 -2
  230. package/types/ngwr-dialog.d.ts +9 -0
  231. package/types/ngwr-divider.d.ts +1 -1
  232. package/types/ngwr-drawer.d.ts +20 -4
  233. package/types/ngwr-dropdown.d.ts +1 -0
  234. package/types/ngwr-event-calendar.d.ts +358 -0
  235. package/types/ngwr-form.d.ts +177 -20
  236. package/types/ngwr-fuzzy-text.d.ts +8 -0
  237. package/types/ngwr-gauge.d.ts +4 -1
  238. package/types/ngwr-i18n.d.ts +80 -2
  239. package/types/ngwr-icon.d.ts +11 -19
  240. package/types/ngwr-input-number.d.ts +8 -1
  241. package/types/ngwr-input.d.ts +50 -20
  242. package/types/ngwr-knob.d.ts +4 -1
  243. package/types/ngwr-lightbox.d.ts +7 -1
  244. package/types/ngwr-line-chart.d.ts +1 -1
  245. package/types/ngwr-media.d.ts +1 -1
  246. package/types/ngwr-mention.d.ts +45 -1
  247. package/types/ngwr-meter-group.d.ts +9 -1
  248. package/types/ngwr-overlay.d.ts +80 -2
  249. package/types/ngwr-page-header.d.ts +2 -2
  250. package/types/ngwr-pagination.d.ts +15 -2
  251. package/types/ngwr-popconfirm.d.ts +1 -0
  252. package/types/ngwr-popover.d.ts +1 -0
  253. package/types/ngwr-progress.d.ts +4 -1
  254. package/types/ngwr-rating.d.ts +3 -2
  255. package/types/ngwr-result.d.ts +12 -6
  256. package/types/ngwr-segmented.d.ts +6 -0
  257. package/types/ngwr-select.d.ts +19 -7
  258. package/types/ngwr-shiny-text.d.ts +2 -4
  259. package/types/ngwr-speed-dial.d.ts +7 -1
  260. package/types/ngwr-squircle.d.ts +1 -1
  261. package/types/ngwr-switch.d.ts +7 -1
  262. package/types/ngwr-table.d.ts +126 -6
  263. package/types/ngwr-tabs.d.ts +1 -4
  264. package/types/ngwr-textarea.d.ts +8 -1
  265. package/types/ngwr-theme.d.ts +8 -1
  266. package/types/ngwr-toolbar.d.ts +2 -2
  267. package/types/ngwr-tour.d.ts +132 -0
  268. package/types/ngwr-transfer.d.ts +118 -0
  269. package/types/ngwr-tree.d.ts +11 -2
  270. package/types/ngwr-validators.d.ts +62 -2
  271. package/types/ngwr-version.d.ts +2 -2
  272. package/types/ngwr-waves.d.ts +10 -0
  273. package/typewriter/styles/_index.scss +5 -0
  274. package/typography/styles/_index.scss +3 -3
  275. package/virtual-scroll/styles/_index.scss +6 -1
  276. package/waves/styles/_index.scss +26 -0
@@ -0,0 +1,63 @@
1
+ @use '../../theme/styles' as theme;
2
+
3
+ // The cut-out. A bare box sized to the spotlit element, dimming everything
4
+ // around it with one enormous spread shadow — the target itself is never
5
+ // covered, so it stays readable and clickable.
6
+ .wr-tour__spotlight {
7
+ position: fixed;
8
+ z-index: 1000;
9
+ pointer-events: none;
10
+ border-radius: var(--wr-border-radius-base);
11
+ box-shadow: 0 0 0 9999px rgba(var(--wr-color-backdrop-rgb), 0.55);
12
+ transition:
13
+ top var(--wr-transition-base),
14
+ left var(--wr-transition-base),
15
+ width var(--wr-transition-base),
16
+ height var(--wr-transition-base);
17
+ }
18
+
19
+ .wr-tour-popup {
20
+ display: block;
21
+ max-width: 20rem;
22
+ padding: 1rem;
23
+ background: var(--wr-color-surface);
24
+ color: var(--wr-color-on-surface);
25
+ border: 1px solid var(--wr-color-outline);
26
+ @include theme.smooth-br(var(--wr-border-radius-base));
27
+ box-shadow: 0 12px 24px rgba(var(--wr-color-backdrop-rgb), 0.24);
28
+ font-family: var(--wr-font-family-base);
29
+
30
+ &__progress {
31
+ margin: 0 0 0.375rem;
32
+ font-size: var(--wr-text-xs);
33
+ color: var(--wr-color-on-surface-muted);
34
+ font-variant-numeric: tabular-nums;
35
+ }
36
+
37
+ &__title {
38
+ margin: 0 0 0.375rem;
39
+ font-size: var(--wr-text-base);
40
+ font-weight: var(--wr-font-weight-semibold);
41
+ }
42
+
43
+ &__content {
44
+ margin: 0 0 0.875rem;
45
+ font-size: var(--wr-text-sm);
46
+ line-height: var(--wr-leading-normal);
47
+ }
48
+
49
+ &__actions {
50
+ display: flex;
51
+ align-items: center;
52
+ gap: 0.5rem;
53
+ }
54
+
55
+ &__spacer {
56
+ flex: 1 1 auto;
57
+ }
58
+ }
59
+
60
+ // The popup rides above the cut-out.
61
+ .wr-tour-overlay {
62
+ z-index: 1001;
63
+ }
@@ -0,0 +1,105 @@
1
+ @use '../../theme/styles' as theme;
2
+
3
+ .wr-transfer {
4
+ --wr-transfer-pane-width: 14rem;
5
+ --wr-transfer-pane-height: 15rem;
6
+
7
+ display: flex;
8
+ align-items: stretch;
9
+ gap: 0.75rem;
10
+ font-family: var(--wr-font-family-base);
11
+ color: var(--wr-color-on-surface);
12
+
13
+ &--disabled {
14
+ opacity: 0.6;
15
+ }
16
+
17
+ &__pane {
18
+ display: flex;
19
+ flex-direction: column;
20
+ flex: 1 1 var(--wr-transfer-pane-width);
21
+ min-width: 0;
22
+ border: 1px solid var(--wr-color-outline);
23
+ @include theme.smooth-br(var(--wr-border-radius-base));
24
+ background: var(--wr-color-surface);
25
+ overflow: hidden;
26
+ }
27
+
28
+ &__head {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 0.5rem;
32
+ padding: 0.5rem 0.625rem;
33
+ border-bottom: 1px solid var(--wr-color-outline);
34
+ background: rgba(var(--wr-color-outline-rgb), 0.25);
35
+ }
36
+
37
+ &__title {
38
+ flex: 1 1 auto;
39
+ min-width: 0;
40
+ overflow: hidden;
41
+ text-overflow: ellipsis;
42
+ white-space: nowrap;
43
+ font-size: var(--wr-text-sm);
44
+ font-weight: var(--wr-font-weight-medium);
45
+ }
46
+
47
+ &__count {
48
+ flex: 0 0 auto;
49
+ font-size: var(--wr-text-xs);
50
+ color: var(--wr-color-on-surface-muted);
51
+ font-variant-numeric: tabular-nums;
52
+ }
53
+
54
+ &__search {
55
+ padding: 0.5rem 0.625rem;
56
+ border-bottom: 1px solid var(--wr-color-outline);
57
+ }
58
+
59
+ &__list {
60
+ flex: 1 1 auto;
61
+ margin: 0;
62
+ padding: 0.25rem;
63
+ list-style: none;
64
+ overflow-y: auto;
65
+ max-height: var(--wr-transfer-pane-height);
66
+ }
67
+
68
+ &__item {
69
+ padding: 0.25rem 0.375rem;
70
+ border-radius: var(--wr-border-radius-sm);
71
+
72
+ &:hover {
73
+ background: var(--wr-color-hover);
74
+ }
75
+
76
+ &--disabled:hover {
77
+ background: transparent;
78
+ }
79
+ }
80
+
81
+ &__empty {
82
+ padding: 1rem 0.375rem;
83
+ text-align: center;
84
+ font-size: var(--wr-text-sm);
85
+ color: var(--wr-color-on-surface-muted);
86
+ }
87
+
88
+ &__actions {
89
+ display: flex;
90
+ flex-direction: column;
91
+ justify-content: center;
92
+ gap: 0.5rem;
93
+ flex: 0 0 auto;
94
+ }
95
+
96
+ &__move .wr-icon__svg {
97
+ width: 1rem;
98
+ height: 1rem;
99
+ }
100
+
101
+ // No container query here on purpose: `@container` only styles DESCENDANTS, so
102
+ // a rule that reflows `.wr-transfer` itself could never match its own query.
103
+ // Doing it properly means the house `responsive` opt-in modifier (a wrapper
104
+ // that establishes the container) — not yet shipped for this component.
105
+ }
@@ -23,6 +23,9 @@ type WrAlertType = 'info' | 'success' | 'warning' | 'danger' | 'neutral' | 'offl
23
23
  * @see https://ngwr.dev/reference/components/alert
24
24
  */
25
25
  declare class WrAlert {
26
+ /** Accessible name. Falls back to `alert.close`, then `'Close alert'`. */
27
+ readonly closeLabel: _angular_core.InputSignal<string | null>;
28
+ protected readonly resolvedCloseLabel: _angular_core.Signal<string>;
26
29
  /**
27
30
  * Optional headline shown at the top of the alert.
28
31
  *
@@ -71,7 +74,7 @@ declare class WrAlert {
71
74
  protected readonly liveLevel: _angular_core.Signal<"assertive" | "polite" | null>;
72
75
  protected onClose(): void;
73
76
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAlert, never>;
74
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAlert, "wr-alert", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "closeable": { "alias": "closeable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
77
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAlert, "wr-alert", never, { "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "closeable": { "alias": "closeable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
75
78
  }
76
79
 
77
80
  export { WrAlert };
@@ -87,4 +87,4 @@ declare class WrAvatar {
87
87
  }
88
88
 
89
89
  export { WrAvatar };
90
- export type { WrAvatarSize };
90
+ export type { WrAvatarShape, WrAvatarSize };
@@ -20,8 +20,9 @@ declare class WrBackTop {
20
20
  readonly visibilityThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
21
21
  /** Pixel offset subtracted from the scroll target — for sticky headers. @default 0 */
22
22
  readonly offset: _angular_core.InputSignalWithTransform<number, unknown>;
23
- /** Accessible label for the button. @default 'Back to top' */
24
- readonly ariaLabel: _angular_core.InputSignal<string>;
23
+ /** Accessible label for the button. Falls back to `backTop.label`, then `'Back to top'`. */
24
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
25
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
25
26
  protected readonly visible: _angular_core.WritableSignal<boolean>;
26
27
  private readonly scroll;
27
28
  private readonly platform;
@@ -155,4 +155,4 @@ declare class WrTag {
155
155
  }
156
156
 
157
157
  export { WrBadge, WrTag };
158
- export type { WrBadgeSize, WrTagIconPosition };
158
+ export type { WrBadgeShape, WrBadgeSize, WrTagIconPosition };
@@ -50,7 +50,6 @@ declare class WrBorderGlow {
50
50
  readonly animated: _angular_core.InputSignalWithTransform<boolean, any>;
51
51
  private readonly el;
52
52
  private readonly platform;
53
- private readonly destroyRef;
54
53
  private readonly isBrowser;
55
54
  /** Inline CSS variable bag — recomputed when colour / radius / sensitivity inputs change. */
56
55
  protected readonly cssVars: _angular_core.Signal<Record<string, string>>;
@@ -26,6 +26,15 @@ declare class WrCarouselSlide {
26
26
  */
27
27
  declare class WrCarousel {
28
28
  /** Active slide index. Two-way bindable. @default 0 */
29
+ /** Accessible name of the previous-slide button. Falls back to `carousel.prev`. */
30
+ readonly prevLabel: _angular_core.InputSignal<string | null>;
31
+ /** Accessible name of the next-slide button. Falls back to `carousel.next`. */
32
+ readonly nextLabel: _angular_core.InputSignal<string | null>;
33
+ /** Accessible name of the dot group. Falls back to `carousel.pagination`. */
34
+ readonly paginationLabel: _angular_core.InputSignal<string | null>;
35
+ protected readonly resolvedPrevLabel: _angular_core.Signal<string>;
36
+ protected readonly resolvedNextLabel: _angular_core.Signal<string>;
37
+ protected readonly resolvedPaginationLabel: _angular_core.Signal<string>;
29
38
  readonly active: _angular_core.ModelSignal<number>;
30
39
  /** Show prev / next arrow buttons. @default true */
31
40
  readonly showArrows: _angular_core.InputSignalWithTransform<boolean, any>;
@@ -58,7 +67,7 @@ declare class WrCarousel {
58
67
  protected onSwipeMove(event: TouchEvent): void;
59
68
  protected onSwipeEnd(event: TouchEvent, viewport: HTMLElement): void;
60
69
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCarousel, never>;
61
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCarousel, "wr-carousel", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "intervalMs": { "alias": "intervalMs"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["slides"], ["*"], true, never>;
70
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCarousel, "wr-carousel", never, { "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "paginationLabel": { "alias": "paginationLabel"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "intervalMs": { "alias": "intervalMs"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["slides"], ["*"], true, never>;
62
71
  }
63
72
 
64
73
  export { WrCarousel, WrCarouselSlide };
@@ -51,10 +51,21 @@ interface WrCascaderOption<T = string> {
51
51
  */
52
52
  type WrCascaderSize = 'sm' | 'md' | 'lg';
53
53
  declare class WrCascader<T = string> implements FormValueControl<unknown> {
54
+ /** Accessible name. Falls back to `select.clearSelection`, then `'Clear selection'`. */
55
+ readonly clearLabel: _angular_core.InputSignal<string | null>;
56
+ protected readonly resolvedClearLabel: _angular_core.Signal<string>;
54
57
  /** Root-level options. Each may have `children` for deeper levels. */
55
58
  readonly options: _angular_core.InputSignal<readonly WrCascaderOption<T>[]>;
56
59
  /** Placeholder shown when no path is selected. @default '' */
57
60
  readonly placeholder: _angular_core.InputSignal<string>;
61
+ /**
62
+ * Accessible name of the trigger. Falls back to the placeholder, then to
63
+ * `select.label` — a `role="combobox"` with nothing selected and no
64
+ * placeholder otherwise has no name at all.
65
+ */
66
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
67
+ private readonly labelText;
68
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
58
69
  /**
59
70
  * Disable the cascader. Bound automatically from the field's disabled state
60
71
  * when used with `[formField]`.
@@ -101,6 +112,7 @@ declare class WrCascader<T = string> implements FormValueControl<unknown> {
101
112
  protected readonly panelTpl: _angular_core.Signal<TemplateRef<any>>;
102
113
  private readonly host;
103
114
  private readonly overlay;
115
+ private readonly outsideClick;
104
116
  private readonly vcr;
105
117
  private readonly scrollStrategies;
106
118
  private readonly destroyRef;
@@ -114,7 +126,7 @@ declare class WrCascader<T = string> implements FormValueControl<unknown> {
114
126
  private openOverlay;
115
127
  private closeOverlay;
116
128
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCascader<any>, never>;
117
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCascader<any>, "wr-cascader", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "changeOnSelect": { "alias": "changeOnSelect"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
129
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCascader<any>, "wr-cascader", never, { "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "changeOnSelect": { "alias": "changeOnSelect"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
118
130
  }
119
131
 
120
132
  export { WrCascader };
@@ -47,6 +47,14 @@ declare class WrCheckbox implements FormCheckboxControl {
47
47
  * `value`.)
48
48
  */
49
49
  readonly checkboxValue: _angular_core.InputSignal<unknown>;
50
+ /**
51
+ * Accessible name for a checkbox used WITHOUT projected text — a selection
52
+ * cell in a table, say. The wrapping `<label>` names the control whenever
53
+ * content is projected; with none, the native input has no name, and an
54
+ * `aria-label` put on the host lands on a `<wr-checkbox>` element that no
55
+ * screen reader ever announces.
56
+ */
57
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
50
58
  /**
51
59
  * Checked state — the form value. Bound by `[formField]`, two-way via
52
60
  * `[(checked)]`, or `[(ngModel)]`. Ignored inside a `<wr-checkbox-group>`,
@@ -87,7 +95,7 @@ declare class WrCheckbox implements FormCheckboxControl {
87
95
  protected onInputChange(event: Event): void;
88
96
  protected onInputBlur(): void;
89
97
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCheckbox, never>;
90
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "checkboxValue": { "alias": "checkboxValue"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
98
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "checkboxValue": { "alias": "checkboxValue"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
91
99
  }
92
100
 
93
101
  /**
@@ -286,6 +286,7 @@ declare class WrColorPickerTrigger {
286
286
  readonly closed: _angular_core.OutputEmitterRef<void>;
287
287
  private readonly host;
288
288
  private readonly overlay;
289
+ private readonly outsideClick;
289
290
  private readonly vcr;
290
291
  private readonly scrollStrategies;
291
292
  private readonly destroyRef;
@@ -56,6 +56,9 @@ interface Bucket {
56
56
  * @see https://ngwr.dev/reference/components/command-palette
57
57
  */
58
58
  declare class WrCommandPalette {
59
+ /** Accessible name. Falls back to `commandPalette.label`, then `'Command palette'`. */
60
+ readonly paletteLabel: _angular_core.InputSignal<string | null>;
61
+ protected readonly resolvedPaletteLabel: _angular_core.Signal<string>;
59
62
  /** Items shown in the palette. */
60
63
  readonly items: _angular_core.InputSignal<readonly WrCommandItem[]>;
61
64
  /** Controlled open state (two-way bindable). @default false */
@@ -118,7 +121,7 @@ declare class WrCommandPalette {
118
121
  close(): void;
119
122
  private commit;
120
123
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCommandPalette, never>;
121
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCommandPalette, "wr-command-palette", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "closeOnPick": { "alias": "closeOnPick"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "picked": "picked"; }, never, never, true, never>;
124
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCommandPalette, "wr-command-palette", never, { "paletteLabel": { "alias": "paletteLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "closeOnPick": { "alias": "closeOnPick"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "picked": "picked"; }, never, never, true, never>;
122
125
  }
123
126
 
124
127
  export { WrCommandPalette };
@@ -44,6 +44,7 @@ declare class WrContextMenu {
44
44
  readonly menu: i0.InputSignal<WrContextMenuPanel>;
45
45
  private readonly host;
46
46
  private readonly overlay;
47
+ private readonly outsideClick;
47
48
  private readonly vcr;
48
49
  private readonly scrollStrategies;
49
50
  private readonly destroyRef;
@@ -25,7 +25,7 @@ import { WrDateFormat } from 'ngwr/date-adapter';
25
25
  * accepts both named keys (`'shortDate'`, `'mediumDateTime'`, …) and raw
26
26
  * token strings (`'dd.MM.yyyy'`, `'HH:mm'`). When `format` is left at the
27
27
  * default (`null`), the picker derives the right named key from `mode`:
28
- * `'date'` → `'shortDate'`, `'time'` → `'shortTime'`, `'datetime'` →
28
+ * `'date'` gives `'shortDate'`, `'time'` gives `'time'`, `'datetime'` gives
29
29
  * `'shortDateTime'`.
30
30
  *
31
31
  * @example
@@ -50,8 +50,8 @@ declare class WrDatePicker implements FormValueControl<Date | null> {
50
50
  readonly mode: _angular_core.InputSignal<"time" | "date" | "datetime">;
51
51
  /**
52
52
  * Format used for both display and parsing. When `null` (default), the
53
- * format is derived from `mode` (`shortDate` / `shortTime` /
54
- * `shortDateTime`). Pass a named key or raw token string to override.
53
+ * format is derived from `mode` (`shortDate` / `time` / `shortDateTime`).
54
+ * Pass a named key or raw token string to override.
55
55
  */
56
56
  readonly format: _angular_core.InputSignal<WrDateFormat | (string & {}) | null>;
57
57
  /** Placeholder shown when the input is empty. */
@@ -79,6 +79,7 @@ declare class WrDatePicker implements FormValueControl<Date | null> {
79
79
  readonly readonly: _angular_core.InputSignalWithTransform<boolean, any>;
80
80
  private readonly adapter;
81
81
  private readonly overlay;
82
+ private readonly outsideClick;
82
83
  private readonly scrollStrategies;
83
84
  private readonly host;
84
85
  private readonly destroyRef;
@@ -98,6 +99,14 @@ declare class WrDatePicker implements FormValueControl<Date | null> {
98
99
  private readonly labelDate;
99
100
  private readonly labelTime;
100
101
  private readonly labelDateTime;
102
+ /**
103
+ * Accessible name of the text field. Falls back to the placeholder, then to
104
+ * the same catalog string the calendar button uses — the field is a
105
+ * `role="combobox"`, and with an empty placeholder it had no name at all.
106
+ */
107
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
108
+ private readonly fieldLabel;
109
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
101
110
  protected readonly triggerLabel: _angular_core.Signal<string>;
102
111
  protected readonly classes: _angular_core.Signal<string>;
103
112
  private overlayRef;
@@ -127,7 +136,7 @@ declare class WrDatePicker implements FormValueControl<Date | null> {
127
136
  private isOutOfBounds;
128
137
  private sameDate;
129
138
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDatePicker, never>;
130
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDatePicker, "wr-date-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
139
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDatePicker, "wr-date-picker", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
131
140
  }
132
141
 
133
142
  /**
@@ -219,6 +228,7 @@ declare class WrDateRangePicker implements FormValueControl<WrDateRange | null>
219
228
  readonly readonly: _angular_core.InputSignalWithTransform<boolean, any>;
220
229
  private readonly adapter;
221
230
  private readonly overlay;
231
+ private readonly outsideClick;
222
232
  private readonly scrollStrategies;
223
233
  private readonly host;
224
234
  private readonly destroyRef;
@@ -3,7 +3,7 @@ import { InjectionToken, Signal, EnvironmentProviders } from '@angular/core';
3
3
 
4
4
  /** Density scale. Components multiply their paddings by the matching multiplier. */
5
5
  type WrDensityValue = 'sm' | 'md' | 'lg' | 'touch';
6
- /** Configuration for {@link WrDensityValueService}. */
6
+ /** Configuration for {@link WrDensity}. */
7
7
  interface WrDensityConfig {
8
8
  /** Initial density used when no persisted value is present. @default 'md' */
9
9
  readonly defaultDensity: WrDensityValue;
@@ -90,7 +90,14 @@ declare class WrDensityDirective {
90
90
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
91
91
  */
92
92
 
93
- /** Configure {@link WrDensity}. All fields optional — merged with defaults. */
93
+ /**
94
+ * Configure and activate {@link WrDensity}. All fields optional — merged with
95
+ * defaults.
96
+ *
97
+ * The initializer instantiates {@link WrDensity} so its constructor effect can
98
+ * write `[data-wr-density]` onto `<html>`. Without it the tree-shakable service
99
+ * was never created and `defaultDensity` had no effect at all.
100
+ */
94
101
  declare function provideWrDensity(config?: Partial<WrDensityConfig>): EnvironmentProviders;
95
102
 
96
103
  export { DEFAULT_WR_DENSITY_CONFIG, WR_DENSITY_CONFIG, WrDensity, WrDensityDirective, provideWrDensity };
@@ -87,6 +87,14 @@ interface WrDialogOptions<D = unknown> {
87
87
  readonly closeOnBackdropClick?: boolean;
88
88
  /** When `true`, the Escape key closes the dialog. @default true */
89
89
  readonly closeOnEscape?: boolean;
90
+ /**
91
+ * Render a dismiss (×) button in the panel's top-right corner. Set `false`
92
+ * when the content supplies its own close affordance, or when the dialog must
93
+ * be resolved through its own actions. @default true
94
+ */
95
+ readonly closable?: boolean;
96
+ /** Accessible name for the dismiss button. Falls back to the `dialog.close` catalog key. */
97
+ readonly closeLabel?: string;
90
98
  /** Width applied to the panel — any valid CSS length. */
91
99
  readonly width?: string;
92
100
  /** Maximum width applied to the panel. */
@@ -130,6 +138,7 @@ declare class WrDialog {
130
138
  private readonly focusTrapFactory;
131
139
  private readonly isBrowser;
132
140
  private readonly responsiveConfig;
141
+ private readonly i18n;
133
142
  open<C, R = unknown, D = unknown>(component: ComponentType<C>, options?: WrDialogOptions<D>): WrDialogRef<C, R>;
134
143
  static ɵfac: i0.ɵɵFactoryDeclaration<WrDialog, never>;
135
144
  static ɵprov: i0.ɵɵInjectableDeclaration<WrDialog>;
@@ -70,4 +70,4 @@ declare class WrDivider {
70
70
  }
71
71
 
72
72
  export { WrDivider };
73
- export type { WrDividerType };
73
+ export type { WrDividerAlign, WrDividerType };
@@ -48,6 +48,13 @@ interface WrDrawerOptions<D = unknown> {
48
48
  readonly closeOnBackdropClick?: boolean;
49
49
  /** When `true`, the Escape key closes the drawer. @default true */
50
50
  readonly closeOnEscape?: boolean;
51
+ /**
52
+ * Render a dismiss (×) button in the panel's top-right corner. Set `false`
53
+ * when the content supplies its own close affordance. @default true
54
+ */
55
+ readonly closable?: boolean;
56
+ /** Accessible name for the dismiss button. Falls back to the `drawer.close` catalog key. */
57
+ readonly closeLabel?: string;
51
58
  /** Extra CSS class(es) added to the panel. */
52
59
  readonly panelClass?: string | readonly string[];
53
60
  }
@@ -109,14 +116,22 @@ declare class WrDrawer {
109
116
  readonly closeOnBackdropClick: _angular_core.InputSignalWithTransform<boolean, any>;
110
117
  /** Close on Escape. @default true */
111
118
  readonly closeOnEscape: _angular_core.InputSignalWithTransform<boolean, any>;
119
+ /**
120
+ * Show a dismiss (×) button in the panel's top-right corner. Set `false` when
121
+ * the projected content supplies its own close affordance. @default true
122
+ */
123
+ readonly closable: _angular_core.InputSignalWithTransform<boolean, any>;
124
+ /** Accessible name for the dismiss button. Falls back to `drawer.close`. */
125
+ readonly closeLabel: _angular_core.InputSignal<string | null>;
126
+ protected readonly resolvedCloseLabel: _angular_core.Signal<string>;
112
127
  protected readonly panelTpl: _angular_core.Signal<TemplateRef<any>>;
113
128
  protected panelClass(): string;
114
129
  private swipeStartX;
115
130
  private swipeStartY;
116
131
  private swiping;
117
- protected onSwipeStart(event: TouchEvent): void;
118
- protected onSwipeMove(event: TouchEvent, panel: HTMLElement): void;
119
- protected onSwipeEnd(event: TouchEvent, panel: HTMLElement): void;
132
+ protected onSwipeStart(event: PointerEvent): void;
133
+ protected onSwipeMove(event: PointerEvent, panel: HTMLElement): void;
134
+ protected onSwipeEnd(event: PointerEvent, panel: HTMLElement): void;
120
135
  /** Axis + sign of the closing direction for the current position. */
121
136
  private closeAxis;
122
137
  private readonly overlay;
@@ -131,7 +146,7 @@ declare class WrDrawer {
131
146
  private openOverlay;
132
147
  private closeOverlay;
133
148
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDrawer, never>;
134
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDrawer, "wr-drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showHandle": { "alias": "showHandle"; "required": false; "isSignal": true; }; "safeArea": { "alias": "safeArea"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
149
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrDrawer, "wr-drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "showHandle": { "alias": "showHandle"; "required": false; "isSignal": true; }; "safeArea": { "alias": "safeArea"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
135
150
  }
136
151
 
137
152
  /**
@@ -237,6 +252,7 @@ declare class WrDrawerManager {
237
252
  private readonly parentInjector;
238
253
  private readonly focusTrapFactory;
239
254
  private readonly isBrowser;
255
+ private readonly i18n;
240
256
  open<C, R = unknown, D = unknown>(component: ComponentType<C>, options?: WrDrawerOptions<D>): WrDrawerRef<C, R>;
241
257
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDrawerManager, never>;
242
258
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<WrDrawerManager>;
@@ -73,6 +73,7 @@ declare class WrDropdown {
73
73
  readonly closed: _angular_core.OutputEmitterRef<void>;
74
74
  private readonly host;
75
75
  private readonly overlay;
76
+ private readonly outsideClick;
76
77
  private readonly responsiveConfig;
77
78
  private readonly vcr;
78
79
  private readonly scrollStrategies;