@ngstarter-ui/components 1.0.27 → 1.0.30

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 (230) hide show
  1. package/fesm2022/ngstarter-ui-components-action-required.mjs +2 -2
  2. package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -1
  3. package/fesm2022/ngstarter-ui-components-alert.mjs +2 -2
  4. package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -1
  5. package/fesm2022/ngstarter-ui-components-announcement.mjs +2 -2
  6. package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -1
  7. package/fesm2022/ngstarter-ui-components-autocomplete.mjs +2 -2
  8. package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -1
  9. package/fesm2022/ngstarter-ui-components-avatar.mjs +8 -8
  10. package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -1
  11. package/fesm2022/ngstarter-ui-components-badge.mjs +2 -2
  12. package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -1
  13. package/fesm2022/ngstarter-ui-components-block-loader.mjs +2 -2
  14. package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -1
  15. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +2 -2
  16. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -1
  17. package/fesm2022/ngstarter-ui-components-button-toggle.mjs +4 -4
  18. package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -1
  19. package/fesm2022/ngstarter-ui-components-button.mjs +2 -2
  20. package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -1
  21. package/fesm2022/ngstarter-ui-components-card.mjs +2 -2
  22. package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -1
  23. package/fesm2022/ngstarter-ui-components-checkbox.mjs +2 -2
  24. package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -1
  25. package/fesm2022/ngstarter-ui-components-chips.mjs +6 -6
  26. package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
  27. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +2 -2
  28. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -1
  29. package/fesm2022/ngstarter-ui-components-color-picker.mjs +2 -2
  30. package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -1
  31. package/fesm2022/ngstarter-ui-components-color-switcher.mjs +2 -2
  32. package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -1
  33. package/fesm2022/ngstarter-ui-components-command-bar.mjs +2 -2
  34. package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -1
  35. package/fesm2022/ngstarter-ui-components-comment-editor.mjs +34 -21
  36. package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
  37. package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs} +4 -4
  38. package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs.map} +1 -1
  39. package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs} +2 -2
  40. package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs.map} +1 -1
  41. package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs} +4 -4
  42. package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs.map} +1 -1
  43. package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs} +4 -4
  44. package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs.map} +1 -1
  45. package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs} +4 -4
  46. package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs.map} +1 -1
  47. package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs} +15 -15
  48. package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs.map} +1 -1
  49. package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs} +4 -4
  50. package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs.map} +1 -1
  51. package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs} +4 -4
  52. package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs.map} +1 -1
  53. package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs} +6 -6
  54. package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs.map} +1 -1
  55. package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs} +2 -2
  56. package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs.map} +1 -1
  57. package/fesm2022/ngstarter-ui-components-content-editor.mjs +1 -1
  58. package/fesm2022/ngstarter-ui-components-content-fade.mjs +2 -2
  59. package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -1
  60. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +2 -2
  61. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -1
  62. package/fesm2022/ngstarter-ui-components-core.mjs +137 -34
  63. package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -1
  64. package/fesm2022/ngstarter-ui-components-country-select.mjs +2 -2
  65. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
  66. package/fesm2022/ngstarter-ui-components-data-view.mjs +2 -2
  67. package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -1
  68. package/fesm2022/ngstarter-ui-components-datepicker.mjs +10 -10
  69. package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
  70. package/fesm2022/ngstarter-ui-components-dialog.mjs +8 -8
  71. package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -1
  72. package/fesm2022/ngstarter-ui-components-divider.mjs +4 -4
  73. package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -1
  74. package/fesm2022/ngstarter-ui-components-drawer.mjs +2 -2
  75. package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -1
  76. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +2 -2
  77. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -1
  78. package/fesm2022/ngstarter-ui-components-empty-state.mjs +4 -4
  79. package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
  80. package/fesm2022/ngstarter-ui-components-expand.mjs +2 -2
  81. package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -1
  82. package/fesm2022/ngstarter-ui-components-expansion.mjs +2 -2
  83. package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -1
  84. package/fesm2022/ngstarter-ui-components-filter-builder.mjs +2 -2
  85. package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -1
  86. package/fesm2022/ngstarter-ui-components-form-field.mjs +4 -4
  87. package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -1
  88. package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs} +3 -3
  89. package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs.map} +1 -1
  90. package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs} +3 -3
  91. package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs.map} +1 -1
  92. package/fesm2022/ngstarter-ui-components-form-renderer.mjs +2 -2
  93. package/fesm2022/ngstarter-ui-components-gauge.mjs +2 -2
  94. package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -1
  95. package/fesm2022/ngstarter-ui-components-grid.mjs +2 -2
  96. package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -1
  97. package/fesm2022/ngstarter-ui-components-guided-tour.mjs +4 -4
  98. package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -1
  99. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +2 -2
  100. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -1
  101. package/fesm2022/ngstarter-ui-components-image-resizer.mjs +2 -2
  102. package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -1
  103. package/fesm2022/ngstarter-ui-components-image-viewer.mjs +2 -2
  104. package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -1
  105. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +2 -2
  106. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -1
  107. package/fesm2022/ngstarter-ui-components-incidents.mjs +2 -2
  108. package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -1
  109. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +2 -2
  110. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -1
  111. package/fesm2022/ngstarter-ui-components-kanban-board.mjs +2 -2
  112. package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -1
  113. package/fesm2022/ngstarter-ui-components-kbd.mjs +2 -2
  114. package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -1
  115. package/fesm2022/ngstarter-ui-components-list.mjs +10 -10
  116. package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -1
  117. package/fesm2022/ngstarter-ui-components-logo.mjs +8 -8
  118. package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -1
  119. package/fesm2022/ngstarter-ui-components-menu.mjs +8 -8
  120. package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -1
  121. package/fesm2022/ngstarter-ui-components-micro-chart.mjs +10 -10
  122. package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -1
  123. package/fesm2022/ngstarter-ui-components-navigation.mjs +8 -8
  124. package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -1
  125. package/fesm2022/ngstarter-ui-components-notifications.mjs +8 -8
  126. package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
  127. package/fesm2022/ngstarter-ui-components-number-input.mjs +2 -2
  128. package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -1
  129. package/fesm2022/ngstarter-ui-components-option.mjs +2 -2
  130. package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -1
  131. package/fesm2022/ngstarter-ui-components-paginator.mjs +2 -2
  132. package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -1
  133. package/fesm2022/ngstarter-ui-components-password-strength.mjs +2 -2
  134. package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -1
  135. package/fesm2022/ngstarter-ui-components-phone-input.mjs +2 -2
  136. package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -1
  137. package/fesm2022/ngstarter-ui-components-popover.mjs +2 -2
  138. package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -1
  139. package/fesm2022/ngstarter-ui-components-progress-bar.mjs +2 -2
  140. package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -1
  141. package/fesm2022/ngstarter-ui-components-radio-card.mjs +4 -4
  142. package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -1
  143. package/fesm2022/ngstarter-ui-components-radio.mjs +2 -2
  144. package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -1
  145. package/fesm2022/ngstarter-ui-components-rail-nav.mjs +4 -4
  146. package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -1
  147. package/fesm2022/ngstarter-ui-components-resizable-container.mjs +2 -2
  148. package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -1
  149. package/fesm2022/ngstarter-ui-components-screen-loader.mjs +2 -2
  150. package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -1
  151. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +6 -6
  152. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -1
  153. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +2 -2
  154. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -1
  155. package/fesm2022/ngstarter-ui-components-segmented.mjs +2 -2
  156. package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -1
  157. package/fesm2022/ngstarter-ui-components-select.mjs +8 -8
  158. package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -1
  159. package/fesm2022/ngstarter-ui-components-side-panel.mjs +2 -2
  160. package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -1
  161. package/fesm2022/ngstarter-ui-components-sidebar.mjs +14 -14
  162. package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -1
  163. package/fesm2022/ngstarter-ui-components-sidenav.mjs +4 -4
  164. package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -1
  165. package/fesm2022/ngstarter-ui-components-signature-pad.mjs +2 -2
  166. package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -1
  167. package/fesm2022/ngstarter-ui-components-skeleton.mjs +2 -2
  168. package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -1
  169. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +2 -2
  170. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -1
  171. package/fesm2022/ngstarter-ui-components-slider.mjs +2 -2
  172. package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -1
  173. package/fesm2022/ngstarter-ui-components-snack-bar.mjs +2 -2
  174. package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -1
  175. package/fesm2022/ngstarter-ui-components-spinner.mjs +2 -2
  176. package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -1
  177. package/fesm2022/ngstarter-ui-components-splash-screen.mjs +2 -2
  178. package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -1
  179. package/fesm2022/ngstarter-ui-components-split.mjs +2 -2
  180. package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -1
  181. package/fesm2022/ngstarter-ui-components-stepper.mjs +2 -2
  182. package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -1
  183. package/fesm2022/ngstarter-ui-components-suggestions.mjs +4 -4
  184. package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -1
  185. package/fesm2022/ngstarter-ui-components-tab-panel.mjs +2 -2
  186. package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -1
  187. package/fesm2022/ngstarter-ui-components-table.mjs +6 -6
  188. package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -1
  189. package/fesm2022/ngstarter-ui-components-tabs.mjs +6 -6
  190. package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -1
  191. package/fesm2022/ngstarter-ui-components-text-editor.mjs +10 -10
  192. package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -1
  193. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +2 -2
  194. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -1
  195. package/fesm2022/ngstarter-ui-components-tiles.mjs +2 -2
  196. package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -1
  197. package/fesm2022/ngstarter-ui-components-timeline.mjs +2 -2
  198. package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -1
  199. package/fesm2022/ngstarter-ui-components-timepicker.mjs +2 -2
  200. package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -1
  201. package/fesm2022/ngstarter-ui-components-toolbar.mjs +4 -4
  202. package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -1
  203. package/fesm2022/ngstarter-ui-components-tooltip.mjs +2 -2
  204. package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -1
  205. package/fesm2022/ngstarter-ui-components-upload.mjs +10 -10
  206. package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -1
  207. package/fesm2022/ngstarter-ui-components-video-viewer.mjs +2 -2
  208. package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -1
  209. package/package.json +15 -3
  210. package/schematics/collection.json +10 -0
  211. package/schematics/migrations.json +11 -0
  212. package/schematics/ng-add/index.d.ts +6 -0
  213. package/schematics/ng-add/index.js +14 -0
  214. package/schematics/ng-add/index.js.map +1 -0
  215. package/schematics/ng-add/schema.json +17 -0
  216. package/schematics/ng-update/index.d.ts +6 -0
  217. package/schematics/ng-update/index.js +14 -0
  218. package/schematics/ng-update/index.js.map +1 -0
  219. package/schematics/ng-update/schema.json +17 -0
  220. package/schematics/utils.d.ts +8 -0
  221. package/schematics/utils.js +305 -0
  222. package/schematics/utils.js.map +1 -0
  223. package/styles/_common.scss +84 -390
  224. package/styles/_global.scss +12 -12
  225. package/styles/_tokens.scss +1041 -0
  226. package/styles/themes/compact.scss +9 -0
  227. package/styles/themes/enterprise.scss +349 -0
  228. package/styles/themes/modern.scss +352 -0
  229. package/types/ngstarter-ui-components-comment-editor.d.ts +10 -2
  230. package/types/ngstarter-ui-components-core.d.ts +41 -5
@@ -81,7 +81,7 @@ class UploadArea {
81
81
  });
82
82
  }
83
83
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadArea, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: UploadArea, isStandalone: true, selector: "ngs-upload-area", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, allowHover: { classPropertyName: "allowHover", publicName: "allowHover", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileSelected: "fileSelected" }, host: { listeners: { "dragover": "handleDragOver($event)", "dragenter": "handleDragEnter($event)", "dragleave": "handleDragLeave($event)", "dragend": "handleDragEnd($event)", "drop": "handleDrop($event)" }, properties: { "class.is-drop-active": "isDropActive()", "class.is-drop-invalid": "isDropInvalid()", "class.is-allow-hover": "allowHover()" }, classAttribute: "ngs-upload-area" }, exportAs: ["ngsUploadArea"], ngImport: i0, template: "<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-upload-area-bg: transparent;--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 10);--ngs-upload-area-border: 1px solid var(--color-subtle);--ngs-upload-area-border-radius: 1rem;--ngs-upload-area-font-size: .875rem;--ngs-upload-area-color: var(--color-neutral-600);--ngs-upload-area-drop-active-border: 1px dashed var(--color-primary);--ngs-upload-area-drop-active-color: var(--color-primary);--ngs-upload-area-drop-active-bg: var(--color-surface-container);--ngs-upload-area-drop-invalid-border: 1px dashed var(--color-error);--ngs-upload-area-drop-invalid-color: var(--color-error);--ngs-upload-area-drop-invalid-bg: var(--color-error-container-low);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;color:var(--ngs-upload-area-color);border-radius:var(--ngs-upload-area-border-radius);border:var(--ngs-upload-area-border);font-size:var(--ngs-upload-area-font-size);background:var(--ngs-upload-area-bg);padding:var(--ngs-upload-area-padding)}:host.is-allow-hover:hover{cursor:pointer;border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-active{border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-invalid{border:var(--ngs-upload-area-drop-invalid-border);color:var(--ngs-upload-area-drop-invalid-color);background:var(--ngs-upload-area-drop-invalid-bg)}:host .state{display:none}:host .state.is-active{display:block}:host .icon{margin-bottom:calc(var(--spacing, .25rem) * 2)}:host .icon:empty{display:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
84
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: UploadArea, isStandalone: true, selector: "ngs-upload-area", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, allowHover: { classPropertyName: "allowHover", publicName: "allowHover", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileSelected: "fileSelected" }, host: { listeners: { "dragover": "handleDragOver($event)", "dragenter": "handleDragEnter($event)", "dragleave": "handleDragLeave($event)", "dragend": "handleDragEnd($event)", "drop": "handleDrop($event)" }, properties: { "class.is-drop-active": "isDropActive()", "class.is-drop-invalid": "isDropInvalid()", "class.is-allow-hover": "allowHover()" }, classAttribute: "ngs-upload-area" }, exportAs: ["ngsUploadArea"], ngImport: i0, template: "<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-upload-area-bg: transparent;--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 10);--ngs-upload-area-border: 1px solid var(--ngs-color-subtle);--ngs-upload-area-border-radius: var(--ngs-radius-xl);--ngs-upload-area-font-size: var(--ngs-font-size-sm);--ngs-upload-area-color: var(--ngs-color-neutral-600);--ngs-upload-area-drop-active-border: 1px dashed var(--ngs-color-primary);--ngs-upload-area-drop-active-color: var(--ngs-color-primary);--ngs-upload-area-drop-active-bg: var(--ngs-color-surface-container);--ngs-upload-area-drop-invalid-border: 1px dashed var(--ngs-color-danger);--ngs-upload-area-drop-invalid-color: var(--ngs-color-danger);--ngs-upload-area-drop-invalid-bg: var(--ngs-color-danger-container-low);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;color:var(--ngs-upload-area-color);border-radius:var(--ngs-upload-area-border-radius);border:var(--ngs-upload-area-border);font-size:var(--ngs-upload-area-font-size);background:var(--ngs-upload-area-bg);padding:var(--ngs-upload-area-padding)}:host.is-allow-hover:hover{cursor:pointer;border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-active{border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-invalid{border:var(--ngs-upload-area-drop-invalid-border);color:var(--ngs-upload-area-drop-invalid-color);background:var(--ngs-upload-area-drop-invalid-bg)}:host .state{display:none}:host .state.is-active{display:block}:host .icon{margin-bottom:calc(var(--spacing, .25rem) * 2)}:host .icon:empty{display:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
85
85
  }
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadArea, decorators: [{
87
87
  type: Component,
@@ -95,7 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
95
95
  '(dragleave)': 'handleDragLeave($event)',
96
96
  '(dragend)': 'handleDragEnd($event)',
97
97
  '(drop)': 'handleDrop($event)',
98
- }, template: "<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-upload-area-bg: transparent;--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 10);--ngs-upload-area-border: 1px solid var(--color-subtle);--ngs-upload-area-border-radius: 1rem;--ngs-upload-area-font-size: .875rem;--ngs-upload-area-color: var(--color-neutral-600);--ngs-upload-area-drop-active-border: 1px dashed var(--color-primary);--ngs-upload-area-drop-active-color: var(--color-primary);--ngs-upload-area-drop-active-bg: var(--color-surface-container);--ngs-upload-area-drop-invalid-border: 1px dashed var(--color-error);--ngs-upload-area-drop-invalid-color: var(--color-error);--ngs-upload-area-drop-invalid-bg: var(--color-error-container-low);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;color:var(--ngs-upload-area-color);border-radius:var(--ngs-upload-area-border-radius);border:var(--ngs-upload-area-border);font-size:var(--ngs-upload-area-font-size);background:var(--ngs-upload-area-bg);padding:var(--ngs-upload-area-padding)}:host.is-allow-hover:hover{cursor:pointer;border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-active{border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-invalid{border:var(--ngs-upload-area-drop-invalid-border);color:var(--ngs-upload-area-drop-invalid-color);background:var(--ngs-upload-area-drop-invalid-bg)}:host .state{display:none}:host .state.is-active{display:block}:host .icon{margin-bottom:calc(var(--spacing, .25rem) * 2)}:host .icon:empty{display:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
98
+ }, template: "<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-upload-area-bg: transparent;--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 10);--ngs-upload-area-border: 1px solid var(--ngs-color-subtle);--ngs-upload-area-border-radius: var(--ngs-radius-xl);--ngs-upload-area-font-size: var(--ngs-font-size-sm);--ngs-upload-area-color: var(--ngs-color-neutral-600);--ngs-upload-area-drop-active-border: 1px dashed var(--ngs-color-primary);--ngs-upload-area-drop-active-color: var(--ngs-color-primary);--ngs-upload-area-drop-active-bg: var(--ngs-color-surface-container);--ngs-upload-area-drop-invalid-border: 1px dashed var(--ngs-color-danger);--ngs-upload-area-drop-invalid-color: var(--ngs-color-danger);--ngs-upload-area-drop-invalid-bg: var(--ngs-color-danger-container-low);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;color:var(--ngs-upload-area-color);border-radius:var(--ngs-upload-area-border-radius);border:var(--ngs-upload-area-border);font-size:var(--ngs-upload-area-font-size);background:var(--ngs-upload-area-bg);padding:var(--ngs-upload-area-padding)}:host.is-allow-hover:hover{cursor:pointer;border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-active{border:var(--ngs-upload-area-drop-active-border);color:var(--ngs-upload-area-drop-active-color);background:var(--ngs-upload-area-drop-active-bg)}:host.is-drop-invalid{border:var(--ngs-upload-area-drop-invalid-border);color:var(--ngs-upload-area-drop-invalid-color);background:var(--ngs-upload-area-drop-invalid-bg)}:host .state{display:none}:host .state.is-active{display:block}:host .icon{margin-bottom:calc(var(--spacing, .25rem) * 2)}:host .icon:empty{display:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
99
99
  }], propDecorators: { accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], allowHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowHover", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], fileSelected: [{ type: i0.Output, args: ["fileSelected"] }] } });
100
100
 
