@ojiepermana/angular 22.1.14 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-COQ-60DS.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -496
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +1 -1
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -113
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-Be3IqzG4.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-Bc7DWK3R.mjs +0 -522
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-DA8VPEn7.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-U2TJTzlW.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-CIUhmytH.mjs +0 -2668
@@ -1,212 +1,284 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, ViewContainerRef, DestroyRef, ElementRef, model, input, output, signal, computed, viewChild, effect, Component, Directive } from '@angular/core';
3
- import { Overlay } from '@angular/cdk/overlay';
4
- import { TemplatePortal } from '@angular/cdk/portal';
5
- import { FocusTrapFactory } from '@angular/cdk/a11y';
6
- import { DOCUMENT } from '@angular/common';
7
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import { filter } from 'rxjs/operators';
9
- import { ButtonComponent } from '@ojiepermana/angular/component/button';
10
- import { cn, injectUniqueId } from '@ojiepermana/angular/component/utils/core';
11
- import * as i1 from '@ojiepermana/angular/component/utils/scale';
12
- import { ComponentScaleDirective } from '@ojiepermana/angular/component/utils/scale';
13
-
1
+ import * as i0 from "@angular/core";
2
+ import { Component, DestroyRef, Directive, ElementRef, ViewContainerRef, computed, effect, inject, input, model, output, signal, viewChild } from "@angular/core";
3
+ import { Overlay } from "@angular/cdk/overlay";
4
+ import { TemplatePortal } from "@angular/cdk/portal";
5
+ import { FocusTrapFactory } from "@angular/cdk/a11y";
6
+ import { DOCUMENT } from "@angular/common";
7
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
8
+ import { filter } from "rxjs/operators";
9
+ import { ButtonComponent } from "@ojiepermana/angular/component/button";
10
+ import { cn, injectUniqueId } from "@ojiepermana/angular/component/utils/core";
11
+ import * as i1 from "@ojiepermana/angular/component/utils/scale";
12
+ import { ComponentScaleDirective } from "@ojiepermana/angular/component/utils/scale";
14
13
  const SIDE_BASE = {
15
- top: 'inset-x-0 top-0 border-b border-border',
16
- bottom: 'inset-x-0 bottom-0 border-t border-border',
17
- left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border sm:max-w-sm',
18
- right: 'inset-y-0 right-0 h-full w-3/4 border-l border-border sm:max-w-sm',
14
+ top: "inset-x-0 top-0 border-b border-border",
15
+ bottom: "inset-x-0 bottom-0 border-t border-border",
16
+ left: "inset-y-0 left-0 h-full w-3/4 border-r border-border sm:max-w-sm",
17
+ right: "inset-y-0 right-0 h-full w-3/4 border-l border-border sm:max-w-sm"
19
18
  };
20
19
  const DRAWER_SIDE_CLASSES = {
21
- top: 'max-h-[85vh] rounded-b-lg',
22
- bottom: 'max-h-[85vh] rounded-t-lg',
23
- left: 'rounded-r-lg',
24
- right: 'rounded-l-lg',
20
+ top: "max-h-[85vh] rounded-b-lg",
21
+ bottom: "max-h-[85vh] rounded-t-lg",
22
+ left: "rounded-r-lg",
23
+ right: "rounded-l-lg"
25
24
  };
26
25
  const SIDE_ENTER_FROM = {
27
- top: 'translateY(-100%)',
28
- bottom: 'translateY(100%)',
29
- left: 'translateX(-100%)',
30
- right: 'translateX(100%)',
26
+ top: "translateY(-100%)",
27
+ bottom: "translateY(100%)",
28
+ left: "translateX(-100%)",
29
+ right: "translateX(100%)"
31
30
  };
