@ojiepermana/angular 22.1.13 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -491
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +1 -1
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -112
  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-CDBxQ8rk.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +0 -512
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +0 -2642
@@ -1,241 +1,619 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, Component, inject } from '@angular/core';
3
- import { cn } from '@ojiepermana/angular/component/utils/core';
4
-
5
- const TIMELINE_BASE = [
6
- 'w-full min-w-0 text-sm text-foreground',
7
- '[--timeline-content-gap:calc(var(--spacing)*3)] [--timeline-indicator-size:1.5rem] [--timeline-item-gap:calc(var(--spacing)*6)]',
8
- ].join(' ');
1
+ import * as i0 from "@angular/core";
2
+ import { Component, booleanAttribute, computed, inject, input } from "@angular/core";
3
+ import { cn } from "@ojiepermana/angular/component/utils/core";
4
+ const TIMELINE_BASE = ["w-full min-w-0 text-sm text-foreground", "[--timeline-content-gap:calc(var(--spacing)*3)] [--timeline-indicator-size:1.5rem] [--timeline-item-gap:calc(var(--spacing)*6)]"].join(" ");
9
5
  const timelineSizeClasses = {
10
- default: '[--timeline-indicator-size:1.5rem]',
11
- lg: '[--timeline-indicator-size:2.5rem] [--timeline-content-gap:calc(var(--spacing)*4)]',
6
+ default: "[--timeline-indicator-size:1.5rem]",
7
+ lg: "[--timeline-indicator-size:2.5rem] [--timeline-content-gap:calc(var(--spacing)*4)]"
12
8
  };
13
9
  const timelineAlignClasses = {
14
- start: 'items-start',
15
- baseline: 'items-baseline',
16
- center: 'items-center',
17
- end: 'items-end',
10
+ start: "items-start",
11
+ baseline: "items-baseline",
12
+ center: "items-center",
13
+ end: "items-end"
18
14
  };
19
15
  const timelineItemStatusClasses = {
20
- complete: 'before:bg-primary after:bg-primary',
21
- current: 'before:bg-border after:bg-border',
22
- incomplete: 'before:bg-border/70 after:bg-border/70',
16
+ complete: "before:bg-primary after:bg-primary",
17
+ current: "before:bg-border after:bg-border",
18
+ incomplete: "before:bg-border/70 after:bg-border/70"
23
19
  };
24
20
  const timelineIndicatorStatusClasses = {
25
- complete: 'border-primary bg-primary text-primary-foreground',
26
- current: 'border-ring bg-background text-foreground ring-2 ring-ring ring-offset-2 ring-offset-background',
27
- incomplete: 'border-border bg-background text-muted-foreground',
21
+ complete: "border-primary bg-primary text-primary-foreground",
22
+ current: "border-ring bg-background text-foreground ring-2 ring-ring ring-offset-2 ring-offset-background",
23
+ incomplete: "border-border bg-background text-muted-foreground"
28
24
  };