101
101
  class FileList {
@@ -118,14 +118,14 @@ class File {
118
118
  remainingTime = input(...(ngDevMode ? [undefined, { debugName: "remainingTime" }] : /* istanbul ignore next */ []));
119
119
  state = input('uploading', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
120
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: File, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: File, isStandalone: true, selector: "ngs-file", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressingMessage: { classPropertyName: "progressingMessage", publicName: "progressingMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, remainingTime: { classPropertyName: "remainingTime", publicName: "remainingTime", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.has-error": "state() === 'error'" }, classAttribute: "ngs-file not-prose" }, exportAs: ["ngsFile"], ngImport: i0, template: "<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: 1rem;--ngs-file-bg: var(--color-surface-container);--ngs-file-error-bg: var(--color-error-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1.5);--ngs-file-progress-margin: calc(var(--spacing, .25rem) * 2) 0 0 0;--ngs-file-progress-bg: var(--color-surface-container-highest);--ngs-file-progress-height: calc(var(--spacing, .25rem) * 1);--ngs-file-progress-border-radius: .5rem;--ngs-file-progress-bar-bg: var(--color-primary);--ngs-file-control-color: var(--color-neutral-500);--ngs-file-control-hover-color: var(--color-primary);--ngs-file-control-font-size: 1.25rem;--ngs-file-name-font-size: .875rem;--ngs-file-info-font-size: .75rem;--ngs-file-info-color: var(--color-neutral-600);--ngs-file-error-font-size: .75rem;--ngs-file-error-color: var(--color-error);display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;padding:var(--ngs-file-padding);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .name{font-size:var(--ngs-file-name-font-size)}:host .info{font-size:var(--ngs-file-info-font-size);color:var(--ngs-file-info-color)}:host .content{min-width:0;flex-grow:1}:host .controls{display:flex;align-items:center;gap:var(--ngs-file-controls-gap)}:host .progress{background:var(--ngs-file-progress-bg);height:var(--ngs-file-progress-height);flex:none;border-radius:var(--ngs-file-progress-border-radius);margin:var(--ngs-file-progress-margin)}:host .progress-bar{background:var(--ngs-file-progress-bar-bg);border-radius:var(--ngs-file-progress-border-radius);height:100%}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color)}:host.has-error{background:var(--ngs-file-error-bg)}:host-context(html.dark){--ngs-file-error-color: var(--color-error-container-high);--ngs-file-progress-bg: var(--color-neutral-500);--ngs-file-control-hover-color: var(--color-neutral-300)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: File, isStandalone: true, selector: "ngs-file", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressingMessage: { classPropertyName: "progressingMessage", publicName: "progressingMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, remainingTime: { classPropertyName: "remainingTime", publicName: "remainingTime", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.has-error": "state() === 'error'" }, classAttribute: "ngs-file not-prose" }, exportAs: ["ngsFile"], ngImport: i0, template: "<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: var(--ngs-radius-xl);--ngs-file-bg: var(--ngs-color-surface-container);--ngs-file-error-bg: var(--ngs-color-danger-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1.5);--ngs-file-progress-margin: calc(var(--spacing, .25rem) * 2) 0 0 0;--ngs-file-progress-bg: var(--ngs-color-surface-container-highest);--ngs-file-progress-height: calc(var(--spacing, .25rem) * 1);--ngs-file-progress-border-radius: var(--ngs-radius-lg);--ngs-file-progress-bar-bg: var(--ngs-color-primary);--ngs-file-control-color: var(--ngs-color-neutral-500);--ngs-file-control-hover-color: var(--ngs-color-primary);--ngs-file-control-font-size: var(--ngs-font-size-xl);--ngs-file-name-font-size: var(--ngs-font-size-sm);--ngs-file-info-font-size: var(--ngs-font-size-xs);--ngs-file-info-color: var(--ngs-color-neutral-600);--ngs-file-error-font-size: var(--ngs-font-size-xs);--ngs-file-error-color: var(--ngs-color-danger);display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;padding:var(--ngs-file-padding);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .name{font-size:var(--ngs-file-name-font-size)}:host .info{font-size:var(--ngs-file-info-font-size);color:var(--ngs-file-info-color)}:host .content{min-width:0;flex-grow:1}:host .controls{display:flex;align-items:center;gap:var(--ngs-file-controls-gap)}:host .progress{background:var(--ngs-file-progress-bg);height:var(--ngs-file-progress-height);flex:none;border-radius:var(--ngs-file-progress-border-radius);margin:var(--ngs-file-progress-margin)}:host .progress-bar{background:var(--ngs-file-progress-bar-bg);border-radius:var(--ngs-file-progress-border-radius);height:100%}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color)}:host.has-error{background:var(--ngs-file-error-bg)}:host-context(html.dark){--ngs-file-error-color: var(--ngs-color-danger-container-high);--ngs-file-progress-bg: var(--ngs-color-neutral-500);--ngs-file-control-hover-color: var(--ngs-color-neutral-300)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
122
  }
123
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: File, decorators: [{
124
124
  type: Component,
125
125
  args: [{ selector: 'ngs-file', exportAs: 'ngsFile', changeDetection: ChangeDetectionStrategy.OnPush, host: {
126
126
  'class': 'ngs-file not-prose',
127
127
  '[class.has-error]': "state() === 'error'"
128
- }, template: "<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: 1rem;--ngs-file-bg: var(--color-surface-container);--ngs-file-error-bg: var(--color-error-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1.5);--ngs-file-progress-margin: calc(var(--spacing, .25rem) * 2) 0 0 0;--ngs-file-progress-bg: var(--color-surface-container-highest);--ngs-file-progress-height: calc(var(--spacing, .25rem) * 1);--ngs-file-progress-border-radius: .5rem;--ngs-file-progress-bar-bg: var(--color-primary);--ngs-file-control-color: var(--color-neutral-500);--ngs-file-control-hover-color: var(--color-primary);--ngs-file-control-font-size: 1.25rem;--ngs-file-name-font-size: .875rem;--ngs-file-info-font-size: .75rem;--ngs-file-info-color: var(--color-neutral-600);--ngs-file-error-font-size: .75rem;--ngs-file-error-color: var(--color-error);display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;padding:var(--ngs-file-padding);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .name{font-size:var(--ngs-file-name-font-size)}:host .info{font-size:var(--ngs-file-info-font-size);color:var(--ngs-file-info-color)}:host .content{min-width:0;flex-grow:1}:host .controls{display:flex;align-items:center;gap:var(--ngs-file-controls-gap)}:host .progress{background:var(--ngs-file-progress-bg);height:var(--ngs-file-progress-height);flex:none;border-radius:var(--ngs-file-progress-border-radius);margin:var(--ngs-file-progress-margin)}:host .progress-bar{background:var(--ngs-file-progress-bar-bg);border-radius:var(--ngs-file-progress-border-radius);height:100%}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color)}:host.has-error{background:var(--ngs-file-error-bg)}:host-context(html.dark){--ngs-file-error-color: var(--color-error-container-high);--ngs-file-progress-bg: var(--color-neutral-500);--ngs-file-control-hover-color: var(--color-neutral-300)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
128
+ }, template: "<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: var(--ngs-radius-xl);--ngs-file-bg: var(--ngs-color-surface-container);--ngs-file-error-bg: var(--ngs-color-danger-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1.5);--ngs-file-progress-margin: calc(var(--spacing, .25rem) * 2) 0 0 0;--ngs-file-progress-bg: var(--ngs-color-surface-container-highest);--ngs-file-progress-height: calc(var(--spacing, .25rem) * 1);--ngs-file-progress-border-radius: var(--ngs-radius-lg);--ngs-file-progress-bar-bg: var(--ngs-color-primary);--ngs-file-control-color: var(--ngs-color-neutral-500);--ngs-file-control-hover-color: var(--ngs-color-primary);--ngs-file-control-font-size: var(--ngs-font-size-xl);--ngs-file-name-font-size: var(--ngs-font-size-sm);--ngs-file-info-font-size: var(--ngs-font-size-xs);--ngs-file-info-color: var(--ngs-color-neutral-600);--ngs-file-error-font-size: var(--ngs-font-size-xs);--ngs-file-error-color: var(--ngs-color-danger);display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;padding:var(--ngs-file-padding);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .name{font-size:var(--ngs-file-name-font-size)}:host .info{font-size:var(--ngs-file-info-font-size);color:var(--ngs-file-info-color)}:host .content{min-width:0;flex-grow:1}:host .controls{display:flex;align-items:center;gap:var(--ngs-file-controls-gap)}:host .progress{background:var(--ngs-file-progress-bg);height:var(--ngs-file-progress-height);flex:none;border-radius:var(--ngs-file-progress-border-radius);margin:var(--ngs-file-progress-margin)}:host .progress-bar{background:var(--ngs-file-progress-bar-bg);border-radius:var(--ngs-file-progress-border-radius);height:100%}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color)}:host.has-error{background:var(--ngs-file-error-bg)}:host-context(html.dark){--ngs-file-error-color: var(--ngs-color-danger-container-high);--ngs-file-progress-bg: var(--ngs-color-neutral-500);--ngs-file-control-hover-color: var(--ngs-color-neutral-300)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
129
129
  }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: false }] }], progressingMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressingMessage", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], remainingTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "remainingTime", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }] } });
130
130
 