32
- class SheetComponent {
33
- componentScale = inject(ComponentScaleDirective);
34
- radius = this.componentScale.radius;
35
- density = this.componentScale.density;
36
- overlay = inject(Overlay);
37
- vcr = inject(ViewContainerRef);
38
- trapFactory = inject(FocusTrapFactory);
39
- doc = inject(DOCUMENT);
40
- destroyRef = inject(DestroyRef);
41
- host = inject((ElementRef));
42
- open = model(false, /* @ts-ignore */
43
- ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
44
- side = input(undefined, /* @ts-ignore */
45
- ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
46
- /** Paksa perilaku 'sheet' atau 'drawer' tanpa bergantung pada nama tag host. */
47
- variant = input(null, /* @ts-ignore */
48
- ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
49
- closeOnEscape = input(true, /* @ts-ignore */
50
- ...(ngDevMode ? [{ debugName: "closeOnEscape" }] : /* istanbul ignore next */ []));
51
- closeOnBackdropClick = input(true, /* @ts-ignore */
52
- ...(ngDevMode ? [{ debugName: "closeOnBackdropClick" }] : /* istanbul ignore next */ []));
53
- /** Appearance of the area outside the surface. Defaults to a dimmed overlay. */
54
- backdrop = input('dim', /* @ts-ignore */
55
- ...(ngDevMode ? [{ debugName: "backdrop" }] : /* istanbul ignore next */ []));
56
- showCloseButton = input(true, /* @ts-ignore */
57
- ...(ngDevMode ? [{ debugName: "showCloseButton" }] : /* istanbul ignore next */ []));
58
- closeButtonLabel = input('Close', /* @ts-ignore */
59
- ...(ngDevMode ? [{ debugName: "closeButtonLabel" }] : /* istanbul ignore next */ []));
60
- /** Optional opening trigger used for deterministic focus restoration. */
61
- restoreFocus = input(null, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "restoreFocus" }] : /* istanbul ignore next */ []));
63
- labelledBy = input(null, { ...(ngDevMode ? { debugName: "labelledBy" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
64
- describedBy = input(null, { ...(ngDevMode ? { debugName: "describedBy" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
65
- /** ARIA role for the surface. Defaults to `'dialog'`. */
66
- role = input('dialog', /* @ts-ignore */
67
- ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
68
- class = input('', /* @ts-ignore */
69
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
70
- openedChange = output();
71
- registeredTitleId = signal(null, /* @ts-ignore */
72
- ...(ngDevMode ? [{ debugName: "registeredTitleId" }] : /* istanbul ignore next */ []));
73
- registeredDescriptionId = signal(null, /* @ts-ignore */
74
- ...(ngDevMode ? [{ debugName: "registeredDescriptionId" }] : /* istanbul ignore next */ []));
75
- /** Explicit `aria-labelledby` wins; otherwise a projected `SheetTitle` supplies the id. */
76
- resolvedLabelledBy = computed(() => this.labelledBy() ?? this.registeredTitleId(), /* @ts-ignore */
77
- ...(ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []));
78
- /** Explicit `aria-describedby` wins; otherwise a projected `SheetDescription` supplies the id. */
79
- resolvedDescribedBy = computed(() => this.describedBy() ?? this.registeredDescriptionId(), /* @ts-ignore */
80
- ...(ngDevMode ? [{ debugName: "resolvedDescribedBy" }] : /* istanbul ignore next */ []));
81
- tpl = viewChild.required('tpl', /* @ts-ignore */
82
- ...(ngDevMode ? [{ debugName: "tpl" }] : /* istanbul ignore next */ []));
83
- overlayRef = null;
84
- focusTrap = null;
85
- previousFocus = null;
86
- resolvedSide = computed(() => this.side() ?? (this.isDrawerHost() ? 'bottom' : 'right'), /* @ts-ignore */
87
- ...(ngDevMode ? [{ debugName: "resolvedSide" }] : /* istanbul ignore next */ []));
88
- surfaceClasses = computed(() => cn('gap-4 p-6 flex flex-col', SIDE_BASE[this.resolvedSide()], this.isDrawerHost() ? DRAWER_SIDE_CLASSES[this.resolvedSide()] : '', this.class()), /* @ts-ignore */
89
- ...(ngDevMode ? [{ debugName: "surfaceClasses" }] : /* istanbul ignore next */ []));
90
- enterFrom = computed(() => SIDE_ENTER_FROM[this.resolvedSide()], /* @ts-ignore */
91
- ...(ngDevMode ? [{ debugName: "enterFrom" }] : /* istanbul ignore next */ []));
92
- /** CDK `backdropClass` list: shared marker plus the selected appearance modifier. */
93
- backdropClass = computed(() => {
94
- const classes = ['dialog-backdrop'];
95
- const kind = this.backdrop();
96
- if (kind === 'blur')
97
- classes.push('dialog-backdrop-blur');
98
- else if (kind === 'transparent')
99
- classes.push('dialog-backdrop-transparent');
100
- return classes;
101
- }, /* @ts-ignore */
102
- ...(ngDevMode ? [{ debugName: "backdropClass" }] : /* istanbul ignore next */ []));
103
- constructor() {
104
- this.destroyRef.onDestroy(() => this.detach(false));
105
- effect(() => {
106
- if (this.open()) {
107
- this.attach();
108
- }
109
- else {
110
- this.detach();
111
- }
112
- });
113
- }
114
- attach() {
115
- if (this.overlayRef)
116
- return;
117
- this.previousFocus =
118
- this.restoreFocus() ??
119
- (this.doc.activeElement instanceof HTMLElement ? this.doc.activeElement : null);
120
- this.overlayRef = this.overlay.create({
121
- hasBackdrop: true,
122
- backdropClass: this.backdropClass(),
123
- panelClass: 'sheet-panel',
124
- scrollStrategy: this.overlay.scrollStrategies.block(),
125
- positionStrategy: this.overlay.position().global(),
126
- });
127
- const portal = new TemplatePortal(this.tpl(), this.vcr);
128
- this.overlayRef.attach(portal);
129
- this.focusTrap = this.trapFactory.create(this.overlayRef.hostElement);
130
- this.focusTrap.focusInitialElementWhenReady();
131
- if (this.closeOnBackdropClick()) {
132
- this.overlayRef
133
- .backdropClick()
134
- .pipe(takeUntilDestroyed(this.destroyRef))
135
- .subscribe(() => this.open.set(false));
136
- }
137
- this.overlayRef
138
- .keydownEvents()
139
- .pipe(takeUntilDestroyed(this.destroyRef), filter((e) => e.key === 'Escape' && this.closeOnEscape()))
140
- .subscribe((e) => {
141
- e.preventDefault();
142
- this.open.set(false);
143
- });
144
- this.openedChange.emit(true);
145
- }
146
- detach(emitOpenedChange = true) {
147
- if (!this.overlayRef)
148
- return;
149
- const previousFocus = this.previousFocus;
150
- this.focusTrap?.destroy();
151
- this.focusTrap = null;
152
- this.overlayRef.dispose();
153
- this.overlayRef = null;
154
- this.previousFocus = null;
155
- this.restoreFocusAfterOverlayTeardown(previousFocus);
156
- if (emitOpenedChange) {
157
- this.openedChange.emit(false);
158
- }
159
- }
160
- close() {
161
- this.open.set(false);
162
- }
163
- /** Called by a projected `SheetTitle` so default usage has an accessible name (AXE-safe). */
164
- registerTitleId(id) {
165
- this.registeredTitleId.set(id);
166
- }
167
- /** Cleared by a `SheetTitle` on destroy so a closed/reopened sheet never points at a stale id. */
168
- unregisterTitleId(id) {
169
- if (this.registeredTitleId() === id) {
170
- this.registeredTitleId.set(null);
171
- }
172
- }
173
- /** Called by a projected `SheetDescription`. */
174
- registerDescriptionId(id) {
175
- this.registeredDescriptionId.set(id);
176
- }
177
- /** Cleared by a `SheetDescription` on destroy. */
178
- unregisterDescriptionId(id) {
179
- if (this.registeredDescriptionId() === id) {
180
- this.registeredDescriptionId.set(null);
181
- }
182
- }
183
- isDrawerHost() {
184
- const variant = this.variant();
185
- if (variant) {
186
- return variant === 'drawer';
187
- }
188
- // Fallback: infer dari tag host (selector komponen ini: 'Sheet, Drawer').
189
- // localName DOM selalu lowercase, meski tag template ditulis '<Drawer>'.
190
- return this.host.nativeElement.localName === 'drawer';
191
- }
192
- /** See DatePicker: wait for CDK pane disposal before returning focus on WebKit. */
193
- restoreFocusAfterOverlayTeardown(element) {
194
- if (!element?.isConnected) {
195
- return;
196
- }
197
- const view = this.doc.defaultView;
198
- if (!view) {
199
- queueMicrotask(() => element.isConnected && element.focus());
200
- return;
201
- }
202
- view.requestAnimationFrame(() => {
203
- if (element.isConnected) {
204
- element.focus();
205
- }
206
- });
207
- }
208
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
209
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: SheetComponent, isStandalone: true, selector: "Sheet, Drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, backdrop: { classPropertyName: "backdrop", publicName: "backdrop", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, labelledBy: { classPropertyName: "labelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, describedBy: { classPropertyName: "describedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", openedChange: "openedChange" }, host: { properties: { "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, viewQueries: [{ propertyName: "tpl", first: true, predicate: ["tpl"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.ComponentScaleDirective, inputs: ["radius", "radius", "density", "density"] }], ngImport: i0, template: `
31
+ var SheetComponent = class SheetComponent {
32
+ componentScale = inject(ComponentScaleDirective);
33
+ radius = this.componentScale.radius;
34
+ density = this.componentScale.density;
35
+ overlay = inject(Overlay);
36
+ vcr = inject(ViewContainerRef);
37
+ trapFactory = inject(FocusTrapFactory);
38
+ doc = inject(DOCUMENT);
39
+ destroyRef = inject(DestroyRef);
40
+ host = inject(ElementRef);
41
+ open = model(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
42
+ side = input(void 0, ...ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []);
43
+ variant = input(null, ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
44
+ closeOnEscape = input(true, ...ngDevMode ? [{ debugName: "closeOnEscape" }] : /* istanbul ignore next */ []);
45
+ closeOnBackdropClick = input(true, ...ngDevMode ? [{ debugName: "closeOnBackdropClick" }] : /* istanbul ignore next */ []);
46
+ backdrop = input("dim", ...ngDevMode ? [{ debugName: "backdrop" }] : /* istanbul ignore next */ []);
47
+ showCloseButton = input(true, ...ngDevMode ? [{ debugName: "showCloseButton" }] : /* istanbul ignore next */ []);
48
+ closeButtonLabel = input("Close", ...ngDevMode ? [{ debugName: "closeButtonLabel" }] : /* istanbul ignore next */ []);
49
+ restoreFocus = input(null, ...ngDevMode ? [{ debugName: "restoreFocus" }] : /* istanbul ignore next */ []);
50
+ labelledBy = input(null, {
51
+ ...ngDevMode ? { debugName: "labelledBy" } : /* istanbul ignore next */ {},
52
+ alias: "aria-labelledby"
53
+ });
54
+ describedBy = input(null, {
55
+ ...ngDevMode ? { debugName: "describedBy" } : /* istanbul ignore next */ {},
56
+ alias: "aria-describedby"
57
+ });
58
+ role = input("dialog", ...ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []);
59
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
60
+ openedChange = output();
61
+ registeredTitleId = signal(null, ...ngDevMode ? [{ debugName: "registeredTitleId" }] : /* istanbul ignore next */ []);
62
+ registeredDescriptionId = signal(null, ...ngDevMode ? [{ debugName: "registeredDescriptionId" }] : /* istanbul ignore next */ []);
63
+ resolvedLabelledBy = computed(() => this.labelledBy() ?? this.registeredTitleId(), ...ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []);
64
+ resolvedDescribedBy = computed(() => this.describedBy() ?? this.registeredDescriptionId(), ...ngDevMode ? [{ debugName: "resolvedDescribedBy" }] : /* istanbul ignore next */ []);
65
+ tpl = viewChild.required("tpl", ...ngDevMode ? [{ debugName: "tpl" }] : /* istanbul ignore next */ []);
66
+ overlayRef = null;
67
+ focusTrap = null;
68
+ previousFocus = null;
69
+ resolvedSide = computed(() => this.side() ?? (this.isDrawerHost() ? "bottom" : "right"), ...ngDevMode ? [{ debugName: "resolvedSide" }] : /* istanbul ignore next */ []);
70
+ surfaceClasses = computed(() => cn("gap-4 p-6 flex flex-col", SIDE_BASE[this.resolvedSide()], this.isDrawerHost() ? DRAWER_SIDE_CLASSES[this.resolvedSide()] : "", this.class()), ...ngDevMode ? [{ debugName: "surfaceClasses" }] : /* istanbul ignore next */ []);
71
+ enterFrom = computed(() => SIDE_ENTER_FROM[this.resolvedSide()], ...ngDevMode ? [{ debugName: "enterFrom" }] : /* istanbul ignore next */ []);
72
+ backdropClass = computed(() => {
73
+ const classes = ["dialog-backdrop"];
74
+ const kind = this.backdrop();
75
+ if (kind === "blur") classes.push("dialog-backdrop-blur");
76
+ else if (kind === "transparent") classes.push("dialog-backdrop-transparent");
77
+ return classes;
78
+ }, ...ngDevMode ? [{ debugName: "backdropClass" }] : /* istanbul ignore next */ []);
79
+ constructor() {
80
+ this.destroyRef.onDestroy(() => this.detach(false));
81
+ effect(() => {
82
+ if (this.open()) this.attach();
83
+ else this.detach();
84
+ });
85
+ }
86
+ attach() {
87
+ if (this.overlayRef) return;
88
+ this.previousFocus = this.restoreFocus() ?? (this.doc.activeElement instanceof HTMLElement ? this.doc.activeElement : null);
89
+ this.overlayRef = this.overlay.create({
90
+ hasBackdrop: true,
91
+ backdropClass: this.backdropClass(),
92
+ panelClass: "sheet-panel",
93
+ scrollStrategy: this.overlay.scrollStrategies.block(),
94
+ positionStrategy: this.overlay.position().global()
95
+ });
96
+ const portal = new TemplatePortal(this.tpl(), this.vcr);
97
+ this.overlayRef.attach(portal);
98
+ this.focusTrap = this.trapFactory.create(this.overlayRef.hostElement);
99
+ this.focusTrap.focusInitialElementWhenReady();
100
+ if (this.closeOnBackdropClick()) this.overlayRef.backdropClick().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.open.set(false));
101
+ this.overlayRef.keydownEvents().pipe(takeUntilDestroyed(this.destroyRef), filter((e) => e.key === "Escape" && this.closeOnEscape())).subscribe((e) => {
102
+ e.preventDefault();
103
+ this.open.set(false);
104
+ });
105
+ this.openedChange.emit(true);
106
+ }
107
+ detach(emitOpenedChange = true) {
108
+ if (!this.overlayRef) return;
109
+ const previousFocus = this.previousFocus;
110
+ this.focusTrap?.destroy();
111
+ this.focusTrap = null;
112
+ this.overlayRef.dispose();
113
+ this.overlayRef = null;
114
+ this.previousFocus = null;
115
+ this.restoreFocusAfterOverlayTeardown(previousFocus);
116
+ if (emitOpenedChange) this.openedChange.emit(false);
117
+ }
118
+ close() {
119
+ this.open.set(false);
120
+ }
121
+ registerTitleId(id) {
122
+ this.registeredTitleId.set(id);
123
+ }
124
+ unregisterTitleId(id) {
125
+ if (this.registeredTitleId() === id) this.registeredTitleId.set(null);
126
+ }
127
+ registerDescriptionId(id) {
128
+ this.registeredDescriptionId.set(id);
129
+ }
130
+ unregisterDescriptionId(id) {
131
+ if (this.registeredDescriptionId() === id) this.registeredDescriptionId.set(null);
132
+ }
133
+ isDrawerHost() {
134
+ const variant = this.variant();
135
+ if (variant) return variant === "drawer";
136
+ return this.host.nativeElement.localName === "drawer";
137
+ }
138
+ restoreFocusAfterOverlayTeardown(element) {
139
+ if (!element?.isConnected) return;
140
+ const view = this.doc.defaultView;
141
+ if (!view) {
142
+ queueMicrotask(() => element.isConnected && element.focus());
143
+ return;
144
+ }
145
+ view.requestAnimationFrame(() => {
146
+ if (element.isConnected) element.focus();
147
+ });
148
+ }
149
+ static ɵfac = i0.ɵɵngDeclareFactory({
150
+ minVersion: "12.0.0",
151
+ version: "22.2.0",
152
+ ngImport: i0,
153
+ type: SheetComponent,
154
+ deps: [],
155
+ target: i0.ɵɵFactoryTarget.Component
156
+ });
157
+ static ɵcmp = i0.ɵɵngDeclareComponent({
158
+ minVersion: "17.0.0",
159
+ version: "22.2.0",
160
+ type: SheetComponent,
161
+ isStandalone: true,
162
+ selector: "Sheet, Drawer",
163
+ inputs: {
164
+ open: {
165
+ classPropertyName: "open",
166
+ publicName: "open",
167
+ isSignal: true,
168
+ isRequired: false,
169
+ transformFunction: null
170
+ },
171
+ side: {
172
+ classPropertyName: "side",
173
+ publicName: "side",
174
+ isSignal: true,
175
+ isRequired: false,
176
+ transformFunction: null
177
+ },
178
+ variant: {
179
+ classPropertyName: "variant",
180
+ publicName: "variant",
181
+ isSignal: true,
182
+ isRequired: false,
183
+ transformFunction: null
184
+ },
185
+ closeOnEscape: {
186
+ classPropertyName: "closeOnEscape",
187
+ publicName: "closeOnEscape",
188
+ isSignal: true,
189
+ isRequired: false,
190
+ transformFunction: null
191
+ },
192
+ closeOnBackdropClick: {
193
+ classPropertyName: "closeOnBackdropClick",
194
+ publicName: "closeOnBackdropClick",
195
+ isSignal: true,
196
+ isRequired: false,
197
+ transformFunction: null
198
+ },
199
+ backdrop: {
200
+ classPropertyName: "backdrop",
201
+ publicName: "backdrop",
202
+ isSignal: true,
203
+ isRequired: false,
204
+ transformFunction: null
205
+ },
206
+ showCloseButton: {
207
+ classPropertyName: "showCloseButton",
208
+ publicName: "showCloseButton",
209
+ isSignal: true,
210
+ isRequired: false,
211
+ transformFunction: null
212
+ },
213
+ closeButtonLabel: {
214
+ classPropertyName: "closeButtonLabel",
215
+ publicName: "closeButtonLabel",
216
+ isSignal: true,
217
+ isRequired: false,
218
+ transformFunction: null
219
+ },
220
+ restoreFocus: {
221
+ classPropertyName: "restoreFocus",
222
+ publicName: "restoreFocus",
223
+ isSignal: true,
224
+ isRequired: false,
225
+ transformFunction: null
226
+ },
227
+ labelledBy: {
228
+ classPropertyName: "labelledBy",
229
+ publicName: "aria-labelledby",
230
+ isSignal: true,
231
+ isRequired: false,
232
+ transformFunction: null
233
+ },
234
+ describedBy: {
235
+ classPropertyName: "describedBy",
236
+ publicName: "aria-describedby",
237
+ isSignal: true,
238
+ isRequired: false,
239
+ transformFunction: null
240
+ },
241
+ role: {
242
+ classPropertyName: "role",
243
+ publicName: "role",
244
+ isSignal: true,
245
+ isRequired: false,
246
+ transformFunction: null
247
+ },
248
+ class: {
249
+ classPropertyName: "class",
250
+ publicName: "class",
251
+ isSignal: true,
252
+ isRequired: false,
253
+ transformFunction: null
254
+ }
255
+ },
256
+ outputs: {
257
+ open: "openChange",
258
+ openedChange: "openedChange"
259
+ },
260
+ host: { properties: {
261
+ "attr.aria-labelledby": "null",
262
+ "attr.aria-describedby": "null"
263
+ } },
264
+ viewQueries: [{
265
+ propertyName: "tpl",
266
+ first: true,
267
+ predicate: ["tpl"],
268
+ descendants: true,
269
+ isSignal: true
270
+ }],
271
+ hostDirectives: [{
272
+ directive: i1.ComponentScaleDirective,
273
+ inputs: [
274
+ "radius",
275
+ "radius",
276
+ "density",
277
+ "density"
278
+ ]
279
+ }],
280
+ ngImport: i0,
281
+ template: `
210
282
  <ng-template #tpl>
211
283
  <div
212
284
  class="sheet-surface fixed z-50 bg-background shadow-lg transition ease-in-out"
@@ -236,19 +308,40 @@ class SheetComponent {
236
308
  <ng-content />
237
309
  </div>
238
310
  </ng-template>
239
- `, isInline: true, styles: [".sheet-surface{animation:sheet-in .3s cubic-bezier(.2,0,0,1)}@keyframes sheet-in{0%{transform:var(--sheet-from)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.sheet-surface{animation-duration:0ms}}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[Button], a[Button]", inputs: ["variant", "size", "class"] }] });
240
- }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetComponent, decorators: [{
242
- type: Component,
243
- args: [{ selector: 'Sheet, Drawer', hostDirectives: [
244
- {
245
- directive: ComponentScaleDirective,
246
- inputs: ['radius', 'density'],
247
- },
248
- ], host: {
249
- '[attr.aria-labelledby]': 'null',
250
- '[attr.aria-describedby]': 'null',
251
- }, imports: [ButtonComponent], template: `
311
+ `,
312
+ isInline: true,
313
+ styles: [".sheet-surface{animation:sheet-in .3s cubic-bezier(.2,0,0,1)}@keyframes sheet-in{0%{transform:var(--sheet-from)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.sheet-surface{animation-duration:0ms}}\n"],
314
+ dependencies: [{
315
+ kind: "component",
316
+ type: ButtonComponent,
317
+ selector: "button[Button], a[Button]",
318
+ inputs: [
319
+ "variant",
320
+ "size",
321
+ "class"
322
+ ]
323
+ }]
324
+ });
325
+ };
326
+ i0.ɵɵngDeclareClassMetadata({
327
+ minVersion: "12.0.0",
328
+ version: "22.2.0",
329
+ ngImport: i0,
330
+ type: SheetComponent,
331
+ decorators: [{
332
+ type: Component,
333
+ args: [{
334
+ selector: "Sheet, Drawer",
335
+ hostDirectives: [{
336
+ directive: ComponentScaleDirective,
337
+ inputs: ["radius", "density"]
338
+ }],
339
+ host: {
340
+ "[attr.aria-labelledby]": "null",
341
+ "[attr.aria-describedby]": "null"
342
+ },
343
+ imports: [ButtonComponent],
344
+ template: `
252
345
  <ng-template #tpl>
253
346
  <div
254
347
  class="sheet-surface fixed z-50 bg-background shadow-lg transition ease-in-out"
@@ -278,134 +371,491 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
278
371
  <ng-content />
279
372
  </div>
280
373
  </ng-template>
281
- `, styles: [".sheet-surface{animation:sheet-in .3s cubic-bezier(.2,0,0,1)}@keyframes sheet-in{0%{transform:var(--sheet-from)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.sheet-surface{animation-duration:0ms}}\n"] }]
282
- }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], backdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdrop", required: false }] }], showCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCloseButton", required: false }] }], closeButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonLabel", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], labelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], describedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }], tpl: [{ type: i0.ViewChild, args: ['tpl', { isSignal: true }] }] } });
283
-
284
- class SheetCloseDirective {
285
- sheet = inject(SheetComponent);
286
- closeSheet() {
287
- this.sheet.close();
288
- }
289
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
290
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: SheetCloseDirective, isStandalone: true, selector: "button[SheetClose], a[SheetClose], button[DrawerClose], a[DrawerClose]", host: { listeners: { "click": "closeSheet()" } }, ngImport: i0 });
291
- }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetCloseDirective, decorators: [{
293
- type: Directive,
294
- args: [{
295
- selector: 'button[SheetClose], a[SheetClose], button[DrawerClose], a[DrawerClose]',
296
- host: {
297
- '(click)': 'closeSheet()',
298
- },
299
- }]
300
- }] });
301
-
302
- class SheetHeaderComponent {
303
- class = input('', /* @ts-ignore */
304
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
305
- classes = computed(() => cn('flex flex-col gap-2 text-center sm:text-left', this.class()), /* @ts-ignore */
306
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
307
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
308
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: SheetHeaderComponent, isStandalone: true, selector: "SheetHeader, DrawerHeader", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
309
- }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetHeaderComponent, decorators: [{
311
- type: Component,
312
- args: [{
313
- selector: 'SheetHeader, DrawerHeader',
314
- host: { '[class]': 'classes()' },
315
- template: `<ng-content />`,
316
- }]
317
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
318
- class SheetTitleComponent {
319
- /** Explicit id override; when omitted a document-unique id is generated. */
320
- id = input(null, /* @ts-ignore */
321
- ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
322
- class = input('', /* @ts-ignore */
323
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
324
- autoId = injectUniqueId('sheet-title');
325
- sheet = inject(SheetComponent, { optional: true });
326
- /** The id rendered on the element, used by the parent sheet for aria-labelledby. */
327
- resolvedId = computed(() => this.id() ?? this.autoId, /* @ts-ignore */
328
- ...(ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []));
329
- classes = computed(() => cn('text-lg font-semibold text-foreground', this.class()), /* @ts-ignore */
330
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
331
- constructor() {
332
- effect(() => this.sheet?.registerTitleId(this.resolvedId()));
333
- inject(DestroyRef).onDestroy(() => this.sheet?.unregisterTitleId(this.resolvedId()));
334
- }
335
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
336
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: SheetTitleComponent, isStandalone: true, selector: "SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
337
- }
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetTitleComponent, decorators: [{
339
- type: Component,
340
- args: [{
341
- selector: 'SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]',
342
- host: { '[class]': 'classes()', '[attr.id]': 'resolvedId()' },
343
- template: `<ng-content />`,
344
- }]
345
- }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
346
- class SheetDescriptionComponent {
347
- /** Explicit id override; when omitted a document-unique id is generated. */
348
- id = input(null, /* @ts-ignore */
349
- ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
350
- class = input('', /* @ts-ignore */
351
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
352
- autoId = injectUniqueId('sheet-description');
353
- sheet = inject(SheetComponent, { optional: true });
354
- /** The id rendered on the element, used by the parent sheet for aria-describedby. */
355
- resolvedId = computed(() => this.id() ?? this.autoId, /* @ts-ignore */
356
- ...(ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []));
357
- classes = computed(() => cn('text-sm text-muted-foreground', this.class()), /* @ts-ignore */
358
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
359
- constructor() {
360
- effect(() => this.sheet?.registerDescriptionId(this.resolvedId()));
361
- inject(DestroyRef).onDestroy(() => this.sheet?.unregisterDescriptionId(this.resolvedId()));
362
- }
363
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
364
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: SheetDescriptionComponent, isStandalone: true, selector: "SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
365
- }
366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetDescriptionComponent, decorators: [{
367
- type: Component,
368
- args: [{
369
- selector: 'SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]',
370
- host: { '[class]': 'classes()', '[attr.id]': 'resolvedId()' },
371
- template: `<ng-content />`,
372
- }]
373
- }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
374
- class SheetContentComponent {
375
- class = input('', /* @ts-ignore */
376
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
377
- classes = computed(() => cn('flex-1 overflow-auto', this.class()), /* @ts-ignore */
378
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
379
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
380
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: SheetContentComponent, isStandalone: true, selector: "SheetContent, DrawerContent", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
381
- }
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetContentComponent, decorators: [{
383
- type: Component,
384
- args: [{
385
- selector: 'SheetContent, DrawerContent',
386
- host: { '[class]': 'classes()' },
387
- template: `<ng-content />`,
388
- }]
389
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
390
- class SheetFooterComponent {
391
- class = input('', /* @ts-ignore */
392
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
393
- classes = computed(() => cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', this.class()), /* @ts-ignore */
394
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
395
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
396
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: SheetFooterComponent, isStandalone: true, selector: "SheetFooter, DrawerFooter", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
397
- }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SheetFooterComponent, decorators: [{
399
- type: Component,
400
- args: [{
401
- selector: 'SheetFooter, DrawerFooter',
402
- host: { '[class]': 'classes()' },
403
- template: `<ng-content />`,
404
- }]
405
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
406
-
407
- /**
408
- * Generated bundle index. Do not edit.
409
- */
410
-
411
- export { SheetCloseDirective, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetTitleComponent };
374
+ `,
375
+ styles: [".sheet-surface{animation:sheet-in .3s cubic-bezier(.2,0,0,1)}@keyframes sheet-in{0%{transform:var(--sheet-from)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.sheet-surface{animation-duration:0ms}}\n"]
376
+ }]
377
+ }],
378
+ ctorParameters: () => [],
379
+ propDecorators: {
380
+ open: [{
381
+ type: i0.Input,
382
+ args: [{
383
+ isSignal: true,
384
+ alias: "open",
385
+ required: false
386
+ }]
387
+ }, {
388
+ type: i0.Output,
389
+ args: ["openChange"]
390
+ }],
391
+ side: [{
392
+ type: i0.Input,
393
+ args: [{
394
+ isSignal: true,
395
+ alias: "side",
396
+ required: false
397
+ }]
398
+ }],
399
+ variant: [{
400
+ type: i0.Input,
401
+ args: [{
402
+ isSignal: true,
403
+ alias: "variant",
404
+ required: false
405
+ }]
406
+ }],
407
+ closeOnEscape: [{
408
+ type: i0.Input,
409
+ args: [{
410
+ isSignal: true,
411
+ alias: "closeOnEscape",
412
+ required: false
413
+ }]
414
+ }],
415
+ closeOnBackdropClick: [{
416
+ type: i0.Input,
417
+ args: [{
418
+ isSignal: true,
419
+ alias: "closeOnBackdropClick",
420
+ required: false
421
+ }]
422
+ }],
423
+ backdrop: [{
424
+ type: i0.Input,
425
+ args: [{
426
+ isSignal: true,
427
+ alias: "backdrop",
428
+ required: false
429
+ }]
430
+ }],
431
+ showCloseButton: [{
432
+ type: i0.Input,
433
+ args: [{
434
+ isSignal: true,
435
+ alias: "showCloseButton",
436
+ required: false
437
+ }]
438
+ }],
439
+ closeButtonLabel: [{
440
+ type: i0.Input,
441
+ args: [{
442
+ isSignal: true,
443
+ alias: "closeButtonLabel",
444
+ required: false
445
+ }]
446
+ }],
447
+ restoreFocus: [{
448
+ type: i0.Input,
449
+ args: [{
450
+ isSignal: true,
451
+ alias: "restoreFocus",
452
+ required: false
453
+ }]
454
+ }],
455
+ labelledBy: [{
456
+ type: i0.Input,
457
+ args: [{
458
+ isSignal: true,
459
+ alias: "aria-labelledby",
460
+ required: false
461
+ }]
462
+ }],
463
+ describedBy: [{
464
+ type: i0.Input,
465
+ args: [{
466
+ isSignal: true,
467
+ alias: "aria-describedby",
468
+ required: false
469
+ }]
470
+ }],
471
+ role: [{
472
+ type: i0.Input,
473
+ args: [{
474
+ isSignal: true,
475
+ alias: "role",
476
+ required: false
477
+ }]
478
+ }],
479
+ class: [{
480
+ type: i0.Input,
481
+ args: [{
482
+ isSignal: true,
483
+ alias: "class",
484
+ required: false
485
+ }]
486
+ }],
487
+ openedChange: [{
488
+ type: i0.Output,
489
+ args: ["openedChange"]
490
+ }],
491
+ tpl: [{
492
+ type: i0.ViewChild,
493
+ args: ["tpl", { isSignal: true }]
494
+ }]
495
+ }
496
+ });
497
+ var SheetCloseDirective = class SheetCloseDirective {
498
+ sheet = inject(SheetComponent);
499
+ closeSheet() {
500
+ this.sheet.close();
501
+ }
502
+ static ɵfac = i0.ɵɵngDeclareFactory({
503
+ minVersion: "12.0.0",
504
+ version: "22.2.0",
505
+ ngImport: i0,
506
+ type: SheetCloseDirective,
507
+ deps: [],
508
+ target: i0.ɵɵFactoryTarget.Directive
509
+ });
510
+ static ɵdir = i0.ɵɵngDeclareDirective({
511
+ minVersion: "14.0.0",
512
+ version: "22.2.0",
513
+ type: SheetCloseDirective,
514
+ isStandalone: true,
515
+ selector: "button[SheetClose], a[SheetClose], button[DrawerClose], a[DrawerClose]",
516
+ host: { listeners: { "click": "closeSheet()" } },
517
+ ngImport: i0
518
+ });
519
+ };
520
+ i0.ɵɵngDeclareClassMetadata({
521
+ minVersion: "12.0.0",
522
+ version: "22.2.0",
523
+ ngImport: i0,
524
+ type: SheetCloseDirective,
525
+ decorators: [{
526
+ type: Directive,
527
+ args: [{
528
+ selector: "button[SheetClose], a[SheetClose], button[DrawerClose], a[DrawerClose]",
529
+ host: { "(click)": "closeSheet()" }
530
+ }]
531
+ }]
532
+ });
533
+ var SheetHeaderComponent = class SheetHeaderComponent {
534
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
535
+ classes = computed(() => cn("flex flex-col gap-2 text-center sm:text-left", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
536
+ static ɵfac = i0.ɵɵngDeclareFactory({
537
+ minVersion: "12.0.0",
538
+ version: "22.2.0",
539
+ ngImport: i0,
540
+ type: SheetHeaderComponent,
541
+ deps: [],
542
+ target: i0.ɵɵFactoryTarget.Component
543
+ });
544
+ static ɵcmp = i0.ɵɵngDeclareComponent({
545
+ minVersion: "17.1.0",
546
+ version: "22.2.0",
547
+ type: SheetHeaderComponent,
548
+ isStandalone: true,
549
+ selector: "SheetHeader, DrawerHeader",
550
+ inputs: { class: {
551
+ classPropertyName: "class",
552
+ publicName: "class",
553
+ isSignal: true,
554
+ isRequired: false,
555
+ transformFunction: null
556
+ } },
557
+ host: { properties: { "class": "classes()" } },
558
+ ngImport: i0,
559
+ template: `<ng-content />`,
560
+ isInline: true
561
+ });
562
+ };
563
+ i0.ɵɵngDeclareClassMetadata({
564
+ minVersion: "12.0.0",
565
+ version: "22.2.0",
566
+ ngImport: i0,
567
+ type: SheetHeaderComponent,
568
+ decorators: [{
569
+ type: Component,
570
+ args: [{
571
+ selector: "SheetHeader, DrawerHeader",
572
+ host: { "[class]": "classes()" },
573
+ template: `<ng-content />`
574
+ }]
575
+ }],
576
+ propDecorators: { class: [{
577
+ type: i0.Input,
578
+ args: [{
579
+ isSignal: true,
580
+ alias: "class",
581
+ required: false
582
+ }]
583
+ }] }
584
+ });
585
+ var SheetTitleComponent = class SheetTitleComponent {
586
+ id = input(null, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
587
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
588
+ autoId = injectUniqueId("sheet-title");
589
+ sheet = inject(SheetComponent, { optional: true });
590
+ resolvedId = computed(() => this.id() ?? this.autoId, ...ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []);
591
+ classes = computed(() => cn("text-lg font-semibold text-foreground", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
592
+ constructor() {
593
+ effect(() => this.sheet?.registerTitleId(this.resolvedId()));
594
+ inject(DestroyRef).onDestroy(() => this.sheet?.unregisterTitleId(this.resolvedId()));
595
+ }
596
+ static ɵfac = i0.ɵɵngDeclareFactory({
597
+ minVersion: "12.0.0",
598
+ version: "22.2.0",
599
+ ngImport: i0,
600
+ type: SheetTitleComponent,
601
+ deps: [],
602
+ target: i0.ɵɵFactoryTarget.Component
603
+ });
604
+ static ɵcmp = i0.ɵɵngDeclareComponent({
605
+ minVersion: "17.1.0",
606
+ version: "22.2.0",
607
+ type: SheetTitleComponent,
608
+ isStandalone: true,
609
+ selector: "SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]",
610
+ inputs: {
611
+ id: {
612
+ classPropertyName: "id",
613
+ publicName: "id",
614
+ isSignal: true,
615
+ isRequired: false,
616
+ transformFunction: null
617
+ },
618
+ class: {
619
+ classPropertyName: "class",
620
+ publicName: "class",
621
+ isSignal: true,
622
+ isRequired: false,
623
+ transformFunction: null
624
+ }
625
+ },
626
+ host: { properties: {
627
+ "class": "classes()",
628
+ "attr.id": "resolvedId()"
629
+ } },
630
+ ngImport: i0,
631
+ template: `<ng-content />`,
632
+ isInline: true
633
+ });
634
+ };
635
+ i0.ɵɵngDeclareClassMetadata({
636
+ minVersion: "12.0.0",
637
+ version: "22.2.0",
638
+ ngImport: i0,
639
+ type: SheetTitleComponent,
640
+ decorators: [{
641
+ type: Component,
642
+ args: [{
643
+ selector: "SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]",
644
+ host: {
645
+ "[class]": "classes()",
646
+ "[attr.id]": "resolvedId()"
647
+ },
648
+ template: `<ng-content />`
649
+ }]
650
+ }],
651
+ ctorParameters: () => [],
652
+ propDecorators: {
653
+ id: [{
654
+ type: i0.Input,
655
+ args: [{
656
+ isSignal: true,
657
+ alias: "id",
658
+ required: false
659
+ }]
660
+ }],
661
+ class: [{
662
+ type: i0.Input,
663
+ args: [{
664
+ isSignal: true,
665
+ alias: "class",
666
+ required: false
667
+ }]
668
+ }]
669
+ }
670
+ });
671
+ var SheetDescriptionComponent = class SheetDescriptionComponent {
672
+ id = input(null, ...ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []);
673
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
674
+ autoId = injectUniqueId("sheet-description");
675
+ sheet = inject(SheetComponent, { optional: true });
676
+ resolvedId = computed(() => this.id() ?? this.autoId, ...ngDevMode ? [{ debugName: "resolvedId" }] : /* istanbul ignore next */ []);
677
+ classes = computed(() => cn("text-sm text-muted-foreground", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
678
+ constructor() {
679
+ effect(() => this.sheet?.registerDescriptionId(this.resolvedId()));
680
+ inject(DestroyRef).onDestroy(() => this.sheet?.unregisterDescriptionId(this.resolvedId()));
681
+ }
682
+ static ɵfac = i0.ɵɵngDeclareFactory({
683
+ minVersion: "12.0.0",
684
+ version: "22.2.0",
685
+ ngImport: i0,
686
+ type: SheetDescriptionComponent,
687
+ deps: [],
688
+ target: i0.ɵɵFactoryTarget.Component
689
+ });
690
+ static ɵcmp = i0.ɵɵngDeclareComponent({
691
+ minVersion: "17.1.0",
692
+ version: "22.2.0",
693
+ type: SheetDescriptionComponent,
694
+ isStandalone: true,
695
+ selector: "SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]",
696
+ inputs: {
697
+ id: {
698
+ classPropertyName: "id",
699
+ publicName: "id",
700
+ isSignal: true,
701
+ isRequired: false,
702
+ transformFunction: null
703
+ },
704
+ class: {
705
+ classPropertyName: "class",
706
+ publicName: "class",
707
+ isSignal: true,
708
+ isRequired: false,
709
+ transformFunction: null
710
+ }
711
+ },
712
+ host: { properties: {
713
+ "class": "classes()",
714
+ "attr.id": "resolvedId()"
715
+ } },
716
+ ngImport: i0,
717
+ template: `<ng-content />`,
718
+ isInline: true
719
+ });
720
+ };
721
+ i0.ɵɵngDeclareClassMetadata({
722
+ minVersion: "12.0.0",
723
+ version: "22.2.0",
724
+ ngImport: i0,
725
+ type: SheetDescriptionComponent,
726
+ decorators: [{
727
+ type: Component,
728
+ args: [{
729
+ selector: "SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]",
730
+ host: {
731
+ "[class]": "classes()",
732
+ "[attr.id]": "resolvedId()"
733
+ },
734
+ template: `<ng-content />`
735
+ }]
736
+ }],
737
+ ctorParameters: () => [],
738
+ propDecorators: {
739
+ id: [{
740
+ type: i0.Input,
741
+ args: [{
742
+ isSignal: true,
743
+ alias: "id",
744
+ required: false
745
+ }]
746
+ }],
747
+ class: [{
748
+ type: i0.Input,
749
+ args: [{
750
+ isSignal: true,
751
+ alias: "class",
752
+ required: false
753
+ }]
754
+ }]
755
+ }
756
+ });
757
+ var SheetContentComponent = class SheetContentComponent {
758
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
759
+ classes = computed(() => cn("flex-1 overflow-auto", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
760
+ static ɵfac = i0.ɵɵngDeclareFactory({
761
+ minVersion: "12.0.0",
762
+ version: "22.2.0",
763
+ ngImport: i0,
764
+ type: SheetContentComponent,
765
+ deps: [],
766
+ target: i0.ɵɵFactoryTarget.Component
767
+ });
768
+ static ɵcmp = i0.ɵɵngDeclareComponent({
769
+ minVersion: "17.1.0",
770
+ version: "22.2.0",
771
+ type: SheetContentComponent,
772
+ isStandalone: true,
773
+ selector: "SheetContent, DrawerContent",
774
+ inputs: { class: {
775
+ classPropertyName: "class",
776
+ publicName: "class",
777
+ isSignal: true,
778
+ isRequired: false,
779
+ transformFunction: null
780
+ } },
781
+ host: { properties: { "class": "classes()" } },
782
+ ngImport: i0,
783
+ template: `<ng-content />`,
784
+ isInline: true
785
+ });
786
+ };
787
+ i0.ɵɵngDeclareClassMetadata({
788
+ minVersion: "12.0.0",
789
+ version: "22.2.0",
790
+ ngImport: i0,
791
+ type: SheetContentComponent,
792
+ decorators: [{
793
+ type: Component,
794
+ args: [{
795
+ selector: "SheetContent, DrawerContent",
796
+ host: { "[class]": "classes()" },
797
+ template: `<ng-content />`
798
+ }]
799
+ }],
800
+ propDecorators: { class: [{
801
+ type: i0.Input,
802
+ args: [{
803
+ isSignal: true,
804
+ alias: "class",
805
+ required: false
806
+ }]
807
+ }] }
808
+ });
809
+ var SheetFooterComponent = class SheetFooterComponent {
810
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
811
+ classes = computed(() => cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
812
+ static ɵfac = i0.ɵɵngDeclareFactory({
813
+ minVersion: "12.0.0",
814
+ version: "22.2.0",
815
+ ngImport: i0,
816
+ type: SheetFooterComponent,
817
+ deps: [],
818
+ target: i0.ɵɵFactoryTarget.Component
819
+ });
820
+ static ɵcmp = i0.ɵɵngDeclareComponent({
821
+ minVersion: "17.1.0",
822
+ version: "22.2.0",
823
+ type: SheetFooterComponent,
824
+ isStandalone: true,
825
+ selector: "SheetFooter, DrawerFooter",
826
+ inputs: { class: {
827
+ classPropertyName: "class",
828
+ publicName: "class",
829
+ isSignal: true,
830
+ isRequired: false,
831
+ transformFunction: null
832
+ } },
833
+ host: { properties: { "class": "classes()" } },
834
+ ngImport: i0,
835
+ template: `<ng-content />`,
836
+ isInline: true
837
+ });
838
+ };
839
+ i0.ɵɵngDeclareClassMetadata({
840
+ minVersion: "12.0.0",
841
+ version: "22.2.0",
842
+ ngImport: i0,
843
+ type: SheetFooterComponent,
844
+ decorators: [{
845
+ type: Component,
846
+ args: [{
847
+ selector: "SheetFooter, DrawerFooter",
848
+ host: { "[class]": "classes()" },
849
+ template: `<ng-content />`
850
+ }]
851
+ }],
852
+ propDecorators: { class: [{
853
+ type: i0.Input,
854
+ args: [{
855
+ isSignal: true,
856
+ alias: "class",
857
+ required: false
858
+ }]
859
+ }] }
860
+ });
861
+ export { SheetCloseDirective, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetTitleComponent };