@ojiepermana/angular 22.1.11 → 22.1.12

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 (340) hide show
  1. package/README.md +32 -26
  2. package/chart/README.md +272 -0
  3. package/component/README.md +89 -0
  4. package/component/accordion/README.md +195 -0
  5. package/component/alert/README.md +184 -0
  6. package/component/alert-dialog/README.md +255 -0
  7. package/component/aspect-ratio/README.md +116 -0
  8. package/component/avatar/README.md +182 -0
  9. package/component/badge/README.md +143 -0
  10. package/component/breadcrumb/README.md +223 -0
  11. package/component/button/README.md +141 -0
  12. package/component/button-group/README.md +214 -0
  13. package/component/calendar/README.md +137 -0
  14. package/component/card/README.md +232 -0
  15. package/component/carousel/README.md +276 -0
  16. package/component/checkbox/README.md +153 -0
  17. package/component/collapsible/README.md +216 -0
  18. package/component/combobox/README.md +202 -0
  19. package/component/command/README.md +287 -0
  20. package/component/composer/README.md +241 -0
  21. package/component/context-menu/README.md +268 -0
  22. package/component/date-picker/README.md +202 -0
  23. package/component/dialog/README.md +276 -0
  24. package/component/drawer/README.md +147 -0
  25. package/component/dropdown-menu/README.md +336 -0
  26. package/component/editor/README.md +152 -0
  27. package/component/empty/README.md +193 -0
  28. package/component/form/README.md +216 -0
  29. package/component/hover-card/README.md +150 -0
  30. package/component/icon/README.md +25 -0
  31. package/component/input/README.md +160 -0
  32. package/component/input-group/README.md +245 -0
  33. package/component/input-otp/README.md +331 -0
  34. package/component/item/README.md +254 -0
  35. package/component/kanban/README.md +81 -0
  36. package/component/kbd/README.md +141 -0
  37. package/component/label/README.md +137 -0
  38. package/component/menubar/README.md +270 -0
  39. package/component/native-select/README.md +176 -0
  40. package/component/navigation-menu/README.md +165 -0
  41. package/component/pagination/README.md +151 -0
  42. package/component/pillbox/README.md +68 -0
  43. package/component/popover/README.md +54 -0
  44. package/component/progress/README.md +160 -0
  45. package/component/radio/README.md +212 -0
  46. package/component/resizable/README.md +178 -0
  47. package/component/scroll-area/README.md +150 -0
  48. package/component/select/README.md +228 -0
  49. package/component/separator/README.md +175 -0
  50. package/component/sheet/README.md +190 -0
  51. package/component/skeleton/README.md +158 -0
  52. package/component/slider/README.md +207 -0
  53. package/component/spinner/README.md +160 -0
  54. package/component/switch/README.md +170 -0
  55. package/component/table/README.md +292 -0
  56. package/component/tabs/README.md +220 -0
  57. package/component/textarea/README.md +169 -0
  58. package/component/timeline/README.md +94 -0
  59. package/component/toast/README.md +173 -0
  60. package/component/toggle/README.md +133 -0
  61. package/component/toggle-group/README.md +234 -0
  62. package/component/tooltip/README.md +230 -0
  63. package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
  64. package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
  65. package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
  66. package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
  67. package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
  68. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
  69. package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
  70. package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
  71. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
  72. package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
  73. package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
  74. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
  75. package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
  76. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
  77. package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
  78. package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
  79. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
  80. package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
  81. package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
  82. package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
  83. package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
  84. package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
  85. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
  86. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
  87. package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
  88. package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
  89. package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
  90. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
  91. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
  92. package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
  93. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
  94. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
  95. package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
  96. package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
  97. package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
  98. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
  99. package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
  100. package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
  101. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
  102. package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
  103. package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
  104. package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
  105. package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
  106. package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
  107. package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
  108. package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
  109. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
  110. package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
  111. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
  112. package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
  113. package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
  114. package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
  115. package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
  116. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
  117. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
  118. package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
  119. package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
  120. package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
  121. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
  122. package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
  123. package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
  124. package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
  125. package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
  126. package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
  127. package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
  128. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
  129. package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
  130. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
  131. package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
  132. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
  133. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
  134. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
  135. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
  136. package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
  137. package/fesm2022/ojiepermana-angular-component.mjs +4 -4
  138. package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
  139. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
  140. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
  141. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
  142. package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
  143. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
  144. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
  145. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
  146. package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
  147. package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
  148. package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
  149. package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
  150. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
  151. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
  152. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
  153. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
  154. package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
  155. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
  156. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
  157. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
  158. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
  159. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
  160. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
  161. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
  162. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
  163. package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
  164. package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
  165. package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
  166. package/fesm2022/ojiepermana-angular.mjs +6 -11
  167. package/navigation/README.md +374 -0
  168. package/package.json +81 -20
  169. package/sdk/README.md +212 -0
  170. package/sdk/schematics/collection.json +20 -0
  171. package/sdk/schematics/init/index.js +83 -0
  172. package/sdk/schematics/init/schema.json +19 -0
  173. package/sdk/schematics/ng-add/index.js +147 -0
  174. package/sdk/schematics/ng-add/schema.json +14 -0
  175. package/sdk/schematics/package.json +3 -0
  176. package/sdk/schematics/sdk/index.js +175 -0
  177. package/sdk/schematics/sdk/schema.json +19 -0
  178. package/sdk/sdk.config.example.json +24 -0
  179. package/sdk/src/config/loader.js +43 -0
  180. package/sdk/src/config/schema.js +59 -0
  181. package/sdk/src/emit/client.js +251 -0
  182. package/sdk/src/emit/metadata.js +310 -0
  183. package/sdk/src/emit/models.js +104 -0
  184. package/sdk/src/emit/navigation.js +56 -0
  185. package/sdk/src/emit/operations.js +118 -0
  186. package/sdk/src/emit/public-api.js +54 -0
  187. package/sdk/src/emit/services.js +110 -0
  188. package/sdk/src/engine.js +67 -0
  189. package/sdk/src/layout/per-domain.js +360 -0
  190. package/sdk/src/package.json +3 -0
  191. package/sdk/src/parser/bundle.js +25 -0
  192. package/sdk/src/parser/ir.js +429 -0
  193. package/sdk/src/parser/types.js +7 -0
  194. package/sdk/src/render/template.js +152 -0
  195. package/sdk/src/writer/index.js +286 -0
  196. package/theme/README.md +126 -0
  197. package/theme/component/settings/README.md +135 -0
  198. package/theme/layout/README.md +539 -0
  199. package/theme/page/README.md +453 -0
  200. package/theme/shell/README.md +340 -0
  201. package/theme/styles/README.md +178 -0
  202. package/theme/styles/css/base/components.css +553 -0
  203. package/theme/styles/css/base/index.css +14 -0
  204. package/theme/styles/css/base/package.css +9 -0
  205. package/theme/styles/css/base/prefers-dark.css +86 -0
  206. package/theme/styles/css/base/print.css +62 -0
  207. package/theme/styles/css/base/status.css +38 -0
  208. package/theme/styles/css/base/tailwind.css +165 -0
  209. package/theme/styles/css/base/theme.css +373 -0
  210. package/theme/styles/css/base/tokens.css +361 -0
  211. package/theme/styles/css/color/amber.css +72 -0
  212. package/theme/styles/css/color/blue.css +72 -0
  213. package/theme/styles/css/color/brand.css +38 -0
  214. package/theme/styles/css/color/cyan.css +72 -0
  215. package/theme/styles/css/color/emerald.css +72 -0
  216. package/theme/styles/css/color/fuchsia.css +72 -0
  217. package/theme/styles/css/color/green.css +72 -0
  218. package/theme/styles/css/color/index.css +19 -0
  219. package/theme/styles/css/color/indigo.css +72 -0
  220. package/theme/styles/css/color/lime.css +72 -0
  221. package/theme/styles/css/color/orange.css +72 -0
  222. package/theme/styles/css/color/pink.css +72 -0
  223. package/theme/styles/css/color/purple.css +72 -0
  224. package/theme/styles/css/color/red.css +72 -0
  225. package/theme/styles/css/color/rose.css +72 -0
  226. package/theme/styles/css/color/sky.css +72 -0
  227. package/theme/styles/css/color/teal.css +72 -0
  228. package/theme/styles/css/color/violet.css +72 -0
  229. package/theme/styles/css/color/yellow.css +72 -0
  230. package/theme/styles/css/index.css +18 -0
  231. package/theme/styles/css/neutral/gray.css +63 -0
  232. package/theme/styles/css/neutral/index.css +11 -0
  233. package/theme/styles/css/neutral/mauve.css +63 -0
  234. package/theme/styles/css/neutral/mist.css +63 -0
  235. package/theme/styles/css/neutral/neutral.css +63 -0
  236. package/theme/styles/css/neutral/olive.css +63 -0
  237. package/theme/styles/css/neutral/slate.css +63 -0
  238. package/theme/styles/css/neutral/stone.css +63 -0
  239. package/theme/styles/css/neutral/taupe.css +63 -0
  240. package/theme/styles/css/neutral/zinc.css +63 -0
  241. package/theme/styles/css/radius/index.css +30 -0
  242. package/theme/styles/css/space/index.css +20 -0
  243. package/types/ojiepermana-angular-chart-area.d.ts +76 -1
  244. package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
  245. package/types/ojiepermana-angular-chart-core.d.ts +811 -1
  246. package/types/ojiepermana-angular-chart-line.d.ts +75 -1
  247. package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
  248. package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
  249. package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
  250. package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
  251. package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
  252. package/types/ojiepermana-angular-chart.d.ts +2 -1
  253. package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
  254. package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
  255. package/types/ojiepermana-angular-component-alert.d.ts +42 -1
  256. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
  257. package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
  258. package/types/ojiepermana-angular-component-badge.d.ts +24 -1
  259. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
  260. package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
  261. package/types/ojiepermana-angular-component-button.d.ts +27 -1
  262. package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
  263. package/types/ojiepermana-angular-component-card.d.ts +69 -1
  264. package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
  265. package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
  266. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
  267. package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
  268. package/types/ojiepermana-angular-component-command.d.ts +130 -1
  269. package/types/ojiepermana-angular-component-composer.d.ts +90 -1
  270. package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
  271. package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
  272. package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
  273. package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
  274. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
  275. package/types/ojiepermana-angular-component-editor.d.ts +135 -1
  276. package/types/ojiepermana-angular-component-empty.d.ts +50 -1
  277. package/types/ojiepermana-angular-component-form.d.ts +159 -1
  278. package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
  279. package/types/ojiepermana-angular-component-icon.d.ts +89 -1
  280. package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
  281. package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
  282. package/types/ojiepermana-angular-component-input.d.ts +21 -1
  283. package/types/ojiepermana-angular-component-item.d.ts +93 -1
  284. package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
  285. package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
  286. package/types/ojiepermana-angular-component-label.d.ts +11 -1
  287. package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
  288. package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
  289. package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
  290. package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
  291. package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
  292. package/types/ojiepermana-angular-component-popover.d.ts +66 -1
  293. package/types/ojiepermana-angular-component-progress.d.ts +17 -1
  294. package/types/ojiepermana-angular-component-radio.d.ts +60 -1
  295. package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
  296. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
  297. package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
  298. package/types/ojiepermana-angular-component-select.d.ts +122 -1
  299. package/types/ojiepermana-angular-component-separator.d.ts +14 -1
  300. package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
  301. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
  302. package/types/ojiepermana-angular-component-slider.d.ts +83 -1
  303. package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
  304. package/types/ojiepermana-angular-component-switch.d.ts +44 -1
  305. package/types/ojiepermana-angular-component-table.d.ts +57 -1
  306. package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
  307. package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
  308. package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
  309. package/types/ojiepermana-angular-component-toast.d.ts +64 -1
  310. package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
  311. package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
  312. package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
  313. package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
  314. package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
  315. package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
  316. package/types/ojiepermana-angular-component-utils.d.ts +2 -1
  317. package/types/ojiepermana-angular-component.d.ts +2 -1
  318. package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
  319. package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
  320. package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
  321. package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
  322. package/types/ojiepermana-angular-navigation.d.ts +507 -1
  323. package/types/ojiepermana-angular-sdk.d.ts +89 -1
  324. package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
  325. package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
  326. package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
  327. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
  328. package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
  329. package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
  330. package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
  331. package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
  332. package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
  333. package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
  334. package/types/ojiepermana-angular-theme-page.d.ts +5 -1
  335. package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
  336. package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
  337. package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
  338. package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
  339. package/types/ojiepermana-angular-theme.d.ts +2 -1
  340. package/types/ojiepermana-angular.d.ts +5 -5