131
131
  class FileControl {
@@ -159,7 +159,7 @@ class GridFile {
159
159
  remainingTime = input(...(ngDevMode ? [undefined, { debugName: "remainingTime" }] : /* istanbul ignore next */ []));
160
160
  state = input('uploading', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
161
161
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: GridFile, deps: [], target: i0.ɵɵFactoryTarget.Component });
162
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: GridFile, isStandalone: true, selector: "ngs-grid-file", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressingMessage: { classPropertyName: "progressingMessage", publicName: "progressingMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, remainingTime: { classPropertyName: "remainingTime", publicName: "remainingTime", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.has-error": "state() === 'error'" }, classAttribute: "ngs-grid-file not-prose" }, exportAs: ["ngsGridFile"], ngImport: i0, template: "<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 3);--ngs-file-gap: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: 1rem;--ngs-file-bg: var(--color-surface-container);--ngs-file-error-bg: var(--color-error-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1);--ngs-file-error-font-size: .75rem;--ngs-file-error-color: var(--color-error);display:flex;min-width:240px;align-items:center;justify-content:space-between;position:relative;padding:var(--ngs-file-padding);gap:var(--ngs-file-gap);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .icon:empty{display:none}:host .icon{width:32px;max-height:40px}:host .controls{display:flex;gap:var(--ngs-file-controls-gap)}:host .controls:empty{display:none}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color);position:absolute;bottom:0;transform:translateY(100%);left:calc(var(--spacing, .25rem) * 2)}:host.has-error{background:var(--ngs-file-error-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: GaugeValue, selector: "ngs-gauge-value", exportAs: ["ngsGaugeValue"] }, { kind: "component", type: Gauge, selector: "ngs-gauge", inputs: ["value", "strokeWidth", "radius"], exportAs: ["ngsGauge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
162
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: GridFile, isStandalone: true, selector: "ngs-grid-file", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, progressingMessage: { classPropertyName: "progressingMessage", publicName: "progressingMessage", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, remainingTime: { classPropertyName: "remainingTime", publicName: "remainingTime", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.has-error": "state() === 'error'" }, classAttribute: "ngs-grid-file not-prose" }, exportAs: ["ngsGridFile"], ngImport: i0, template: "<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 3);--ngs-file-gap: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: var(--ngs-radius-xl);--ngs-file-bg: var(--ngs-color-surface-container);--ngs-file-error-bg: var(--ngs-color-danger-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1);--ngs-file-error-font-size: var(--ngs-font-size-xs);--ngs-file-error-color: var(--ngs-color-danger);display:flex;min-width:240px;align-items:center;justify-content:space-between;position:relative;padding:var(--ngs-file-padding);gap:var(--ngs-file-gap);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .icon:empty{display:none}:host .icon{width:32px;max-height:40px}:host .controls{display:flex;gap:var(--ngs-file-controls-gap)}:host .controls:empty{display:none}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color);position:absolute;bottom:0;transform:translateY(100%);left:calc(var(--spacing, .25rem) * 2)}:host.has-error{background:var(--ngs-file-error-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: GaugeValue, selector: "ngs-gauge-value", exportAs: ["ngsGaugeValue"] }, { kind: "component", type: Gauge, selector: "ngs-gauge", inputs: ["value", "strokeWidth", "radius"], exportAs: ["ngsGauge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
163
  }
164
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: GridFile, decorators: [{
165
165
  type: Component,
@@ -169,7 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
169
169
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
170
170
  'class': 'ngs-grid-file not-prose',
171
171
  '[class.has-error]': "state() === 'error'"
172
- }, template: "<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 3);--ngs-file-gap: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: 1rem;--ngs-file-bg: var(--color-surface-container);--ngs-file-error-bg: var(--color-error-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1);--ngs-file-error-font-size: .75rem;--ngs-file-error-color: var(--color-error);display:flex;min-width:240px;align-items:center;justify-content:space-between;position:relative;padding:var(--ngs-file-padding);gap:var(--ngs-file-gap);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .icon:empty{display:none}:host .icon{width:32px;max-height:40px}:host .controls{display:flex;gap:var(--ngs-file-controls-gap)}:host .controls:empty{display:none}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color);position:absolute;bottom:0;transform:translateY(100%);left:calc(var(--spacing, .25rem) * 2)}:host.has-error{background:var(--ngs-file-error-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
172
+ }, template: "<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n", styles: [":host{--ngs-file-padding: calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 3) calc(var(--spacing, .25rem) * 3);--ngs-file-gap: calc(var(--spacing, .25rem) * 4);--ngs-file-border-radius: var(--ngs-radius-xl);--ngs-file-bg: var(--ngs-color-surface-container);--ngs-file-error-bg: var(--ngs-color-danger-container-low);--ngs-file-controls-gap: calc(var(--spacing, .25rem) * 1);--ngs-file-error-font-size: var(--ngs-font-size-xs);--ngs-file-error-color: var(--ngs-color-danger);display:flex;min-width:240px;align-items:center;justify-content:space-between;position:relative;padding:var(--ngs-file-padding);gap:var(--ngs-file-gap);border-radius:var(--ngs-file-border-radius);background:var(--ngs-file-bg)}:host .icon:empty{display:none}:host .icon{width:32px;max-height:40px}:host .controls{display:flex;gap:var(--ngs-file-controls-gap)}:host .controls:empty{display:none}:host .error{font-size:var(--ngs-file-error-font-size);color:var(--ngs-file-error-color);position:absolute;bottom:0;transform:translateY(100%);left:calc(var(--spacing, .25rem) * 2)}:host.has-error{background:var(--ngs-file-error-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
173
173
  }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: false }] }], progressingMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressingMessage", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], remainingTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "remainingTime", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }] } });
174
174
 
175
175
  class UploadContainer {
@@ -183,20 +183,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
183
183
 
184
184
  class UploadMaxFileSize {
185
185
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadMaxFileSize, deps: [], target: i0.ɵɵFactoryTarget.Component });
186
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: UploadMaxFileSize, isStandalone: true, selector: "ngs-upload-max-file-size", ngImport: i0, template: "<ng-content/>\n", styles: [":host{display:block;font-size:.75rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
186
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: UploadMaxFileSize, isStandalone: true, selector: "ngs-upload-max-file-size", ngImport: i0, template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-font-size-xs)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
187
187
  }
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadMaxFileSize, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'ngs-upload-max-file-size', imports: [], template: "<ng-content/>\n", styles: [":host{display:block;font-size:.75rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
190
+ args: [{ selector: 'ngs-upload-max-file-size', imports: [], template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-font-size-xs)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
191
191
  }] });
192
192
 
193
193
  class UploadAllowedTypes {
194
194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadAllowedTypes, deps: [], target: i0.ɵɵFactoryTarget.Component });
195
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: UploadAllowedTypes, isStandalone: true, selector: "ngs-upload-allowed-types", ngImport: i0, template: "<ng-content/>\n", styles: [":host{display:block;font-size:.75rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: UploadAllowedTypes, isStandalone: true, selector: "ngs-upload-allowed-types", ngImport: i0, template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-font-size-xs)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
196
196
  }
