@ojiepermana/angular 21.3.4 → 22.0.27

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 (387) hide show
  1. package/README.md +16 -298
  2. package/fesm2022/ojiepermana-angular-chart.mjs +11 -0
  3. package/fesm2022/ojiepermana-angular-chart.mjs.map +1 -0
  4. package/fesm2022/ojiepermana-angular-component.mjs +11 -0
  5. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
  6. package/fesm2022/ojiepermana-angular-navigation.mjs +11 -0
  7. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -0
  8. package/fesm2022/ojiepermana-angular-sdk.mjs +11 -0
  9. package/fesm2022/ojiepermana-angular-sdk.mjs.map +1 -0
  10. package/fesm2022/ojiepermana-angular-theme.mjs +3 -374
  11. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  12. package/fesm2022/ojiepermana-angular.mjs +14 -14
  13. package/fesm2022/ojiepermana-angular.mjs.map +1 -1
  14. package/package.json +25 -361
  15. package/types/ojiepermana-angular-chart.d.ts +1 -0
  16. package/types/ojiepermana-angular-component.d.ts +1 -0
  17. package/types/ojiepermana-angular-navigation.d.ts +1 -0
  18. package/types/ojiepermana-angular-sdk.d.ts +1 -0
  19. package/types/ojiepermana-angular-theme.d.ts +1 -116
  20. package/types/ojiepermana-angular.d.ts +5 -3
  21. package/.npmignore +0 -2
  22. package/collection.json +0 -30
  23. package/component/accordion/package.json +0 -4
  24. package/component/alert/package.json +0 -4
  25. package/component/alert-dialog/package.json +0 -4
  26. package/component/aspect-ratio/package.json +0 -4
  27. package/component/avatar/package.json +0 -4
  28. package/component/badge/package.json +0 -4
  29. package/component/breadcrumb/package.json +0 -4
  30. package/component/button/package.json +0 -4
  31. package/component/button-group/package.json +0 -4
  32. package/component/calendar/package.json +0 -4
  33. package/component/card/package.json +0 -4
  34. package/component/carousel/package.json +0 -4
  35. package/component/chart/README.md +0 -249
  36. package/component/chart/area/package.json +0 -4
  37. package/component/chart/bar/package.json +0 -4
  38. package/component/chart/line/package.json +0 -4
  39. package/component/chart/package.json +0 -4
  40. package/component/chart/pie/package.json +0 -4
  41. package/component/chart/radar/package.json +0 -4
  42. package/component/chart/radial/package.json +0 -4
  43. package/component/chart/scatter/package.json +0 -4
  44. package/component/checkbox/package.json +0 -4
  45. package/component/collapsible/package.json +0 -4
  46. package/component/combobox/package.json +0 -4
  47. package/component/command/package.json +0 -4
  48. package/component/context-menu/package.json +0 -4
  49. package/component/date-picker/package.json +0 -4
  50. package/component/dialog/package.json +0 -4
  51. package/component/drawer/package.json +0 -4
  52. package/component/dropdown-menu/package.json +0 -4
  53. package/component/form/package.json +0 -4
  54. package/component/input/package.json +0 -4
  55. package/component/input-group/package.json +0 -4
  56. package/component/item/package.json +0 -4
  57. package/component/label/package.json +0 -4
  58. package/component/pagination/package.json +0 -4
  59. package/component/popover/package.json +0 -4
  60. package/component/progress/package.json +0 -4
  61. package/component/radio/package.json +0 -4
  62. package/component/scroll-area/package.json +0 -4
  63. package/component/select/package.json +0 -4
  64. package/component/separator/package.json +0 -4
  65. package/component/sheet/package.json +0 -4
  66. package/component/skeleton/package.json +0 -4
  67. package/component/slider/package.json +0 -4
  68. package/component/switch/package.json +0 -4
  69. package/component/table/package.json +0 -4
  70. package/component/tabs/package.json +0 -4
  71. package/component/textarea/package.json +0 -4
  72. package/component/toast/package.json +0 -4
  73. package/component/tooltip/package.json +0 -4
  74. package/component/utils/package.json +0 -4
  75. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -174
  76. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  77. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -242
  78. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  79. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -90
  80. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  81. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -33
  82. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  83. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -123
  84. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  85. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -47
  86. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  87. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -186
  88. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  89. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -95
  90. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  91. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -64
  92. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  93. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -78
  94. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  95. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -137
  96. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  97. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -310
  98. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  99. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  100. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  101. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  102. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  103. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  104. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  105. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  106. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  107. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  108. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  109. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  110. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  111. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  112. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  113. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3714
  114. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  115. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -104
  116. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  117. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -116
  118. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  119. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -263
  120. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  121. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -268
  122. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  123. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -100
  124. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  125. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -155
  126. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  127. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -262
  128. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  129. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  130. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  131. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -458
  132. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  133. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -208
  134. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  135. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -164
  136. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  137. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -43
  138. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  139. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -241
  140. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  141. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -30
  142. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  143. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -192
  144. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  145. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -163
  146. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  147. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -53
  148. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  149. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -92
  150. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -48
  152. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -131
  154. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -33
  156. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -235
  158. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -29
  160. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -29
  162. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -84
  164. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -139
  166. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -252
  168. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -37
  170. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -47
  172. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -56
  174. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  176. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  178. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -581
  180. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-layout-empty.mjs +0 -49
  182. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs +0 -119
  184. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  186. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -114
  188. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  190. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -27
  192. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  194. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-layout-vertical.mjs +0 -113
  196. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-layout.mjs +0 -461
  198. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  200. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -59
  202. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -548
  204. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -204
  206. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -373
  208. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -433
  210. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  212. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  214. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -286
  216. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  218. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  219. package/generator/api/README.md +0 -252
  220. package/generator/api/bin/package.json +0 -3
  221. package/generator/api/bin/schematics/init/index.js +0 -90
  222. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  223. package/generator/api/bin/schematics/sdk/index.js +0 -76
  224. package/generator/api/bin/src/config/loader.js +0 -41
  225. package/generator/api/bin/src/config/schema.js +0 -57
  226. package/generator/api/bin/src/emit/client.js +0 -246
  227. package/generator/api/bin/src/emit/metadata.js +0 -295
  228. package/generator/api/bin/src/emit/models.js +0 -106
  229. package/generator/api/bin/src/emit/navigation.js +0 -56
  230. package/generator/api/bin/src/emit/operations.js +0 -122
  231. package/generator/api/bin/src/emit/public-api.js +0 -54
  232. package/generator/api/bin/src/emit/services.js +0 -87
  233. package/generator/api/bin/src/engine.js +0 -65
  234. package/generator/api/bin/src/layout/per-domain.js +0 -359
  235. package/generator/api/bin/src/parser/bundle.js +0 -25
  236. package/generator/api/bin/src/parser/ir.js +0 -320
  237. package/generator/api/bin/src/parser/types.js +0 -7
  238. package/generator/api/bin/src/render/template.js +0 -58
  239. package/generator/api/bin/src/writer/index.js +0 -278
  240. package/generator/api/package.json +0 -4
  241. package/generator/api/schematics/init/schema.json +0 -19
  242. package/generator/api/schematics/ng-add/schema.json +0 -14
  243. package/generator/api/schematics/sdk/schema.json +0 -19
  244. package/generator/api/sdk.config.example.json +0 -24
  245. package/generator/guide/README.md +0 -84
  246. package/generator/guide/bin/package.json +0 -3
  247. package/generator/guide/bin/schematics/build/index.js +0 -35
  248. package/generator/guide/bin/schematics/init/index.js +0 -70
  249. package/generator/guide/bin/src/config/loader.js +0 -50
  250. package/generator/guide/bin/src/config/schema.js +0 -12
  251. package/generator/guide/bin/src/engine/component.js +0 -74
  252. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  253. package/generator/guide/bin/src/engine/index.js +0 -42
  254. package/generator/guide/bin/src/engine/naming.js +0 -39
  255. package/generator/guide/bin/src/engine/render.js +0 -31
  256. package/generator/guide/bin/src/engine/routes.js +0 -106
  257. package/generator/guide/bin/src/engine/walk.js +0 -35
  258. package/generator/guide/guide.config.example.json +0 -9
  259. package/generator/guide/schematics/build/schema.json +0 -14
  260. package/generator/guide/schematics/init/schema.json +0 -19
  261. package/layout/component/package.json +0 -4
  262. package/layout/empty/package.json +0 -4
  263. package/layout/horizontal/package.json +0 -4
  264. package/layout/package.json +0 -4
  265. package/layout/provider/package.json +0 -4
  266. package/layout/services/package.json +0 -4
  267. package/layout/shell/package.json +0 -4
  268. package/layout/token/directive/package.json +0 -4
  269. package/layout/token/package.json +0 -4
  270. package/layout/vertical/package.json +0 -4
  271. package/navigation/demo-data/package.json +0 -4
  272. package/navigation/icon/package.json +0 -4
  273. package/navigation/item/package.json +0 -4
  274. package/navigation/service/package.json +0 -4
  275. package/navigation/sidebar/package.json +0 -4
  276. package/navigation/topbar/package.json +0 -4
  277. package/navigation/types/package.json +0 -4
  278. package/theme/README.md +0 -67
  279. package/theme/package.json +0 -4
  280. package/theme/provider/package.json +0 -4
  281. package/theme/services/package.json +0 -4
  282. package/theme/styles/foundation/components.css +0 -81
  283. package/theme/styles/foundation/layers.css +0 -15
  284. package/theme/styles/foundation/tokens.css +0 -55
  285. package/theme/styles/index.css +0 -37
  286. package/theme/styles/integrations/material.css +0 -254
  287. package/theme/styles/integrations/tailwind.css +0 -114
  288. package/theme/styles/variants/color/amber.css +0 -31
  289. package/theme/styles/variants/color/base.css +0 -36
  290. package/theme/styles/variants/color/blue.css +0 -31
  291. package/theme/styles/variants/color/cyan.css +0 -31
  292. package/theme/styles/variants/color/emerald.css +0 -31
  293. package/theme/styles/variants/color/fuchsia.css +0 -31
  294. package/theme/styles/variants/color/green.css +0 -31
  295. package/theme/styles/variants/color/index.css +0 -22
  296. package/theme/styles/variants/color/indigo.css +0 -31
  297. package/theme/styles/variants/color/lime.css +0 -31
  298. package/theme/styles/variants/color/orange.css +0 -31
  299. package/theme/styles/variants/color/pink.css +0 -31
  300. package/theme/styles/variants/color/purple.css +0 -31
  301. package/theme/styles/variants/color/red.css +0 -31
  302. package/theme/styles/variants/color/rose.css +0 -31
  303. package/theme/styles/variants/color/sky.css +0 -31
  304. package/theme/styles/variants/color/teal.css +0 -31
  305. package/theme/styles/variants/color/violet.css +0 -31
  306. package/theme/styles/variants/color/yellow.css +0 -31
  307. package/theme/styles/variants/mode/dark.css +0 -20
  308. package/theme/styles/variants/mode/index.css +0 -6
  309. package/theme/styles/variants/mode/light.css +0 -24
  310. package/theme/styles/variants/style/brutal.css +0 -50
  311. package/theme/styles/variants/style/default.css +0 -54
  312. package/theme/styles/variants/style/index.css +0 -8
  313. package/theme/styles/variants/style/sharp.css +0 -50
  314. package/theme/styles/variants/style/soft.css +0 -50
  315. package/theme/token/package.json +0 -4
  316. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  317. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  318. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  319. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  320. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  321. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  322. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  323. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  324. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  325. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  326. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  327. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  328. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  329. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  330. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  331. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  332. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  333. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  334. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  335. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  336. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  337. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  338. package/types/ojiepermana-angular-component-combobox.d.ts +0 -51
  339. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  340. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  341. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  342. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  343. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  344. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -135
  345. package/types/ojiepermana-angular-component-form.d.ts +0 -92
  346. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  347. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  348. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  349. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  350. package/types/ojiepermana-angular-component-pagination.d.ts +0 -27
  351. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  352. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  353. package/types/ojiepermana-angular-component-radio.d.ts +0 -34
  354. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  355. package/types/ojiepermana-angular-component-select.d.ts +0 -45
  356. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  357. package/types/ojiepermana-angular-component-sheet.d.ts +0 -74
  358. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  359. package/types/ojiepermana-angular-component-slider.d.ts +0 -16
  360. package/types/ojiepermana-angular-component-switch.d.ts +0 -30
  361. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  362. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  363. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  364. package/types/ojiepermana-angular-component-toast.d.ts +0 -29
  365. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -22
  366. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  367. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  368. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  369. package/types/ojiepermana-angular-layout-empty.d.ts +0 -22
  370. package/types/ojiepermana-angular-layout-horizontal.d.ts +0 -36
  371. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  372. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  373. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  374. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  375. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  376. package/types/ojiepermana-angular-layout-vertical.d.ts +0 -38
  377. package/types/ojiepermana-angular-layout.d.ts +0 -164
  378. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  379. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  380. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  381. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  382. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  383. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -54
  384. package/types/ojiepermana-angular-navigation-types.d.ts +0 -129
  385. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  386. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  387. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,14 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "NgAddSchema",