@@ -1,7 +1,319 @@
1
- export * from '@ojiepermana/angular-component/tabs';
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, inject, model, input, signal, computed, forwardRef, Component, ElementRef } from '@angular/core';
3
+ import { injectUniqueId, cn } 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';
2
6
 
3
- // Generated by scripts/gen-umbrella-entrypoints.mjs — do not edit by hand.
7
+ /**
8
+ * Shared state for a tabs group. Children read the active value and register
9
+ * themselves so the group can drive roving-tabindex keyboard navigation.
10
+ */
11
+ class TabsContextBase {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsContextBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: TabsContextBase, isStandalone: true, ngImport: i0 });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsContextBase, decorators: [{
16
+ type: Directive
17
+ }] });
18
+ class TabsListContextBase {
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsListContextBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: TabsListContextBase, isStandalone: true, ngImport: i0 });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsListContextBase, decorators: [{
23
+ type: Directive
24
+ }] });
25
+ class TabsComponent extends TabsContextBase {
26
+ componentScale = inject(ComponentScaleDirective);
27
+ radius = this.componentScale.radius;
28
+ density = this.componentScale.density;
29
+ value = model(null, /* @ts-ignore */
30
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
31
+ orientation = input('horizontal', /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
33
+ class = input('', /* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
35
+ idPrefix = injectUniqueId('Tabs');
36
+ // Registered triggers, kept in DOM order by {@link register}. A signal rather
37
+ // than a plain list because every trigger's roving `tabindex` is derived from
38
+ // the whole set, so adding or removing one has to re-render the others.
39
+ triggers = signal([], /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "triggers" }] : /* istanbul ignore next */ []));
41
+ /**
42
+ * The value the group actually renders.
43
+ *
44
+ * A group whose `value` is empty -- nothing bound at all, or a consumer signal
45
+ * that starts at null -- still has to show a tab, so the first enabled trigger
46
+ * stands in. Derived rather than written back: `value` is the consumer's
47
+ * two-way binding to own, and filling it in on their behalf reported a
48
+ * selection they never made, from inside a child's ngOnInit.
49
+ */
50
+ effectiveValue = computed(() => this.value() ?? this.enabledTriggers()[0]?.value() ?? null, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "effectiveValue" }] : /* istanbul ignore next */ []));
52
+ classes = computed(() => cn(this.orientation() === 'vertical' ? 'flex items-start gap-4' : 'block', this.class()), /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
54
+ register(element, value, disabled) {
55
+ this.triggers.update((triggers) => [...triggers.filter((trigger) => trigger.element !== element), { element, value, disabled }]
56
+ // Sorted by document position, not by arrival. A trigger inside an @if
57
+ // registers whenever its block renders, so a tab removed and put back
58
+ // would otherwise land at the end of the list -- and everything derived
59
+ // from the order (arrow direction, Home/End, the fallback tab stop)
60
+ // would follow registration order instead of what the user sees.
61
+ .sort((a, b) => a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1));
62
+ }
63
+ unregister(element) {
64
+ this.triggers.update((triggers) => triggers.filter((trigger) => trigger.element !== element));
65
+ }
66
+ /**
67
+ * The roving `tabindex` for one trigger.
68
+ *
69
+ * Normally the selected trigger is the single tab stop. When the bound value
70
+ * matches no ENABLED trigger the first enabled one takes the tab stop instead.
71
+ * Without that fallback a value nothing answers to -- a typo, a tab removed
72
+ * from the DOM while it was selected, a selected tab that is disabled -- left
73
+ * every trigger at `tabindex=-1`, which drops the whole tablist out of the tab
74
+ * order and leaves a keyboard user with no way into it at all.
75
+ *
76
+ * The fallback is presentation only: it never rewrites `value`, because that
77
+ * is the consumer's two-way binding to own.
78
+ */
79
+ tabIndexFor(element) {
80
+ const enabledTriggers = this.enabledTriggers();
81
+ const trigger = enabledTriggers.find((candidate) => candidate.element === element);
82
+ if (!trigger) {
83
+ return -1;
84
+ }
85
+ const selectedTrigger = enabledTriggers.find((candidate) => candidate.value() === this.effectiveValue());
86
+ return (selectedTrigger ?? enabledTriggers[0]) === trigger ? 0 : -1;
87
+ }
88
+ activate(value, focus = false) {
89
+ const trigger = this.triggerForValue(value);
90
+ if (!trigger || trigger.disabled())
91
+ return;
92
+ this.value.set(value);
93
+ if (focus) {
94
+ trigger.element.focus();
95
+ }
96
+ }
97
+ focusNext(from, offset) {
98
+ const enabledTriggers = this.enabledTriggers();
99
+ const currentIndex = enabledTriggers.findIndex((trigger) => trigger.element === from);
100
+ if (currentIndex < 0 || enabledTriggers.length === 0)
101
+ return;
102
+ const nextTrigger = enabledTriggers[(currentIndex + offset + enabledTriggers.length) % enabledTriggers.length];
103
+ this.activate(nextTrigger.value(), true);
104
+ }
105
+ focusFirst() {
106
+ const firstTrigger = this.enabledTriggers()[0];
107
+ if (firstTrigger)
108
+ this.activate(firstTrigger.value(), true);
109
+ }
110
+ focusLast() {
111
+ const enabledTriggers = this.enabledTriggers();
112
+ const lastTrigger = enabledTriggers[enabledTriggers.length - 1];
113
+ if (lastTrigger)
114
+ this.activate(lastTrigger.value(), true);
115
+ }
116
+ triggerId(value) {
117
+ return `${this.idPrefix}-trigger-${this.normalizeValue(value)}`;
118
+ }
119
+ contentId(value) {
120
+ return `${this.idPrefix}-content-${this.normalizeValue(value)}`;
121
+ }
122
+ enabledTriggers() {
123
+ return this.triggers().filter((trigger) => !trigger.disabled());
124
+ }
125
+ triggerForValue(value) {
126
+ return this.triggers().find((trigger) => trigger.value() === value);
127
+ }
128
+ normalizeValue(value) {
129
+ const normalized = value
130
+ .toLowerCase()
131
+ .replace(/[^a-z0-9_-]+/g, '-')
132
+ .replace(/^-+|-+$/g, '');
133
+ return normalized || 'tab';
134
+ }
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TabsComponent, isStandalone: true, selector: "Tabs", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()", "attr.data-orientation": "orientation()" } }, providers: [{ provide: TabsContextBase, useExisting: forwardRef(() => TabsComponent) }], usesInheritance: true, hostDirectives: [{ directive: i1.ComponentScaleDirective, inputs: ["radius", "radius", "density", "density"] }], ngImport: i0, template: `<ng-content />`, isInline: true });
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsComponent, decorators: [{
139
+ type: Component,
140
+ args: [{
141
+ selector: 'Tabs',
142
+ hostDirectives: [
143
+ {
144
+ directive: ComponentScaleDirective,
145
+ inputs: ['radius', 'density'],
146
+ },
147
+ ],
148
+ providers: [{ provide: TabsContextBase, useExisting: forwardRef(() => TabsComponent) }],
149
+ host: {
150
+ '[class]': 'classes()',
151
+ '[attr.data-orientation]': 'orientation()',
152
+ },
153
+ template: `<ng-content />`,
154
+ }]
155
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
156
+ class TabsListComponent extends TabsListContextBase {
157
+ ctx = inject(TabsComponent);
158
+ variant = input('default', /* @ts-ignore */
159
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
160
+ class = input('', /* @ts-ignore */
161
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
162
+ classes = computed(() => cn(this.variantClasses(), this.class()), /* @ts-ignore */
163
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
164
+ listVariant() {
165
+ return this.variant();
166
+ }
167
+ variantClasses() {
168
+ if (this.variant() === 'line') {
169
+ return this.ctx.orientation() === 'vertical'
170
+ ? 'inline-flex flex-col items-stretch justify-start gap-1 border-e border-border bg-transparent p-0 pe-3 text-muted-foreground'
171
+ : 'inline-flex h-control-md items-center justify-start gap-4 border-b border-border bg-transparent p-0 text-muted-foreground';
172
+ }
173
+ return this.ctx.orientation() === 'vertical'
174
+ ? 'inline-flex flex-col items-stretch justify-start rounded-md bg-muted p-1 text-muted-foreground'
175
+ : 'inline-flex h-control-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground';
176
+ }
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
178
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TabsListComponent, isStandalone: true, selector: "TabsList", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"tablist\"", "attr.aria-orientation": "ctx.orientation()", "attr.data-variant": "variant()" } }, providers: [{ provide: TabsListContextBase, useExisting: forwardRef(() => TabsListComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true });
179
+ }
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsListComponent, decorators: [{
181
+ type: Component,
182
+ args: [{
183
+ selector: 'TabsList',
184
+ providers: [{ provide: TabsListContextBase, useExisting: forwardRef(() => TabsListComponent) }],
185
+ host: {
186
+ '[class]': 'classes()',
187
+ '[attr.role]': '"tablist"',
188
+ '[attr.aria-orientation]': 'ctx.orientation()',
189
+ '[attr.data-variant]': 'variant()',
190
+ },
191
+ template: `<ng-content />`,
192
+ }]
193
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
194
+ class TabsTriggerComponent {
195
+ ctx = inject(TabsComponent);
196
+ list = inject(TabsListContextBase, { optional: true });
197
+ el = inject(ElementRef);
198
+ value = input.required(/* @ts-ignore */
199
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
200
+ disabled = input(false, /* @ts-ignore */
201
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
202
+ class = input('', /* @ts-ignore */
203
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
204
+ selected = computed(() => this.ctx.effectiveValue() === this.value(), /* @ts-ignore */
205
+ ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
206
+ tabIndex = computed(() => this.ctx.tabIndexFor(this.el.nativeElement), /* @ts-ignore */
207
+ ...(ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []));
208
+ triggerId = computed(() => this.ctx.triggerId(this.value()), /* @ts-ignore */
209
+ ...(ngDevMode ? [{ debugName: "triggerId" }] : /* istanbul ignore next */ []));
210
+ contentId = computed(() => this.ctx.contentId(this.value()), /* @ts-ignore */
211
+ ...(ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []));
212
+ classes = computed(() => cn('inline-flex items-center justify-center gap-1.5 whitespace-nowrap text-sm font-medium', 'ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', 'disabled:pointer-events-none disabled:opacity-50', this.variantClasses(), this.class()), /* @ts-ignore */
213
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
214
+ ngOnInit() {
215
+ this.ctx.register(this.el.nativeElement, this.value, this.disabled);
216
+ }
217
+ ngOnDestroy() {
218
+ this.ctx.unregister(this.el.nativeElement);
219
+ }
220
+ onClick() {
221
+ if (this.disabled())
222
+ return;
223
+ this.ctx.activate(this.value());
224
+ }
225
+ onArrow(e, delta, axis) {
226
+ if (this.ctx.orientation() !== axis)
227
+ return;
228
+ e.preventDefault();
229
+ this.ctx.focusNext(this.el.nativeElement, delta);
230
+ }
231
+ onHome(e) {
232
+ e.preventDefault();
233
+ this.ctx.focusFirst();
234
+ }
235
+ onEnd(e) {
236
+ e.preventDefault();
237
+ this.ctx.focusLast();
238
+ }
239
+ variantClasses() {
240
+ const variant = this.list?.listVariant() ?? 'default';
241
+ if (variant === 'line') {
242
+ return this.ctx.orientation() === 'vertical'
243
+ ? 'w-full justify-start rounded-none border-e-2 border-transparent px-3 py-2 data-[state=active]:border-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:shadow-none'
244
+ : 'rounded-none border-b-2 border-transparent px-2 py-2 data-[state=active]:border-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:shadow-none';
245
+ }
246
+ return cn('rounded-sm px-3 py-1.5 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm', this.ctx.orientation() === 'vertical' && 'w-full justify-start');
247
+ }
248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TabsTriggerComponent, isStandalone: true, selector: "button[TabsTrigger]", 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: { attributes: { "type": "button" }, listeners: { "click": "onClick()", "keydown.arrowRight": "onArrow($any($event), 1, \"horizontal\")", "keydown.arrowLeft": "onArrow($any($event), -1, \"horizontal\")", "keydown.arrowDown": "onArrow($any($event), 1, \"vertical\")", "keydown.arrowUp": "onArrow($any($event), -1, \"vertical\")", "keydown.home": "onHome($any($event))", "keydown.end": "onEnd($any($event))" }, properties: { "class": "classes()", "id": "triggerId()", "attr.role": "\"tab\"", "attr.aria-selected": "selected()", "attr.aria-controls": "contentId()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.tabindex": "tabIndex()", "attr.data-state": "selected() ? \"active\" : \"inactive\"", "disabled": "disabled() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
250
+ }
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsTriggerComponent, decorators: [{
252
+ type: Component,
253
+ args: [{
254
+ selector: 'button[TabsTrigger]',
255
+ host: {
256
+ '[class]': 'classes()',
257
+ '[id]': 'triggerId()',
258
+ type: 'button',
259
+ '[attr.role]': '"tab"',
260
+ '[attr.aria-selected]': 'selected()',
261
+ '[attr.aria-controls]': 'contentId()',
262
+ '[attr.aria-disabled]': 'disabled() ? "true" : null',
263
+ '[attr.tabindex]': 'tabIndex()',
264
+ '[attr.data-state]': 'selected() ? "active" : "inactive"',
265
+ '[disabled]': 'disabled() || null',
266
+ '(click)': 'onClick()',
267
+ '(keydown.arrowRight)': 'onArrow($any($event), 1, "horizontal")',
268
+ '(keydown.arrowLeft)': 'onArrow($any($event), -1, "horizontal")',
269
+ '(keydown.arrowDown)': 'onArrow($any($event), 1, "vertical")',
270
+ '(keydown.arrowUp)': 'onArrow($any($event), -1, "vertical")',
271
+ '(keydown.home)': 'onHome($any($event))',
272
+ '(keydown.end)': 'onEnd($any($event))',
273
+ },
274
+ template: `<ng-content />`,
275
+ }]
276
+ }], 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 }] }] } });
277
+ class TabsContentComponent {
278
+ ctx = inject(TabsComponent);
279
+ value = input.required(/* @ts-ignore */
280
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
281
+ class = input('', /* @ts-ignore */
282
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
283
+ active = computed(() => this.ctx.effectiveValue() === this.value(), /* @ts-ignore */
284
+ ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
285
+ triggerId = computed(() => this.ctx.triggerId(this.value()), /* @ts-ignore */
286
+ ...(ngDevMode ? [{ debugName: "triggerId" }] : /* istanbul ignore next */ []));
287
+ contentId = computed(() => this.ctx.contentId(this.value()), /* @ts-ignore */
288
+ ...(ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []));
289
+ classes = computed(() => cn('mt-2 block ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', this.class()), /* @ts-ignore */
290
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
292
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: TabsContentComponent, isStandalone: true, selector: "TabsContent", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" }, properties: { "class": "classes()", "id": "contentId()", "attr.role": "\"tabpanel\"", "attr.aria-labelledby": "triggerId()", "attr.data-state": "active() ? \"active\" : \"inactive\"", "hidden": "!active()" } }, ngImport: i0, template: `@if (active()) {
293
+ <ng-content />
294
+ }`, isInline: true });
295
+ }
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TabsContentComponent, decorators: [{
297
+ type: Component,
298
+ args: [{
299
+ selector: 'TabsContent',
300
+ host: {
301
+ '[class]': 'classes()',
302
+ '[id]': 'contentId()',
303
+ '[attr.role]': '"tabpanel"',
304
+ '[attr.aria-labelledby]': 'triggerId()',
305
+ '[attr.data-state]': 'active() ? "active" : "inactive"',
306
+ '[hidden]': '!active()',
307
+ tabindex: '0',
308
+ },
309
+ template: `@if (active()) {
310
+ <ng-content />
311
+ }`,
312
+ }]
313
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
4
314
 
5
315
  /**
6
316
  * Generated bundle index. Do not edit.
7
- */
317
+ */
318
+
319
+ export { TabsComponent, TabsContentComponent, TabsContextBase, TabsListComponent, TabsListContextBase, TabsTriggerComponent };
@@ -1,7 +1,50 @@
1
- export * from '@ojiepermana/angular-component/textarea';
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, input, computed, Component } from '@angular/core';
3
+ import { cn } 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';
2
6
 
3
- // Generated by scripts/gen-umbrella-entrypoints.mjs — do not edit by hand.
7
+ class TextareaComponent {
8
+ componentScale = inject(ComponentScaleDirective);
9
+ radius = this.componentScale.radius;
10
+ density = this.componentScale.density;
11
+ el = inject(ElementRef);
12
+ class = input('', /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
14
+ classes = computed(() => cn([
15
+ 'flex min-h-15 w-full resize-y rounded-md border border-input bg-transparent px-3 py-2',
16
+ 'text-sm shadow-sm transition-colors',
17
+ 'placeholder:text-muted-foreground',
18
+ 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',
19
+ 'disabled:cursor-not-allowed disabled:opacity-50',
20
+ 'aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive',
21
+ ].join(' '), this.class()), /* @ts-ignore */
22
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
23
+ focus() {
24
+ this.el.nativeElement.focus();
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: TextareaComponent, isStandalone: true, selector: "textarea[Textarea]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, hostDirectives: [{ directive: i1.ComponentScaleDirective, inputs: ["radius", "radius", "density", "density"] }], ngImport: i0, template: '', isInline: true });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TextareaComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'textarea[Textarea]',
33
+ hostDirectives: [
34
+ {
35
+ directive: ComponentScaleDirective,
36
+ inputs: ['radius', 'density'],
37
+ },
38
+ ],
39
+ host: {
40
+ '[class]': 'classes()',
41
+ },
42
+ template: '',
43
+ }]
44
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
4
45
 
5
46
  /**
6
47
  * Generated bundle index. Do not edit.
7
- */
48
+ */
49
+
50
+ export { TextareaComponent };
@@ -1,7 +1,241 @@
1
- export * from '@ojiepermana/angular-component/timeline';
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';
2
4
 
3
- // Generated by scripts/gen-umbrella-entrypoints.mjs — do not edit by hand.
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(' ');
9
+ const timelineSizeClasses = {
10
+ default: '[--timeline-indicator-size:1.5rem]',
11
+ lg: '[--timeline-indicator-size:2.5rem] [--timeline-content-gap:calc(var(--spacing)*4)]',
12
+ };
13
+ const timelineAlignClasses = {
14
+ start: 'items-start',
15
+ baseline: 'items-baseline',
16
+ center: 'items-center',
17
+ end: 'items-end',
18
+ };
19
+ 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',
23
+ };
24
+ 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',
28
+ };
29
+ 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))]',
47
+ };
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 }] }] } });
4
236
 
5
237
  /**
6
238
  * Generated bundle index. Do not edit.
7
- */
239
+ */
240
+
241
+ export { TimelineBlockComponent, TimelineComponent, TimelineContentComponent, TimelineIndicatorComponent, TimelineItemComponent, TimelineSubgridComponent };