197
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: UploadAllowedTypes, decorators: [{
198
198
  type: Component,
199
- args: [{ selector: 'ngs-upload-allowed-types', imports: [], template: "<ng-content/>\n", styles: [":host{display:block;font-size:.75rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
199
+ args: [{ selector: 'ngs-upload-allowed-types', imports: [], template: "<ng-content/>\n", styles: [":host{display:block;font-size:var(--ngs-font-size-xs)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
200
200
  }] });
201
201
 
202
202
  class UploadTriggerDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-upload.mjs","sources":["../../../projects/components/upload/src/upload-area/upload-area.ts","../../../projects/components/upload/src/upload-area/upload-area.html","../../../projects/components/upload/src/file-list/file-list.ts","../../../projects/components/upload/src/file-list/file-list.html","../../../projects/components/upload/src/file/file.ts","../../../projects/components/upload/src/file/file.html","../../../projects/components/upload/src/file-control/file-control.ts","../../../projects/components/upload/src/file-control/file-control.html","../../../projects/components/upload/src/files-grid/files-grid.ts","../../../projects/components/upload/src/files-grid/files-grid.html","../../../projects/components/upload/src/grid-file/grid-file.ts","../../../projects/components/upload/src/grid-file/grid-file.html","../../../projects/components/upload/src/upload-container/upload-container.ts","../../../projects/components/upload/src/upload-container/upload-container.html","../../../projects/components/upload/src/upload-max-file-size/upload-max-file-size.ts","../../../projects/components/upload/src/upload-max-file-size/upload-max-file-size.html","../../../projects/components/upload/src/upload-allowed-types/upload-allowed-types.ts","../../../projects/components/upload/src/upload-allowed-types/upload-allowed-types.html","../../../projects/components/upload/src/upload-trigger.directive.ts","../../../projects/components/upload/src/upload-area-icon.directive.ts","../../../projects/components/upload/src/upload-area-main-state.directive.ts","../../../projects/components/upload/src/upload-area-drop-state.directive.ts","../../../projects/components/upload/src/upload-area-invalid-state.directive.ts","../../../projects/components/upload/src/file-icon.directive.ts","../../../projects/components/upload/src/grid-file-control.directive.ts","../../../projects/components/upload/ngstarter-ui-components-upload.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n inject, input,\n output,\n Renderer2, signal,\n} from '@angular/core';\nimport { UploadFileSelectedEvent } from '../types';\n\n@Component({\n selector: 'ngs-upload-area',\n exportAs: 'ngsUploadArea',\n templateUrl: './upload-area.html',\n styleUrl: './upload-area.scss',\n imports: [\n ],\n host: {\n 'class': 'ngs-upload-area',\n '[class.is-drop-active]': 'isDropActive()',\n '[class.is-drop-invalid]': 'isDropInvalid()',\n '[class.is-allow-hover]': 'allowHover()',\n '(dragover)': 'handleDragOver($event)',\n '(dragenter)': 'handleDragEnter($event)',\n '(dragleave)': 'handleDragLeave($event)',\n '(dragend)': 'handleDragEnd($event)',\n '(drop)': 'handleDrop($event)',\n }\n})\nexport class UploadArea {\n protected _renderer = inject(Renderer2);\n\n accept = input<string>();\n allowHover = input(true, {\n transform: booleanAttribute\n });\n multiple = input(false, {\n transform: booleanAttribute\n });\n\n readonly fileSelected = output<UploadFileSelectedEvent>();\n protected isDropActive = signal(false);\n protected isDropInvalid = signal(false);\n\n get api() {\n return {\n isDropActive: this.isDropActive()\n }\n }\n\n protected handleDragOver(event: any) {\n event.preventDefault();\n }\n\n protected handleDragEnter(event: any) {\n if (event.dataTransfer) {\n const items = event.dataTransfer.items;\n let allFilesAreValid = true;\n\n if (this.accept()) {\n const accept = (this.accept() as string).split(',');\n\n if (items && items.length > 0) {\n const draggedItems = Array.from(items);\n allFilesAreValid = draggedItems.every(\n (item: any) => item.kind === 'file' && this.isMimeTypeAllowed(item.type, accept)\n );\n }\n }\n\n this.isDropActive.set(allFilesAreValid);\n this.isDropInvalid.set(!allFilesAreValid);\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected handleDragLeave(event: DragEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n if (!relatedTarget.closest('.ngs-upload-area')) {\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n }\n\n event.preventDefault();\n }\n\n protected handleDragEnd(event: any) {\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n event.preventDefault();\n }\n\n protected handleDrop(event: DragEvent) {\n event.preventDefault();\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n\n if (event.dataTransfer) {\n const accept = (this.accept() as string).split(',');\n const files: File[] = Array.from(event.dataTransfer?.files).filter(file => this.isMimeTypeAllowed(file.type, accept));\n\n if (files.length === 0) {\n return;\n }\n\n this.fileSelected.emit({\n multiple: this.multiple(),\n fileList: event.dataTransfer.files,\n event,\n files\n });\n }\n }\n\n private isMimeTypeAllowed(\n fileMimeType: string,\n allowedMimeTypes: string[]\n ): boolean {\n return allowedMimeTypes.some(allowedType => {\n if (allowedType === '*/*' || allowedType === '*') {\n return true;\n }\n\n if (allowedType.endsWith('/*')) {\n const baseType = allowedType.slice(0, -2);\n return fileMimeType.startsWith(`${baseType}/`);\n }\n\n return fileMimeType === allowedType;\n });\n }\n}\n","<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-file-list',\n exportAs: 'ngsFileList',\n templateUrl: './file-list.html',\n styleUrl: './file-list.scss',\n host: {\n 'class': 'ngs-file-list not-prose'\n }\n})\nexport class FileList {\n}\n","<ng-content/>\n","import { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { UploadFileState } from '../types';\n\n@Component({\n selector: 'ngs-file',\n exportAs: 'ngsFile',\n templateUrl: './file.html',\n styleUrl: './file.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-file not-prose',\n '[class.has-error]': \"state() === 'error'\"\n }\n})\nexport class File {\n name = input.required();\n size = input();\n progress = input(0, {\n transform: numberAttribute\n });\n progressingMessage = input();\n errorMessage = input();\n remainingTime = input();\n state = input<UploadFileState>('uploading');\n}\n","<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-file-control,[ngs-file-control]',\n exportAs: 'ngsFileControl',\n templateUrl: './file-control.html',\n styleUrl: './file-control.scss',\n host: {\n 'class': 'ngs-file-control not-prose'\n }\n})\nexport class FileControl {\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-files-grid',\n exportAs: 'ngsFilesGrid',\n templateUrl: './files-grid.html',\n styleUrl: './files-grid.scss',\n host: {\n 'class': 'ngs-files-grid not-prose'\n }\n})\nexport class FilesGrid {\n\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { UploadFileState } from '../types';\nimport { Gauge, GaugeValue } from '@ngstarter-ui/components/gauge';\n\n@Component({\n selector: 'ngs-grid-file',\n exportAs: 'ngsGridFile',\n imports: [\n GaugeValue,\n Gauge\n ],\n templateUrl: './grid-file.html',\n styleUrl: './grid-file.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-grid-file not-prose',\n '[class.has-error]': \"state() === 'error'\"\n }\n})\nexport class GridFile {\n name = input.required();\n size = input();\n progress = input(0, {\n transform: numberAttribute\n });\n progressingMessage = input();\n errorMessage = input();\n remainingTime = input();\n state = input<UploadFileState>('uploading');\n}\n","<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-container',\n imports: [],\n templateUrl: './upload-container.html',\n styleUrl: './upload-container.scss'\n})\nexport class UploadContainer {\n\n}\n","<ng-content select=\"ngs-upload-area\"/>\n<div class=\"flex items-center justify-between mt-2 hints\">\n <ng-content select=\"ngs-upload-allowed-types\"/>\n <ng-content select=\"ngs-upload-max-file-size\"/>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-max-file-size',\n imports: [],\n templateUrl: './upload-max-file-size.html',\n styleUrl: './upload-max-file-size.scss'\n})\nexport class UploadMaxFileSize {\n\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-allowed-types',\n imports: [],\n templateUrl: './upload-allowed-types.html',\n styleUrl: './upload-allowed-types.scss'\n})\nexport class UploadAllowedTypes {\n\n}\n","<ng-content/>\n","import {\n booleanAttribute,\n DestroyRef,\n Directive, ElementRef,\n inject,\n input, output,\n Renderer2\n} from '@angular/core';\nimport { UploadFileSelectedEvent } from './types';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ngsUploadTrigger]',\n exportAs: 'ngsUploadTrigger',\n standalone: true,\n host: {\n '(click)': '_handleClick()'\n }\n})\nexport class UploadTriggerDirective {\n private _elementRef = inject(ElementRef);\n protected _renderer = inject(Renderer2);\n protected _destroyRef = inject(DestroyRef);\n\n accept = input<string>();\n multiple = input(false, {\n transform: booleanAttribute\n });\n\n readonly fileSelected = output<UploadFileSelectedEvent>();\n\n _handleClick() {\n const element: HTMLInputElement = this._renderer.createElement('input');\n this._renderer.setAttribute(element, 'type', 'file');\n let accept = this.accept();\n\n if (!accept) {\n accept = this._elementRef.nativeElement.getAttribute('accept') || '';\n }\n\n if (accept) {\n this._renderer.setAttribute(element, 'accept', accept);\n }\n\n if (this.multiple()) {\n this._renderer.setAttribute(element, 'multiple', '');\n }\n\n fromEvent(element, 'change')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(event => {\n const files: File[] = [];\n\n if (element.files) {\n for (let i = 0; i < element.files.length; i++) {\n files.push(element.files[i]);\n }\n }\n\n this.fileSelected.emit({\n multiple: this.multiple(),\n fileList: element.files,\n event,\n files\n });\n })\n ;\n element.click();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaIcon]'\n})\nexport class UploadAreaIconDirective {\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaMainState]'\n})\nexport class UploadAreaMainStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaDropState]'\n})\nexport class UploadAreaDropStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaInvalidState]'\n})\nexport class UploadAreaInvalidStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsFileIcon]'\n})\nexport class FileIconDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsGridFileControl]'\n})\nexport class GridFileControlDirective {\n\n constructor() { }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-upload.mjs","sources":["../../../projects/components/upload/src/upload-area/upload-area.ts","../../../projects/components/upload/src/upload-area/upload-area.html","../../../projects/components/upload/src/file-list/file-list.ts","../../../projects/components/upload/src/file-list/file-list.html","../../../projects/components/upload/src/file/file.ts","../../../projects/components/upload/src/file/file.html","../../../projects/components/upload/src/file-control/file-control.ts","../../../projects/components/upload/src/file-control/file-control.html","../../../projects/components/upload/src/files-grid/files-grid.ts","../../../projects/components/upload/src/files-grid/files-grid.html","../../../projects/components/upload/src/grid-file/grid-file.ts","../../../projects/components/upload/src/grid-file/grid-file.html","../../../projects/components/upload/src/upload-container/upload-container.ts","../../../projects/components/upload/src/upload-container/upload-container.html","../../../projects/components/upload/src/upload-max-file-size/upload-max-file-size.ts","../../../projects/components/upload/src/upload-max-file-size/upload-max-file-size.html","../../../projects/components/upload/src/upload-allowed-types/upload-allowed-types.ts","../../../projects/components/upload/src/upload-allowed-types/upload-allowed-types.html","../../../projects/components/upload/src/upload-trigger.directive.ts","../../../projects/components/upload/src/upload-area-icon.directive.ts","../../../projects/components/upload/src/upload-area-main-state.directive.ts","../../../projects/components/upload/src/upload-area-drop-state.directive.ts","../../../projects/components/upload/src/upload-area-invalid-state.directive.ts","../../../projects/components/upload/src/file-icon.directive.ts","../../../projects/components/upload/src/grid-file-control.directive.ts","../../../projects/components/upload/ngstarter-ui-components-upload.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n inject, input,\n output,\n Renderer2, signal,\n} from '@angular/core';\nimport { UploadFileSelectedEvent } from '../types';\n\n@Component({\n selector: 'ngs-upload-area',\n exportAs: 'ngsUploadArea',\n templateUrl: './upload-area.html',\n styleUrl: './upload-area.scss',\n imports: [\n ],\n host: {\n 'class': 'ngs-upload-area',\n '[class.is-drop-active]': 'isDropActive()',\n '[class.is-drop-invalid]': 'isDropInvalid()',\n '[class.is-allow-hover]': 'allowHover()',\n '(dragover)': 'handleDragOver($event)',\n '(dragenter)': 'handleDragEnter($event)',\n '(dragleave)': 'handleDragLeave($event)',\n '(dragend)': 'handleDragEnd($event)',\n '(drop)': 'handleDrop($event)',\n }\n})\nexport class UploadArea {\n protected _renderer = inject(Renderer2);\n\n accept = input<string>();\n allowHover = input(true, {\n transform: booleanAttribute\n });\n multiple = input(false, {\n transform: booleanAttribute\n });\n\n readonly fileSelected = output<UploadFileSelectedEvent>();\n protected isDropActive = signal(false);\n protected isDropInvalid = signal(false);\n\n get api() {\n return {\n isDropActive: this.isDropActive()\n }\n }\n\n protected handleDragOver(event: any) {\n event.preventDefault();\n }\n\n protected handleDragEnter(event: any) {\n if (event.dataTransfer) {\n const items = event.dataTransfer.items;\n let allFilesAreValid = true;\n\n if (this.accept()) {\n const accept = (this.accept() as string).split(',');\n\n if (items && items.length > 0) {\n const draggedItems = Array.from(items);\n allFilesAreValid = draggedItems.every(\n (item: any) => item.kind === 'file' && this.isMimeTypeAllowed(item.type, accept)\n );\n }\n }\n\n this.isDropActive.set(allFilesAreValid);\n this.isDropInvalid.set(!allFilesAreValid);\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected handleDragLeave(event: DragEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n if (!relatedTarget.closest('.ngs-upload-area')) {\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n }\n\n event.preventDefault();\n }\n\n protected handleDragEnd(event: any) {\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n event.preventDefault();\n }\n\n protected handleDrop(event: DragEvent) {\n event.preventDefault();\n this.isDropActive.set(false);\n this.isDropInvalid.set(false);\n\n if (event.dataTransfer) {\n const accept = (this.accept() as string).split(',');\n const files: File[] = Array.from(event.dataTransfer?.files).filter(file => this.isMimeTypeAllowed(file.type, accept));\n\n if (files.length === 0) {\n return;\n }\n\n this.fileSelected.emit({\n multiple: this.multiple(),\n fileList: event.dataTransfer.files,\n event,\n files\n });\n }\n }\n\n private isMimeTypeAllowed(\n fileMimeType: string,\n allowedMimeTypes: string[]\n ): boolean {\n return allowedMimeTypes.some(allowedType => {\n if (allowedType === '*/*' || allowedType === '*') {\n return true;\n }\n\n if (allowedType.endsWith('/*')) {\n const baseType = allowedType.slice(0, -2);\n return fileMimeType.startsWith(`${baseType}/`);\n }\n\n return fileMimeType === allowedType;\n });\n }\n}\n","<div class=\"icon\">\n <ng-content select=\"[ngsUploadAreaIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n <div class=\"state\" [class.is-active]=\"!isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaMainState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropActive() && !isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaDropState]\"/>\n </div>\n <div class=\"state\" [class.is-active]=\"isDropInvalid()\">\n <ng-content select=\"[ngsUploadAreaInvalidState]\"/>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-file-list',\n exportAs: 'ngsFileList',\n templateUrl: './file-list.html',\n styleUrl: './file-list.scss',\n host: {\n 'class': 'ngs-file-list not-prose'\n }\n})\nexport class FileList {\n}\n","<ng-content/>\n","import { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { UploadFileState } from '../types';\n\n@Component({\n selector: 'ngs-file',\n exportAs: 'ngsFile',\n templateUrl: './file.html',\n styleUrl: './file.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-file not-prose',\n '[class.has-error]': \"state() === 'error'\"\n }\n})\nexport class File {\n name = input.required();\n size = input();\n progress = input(0, {\n transform: numberAttribute\n });\n progressingMessage = input();\n errorMessage = input();\n remainingTime = input();\n state = input<UploadFileState>('uploading');\n}\n","<div class=\"content\">\n <div class=\"flex items-center min-w-0\">\n <div class=\"overflow-hidden overflow-ellipsis whitespace-nowrap grow name\">{{ name() }}</div>\n <div class=\"controls\">\n <ng-content select=\"ngs-file-control,[ngs-file-control]\"/>\n </div>\n </div>\n @if (size() || (state() === 'uploading' && progress())) {\n <div class=\"info\">\n @if (size()) {\n <span class=\"uppercase\">{{ size() }}</span>\n }\n @if (size() && progress()) {\n ,\n }\n @if (progress()) {\n {{ progress() }}%\n }\n @if (remainingTime()) {\n {{ remainingTime() }}\n }\n </div>\n }\n @if (progress()) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress()\"></div>\n </div>\n }\n @if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-file-control,[ngs-file-control]',\n exportAs: 'ngsFileControl',\n templateUrl: './file-control.html',\n styleUrl: './file-control.scss',\n host: {\n 'class': 'ngs-file-control not-prose'\n }\n})\nexport class FileControl {\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-files-grid',\n exportAs: 'ngsFilesGrid',\n templateUrl: './files-grid.html',\n styleUrl: './files-grid.scss',\n host: {\n 'class': 'ngs-files-grid not-prose'\n }\n})\nexport class FilesGrid {\n\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { UploadFileState } from '../types';\nimport { Gauge, GaugeValue } from '@ngstarter-ui/components/gauge';\n\n@Component({\n selector: 'ngs-grid-file',\n exportAs: 'ngsGridFile',\n imports: [\n GaugeValue,\n Gauge\n ],\n templateUrl: './grid-file.html',\n styleUrl: './grid-file.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-grid-file not-prose',\n '[class.has-error]': \"state() === 'error'\"\n }\n})\nexport class GridFile {\n name = input.required();\n size = input();\n progress = input(0, {\n transform: numberAttribute\n });\n progressingMessage = input();\n errorMessage = input();\n remainingTime = input();\n state = input<UploadFileState>('uploading');\n}\n","<div class=\"flex items-center gap-2.5\">\n <div class=\"icon\">\n <ng-content select=\"[ngsFileIcon]\"/>\n </div>\n <div>\n <div class=\"text-sm overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ name() }}</div>\n @if (size()) {\n <div class=\"text-xs text-neutral-500 overflow-hidden text-ellipsis whitespace-nowrap max-w-[220px]\">{{ size() }}</div>\n }\n </div>\n</div>\n<div class=\"flex items-center gap-1\">\n @if (state() === 'uploading') {\n <ngs-gauge class=\"size-10\" [value]=\"progress()\">\n <ngs-gauge-value class=\"text-2xs\">{{ progress() }}%</ngs-gauge-value>\n </ngs-gauge>\n }\n\n <div class=\"controls\">\n <ng-content select=\"[ngsGridFileControl]\"/>\n </div>\n</div>\n\n@if (state() === 'error' && errorMessage()) {\n <div class=\"error\">\n {{ errorMessage() }}\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-container',\n imports: [],\n templateUrl: './upload-container.html',\n styleUrl: './upload-container.scss'\n})\nexport class UploadContainer {\n\n}\n","<ng-content select=\"ngs-upload-area\"/>\n<div class=\"flex items-center justify-between mt-2 hints\">\n <ng-content select=\"ngs-upload-allowed-types\"/>\n <ng-content select=\"ngs-upload-max-file-size\"/>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-max-file-size',\n imports: [],\n templateUrl: './upload-max-file-size.html',\n styleUrl: './upload-max-file-size.scss'\n})\nexport class UploadMaxFileSize {\n\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-upload-allowed-types',\n imports: [],\n templateUrl: './upload-allowed-types.html',\n styleUrl: './upload-allowed-types.scss'\n})\nexport class UploadAllowedTypes {\n\n}\n","<ng-content/>\n","import {\n booleanAttribute,\n DestroyRef,\n Directive, ElementRef,\n inject,\n input, output,\n Renderer2\n} from '@angular/core';\nimport { UploadFileSelectedEvent } from './types';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ngsUploadTrigger]',\n exportAs: 'ngsUploadTrigger',\n standalone: true,\n host: {\n '(click)': '_handleClick()'\n }\n})\nexport class UploadTriggerDirective {\n private _elementRef = inject(ElementRef);\n protected _renderer = inject(Renderer2);\n protected _destroyRef = inject(DestroyRef);\n\n accept = input<string>();\n multiple = input(false, {\n transform: booleanAttribute\n });\n\n readonly fileSelected = output<UploadFileSelectedEvent>();\n\n _handleClick() {\n const element: HTMLInputElement = this._renderer.createElement('input');\n this._renderer.setAttribute(element, 'type', 'file');\n let accept = this.accept();\n\n if (!accept) {\n accept = this._elementRef.nativeElement.getAttribute('accept') || '';\n }\n\n if (accept) {\n this._renderer.setAttribute(element, 'accept', accept);\n }\n\n if (this.multiple()) {\n this._renderer.setAttribute(element, 'multiple', '');\n }\n\n fromEvent(element, 'change')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(event => {\n const files: File[] = [];\n\n if (element.files) {\n for (let i = 0; i < element.files.length; i++) {\n files.push(element.files[i]);\n }\n }\n\n this.fileSelected.emit({\n multiple: this.multiple(),\n fileList: element.files,\n event,\n files\n });\n })\n ;\n element.click();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaIcon]'\n})\nexport class UploadAreaIconDirective {\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaMainState]'\n})\nexport class UploadAreaMainStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaDropState]'\n})\nexport class UploadAreaDropStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsUploadAreaInvalidState]'\n})\nexport class UploadAreaInvalidStateDirective {\n readonly templateRef = inject(TemplateRef, { optional: true });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsFileIcon]'\n})\nexport class FileIconDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsGridFileControl]'\n})\nexport class GridFileControlDirective {\n\n constructor() { }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ class VideoViewer {
35
35
  }, 250);
36
36
  }