29
25
  const timelineIndicatorColorClasses = {
30
- red: 'border-[hsl(var(--timeline-indicator-red))] bg-[hsl(var(--timeline-indicator-red))] text-[hsl(var(--timeline-indicator-red-foreground))]',
31
- orange: 'border-[hsl(var(--timeline-indicator-orange))] bg-[hsl(var(--timeline-indicator-orange))] text-[hsl(var(--timeline-indicator-orange-foreground))]',
32
- amber: 'border-[hsl(var(--timeline-indicator-amber))] bg-[hsl(var(--timeline-indicator-amber))] text-[hsl(var(--timeline-indicator-amber-foreground))]',
33
- yellow: 'border-[hsl(var(--timeline-indicator-yellow))] bg-[hsl(var(--timeline-indicator-yellow))] text-[hsl(var(--timeline-indicator-yellow-foreground))]',
34
- lime: 'border-[hsl(var(--timeline-indicator-lime))] bg-[hsl(var(--timeline-indicator-lime))] text-[hsl(var(--timeline-indicator-lime-foreground))]',
35
- green: 'border-[hsl(var(--timeline-indicator-green))] bg-[hsl(var(--timeline-indicator-green))] text-[hsl(var(--timeline-indicator-green-foreground))]',
36
- emerald: 'border-[hsl(var(--timeline-indicator-emerald))] bg-[hsl(var(--timeline-indicator-emerald))] text-[hsl(var(--timeline-indicator-emerald-foreground))]',
37
- teal: 'border-[hsl(var(--timeline-indicator-teal))] bg-[hsl(var(--timeline-indicator-teal))] text-[hsl(var(--timeline-indicator-teal-foreground))]',
38
- cyan: 'border-[hsl(var(--timeline-indicator-cyan))] bg-[hsl(var(--timeline-indicator-cyan))] text-[hsl(var(--timeline-indicator-cyan-foreground))]',
39
- sky: 'border-[hsl(var(--timeline-indicator-sky))] bg-[hsl(var(--timeline-indicator-sky))] text-[hsl(var(--timeline-indicator-sky-foreground))]',
40
- blue: 'border-[hsl(var(--timeline-indicator-blue))] bg-[hsl(var(--timeline-indicator-blue))] text-[hsl(var(--timeline-indicator-blue-foreground))]',
41
- indigo: 'border-[hsl(var(--timeline-indicator-indigo))] bg-[hsl(var(--timeline-indicator-indigo))] text-[hsl(var(--timeline-indicator-indigo-foreground))]',
42
- violet: 'border-[hsl(var(--timeline-indicator-violet))] bg-[hsl(var(--timeline-indicator-violet))] text-[hsl(var(--timeline-indicator-violet-foreground))]',
43
- purple: 'border-[hsl(var(--timeline-indicator-purple))] bg-[hsl(var(--timeline-indicator-purple))] text-[hsl(var(--timeline-indicator-purple-foreground))]',
44
- fuchsia: 'border-[hsl(var(--timeline-indicator-fuchsia))] bg-[hsl(var(--timeline-indicator-fuchsia))] text-[hsl(var(--timeline-indicator-fuchsia-foreground))]',
45
- pink: 'border-[hsl(var(--timeline-indicator-pink))] bg-[hsl(var(--timeline-indicator-pink))] text-[hsl(var(--timeline-indicator-pink-foreground))]',
46
- rose: 'border-[hsl(var(--timeline-indicator-rose))] bg-[hsl(var(--timeline-indicator-rose))] text-[hsl(var(--timeline-indicator-rose-foreground))]',
26
+ red: "border-[hsl(var(--timeline-indicator-red))] bg-[hsl(var(--timeline-indicator-red))] text-[hsl(var(--timeline-indicator-red-foreground))]",
27
+ orange: "border-[hsl(var(--timeline-indicator-orange))] bg-[hsl(var(--timeline-indicator-orange))] text-[hsl(var(--timeline-indicator-orange-foreground))]",
28
+ amber: "border-[hsl(var(--timeline-indicator-amber))] bg-[hsl(var(--timeline-indicator-amber))] text-[hsl(var(--timeline-indicator-amber-foreground))]",
29
+ yellow: "border-[hsl(var(--timeline-indicator-yellow))] bg-[hsl(var(--timeline-indicator-yellow))] text-[hsl(var(--timeline-indicator-yellow-foreground))]",
30
+ lime: "border-[hsl(var(--timeline-indicator-lime))] bg-[hsl(var(--timeline-indicator-lime))] text-[hsl(var(--timeline-indicator-lime-foreground))]",
31
+ green: "border-[hsl(var(--timeline-indicator-green))] bg-[hsl(var(--timeline-indicator-green))] text-[hsl(var(--timeline-indicator-green-foreground))]",
32
+ emerald: "border-[hsl(var(--timeline-indicator-emerald))] bg-[hsl(var(--timeline-indicator-emerald))] text-[hsl(var(--timeline-indicator-emerald-foreground))]",
33
+ teal: "border-[hsl(var(--timeline-indicator-teal))] bg-[hsl(var(--timeline-indicator-teal))] text-[hsl(var(--timeline-indicator-teal-foreground))]",
34
+ cyan: "border-[hsl(var(--timeline-indicator-cyan))] bg-[hsl(var(--timeline-indicator-cyan))] text-[hsl(var(--timeline-indicator-cyan-foreground))]",
35
+ sky: "border-[hsl(var(--timeline-indicator-sky))] bg-[hsl(var(--timeline-indicator-sky))] text-[hsl(var(--timeline-indicator-sky-foreground))]",
36
+ blue: "border-[hsl(var(--timeline-indicator-blue))] bg-[hsl(var(--timeline-indicator-blue))] text-[hsl(var(--timeline-indicator-blue-foreground))]",
37
+ indigo: "border-[hsl(var(--timeline-indicator-indigo))] bg-[hsl(var(--timeline-indicator-indigo))] text-[hsl(var(--timeline-indicator-indigo-foreground))]",
38
+ violet: "border-[hsl(var(--timeline-indicator-violet))] bg-[hsl(var(--timeline-indicator-violet))] text-[hsl(var(--timeline-indicator-violet-foreground))]",
39
+ purple: "border-[hsl(var(--timeline-indicator-purple))] bg-[hsl(var(--timeline-indicator-purple))] text-[hsl(var(--timeline-indicator-purple-foreground))]",
40
+ fuchsia: "border-[hsl(var(--timeline-indicator-fuchsia))] bg-[hsl(var(--timeline-indicator-fuchsia))] text-[hsl(var(--timeline-indicator-fuchsia-foreground))]",
41
+ pink: "border-[hsl(var(--timeline-indicator-pink))] bg-[hsl(var(--timeline-indicator-pink))] text-[hsl(var(--timeline-indicator-pink-foreground))]",
42
+ rose: "border-[hsl(var(--timeline-indicator-rose))] bg-[hsl(var(--timeline-indicator-rose))] text-[hsl(var(--timeline-indicator-rose-foreground))]"
47
43
  };
