@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,192 +1,380 @@
1
- import * as i0 from '@angular/core';
2
- import { Directive, inject, input, model, computed, forwardRef, Component, ElementRef } from '@angular/core';
3
- import { cn, injectUniqueId } from '@ojiepermana/angular/component/utils/core';
4
- import * as i1 from '@ojiepermana/angular/component/utils/scale';
5
- import { ComponentScaleDirective } from '@ojiepermana/angular/component/utils/scale';
6
-
7
- class AccordionContextBase {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionContextBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AccordionContextBase, isStandalone: true, ngImport: i0 });
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionContextBase, decorators: [{
12
- type: Directive
13
- }] });
14
- class AccordionComponent extends AccordionContextBase {
15
- componentScale = inject(ComponentScaleDirective);
16
- radius = this.componentScale.radius;
17
- density = this.componentScale.density;
18
- type = input('single', /* @ts-ignore */
19
- ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
20
- collapsible = input(true, /* @ts-ignore */
21
- ...(ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []));
22
- value = model(null, /* @ts-ignore */
23
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
24
- class = input('', /* @ts-ignore */
25
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
26
- classes = computed(() => cn('block', this.class()), /* @ts-ignore */
27
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
28
- openSet = computed(() => {
29
- const v = this.value();
30
- if (v == null)
31
- return new Set();
32
- return new Set(Array.isArray(v) ? v : [v]);
33
- }, /* @ts-ignore */
34
- ...(ngDevMode ? [{ debugName: "openSet" }] : /* istanbul ignore next */ []));
35
- isOpen(value) {
36
- return this.openSet().has(value);
37
- }
38
- /**
39
- * Header elements, so arrow keys can move between them.
40
- *
41
- * Kept as a set of elements rather than an ordered list: registration order
42
- * follows creation order, which is not the reading order once items are added,
43
- * removed, or reordered. {@link orderedTriggers} sorts by document position so
44
- * the keyboard always follows what the user sees.
45
- */
46
- triggers = new Set();
47
- registerTrigger(element) {
48
- this.triggers.add(element);
49
- }
50
- unregisterTrigger(element) {
51
- this.triggers.delete(element);
52
- }
53
- /** Move focus between headers, wrapping around, the way Tabs does. */
54
- moveTriggerFocus(from, offset) {
55
- const triggers = this.orderedTriggers();
56
- const currentIndex = triggers.indexOf(from);
57
- if (currentIndex < 0 || triggers.length === 0)
58
- return;
59
- const next = triggers[(currentIndex + offset + triggers.length) % triggers.length];
60
- next?.focus();
61
- }
62
- focusFirstTrigger() {
63
- this.orderedTriggers()[0]?.focus();
64
- }
65
- focusLastTrigger() {
66
- const triggers = this.orderedTriggers();
67
- triggers[triggers.length - 1]?.focus();
68
- }
69
- orderedTriggers() {
70
- return [...this.triggers]
71
- .filter((element) => element.isConnected && !element.disabled)
72
- .sort((a, b) => (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1));
73
- }
74
- toggle(value) {
75
- const isMulti = this.type() === 'multiple';
76
- const current = this.openSet();
77
- const open = current.has(value);
78
- if (isMulti) {
79
- const next = new Set(current);
80
- if (open) {
81
- next.delete(value);
82
- }
83
- else {
84
- next.add(value);
85
- }
86
- this.value.set([...next]);
87
- }
88
- else {
89
- if (open) {
90
- if (this.collapsible())
91
- this.value.set(null);
92
- }
93
- else {
94
- this.value.set(value);
95
- }
96
- }
97
- }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
99
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AccordionComponent, isStandalone: true, selector: "Accordion", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()" } }, providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }], usesInheritance: true, hostDirectives: [{ directive: i1.ComponentScaleDirective, inputs: ["radius", "radius", "density", "density"] }], ngImport: i0, template: `<ng-content />`, isInline: true });
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionComponent, decorators: [{
102
- type: Component,
103
- args: [{
104
- selector: 'Accordion',
105
- hostDirectives: [
106
- {
107
- directive: ComponentScaleDirective,
108
- inputs: ['radius', 'density'],
109
- },
110
- ],
111
- providers: [{ provide: AccordionContextBase, useExisting: forwardRef(() => AccordionComponent) }],
112
- host: {
113
- '[class]': 'classes()',
114
- },
115
- template: `<ng-content />`,
116
- }]
117
- }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
118
- class AccordionItemComponent {
119
- ctx = inject(AccordionContextBase);
120
- value = input.required(/* @ts-ignore */
121
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
122
- disabled = input(false, /* @ts-ignore */
123
- ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
124
- class = input('', /* @ts-ignore */
125
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
126
- triggerId = injectUniqueId('AccordionTrigger');
127
- contentId = injectUniqueId('AccordionContent');
128
- classes = computed(() => cn('block border-b border-border', this.class()), /* @ts-ignore */
129
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
130
- open = computed(() => this.ctx.isOpen(this.value()), /* @ts-ignore */
131
- ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
132
- toggle() {
133
- if (!this.disabled())
134
- this.ctx.toggle(this.value());
135
- }
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AccordionItemComponent, isStandalone: true, selector: "AccordionItem", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-state": "open() ? \"open\" : \"closed\"", "attr.data-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
138
- }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionItemComponent, decorators: [{
140
- type: Component,
141
- args: [{
142
- selector: 'AccordionItem',
143
- host: {
144
- '[class]': 'classes()',
145
- '[attr.data-state]': 'open() ? "open" : "closed"',
146
- '[attr.data-disabled]': 'disabled() ? "" : null',
147
- },
148
- template: `<ng-content />`,
149
- }]
150
- }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
151
- class AccordionTriggerComponent {
152
- item = inject(AccordionItemComponent);
153
- accordion = inject(AccordionComponent, { optional: true });
154
- el = inject(ElementRef);
155
- class = input('', /* @ts-ignore */
156
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
157
- classes = computed(() => cn('flex flex-1 w-full items-center justify-between py-4 text-sm font-medium', 'transition-all hover:underline', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:pointer-events-none disabled:opacity-50', this.class()), /* @ts-ignore */
158
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
159
- ngOnInit() {
160
- this.accordion?.registerTrigger(this.el.nativeElement);
161
- }
162
- ngOnDestroy() {
163
- this.accordion?.unregisterTrigger(this.el.nativeElement);
164
- }
165
- /**
166
- * Arrow keys move focus between headers; they never open or close a section.
167
- * Enter and Space still do the toggling, which is the accordion pattern and
168
- * matches how Tabs moves between its triggers.
169
- */
170
- onArrow(event, offset) {
171
- if (!this.accordion)
172
- return;
173
- event.preventDefault();
174
- this.accordion.moveTriggerFocus(this.el.nativeElement, offset);
175
- }
176
- onHome(event) {
177
- if (!this.accordion)
178
- return;
179
- event.preventDefault();
180
- this.accordion.focusFirstTrigger();
181
- }
182
- onEnd(event) {
183
- if (!this.accordion)
184
- return;
185
- event.preventDefault();
186
- this.accordion.focusLastTrigger();
187
- }
188
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
189
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AccordionTriggerComponent, isStandalone: true, selector: "button[AccordionTrigger]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "click": "item.toggle()", "keydown.arrowDown": "onArrow($any($event), 1)", "keydown.arrowUp": "onArrow($any($event), -1)", "keydown.home": "onHome($any($event))", "keydown.end": "onEnd($any($event))" }, properties: { "class": "classes()", "attr.id": "item.triggerId", "attr.aria-controls": "item.contentId", "attr.aria-expanded": "item.open()", "attr.data-state": "item.open() ? \"open\" : \"closed\"", "disabled": "item.disabled() || null" } }, ngImport: i0, template: `
1
+ import * as i0 from "@angular/core";
2
+ import { Component, Directive, ElementRef, computed, forwardRef, inject, input, model } from "@angular/core";
3
+ import { cn, injectUniqueId } from "@ojiepermana/angular/component/utils/core";
4
+ import * as i1 from "@ojiepermana/angular/component/utils/scale";
5
+ import { ComponentScaleDirective } from "@ojiepermana/angular/component/utils/scale";
6
+ var AccordionContextBase = class AccordionContextBase {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({
8
+ minVersion: "12.0.0",
9
+ version: "22.2.2",
10
+ ngImport: i0,
11
+ type: AccordionContextBase,
12
+ deps: [],
13
+ target: i0.ɵɵFactoryTarget.Directive
14
+ });
15
+ static ɵdir = i0.ɵɵngDeclareDirective({
16
+ minVersion: "14.0.0",
17
+ version: "22.2.2",
18
+ type: AccordionContextBase,
19
+ isStandalone: true,
20
+ ngImport: i0
21
+ });
22
+ };
23
+ i0.ɵɵngDeclareClassMetadata({
24
+ minVersion: "12.0.0",
25
+ version: "22.2.2",
26
+ ngImport: i0,
27
+ type: AccordionContextBase,
28
+ decorators: [{ type: Directive }]
29
+ });
30
+ var AccordionComponent = class AccordionComponent extends AccordionContextBase {
31
+ componentScale = inject(ComponentScaleDirective);
32
+ radius = this.componentScale.radius;
33
+ density = this.componentScale.density;
34
+ type = input("single", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
35
+ collapsible = input(true, ...ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []);
36
+ value = model(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
37
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
38
+ classes = computed(() => cn("block", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
39
+ openSet = computed(() => {
40
+ const v = this.value();
41
+ if (v == null) return /* @__PURE__ */ new Set();
42
+ return new Set(Array.isArray(v) ? v : [v]);
43
+ }, ...ngDevMode ? [{ debugName: "openSet" }] : /* istanbul ignore next */ []);
44
+ isOpen(value) {
45
+ return this.openSet().has(value);
46
+ }
47
+ triggers = /* @__PURE__ */ new Set();
48
+ registerTrigger(element) {
49
+ this.triggers.add(element);
50
+ }
51
+ unregisterTrigger(element) {
52
+ this.triggers.delete(element);
53
+ }
54
+ moveTriggerFocus(from, offset) {
55
+ const triggers = this.orderedTriggers();
56
+ const currentIndex = triggers.indexOf(from);
57
+ if (currentIndex < 0 || triggers.length === 0) return;
58
+ triggers[(currentIndex + offset + triggers.length) % triggers.length]?.focus();
59
+ }
60
+ focusFirstTrigger() {
61
+ this.orderedTriggers()[0]?.focus();
62
+ }
63
+ focusLastTrigger() {
64
+ const triggers = this.orderedTriggers();
65
+ triggers[triggers.length - 1]?.focus();
66
+ }
67
+ orderedTriggers() {
68
+ return [...this.triggers].filter((element) => element.isConnected && !element.disabled).sort((a, b) => a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1);
69
+ }
70
+ toggle(value) {
71
+ const isMulti = this.type() === "multiple";
72
+ const current = this.openSet();
73
+ const open = current.has(value);
74
+ if (isMulti) {
75
+ const next = new Set(current);
76
+ if (open) next.delete(value);
77
+ else next.add(value);
78
+ this.value.set([...next]);
79
+ } else if (open) {
80
+ if (this.collapsible()) this.value.set(null);
81
+ } else this.value.set(value);
82
+ }
83
+ static ɵfac = i0.ɵɵngDeclareFactory({
84
+ minVersion: "12.0.0",
85
+ version: "22.2.2",
86
+ ngImport: i0,
87
+ type: AccordionComponent,
88
+ deps: null,
89
+ target: i0.ɵɵFactoryTarget.Component
90
+ });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({
92
+ minVersion: "17.1.0",
93
+ version: "22.2.2",
94
+ type: AccordionComponent,
95
+ isStandalone: true,
96
+ selector: "Accordion",
97
+ inputs: {
98
+ type: {
99
+ classPropertyName: "type",
100
+ publicName: "type",
101
+ isSignal: true,
102
+ isRequired: false,
103
+ transformFunction: null
104
+ },
105
+ collapsible: {
106
+ classPropertyName: "collapsible",
107
+ publicName: "collapsible",
108
+ isSignal: true,
109
+ isRequired: false,
110
+ transformFunction: null
111
+ },
112
+ value: {
113
+ classPropertyName: "value",
114
+ publicName: "value",
115
+ isSignal: true,
116
+ isRequired: false,
117
+ transformFunction: null
118
+ },
119
+ class: {
120
+ classPropertyName: "class",
121
+ publicName: "class",
122
+ isSignal: true,
123
+ isRequired: false,
124
+ transformFunction: null
125
+ }
126
+ },
127
+ outputs: { value: "valueChange" },
128
+ host: { properties: { "class": "classes()" } },
129
+ providers: [{
130
+ provide: AccordionContextBase,
131
+ useExisting: forwardRef(() => AccordionComponent)
132
+ }],
133
+ usesInheritance: true,
134
+ hostDirectives: [{
135
+ directive: i1.ComponentScaleDirective,
136
+ inputs: [
137
+ "radius",
138
+ "radius",
139
+ "density",
140
+ "density"
141
+ ]
142
+ }],
143
+ ngImport: i0,
144
+ template: `<ng-content />`,
145
+ isInline: true
146
+ });
147
+ };
148
+ i0.ɵɵngDeclareClassMetadata({
149
+ minVersion: "12.0.0",
150
+ version: "22.2.2",
151
+ ngImport: i0,
152
+ type: AccordionComponent,
153
+ decorators: [{
154
+ type: Component,
155
+ args: [{
156
+ selector: "Accordion",
157
+ hostDirectives: [{
158
+ directive: ComponentScaleDirective,
159
+ inputs: ["radius", "density"]
160
+ }],
161
+ providers: [{
162
+ provide: AccordionContextBase,
163
+ useExisting: forwardRef(() => AccordionComponent)
164
+ }],
165
+ host: { "[class]": "classes()" },
166
+ template: `<ng-content />`
167
+ }]
168
+ }],
169
+ propDecorators: {
170
+ type: [{
171
+ type: i0.Input,
172
+ args: [{
173
+ isSignal: true,
174
+ alias: "type",
175
+ required: false
176
+ }]
177
+ }],
178
+ collapsible: [{
179
+ type: i0.Input,
180
+ args: [{
181
+ isSignal: true,
182
+ alias: "collapsible",
183
+ required: false
184
+ }]
185
+ }],
186
+ value: [{
187
+ type: i0.Input,
188
+ args: [{
189
+ isSignal: true,
190
+ alias: "value",
191
+ required: false
192
+ }]
193
+ }, {
194
+ type: i0.Output,
195
+ args: ["valueChange"]
196
+ }],
197
+ class: [{
198
+ type: i0.Input,
199
+ args: [{
200
+ isSignal: true,
201
+ alias: "class",
202
+ required: false
203
+ }]
204
+ }]
205
+ }
206
+ });
207
+ var AccordionItemComponent = class AccordionItemComponent {
208
+ ctx = inject(AccordionContextBase);
209
+ value = input.required(...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
210
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
211
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
212
+ triggerId = injectUniqueId("AccordionTrigger");
213
+ contentId = injectUniqueId("AccordionContent");
214
+ classes = computed(() => cn("block border-b border-border", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
215
+ open = computed(() => this.ctx.isOpen(this.value()), ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
216
+ toggle() {
217
+ if (!this.disabled()) this.ctx.toggle(this.value());
218
+ }
219
+ static ɵfac = i0.ɵɵngDeclareFactory({
220
+ minVersion: "12.0.0",
221
+ version: "22.2.2",
222
+ ngImport: i0,
223
+ type: AccordionItemComponent,
224
+ deps: [],
225
+ target: i0.ɵɵFactoryTarget.Component
226
+ });
227
+ static ɵcmp = i0.ɵɵngDeclareComponent({
228
+ minVersion: "17.1.0",
229
+ version: "22.2.2",
230
+ type: AccordionItemComponent,
231
+ isStandalone: true,
232
+ selector: "AccordionItem",
233
+ inputs: {
234
+ value: {
235
+ classPropertyName: "value",
236
+ publicName: "value",
237
+ isSignal: true,
238
+ isRequired: true,
239
+ transformFunction: null
240
+ },
241
+ disabled: {
242
+ classPropertyName: "disabled",
243
+ publicName: "disabled",
244
+ isSignal: true,
245
+ isRequired: false,
246
+ transformFunction: null
247
+ },
248
+ class: {
249
+ classPropertyName: "class",
250
+ publicName: "class",
251
+ isSignal: true,
252
+ isRequired: false,
253
+ transformFunction: null
254
+ }
255
+ },
256
+ host: { properties: {
257
+ "class": "classes()",
258
+ "attr.data-state": "open() ? \"open\" : \"closed\"",
259
+ "attr.data-disabled": "disabled() ? \"\" : null"
260
+ } },
261
+ ngImport: i0,
262
+ template: `<ng-content />`,
263
+ isInline: true
264
+ });
265
+ };
266
+ i0.ɵɵngDeclareClassMetadata({
267
+ minVersion: "12.0.0",
268
+ version: "22.2.2",
269
+ ngImport: i0,
270
+ type: AccordionItemComponent,
271
+ decorators: [{
272
+ type: Component,
273
+ args: [{
274
+ selector: "AccordionItem",
275
+ host: {
276
+ "[class]": "classes()",
277
+ "[attr.data-state]": "open() ? \"open\" : \"closed\"",
278
+ "[attr.data-disabled]": "disabled() ? \"\" : null"
279
+ },
280
+ template: `<ng-content />`
281
+ }]
282
+ }],
283
+ propDecorators: {
284
+ value: [{
285
+ type: i0.Input,
286
+ args: [{
287
+ isSignal: true,
288
+ alias: "value",
289
+ required: true
290
+ }]
291
+ }],
292
+ disabled: [{
293
+ type: i0.Input,
294
+ args: [{
295
+ isSignal: true,
296
+ alias: "disabled",
297
+ required: false
298
+ }]
299
+ }],
300
+ class: [{
301
+ type: i0.Input,
302
+ args: [{
303
+ isSignal: true,
304
+ alias: "class",
305
+ required: false
306
+ }]
307
+ }]
308
+ }
309
+ });
310
+ var AccordionTriggerComponent = class AccordionTriggerComponent {
311
+ item = inject(AccordionItemComponent);
312
+ accordion = inject(AccordionComponent, { optional: true });
313
+ el = inject(ElementRef);
314
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
315
+ classes = computed(() => cn("flex flex-1 w-full items-center justify-between py-4 text-sm font-medium", "transition-all hover:underline", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
316
+ ngOnInit() {
317
+ this.accordion?.registerTrigger(this.el.nativeElement);
318
+ }
319
+ ngOnDestroy() {
320
+ this.accordion?.unregisterTrigger(this.el.nativeElement);
321
+ }
322
+ onArrow(event, offset) {
323
+ if (!this.accordion) return;
324
+ event.preventDefault();
325
+ this.accordion.moveTriggerFocus(this.el.nativeElement, offset);
326
+ }
327
+ onHome(event) {
328
+ if (!this.accordion) return;
329
+ event.preventDefault();
330
+ this.accordion.focusFirstTrigger();
331
+ }
332
+ onEnd(event) {
333
+ if (!this.accordion) return;
334
+ event.preventDefault();
335
+ this.accordion.focusLastTrigger();
336
+ }
337
+ static ɵfac = i0.ɵɵngDeclareFactory({
338
+ minVersion: "12.0.0",
339
+ version: "22.2.2",
340
+ ngImport: i0,
341
+ type: AccordionTriggerComponent,
342
+ deps: [],
343
+ target: i0.ɵɵFactoryTarget.Component
344
+ });
345
+ static ɵcmp = i0.ɵɵngDeclareComponent({
346
+ minVersion: "17.1.0",
347
+ version: "22.2.2",
348
+ type: AccordionTriggerComponent,
349
+ isStandalone: true,
350
+ selector: "button[AccordionTrigger]",
351
+ inputs: { class: {
352
+ classPropertyName: "class",
353
+ publicName: "class",
354
+ isSignal: true,
355
+ isRequired: false,
356
+ transformFunction: null
357
+ } },
358
+ host: {
359
+ attributes: { "type": "button" },
360
+ listeners: {
361
+ "click": "item.toggle()",
362
+ "keydown.arrowDown": "onArrow($any($event), 1)",
363
+ "keydown.arrowUp": "onArrow($any($event), -1)",
364
+ "keydown.home": "onHome($any($event))",
365
+ "keydown.end": "onEnd($any($event))"
366
+ },
367
+ properties: {
368
+ "class": "classes()",
369
+ "attr.id": "item.triggerId",
370
+ "attr.aria-controls": "item.contentId",
371
+ "attr.aria-expanded": "item.open()",
372
+ "attr.data-state": "item.open() ? \"open\" : \"closed\"",
373
+ "disabled": "item.disabled() || null"
374
+ }
375
+ },
376
+ ngImport: i0,
377
+ template: `
190
378
  <ng-content />
191
379
  <svg
192
380
  aria-hidden="true"
@@ -201,27 +389,34 @@ class AccordionTriggerComponent {
201
389
  >
202
390
  <polyline points="6 9 12 15 18 9" />
203
391
  </svg>
204
- `, isInline: true });
205
- }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionTriggerComponent, decorators: [{
207
- type: Component,
208
- args: [{
209
- selector: 'button[AccordionTrigger]',
210
- host: {
211
- '[class]': 'classes()',
212
- type: 'button',
213
- '[attr.id]': 'item.triggerId',
214
- '[attr.aria-controls]': 'item.contentId',
215
- '[attr.aria-expanded]': 'item.open()',
216
- '[attr.data-state]': 'item.open() ? "open" : "closed"',
217
- '[disabled]': 'item.disabled() || null',
218
- '(click)': 'item.toggle()',
219
- '(keydown.arrowDown)': 'onArrow($any($event), 1)',
220
- '(keydown.arrowUp)': 'onArrow($any($event), -1)',
221
- '(keydown.home)': 'onHome($any($event))',
222
- '(keydown.end)': 'onEnd($any($event))',
223
- },
224
- template: `
392
+ `,
393
+ isInline: true
394
+ });
395
+ };
396
+ i0.ɵɵngDeclareClassMetadata({
397
+ minVersion: "12.0.0",
398
+ version: "22.2.2",
399
+ ngImport: i0,
400
+ type: AccordionTriggerComponent,
401
+ decorators: [{
402
+ type: Component,
403
+ args: [{
404
+ selector: "button[AccordionTrigger]",
405
+ host: {
406
+ "[class]": "classes()",
407
+ type: "button",
408
+ "[attr.id]": "item.triggerId",
409
+ "[attr.aria-controls]": "item.contentId",
410
+ "[attr.aria-expanded]": "item.open()",
411
+ "[attr.data-state]": "item.open() ? \"open\" : \"closed\"",
412
+ "[disabled]": "item.disabled() || null",
413
+ "(click)": "item.toggle()",
414
+ "(keydown.arrowDown)": "onArrow($any($event), 1)",
415
+ "(keydown.arrowUp)": "onArrow($any($event), -1)",
416
+ "(keydown.home)": "onHome($any($event))",
417
+ "(keydown.end)": "onEnd($any($event))"
418
+ },
419
+ template: `
225
420
  <ng-content />
226
421
  <svg
227
422
  aria-hidden="true"
@@ -236,36 +431,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
236
431
  >
237
432
  <polyline points="6 9 12 15 18 9" />
238
433
  </svg>
239
- `,
240
- }]
241
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
242
- class AccordionContentComponent {
243
- item = inject(AccordionItemComponent);
244
- class = input('', /* @ts-ignore */
245
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
246
- classes = computed(() => cn('block overflow-hidden text-sm', this.class()), /* @ts-ignore */
247
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
248
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
249
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AccordionContentComponent, isStandalone: true, selector: "AccordionContent", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "item.contentId", "attr.role": "\"region\"", "attr.aria-labelledby": "item.triggerId", "attr.data-state": "item.open() ? \"open\" : \"closed\"", "hidden": "!item.open()" } }, ngImport: i0, template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`, isInline: true });
250
- }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AccordionContentComponent, decorators: [{
252
- type: Component,
253
- args: [{
254
- selector: 'AccordionContent',
255
- host: {
256
- '[class]': 'classes()',
257
- '[attr.id]': 'item.contentId',
258
- '[attr.role]': '"region"',
259
- '[attr.aria-labelledby]': 'item.triggerId',
260
- '[attr.data-state]': 'item.open() ? "open" : "closed"',
261
- '[hidden]': '!item.open()',
262
- },
263
- template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`,
264
- }]
265
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
266
-
267
- /**
268
- * Generated bundle index. Do not edit.
269
- */
270
-
271
- export { AccordionComponent, AccordionContentComponent, AccordionContextBase, AccordionItemComponent, AccordionTriggerComponent };
434
+ `
435
+ }]
436
+ }],
437
+ propDecorators: { class: [{
438
+ type: i0.Input,
439
+ args: [{
440
+ isSignal: true,
441
+ alias: "class",
442
+ required: false
443
+ }]
444
+ }] }
445
+ });
446
+ var AccordionContentComponent = class AccordionContentComponent {
447
+ item = inject(AccordionItemComponent);
448
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
449
+ classes = computed(() => cn("block overflow-hidden text-sm", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
450
+ static ɵfac = i0.ɵɵngDeclareFactory({
451
+ minVersion: "12.0.0",
452
+ version: "22.2.2",
453
+ ngImport: i0,
454
+ type: AccordionContentComponent,
455
+ deps: [],
456
+ target: i0.ɵɵFactoryTarget.Component
457
+ });
458
+ static ɵcmp = i0.ɵɵngDeclareComponent({
459
+ minVersion: "17.1.0",
460
+ version: "22.2.2",
461
+ type: AccordionContentComponent,
462
+ isStandalone: true,
463
+ selector: "AccordionContent",
464
+ inputs: { class: {
465
+ classPropertyName: "class",
466
+ publicName: "class",
467
+ isSignal: true,
468
+ isRequired: false,
469
+ transformFunction: null
470
+ } },
471
+ host: { properties: {
472
+ "class": "classes()",
473
+ "attr.id": "item.contentId",
474
+ "attr.role": "\"region\"",
475
+ "attr.aria-labelledby": "item.triggerId",
476
+ "attr.data-state": "item.open() ? \"open\" : \"closed\"",
477
+ "hidden": "!item.open()"
478
+ } },
479
+ ngImport: i0,
480
+ template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`,
481
+ isInline: true
482
+ });
483
+ };
484
+ i0.ɵɵngDeclareClassMetadata({
485
+ minVersion: "12.0.0",
486
+ version: "22.2.2",
487
+ ngImport: i0,
488
+ type: AccordionContentComponent,
489
+ decorators: [{
490
+ type: Component,
491
+ args: [{
492
+ selector: "AccordionContent",
493
+ host: {
494
+ "[class]": "classes()",
495
+ "[attr.id]": "item.contentId",
496
+ "[attr.role]": "\"region\"",
497
+ "[attr.aria-labelledby]": "item.triggerId",
498
+ "[attr.data-state]": "item.open() ? \"open\" : \"closed\"",
499
+ "[hidden]": "!item.open()"
500
+ },
501
+ template: `<div class="pb-4 pt-0 text-sm"><ng-content /></div>`
502
+ }]
503
+ }],
504
+ propDecorators: { class: [{
505
+ type: i0.Input,
506
+ args: [{
507
+ isSignal: true,
508
+ alias: "class",
509
+ required: false
510
+ }]
511
+ }] }
512
+ });
513
+ export { AccordionComponent, AccordionContentComponent, AccordionContextBase, AccordionItemComponent, AccordionTriggerComponent };