37
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: VideoViewer, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: VideoViewer, isStandalone: true, selector: "ngs-video-viewer", host: { classAttribute: "ngs-video-viewer" }, exportAs: ["ngsVideoViewer"], ngImport: i0, template: "@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host:has(.aside) .content{padding-inline-end:420px}:host .title{font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .video-container{position:relative;display:flex;align-items:center;justify-content:center;height:90%;width:90%;max-height:90%;max-width:90%}:host .video-container ngs-video-player{opacity:0}:host .video-container.is-loaded ngs-video-player{opacity:100}:host .video-container .loader-container{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:5;display:flex;align-items:center;justify-content:center}:host .video-container ngs-video-player{max-height:90%;max-width:90%;transition:opacity .3s ease-in-out}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }, { kind: "component", type: VideoPlayer, selector: "ngs-video-player", inputs: ["src", "thumbnailUrl", "payload", "orientation", "autoPlay", "showPlayButton", "showSpeaker", "showFullscreen", "showDurationSlider", "disableClickToPlay", "muted", "withCredentials"], outputs: ["play", "pause", "ended", "loaded", "error"], exportAs: ["ngsVideoPlayer"] }, { kind: "component", type: ProgressSpinner, selector: "ngs-progress-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["ngsProgressSpinner"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: VideoViewer, isStandalone: true, selector: "ngs-video-viewer", host: { classAttribute: "ngs-video-viewer" }, exportAs: ["ngsVideoViewer"], ngImport: i0, template: "@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .content{box-shadow:var(--ngs-shadow-sm);z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host:has(.aside) .content{padding-inline-end:420px}:host .title{font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--ngs-color-neutral-700);color:var(--ngs-color-neutral-300)}:host .close{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--ngs-color-neutral-700);color:var(--ngs-color-neutral-300)}:host .close:hover{background:var(--ngs-color-neutral-800);color:var(--ngs-color-neutral-200)}:host .close:active{background:var(--ngs-color-neutral-950);color:var(--ngs-color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--ngs-color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .video-container{position:relative;display:flex;align-items:center;justify-content:center;height:90%;width:90%;max-height:90%;max-width:90%}:host .video-container ngs-video-player{opacity:0}:host .video-container.is-loaded ngs-video-player{opacity:100}:host .video-container .loader-container{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:5;display:flex;align-items:center;justify-content:center}:host .video-container ngs-video-player{max-height:90%;max-width:90%;transition:opacity .3s ease-in-out}:host-context(html.dark) .title{background:var(--ngs-color-neutral-100);color:var(--ngs-color-neutral-600)}:host-context(html.dark) .close{background:var(--ngs-color-neutral-100);color:var(--ngs-color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--ngs-color-neutral-200);color:var(--ngs-color-neutral-700)}:host-context(html.dark) .close:active{background:var(--ngs-color-neutral-300);color:var(--ngs-color-neutral-900)}:host-context(html.dark) .aside{background:var(--ngs-color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--ngs-color-neutral-400)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }, { kind: "component", type: VideoPlayer, selector: "ngs-video-player", inputs: ["src", "thumbnailUrl", "payload", "orientation", "autoPlay", "showPlayButton", "showSpeaker", "showFullscreen", "showDurationSlider", "disableClickToPlay", "muted", "withCredentials"], outputs: ["play", "pause", "ended", "loaded", "error"], exportAs: ["ngsVideoPlayer"] }, { kind: "component", type: ProgressSpinner, selector: "ngs-progress-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["ngsProgressSpinner"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: VideoViewer, decorators: [{
41
41
  type: Component,
@@ -46,7 +46,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
46
46
  NgTemplateOutlet
47
47
  ], host: {
48
48
  'class': 'ngs-video-viewer',
49
- }, template: "@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host:has(.aside) .content{padding-inline-end:420px}:host .title{font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .video-container{position:relative;display:flex;align-items:center;justify-content:center;height:90%;width:90%;max-height:90%;max-width:90%}:host .video-container ngs-video-player{opacity:0}:host .video-container.is-loaded ngs-video-player{opacity:100}:host .video-container .loader-container{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:5;display:flex;align-items:center;justify-content:center}:host .video-container ngs-video-player{max-height:90%;max-width:90%;transition:opacity .3s ease-in-out}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
49
+ }, template: "@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .content{box-shadow:var(--ngs-shadow-sm);z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host:has(.aside) .content{padding-inline-end:420px}:host .title{font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--ngs-color-neutral-700);color:var(--ngs-color-neutral-300)}:host .close{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--ngs-color-neutral-700);color:var(--ngs-color-neutral-300)}:host .close:hover{background:var(--ngs-color-neutral-800);color:var(--ngs-color-neutral-200)}:host .close:active{background:var(--ngs-color-neutral-950);color:var(--ngs-color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--ngs-color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .video-container{position:relative;display:flex;align-items:center;justify-content:center;height:90%;width:90%;max-height:90%;max-width:90%}:host .video-container ngs-video-player{opacity:0}:host .video-container.is-loaded ngs-video-player{opacity:100}:host .video-container .loader-container{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:5;display:flex;align-items:center;justify-content:center}:host .video-container ngs-video-player{max-height:90%;max-width:90%;transition:opacity .3s ease-in-out}:host-context(html.dark) .title{background:var(--ngs-color-neutral-100);color:var(--ngs-color-neutral-600)}:host-context(html.dark) .close{background:var(--ngs-color-neutral-100);color:var(--ngs-color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--ngs-color-neutral-200);color:var(--ngs-color-neutral-700)}:host-context(html.dark) .close:active{background:var(--ngs-color-neutral-300);color:var(--ngs-color-neutral-900)}:host-context(html.dark) .aside{background:var(--ngs-color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--ngs-color-neutral-400)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
50
50
  }] });