4
- "title": "@ojiepermana/angular ng-add options",
5
- "type": "object",
6
- "properties": {
7
- "skipInstall": {
8
- "type": "boolean",
9
- "default": false,
10
- "description": "Skip installing dependencies after updating package.json."
11
- }
12
- },
13
- "additionalProperties": false
14
- }
@@ -1,19 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "SdkGeneratorSchema",
4
- "title": "Generate an Angular SDK from an OpenAPI spec",
5
- "type": "object",
6
- "properties": {
7
- "config": {
8
- "type": "string",
9
- "description": "Path to sdk.config.json (defaults to ./config/sdk.config.json at workspace root).",
10
- "default": "config/sdk.config.json"
11
- },
12
- "target": {
13
- "type": "string",
14
- "description": "Optional name/index of a specific target in the config to generate."
15
- }
16
- },
17
- "required": [],
18
- "additionalProperties": false
19
- }
@@ -1,24 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@ojiepermana/angular/generator/api/schematics/sdk/schema.json",
3
- "targets": [
4
- {
5
- "input": "./openapi.yaml",
6
- "output": "./sdk",
7
- "mode": "library",
8
- "clientName": "Api",
9
- "packageName": "@my-scope/sdk",
10
- "packageVersion": "0.0.1",
11
- "rootUrl": "",
12
- "splitByDomain": true,
13
- "splitDepth": "service",
14
- "features": {
15
- "models": true,
16
- "operations": true,
17
- "services": true,
18
- "client": true,
19
- "metadata": true,
20
- "navigation": true
21
- }
22
- }
23
- ]
24
- }
@@ -1,84 +0,0 @@
1
- # `@ojiepermana/angular/generator/guide`
2
-
3
- Build-time schematic that compiles a folder of Markdown files into Angular standalone components plus a nested `Routes` file.
4
-
5
- This entry point ships **no runtime code**. It is only invoked through the Angular CLI:
6
-
7
- ```bash
8
- # 1. scaffold a config file at the workspace root
9
- bun run gen:guide:init
10
-
11
- # 2. edit guide.config.json (sourceDir, outputDir, ...)
12
-
13
- # 3. generate components + routes
14
- bun run gen:guide
15
- ```
16
-
17
- Inside this monorepo the schematic factory is registered in the parent collection at [`projects/angular/collection.json`](../../collection.json).
18
- After publishing, consumers run `ng generate @ojiepermana/angular:guide` (and `:guide-init` to scaffold the config).
19
-
20
- ## Config (`guide.config.json`)
21
-
22
- | Key | Type | Default | Description |
23
- | ----------------- | --------------------------- | --------------- | ------------------------------------------------------------------- |
24
- | `sourceDir` | `string` (required) | — | Folder containing `.md` files. Nested folders become nested routes. |
25
- | `outputDir` | `string` (required) | — | Destination folder for generated components and the routes file. |
26
- | `routeFile` | `string` | `doc.routes.ts` | File name of the generated routes file at `outputDir`. |
27
- | `componentPrefix` | `string` | `Doc` | Prefix on generated component class names. |
28
- | `componentStyle` | `'none' \| 'css' \| 'scss'` | `'none'` | Whether to emit a sibling stylesheet per component. |
29
- | `routeExportName` | `string` | `DOC_ROUTES` | Identifier used for the exported `Routes` constant. |
30
-
31
- ## Frontmatter
32
-
33
- Each `.md` file may declare YAML-style frontmatter:
34
-
35
- ```md
36
- ---
37
- title: Getting Started
38
- order: 1
39
- path: getting-started
40
- ---
41
-
42
- # Hello
43
- ```
44
-
45
- - `title` → `data.title` on the route
46
- - `order` → controls sibling sort order (lower comes first)
47
- - `path` → overrides the URL segment derived from the file name (`index.md` → empty path)
48
-
49
- ## Output shape
50
-
51
- For `sourceDir: ./docs` containing `docs/intro/overview.md`:
52
-
53
- ```
54
- <outputDir>/
55
- intro/
56
- overview.component.ts // standalone @Component, OnPush, inline template
57
- doc.routes.ts // exports DOC_ROUTES: Routes
58
- ```
59
-
60
- Routes mirror the folder tree with lazy `loadComponent`:
61
-
62
- ```ts
63
- export const DOC_ROUTES: Routes = [
64
- {
65
- path: 'intro',
66
- children: [
67
- {
68
- path: 'overview',
69
- loadComponent: () => import('./intro/overview.component').then((m) => m.DocIntroOverviewComponent),
70
- data: { title: 'Overview', order: 1 },
71
- },
72
- ],
73
- },
74
- ];
75
- ```
76
-
77
- Then plug into your app:
78
-
79
- ```ts
80
- {
81
- path: 'docs',
82
- loadChildren: () => import('./docs/doc.routes').then((m) => m.DOC_ROUTES),
83
- },
84
- ```
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.build = build;
4
- const node_path_1 = require("node:path");
5
- const loader_1 = require("../../src/config/loader");
6
- const engine_1 = require("../../src/engine");
7
- function build(options = {}) {
8
- return (tree, context) => {
9
- const workspaceRoot = process.cwd();
10
- const configPath = options.config ?? 'config/guide.config.json';
11
- const config = (0, loader_1.loadConfig)(configPath, workspaceRoot);
12
- const result = (0, engine_1.generate)(config, workspaceRoot);
13
- writeResult(tree, workspaceRoot, result, context);
14
- };
15
- }
16
- function writeResult(tree, workspaceRoot, result, context) {
17
- const relOutput = (0, node_path_1.relative)(workspaceRoot, result.outputDir) || '.';
18
- context.logger.info(`[guide] ${relOutput} (markdown=${result.stats.markdown}, components=${result.stats.components}, files=${result.stats.files})`);
19
- for (const file of result.files) {
20
- const treePath = normalizeTreePath(workspaceRoot, file.path);
21
- const buffer = Buffer.from(file.content, 'utf8');
22
- if (tree.exists(treePath)) {
23
- tree.overwrite(treePath, buffer);
24
- }
25
- else {
26
- tree.create(treePath, buffer);
27
- }
28
- }
29
- }
30
- function normalizeTreePath(workspaceRoot, path) {
31
- const abs = (0, node_path_1.resolve)(workspaceRoot, path);
32
- const rel = (0, node_path_1.relative)(workspaceRoot, abs);
33
- const posix = rel.split(/\\+/).join('/');
34
- return posix.startsWith('/') ? posix : `/${posix}`;
35
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = init;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- const FALLBACK_TEMPLATE = {
7
- $schema: './node_modules/@ojiepermana/angular/generator/guide/schematics/build/schema.json',
8
- sourceDir: './docs',
9
- outputDir: './projects/demo/library/src/app/docs',
10
- routeFile: 'doc.routes.ts',
11
- componentPrefix: 'Doc',
12
- componentStyle: 'none',
13
- routeExportName: 'DOC_ROUTES',
14
- };
15
- function init(options = {}) {
16
- return (tree, context) => {
17
- const workspaceRoot = process.cwd();
18
- const destRelative = options.path ?? 'config/guide.config.json';
19
- const treePath = destRelative.startsWith('/') ? destRelative : `/${destRelative}`;
20
- if (tree.exists(treePath) && !options.force) {
21
- throw new Error(`${destRelative} already exists. Re-run with --force to overwrite.`);
22
- }
23
- const content = loadTemplate(workspaceRoot, destRelative);
24
- const buffer = Buffer.from(content, 'utf8');
25
- if (tree.exists(treePath)) {
26
- tree.overwrite(treePath, buffer);
27
- context.logger.info(`[guide:init] overwrote ${destRelative}`);
28
- }
29
- else {
30
- tree.create(treePath, buffer);
31
- context.logger.info(`[guide:init] created ${destRelative}`);
32
- }
33
- context.logger.info(`[guide:init] edit sourceDir / outputDir, then run \`${getNextCommand(workspaceRoot)}\`.`);
34
- };
35
- }
36
- function loadTemplate(workspaceRoot, destRelative) {
37
- const candidates = [
38
- (0, node_path_1.resolve)(workspaceRoot, 'guide.config.example.json'),
39
- (0, node_path_1.resolve)(__dirname, '../../../guide.config.example.json'),
40
- (0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/guide/guide.config.example.json'),
41
- ];
42
- for (const candidate of candidates) {
43
- try {
44
- const parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, 'utf8'));
45
- parsed.$schema = resolveSchemaPath(workspaceRoot, destRelative);
46
- return `${JSON.stringify(parsed, null, 2)}\n`;
47
- }
48
- catch {
49
- // try next
50
- }
51
- }
52
- return `${JSON.stringify({ ...FALLBACK_TEMPLATE, $schema: resolveSchemaPath(workspaceRoot, destRelative) }, null, 2)}\n`;
53
- }
54
- function resolveSchemaPath(workspaceRoot, destRelative) {
55
- const prefix = relativePrefix(destRelative);
56
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/generator/guide/schematics/build/schema.json'))) {
57
- return `${prefix}projects/angular/generator/guide/schematics/build/schema.json`;
58
- }
59
- return `${prefix}node_modules/@ojiepermana/angular/generator/guide/schematics/build/schema.json`;
60
- }
61
- function relativePrefix(destRelative) {
62
- const depth = destRelative.replace(/^\/+/, '').split('/').length - 1;
63
- return depth <= 0 ? './' : '../'.repeat(depth);
64
- }
65
- function getNextCommand(workspaceRoot) {
66
- if ((0, node_fs_1.existsSync)((0, node_path_1.resolve)(workspaceRoot, 'projects/angular/collection.json'))) {
67
- return 'bun run gen:guide';
68
- }
69
- return 'ng generate @ojiepermana/angular:guide';
70
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadConfig = loadConfig;
4
- exports.resolveConfig = resolveConfig;
5
- const node_fs_1 = require("node:fs");
6
- const node_path_1 = require("node:path");
7
- const VALID_STYLES = ['none', 'css', 'scss'];
8
- function loadConfig(configPath, workspaceRoot) {
9
- const absolute = (0, node_path_1.isAbsolute)(configPath) ? configPath : (0, node_path_1.resolve)(workspaceRoot, configPath);
10
- let raw;
11
- try {
12
- raw = (0, node_fs_1.readFileSync)(absolute, 'utf8');
13
- }
14
- catch (error) {
15
- throw new Error(`[guide] Unable to read config at ${absolute}. Run \`bun run gen:guide:init\` to scaffold one. (${error.message})`);
16
- }
17
- let parsed;
18
- try {
19
- parsed = JSON.parse(raw);
20
- }
21
- catch (error) {
22
- throw new Error(`[guide] Invalid JSON in ${absolute}: ${error.message}`);
23
- }
24
- return resolveConfig(parsed, absolute);
25
- }
26
- function resolveConfig(input, configPath) {
27
- if (!input || typeof input !== 'object') {
28
- throw new Error(`[guide] Config at ${configPath} must be a JSON object.`);
29
- }
30
- if (!input.sourceDir || typeof input.sourceDir !== 'string') {
31
- throw new Error(`[guide] "sourceDir" is required in ${configPath}.`);
32
- }
33
- if (!input.outputDir || typeof input.outputDir !== 'string') {
34
- throw new Error(`[guide] "outputDir" is required in ${configPath}.`);
35
- }
36
- const style = input.componentStyle ?? 'none';
37
- if (!VALID_STYLES.includes(style)) {
38
- throw new Error(`[guide] Invalid componentStyle "${style}". Expected one of ${VALID_STYLES.join(', ')}.`);
39
- }
40
- return {
41
- sourceDir: input.sourceDir,
42
- outputDir: input.outputDir,
43
- routeFile: input.routeFile && input.routeFile.trim() ? input.routeFile : 'doc.routes.ts',
44
- componentPrefix: input.componentPrefix && input.componentPrefix.trim() ? input.componentPrefix : 'Doc',
45
- componentStyle: style,
46
- routeExportName: input.routeExportName && /^[A-Za-z_][A-Za-z0-9_]*$/.test(input.routeExportName)
47
- ? input.routeExportName
48
- : 'DOC_ROUTES',
49
- };
50
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- /**
3
- * Public configuration shape for the `guide` schematic.
4
- *
5
- * The schematic reads `guide.config.json` at the workspace root and produces
6
- * standalone Angular components plus a nested `Routes` file under `outputDir`.
7
- *
8
- * Node / Angular CLI utilities stay in the schematic package itself. This file
9
- * is the only surface re-exported by the secondary entry point and therefore
10
- * MUST stay free of Node-specific imports.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildComponent = buildComponent;
4
- const naming_1 = require("./naming");
5
- const render_1 = require("./render");
6
- function buildComponent(segments, frontmatter, body, config) {
7
- const html = (0, render_1.renderMarkdown)(body);
8
- const escaped = (0, render_1.escapeForTemplateLiteral)(html);
9
- const className = (0, naming_1.componentClassName)(config.componentPrefix, segments);
10
- const selector = (0, naming_1.componentSelector)(config.componentPrefix, segments);
11
- const fileBase = (0, naming_1.componentFileBase)(segments);
12
- const folderPath = segments.slice(0, -1).map(naming_1.toSlug).join('/');
13
- const tsPath = joinPath(folderPath, `${fileBase}.component.ts`);
14
- const { stylePath, styleRef, styleContent } = styleAssets(config.componentStyle, folderPath, fileBase);
15
- const title = typeof frontmatter.title === 'string' && frontmatter.title.trim()
16
- ? frontmatter.title.trim()
17
- : humanizeTitle(segments);
18
- const order = typeof frontmatter.order === 'number' ? frontmatter.order : null;
19
- const pathOverride = typeof frontmatter.path === 'string' && frontmatter.path.trim() ? frontmatter.path.trim() : null;
20
- const tsContent = renderComponentTs({
21
- className,
22
- selector,
23
- html: escaped,
24
- styleRef,
25
- });
26
- return {
27
- className,
28
- selector,
29
- tsContent,
30
- styleContent,
31
- tsPath,
32
- stylePath,
33
- segments,
34
- title,
35
- order,
36
- pathOverride,
37
- };
38
- }
39
- function styleAssets(style, folder, fileBase) {
40
- if (style === 'none') {
41
- return { stylePath: null, styleRef: null, styleContent: null };
42
- }
43
- const ext = style === 'scss' ? 'scss' : 'css';
44
- const stylePath = joinPath(folder, `${fileBase}.component.${ext}`);
45
- return {
46
- stylePath,
47
- styleRef: `./${fileBase}.component.${ext}`,
48
- styleContent: `:host { display: block; }\n`,
49
- };
50
- }
51
- function renderComponentTs(opts) {
52
- const styleLine = opts.styleRef ? ` styleUrl: '${opts.styleRef}',\n` : '';
53
- return (`// Auto-generated by @ojiepermana/angular/generator/guide. Do not edit by hand.\n` +
54
- `import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n` +
55
- `@Component({\n` +
56
- ` selector: '${opts.selector}',\n` +
57
- ` changeDetection: ChangeDetectionStrategy.OnPush,\n` +
58
- ` host: { class: 'block min-w-0' },\n` +
59
- styleLine +
60
- ` template: \`<article class="demo-docs-content">${opts.html}</article>\`,\n` +
61
- `})\n` +
62
- `export class ${opts.className} {}\n`);
63
- }
64
- function humanizeTitle(segments) {
65
- const last = segments[segments.length - 1] ?? 'Untitled';
66
- return last
67
- .replace(/[-_]+/g, ' ')
68
- .replace(/\s+/g, ' ')
69
- .trim()
70
- .replace(/(^|\s)\S/g, (c) => c.toUpperCase());
71
- }
72
- function joinPath(folder, file) {
73
- return folder ? `${folder}/${file}` : file;
74
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMarkdown = parseMarkdown;
4
- const FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
5
- function parseMarkdown(source) {
6
- const match = source.match(FRONTMATTER_RE);
7
- if (!match) {
8
- return { frontmatter: {}, body: source };
9
- }
10
- const frontmatter = parseSimpleYaml(match[1]);
11
- const body = source.slice(match[0].length);
12
- return { frontmatter, body };
13
- }
14
- function parseSimpleYaml(yaml) {
15
- const out = {};
16
- for (const rawLine of yaml.split(/\r?\n/)) {
17
- const line = rawLine.trim();
18
- if (!line || line.startsWith('#'))
19
- continue;
20
- const idx = line.indexOf(':');
21
- if (idx === -1)
22
- continue;
23
- const key = line.slice(0, idx).trim();
24
- let value = line.slice(idx + 1).trim();
25
- if (!key)
26
- continue;
27
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
28
- value = value.slice(1, -1);
29
- }
30
- if (value === 'true')
31
- out[key] = true;
32
- else if (value === 'false')
33
- out[key] = false;
34
- else if (value !== '' && !Number.isNaN(Number(value)) && /^-?\d+(\.\d+)?$/.test(value)) {
35
- out[key] = Number(value);
36
- }
37
- else {
38
- out[key] = value;
39
- }
40
- }
41
- return out;
42
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = generate;
4
- const node_path_1 = require("node:path");
5
- const component_1 = require("./component");
6
- const frontmatter_1 = require("./frontmatter");
7
- const routes_1 = require("./routes");
8
- const walk_1 = require("./walk");
9
- function generate(config, workspaceRoot) {
10
- const sourceAbs = resolveUnderRoot(config.sourceDir, workspaceRoot);
11
- const outputAbs = resolveUnderRoot(config.outputDir, workspaceRoot);
12
- const sources = (0, walk_1.collectMarkdown)(sourceAbs);
13
- const components = sources.map((src) => {
14
- const { frontmatter, body } = (0, frontmatter_1.parseMarkdown)(src.content);
15
- return (0, component_1.buildComponent)(src.segments, frontmatter, body, config);
16
- });
17
- const files = [];
18
- for (const comp of components) {
19
- files.push({ path: joinWorkspace(workspaceRoot, outputAbs, comp.tsPath), content: comp.tsContent });
20
- if (comp.stylePath && comp.styleContent !== null) {
21
- files.push({ path: joinWorkspace(workspaceRoot, outputAbs, comp.stylePath), content: comp.styleContent });
22
- }
23
- }
24
- files.push({
25
- path: joinWorkspace(workspaceRoot, outputAbs, config.routeFile),
26
- content: (0, routes_1.renderRoutes)(components, config),
27
- });
28
- return {
29
- config,
30
- outputDir: outputAbs,
31
- files,
32
- stats: { markdown: sources.length, components: components.length, files: files.length },
33
- };
34
- }
35
- function resolveUnderRoot(p, workspaceRoot) {
36
- return (0, node_path_1.isAbsolute)(p) ? p : (0, node_path_1.resolve)(workspaceRoot, p);
37
- }
38
- function joinWorkspace(workspaceRoot, outputAbs, rel) {
39
- const abs = (0, node_path_1.resolve)(outputAbs, rel);
40
- const normalized = abs.startsWith(workspaceRoot) ? abs.slice(workspaceRoot.length + 1) : abs;
41
- return normalized.split(/[\\/]+/).join('/');
42
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toSlug = toSlug;
4
- exports.toPascal = toPascal;
5
- exports.componentClassName = componentClassName;
6
- exports.componentFileBase = componentFileBase;
7
- exports.componentSelector = componentSelector;
8
- function toSlug(segment) {
9
- return segment
10
- .toLowerCase()
11
- .trim()
12
- .replace(/[^a-z0-9]+/g, '-')
13
- .replace(/^-+|-+$/g, '');
14
- }
15
- function toPascal(segment) {
16
- return segment
17
- .replace(/[^A-Za-z0-9]+/g, ' ')
18
- .trim()
19
- .split(/\s+/)
20
- .map((w) => (w.length === 0 ? w : w[0].toUpperCase() + w.slice(1).toLowerCase()))
21
- .join('');
22
- }
23
- function componentClassName(prefix, segments) {
24
- const base = segments.map(toPascal).join('');
25
- return `${prefix}${base}Component`;
26
- }
27
- function componentFileBase(segments) {
28
- const last = segments[segments.length - 1] ?? 'index';
29
- return toSlug(last) || 'index';
30
- }
31
- function componentSelector(prefix, segments) {
32
- const kebabPrefix = prefix
33
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
34
- .replace(/[^A-Za-z0-9]+/g, '-')
35
- .replace(/^-+|-+$/g, '')
36
- .toLowerCase() || 'doc';
37
- const rest = segments.map(toSlug).filter(Boolean).join('-') || 'index';
38
- return `${kebabPrefix}-${rest}`;
39
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderMarkdown = renderMarkdown;
4
- exports.escapeForTemplateLiteral = escapeForTemplateLiteral;
5
- const marked_1 = require("marked");
6
- /** Render Markdown (GFM) to HTML synchronously. */
7
- function renderMarkdown(body) {
8
- marked_1.marked.setOptions({ gfm: true, breaks: false });
9
- const html = marked_1.marked.parse(body, { async: false });
10
- if (typeof html !== 'string') {
11
- throw new Error('[guide] marked returned a non-string result; expected synchronous parse.');
12
- }
13
- return html.trim();
14
- }
15
- /**
16
- * Escape content so rendered HTML can be safely embedded in a generated Angular
17
- * inline template.
18
- *
19
- * Besides template-literal escaping, Angular v17+ reserves `@`, `{`, and `}`
20
- * in templates for control flow blocks and ICU expressions. Docs content often
21
- * contains those characters in code fences, so encode them before emission.
22
- */
23
- function escapeForTemplateLiteral(html) {
24
- return html
25
- .replace(/\\/g, '\\\\')
26
- .replace(/`/g, '\\`')
27
- .replace(/\$\{/g, '\\${')
28
- .replace(/@/g, '&#64;')
29
- .replace(/\{/g, '&#123;')
30
- .replace(/\}/g, '&#125;');
31
- }
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderRoutes = renderRoutes;
4
- const naming_1 = require("./naming");
5
- function renderRoutes(components, config) {
6
- const root = { segment: '', children: new Map() };
7
- for (const comp of components) {
8
- insert(root, comp);
9
- }
10
- const body = serializeChildren(root, ' ');
11
- const exportName = config.routeExportName;
12
- return (`// Auto-generated by @ojiepermana/angular/generator/guide. Do not edit by hand.\n` +
13
- `import type { Routes } from '@angular/router';\n\n` +
14
- `export const ${exportName}: Routes = [\n` +
15
- body +
16
- `];\n`);
17
- }
18
- function insert(root, comp) {
19
- const segments = routeSegments(comp);
20
- let node = root;
21
- for (let i = 0; i < segments.length - 1; i++) {
22
- const seg = segments[i];
23
- let next = node.children.get(seg);
24
- if (!next) {
25
- next = { segment: seg, children: new Map() };
26
- node.children.set(seg, next);
27
- }
28
- node = next;
29
- }
30
- const leafSeg = segments[segments.length - 1];
31
- let leaf = node.children.get(leafSeg);
32
- if (!leaf) {
33
- leaf = { segment: leafSeg, children: new Map() };
34
- node.children.set(leafSeg, leaf);
35
- }
36
- if (leaf.leaf) {
37
- throw new Error(`[guide] Route conflict: two markdown files resolve to the same path "${segments.join('/') || '<root>'}".`);
38
- }
39
- leaf.leaf = comp;
40
- }
41
- function routeSegments(comp) {
42
- // file segments without extension; handle index.md as empty path at parent level
43
- const segs = comp.segments.slice();
44
- const last = segs[segs.length - 1] ?? 'index';
45
- if (comp.pathOverride !== null) {
46
- // Override replaces the leaf segment path (keeps parent folders).
47
- segs[segs.length - 1] = comp.pathOverride === '' ? '' : comp.pathOverride;
48
- }
49
- else if (/^index$/i.test(last)) {
50
- segs[segs.length - 1] = '';
51
- }
52
- else {
53
- segs[segs.length - 1] = (0, naming_1.toSlug)(last);
54
- }
55
- // slugify folder segments
56
- for (let i = 0; i < segs.length - 1; i++) {
57
- segs[i] = (0, naming_1.toSlug)(segs[i]);
58
- }
59
- return segs;
60
- }
61
- function serializeChildren(node, indent) {
62
- const children = [...node.children.values()].sort(compareNodes);
63
- return children.map((c) => serializeNode(c, indent)).join('');
64
- }
65
- function compareNodes(a, b) {
66
- const orderA = a.leaf?.order ?? Number.POSITIVE_INFINITY;
67
- const orderB = b.leaf?.order ?? Number.POSITIVE_INFINITY;
68
- if (orderA !== orderB)
69
- return orderA - orderB;
70
- return a.segment.localeCompare(b.segment);
71
- }
72
- function serializeNode(node, indent) {
73
- const next = indent + ' ';
74
- const lines = [];
75
- lines.push(`${indent}{`);
76
- lines.push(`${next}path: ${JSON.stringify(node.segment)},`);
77
- if (node.leaf) {
78
- const comp = node.leaf;
79
- const importPath = importSpecifier(comp.tsPath);
80
- lines.push(`${next}loadComponent: () => import(${JSON.stringify(importPath)}).then((m) => m.${comp.className}),`);
81
- const data = routeData(comp);
82
- if (data)
83
- lines.push(`${next}data: ${data},`);
84
- }
85
- if (node.children.size > 0) {
86
- lines.push(`${next}children: [`);
87
- lines.push(serializeChildren(node, next + ' ').replace(/\n+$/, ''));
88
- lines.push(`${next}],`);
89
- }
90
- lines.push(`${indent}},`);
91
- return lines.join('\n') + '\n';
92
- }
93
- function routeData(comp) {
94
- const parts = [];
95
- if (comp.title)
96
- parts.push(`title: ${JSON.stringify(comp.title)}`);
97
- if (comp.order !== null)
98
- parts.push(`order: ${comp.order}`);
99
- if (parts.length === 0)
100
- return null;
101
- return `{ ${parts.join(', ')} }`;
102
- }
103
- function importSpecifier(tsPath) {
104
- const noExt = tsPath.replace(/\.ts$/i, '');
105
- return `./${noExt}`;
106
- }