@ojiepermana/angular 22.1.14 → 22.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-DYuysKVf.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-COiTaw34.mjs +812 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-COQ-60DS.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-YIz0IsIb.mjs} +392 -207
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-D2vwEwBY.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-B5D7yXfb.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-CUb68MZH.mjs +1219 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-CrK16trj.mjs +327 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +544 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +139 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3256 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1125 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1928 -553
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -496
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +69 -18
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +166 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +708 -375
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +120 -86
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +446 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -113
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-Be3IqzG4.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-Bc7DWK3R.mjs +0 -522
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-DA8VPEn7.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-U2TJTzlW.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-CIUhmytH.mjs +0 -2668
@@ -1,143 +1,244 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, PLATFORM_ID, Service, input, computed, Component, makeEnvironmentProviders, provideEnvironmentInitializer } from '@angular/core';
3
- import { DOCUMENT, isPlatformBrowser } from '@angular/common';
4
-
5
- const MATERIAL_SYMBOLS_FONT_ATTR = 'data-icon-font';
6
- const MATERIAL_SYMBOLS_FONT_ID = 'material-symbols';
7
- /**
8
- * Loads BOTH Material Symbols variable families the design system uses:
9
- * Rounded (the default everywhere) and Sharp (swapped in under
10
- * `appearance='border-rail'` scopes via the `--icon-font-family` token).
11
- * Full variable axes are requested so per-icon `fill`/`weight`/`grade`/
12
- * `opticalSize` inputs keep working.
13
- */
14
- const MATERIAL_SYMBOLS_FONT_HREF = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block';
15
- /**
16
- * Presence of this token is what enables {@link IconComponent} to auto-load the
17
- * font. It is only provided when the app opts in via `provideMaterialSymbols()`;
18
- * without it, `<Icon>` makes no network request.
19
- */
20
- const MATERIAL_SYMBOLS_CONFIG = new InjectionToken('MATERIAL_SYMBOLS_CONFIG');
21
- class MaterialSymbolsService {
22
- documentRef = inject(DOCUMENT, { optional: true });
23
- platformId = inject(PLATFORM_ID);
24
- config = inject(MATERIAL_SYMBOLS_CONFIG, { optional: true });
25
- /**
26
- * Token-gated load. No-op unless the app opted in via `provideMaterialSymbols()`
27
- * (which provides {@link MATERIAL_SYMBOLS_CONFIG}). Called by `IconComponent`
28
- * so rendering an icon never triggers an implicit network request on its own.
29
- */
30
- ensureLoaded() {
31
- if (!this.config) {
32
- return;
33
- }
34
- this.load(this.config);
35
- }
36
- /**
37
- * Explicitly inject the font stylesheet, regardless of whether the config
38
- * token is present. Used by integrations that decide to load the font from
39
- * their own option surface (e.g. `provideUiTheme({ icons: { materialSymbols: true } })`).
40
- */
41
- load(config) {
42
- const head = this.documentRef?.head;
43
- if (!isPlatformBrowser(this.platformId) || !head) {
44
- return;
45
- }
46
- const existing = head.querySelector(`link[${MATERIAL_SYMBOLS_FONT_ATTR}="${MATERIAL_SYMBOLS_FONT_ID}"]`);
47
- if (existing) {
48
- return;
49
- }
50
- const link = head.ownerDocument.createElement('link');
51
- link.rel = 'stylesheet';
52
- link.href = config?.href ?? MATERIAL_SYMBOLS_FONT_HREF;
53
- link.setAttribute(MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_ID);
54
- head.appendChild(link);
55
- }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: MaterialSymbolsService, deps: [], target: i0.ɵɵFactoryTarget.Service });
57
- static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.6", ngImport: i0, type: MaterialSymbolsService });
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: MaterialSymbolsService, decorators: [{
60
- type: Service
61
- }] });
62
-
63
- /** Render-size fallback (px) when no `size` is given — independent of the
64
- * `opticalSize` VARIATION axis, which stays at the design's 48 grid. */
1
+ import * as i0 from "@angular/core";
2
+ import { Component, InjectionToken, PLATFORM_ID, Service, computed, inject, input, makeEnvironmentProviders, provideEnvironmentInitializer } from "@angular/core";
3
+ import { DOCUMENT, isPlatformBrowser } from "@angular/common";
4
+ const MATERIAL_SYMBOLS_FONT_ATTR = "data-icon-font";
5
+ const MATERIAL_SYMBOLS_FONT_ID = "material-symbols";
6
+ const MATERIAL_SYMBOLS_FONT_HREF = "https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block";
7
+ const MATERIAL_SYMBOLS_CONFIG = new InjectionToken("MATERIAL_SYMBOLS_CONFIG");
8
+ var MaterialSymbolsService = class MaterialSymbolsService {
9
+ documentRef = inject(DOCUMENT, { optional: true });
10
+ platformId = inject(PLATFORM_ID);
11
+ config = inject(MATERIAL_SYMBOLS_CONFIG, { optional: true });
12
+ ensureLoaded() {
13
+ if (!this.config) return;
14
+ this.load(this.config);
15
+ }
16
+ load(config) {
17
+ const head = this.documentRef?.head;
18
+ if (!isPlatformBrowser(this.platformId) || !head) return;
19
+ if (head.querySelector(`link[${MATERIAL_SYMBOLS_FONT_ATTR}="${MATERIAL_SYMBOLS_FONT_ID}"]`)) return;
20
+ const link = head.ownerDocument.createElement("link");
21
+ link.rel = "stylesheet";
22
+ link.href = config?.href ?? "https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block";
23
+ link.setAttribute(MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_ID);
24
+ head.appendChild(link);
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({
27
+ minVersion: "12.0.0",
28
+ version: "22.2.2",
29
+ ngImport: i0,
30
+ type: MaterialSymbolsService,
31
+ deps: [],
32
+ target: i0.ɵɵFactoryTarget.Service
33
+ });
34
+ static ɵprov = i0.ɵɵngDeclareService({
35
+ minVersion: "22.0.0",
36
+ version: "22.2.2",
37
+ ngImport: i0,
38
+ type: MaterialSymbolsService
39
+ });
40
+ };
41
+ i0.ɵɵngDeclareClassMetadata({
42
+ minVersion: "12.0.0",
43
+ version: "22.2.2",
44
+ ngImport: i0,
45
+ type: MaterialSymbolsService,
46
+ decorators: [{ type: Service }]
47
+ });
65
48
  const DEFAULT_RENDER_SIZE = 24;
66
- class IconComponent {
67
- materialSymbols = inject(MaterialSymbolsService);
68
- name = input('', /* @ts-ignore */
69
- ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
70
- class = input('', { ...(ngDevMode ? { debugName: "class" } : /* istanbul ignore next */ {}), alias: 'class' });
71
- /** Glyph size in px, or 'inherit' to defer to the surrounding font-size
72
- * (lets a CSS token size the glyph — no inline style is emitted). */
73
- size = input(null, /* @ts-ignore */
74
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
75
- fill = input(0, /* @ts-ignore */
76
- ...(ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []));
77
- /** Light strokes + high-emphasis grade at the 48 optical grid — the
78
- * system's icon voice. Override per icon only with intent. */
79
- weight = input(300, /* @ts-ignore */
80
- ...(ngDevMode ? [{ debugName: "weight" }] : /* istanbul ignore next */ []));
81
- grade = input(200, /* @ts-ignore */
82
- ...(ngDevMode ? [{ debugName: "grade" }] : /* istanbul ignore next */ []));
83
- opticalSize = input(48, /* @ts-ignore */
84
- ...(ngDevMode ? [{ debugName: "opticalSize" }] : /* istanbul ignore next */ []));
85
- resolvedSize = computed(() => {
86
- const size = this.size();
87
- return size === 'inherit' ? null : (size ?? DEFAULT_RENDER_SIZE);
88
- }, /* @ts-ignore */
89
- ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
90
- fontVariationSettings = computed(() => `"FILL" ${this.fill()}, "wght" ${this.weight()}, "GRAD" ${this.grade()}, "opsz" ${this.opticalSize()}`, /* @ts-ignore */
91
- ...(ngDevMode ? [{ debugName: "fontVariationSettings" }] : /* istanbul ignore next */ []));
92
- classes = computed(() => {
93
- const base = 'material-symbols inline-flex items-center justify-center leading-none select-none';
94
- const extra = this.class();
95
- return extra ? `${base} ${extra}` : base;
96
- }, /* @ts-ignore */
97
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
98
- constructor() {
99
- this.materialSymbols.ensureLoaded();
100
- }
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: IconComponent, isStandalone: true, selector: "Icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: "weight", publicName: "weight", isSignal: true, isRequired: false, transformFunction: null }, grade: { classPropertyName: "grade", publicName: "grade", isSignal: true, isRequired: false, transformFunction: null }, opticalSize: { classPropertyName: "opticalSize", publicName: "opticalSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true", "translate": "no" }, properties: { "class": "classes()", "style.font-size.px": "resolvedSize()", "style.line-height.px": "resolvedSize()", "style.font-variation-settings": "fontVariationSettings()" } }, ngImport: i0, template: `{{ name() }}`, isInline: true, styles: [":host{font-family:var(--icon-font-family, \"Material Symbols Rounded\");font-weight:400;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] });
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: IconComponent, decorators: [{
105
- type: Component,
106
- args: [{ selector: 'Icon', host: {
107
- '[class]': 'classes()',
108
- '[style.font-size.px]': 'resolvedSize()',
109
- '[style.line-height.px]': 'resolvedSize()',
110
- '[style.font-variation-settings]': 'fontVariationSettings()',
111
- 'aria-hidden': 'true',
112
- translate: 'no',
113
- }, template: `{{ name() }}`, styles: [":host{font-family:var(--icon-font-family, \"Material Symbols Rounded\");font-weight:400;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
114
- }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], weight: [{ type: i0.Input, args: [{ isSignal: true, alias: "weight", required: false }] }], grade: [{ type: i0.Input, args: [{ isSignal: true, alias: "grade", required: false }] }], opticalSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "opticalSize", required: false }] }] } });
115
-
116
- /**
117
- * Opt in to loading the Material Symbols icon font that `<Icon>` renders with.
118
- *
119
- * By default `IconComponent` makes **no** network request — better for privacy,
120
- * offline, and strict CSP. Add this provider to your bootstrap to fetch the font
121
- * stylesheet once at startup. Pass `{ href }` to load from a self-hosted source
122
- * instead of Google Fonts.
123
- *
124
- * @example
125
- * // Google Fonts (default source):
126
- * bootstrapApplication(App, { providers: [provideMaterialSymbols()] });
127
- *
128
- * @example
129
- * // Self-hosted / offline:
130
- * provideMaterialSymbols({ href: '/assets/material-symbols.css' });
131
- */
49
+ var IconComponent = class IconComponent {
50
+ materialSymbols = inject(MaterialSymbolsService);
51
+ name = input("", ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
52
+ class = input("", {
53
+ ...ngDevMode ? { debugName: "class" } : /* istanbul ignore next */ {},
54
+ alias: "class"
55
+ });
56
+ size = input(null, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
57
+ fill = input(0, ...ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []);
58
+ weight = input(300, ...ngDevMode ? [{ debugName: "weight" }] : /* istanbul ignore next */ []);
59
+ grade = input(200, ...ngDevMode ? [{ debugName: "grade" }] : /* istanbul ignore next */ []);
60
+ opticalSize = input(48, ...ngDevMode ? [{ debugName: "opticalSize" }] : /* istanbul ignore next */ []);
61
+ resolvedSize = computed(() => {
62
+ const size = this.size();
63
+ return size === "inherit" ? null : size ?? DEFAULT_RENDER_SIZE;
64
+ }, ...ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []);
65
+ fontVariationSettings = computed(() => `"FILL" ${this.fill()}, "wght" ${this.weight()}, "GRAD" ${this.grade()}, "opsz" ${this.opticalSize()}`, ...ngDevMode ? [{ debugName: "fontVariationSettings" }] : /* istanbul ignore next */ []);
66
+ classes = computed(() => {
67
+ const base = "material-symbols inline-flex items-center justify-center leading-none select-none";
68
+ const extra = this.class();
69
+ return extra ? `${base} ${extra}` : base;
70
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
71
+ constructor() {
72
+ this.materialSymbols.ensureLoaded();
73
+ }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({
75
+ minVersion: "12.0.0",
76
+ version: "22.2.2",
77
+ ngImport: i0,
78
+ type: IconComponent,
79
+ deps: [],
80
+ target: i0.ɵɵFactoryTarget.Component
81
+ });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({
83
+ minVersion: "17.1.0",
84
+ version: "22.2.2",
85
+ type: IconComponent,
86
+ isStandalone: true,
87
+ selector: "Icon",
88
+ inputs: {
89
+ name: {
90
+ classPropertyName: "name",
91
+ publicName: "name",
92
+ isSignal: true,
93
+ isRequired: false,
94
+ transformFunction: null
95
+ },
96
+ class: {
97
+ classPropertyName: "class",
98
+ publicName: "class",
99
+ isSignal: true,
100
+ isRequired: false,
101
+ transformFunction: null
102
+ },
103
+ size: {
104
+ classPropertyName: "size",
105
+ publicName: "size",
106
+ isSignal: true,
107
+ isRequired: false,
108
+ transformFunction: null
109
+ },
110
+ fill: {
111
+ classPropertyName: "fill",
112
+ publicName: "fill",
113
+ isSignal: true,
114
+ isRequired: false,
115
+ transformFunction: null
116
+ },
117
+ weight: {
118
+ classPropertyName: "weight",
119
+ publicName: "weight",
120
+ isSignal: true,
121
+ isRequired: false,
122
+ transformFunction: null
123
+ },
124
+ grade: {
125
+ classPropertyName: "grade",
126
+ publicName: "grade",
127
+ isSignal: true,
128
+ isRequired: false,
129
+ transformFunction: null
130
+ },
131
+ opticalSize: {
132
+ classPropertyName: "opticalSize",
133
+ publicName: "opticalSize",
134
+ isSignal: true,
135
+ isRequired: false,
136
+ transformFunction: null
137
+ }
138
+ },
139
+ host: {
140
+ attributes: {
141
+ "aria-hidden": "true",
142
+ "translate": "no"
143
+ },
144
+ properties: {
145
+ "class": "classes()",
146
+ "style.font-size.px": "resolvedSize()",
147
+ "style.line-height.px": "resolvedSize()",
148
+ "style.font-variation-settings": "fontVariationSettings()"
149
+ }
150
+ },
151
+ ngImport: i0,
152
+ template: `{{ name() }}`,
153
+ isInline: true,
154
+ styles: [":host{font-family:var(--icon-font-family, \"Material Symbols Rounded\");font-weight:400;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"]
155
+ });
156
+ };
157
+ i0.ɵɵngDeclareClassMetadata({
158
+ minVersion: "12.0.0",
159
+ version: "22.2.2",
160
+ ngImport: i0,
161
+ type: IconComponent,
162
+ decorators: [{
163
+ type: Component,
164
+ args: [{
165
+ selector: "Icon",
166
+ host: {
167
+ "[class]": "classes()",
168
+ "[style.font-size.px]": "resolvedSize()",
169
+ "[style.line-height.px]": "resolvedSize()",
170
+ "[style.font-variation-settings]": "fontVariationSettings()",
171
+ "aria-hidden": "true",
172
+ translate: "no"
173
+ },
174
+ template: `{{ name() }}`,
175
+ styles: [":host{font-family:var(--icon-font-family, \"Material Symbols Rounded\");font-weight:400;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"]
176
+ }]
177
+ }],
178
+ ctorParameters: () => [],
179
+ propDecorators: {
180
+ name: [{
181
+ type: i0.Input,
182
+ args: [{
183
+ isSignal: true,
184
+ alias: "name",
185
+ required: false
186
+ }]
187
+ }],
188
+ class: [{
189
+ type: i0.Input,
190
+ args: [{
191
+ isSignal: true,
192
+ alias: "class",
193
+ required: false
194
+ }]
195
+ }],
196
+ size: [{
197
+ type: i0.Input,
198
+ args: [{
199
+ isSignal: true,
200
+ alias: "size",
201
+ required: false
202
+ }]
203
+ }],
204
+ fill: [{
205
+ type: i0.Input,
206
+ args: [{
207
+ isSignal: true,
208
+ alias: "fill",
209
+ required: false
210
+ }]
211
+ }],
212
+ weight: [{
213
+ type: i0.Input,
214
+ args: [{
215
+ isSignal: true,
216
+ alias: "weight",
217
+ required: false
218
+ }]
219
+ }],
220
+ grade: [{
221
+ type: i0.Input,
222
+ args: [{
223
+ isSignal: true,
224
+ alias: "grade",
225
+ required: false
226
+ }]
227
+ }],
228
+ opticalSize: [{
229
+ type: i0.Input,
230
+ args: [{
231
+ isSignal: true,
232
+ alias: "opticalSize",
233
+ required: false
234
+ }]
235
+ }]
236
+ }
237
+ });
132
238
  function provideMaterialSymbols(config = {}) {
133
- return makeEnvironmentProviders([
134
- { provide: MATERIAL_SYMBOLS_CONFIG, useValue: config },
135
- provideEnvironmentInitializer(() => inject(MaterialSymbolsService).ensureLoaded()),
136
- ]);
239
+ return makeEnvironmentProviders([{
240
+ provide: MATERIAL_SYMBOLS_CONFIG,
241
+ useValue: config
242
+ }, provideEnvironmentInitializer(() => inject(MaterialSymbolsService).ensureLoaded())]);
137
243
  }
138
-
139
- /**
140
- * Generated bundle index. Do not edit.
141
- */
142
-
143
- export { IconComponent, MATERIAL_SYMBOLS_CONFIG, MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_HREF, MATERIAL_SYMBOLS_FONT_ID, MaterialSymbolsService, provideMaterialSymbols };
244
+ export { IconComponent, MATERIAL_SYMBOLS_CONFIG, MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_HREF, MATERIAL_SYMBOLS_FONT_ID, MaterialSymbolsService, provideMaterialSymbols };