@ojiepermana/angular 22.0.1 → 22.0.29

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 (513) hide show
  1. package/README.md +61 -311
  2. package/fesm2022/ojiepermana-angular-chart.mjs +10 -0
  3. package/fesm2022/ojiepermana-angular-component.mjs +10 -0
  4. package/fesm2022/ojiepermana-angular-navigation.mjs +10 -0
  5. package/fesm2022/ojiepermana-angular-sdk.mjs +10 -0
  6. package/fesm2022/ojiepermana-angular-theme.mjs +4 -384
  7. package/fesm2022/ojiepermana-angular.mjs +15 -16
  8. package/package.json +25 -425
  9. package/types/ojiepermana-angular-chart.d.ts +1 -0
  10. package/types/ojiepermana-angular-component.d.ts +1 -0
  11. package/types/ojiepermana-angular-navigation.d.ts +1 -0
  12. package/types/ojiepermana-angular-sdk.d.ts +1 -0
  13. package/types/ojiepermana-angular-theme.d.ts +1 -116
  14. package/types/ojiepermana-angular.d.ts +5 -3
  15. package/.npmignore +0 -2
  16. package/collection.json +0 -30
  17. package/component/accordion/README.md +0 -195
  18. package/component/accordion/package.json +0 -4
  19. package/component/alert/README.md +0 -182
  20. package/component/alert/package.json +0 -4
  21. package/component/alert-dialog/README.md +0 -239
  22. package/component/alert-dialog/package.json +0 -4
  23. package/component/aspect-ratio/README.md +0 -112
  24. package/component/aspect-ratio/package.json +0 -4
  25. package/component/avatar/README.md +0 -176
  26. package/component/avatar/package.json +0 -4
  27. package/component/badge/README.md +0 -133
  28. package/component/badge/package.json +0 -4
  29. package/component/breadcrumb/README.md +0 -216
  30. package/component/breadcrumb/package.json +0 -4
  31. package/component/button/README.md +0 -139
  32. package/component/button/package.json +0 -4
  33. package/component/button-group/README.md +0 -208
  34. package/component/button-group/package.json +0 -4
  35. package/component/calendar/README.md +0 -132
  36. package/component/calendar/package.json +0 -4
  37. package/component/card/README.md +0 -220
  38. package/component/card/package.json +0 -4
  39. package/component/carousel/README.md +0 -276
  40. package/component/carousel/package.json +0 -4
  41. package/component/chart/README.md +0 -249
  42. package/component/chart/area/package.json +0 -4
  43. package/component/chart/bar/package.json +0 -4
  44. package/component/chart/line/package.json +0 -4
  45. package/component/chart/package.json +0 -4
  46. package/component/chart/pie/package.json +0 -4
  47. package/component/chart/radar/package.json +0 -4
  48. package/component/chart/radial/package.json +0 -4
  49. package/component/chart/scatter/package.json +0 -4
  50. package/component/checkbox/README.md +0 -149
  51. package/component/checkbox/package.json +0 -4
  52. package/component/collapsible/README.md +0 -195
  53. package/component/collapsible/package.json +0 -4
  54. package/component/combobox/README.md +0 -198
  55. package/component/combobox/package.json +0 -4
  56. package/component/command/README.md +0 -275
  57. package/component/command/package.json +0 -4
  58. package/component/composer/README.md +0 -235
  59. package/component/composer/package.json +0 -4
  60. package/component/context-menu/README.md +0 -267
  61. package/component/context-menu/package.json +0 -4
  62. package/component/date-picker/README.md +0 -177
  63. package/component/date-picker/package.json +0 -4
  64. package/component/dialog/README.md +0 -237
  65. package/component/dialog/package.json +0 -4
  66. package/component/drawer/README.md +0 -145
  67. package/component/drawer/package.json +0 -4
  68. package/component/dropdown-menu/README.md +0 -311
  69. package/component/dropdown-menu/package.json +0 -4
  70. package/component/editor/README.md +0 -136
  71. package/component/editor/package.json +0 -4
  72. package/component/empty/README.md +0 -183
  73. package/component/empty/package.json +0 -4
  74. package/component/form/README.md +0 -210
  75. package/component/form/package.json +0 -4
  76. package/component/hover-card/README.md +0 -146
  77. package/component/hover-card/package.json +0 -4
  78. package/component/input/README.md +0 -159
  79. package/component/input/package.json +0 -4
  80. package/component/input-group/README.md +0 -239
  81. package/component/input-group/package.json +0 -4
  82. package/component/input-otp/README.md +0 -278
  83. package/component/input-otp/package.json +0 -4
  84. package/component/item/README.md +0 -247
  85. package/component/item/package.json +0 -4
  86. package/component/kanban/README.md +0 -81
  87. package/component/kanban/package.json +0 -4
  88. package/component/kbd/README.md +0 -139
  89. package/component/kbd/package.json +0 -4
  90. package/component/label/README.md +0 -136
  91. package/component/label/package.json +0 -4
  92. package/component/menubar/README.md +0 -269
  93. package/component/menubar/package.json +0 -4
  94. package/component/native-select/README.md +0 -176
  95. package/component/native-select/package.json +0 -4
  96. package/component/navigation-menu/README.md +0 -160
  97. package/component/navigation-menu/package.json +0 -4
  98. package/component/pagination/README.md +0 -144
  99. package/component/pagination/package.json +0 -4
  100. package/component/pillbox/README.md +0 -67
  101. package/component/pillbox/package.json +0 -4
  102. package/component/popover/README.md +0 -43
  103. package/component/popover/package.json +0 -4
  104. package/component/progress/README.md +0 -160
  105. package/component/progress/package.json +0 -4
  106. package/component/radio/README.md +0 -209
  107. package/component/radio/package.json +0 -4
  108. package/component/resizable/README.md +0 -168
  109. package/component/resizable/package.json +0 -4
  110. package/component/scroll-area/README.md +0 -143
  111. package/component/scroll-area/package.json +0 -4
  112. package/component/select/README.md +0 -174
  113. package/component/select/package.json +0 -4
  114. package/component/separator/README.md +0 -170
  115. package/component/separator/package.json +0 -4
  116. package/component/sheet/README.md +0 -183
  117. package/component/sheet/package.json +0 -4
  118. package/component/skeleton/README.md +0 -158
  119. package/component/skeleton/package.json +0 -4
  120. package/component/slider/README.md +0 -207
  121. package/component/slider/package.json +0 -4
  122. package/component/spinner/README.md +0 -160
  123. package/component/spinner/package.json +0 -4
  124. package/component/switch/README.md +0 -166
  125. package/component/switch/package.json +0 -4
  126. package/component/table/README.md +0 -291
  127. package/component/table/package.json +0 -4
  128. package/component/tabs/README.md +0 -219
  129. package/component/tabs/package.json +0 -4
  130. package/component/textarea/README.md +0 -154
  131. package/component/textarea/package.json +0 -4
  132. package/component/timeline/README.md +0 -94
  133. package/component/timeline/package.json +0 -4
  134. package/component/toast/README.md +0 -321
  135. package/component/toast/package.json +0 -4
  136. package/component/toggle/README.md +0 -131
  137. package/component/toggle/package.json +0 -4
  138. package/component/toggle-group/README.md +0 -206
  139. package/component/toggle-group/package.json +0 -4
  140. package/component/tooltip/README.md +0 -211
  141. package/component/tooltip/package.json +0 -4
  142. package/component/utils/package.json +0 -4
  143. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -189
  144. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  145. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -276
  146. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  147. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -99
  148. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  149. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -37
  150. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -139
  152. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -50
  154. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -200
  156. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -103
  158. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -68
  160. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -88
  162. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -152
  164. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -334
  166. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  168. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  170. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  172. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  174. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  176. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  178. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  180. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3925
  182. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -114
  184. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -124
  186. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -272
  188. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -293
  190. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-component-composer.mjs +0 -352
  192. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -103
  194. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -170
  196. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -279
  198. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  200. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -492
  202. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-component-editor.mjs +0 -717
  204. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-component-empty.mjs +0 -145
  206. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -366
  208. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +0 -297
  210. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -179
  212. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +0 -514
  214. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -45
  216. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -264
  218. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  219. package/fesm2022/ojiepermana-angular-component-kanban.mjs +0 -314
  220. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +0 -1
  221. package/fesm2022/ojiepermana-angular-component-kbd.mjs +0 -55
  222. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +0 -1
  223. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -33
  224. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  225. package/fesm2022/ojiepermana-angular-component-menubar.mjs +0 -308
  226. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +0 -1
  227. package/fesm2022/ojiepermana-angular-component-native-select.mjs +0 -67
  228. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +0 -1
  229. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +0 -413
  230. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +0 -1
  231. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -226
  232. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  233. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +0 -812
  234. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +0 -1
  235. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -169
  236. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  237. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -60
  238. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  239. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -122
  240. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  241. package/fesm2022/ojiepermana-angular-component-resizable.mjs +0 -481
  242. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +0 -1
  243. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -54
  244. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  245. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -176
  246. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  247. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -37
  248. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  249. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -284
  250. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  251. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -31
  252. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -423
  254. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-component-spinner.mjs +0 -60
  256. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -116
  258. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -155
  260. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -272
  262. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -39
  264. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-component-timeline.mjs +0 -237
  266. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -71
  268. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +0 -289
  270. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-component-toggle.mjs +0 -82
  272. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -354
  274. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  276. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  278. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -602
  280. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  282. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -116
  284. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  286. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -30
  288. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  290. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs +0 -49
  292. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs +0 -128
  294. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs +0 -123
  296. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-layout.mjs +0 -485
  298. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  300. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -63
  302. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  303. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -559
  304. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  305. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -213
  306. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  307. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -401
  308. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  309. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -670
  310. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  311. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  312. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  313. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  314. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  315. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -294
  316. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  317. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  318. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  319. package/fesm2022/ojiepermana-angular-theme.mjs.map +0 -1
  320. package/fesm2022/ojiepermana-angular.mjs.map +0 -1
  321. package/generator/api/README.md +0 -252
  322. package/generator/api/bin/package.json +0 -3
  323. package/generator/api/bin/schematics/init/index.js +0 -90
  324. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  325. package/generator/api/bin/schematics/sdk/index.js +0 -76
  326. package/generator/api/bin/src/config/loader.js +0 -41
  327. package/generator/api/bin/src/config/schema.js +0 -57
  328. package/generator/api/bin/src/emit/client.js +0 -248
  329. package/generator/api/bin/src/emit/metadata.js +0 -295
  330. package/generator/api/bin/src/emit/models.js +0 -106
  331. package/generator/api/bin/src/emit/navigation.js +0 -56
  332. package/generator/api/bin/src/emit/operations.js +0 -122
  333. package/generator/api/bin/src/emit/public-api.js +0 -54
  334. package/generator/api/bin/src/emit/services.js +0 -87
  335. package/generator/api/bin/src/engine.js +0 -65
  336. package/generator/api/bin/src/layout/per-domain.js +0 -359
  337. package/generator/api/bin/src/parser/bundle.js +0 -25
  338. package/generator/api/bin/src/parser/ir.js +0 -320
  339. package/generator/api/bin/src/parser/types.js +0 -7
  340. package/generator/api/bin/src/render/template.js +0 -58
  341. package/generator/api/bin/src/writer/index.js +0 -278
  342. package/generator/api/package.json +0 -4
  343. package/generator/api/schematics/init/schema.json +0 -19
  344. package/generator/api/schematics/ng-add/schema.json +0 -14
  345. package/generator/api/schematics/sdk/schema.json +0 -19
  346. package/generator/api/sdk.config.example.json +0 -24
  347. package/generator/guide/README.md +0 -84
  348. package/generator/guide/bin/package.json +0 -3
  349. package/generator/guide/bin/schematics/build/index.js +0 -36
  350. package/generator/guide/bin/schematics/init/index.js +0 -70
  351. package/generator/guide/bin/src/config/loader.js +0 -50
  352. package/generator/guide/bin/src/config/schema.js +0 -12
  353. package/generator/guide/bin/src/engine/component.js +0 -74
  354. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  355. package/generator/guide/bin/src/engine/index.js +0 -42
  356. package/generator/guide/bin/src/engine/naming.js +0 -39
  357. package/generator/guide/bin/src/engine/render.js +0 -36
  358. package/generator/guide/bin/src/engine/routes.js +0 -106
  359. package/generator/guide/bin/src/engine/walk.js +0 -35
  360. package/generator/guide/guide.config.example.json +0 -9
  361. package/generator/guide/schematics/build/schema.json +0 -14
  362. package/generator/guide/schematics/init/schema.json +0 -19
  363. package/layout/component/package.json +0 -4
  364. package/layout/package.json +0 -4
  365. package/layout/provider/package.json +0 -4
  366. package/layout/services/package.json +0 -4
  367. package/layout/shell/package.json +0 -4
  368. package/layout/token/directive/package.json +0 -4
  369. package/layout/token/package.json +0 -4
  370. package/layout/type/empty/package.json +0 -4
  371. package/layout/type/horizontal/package.json +0 -4
  372. package/layout/type/vertical/package.json +0 -4
  373. package/navigation/demo-data/package.json +0 -4
  374. package/navigation/icon/package.json +0 -4
  375. package/navigation/item/package.json +0 -4
  376. package/navigation/service/package.json +0 -4
  377. package/navigation/sidebar/package.json +0 -4
  378. package/navigation/topbar/README.md +0 -196
  379. package/navigation/topbar/package.json +0 -4
  380. package/navigation/types/package.json +0 -4
  381. package/theme/README.md +0 -174
  382. package/theme/package.json +0 -4
  383. package/theme/provider/package.json +0 -4
  384. package/theme/services/package.json +0 -4
  385. package/theme/styles/foundation/components.css +0 -81
  386. package/theme/styles/foundation/layers.css +0 -15
  387. package/theme/styles/foundation/tokens.css +0 -55
  388. package/theme/styles/index.css +0 -37
  389. package/theme/styles/integrations/material/autocomplete.css +0 -178
  390. package/theme/styles/integrations/material/button.css +0 -468
  391. package/theme/styles/integrations/material/dialog.css +0 -152
  392. package/theme/styles/integrations/material/select.css +0 -175
  393. package/theme/styles/integrations/material/slide-toggle.css +0 -234
  394. package/theme/styles/integrations/material/slider.css +0 -194
  395. package/theme/styles/integrations/material/tabs.css +0 -229
  396. package/theme/styles/integrations/material.css +0 -264
  397. package/theme/styles/integrations/tailwind.css +0 -114
  398. package/theme/styles/variants/color/amber.css +0 -31
  399. package/theme/styles/variants/color/base.css +0 -36
  400. package/theme/styles/variants/color/blue.css +0 -31
  401. package/theme/styles/variants/color/cyan.css +0 -31
  402. package/theme/styles/variants/color/emerald.css +0 -31
  403. package/theme/styles/variants/color/fuchsia.css +0 -31
  404. package/theme/styles/variants/color/green.css +0 -31
  405. package/theme/styles/variants/color/index.css +0 -22
  406. package/theme/styles/variants/color/indigo.css +0 -31
  407. package/theme/styles/variants/color/lime.css +0 -31
  408. package/theme/styles/variants/color/orange.css +0 -31
  409. package/theme/styles/variants/color/pink.css +0 -31
  410. package/theme/styles/variants/color/purple.css +0 -31
  411. package/theme/styles/variants/color/red.css +0 -31
  412. package/theme/styles/variants/color/rose.css +0 -31
  413. package/theme/styles/variants/color/sky.css +0 -31
  414. package/theme/styles/variants/color/teal.css +0 -31
  415. package/theme/styles/variants/color/violet.css +0 -31
  416. package/theme/styles/variants/color/yellow.css +0 -31
  417. package/theme/styles/variants/mode/dark.css +0 -20
  418. package/theme/styles/variants/mode/index.css +0 -6
  419. package/theme/styles/variants/mode/light.css +0 -24
  420. package/theme/styles/variants/style/brutal.css +0 -50
  421. package/theme/styles/variants/style/default.css +0 -54
  422. package/theme/styles/variants/style/index.css +0 -8
  423. package/theme/styles/variants/style/sharp.css +0 -50
  424. package/theme/styles/variants/style/soft.css +0 -50
  425. package/theme/token/package.json +0 -4
  426. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  427. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  428. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  429. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  430. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  431. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  432. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  433. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  434. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  435. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  436. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  437. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  438. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  439. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  440. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  441. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  442. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  443. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  444. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  445. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  446. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  447. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  448. package/types/ojiepermana-angular-component-combobox.d.ts +0 -50
  449. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  450. package/types/ojiepermana-angular-component-composer.d.ts +0 -90
  451. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  452. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  453. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  454. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  455. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -137
  456. package/types/ojiepermana-angular-component-editor.d.ts +0 -123
  457. package/types/ojiepermana-angular-component-empty.d.ts +0 -50
  458. package/types/ojiepermana-angular-component-form.d.ts +0 -141
  459. package/types/ojiepermana-angular-component-hover-card.d.ts +0 -74
  460. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  461. package/types/ojiepermana-angular-component-input-otp.d.ts +0 -136
  462. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  463. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  464. package/types/ojiepermana-angular-component-kanban.d.ts +0 -70
  465. package/types/ojiepermana-angular-component-kbd.d.ts +0 -16
  466. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  467. package/types/ojiepermana-angular-component-menubar.d.ts +0 -67
  468. package/types/ojiepermana-angular-component-native-select.d.ts +0 -26
  469. package/types/ojiepermana-angular-component-navigation-menu.d.ts +0 -96
  470. package/types/ojiepermana-angular-component-pagination.d.ts +0 -33
  471. package/types/ojiepermana-angular-component-pillbox.d.ts +0 -157
  472. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  473. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  474. package/types/ojiepermana-angular-component-radio.d.ts +0 -40
  475. package/types/ojiepermana-angular-component-resizable.d.ts +0 -99
  476. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  477. package/types/ojiepermana-angular-component-select.d.ts +0 -57
  478. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  479. package/types/ojiepermana-angular-component-sheet.d.ts +0 -76
  480. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  481. package/types/ojiepermana-angular-component-slider.d.ts +0 -74
  482. package/types/ojiepermana-angular-component-spinner.d.ts +0 -13
  483. package/types/ojiepermana-angular-component-switch.d.ts +0 -40
  484. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  485. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  486. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  487. package/types/ojiepermana-angular-component-timeline.d.ts +0 -63
  488. package/types/ojiepermana-angular-component-toast.d.ts +0 -38
  489. package/types/ojiepermana-angular-component-toggle-group.d.ts +0 -89
  490. package/types/ojiepermana-angular-component-toggle.d.ts +0 -25
  491. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -89
  492. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  493. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  494. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  495. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  496. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  497. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  498. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  499. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  500. package/types/ojiepermana-angular-layout-type-empty.d.ts +0 -22
  501. package/types/ojiepermana-angular-layout-type-horizontal.d.ts +0 -36
  502. package/types/ojiepermana-angular-layout-type-vertical.d.ts +0 -38
  503. package/types/ojiepermana-angular-layout.d.ts +0 -164
  504. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  505. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  506. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  507. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  508. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  509. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -74
  510. package/types/ojiepermana-angular-navigation-types.d.ts +0 -135
  511. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  512. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  513. 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,36 +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 async (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 = await (0, engine_1.generate)(config, workspaceRoot);
13
- writeResult(tree, workspaceRoot, result, context);
14
- return tree;
15
- };
16
- }
17
- function writeResult(tree, workspaceRoot, result, context) {
18
- const relOutput = (0, node_path_1.relative)(workspaceRoot, result.outputDir) || '.';
19
- context.logger.info(`[guide] ${relOutput} (markdown=${result.stats.markdown}, components=${result.stats.components}, files=${result.stats.files})`);
20
- for (const file of result.files) {
21
- const treePath = normalizeTreePath(workspaceRoot, file.path);
22
- const buffer = Buffer.from(file.content, 'utf8');
23
- if (tree.exists(treePath)) {
24
- tree.overwrite(treePath, buffer);
25
- }
26
- else {
27
- tree.create(treePath, buffer);
28
- }
29
- }
30
- }
31
- function normalizeTreePath(workspaceRoot, path) {
32
- const abs = (0, node_path_1.resolve)(workspaceRoot, path);
33
- const rel = (0, node_path_1.relative)(workspaceRoot, abs);
34
- const posix = rel.split(/\\+/).join('/');
35
- return posix.startsWith('/') ? posix : `/${posix}`;
36
- }
@@ -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
- async function buildComponent(segments, frontmatter, body, config) {
7
- const html = await (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
- async 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 = await Promise.all(sources.map(async (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,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderMarkdown = renderMarkdown;
4
- exports.escapeForTemplateLiteral = escapeForTemplateLiteral;
5
- let markedPromise = null;
6
- async function loadMarked() {
7
- markedPromise ??= import('marked');
8
- return markedPromise;
9
- }
10
- /** Render Markdown (GFM) to HTML. */
11
- async function renderMarkdown(body) {
12
- const { marked } = await loadMarked();
13
- marked.setOptions({ gfm: true, breaks: false });
14
- const html = marked.parse(body, { async: false });
15
- if (typeof html !== 'string') {
16
- throw new Error('[guide] marked returned a non-string result; expected synchronous parse.');
17
- }
18
- return html.trim();
19
- }
20
- /**
21
- * Escape content so rendered HTML can be safely embedded in a generated Angular
22
- * inline template.
23
- *
24
- * Besides template-literal escaping, Angular v17+ reserves `@`, `{`, and `}`
25
- * in templates for control flow blocks and ICU expressions. Docs content often
26
- * contains those characters in code fences, so encode them before emission.
27
- */
28
- function escapeForTemplateLiteral(html) {
29
- return html
30
- .replace(/\\/g, '\\\\')
31
- .replace(/`/g, '\\`')
32
- .replace(/\$\{/g, '\\${')
33
- .replace(/@/g, '&#64;')
34
- .replace(/\{/g, '&#123;')
35
- .replace(/\}/g, '&#125;');
36
- }
@@ -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
- }