51
51
 
52
52
  class VideoViewerRef {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-video-viewer.mjs","sources":["../../../projects/components/video-viewer/src/types.ts","../../../projects/components/video-viewer/src/video-viewer/video-viewer.ts","../../../projects/components/video-viewer/src/video-viewer/video-viewer.html","../../../projects/components/video-viewer/src/video-viewer-ref.ts","../../../projects/components/video-viewer/src/video-viewer.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-caption.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-description.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-title.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video.directive.ts","../../../projects/components/video-viewer/ngstarter-ui-components-video-viewer.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { VideoViewerRef } from './video-viewer-ref';\n\nexport type VideoViewerOrientation = 'landscape' | 'portrait' | 'square' | string;\n\nexport interface VideoViewerOptions {\n sourceUrl: string;\n title?: string | undefined;\n caption?: string | undefined;\n description?: string | undefined;\n titleTplRef?: TemplateRef<any> | undefined;\n captionTplRef?: TemplateRef<any> | undefined;\n descriptionTplRef?: TemplateRef<any> | undefined;\n // Video player options\n payload?: any | null;\n orientation?: VideoViewerOrientation | undefined;\n autoPlay?: boolean;\n showPlayButton?: boolean;\n showSpeaker?: boolean;\n showFullscreen?: boolean;\n showDurationSlider?: boolean;\n muted?: boolean;\n}\n\nexport const VIDEO_VIEWER = new InjectionToken('VIDEO_VIEWER');\nexport const VIDEO_VIEWER_REF = new InjectionToken<VideoViewerRef>('VIDEO_VIEWER_REF');\nexport const VIDEO_VIEWER_DATA = new InjectionToken<VideoViewerOptions>('VIDEO_VIEWER_DATA');\n","import { Component, computed, inject, signal } from '@angular/core';\nimport { VIDEO_VIEWER_DATA, VIDEO_VIEWER_REF } from '../types';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { VideoPlayer } from '@ngstarter-ui/components/video-player';\nimport { ProgressSpinner } from '@ngstarter-ui/components/spinner';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ngs-video-viewer',\n exportAs: 'ngsVideoViewer',\n standalone: true,\n imports: [\n Icon,\n VideoPlayer,\n ProgressSpinner,\n NgTemplateOutlet\n ],\n templateUrl: './video-viewer.html',\n styleUrl: './video-viewer.scss',\n host: {\n 'class': 'ngs-video-viewer',\n }\n})\nexport class VideoViewer {\n readonly videoViewerRef = inject(VIDEO_VIEWER_REF);\n readonly data = inject(VIDEO_VIEWER_DATA);\n\n loaded = signal(false);\n\n hasTitle = computed(() => {\n return !!(this.data.title || this.data.titleTplRef);\n });\n\n hasAside = computed(() => {\n return !!(this.data.caption || this.data.description || this.data.captionTplRef || this.data.descriptionTplRef);\n });\n\n onBackdropClick(): void {\n this.videoViewerRef.close();\n }\n\n onPreventClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n onVideoLoaded() {\n setTimeout(() => {\n this.loaded.set(true);\n }, 250);\n }\n}\n","@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n","import { EventEmitter } from '@angular/core';\n\nexport class VideoViewerRef {\n readonly closed = new EventEmitter();\n\n close(): void {\n this.closed.emit();\n }\n}\n","import { DestroyRef, Directive, inject, Injector } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { VideoViewerRef } from './video-viewer-ref';\nimport { VideoViewer } from './video-viewer/video-viewer';\nimport { VIDEO_VIEWER_DATA, VIDEO_VIEWER_REF, VideoViewerOptions } from './types';\n\n@Directive({\n selector: '[ngsVideoViewer]',\n exportAs: 'ngsVideoViewer',\n standalone: true,\n host: {\n 'class': 'ngs-video-viewer',\n }\n})\nexport class VideoViewerDirective {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _destroyRef = inject(DestroyRef);\n\n get api() {\n return {\n open: (options: VideoViewerOptions): VideoViewerRef => this._open(options)\n }\n }\n\n private _open(options: VideoViewerOptions): VideoViewerRef {\n const videoViewerRef = new VideoViewerRef();\n const overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global(),\n hasBackdrop: true\n });\n const injector = Injector.create({\n providers: [\n {\n provide: VIDEO_VIEWER_REF,\n useValue: videoViewerRef\n },\n {\n provide: VIDEO_VIEWER_DATA,\n useValue: options\n }\n ],\n parent: this._injector\n });\n const portal = new ComponentPortal(VideoViewer, null, injector);\n overlayRef.attach(portal);\n videoViewerRef.closed.pipe(\n takeUntilDestroyed(this._destroyRef)\n ).subscribe(() => {\n overlayRef.detach();\n });\n return videoViewerRef;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoCaption]',\n standalone: true,\n})\nexport class VideoViewerVideoCaptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoDescription]',\n standalone: true,\n})\nexport class VideoViewerVideoDescriptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoTitle]',\n standalone: true,\n})\nexport class VideoViewerVideoTitleDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { booleanAttribute, contentChild, Directive, inject, input } from '@angular/core';\nimport { VIDEO_VIEWER, VideoViewerOrientation } from './types';\nimport { VideoViewerDirective } from './video-viewer.directive';\nimport { VideoViewerVideoCaptionDirective } from './video-viewer-video-caption.directive';\nimport { VideoViewerVideoDescriptionDirective } from './video-viewer-video-description.directive';\nimport { VideoViewerVideoTitleDirective } from './video-viewer-video-title.directive';\n\n@Directive({\n selector: '[ngsVideoViewerVideo]',\n exportAs: 'ngsVideoViewerVideo',\n standalone: true,\n providers: [\n {\n provide: VIDEO_VIEWER,\n useExisting: VideoViewerVideoDirective\n }\n ],\n host: {\n 'class': 'ngs-video-viewer-video',\n '(click)': 'onClick($event)'\n }\n})\nexport class VideoViewerVideoDirective {\n private _videoViewer = inject(VideoViewerDirective);\n private _titleTplRef = contentChild(VideoViewerVideoTitleDirective);\n private _captionTplRef = contentChild(VideoViewerVideoCaptionDirective);\n private _descriptionTplRef = contentChild(VideoViewerVideoDescriptionDirective);\n\n sourceUrl = input.required<string>();\n caption = input<string>();\n title = input<string>();\n description = input<string>();\n\n payload = input<any | null>(null);\n orientation = input<VideoViewerOrientation | undefined>(undefined);\n autoPlay = input(false, {\n transform: booleanAttribute\n });\n showPlayButton = input(true, {\n transform: booleanAttribute\n });\n showSpeaker = input(true, {\n transform: booleanAttribute\n });\n showFullscreen = input(true, {\n transform: booleanAttribute\n });\n showDurationSlider = input(true, {\n transform: booleanAttribute\n });\n muted = input(false, {\n transform: booleanAttribute\n });\n\n protected onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this._videoViewer.api.open({\n sourceUrl: this.sourceUrl(),\n title: this.title(),\n caption: this.caption(),\n description: this.description(),\n titleTplRef: this._titleTplRef()?.templateRef,\n captionTplRef: this._captionTplRef()?.templateRef,\n descriptionTplRef: this._descriptionTplRef()?.templateRef,\n payload: this.payload(),\n orientation: this.orientation(),\n autoPlay: this.autoPlay(),\n showPlayButton: this.showPlayButton(),\n showSpeaker: this.showSpeaker(),\n showFullscreen: this.showFullscreen(),\n showDurationSlider: this.showDurationSlider(),\n muted: this.muted()\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-video-viewer.mjs","sources":["../../../projects/components/video-viewer/src/types.ts","../../../projects/components/video-viewer/src/video-viewer/video-viewer.ts","../../../projects/components/video-viewer/src/video-viewer/video-viewer.html","../../../projects/components/video-viewer/src/video-viewer-ref.ts","../../../projects/components/video-viewer/src/video-viewer.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-caption.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-description.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video-title.directive.ts","../../../projects/components/video-viewer/src/video-viewer-video.directive.ts","../../../projects/components/video-viewer/ngstarter-ui-components-video-viewer.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { VideoViewerRef } from './video-viewer-ref';\n\nexport type VideoViewerOrientation = 'landscape' | 'portrait' | 'square' | string;\n\nexport interface VideoViewerOptions {\n sourceUrl: string;\n title?: string | undefined;\n caption?: string | undefined;\n description?: string | undefined;\n titleTplRef?: TemplateRef<any> | undefined;\n captionTplRef?: TemplateRef<any> | undefined;\n descriptionTplRef?: TemplateRef<any> | undefined;\n // Video player options\n payload?: any | null;\n orientation?: VideoViewerOrientation | undefined;\n autoPlay?: boolean;\n showPlayButton?: boolean;\n showSpeaker?: boolean;\n showFullscreen?: boolean;\n showDurationSlider?: boolean;\n muted?: boolean;\n}\n\nexport const VIDEO_VIEWER = new InjectionToken('VIDEO_VIEWER');\nexport const VIDEO_VIEWER_REF = new InjectionToken<VideoViewerRef>('VIDEO_VIEWER_REF');\nexport const VIDEO_VIEWER_DATA = new InjectionToken<VideoViewerOptions>('VIDEO_VIEWER_DATA');\n","import { Component, computed, inject, signal } from '@angular/core';\nimport { VIDEO_VIEWER_DATA, VIDEO_VIEWER_REF } from '../types';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { VideoPlayer } from '@ngstarter-ui/components/video-player';\nimport { ProgressSpinner } from '@ngstarter-ui/components/spinner';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ngs-video-viewer',\n exportAs: 'ngsVideoViewer',\n standalone: true,\n imports: [\n Icon,\n VideoPlayer,\n ProgressSpinner,\n NgTemplateOutlet\n ],\n templateUrl: './video-viewer.html',\n styleUrl: './video-viewer.scss',\n host: {\n 'class': 'ngs-video-viewer',\n }\n})\nexport class VideoViewer {\n readonly videoViewerRef = inject(VIDEO_VIEWER_REF);\n readonly data = inject(VIDEO_VIEWER_DATA);\n\n loaded = signal(false);\n\n hasTitle = computed(() => {\n return !!(this.data.title || this.data.titleTplRef);\n });\n\n hasAside = computed(() => {\n return !!(this.data.caption || this.data.description || this.data.captionTplRef || this.data.descriptionTplRef);\n });\n\n onBackdropClick(): void {\n this.videoViewerRef.close();\n }\n\n onPreventClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n onVideoLoaded() {\n setTimeout(() => {\n this.loaded.set(true);\n }, 250);\n }\n}\n","@if (hasTitle()) {\n <div class=\"title-container\">\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\" />\n } @else {\n {{ data.title }}\n }\n </div>\n </div>\n}\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"videoViewerRef.close()\" class=\"close\">\n <ngs-icon name=\"fluent:dismiss-24-regular\"/>\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"video-container\" [class.is-loaded]=\"loaded()\">\n @if (!loaded()) {\n <div class=\"absolute top-1/2 start-1/2 -transform-1/2 z-[1]\">\n <ngs-progress-spinner/>\n </div>\n }\n <ngs-video-player [src]=\"data.sourceUrl\"\n [payload]=\"data.payload\"\n [orientation]=\"data.orientation\"\n [autoPlay]=\"data.autoPlay ?? true\"\n [showPlayButton]=\"data.showPlayButton ?? true\"\n [showSpeaker]=\"data.showSpeaker ?? true\"\n [showFullscreen]=\"data.showFullscreen ?? true\"\n [showDurationSlider]=\"data.showDurationSlider ?? true\"\n [muted]=\"data.muted ?? false\"\n (loaded)=\"onVideoLoaded()\"\n (click)=\"onPreventClick($event)\"/>\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\" />\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\" />\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n","import { EventEmitter } from '@angular/core';\n\nexport class VideoViewerRef {\n readonly closed = new EventEmitter();\n\n close(): void {\n this.closed.emit();\n }\n}\n","import { DestroyRef, Directive, inject, Injector } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { VideoViewerRef } from './video-viewer-ref';\nimport { VideoViewer } from './video-viewer/video-viewer';\nimport { VIDEO_VIEWER_DATA, VIDEO_VIEWER_REF, VideoViewerOptions } from './types';\n\n@Directive({\n selector: '[ngsVideoViewer]',\n exportAs: 'ngsVideoViewer',\n standalone: true,\n host: {\n 'class': 'ngs-video-viewer',\n }\n})\nexport class VideoViewerDirective {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _destroyRef = inject(DestroyRef);\n\n get api() {\n return {\n open: (options: VideoViewerOptions): VideoViewerRef => this._open(options)\n }\n }\n\n private _open(options: VideoViewerOptions): VideoViewerRef {\n const videoViewerRef = new VideoViewerRef();\n const overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global(),\n hasBackdrop: true\n });\n const injector = Injector.create({\n providers: [\n {\n provide: VIDEO_VIEWER_REF,\n useValue: videoViewerRef\n },\n {\n provide: VIDEO_VIEWER_DATA,\n useValue: options\n }\n ],\n parent: this._injector\n });\n const portal = new ComponentPortal(VideoViewer, null, injector);\n overlayRef.attach(portal);\n videoViewerRef.closed.pipe(\n takeUntilDestroyed(this._destroyRef)\n ).subscribe(() => {\n overlayRef.detach();\n });\n return videoViewerRef;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoCaption]',\n standalone: true,\n})\nexport class VideoViewerVideoCaptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoDescription]',\n standalone: true,\n})\nexport class VideoViewerVideoDescriptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngsVideoViewerVideoTitle]',\n standalone: true,\n})\nexport class VideoViewerVideoTitleDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { booleanAttribute, contentChild, Directive, inject, input } from '@angular/core';\nimport { VIDEO_VIEWER, VideoViewerOrientation } from './types';\nimport { VideoViewerDirective } from './video-viewer.directive';\nimport { VideoViewerVideoCaptionDirective } from './video-viewer-video-caption.directive';\nimport { VideoViewerVideoDescriptionDirective } from './video-viewer-video-description.directive';\nimport { VideoViewerVideoTitleDirective } from './video-viewer-video-title.directive';\n\n@Directive({\n selector: '[ngsVideoViewerVideo]',\n exportAs: 'ngsVideoViewerVideo',\n standalone: true,\n providers: [\n {\n provide: VIDEO_VIEWER,\n useExisting: VideoViewerVideoDirective\n }\n ],\n host: {\n 'class': 'ngs-video-viewer-video',\n '(click)': 'onClick($event)'\n }\n})\nexport class VideoViewerVideoDirective {\n private _videoViewer = inject(VideoViewerDirective);\n private _titleTplRef = contentChild(VideoViewerVideoTitleDirective);\n private _captionTplRef = contentChild(VideoViewerVideoCaptionDirective);\n private _descriptionTplRef = contentChild(VideoViewerVideoDescriptionDirective);\n\n sourceUrl = input.required<string>();\n caption = input<string>();\n title = input<string>();\n description = input<string>();\n\n payload = input<any | null>(null);\n orientation = input<VideoViewerOrientation | undefined>(undefined);\n autoPlay = input(false, {\n transform: booleanAttribute\n });\n showPlayButton = input(true, {\n transform: booleanAttribute\n });\n showSpeaker = input(true, {\n transform: booleanAttribute\n });\n showFullscreen = input(true, {\n transform: booleanAttribute\n });\n showDurationSlider = input(true, {\n transform: booleanAttribute\n });\n muted = input(false, {\n transform: booleanAttribute\n });\n\n protected onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this._videoViewer.api.open({\n sourceUrl: this.sourceUrl(),\n title: this.title(),\n caption: this.caption(),\n description: this.description(),\n titleTplRef: this._titleTplRef()?.templateRef,\n captionTplRef: this._captionTplRef()?.templateRef,\n descriptionTplRef: this._descriptionTplRef()?.templateRef,\n payload: this.payload(),\n orientation: this.orientation(),\n autoPlay: this.autoPlay(),\n showPlayButton: this.showPlayButton(),\n showSpeaker: this.showSpeaker(),\n showFullscreen: this.showFullscreen(),\n showDurationSlider: this.showDurationSlider(),\n muted: this.muted()\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "1.0.27",
4
+ "version": "1.0.30",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -22,7 +22,13 @@
22
22
  "angular ui"
23
23
  ],
24
24
  "ng-add": {
25
- "save": "devDependencies"
25
+ "save": "dependencies"
26
+ },
27
+ "ng-update": {
28
+ "migrations": "./schematics/migrations.json",
29
+ "packageGroup": [
30
+ "@ngstarter-ui/components"
31
+ ]
26
32
  },
27
33
  "schematics": "./schematics/collection.json",
28
34
  "peerDependencies": {
@@ -36,6 +42,11 @@
36
42
  "@angular/ssr": "^21.1.4"
37
43
  },
38
44
  "dependencies": {
45
+ "@tailwindcss/postcss": "^4.2.2",
46
+ "@tailwindcss/typography": "^0.5.19",
47
+ "autoprefixer": "^10.4.17",
48
+ "postcss": "^8.5.2",
49
+ "tailwindcss": "^4.2.2",
39
50
  "tslib": "^2.3.0",
40
51
  "jsdom": "^26.1.0"
41
52
  },
@@ -45,7 +56,8 @@
45
56
  "registry": "https://registry.npmjs.org/"
46
57
  },
47
58
  "exports": {
48
- "./styles/themes/": "./styles/themes/",
59
+ "./styles/*": "./styles/*",
60
+ "./styles/themes/*": "./styles/themes/*",
49
61
  "./package.json": {
50
62
  "default": "./package.json"
51
63
  },
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Install @ngstarter-ui/components and configure Tailwind CSS.",
6
+ "factory": "./ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "update-dependencies": {
5
+ "version": "1.0.28",
6
+ "description": "Update @ngstarter-ui/components dependencies and Tailwind CSS setup.",
7
+ "factory": "./ng-update/index#ngUpdate",
8
+ "schema": "./ng-update/schema.json"
9
+ }
10
+ }
11
+ }