48
- class TimelineComponent {
49
- horizontal = input(false, { ...(ngDevMode ? { debugName: "horizontal" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
50
- align = input('center', /* @ts-ignore */
51
- ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
52
- size = input('default', /* @ts-ignore */
53
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
54
- class = input('', /* @ts-ignore */
55
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
56
- classes = computed(() => cn(TIMELINE_BASE, timelineSizeClasses[this.size()], this.horizontal()
57
- ? 'flex min-w-0 items-start gap-[var(--timeline-item-gap)] overflow-x-auto pb-1'
58
- : 'grid', this.class()), /* @ts-ignore */
59
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineComponent, isStandalone: true, selector: "Timeline", inputs: { horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"timeline\"", "attr.data-orientation": "horizontal() ? \"horizontal\" : \"vertical\"", "attr.data-align": "align()", "attr.data-size": "size()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineComponent, decorators: [{
64
- type: Component,
65
- args: [{
66
- selector: 'Timeline',
67
- host: {
68
- '[class]': 'classes()',
69
- '[attr.data-slot]': '"timeline"',
70
- '[attr.data-orientation]': 'horizontal() ? "horizontal" : "vertical"',
71
- '[attr.data-align]': 'align()',
72
- '[attr.data-size]': 'size()',
73
- },
74
- template: `<ng-content />`,
75
- }]
76
- }], propDecorators: { horizontal: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontal", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
77
- class TimelineItemComponent {
78
- timeline = inject(TimelineComponent, { optional: true });
79
- status = input(null, /* @ts-ignore */
80
- ...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
81
- align = input(null, /* @ts-ignore */
82
- ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
83
- size = input(null, /* @ts-ignore */
84
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
85
- class = input('', /* @ts-ignore */
86
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
87
- orientation = computed(() => (this.timeline?.horizontal() ? 'horizontal' : 'vertical'), /* @ts-ignore */
88
- ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
89
- resolvedAlign = computed(() => this.align() ?? this.timeline?.align() ?? 'center', /* @ts-ignore */
90
- ...(ngDevMode ? [{ debugName: "resolvedAlign" }] : /* istanbul ignore next */ []));
91
- resolvedSize = computed(() => this.size() ?? this.timeline?.size() ?? 'default', /* @ts-ignore */
92
- ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
93
- classes = computed(() => {
94
- const status = this.status();
95
- const orientation = this.orientation();
96
- return cn('relative min-w-0', timelineSizeClasses[this.resolvedSize()], orientation === 'horizontal'
97
- ? [
98
- "before:content-['']",
99
- 'grid min-w-32 flex-1 justify-items-center gap-y-2 text-center',
100
- 'before:absolute before:left-0 before:right-0 before:top-[calc(var(--timeline-indicator-size)/2)] before:h-px before:bg-border',
101
- 'first:before:left-1/2 last:before:right-1/2',
102
- ].join(' ')
103
- : [
104
- "after:content-['']",
105
- 'grid grid-cols-[var(--timeline-indicator-size)_minmax(0,1fr)] gap-x-[var(--timeline-content-gap)] pb-[var(--timeline-item-gap)] last:pb-0',
106
- 'after:absolute after:bottom-0 after:left-[calc(var(--timeline-indicator-size)/2)] after:top-[calc(var(--timeline-indicator-size)+0.25rem)] after:w-px after:-translate-x-1/2 after:bg-border last:after:hidden',
107
- timelineAlignClasses[this.resolvedAlign()],
108
- ].join(' '), status ? timelineItemStatusClasses[status] : 'before:bg-border after:bg-border', this.class());
109
- }, /* @ts-ignore */
110
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineItemComponent, isStandalone: true, selector: "TimelineItem", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"timeline-item\"", "attr.data-orientation": "orientation()", "attr.data-align": "resolvedAlign()", "attr.data-size": "resolvedSize()", "attr.data-status": "status() ?? null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineItemComponent, decorators: [{
115
- type: Component,
116
- args: [{
117
- selector: 'TimelineItem',
118
- host: {
119
- '[class]': 'classes()',
120
- '[attr.data-slot]': '"timeline-item"',
121
- '[attr.data-orientation]': 'orientation()',
122
- '[attr.data-align]': 'resolvedAlign()',
123
- '[attr.data-size]': 'resolvedSize()',
124
- '[attr.data-status]': 'status() ?? null',
125
- },
126
- template: `<ng-content />`,
127
- }]
128
- }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
129
- class TimelineIndicatorComponent {
130
- item = inject(TimelineItemComponent, { optional: true });
131
- variant = input('default', /* @ts-ignore */
132
- ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
133
- status = input(null, /* @ts-ignore */
134
- ...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
135
- color = input(null, /* @ts-ignore */
136
- ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
137
- ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
138
- class = input('', /* @ts-ignore */
139
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
140
- resolvedStatus = computed(() => this.status() ?? this.item?.status() ?? 'incomplete', /* @ts-ignore */
141
- ...(ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []));
142
- classes = computed(() => {
143
- const color = this.color();
144
- return cn('relative z-10 col-start-1 row-start-1 inline-flex shrink-0 items-center justify-center justify-self-center', this.item?.orientation() === 'horizontal' ? 'row-start-1' : '', this.variant() === 'bare'
145
- ? 'bg-background text-muted-foreground'
146
- : [
147
- 'size-[var(--timeline-indicator-size)] rounded-full border text-xs font-medium shadow-sm',
148
- color
149
- ? timelineIndicatorColorClasses[color]
150
- : timelineIndicatorStatusClasses[this.resolvedStatus()],
151
- ].join(' '), this.class());
152
- }, /* @ts-ignore */
153
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
154
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
155
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineIndicatorComponent, isStandalone: true, selector: "TimelineIndicator", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "ariaLabel() ? \"img\" : null", "attr.aria-label": "ariaLabel()", "attr.data-slot": "\"timeline-indicator\"", "attr.data-variant": "variant()", "attr.data-status": "resolvedStatus()", "attr.data-color": "color() ?? null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
156
- }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineIndicatorComponent, decorators: [{
158
- type: Component,
159
- args: [{
160
- selector: 'TimelineIndicator',
161
- host: {
162
- '[class]': 'classes()',
163
- // A labeled indicator is a status graphic (role="img" so aria-label is valid);
164
- // without a label it stays a decorative marker.
165
- '[attr.role]': 'ariaLabel() ? "img" : null',
166
- '[attr.aria-label]': 'ariaLabel()',
167
- '[attr.data-slot]': '"timeline-indicator"',
168
- '[attr.data-variant]': 'variant()',
169
- '[attr.data-status]': 'resolvedStatus()',
170
- '[attr.data-color]': 'color() ?? null',
171
- },
172
- template: `<ng-content />`,
173
- }]
174
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
175
- class TimelineContentComponent {
176
- item = inject(TimelineItemComponent, { optional: true });
177
- class = input('', /* @ts-ignore */
178
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
179
- classes = computed(() => cn('min-w-0 text-sm leading-6 text-foreground', this.item?.orientation() === 'horizontal'
180
- ? 'row-start-2 max-w-40 text-center'
181
- : 'col-start-2 row-start-1', this.class()), /* @ts-ignore */
182
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
183
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineContentComponent, isStandalone: true, selector: "TimelineContent", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"timeline-content\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
185
- }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineContentComponent, decorators: [{
187
- type: Component,
188
- args: [{
189
- selector: 'TimelineContent',
190
- host: {
191
- '[class]': 'classes()',
192
- '[attr.data-slot]': '"timeline-content"',
193
- },
194
- template: `<ng-content />`,
195
- }]
196
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
197
- class TimelineBlockComponent {
198
- item = inject(TimelineItemComponent, { optional: true });
199
- class = input('', /* @ts-ignore */
200
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
201
- classes = computed(() => cn('min-w-0', this.item?.orientation() === 'horizontal' ? 'row-start-2 w-full' : 'col-span-full', this.class()), /* @ts-ignore */
202
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
203
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
204
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineBlockComponent, isStandalone: true, selector: "TimelineBlock", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"timeline-block\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
205
- }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineBlockComponent, decorators: [{
207
- type: Component,
208
- args: [{
209
- selector: 'TimelineBlock',
210
- host: {
211
- '[class]': 'classes()',
212
- '[attr.data-slot]': '"timeline-block"',
213
- },
214
- template: `<ng-content />`,
215
- }]
216
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
217
- class TimelineSubgridComponent {
218
- class = input('', /* @ts-ignore */
219
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
220
- classes = computed(() => cn('grid min-w-0 grid-cols-[var(--timeline-indicator-size)_minmax(0,1fr)] gap-x-[var(--timeline-content-gap)]', this.class()), /* @ts-ignore */
221
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
222
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineSubgridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
223
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TimelineSubgridComponent, isStandalone: true, selector: "TimelineSubgrid", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"timeline-subgrid\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
224
- }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TimelineSubgridComponent, decorators: [{
226
- type: Component,
227
- args: [{
228
- selector: 'TimelineSubgrid',
229
- host: {
230
- '[class]': 'classes()',
231
- '[attr.data-slot]': '"timeline-subgrid"',
232
- },
233
- template: `<ng-content />`,
234
- }]
235
- }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
236
-
237
- /**
238
- * Generated bundle index. Do not edit.
239
- */
240
-
241
- export { TimelineBlockComponent, TimelineComponent, TimelineContentComponent, TimelineIndicatorComponent, TimelineItemComponent, TimelineSubgridComponent };
44
+ var TimelineComponent = class TimelineComponent {
45
+ horizontal = input(false, {
46
+ ...ngDevMode ? { debugName: "horizontal" } : /* istanbul ignore next */ {},
47
+ transform: booleanAttribute
48
+ });
49
+ align = input("center", ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
50
+ size = input("default", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
51
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
52
+ classes = computed(() => cn(TIMELINE_BASE, timelineSizeClasses[this.size()], this.horizontal() ? "flex min-w-0 items-start gap-[var(--timeline-item-gap)] overflow-x-auto pb-1" : "grid", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
53
+ static ɵfac = i0.ɵɵngDeclareFactory({
54
+ minVersion: "12.0.0",
55
+ version: "22.2.0",
56
+ ngImport: i0,
57
+ type: TimelineComponent,
58
+ deps: [],
59
+ target: i0.ɵɵFactoryTarget.Component
60
+ });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({
62
+ minVersion: "17.1.0",
63
+ version: "22.2.0",
64
+ type: TimelineComponent,
65
+ isStandalone: true,
66
+ selector: "Timeline",
67
+ inputs: {
68
+ horizontal: {
69
+ classPropertyName: "horizontal",
70
+ publicName: "horizontal",
71
+ isSignal: true,
72
+ isRequired: false,
73
+ transformFunction: null
74
+ },
75
+ align: {
76
+ classPropertyName: "align",
77
+ publicName: "align",
78
+ isSignal: true,
79
+ isRequired: false,
80
+ transformFunction: null
81
+ },
82
+ size: {
83
+ classPropertyName: "size",
84
+ publicName: "size",
85
+ isSignal: true,
86
+ isRequired: false,
87
+ transformFunction: null
88
+ },
89
+ class: {
90
+ classPropertyName: "class",
91
+ publicName: "class",
92
+ isSignal: true,
93
+ isRequired: false,
94
+ transformFunction: null
95
+ }
96
+ },
97
+ host: { properties: {
98
+ "class": "classes()",
99
+ "attr.data-slot": "\"timeline\"",
100
+ "attr.data-orientation": "horizontal() ? \"horizontal\" : \"vertical\"",
101
+ "attr.data-align": "align()",
102
+ "attr.data-size": "size()"
103
+ } },
104
+ ngImport: i0,
105
+ template: `<ng-content />`,
106
+ isInline: true
107
+ });
108
+ };
109
+ i0.ɵɵngDeclareClassMetadata({
110
+ minVersion: "12.0.0",
111
+ version: "22.2.0",
112
+ ngImport: i0,
113
+ type: TimelineComponent,
114
+ decorators: [{
115
+ type: Component,
116
+ args: [{
117
+ selector: "Timeline",
118
+ host: {
119
+ "[class]": "classes()",
120
+ "[attr.data-slot]": "\"timeline\"",
121
+ "[attr.data-orientation]": "horizontal() ? \"horizontal\" : \"vertical\"",
122
+ "[attr.data-align]": "align()",
123
+ "[attr.data-size]": "size()"
124
+ },
125
+ template: `<ng-content />`
126
+ }]
127
+ }],
128
+ propDecorators: {
129
+ horizontal: [{
130
+ type: i0.Input,
131
+ args: [{
132
+ isSignal: true,
133
+ alias: "horizontal",
134
+ required: false
135
+ }]
136
+ }],
137
+ align: [{
138
+ type: i0.Input,
139
+ args: [{
140
+ isSignal: true,
141
+ alias: "align",
142
+ required: false
143
+ }]
144
+ }],
145
+ size: [{
146
+ type: i0.Input,
147
+ args: [{
148
+ isSignal: true,
149
+ alias: "size",
150
+ required: false
151
+ }]
152
+ }],
153
+ class: [{
154
+ type: i0.Input,
155
+ args: [{
156
+ isSignal: true,
157
+ alias: "class",
158
+ required: false
159
+ }]
160
+ }]
161
+ }
162
+ });
163
+ var TimelineItemComponent = class TimelineItemComponent {
164
+ timeline = inject(TimelineComponent, { optional: true });
165
+ status = input(null, ...ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []);
166
+ align = input(null, ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
167
+ size = input(null, ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
168
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
169
+ orientation = computed(() => this.timeline?.horizontal() ? "horizontal" : "vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
170
+ resolvedAlign = computed(() => this.align() ?? this.timeline?.align() ?? "center", ...ngDevMode ? [{ debugName: "resolvedAlign" }] : /* istanbul ignore next */ []);
171
+ resolvedSize = computed(() => this.size() ?? this.timeline?.size() ?? "default", ...ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []);
172
+ classes = computed(() => {
173
+ const status = this.status();
174
+ const orientation = this.orientation();
175
+ return cn("relative min-w-0", timelineSizeClasses[this.resolvedSize()], orientation === "horizontal" ? [
176
+ "before:content-['']",
177
+ "grid min-w-32 flex-1 justify-items-center gap-y-2 text-center",
178
+ "before:absolute before:left-0 before:right-0 before:top-[calc(var(--timeline-indicator-size)/2)] before:h-px before:bg-border",
179
+ "first:before:left-1/2 last:before:right-1/2"
180
+ ].join(" ") : [
181
+ "after:content-['']",
182
+ "grid grid-cols-[var(--timeline-indicator-size)_minmax(0,1fr)] gap-x-[var(--timeline-content-gap)] pb-[var(--timeline-item-gap)] last:pb-0",
183
+ "after:absolute after:bottom-0 after:left-[calc(var(--timeline-indicator-size)/2)] after:top-[calc(var(--timeline-indicator-size)+0.25rem)] after:w-px after:-translate-x-1/2 after:bg-border last:after:hidden",
184
+ timelineAlignClasses[this.resolvedAlign()]
185
+ ].join(" "), status ? timelineItemStatusClasses[status] : "before:bg-border after:bg-border", this.class());
186
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
187
+ static ɵfac = i0.ɵɵngDeclareFactory({
188
+ minVersion: "12.0.0",
189
+ version: "22.2.0",
190
+ ngImport: i0,
191
+ type: TimelineItemComponent,
192
+ deps: [],
193
+ target: i0.ɵɵFactoryTarget.Component
194
+ });
195
+ static ɵcmp = i0.ɵɵngDeclareComponent({
196
+ minVersion: "17.1.0",
197
+ version: "22.2.0",
198
+ type: TimelineItemComponent,
199
+ isStandalone: true,
200
+ selector: "TimelineItem",
201
+ inputs: {
202
+ status: {
203
+ classPropertyName: "status",
204
+ publicName: "status",
205
+ isSignal: true,
206
+ isRequired: false,
207
+ transformFunction: null
208
+ },
209
+ align: {
210
+ classPropertyName: "align",
211
+ publicName: "align",
212
+ isSignal: true,
213
+ isRequired: false,
214
+ transformFunction: null
215
+ },
216
+ size: {
217
+ classPropertyName: "size",
218
+ publicName: "size",
219
+ isSignal: true,
220
+ isRequired: false,
221
+ transformFunction: null
222
+ },
223
+ class: {
224
+ classPropertyName: "class",
225
+ publicName: "class",
226
+ isSignal: true,
227
+ isRequired: false,
228
+ transformFunction: null
229
+ }
230
+ },
231
+ host: { properties: {
232
+ "class": "classes()",
233
+ "attr.data-slot": "\"timeline-item\"",
234
+ "attr.data-orientation": "orientation()",
235
+ "attr.data-align": "resolvedAlign()",
236
+ "attr.data-size": "resolvedSize()",
237
+ "attr.data-status": "status() ?? null"
238
+ } },
239
+ ngImport: i0,
240
+ template: `<ng-content />`,
241
+ isInline: true
242
+ });
243
+ };
244
+ i0.ɵɵngDeclareClassMetadata({
245
+ minVersion: "12.0.0",
246
+ version: "22.2.0",
247
+ ngImport: i0,
248
+ type: TimelineItemComponent,
249
+ decorators: [{
250
+ type: Component,
251
+ args: [{
252
+ selector: "TimelineItem",
253
+ host: {
254
+ "[class]": "classes()",
255
+ "[attr.data-slot]": "\"timeline-item\"",
256
+ "[attr.data-orientation]": "orientation()",
257
+ "[attr.data-align]": "resolvedAlign()",
258
+ "[attr.data-size]": "resolvedSize()",
259
+ "[attr.data-status]": "status() ?? null"
260
+ },
261
+ template: `<ng-content />`
262
+ }]
263
+ }],
264
+ propDecorators: {
265
+ status: [{
266
+ type: i0.Input,
267
+ args: [{
268
+ isSignal: true,
269
+ alias: "status",
270
+ required: false
271
+ }]
272
+ }],
273
+ align: [{
274
+ type: i0.Input,
275
+ args: [{
276
+ isSignal: true,
277
+ alias: "align",
278
+ required: false
279
+ }]
280
+ }],
281
+ size: [{
282
+ type: i0.Input,
283
+ args: [{
284
+ isSignal: true,
285
+ alias: "size",
286
+ required: false
287
+ }]
288
+ }],
289
+ class: [{
290
+ type: i0.Input,
291
+ args: [{
292
+ isSignal: true,
293
+ alias: "class",
294
+ required: false
295
+ }]
296
+ }]
297
+ }
298
+ });
299
+ var TimelineIndicatorComponent = class TimelineIndicatorComponent {
300
+ item = inject(TimelineItemComponent, { optional: true });
301
+ variant = input("default", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
302
+ status = input(null, ...ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []);
303
+ color = input(null, ...ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []);
304
+ ariaLabel = input(null, {
305
+ ...ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {},
306
+ alias: "aria-label"
307
+ });
308
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
309
+ resolvedStatus = computed(() => this.status() ?? this.item?.status() ?? "incomplete", ...ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []);
310
+ classes = computed(() => {
311
+ const color = this.color();
312
+ return cn("relative z-10 col-start-1 row-start-1 inline-flex shrink-0 items-center justify-center justify-self-center", this.item?.orientation() === "horizontal" ? "row-start-1" : "", this.variant() === "bare" ? "bg-background text-muted-foreground" : ["size-[var(--timeline-indicator-size)] rounded-full border text-xs font-medium shadow-sm", color ? timelineIndicatorColorClasses[color] : timelineIndicatorStatusClasses[this.resolvedStatus()]].join(" "), this.class());
313
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
314
+ static ɵfac = i0.ɵɵngDeclareFactory({
315
+ minVersion: "12.0.0",
316
+ version: "22.2.0",
317
+ ngImport: i0,
318
+ type: TimelineIndicatorComponent,
319
+ deps: [],
320
+ target: i0.ɵɵFactoryTarget.Component
321
+ });
322
+ static ɵcmp = i0.ɵɵngDeclareComponent({
323
+ minVersion: "17.1.0",
324
+ version: "22.2.0",
325
+ type: TimelineIndicatorComponent,
326
+ isStandalone: true,
327
+ selector: "TimelineIndicator",
328
+ inputs: {
329
+ variant: {
330
+ classPropertyName: "variant",
331
+ publicName: "variant",
332
+ isSignal: true,
333
+ isRequired: false,
334
+ transformFunction: null
335
+ },
336
+ status: {
337
+ classPropertyName: "status",
338
+ publicName: "status",
339
+ isSignal: true,
340
+ isRequired: false,
341
+ transformFunction: null
342
+ },
343
+ color: {
344
+ classPropertyName: "color",
345
+ publicName: "color",
346
+ isSignal: true,
347
+ isRequired: false,
348
+ transformFunction: null
349
+ },
350
+ ariaLabel: {
351
+ classPropertyName: "ariaLabel",
352
+ publicName: "aria-label",
353
+ isSignal: true,
354
+ isRequired: false,
355
+ transformFunction: null
356
+ },
357
+ class: {
358
+ classPropertyName: "class",
359
+ publicName: "class",
360
+ isSignal: true,
361
+ isRequired: false,
362
+ transformFunction: null
363
+ }
364
+ },
365
+ host: { properties: {
366
+ "class": "classes()",
367
+ "attr.role": "ariaLabel() ? \"img\" : null",
368
+ "attr.aria-label": "ariaLabel()",
369
+ "attr.data-slot": "\"timeline-indicator\"",
370
+ "attr.data-variant": "variant()",
371
+ "attr.data-status": "resolvedStatus()",
372
+ "attr.data-color": "color() ?? null"
373
+ } },
374
+ ngImport: i0,
375
+ template: `<ng-content />`,
376
+ isInline: true
377
+ });
378
+ };
379
+ i0.ɵɵngDeclareClassMetadata({
380
+ minVersion: "12.0.0",
381
+ version: "22.2.0",
382
+ ngImport: i0,
383
+ type: TimelineIndicatorComponent,
384
+ decorators: [{
385
+ type: Component,
386
+ args: [{
387
+ selector: "TimelineIndicator",
388
+ host: {
389
+ "[class]": "classes()",
390
+ "[attr.role]": "ariaLabel() ? \"img\" : null",
391
+ "[attr.aria-label]": "ariaLabel()",
392
+ "[attr.data-slot]": "\"timeline-indicator\"",
393
+ "[attr.data-variant]": "variant()",
394
+ "[attr.data-status]": "resolvedStatus()",
395
+ "[attr.data-color]": "color() ?? null"
396
+ },
397
+ template: `<ng-content />`
398
+ }]
399
+ }],
400
+ propDecorators: {
401
+ variant: [{
402
+ type: i0.Input,
403
+ args: [{
404
+ isSignal: true,
405
+ alias: "variant",
406
+ required: false
407
+ }]
408
+ }],
409
+ status: [{
410
+ type: i0.Input,
411
+ args: [{
412
+ isSignal: true,
413
+ alias: "status",
414
+ required: false
415
+ }]
416
+ }],
417
+ color: [{
418
+ type: i0.Input,
419
+ args: [{
420
+ isSignal: true,
421
+ alias: "color",
422
+ required: false
423
+ }]
424
+ }],
425
+ ariaLabel: [{
426
+ type: i0.Input,
427
+ args: [{
428
+ isSignal: true,
429
+ alias: "aria-label",
430
+ required: false
431
+ }]
432
+ }],
433
+ class: [{
434
+ type: i0.Input,
435
+ args: [{
436
+ isSignal: true,
437
+ alias: "class",
438
+ required: false
439
+ }]
440
+ }]
441
+ }
442
+ });
443
+ var TimelineContentComponent = class TimelineContentComponent {
444
+ item = inject(TimelineItemComponent, { optional: true });
445
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
446
+ classes = computed(() => cn("min-w-0 text-sm leading-6 text-foreground", this.item?.orientation() === "horizontal" ? "row-start-2 max-w-40 text-center" : "col-start-2 row-start-1", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
447
+ static ɵfac = i0.ɵɵngDeclareFactory({
448
+ minVersion: "12.0.0",
449
+ version: "22.2.0",
450
+ ngImport: i0,
451
+ type: TimelineContentComponent,
452
+ deps: [],
453
+ target: i0.ɵɵFactoryTarget.Component
454
+ });
455
+ static ɵcmp = i0.ɵɵngDeclareComponent({
456
+ minVersion: "17.1.0",
457
+ version: "22.2.0",
458
+ type: TimelineContentComponent,
459
+ isStandalone: true,
460
+ selector: "TimelineContent",
461
+ inputs: { class: {
462
+ classPropertyName: "class",
463
+ publicName: "class",
464
+ isSignal: true,
465
+ isRequired: false,
466
+ transformFunction: null
467
+ } },
468
+ host: { properties: {
469
+ "class": "classes()",
470
+ "attr.data-slot": "\"timeline-content\""
471
+ } },
472
+ ngImport: i0,
473
+ template: `<ng-content />`,
474
+ isInline: true
475
+ });
476
+ };
477
+ i0.ɵɵngDeclareClassMetadata({
478
+ minVersion: "12.0.0",
479
+ version: "22.2.0",
480
+ ngImport: i0,
481
+ type: TimelineContentComponent,
482
+ decorators: [{
483
+ type: Component,
484
+ args: [{
485
+ selector: "TimelineContent",
486
+ host: {
487
+ "[class]": "classes()",
488
+ "[attr.data-slot]": "\"timeline-content\""
489
+ },
490
+ template: `<ng-content />`
491
+ }]
492
+ }],
493
+ propDecorators: { class: [{
494
+ type: i0.Input,
495
+ args: [{
496
+ isSignal: true,
497
+ alias: "class",
498
+ required: false
499
+ }]
500
+ }] }
501
+ });
502
+ var TimelineBlockComponent = class TimelineBlockComponent {
503
+ item = inject(TimelineItemComponent, { optional: true });
504
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
505
+ classes = computed(() => cn("min-w-0", this.item?.orientation() === "horizontal" ? "row-start-2 w-full" : "col-span-full", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
506
+ static ɵfac = i0.ɵɵngDeclareFactory({
507
+ minVersion: "12.0.0",
508
+ version: "22.2.0",
509
+ ngImport: i0,
510
+ type: TimelineBlockComponent,
511
+ deps: [],
512
+ target: i0.ɵɵFactoryTarget.Component
513
+ });
514
+ static ɵcmp = i0.ɵɵngDeclareComponent({
515
+ minVersion: "17.1.0",
516
+ version: "22.2.0",
517
+ type: TimelineBlockComponent,
518
+ isStandalone: true,
519
+ selector: "TimelineBlock",
520
+ inputs: { class: {
521
+ classPropertyName: "class",
522
+ publicName: "class",
523
+ isSignal: true,
524
+ isRequired: false,
525
+ transformFunction: null
526
+ } },
527
+ host: { properties: {
528
+ "class": "classes()",
529
+ "attr.data-slot": "\"timeline-block\""
530
+ } },
531
+ ngImport: i0,
532
+ template: `<ng-content />`,
533
+ isInline: true
534
+ });
535
+ };
536
+ i0.ɵɵngDeclareClassMetadata({
537
+ minVersion: "12.0.0",
538
+ version: "22.2.0",
539
+ ngImport: i0,
540
+ type: TimelineBlockComponent,
541
+ decorators: [{
542
+ type: Component,
543
+ args: [{
544
+ selector: "TimelineBlock",
545
+ host: {
546
+ "[class]": "classes()",
547
+ "[attr.data-slot]": "\"timeline-block\""
548
+ },
549
+ template: `<ng-content />`
550
+ }]
551
+ }],
552
+ propDecorators: { class: [{
553
+ type: i0.Input,
554
+ args: [{
555
+ isSignal: true,
556
+ alias: "class",
557
+ required: false
558
+ }]
559
+ }] }
560
+ });
561
+ var TimelineSubgridComponent = class TimelineSubgridComponent {
562
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
563
+ classes = computed(() => cn("grid min-w-0 grid-cols-[var(--timeline-indicator-size)_minmax(0,1fr)] gap-x-[var(--timeline-content-gap)]", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
564
+ static ɵfac = i0.ɵɵngDeclareFactory({
565
+ minVersion: "12.0.0",
566
+ version: "22.2.0",
567
+ ngImport: i0,
568
+ type: TimelineSubgridComponent,
569
+ deps: [],
570
+ target: i0.ɵɵFactoryTarget.Component
571
+ });
572
+ static ɵcmp = i0.ɵɵngDeclareComponent({
573
+ minVersion: "17.1.0",
574
+ version: "22.2.0",
575
+ type: TimelineSubgridComponent,
576
+ isStandalone: true,
577
+ selector: "TimelineSubgrid",
578
+ inputs: { class: {
579
+ classPropertyName: "class",
580
+ publicName: "class",
581
+ isSignal: true,
582
+ isRequired: false,
583
+ transformFunction: null
584
+ } },
585
+ host: { properties: {
586
+ "class": "classes()",
587
+ "attr.data-slot": "\"timeline-subgrid\""
588
+ } },
589
+ ngImport: i0,
590
+ template: `<ng-content />`,
591
+ isInline: true
592
+ });
593
+ };
594
+ i0.ɵɵngDeclareClassMetadata({
595
+ minVersion: "12.0.0",
596
+ version: "22.2.0",
597
+ ngImport: i0,
598
+ type: TimelineSubgridComponent,
599
+ decorators: [{
600
+ type: Component,
601
+ args: [{
602
+ selector: "TimelineSubgrid",
603
+ host: {
604
+ "[class]": "classes()",
605
+ "[attr.data-slot]": "\"timeline-subgrid\""
606
+ },
607
+ template: `<ng-content />`
608
+ }]
609
+ }],
610
+ propDecorators: { class: [{
611
+ type: i0.Input,
612
+ args: [{
613
+ isSignal: true,
614
+ alias: "class",
615
+ required: false
616
+ }]
617
+ }] }
618
+ });
619
+ export { TimelineBlockComponent, TimelineComponent, TimelineContentComponent, TimelineIndicatorComponent, TimelineItemComponent, TimelineSubgridComponent };