@frame-ui-ng/components 0.4.0-beta.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/confirm-popover/src/styles/confirm-popover.css +20 -0
  2. package/drag-drop/src/styles/_vars.css +28 -0
  3. package/drag-drop/src/styles/drag-drop.css +132 -0
  4. package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
  5. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  6. package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
  7. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  8. package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
  9. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
  10. package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
  11. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  12. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
  13. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
  15. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  16. package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
  17. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-calendar.mjs +4 -0
  19. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
  21. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
  23. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
  25. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
  27. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-combobox.mjs +66 -18
  29. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
  31. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +3 -0
  33. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
  35. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
  36. package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
  37. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
  39. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
  41. package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +73 -36
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
  47. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
  49. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
  51. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-input-otp.mjs +5 -0
  53. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
  55. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
  57. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
  59. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-modal.mjs +128 -114
  61. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
  63. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-pagination.mjs +8 -0
  65. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
  67. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-progress.mjs +2 -0
  69. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
  71. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-resizable.mjs +6 -0
  73. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
  75. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
  77. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-sheet.mjs +99 -88
  79. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components-sidebar.mjs +27 -12
  81. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  82. package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
  83. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
  84. package/fesm2022/frame-ui-ng-components-slider.mjs +29 -16
  85. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  86. package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
  87. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
  88. package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
  89. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
  90. package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
  91. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  92. package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
  93. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  94. package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
  95. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
  96. package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
  97. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  98. package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
  99. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
  100. package/fesm2022/frame-ui-ng-components-tooltip.mjs +30 -25
  101. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  102. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +26 -8
  103. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  104. package/fesm2022/frame-ui-ng-components.mjs +1387 -552
  105. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  106. package/package.json +10 -2
  107. package/popover/src/styles/popover.css +106 -101
  108. package/src/styles/components.css +6 -4
  109. package/styles/components.css +6 -4
  110. package/styles.css +6 -4
  111. package/types/frame-ui-ng-components-accordion.d.ts +11 -4
  112. package/types/frame-ui-ng-components-alert.d.ts +4 -0
  113. package/types/frame-ui-ng-components-avatar.d.ts +7 -0
  114. package/types/frame-ui-ng-components-badge.d.ts +4 -0
  115. package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
  116. package/types/frame-ui-ng-components-button-group.d.ts +1 -0
  117. package/types/frame-ui-ng-components-button.d.ts +5 -0
  118. package/types/frame-ui-ng-components-calendar.d.ts +1 -0
  119. package/types/frame-ui-ng-components-card.d.ts +8 -3
  120. package/types/frame-ui-ng-components-carousel.d.ts +11 -2
  121. package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
  122. package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
  123. package/types/frame-ui-ng-components-combobox.d.ts +32 -3
  124. package/types/frame-ui-ng-components-command.d.ts +26 -4
  125. package/types/frame-ui-ng-components-confirm-modal.d.ts +2 -0
  126. package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
  127. package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
  128. package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
  129. package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
  130. package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
  131. package/types/frame-ui-ng-components-empty.d.ts +6 -0
  132. package/types/frame-ui-ng-components-field.d.ts +9 -0
  133. package/types/frame-ui-ng-components-forms.d.ts +1 -0
  134. package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
  135. package/types/frame-ui-ng-components-input-otp.d.ts +4 -0
  136. package/types/frame-ui-ng-components-input.d.ts +13 -0
  137. package/types/frame-ui-ng-components-item.d.ts +10 -0
  138. package/types/frame-ui-ng-components-menubar.d.ts +15 -0
  139. package/types/frame-ui-ng-components-modal.d.ts +12 -0
  140. package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
  141. package/types/frame-ui-ng-components-pagination.d.ts +8 -0
  142. package/types/frame-ui-ng-components-popover.d.ts +14 -2
  143. package/types/frame-ui-ng-components-progress.d.ts +2 -0
  144. package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
  145. package/types/frame-ui-ng-components-resizable.d.ts +3 -0
  146. package/types/frame-ui-ng-components-select.d.ts +23 -2
  147. package/types/frame-ui-ng-components-separator.d.ts +1 -0
  148. package/types/frame-ui-ng-components-sheet.d.ts +11 -0
  149. package/types/frame-ui-ng-components-sidebar.d.ts +21 -0
  150. package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
  151. package/types/frame-ui-ng-components-slider.d.ts +5 -2
  152. package/types/frame-ui-ng-components-spinner.d.ts +1 -0
  153. package/types/frame-ui-ng-components-switch.d.ts +6 -0
  154. package/types/frame-ui-ng-components-table.d.ts +26 -0
  155. package/types/frame-ui-ng-components-tabs.d.ts +4 -0
  156. package/types/frame-ui-ng-components-textarea.d.ts +1 -0
  157. package/types/frame-ui-ng-components-toast.d.ts +2 -0
  158. package/types/frame-ui-ng-components-toggle.d.ts +8 -2
  159. package/types/frame-ui-ng-components-tooltip.d.ts +6 -2
  160. package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
  161. package/types/frame-ui-ng-components.d.ts +492 -76
@@ -5,6 +5,7 @@ import { NgComponentOutlet } from '@angular/common';
5
5
  import { FrButton, FrButtonLabel } from '@frame-ui-ng/components/button';
6
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
7
 
8
+ /** Content slot for sheet. */
8
9
  class FrSheetContent {
9
10
  templateRef = inject((TemplateRef));
10
11
  ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
@@ -61,6 +62,7 @@ const FR_SHEET_SIDES = ['top', 'right', 'bottom', 'left'];
61
62
  function coerceSheetSide(value) {
62
63
  return value === 'top' || value === 'bottom' || value === 'left' ? value : 'right';
63
64
  }
65
+ /** Close control for sheet. */
64
66
  class FrSheetClose {
65
67
  dialogRef = inject(DialogRef, { optional: true });
66
68
  result = input(undefined, { ...(ngDevMode ? { debugName: "result" } : /* istanbul ignore next */ {}), alias: 'frSheetClose' });
@@ -80,6 +82,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
80
82
  },
81
83
  }]
82
84
  }], propDecorators: { result: [{ type: i0.Input, args: [{ isSignal: true, alias: "frSheetClose", required: false }] }] } });
85
+ /** Panel slot for sheet. */
83
86
  class FrSheetPanel {
84
87
  dialogRef = inject(DialogRef, { optional: true });
85
88
  scrollable = input(false, { ...(ngDevMode ? { debugName: "scrollable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
@@ -117,6 +120,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
117
120
  `,
118
121
  }]
119
122
  }], propDecorators: { scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], showCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCloseButton", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }] } });
123
+ /** Header slot for sheet. */
120
124
  class FrSheetHeader {
121
125
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
122
126
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSheetHeader, isStandalone: true, selector: "[frSheetHeader], frame-sheet-header", host: { classAttribute: "frame-sheet__header" }, ngImport: i0 });
@@ -130,6 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
130
134
  },
131
135
  }]
132
136
  }] });
137
+ /** Body slot for sheet. */
133
138
  class FrSheetBody {
134
139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetBody, deps: [], target: i0.ɵɵFactoryTarget.Directive });
135
140
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSheetBody, isStandalone: true, selector: "[frSheetBody], frame-sheet-body", host: { classAttribute: "frame-sheet__body" }, ngImport: i0 });
@@ -143,6 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
143
148
  },
144
149
  }]
145
150
  }] });
151
+ /** Footer slot for sheet. */
146
152
  class FrSheetFooter {
147
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
148
154
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSheetFooter, isStandalone: true, selector: "[frSheetFooter], frame-sheet-footer", host: { classAttribute: "frame-sheet__footer" }, ngImport: i0 });
@@ -156,6 +162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
156
162
  },
157
163
  }]
158
164
  }] });
165
+ /** Title slot for sheet. */
159
166
  class FrSheetTitle {
160
167
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
161
168
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSheetTitle, isStandalone: true, selector: "[frSheetTitle], frame-sheet-title", host: { classAttribute: "frame-sheet__title" }, ngImport: i0 });
@@ -169,6 +176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
169
176
  },
170
177
  }]
171
178
  }] });
179
+ /** Description slot for sheet. */
172
180
  class FrSheetDescription {
173
181
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
174
182
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSheetDescription, isStandalone: true, selector: "[frSheetDescription], frame-sheet-description", host: { classAttribute: "frame-sheet__description" }, ngImport: i0 });
@@ -185,6 +193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
185
193
 
186
194
  const FR_SHEET_DATA = DIALOG_DATA;
187
195
 
196
+ /** Default shell for sheet content, title, and footer actions. */
188
197
  class FrSheetShell {
189
198
  dialogRef = inject((DialogRef));
190
199
  injector = inject(Injector);
@@ -204,50 +213,50 @@ class FrSheetShell {
204
213
  }
205
214
  }
206
215
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetShell, deps: [], target: i0.ɵɵFactoryTarget.Component });
207
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrSheetShell, isStandalone: true, selector: "frame-sheet-shell", ngImport: i0, template: `
208
- <div
209
- frSheetPanel
210
- [side]="options.side ?? 'right'"
211
- [showCloseButton]="options.showCloseButton ?? true"
212
- [scrollable]="options.scrollable ?? false"
213
- >
214
- @if (options.title || options.description) {
215
- <div frSheetHeader>
216
- @if (options.title) {
217
- <h2 frSheetTitle>{{ options.title }}</h2>
218
- }
219
-
220
- @if (options.description) {
221
- <p frSheetDescription>{{ options.description }}</p>
222
- }
223
- </div>
224
- }
225
-
226
- <div frSheetBody>
227
- <ng-container
228
- [ngComponentOutlet]="options.bodyComponent"
229
- [ngComponentOutletInputs]="options.bodyInputs ?? {}"
230
- [ngComponentOutletInjector]="bodyInjector"
231
- />
232
- </div>
233
-
234
- @if (options.footerActions?.length) {
235
- <div frSheetFooter>
236
- @for (action of options.footerActions; track action.label) {
237
- <button
238
- frButton
239
- type="button"
240
- [appearance]="action.appearance ?? 'primary'"
241
- [disabled]="action.disabled ?? false"
242
- [attr.aria-label]="action.ariaLabel ?? null"
243
- (click)="handleAction(action)"
244
- >
245
- <span frButtonLabel>{{ action.label }}</span>
246
- </button>
247
- }
248
- </div>
249
- }
250
- </div>
216
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrSheetShell, isStandalone: true, selector: "frame-sheet-shell", ngImport: i0, template: `
217
+ <div
218
+ frSheetPanel
219
+ [side]="options.side ?? 'right'"
220
+ [showCloseButton]="options.showCloseButton ?? true"
221
+ [scrollable]="options.scrollable ?? false"
222
+ >
223
+ @if (options.title || options.description) {
224
+ <div frSheetHeader>
225
+ @if (options.title) {
226
+ <h2 frSheetTitle>{{ options.title }}</h2>
227
+ }
228
+
229
+ @if (options.description) {
230
+ <p frSheetDescription>{{ options.description }}</p>
231
+ }
232
+ </div>
233
+ }
234
+
235
+ <div frSheetBody>
236
+ <ng-container
237
+ [ngComponentOutlet]="options.bodyComponent"
238
+ [ngComponentOutletInputs]="options.bodyInputs ?? {}"
239
+ [ngComponentOutletInjector]="bodyInjector"
240
+ />
241
+ </div>
242
+
243
+ @if (options.footerActions?.length) {
244
+ <div frSheetFooter>
245
+ @for (action of options.footerActions; track action.label) {
246
+ <button
247
+ frButton
248
+ type="button"
249
+ [appearance]="action.appearance ?? 'primary'"
250
+ [disabled]="action.disabled ?? false"
251
+ [attr.aria-label]="action.ariaLabel ?? null"
252
+ (click)="handleAction(action)"
253
+ >
254
+ <span frButtonLabel>{{ action.label }}</span>
255
+ </button>
256
+ }
257
+ </div>
258
+ }
259
+ </div>
251
260
  `, isInline: true, dependencies: [{ kind: "directive", type: FrButton, selector: "a[frButton], button[frButton]", inputs: ["appearance", "disabled", "loading", "loadingDisplay", "radius", "size"] }, { kind: "directive", type: FrButtonLabel, selector: "[frButtonLabel]" }, { kind: "directive", type: FrSheetBody, selector: "[frSheetBody], frame-sheet-body" }, { kind: "directive", type: FrSheetDescription, selector: "[frSheetDescription], frame-sheet-description" }, { kind: "directive", type: FrSheetFooter, selector: "[frSheetFooter], frame-sheet-footer" }, { kind: "directive", type: FrSheetHeader, selector: "[frSheetHeader], frame-sheet-header" }, { kind: "component", type: FrSheetPanel, selector: "[frSheetPanel], frame-sheet-panel", inputs: ["scrollable", "showCloseButton", "side"] }, { kind: "directive", type: FrSheetTitle, selector: "[frSheetTitle], frame-sheet-title" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }] });
252
261
  }
253
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSheetShell, decorators: [{
@@ -265,56 +274,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
265
274
  FrSheetTitle,
266
275
  NgComponentOutlet,
267
276
  ],
268
- template: `
269
- <div
270
- frSheetPanel
271
- [side]="options.side ?? 'right'"
272
- [showCloseButton]="options.showCloseButton ?? true"
273
- [scrollable]="options.scrollable ?? false"
274
- >
275
- @if (options.title || options.description) {
276
- <div frSheetHeader>
277
- @if (options.title) {
278
- <h2 frSheetTitle>{{ options.title }}</h2>
279
- }
280
-
281
- @if (options.description) {
282
- <p frSheetDescription>{{ options.description }}</p>
283
- }
284
- </div>
285
- }
286
-
287
- <div frSheetBody>
288
- <ng-container
289
- [ngComponentOutlet]="options.bodyComponent"
290
- [ngComponentOutletInputs]="options.bodyInputs ?? {}"
291
- [ngComponentOutletInjector]="bodyInjector"
292
- />
293
- </div>
294
-
295
- @if (options.footerActions?.length) {
296
- <div frSheetFooter>
297
- @for (action of options.footerActions; track action.label) {
298
- <button
299
- frButton
300
- type="button"
301
- [appearance]="action.appearance ?? 'primary'"
302
- [disabled]="action.disabled ?? false"
303
- [attr.aria-label]="action.ariaLabel ?? null"
304
- (click)="handleAction(action)"
305
- >
306
- <span frButtonLabel>{{ action.label }}</span>
307
- </button>
308
- }
309
- </div>
310
- }
311
- </div>
277
+ template: `
278
+ <div
279
+ frSheetPanel
280
+ [side]="options.side ?? 'right'"
281
+ [showCloseButton]="options.showCloseButton ?? true"
282
+ [scrollable]="options.scrollable ?? false"
283
+ >
284
+ @if (options.title || options.description) {
285
+ <div frSheetHeader>
286
+ @if (options.title) {
287
+ <h2 frSheetTitle>{{ options.title }}</h2>
288
+ }
289
+
290
+ @if (options.description) {
291
+ <p frSheetDescription>{{ options.description }}</p>
292
+ }
293
+ </div>
294
+ }
295
+
296
+ <div frSheetBody>
297
+ <ng-container
298
+ [ngComponentOutlet]="options.bodyComponent"
299
+ [ngComponentOutletInputs]="options.bodyInputs ?? {}"
300
+ [ngComponentOutletInjector]="bodyInjector"
301
+ />
302
+ </div>
303
+
304
+ @if (options.footerActions?.length) {
305
+ <div frSheetFooter>
306
+ @for (action of options.footerActions; track action.label) {
307
+ <button
308
+ frButton
309
+ type="button"
310
+ [appearance]="action.appearance ?? 'primary'"
311
+ [disabled]="action.disabled ?? false"
312
+ [attr.aria-label]="action.ariaLabel ?? null"
313
+ (click)="handleAction(action)"
314
+ >
315
+ <span frButtonLabel>{{ action.label }}</span>
316
+ </button>
317
+ }
318
+ </div>
319
+ }
320
+ </div>
312
321
  `,
313
322
  }]
314
323
  }] });
315
324
 
316
325
  const DEFAULT_PANEL_CLASS = 'frame-sheet__overlay-pane';
317
326
  const DEFAULT_BACKDROP_CLASS = 'frame-sheet__backdrop';
327
+ /** Service for opening sheet dialogs. */
318
328
  class FrSheetService {
319
329
  dialog = inject(Dialog);
320
330
  open(content, config = {}) {
@@ -387,6 +397,7 @@ function mergeClassList(classList, defaultClass) {
387
397
  return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));
388
398
  }
389
399
 
400
+ /** Trigger control for sheet. */
390
401
  class FrSheetTrigger {
391
402
  static CUSTOM_PROPERTY_PREFIX = '--frame-sheet-';
392
403
  destroyRef = inject(DestroyRef);
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-sheet.mjs","sources":["../../../projects/components/sheet/src/sheet.content.ts","../../../projects/components/sheet/src/sheet.primitives.ts","../../../projects/components/sheet/src/sheet.tokens.ts","../../../projects/components/sheet/src/sheet-shell.ts","../../../projects/components/sheet/src/sheet.service.ts","../../../projects/components/sheet/src/sheet.trigger.ts","../../../projects/components/sheet/sheet.module.ts","../../../projects/components/sheet/frame-ui-ng-components-sheet.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport {\n Directive,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\nimport { FrSheetConfig } from './sheet.service';\n\n@Directive({\n selector: 'ng-template[frSheetContent]',\n exportAs: 'frSheetContent',\n})\nexport class FrSheetContent {\n readonly templateRef = inject(TemplateRef<unknown>);\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\n readonly ariaDescribedBy = input<string | null>(null, { alias: 'aria-describedby' });\n readonly backdropClass = input<string | string[] | null>(null);\n readonly closeOnDestroy = input(true, { transform: booleanAttribute });\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\n readonly direction = input<Direction | null>(null);\n readonly disableClose = input(false, { transform: booleanAttribute });\n readonly height = input<string | null>(null);\n readonly id = input<string | null>(null);\n readonly maxHeight = input<string | null>(null);\n readonly maxWidth = input<string | null>(null);\n readonly minHeight = input<string | null>(null);\n readonly minWidth = input<string | null>(null);\n readonly panelClass = input<string | string[] | null>(null);\n readonly role = input<'dialog' | 'alertdialog'>('dialog');\n readonly width = input<string | null>(null);\n\n buildConfig(viewContainerRef: ViewContainerRef): FrSheetConfig {\n return {\n ariaLabel: this.ariaLabel() ?? undefined,\n ariaLabelledBy: this.ariaLabelledBy() ?? undefined,\n ariaDescribedBy: this.ariaDescribedBy() ?? undefined,\n backdropClass: this.backdropClass() ?? undefined,\n closeOnDestroy: this.closeOnDestroy(),\n closeOnNavigation: this.closeOnNavigation(),\n direction: this.direction() ?? undefined,\n disableClose: this.disableClose(),\n height: this.height() ?? undefined,\n id: this.id() ?? undefined,\n maxHeight: this.maxHeight() ?? undefined,\n maxWidth: this.maxWidth() ?? undefined,\n minHeight: this.minHeight() ?? undefined,\n minWidth: this.minWidth() ?? undefined,\n panelClass: this.panelClass() ?? undefined,\n role: this.role(),\n viewContainerRef,\n width: this.width() ?? undefined,\n };\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\r\nimport { Component, Directive, booleanAttribute, inject, input } from '@angular/core';\r\n\r\nexport const FR_SHEET_SIDES = ['top', 'right', 'bottom', 'left'] as const;\r\nexport type FrSheetSide = (typeof FR_SHEET_SIDES)[number];\r\n\r\nfunction coerceSheetSide(value: unknown): FrSheetSide {\r\n return value === 'top' || value === 'bottom' || value === 'left' ? value : 'right';\r\n}\r\n\r\n@Directive({\r\n selector: '[frSheetClose]',\r\n host: {\r\n class: 'frame-sheet__close-control',\r\n '(click)': 'close()',\r\n },\r\n})\r\nexport class FrSheetClose {\r\n private readonly dialogRef = inject<DialogRef<unknown, unknown>>(DialogRef, { optional: true });\r\n readonly result = input<unknown>(undefined, { alias: 'frSheetClose' });\r\n\r\n close(): void {\r\n this.dialogRef?.close(this.result());\r\n }\r\n}\r\n\r\n@Component({\r\n selector: '[frSheetPanel], frame-sheet-panel',\r\n host: {\r\n class: 'frame-sheet__panel',\r\n '[attr.data-scrollable]': 'scrollable() ? \"\" : null',\r\n '[attr.data-side]': 'side()',\r\n },\r\n template: `\r\n <ng-content />\r\n @if (showCloseButton()) {\r\n <button class=\"frame-sheet__close\" type=\"button\" aria-label=\"Close sheet\" (click)=\"close()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n `,\r\n})\r\nexport class FrSheetPanel {\r\n private readonly dialogRef = inject<DialogRef<unknown, unknown>>(DialogRef, { optional: true });\r\n\r\n readonly scrollable = input(false, { transform: booleanAttribute });\r\n readonly showCloseButton = input(true, { transform: booleanAttribute });\r\n readonly side = input<FrSheetSide, unknown>('right', { transform: coerceSheetSide });\r\n\r\n close(): void {\r\n this.dialogRef?.close();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSheetHeader], frame-sheet-header',\r\n host: {\r\n class: 'frame-sheet__header',\r\n },\r\n})\r\nexport class FrSheetHeader {}\r\n\r\n@Directive({\r\n selector: '[frSheetBody], frame-sheet-body',\r\n host: {\r\n class: 'frame-sheet__body',\r\n },\r\n})\r\nexport class FrSheetBody {}\r\n\r\n@Directive({\r\n selector: '[frSheetFooter], frame-sheet-footer',\r\n host: {\r\n class: 'frame-sheet__footer',\r\n },\r\n})\r\nexport class FrSheetFooter {}\r\n\r\n@Directive({\r\n selector: '[frSheetTitle], frame-sheet-title',\r\n host: {\r\n class: 'frame-sheet__title',\r\n },\r\n})\r\nexport class FrSheetTitle {}\r\n\r\n@Directive({\r\n selector: '[frSheetDescription], frame-sheet-description',\r\n host: {\r\n class: 'frame-sheet__description',\r\n },\r\n})\r\nexport class FrSheetDescription {}\r\n","import { DIALOG_DATA } from '@angular/cdk/dialog';\n\nexport const FR_SHEET_DATA = DIALOG_DATA;\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { NgComponentOutlet } from '@angular/common';\nimport { Component, Injector, Type, inject } from '@angular/core';\n\nimport { FrButton, FrButtonAppearance, FrButtonLabel } from '@frame-ui-ng/components/button';\nimport {\n FrSheetBody,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetSide,\n FrSheetTitle,\n} from './sheet.primitives';\nimport { FR_SHEET_DATA } from './sheet.tokens';\n\nexport type FrSheetFooterAction = {\n appearance?: FrButtonAppearance;\n ariaLabel?: string;\n close?: boolean;\n disabled?: boolean;\n label: string;\n result?: unknown;\n};\n\nexport type FrSheetShellOptions = {\n bodyComponent: Type<unknown>;\n bodyData?: unknown;\n bodyInputs?: Record<string, unknown>;\n description?: string;\n footerActions?: FrSheetFooterAction[];\n scrollable?: boolean;\n showCloseButton?: boolean;\n side?: FrSheetSide;\n title?: string;\n};\n\n@Component({\n selector: 'frame-sheet-shell',\n imports: [\n FrButton,\n FrButtonLabel,\n FrSheetBody,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetTitle,\n NgComponentOutlet,\n ],\n template: `\n <div\n frSheetPanel\n [side]=\"options.side ?? 'right'\"\n [showCloseButton]=\"options.showCloseButton ?? true\"\n [scrollable]=\"options.scrollable ?? false\"\n >\n @if (options.title || options.description) {\n <div frSheetHeader>\n @if (options.title) {\n <h2 frSheetTitle>{{ options.title }}</h2>\n }\n\n @if (options.description) {\n <p frSheetDescription>{{ options.description }}</p>\n }\n </div>\n }\n\n <div frSheetBody>\n <ng-container\n [ngComponentOutlet]=\"options.bodyComponent\"\n [ngComponentOutletInputs]=\"options.bodyInputs ?? {}\"\n [ngComponentOutletInjector]=\"bodyInjector\"\n />\n </div>\n\n @if (options.footerActions?.length) {\n <div frSheetFooter>\n @for (action of options.footerActions; track action.label) {\n <button\n frButton\n type=\"button\"\n [appearance]=\"action.appearance ?? 'primary'\"\n [disabled]=\"action.disabled ?? false\"\n [attr.aria-label]=\"action.ariaLabel ?? null\"\n (click)=\"handleAction(action)\"\n >\n <span frButtonLabel>{{ action.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n `,\n})\nexport class FrSheetShell {\n private readonly dialogRef = inject(DialogRef<unknown>);\n private readonly injector = inject(Injector);\n readonly options = inject<FrSheetShellOptions>(DIALOG_DATA);\n readonly bodyInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: FR_SHEET_DATA,\n useValue: this.options.bodyData,\n },\n ],\n });\n\n handleAction(action: FrSheetFooterAction): void {\n if (action.close ?? true) {\n this.dialogRef.close(action.result);\n }\n }\n}\n\r\n","import { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef, Type, inject } from '@angular/core';\n\nimport { FrSheetSide } from './sheet.primitives';\nimport { FrSheetFooterAction, FrSheetShell, FrSheetShellOptions } from './sheet-shell';\n\nexport type FrSheetRef<Result = unknown, Component = unknown> = DialogRef<Result, Component>;\nexport type FrSheetConfig<Data = unknown, Result = unknown, Component = unknown> = DialogConfig<\n Data,\n DialogRef<Result, Component>\n> & {\n bodyData?: unknown;\n bodyInputs?: Record<string, unknown>;\n description?: string;\n footerActions?: FrSheetFooterAction[];\n scrollable?: boolean;\n showCloseButton?: boolean;\n side?: FrSheetSide;\n title?: string;\n};\n\nconst DEFAULT_PANEL_CLASS = 'frame-sheet__overlay-pane';\nconst DEFAULT_BACKDROP_CLASS = 'frame-sheet__backdrop';\n\n@Injectable({ providedIn: 'root' })\nexport class FrSheetService {\n private readonly dialog = inject(Dialog);\n\n open<Result = unknown, Data = unknown, Component = unknown>(\n content: ComponentType<Component>,\n config?: FrSheetConfig<Data, Result, Component>,\n ): FrSheetRef<Result, Component>;\n open<Result = unknown, Data = unknown, Context = unknown>(\n content: TemplateRef<Context>,\n config?: FrSheetConfig<Data, Result, Context>,\n ): FrSheetRef<Result, Context>;\n open<Result = unknown, Data = unknown, ComponentOrContext = unknown>(\n content: ComponentType<ComponentOrContext> | TemplateRef<ComponentOrContext>,\n config: FrSheetConfig<Data, Result, ComponentOrContext> = {},\n ): FrSheetRef<Result, ComponentOrContext> {\n if (isComponentType(content) && hasShellOptions(config as FrSheetConfig)) {\n const shellConfig: DialogConfig<FrSheetShellOptions, DialogRef<Result, FrSheetShell>> = {\n ...(withoutShellOptions(config) as unknown as DialogConfig<\n FrSheetShellOptions,\n DialogRef<Result, FrSheetShell>\n >),\n data: {\n bodyComponent: content as Type<unknown>,\n bodyData: config.bodyData ?? config.data,\n bodyInputs: config.bodyInputs,\n description: config.description,\n footerActions: config.footerActions,\n scrollable: config.scrollable,\n showCloseButton: config.showCloseButton,\n side: config.side,\n title: config.title,\n },\n };\n\n return this.dialog.open<Result, FrSheetShellOptions, FrSheetShell>(\n FrSheetShell,\n this.withDefaultClasses(shellConfig),\n ) as unknown as FrSheetRef<Result, ComponentOrContext>;\n }\n\n return this.dialog.open<Result, Data, ComponentOrContext>(\n content,\n this.withDefaultClasses(config),\n );\n }\n\n closeAll(): void {\n this.dialog.closeAll();\n }\n\n private withDefaultClasses<Data, Result, Component>(\n config: DialogConfig<Data, DialogRef<Result, Component>>,\n ): DialogConfig<Data, DialogRef<Result, Component>> {\n return {\n ariaModal: true,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n ...config,\n maxHeight: config.maxHeight ?? '100dvh',\n maxWidth: config.maxWidth ?? '100vw',\n panelClass: mergeClassList(config.panelClass, DEFAULT_PANEL_CLASS),\n backdropClass: mergeClassList(config.backdropClass, DEFAULT_BACKDROP_CLASS),\n };\n }\n}\n\nfunction isComponentType(value: unknown): value is ComponentType<unknown> {\n return typeof value === 'function';\n}\n\nfunction hasShellOptions(config: FrSheetConfig): boolean {\n return [\n config.bodyData,\n config.bodyInputs,\n config.description,\n config.footerActions,\n config.scrollable,\n config.showCloseButton,\n config.side,\n config.title,\n ].some((value) => value !== undefined);\n}\n\nfunction withoutShellOptions<Data, Result, Component>(\n config: FrSheetConfig<Data, Result, Component>,\n): DialogConfig<Data, DialogRef<Result, Component>> {\n const {\n bodyData: _bodyData,\n bodyInputs: _bodyInputs,\n description: _description,\n footerActions: _footerActions,\n scrollable: _scrollable,\n showCloseButton: _showCloseButton,\n side: _side,\n title: _title,\n ...dialogConfig\n } = config;\n\n return dialogConfig;\n}\n\nfunction mergeClassList(\n classList: string | string[] | undefined,\n defaultClass: string,\n): string[] {\n const classes = Array.isArray(classList)\n ? classList\n : classList\n ? classList.split(/\\s+/)\n : [];\n\n return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { FrSheetContent } from './sheet.content';\nimport { FrSheetRef, FrSheetService } from './sheet.service';\n\n@Directive({\n selector: '[frSheetTrigger]',\n host: {\n class: 'frame-sheet__trigger',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '(click)': 'open()',\n },\n})\nexport class FrSheetTrigger {\n private static readonly CUSTOM_PROPERTY_PREFIX = '--frame-sheet-';\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly sheet = inject(FrSheetService);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private sheetRef: FrSheetRef | null = null;\n\n readonly content = input<FrSheetContent | TemplateRef<unknown> | null>(null, {\n alias: 'frSheetTrigger',\n });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly opened = output<FrSheetRef>();\n readonly closed = output<unknown>();\n readonly isOpen = signal(false);\n\n open(): void {\n if (this.disabled() || this.isOpen()) {\n return;\n }\n\n const content = this.content();\n\n if (!content) {\n return;\n }\n\n const templateRef = content instanceof FrSheetContent ? content.templateRef : content;\n const config =\n content instanceof FrSheetContent\n ? content.buildConfig(this.viewContainerRef)\n : { viewContainerRef: this.viewContainerRef };\n\n this.sheetRef = this.sheet.open(templateRef, config);\n this.isOpen.set(true);\n this.opened.emit(this.sheetRef);\n queueMicrotask(() => this.syncCustomPropertiesToOverlay());\n\n this.sheetRef.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((result) => {\n this.isOpen.set(false);\n this.sheetRef = null;\n this.closed.emit(result);\n });\n }\n\n private syncCustomPropertiesToOverlay(): void {\n const overlayElement = this.sheetRef?.overlayRef.overlayElement ?? null;\n\n if (!overlayElement) {\n return;\n }\n\n const sheetPanel = overlayElement.querySelector<HTMLElement>('.frame-sheet__panel') ?? overlayElement;\n const sourceStyles = getComputedStyle(this.elementRef.nativeElement);\n\n for (let index = 0; index < sourceStyles.length; index += 1) {\n const propertyName = sourceStyles.item(index);\n\n if (!propertyName.startsWith(FrSheetTrigger.CUSTOM_PROPERTY_PREFIX)) {\n continue;\n }\n\n const propertyValue = sourceStyles.getPropertyValue(propertyName);\n\n overlayElement.style.setProperty(propertyName, propertyValue);\n sheetPanel.style.setProperty(propertyName, propertyValue);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n} from './src/sheet';\n\n@NgModule({\n imports: [\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n ],\n exports: [\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n ],\n})\nexport class FrSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-ui-ng-components-sheet.mjs","sources":["../../../projects/components/sheet/src/sheet.content.ts","../../../projects/components/sheet/src/sheet.primitives.ts","../../../projects/components/sheet/src/sheet.tokens.ts","../../../projects/components/sheet/src/sheet-shell.ts","../../../projects/components/sheet/src/sheet.service.ts","../../../projects/components/sheet/src/sheet.trigger.ts","../../../projects/components/sheet/sheet.module.ts","../../../projects/components/sheet/frame-ui-ng-components-sheet.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\r\nimport {\r\n Directive,\r\n TemplateRef,\r\n ViewContainerRef,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\n\r\nimport { FrSheetConfig } from './sheet.service';\r\n\r\n/** Content slot for sheet. */\r\n@Directive({\r\n selector: 'ng-template[frSheetContent]',\r\n exportAs: 'frSheetContent',\r\n})\r\nexport class FrSheetContent {\r\n readonly templateRef = inject(TemplateRef<unknown>);\r\n\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaLabelledBy = input<string | null>(null, { alias: 'aria-labelledby' });\r\n readonly ariaDescribedBy = input<string | null>(null, { alias: 'aria-describedby' });\r\n readonly backdropClass = input<string | string[] | null>(null);\r\n readonly closeOnDestroy = input(true, { transform: booleanAttribute });\r\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\r\n readonly direction = input<Direction | null>(null);\r\n readonly disableClose = input(false, { transform: booleanAttribute });\r\n readonly height = input<string | null>(null);\r\n readonly id = input<string | null>(null);\r\n readonly maxHeight = input<string | null>(null);\r\n readonly maxWidth = input<string | null>(null);\r\n readonly minHeight = input<string | null>(null);\r\n readonly minWidth = input<string | null>(null);\r\n readonly panelClass = input<string | string[] | null>(null);\r\n readonly role = input<'dialog' | 'alertdialog'>('dialog');\r\n readonly width = input<string | null>(null);\r\n\r\n buildConfig(viewContainerRef: ViewContainerRef): FrSheetConfig {\r\n return {\r\n ariaLabel: this.ariaLabel() ?? undefined,\r\n ariaLabelledBy: this.ariaLabelledBy() ?? undefined,\r\n ariaDescribedBy: this.ariaDescribedBy() ?? undefined,\r\n backdropClass: this.backdropClass() ?? undefined,\r\n closeOnDestroy: this.closeOnDestroy(),\r\n closeOnNavigation: this.closeOnNavigation(),\r\n direction: this.direction() ?? undefined,\r\n disableClose: this.disableClose(),\r\n height: this.height() ?? undefined,\r\n id: this.id() ?? undefined,\r\n maxHeight: this.maxHeight() ?? undefined,\r\n maxWidth: this.maxWidth() ?? undefined,\r\n minHeight: this.minHeight() ?? undefined,\r\n minWidth: this.minWidth() ?? undefined,\r\n panelClass: this.panelClass() ?? undefined,\r\n role: this.role(),\r\n viewContainerRef,\r\n width: this.width() ?? undefined,\r\n };\r\n }\r\n}\r\n","import { DialogRef } from '@angular/cdk/dialog';\r\nimport { Component, Directive, booleanAttribute, inject, input } from '@angular/core';\r\n\r\nexport const FR_SHEET_SIDES = ['top', 'right', 'bottom', 'left'] as const;\r\nexport type FrSheetSide = (typeof FR_SHEET_SIDES)[number];\r\n\r\nfunction coerceSheetSide(value: unknown): FrSheetSide {\r\n return value === 'top' || value === 'bottom' || value === 'left' ? value : 'right';\r\n}\r\n\r\n/** Close control for sheet. */\r\n@Directive({\r\n selector: '[frSheetClose]',\r\n host: {\r\n class: 'frame-sheet__close-control',\r\n '(click)': 'close()',\r\n },\r\n})\r\nexport class FrSheetClose {\r\n private readonly dialogRef = inject<DialogRef<unknown, unknown>>(DialogRef, { optional: true });\r\n readonly result = input<unknown>(undefined, { alias: 'frSheetClose' });\r\n\r\n close(): void {\r\n this.dialogRef?.close(this.result());\r\n }\r\n}\r\n\r\n/** Panel slot for sheet. */\r\n@Component({\r\n selector: '[frSheetPanel], frame-sheet-panel',\r\n host: {\r\n class: 'frame-sheet__panel',\r\n '[attr.data-scrollable]': 'scrollable() ? \"\" : null',\r\n '[attr.data-side]': 'side()',\r\n },\r\n template: `\r\n <ng-content />\r\n @if (showCloseButton()) {\r\n <button class=\"frame-sheet__close\" type=\"button\" aria-label=\"Close sheet\" (click)=\"close()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n `,\r\n})\r\nexport class FrSheetPanel {\r\n private readonly dialogRef = inject<DialogRef<unknown, unknown>>(DialogRef, { optional: true });\r\n\r\n readonly scrollable = input(false, { transform: booleanAttribute });\r\n readonly showCloseButton = input(true, { transform: booleanAttribute });\r\n readonly side = input<FrSheetSide, unknown>('right', { transform: coerceSheetSide });\r\n\r\n close(): void {\r\n this.dialogRef?.close();\r\n }\r\n}\r\n\r\n/** Header slot for sheet. */\r\n@Directive({\r\n selector: '[frSheetHeader], frame-sheet-header',\r\n host: {\r\n class: 'frame-sheet__header',\r\n },\r\n})\r\nexport class FrSheetHeader {}\r\n\r\n/** Body slot for sheet. */\r\n@Directive({\r\n selector: '[frSheetBody], frame-sheet-body',\r\n host: {\r\n class: 'frame-sheet__body',\r\n },\r\n})\r\nexport class FrSheetBody {}\r\n\r\n/** Footer slot for sheet. */\r\n@Directive({\r\n selector: '[frSheetFooter], frame-sheet-footer',\r\n host: {\r\n class: 'frame-sheet__footer',\r\n },\r\n})\r\nexport class FrSheetFooter {}\r\n\r\n/** Title slot for sheet. */\r\n@Directive({\r\n selector: '[frSheetTitle], frame-sheet-title',\r\n host: {\r\n class: 'frame-sheet__title',\r\n },\r\n})\r\nexport class FrSheetTitle {}\r\n\r\n/** Description slot for sheet. */\r\n@Directive({\r\n selector: '[frSheetDescription], frame-sheet-description',\r\n host: {\r\n class: 'frame-sheet__description',\r\n },\r\n})\r\nexport class FrSheetDescription {}\r\n","import { DIALOG_DATA } from '@angular/cdk/dialog';\n\nexport const FR_SHEET_DATA = DIALOG_DATA;\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\r\nimport { NgComponentOutlet } from '@angular/common';\r\nimport { Component, Injector, Type, inject } from '@angular/core';\r\n\r\nimport { FrButton, FrButtonAppearance, FrButtonLabel } from '@frame-ui-ng/components/button';\r\nimport {\r\n FrSheetBody,\r\n FrSheetDescription,\r\n FrSheetFooter,\r\n FrSheetHeader,\r\n FrSheetPanel,\r\n FrSheetSide,\r\n FrSheetTitle,\r\n} from './sheet.primitives';\r\nimport { FR_SHEET_DATA } from './sheet.tokens';\r\n\r\nexport type FrSheetFooterAction = {\r\n appearance?: FrButtonAppearance;\r\n ariaLabel?: string;\r\n close?: boolean;\r\n disabled?: boolean;\r\n label: string;\r\n result?: unknown;\r\n};\r\n\r\nexport type FrSheetShellOptions = {\r\n bodyComponent: Type<unknown>;\r\n bodyData?: unknown;\r\n bodyInputs?: Record<string, unknown>;\r\n description?: string;\r\n footerActions?: FrSheetFooterAction[];\r\n scrollable?: boolean;\r\n showCloseButton?: boolean;\r\n side?: FrSheetSide;\r\n title?: string;\r\n};\r\n\r\n/** Default shell for sheet content, title, and footer actions. */\r\n@Component({\r\n selector: 'frame-sheet-shell',\r\n imports: [\r\n FrButton,\r\n FrButtonLabel,\r\n FrSheetBody,\r\n FrSheetDescription,\r\n FrSheetFooter,\r\n FrSheetHeader,\r\n FrSheetPanel,\r\n FrSheetTitle,\r\n NgComponentOutlet,\r\n ],\r\n template: `\r\n <div\r\n frSheetPanel\r\n [side]=\"options.side ?? 'right'\"\r\n [showCloseButton]=\"options.showCloseButton ?? true\"\r\n [scrollable]=\"options.scrollable ?? false\"\r\n >\r\n @if (options.title || options.description) {\r\n <div frSheetHeader>\r\n @if (options.title) {\r\n <h2 frSheetTitle>{{ options.title }}</h2>\r\n }\r\n\r\n @if (options.description) {\r\n <p frSheetDescription>{{ options.description }}</p>\r\n }\r\n </div>\r\n }\r\n\r\n <div frSheetBody>\r\n <ng-container\r\n [ngComponentOutlet]=\"options.bodyComponent\"\r\n [ngComponentOutletInputs]=\"options.bodyInputs ?? {}\"\r\n [ngComponentOutletInjector]=\"bodyInjector\"\r\n />\r\n </div>\r\n\r\n @if (options.footerActions?.length) {\r\n <div frSheetFooter>\r\n @for (action of options.footerActions; track action.label) {\r\n <button\r\n frButton\r\n type=\"button\"\r\n [appearance]=\"action.appearance ?? 'primary'\"\r\n [disabled]=\"action.disabled ?? false\"\r\n [attr.aria-label]=\"action.ariaLabel ?? null\"\r\n (click)=\"handleAction(action)\"\r\n >\r\n <span frButtonLabel>{{ action.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class FrSheetShell {\r\n private readonly dialogRef = inject(DialogRef<unknown>);\r\n private readonly injector = inject(Injector);\r\n readonly options = inject<FrSheetShellOptions>(DIALOG_DATA);\r\n readonly bodyInjector = Injector.create({\r\n parent: this.injector,\r\n providers: [\r\n {\r\n provide: FR_SHEET_DATA,\r\n useValue: this.options.bodyData,\r\n },\r\n ],\r\n });\r\n\r\n handleAction(action: FrSheetFooterAction): void {\r\n if (action.close ?? true) {\r\n this.dialogRef.close(action.result);\r\n }\r\n }\r\n}\r\n\r\n\r\n","import { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { Injectable, TemplateRef, Type, inject } from '@angular/core';\r\n\r\nimport { FrSheetSide } from './sheet.primitives';\r\nimport { FrSheetFooterAction, FrSheetShell, FrSheetShellOptions } from './sheet-shell';\r\n\r\nexport type FrSheetRef<Result = unknown, Component = unknown> = DialogRef<Result, Component>;\r\nexport type FrSheetConfig<Data = unknown, Result = unknown, Component = unknown> = DialogConfig<\r\n Data,\r\n DialogRef<Result, Component>\r\n> & {\r\n bodyData?: unknown;\r\n bodyInputs?: Record<string, unknown>;\r\n description?: string;\r\n footerActions?: FrSheetFooterAction[];\r\n scrollable?: boolean;\r\n showCloseButton?: boolean;\r\n side?: FrSheetSide;\r\n title?: string;\r\n};\r\n\r\nconst DEFAULT_PANEL_CLASS = 'frame-sheet__overlay-pane';\r\nconst DEFAULT_BACKDROP_CLASS = 'frame-sheet__backdrop';\r\n\r\n/** Service for opening sheet dialogs. */\r\n@Injectable({ providedIn: 'root' })\r\nexport class FrSheetService {\r\n private readonly dialog = inject(Dialog);\r\n\r\n open<Result = unknown, Data = unknown, Component = unknown>(\r\n content: ComponentType<Component>,\r\n config?: FrSheetConfig<Data, Result, Component>,\r\n ): FrSheetRef<Result, Component>;\r\n open<Result = unknown, Data = unknown, Context = unknown>(\r\n content: TemplateRef<Context>,\r\n config?: FrSheetConfig<Data, Result, Context>,\r\n ): FrSheetRef<Result, Context>;\r\n open<Result = unknown, Data = unknown, ComponentOrContext = unknown>(\r\n content: ComponentType<ComponentOrContext> | TemplateRef<ComponentOrContext>,\r\n config: FrSheetConfig<Data, Result, ComponentOrContext> = {},\r\n ): FrSheetRef<Result, ComponentOrContext> {\r\n if (isComponentType(content) && hasShellOptions(config as FrSheetConfig)) {\r\n const shellConfig: DialogConfig<FrSheetShellOptions, DialogRef<Result, FrSheetShell>> = {\r\n ...(withoutShellOptions(config) as unknown as DialogConfig<\r\n FrSheetShellOptions,\r\n DialogRef<Result, FrSheetShell>\r\n >),\r\n data: {\r\n bodyComponent: content as Type<unknown>,\r\n bodyData: config.bodyData ?? config.data,\r\n bodyInputs: config.bodyInputs,\r\n description: config.description,\r\n footerActions: config.footerActions,\r\n scrollable: config.scrollable,\r\n showCloseButton: config.showCloseButton,\r\n side: config.side,\r\n title: config.title,\r\n },\r\n };\r\n\r\n return this.dialog.open<Result, FrSheetShellOptions, FrSheetShell>(\r\n FrSheetShell,\r\n this.withDefaultClasses(shellConfig),\r\n ) as unknown as FrSheetRef<Result, ComponentOrContext>;\r\n }\r\n\r\n return this.dialog.open<Result, Data, ComponentOrContext>(\r\n content,\r\n this.withDefaultClasses(config),\r\n );\r\n }\r\n\r\n closeAll(): void {\r\n this.dialog.closeAll();\r\n }\r\n\r\n private withDefaultClasses<Data, Result, Component>(\r\n config: DialogConfig<Data, DialogRef<Result, Component>>,\r\n ): DialogConfig<Data, DialogRef<Result, Component>> {\r\n return {\r\n ariaModal: true,\r\n autoFocus: 'first-tabbable',\r\n restoreFocus: true,\r\n ...config,\r\n maxHeight: config.maxHeight ?? '100dvh',\r\n maxWidth: config.maxWidth ?? '100vw',\r\n panelClass: mergeClassList(config.panelClass, DEFAULT_PANEL_CLASS),\r\n backdropClass: mergeClassList(config.backdropClass, DEFAULT_BACKDROP_CLASS),\r\n };\r\n }\r\n}\r\n\r\nfunction isComponentType(value: unknown): value is ComponentType<unknown> {\r\n return typeof value === 'function';\r\n}\r\n\r\nfunction hasShellOptions(config: FrSheetConfig): boolean {\r\n return [\r\n config.bodyData,\r\n config.bodyInputs,\r\n config.description,\r\n config.footerActions,\r\n config.scrollable,\r\n config.showCloseButton,\r\n config.side,\r\n config.title,\r\n ].some((value) => value !== undefined);\r\n}\r\n\r\nfunction withoutShellOptions<Data, Result, Component>(\r\n config: FrSheetConfig<Data, Result, Component>,\r\n): DialogConfig<Data, DialogRef<Result, Component>> {\r\n const {\r\n bodyData: _bodyData,\r\n bodyInputs: _bodyInputs,\r\n description: _description,\r\n footerActions: _footerActions,\r\n scrollable: _scrollable,\r\n showCloseButton: _showCloseButton,\r\n side: _side,\r\n title: _title,\r\n ...dialogConfig\r\n } = config;\r\n\r\n return dialogConfig;\r\n}\r\n\r\nfunction mergeClassList(\r\n classList: string | string[] | undefined,\r\n defaultClass: string,\r\n): string[] {\r\n const classes = Array.isArray(classList)\r\n ? classList\r\n : classList\r\n ? classList.split(/\\s+/)\r\n : [];\r\n\r\n return Array.from(new Set([defaultClass, ...classes].filter(Boolean)));\r\n}\r\n\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n TemplateRef,\r\n ViewContainerRef,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { FrSheetContent } from './sheet.content';\r\nimport { FrSheetRef, FrSheetService } from './sheet.service';\r\n\r\n/** Trigger control for sheet. */\r\n@Directive({\r\n selector: '[frSheetTrigger]',\r\n host: {\r\n class: 'frame-sheet__trigger',\r\n '[attr.aria-haspopup]': '\"dialog\"',\r\n '[attr.data-state]': 'isOpen() ? \"open\" : \"closed\"',\r\n '[attr.disabled]': 'disabled() ? \"\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '(click)': 'open()',\r\n },\r\n})\r\nexport class FrSheetTrigger {\r\n private static readonly CUSTOM_PROPERTY_PREFIX = '--frame-sheet-';\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly sheet = inject(FrSheetService);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private sheetRef: FrSheetRef | null = null;\r\n\r\n readonly content = input<FrSheetContent | TemplateRef<unknown> | null>(null, {\r\n alias: 'frSheetTrigger',\r\n });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly opened = output<FrSheetRef>();\r\n readonly closed = output<unknown>();\r\n readonly isOpen = signal(false);\r\n\r\n open(): void {\r\n if (this.disabled() || this.isOpen()) {\r\n return;\r\n }\r\n\r\n const content = this.content();\r\n\r\n if (!content) {\r\n return;\r\n }\r\n\r\n const templateRef = content instanceof FrSheetContent ? content.templateRef : content;\r\n const config =\r\n content instanceof FrSheetContent\r\n ? content.buildConfig(this.viewContainerRef)\r\n : { viewContainerRef: this.viewContainerRef };\r\n\r\n this.sheetRef = this.sheet.open(templateRef, config);\r\n this.isOpen.set(true);\r\n this.opened.emit(this.sheetRef);\r\n queueMicrotask(() => this.syncCustomPropertiesToOverlay());\r\n\r\n this.sheetRef.closed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((result) => {\r\n this.isOpen.set(false);\r\n this.sheetRef = null;\r\n this.closed.emit(result);\r\n });\r\n }\r\n\r\n private syncCustomPropertiesToOverlay(): void {\r\n const overlayElement = this.sheetRef?.overlayRef.overlayElement ?? null;\r\n\r\n if (!overlayElement) {\r\n return;\r\n }\r\n\r\n const sheetPanel = overlayElement.querySelector<HTMLElement>('.frame-sheet__panel') ?? overlayElement;\r\n const sourceStyles = getComputedStyle(this.elementRef.nativeElement);\r\n\r\n for (let index = 0; index < sourceStyles.length; index += 1) {\r\n const propertyName = sourceStyles.item(index);\r\n\r\n if (!propertyName.startsWith(FrSheetTrigger.CUSTOM_PROPERTY_PREFIX)) {\r\n continue;\r\n }\r\n\r\n const propertyValue = sourceStyles.getPropertyValue(propertyName);\r\n\r\n overlayElement.style.setProperty(propertyName, propertyValue);\r\n sheetPanel.style.setProperty(propertyName, propertyValue);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport {\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n} from './src/sheet';\n\n@NgModule({\n imports: [\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n ],\n exports: [\n FrSheetBody,\n FrSheetClose,\n FrSheetContent,\n FrSheetDescription,\n FrSheetFooter,\n FrSheetHeader,\n FrSheetPanel,\n FrSheetShell,\n FrSheetTitle,\n FrSheetTrigger,\n ],\n})\nexport class FrSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}