@ojiepermana/angular 22.0.1 → 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 (517) hide show
  1. package/README.md +16 -302
  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 -382
  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 -425
  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/README.md +0 -195
  24. package/component/accordion/package.json +0 -4
  25. package/component/alert/README.md +0 -182
  26. package/component/alert/package.json +0 -4
  27. package/component/alert-dialog/README.md +0 -239
  28. package/component/alert-dialog/package.json +0 -4
  29. package/component/aspect-ratio/README.md +0 -112
  30. package/component/aspect-ratio/package.json +0 -4
  31. package/component/avatar/README.md +0 -176
  32. package/component/avatar/package.json +0 -4
  33. package/component/badge/README.md +0 -133
  34. package/component/badge/package.json +0 -4
  35. package/component/breadcrumb/README.md +0 -216
  36. package/component/breadcrumb/package.json +0 -4
  37. package/component/button/README.md +0 -139
  38. package/component/button/package.json +0 -4
  39. package/component/button-group/README.md +0 -208
  40. package/component/button-group/package.json +0 -4
  41. package/component/calendar/README.md +0 -132
  42. package/component/calendar/package.json +0 -4
  43. package/component/card/README.md +0 -220
  44. package/component/card/package.json +0 -4
  45. package/component/carousel/README.md +0 -276
  46. package/component/carousel/package.json +0 -4
  47. package/component/chart/README.md +0 -249
  48. package/component/chart/area/package.json +0 -4
  49. package/component/chart/bar/package.json +0 -4
  50. package/component/chart/line/package.json +0 -4
  51. package/component/chart/package.json +0 -4
  52. package/component/chart/pie/package.json +0 -4
  53. package/component/chart/radar/package.json +0 -4
  54. package/component/chart/radial/package.json +0 -4
  55. package/component/chart/scatter/package.json +0 -4
  56. package/component/checkbox/README.md +0 -149
  57. package/component/checkbox/package.json +0 -4
  58. package/component/collapsible/README.md +0 -195
  59. package/component/collapsible/package.json +0 -4
  60. package/component/combobox/README.md +0 -198
  61. package/component/combobox/package.json +0 -4
  62. package/component/command/README.md +0 -275
  63. package/component/command/package.json +0 -4
  64. package/component/composer/README.md +0 -235
  65. package/component/composer/package.json +0 -4
  66. package/component/context-menu/README.md +0 -267
  67. package/component/context-menu/package.json +0 -4
  68. package/component/date-picker/README.md +0 -177
  69. package/component/date-picker/package.json +0 -4
  70. package/component/dialog/README.md +0 -237
  71. package/component/dialog/package.json +0 -4
  72. package/component/drawer/README.md +0 -145
  73. package/component/drawer/package.json +0 -4
  74. package/component/dropdown-menu/README.md +0 -311
  75. package/component/dropdown-menu/package.json +0 -4
  76. package/component/editor/README.md +0 -136
  77. package/component/editor/package.json +0 -4
  78. package/component/empty/README.md +0 -183
  79. package/component/empty/package.json +0 -4
  80. package/component/form/README.md +0 -210
  81. package/component/form/package.json +0 -4
  82. package/component/hover-card/README.md +0 -146
  83. package/component/hover-card/package.json +0 -4
  84. package/component/input/README.md +0 -159
  85. package/component/input/package.json +0 -4
  86. package/component/input-group/README.md +0 -239
  87. package/component/input-group/package.json +0 -4
  88. package/component/input-otp/README.md +0 -278
  89. package/component/input-otp/package.json +0 -4
  90. package/component/item/README.md +0 -247
  91. package/component/item/package.json +0 -4
  92. package/component/kanban/README.md +0 -81
  93. package/component/kanban/package.json +0 -4
  94. package/component/kbd/README.md +0 -139
  95. package/component/kbd/package.json +0 -4
  96. package/component/label/README.md +0 -136
  97. package/component/label/package.json +0 -4
  98. package/component/menubar/README.md +0 -269
  99. package/component/menubar/package.json +0 -4
  100. package/component/native-select/README.md +0 -176
  101. package/component/native-select/package.json +0 -4
  102. package/component/navigation-menu/README.md +0 -160
  103. package/component/navigation-menu/package.json +0 -4
  104. package/component/pagination/README.md +0 -144
  105. package/component/pagination/package.json +0 -4
  106. package/component/pillbox/README.md +0 -67
  107. package/component/pillbox/package.json +0 -4
  108. package/component/popover/README.md +0 -43
  109. package/component/popover/package.json +0 -4
  110. package/component/progress/README.md +0 -160
  111. package/component/progress/package.json +0 -4
  112. package/component/radio/README.md +0 -209
  113. package/component/radio/package.json +0 -4
  114. package/component/resizable/README.md +0 -168
  115. package/component/resizable/package.json +0 -4
  116. package/component/scroll-area/README.md +0 -143
  117. package/component/scroll-area/package.json +0 -4
  118. package/component/select/README.md +0 -174
  119. package/component/select/package.json +0 -4
  120. package/component/separator/README.md +0 -170
  121. package/component/separator/package.json +0 -4
  122. package/component/sheet/README.md +0 -183
  123. package/component/sheet/package.json +0 -4
  124. package/component/skeleton/README.md +0 -158
  125. package/component/skeleton/package.json +0 -4
  126. package/component/slider/README.md +0 -207
  127. package/component/slider/package.json +0 -4
  128. package/component/spinner/README.md +0 -160
  129. package/component/spinner/package.json +0 -4
  130. package/component/switch/README.md +0 -166
  131. package/component/switch/package.json +0 -4
  132. package/component/table/README.md +0 -291
  133. package/component/table/package.json +0 -4
  134. package/component/tabs/README.md +0 -219
  135. package/component/tabs/package.json +0 -4
  136. package/component/textarea/README.md +0 -154
  137. package/component/textarea/package.json +0 -4
  138. package/component/timeline/README.md +0 -94
  139. package/component/timeline/package.json +0 -4
  140. package/component/toast/README.md +0 -321
  141. package/component/toast/package.json +0 -4
  142. package/component/toggle/README.md +0 -131
  143. package/component/toggle/package.json +0 -4
  144. package/component/toggle-group/README.md +0 -206
  145. package/component/toggle-group/package.json +0 -4
  146. package/component/tooltip/README.md +0 -211
  147. package/component/tooltip/package.json +0 -4
  148. package/component/utils/package.json +0 -4
  149. package/fesm2022/ojiepermana-angular-component-accordion.mjs +0 -189
  150. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +0 -1
  151. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +0 -276
  152. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +0 -1
  153. package/fesm2022/ojiepermana-angular-component-alert.mjs +0 -99
  154. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +0 -1
  155. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +0 -37
  156. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +0 -1
  157. package/fesm2022/ojiepermana-angular-component-avatar.mjs +0 -139
  158. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +0 -1
  159. package/fesm2022/ojiepermana-angular-component-badge.mjs +0 -50
  160. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +0 -1
  161. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +0 -200
  162. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +0 -1
  163. package/fesm2022/ojiepermana-angular-component-button-group.mjs +0 -103
  164. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +0 -1
  165. package/fesm2022/ojiepermana-angular-component-button.mjs +0 -68
  166. package/fesm2022/ojiepermana-angular-component-button.mjs.map +0 -1
  167. package/fesm2022/ojiepermana-angular-component-calendar.mjs +0 -88
  168. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +0 -1
  169. package/fesm2022/ojiepermana-angular-component-card.mjs +0 -152
  170. package/fesm2022/ojiepermana-angular-component-card.mjs.map +0 -1
  171. package/fesm2022/ojiepermana-angular-component-carousel.mjs +0 -334
  172. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +0 -1
  173. package/fesm2022/ojiepermana-angular-component-chart-area.mjs +0 -6
  174. package/fesm2022/ojiepermana-angular-component-chart-area.mjs.map +0 -1
  175. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs +0 -6
  176. package/fesm2022/ojiepermana-angular-component-chart-bar.mjs.map +0 -1
  177. package/fesm2022/ojiepermana-angular-component-chart-line.mjs +0 -6
  178. package/fesm2022/ojiepermana-angular-component-chart-line.mjs.map +0 -1
  179. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs +0 -6
  180. package/fesm2022/ojiepermana-angular-component-chart-pie.mjs.map +0 -1
  181. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs +0 -6
  182. package/fesm2022/ojiepermana-angular-component-chart-radar.mjs.map +0 -1
  183. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs +0 -6
  184. package/fesm2022/ojiepermana-angular-component-chart-radial.mjs.map +0 -1
  185. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs +0 -6
  186. package/fesm2022/ojiepermana-angular-component-chart-scatter.mjs.map +0 -1
  187. package/fesm2022/ojiepermana-angular-component-chart.mjs +0 -3925
  188. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +0 -1
  189. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +0 -114
  190. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +0 -1
  191. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +0 -124
  192. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +0 -1
  193. package/fesm2022/ojiepermana-angular-component-combobox.mjs +0 -272
  194. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +0 -1
  195. package/fesm2022/ojiepermana-angular-component-command.mjs +0 -293
  196. package/fesm2022/ojiepermana-angular-component-command.mjs.map +0 -1
  197. package/fesm2022/ojiepermana-angular-component-composer.mjs +0 -352
  198. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +0 -1
  199. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +0 -103
  200. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +0 -1
  201. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +0 -170
  202. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +0 -1
  203. package/fesm2022/ojiepermana-angular-component-dialog.mjs +0 -279
  204. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +0 -1
  205. package/fesm2022/ojiepermana-angular-component-drawer.mjs +0 -6
  206. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +0 -1
  207. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +0 -492
  208. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +0 -1
  209. package/fesm2022/ojiepermana-angular-component-editor.mjs +0 -717
  210. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +0 -1
  211. package/fesm2022/ojiepermana-angular-component-empty.mjs +0 -145
  212. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +0 -1
  213. package/fesm2022/ojiepermana-angular-component-form.mjs +0 -366
  214. package/fesm2022/ojiepermana-angular-component-form.mjs.map +0 -1
  215. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +0 -297
  216. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +0 -1
  217. package/fesm2022/ojiepermana-angular-component-input-group.mjs +0 -179
  218. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +0 -1
  219. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +0 -514
  220. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +0 -1
  221. package/fesm2022/ojiepermana-angular-component-input.mjs +0 -45
  222. package/fesm2022/ojiepermana-angular-component-input.mjs.map +0 -1
  223. package/fesm2022/ojiepermana-angular-component-item.mjs +0 -264
  224. package/fesm2022/ojiepermana-angular-component-item.mjs.map +0 -1
  225. package/fesm2022/ojiepermana-angular-component-kanban.mjs +0 -314
  226. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +0 -1
  227. package/fesm2022/ojiepermana-angular-component-kbd.mjs +0 -55
  228. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +0 -1
  229. package/fesm2022/ojiepermana-angular-component-label.mjs +0 -33
  230. package/fesm2022/ojiepermana-angular-component-label.mjs.map +0 -1
  231. package/fesm2022/ojiepermana-angular-component-menubar.mjs +0 -308
  232. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +0 -1
  233. package/fesm2022/ojiepermana-angular-component-native-select.mjs +0 -67
  234. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +0 -1
  235. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +0 -413
  236. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +0 -1
  237. package/fesm2022/ojiepermana-angular-component-pagination.mjs +0 -226
  238. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +0 -1
  239. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +0 -812
  240. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +0 -1
  241. package/fesm2022/ojiepermana-angular-component-popover.mjs +0 -169
  242. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +0 -1
  243. package/fesm2022/ojiepermana-angular-component-progress.mjs +0 -60
  244. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +0 -1
  245. package/fesm2022/ojiepermana-angular-component-radio.mjs +0 -122
  246. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +0 -1
  247. package/fesm2022/ojiepermana-angular-component-resizable.mjs +0 -481
  248. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +0 -1
  249. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +0 -54
  250. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +0 -1
  251. package/fesm2022/ojiepermana-angular-component-select.mjs +0 -176
  252. package/fesm2022/ojiepermana-angular-component-select.mjs.map +0 -1
  253. package/fesm2022/ojiepermana-angular-component-separator.mjs +0 -37
  254. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +0 -1
  255. package/fesm2022/ojiepermana-angular-component-sheet.mjs +0 -284
  256. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +0 -1
  257. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +0 -31
  258. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +0 -1
  259. package/fesm2022/ojiepermana-angular-component-slider.mjs +0 -423
  260. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +0 -1
  261. package/fesm2022/ojiepermana-angular-component-spinner.mjs +0 -60
  262. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +0 -1
  263. package/fesm2022/ojiepermana-angular-component-switch.mjs +0 -116
  264. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +0 -1
  265. package/fesm2022/ojiepermana-angular-component-table.mjs +0 -155
  266. package/fesm2022/ojiepermana-angular-component-table.mjs.map +0 -1
  267. package/fesm2022/ojiepermana-angular-component-tabs.mjs +0 -272
  268. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +0 -1
  269. package/fesm2022/ojiepermana-angular-component-textarea.mjs +0 -39
  270. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +0 -1
  271. package/fesm2022/ojiepermana-angular-component-timeline.mjs +0 -237
  272. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +0 -1
  273. package/fesm2022/ojiepermana-angular-component-toast.mjs +0 -71
  274. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +0 -1
  275. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +0 -289
  276. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +0 -1
  277. package/fesm2022/ojiepermana-angular-component-toggle.mjs +0 -82
  278. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +0 -1
  279. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +0 -354
  280. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +0 -1
  281. package/fesm2022/ojiepermana-angular-component-utils.mjs +0 -13
  282. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +0 -1
  283. package/fesm2022/ojiepermana-angular-generator-api.mjs +0 -68
  284. package/fesm2022/ojiepermana-angular-generator-api.mjs.map +0 -1
  285. package/fesm2022/ojiepermana-angular-layout-component.mjs +0 -602
  286. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-layout-provider.mjs +0 -21
  288. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +0 -1
  289. package/fesm2022/ojiepermana-angular-layout-services.mjs +0 -116
  290. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +0 -1
  291. package/fesm2022/ojiepermana-angular-layout-shell.mjs +0 -48
  292. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +0 -1
  293. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +0 -30
  294. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +0 -1
  295. package/fesm2022/ojiepermana-angular-layout-token.mjs +0 -33
  296. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +0 -1
  297. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs +0 -49
  298. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs.map +0 -1
  299. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs +0 -128
  300. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs.map +0 -1
  301. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs +0 -123
  302. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs.map +0 -1
  303. package/fesm2022/ojiepermana-angular-layout.mjs +0 -485
  304. package/fesm2022/ojiepermana-angular-layout.mjs.map +0 -1
  305. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs +0 -334
  306. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +0 -1
  307. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +0 -63
  308. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +0 -1
  309. package/fesm2022/ojiepermana-angular-navigation-item.mjs +0 -559
  310. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +0 -1
  311. package/fesm2022/ojiepermana-angular-navigation-service.mjs +0 -213
  312. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +0 -1
  313. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +0 -401
  314. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +0 -1
  315. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +0 -670
  316. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +0 -1
  317. package/fesm2022/ojiepermana-angular-navigation-types.mjs +0 -4
  318. package/fesm2022/ojiepermana-angular-navigation-types.mjs.map +0 -1
  319. package/fesm2022/ojiepermana-angular-theme-provider.mjs +0 -35
  320. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +0 -1
  321. package/fesm2022/ojiepermana-angular-theme-services.mjs +0 -294
  322. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +0 -1
  323. package/fesm2022/ojiepermana-angular-theme-token.mjs +0 -56
  324. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +0 -1
  325. package/generator/api/README.md +0 -252
  326. package/generator/api/bin/package.json +0 -3
  327. package/generator/api/bin/schematics/init/index.js +0 -90
  328. package/generator/api/bin/schematics/ng-add/index.js +0 -131
  329. package/generator/api/bin/schematics/sdk/index.js +0 -76
  330. package/generator/api/bin/src/config/loader.js +0 -41
  331. package/generator/api/bin/src/config/schema.js +0 -57
  332. package/generator/api/bin/src/emit/client.js +0 -248
  333. package/generator/api/bin/src/emit/metadata.js +0 -295
  334. package/generator/api/bin/src/emit/models.js +0 -106
  335. package/generator/api/bin/src/emit/navigation.js +0 -56
  336. package/generator/api/bin/src/emit/operations.js +0 -122
  337. package/generator/api/bin/src/emit/public-api.js +0 -54
  338. package/generator/api/bin/src/emit/services.js +0 -87
  339. package/generator/api/bin/src/engine.js +0 -65
  340. package/generator/api/bin/src/layout/per-domain.js +0 -359
  341. package/generator/api/bin/src/parser/bundle.js +0 -25
  342. package/generator/api/bin/src/parser/ir.js +0 -320
  343. package/generator/api/bin/src/parser/types.js +0 -7
  344. package/generator/api/bin/src/render/template.js +0 -58
  345. package/generator/api/bin/src/writer/index.js +0 -278
  346. package/generator/api/package.json +0 -4
  347. package/generator/api/schematics/init/schema.json +0 -19
  348. package/generator/api/schematics/ng-add/schema.json +0 -14
  349. package/generator/api/schematics/sdk/schema.json +0 -19
  350. package/generator/api/sdk.config.example.json +0 -24
  351. package/generator/guide/README.md +0 -84
  352. package/generator/guide/bin/package.json +0 -3
  353. package/generator/guide/bin/schematics/build/index.js +0 -36
  354. package/generator/guide/bin/schematics/init/index.js +0 -70
  355. package/generator/guide/bin/src/config/loader.js +0 -50
  356. package/generator/guide/bin/src/config/schema.js +0 -12
  357. package/generator/guide/bin/src/engine/component.js +0 -74
  358. package/generator/guide/bin/src/engine/frontmatter.js +0 -42
  359. package/generator/guide/bin/src/engine/index.js +0 -42
  360. package/generator/guide/bin/src/engine/naming.js +0 -39
  361. package/generator/guide/bin/src/engine/render.js +0 -36
  362. package/generator/guide/bin/src/engine/routes.js +0 -106
  363. package/generator/guide/bin/src/engine/walk.js +0 -35
  364. package/generator/guide/guide.config.example.json +0 -9
  365. package/generator/guide/schematics/build/schema.json +0 -14
  366. package/generator/guide/schematics/init/schema.json +0 -19
  367. package/layout/component/package.json +0 -4
  368. package/layout/package.json +0 -4
  369. package/layout/provider/package.json +0 -4
  370. package/layout/services/package.json +0 -4
  371. package/layout/shell/package.json +0 -4
  372. package/layout/token/directive/package.json +0 -4
  373. package/layout/token/package.json +0 -4
  374. package/layout/type/empty/package.json +0 -4
  375. package/layout/type/horizontal/package.json +0 -4
  376. package/layout/type/vertical/package.json +0 -4
  377. package/navigation/demo-data/package.json +0 -4
  378. package/navigation/icon/package.json +0 -4
  379. package/navigation/item/package.json +0 -4
  380. package/navigation/service/package.json +0 -4
  381. package/navigation/sidebar/package.json +0 -4
  382. package/navigation/topbar/README.md +0 -196
  383. package/navigation/topbar/package.json +0 -4
  384. package/navigation/types/package.json +0 -4
  385. package/theme/README.md +0 -174
  386. package/theme/package.json +0 -4
  387. package/theme/provider/package.json +0 -4
  388. package/theme/services/package.json +0 -4
  389. package/theme/styles/foundation/components.css +0 -81
  390. package/theme/styles/foundation/layers.css +0 -15
  391. package/theme/styles/foundation/tokens.css +0 -55
  392. package/theme/styles/index.css +0 -37
  393. package/theme/styles/integrations/material/autocomplete.css +0 -178
  394. package/theme/styles/integrations/material/button.css +0 -468
  395. package/theme/styles/integrations/material/dialog.css +0 -152
  396. package/theme/styles/integrations/material/select.css +0 -175
  397. package/theme/styles/integrations/material/slide-toggle.css +0 -234
  398. package/theme/styles/integrations/material/slider.css +0 -194
  399. package/theme/styles/integrations/material/tabs.css +0 -229
  400. package/theme/styles/integrations/material.css +0 -264
  401. package/theme/styles/integrations/tailwind.css +0 -114
  402. package/theme/styles/variants/color/amber.css +0 -31
  403. package/theme/styles/variants/color/base.css +0 -36
  404. package/theme/styles/variants/color/blue.css +0 -31
  405. package/theme/styles/variants/color/cyan.css +0 -31
  406. package/theme/styles/variants/color/emerald.css +0 -31
  407. package/theme/styles/variants/color/fuchsia.css +0 -31
  408. package/theme/styles/variants/color/green.css +0 -31
  409. package/theme/styles/variants/color/index.css +0 -22
  410. package/theme/styles/variants/color/indigo.css +0 -31
  411. package/theme/styles/variants/color/lime.css +0 -31
  412. package/theme/styles/variants/color/orange.css +0 -31
  413. package/theme/styles/variants/color/pink.css +0 -31
  414. package/theme/styles/variants/color/purple.css +0 -31
  415. package/theme/styles/variants/color/red.css +0 -31
  416. package/theme/styles/variants/color/rose.css +0 -31
  417. package/theme/styles/variants/color/sky.css +0 -31
  418. package/theme/styles/variants/color/teal.css +0 -31
  419. package/theme/styles/variants/color/violet.css +0 -31
  420. package/theme/styles/variants/color/yellow.css +0 -31
  421. package/theme/styles/variants/mode/dark.css +0 -20
  422. package/theme/styles/variants/mode/index.css +0 -6
  423. package/theme/styles/variants/mode/light.css +0 -24
  424. package/theme/styles/variants/style/brutal.css +0 -50
  425. package/theme/styles/variants/style/default.css +0 -54
  426. package/theme/styles/variants/style/index.css +0 -8
  427. package/theme/styles/variants/style/sharp.css +0 -50
  428. package/theme/styles/variants/style/soft.css +0 -50
  429. package/theme/token/package.json +0 -4
  430. package/types/ojiepermana-angular-component-accordion.d.ts +0 -51
  431. package/types/ojiepermana-angular-component-alert-dialog.d.ts +0 -93
  432. package/types/ojiepermana-angular-component-alert.d.ts +0 -37
  433. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +0 -12
  434. package/types/ojiepermana-angular-component-avatar.d.ts +0 -51
  435. package/types/ojiepermana-angular-component-badge.d.ts +0 -19
  436. package/types/ojiepermana-angular-component-breadcrumb.d.ts +0 -46
  437. package/types/ojiepermana-angular-component-button-group.d.ts +0 -26
  438. package/types/ojiepermana-angular-component-button.d.ts +0 -22
  439. package/types/ojiepermana-angular-component-calendar.d.ts +0 -33
  440. package/types/ojiepermana-angular-component-card.d.ts +0 -60
  441. package/types/ojiepermana-angular-component-carousel.d.ts +0 -86
  442. package/types/ojiepermana-angular-component-chart-area.d.ts +0 -1
  443. package/types/ojiepermana-angular-component-chart-bar.d.ts +0 -1
  444. package/types/ojiepermana-angular-component-chart-line.d.ts +0 -1
  445. package/types/ojiepermana-angular-component-chart-pie.d.ts +0 -1
  446. package/types/ojiepermana-angular-component-chart-radar.d.ts +0 -1
  447. package/types/ojiepermana-angular-component-chart-radial.d.ts +0 -1
  448. package/types/ojiepermana-angular-component-chart-scatter.d.ts +0 -1
  449. package/types/ojiepermana-angular-component-chart.d.ts +0 -1094
  450. package/types/ojiepermana-angular-component-checkbox.d.ts +0 -35
  451. package/types/ojiepermana-angular-component-collapsible.d.ts +0 -42
  452. package/types/ojiepermana-angular-component-combobox.d.ts +0 -50
  453. package/types/ojiepermana-angular-component-command.d.ts +0 -99
  454. package/types/ojiepermana-angular-component-composer.d.ts +0 -90
  455. package/types/ojiepermana-angular-component-context-menu.d.ts +0 -35
  456. package/types/ojiepermana-angular-component-date-picker.d.ts +0 -41
  457. package/types/ojiepermana-angular-component-dialog.d.ts +0 -87
  458. package/types/ojiepermana-angular-component-drawer.d.ts +0 -1
  459. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +0 -137
  460. package/types/ojiepermana-angular-component-editor.d.ts +0 -123
  461. package/types/ojiepermana-angular-component-empty.d.ts +0 -50
  462. package/types/ojiepermana-angular-component-form.d.ts +0 -141
  463. package/types/ojiepermana-angular-component-hover-card.d.ts +0 -74
  464. package/types/ojiepermana-angular-component-input-group.d.ts +0 -51
  465. package/types/ojiepermana-angular-component-input-otp.d.ts +0 -136
  466. package/types/ojiepermana-angular-component-input.d.ts +0 -16
  467. package/types/ojiepermana-angular-component-item.d.ts +0 -88
  468. package/types/ojiepermana-angular-component-kanban.d.ts +0 -70
  469. package/types/ojiepermana-angular-component-kbd.d.ts +0 -16
  470. package/types/ojiepermana-angular-component-label.d.ts +0 -11
  471. package/types/ojiepermana-angular-component-menubar.d.ts +0 -67
  472. package/types/ojiepermana-angular-component-native-select.d.ts +0 -26
  473. package/types/ojiepermana-angular-component-navigation-menu.d.ts +0 -96
  474. package/types/ojiepermana-angular-component-pagination.d.ts +0 -33
  475. package/types/ojiepermana-angular-component-pillbox.d.ts +0 -157
  476. package/types/ojiepermana-angular-component-popover.d.ts +0 -43
  477. package/types/ojiepermana-angular-component-progress.d.ts +0 -17
  478. package/types/ojiepermana-angular-component-radio.d.ts +0 -40
  479. package/types/ojiepermana-angular-component-resizable.d.ts +0 -99
  480. package/types/ojiepermana-angular-component-scroll-area.d.ts +0 -19
  481. package/types/ojiepermana-angular-component-select.d.ts +0 -57
  482. package/types/ojiepermana-angular-component-separator.d.ts +0 -14
  483. package/types/ojiepermana-angular-component-sheet.d.ts +0 -76
  484. package/types/ojiepermana-angular-component-skeleton.d.ts +0 -10
  485. package/types/ojiepermana-angular-component-slider.d.ts +0 -74
  486. package/types/ojiepermana-angular-component-spinner.d.ts +0 -13
  487. package/types/ojiepermana-angular-component-switch.d.ts +0 -40
  488. package/types/ojiepermana-angular-component-table.d.ts +0 -52
  489. package/types/ojiepermana-angular-component-tabs.d.ts +0 -92
  490. package/types/ojiepermana-angular-component-textarea.d.ts +0 -12
  491. package/types/ojiepermana-angular-component-timeline.d.ts +0 -63
  492. package/types/ojiepermana-angular-component-toast.d.ts +0 -38
  493. package/types/ojiepermana-angular-component-toggle-group.d.ts +0 -89
  494. package/types/ojiepermana-angular-component-toggle.d.ts +0 -25
  495. package/types/ojiepermana-angular-component-tooltip.d.ts +0 -89
  496. package/types/ojiepermana-angular-component-utils.d.ts +0 -5
  497. package/types/ojiepermana-angular-generator-api.d.ts +0 -86
  498. package/types/ojiepermana-angular-layout-component.d.ts +0 -205
  499. package/types/ojiepermana-angular-layout-provider.d.ts +0 -6
  500. package/types/ojiepermana-angular-layout-services.d.ts +0 -25
  501. package/types/ojiepermana-angular-layout-shell.d.ts +0 -8
  502. package/types/ojiepermana-angular-layout-token-directive.d.ts +0 -13
  503. package/types/ojiepermana-angular-layout-token.d.ts +0 -36
  504. package/types/ojiepermana-angular-layout-type-empty.d.ts +0 -22
  505. package/types/ojiepermana-angular-layout-type-horizontal.d.ts +0 -36
  506. package/types/ojiepermana-angular-layout-type-vertical.d.ts +0 -38
  507. package/types/ojiepermana-angular-layout.d.ts +0 -164
  508. package/types/ojiepermana-angular-navigation-demo-data.d.ts +0 -5
  509. package/types/ojiepermana-angular-navigation-icon.d.ts +0 -17
  510. package/types/ojiepermana-angular-navigation-item.d.ts +0 -54
  511. package/types/ojiepermana-angular-navigation-service.d.ts +0 -77
  512. package/types/ojiepermana-angular-navigation-sidebar.d.ts +0 -75
  513. package/types/ojiepermana-angular-navigation-topbar.d.ts +0 -74
  514. package/types/ojiepermana-angular-navigation-types.d.ts +0 -135
  515. package/types/ojiepermana-angular-theme-provider.d.ts +0 -11
  516. package/types/ojiepermana-angular-theme-services.d.ts +0 -55
  517. package/types/ojiepermana-angular-theme-token.d.ts +0 -57
@@ -1,239 +0,0 @@
1
- # Input Group
2
-
3
- Grouped input primitives for prefixes, suffixes, stacked helper rows, and inline actions.
4
-
5
- Use Input Group when the field and its addon content should read as a single control boundary instead of separate neighboring elements.
6
-
7
- ## Import
8
-
9
- ```ts
10
- import {
11
- FormControlDirective,
12
- FormDescriptionComponent,
13
- FormFieldComponent,
14
- FormLabelComponent,
15
- } from '@ojiepermana/angular/component/form';
16
- import {
17
- InputGroupAddonComponent,
18
- InputGroupButtonComponent,
19
- InputGroupComponent,
20
- InputGroupInputComponent,
21
- InputGroupTextComponent,
22
- InputGroupTextareaComponent,
23
- } from '@ojiepermana/angular/component/input-group';
24
- ```
25
-
26
- ## Usage
27
-
28
- Keep the input or textarea first in the DOM, then append one or more addons after it.
29
- Use the `align` input on `ui-input-group-addon` to place the addon at the inline or block edge.
30
-
31
- ```html
32
- <ui-form-field>
33
- <ui-form-label>Search</ui-form-label>
34
- <ui-input-group>
35
- <input ui-input-group-input uiFormControl placeholder="Search documentation..." />
36
- <ui-input-group-addon>
37
- <span aria-hidden="true">⌕</span>
38
- </ui-input-group-addon>
39
- <ui-input-group-addon align="inline-end">
40
- <ui-input-group-text>12 results</ui-input-group-text>
41
- </ui-input-group-addon>
42
- </ui-input-group>
43
- <ui-form-description
44
- >Keep addons after the control in the DOM and use align for visual placement.</ui-form-description
45
- >
46
- </ui-form-field>
47
- ```
48
-
49
- ## Composition
50
-
51
- ```text
52
- ui-input-group
53
- ├── input[ui-input-group-input] or textarea[ui-input-group-textarea]
54
- ├── ui-input-group-addon
55
- │ ├── ui-input-group-text
56
- │ └── button[ui-input-group-button]
57
- └── ui-input-group-addon
58
- ```
59
-
60
- ## Common Patterns
61
-
62
- ### Inline search
63
-
64
- ```html
65
- <ui-input-group class="max-w-md">
66
- <input ui-input-group-input placeholder="Search..." />
67
- <ui-input-group-addon>
68
- <span aria-hidden="true">⌕</span>
69
- </ui-input-group-addon>
70
- <ui-input-group-addon align="inline-end">
71
- <ui-input-group-text>12 results</ui-input-group-text>
72
- </ui-input-group-addon>
73
- </ui-input-group>
74
- ```
75
-
76
- ### Text addons
77
-
78
- ```html
79
- <ui-input-group>
80
- <input ui-input-group-input placeholder="0.00" />
81
- <ui-input-group-addon>
82
- <ui-input-group-text>$</ui-input-group-text>
83
- </ui-input-group-addon>
84
- <ui-input-group-addon align="inline-end">
85
- <ui-input-group-text>USD</ui-input-group-text>
86
- </ui-input-group-addon>
87
- </ui-input-group>
88
- ```
89
-
90
- ### Textarea footer
91
-
92
- ```html
93
- <ui-input-group>
94
- <textarea ui-input-group-textarea placeholder="Write a comment..."></textarea>
95
- <ui-input-group-addon align="block-end">
96
- <ui-input-group-text>0/280</ui-input-group-text>
97
- <button ui-input-group-button type="button" size="sm" variant="default" class="ml-auto">Post</button>
98
- </ui-input-group-addon>
99
- </ui-input-group>
100
- ```
101
-
102
- ### Custom control
103
-
104
- ```html
105
- <ui-input-group>
106
- <textarea
107
- data-slot="input-group-control"
108
- class="min-h-20 w-full resize-none bg-transparent px-3 py-2.5 text-sm outline-none placeholder:text-muted-foreground"
109
- placeholder="Use any custom control that matches the group contract..."></textarea>
110
- <ui-input-group-addon align="block-end">
111
- <button ui-input-group-button type="button" variant="default" size="sm" class="ml-auto">Submit</button>
112
- </ui-input-group-addon>
113
- </ui-input-group>
114
- ```
115
-
116
- ### Keyboard shortcut badge
117
-
118
- ```html
119
- <ui-input-group class="max-w-sm">
120
- <input ui-input-group-input placeholder="Search..." />
121
- <ui-input-group-addon>
122
- <span aria-hidden="true">⌕</span>
123
- </ui-input-group-addon>
124
- <ui-input-group-addon align="inline-end">
125
- <span
126
- aria-hidden="true"
127
- class="inline-flex h-6 items-center rounded-md border border-border bg-background px-2 font-mono text-[11px] font-medium text-foreground shadow-sm">
128
- ⌘K
129
- </span>
130
- </ui-input-group-addon>
131
- </ui-input-group>
132
- ```
133
-
134
- ### Dropdown composition
135
-
136
- Use the local menu primitives when the grouped field needs scoped actions or search destinations.
137
-
138
- ```html
139
- <ui-input-group>
140
- <input ui-input-group-input placeholder="Enter file name" />
141
- <ui-input-group-addon align="inline-end">
142
- <button
143
- ui-input-group-button
144
- type="button"
145
- size="icon-xs"
146
- aria-label="Open file actions"
147
- [uiMenuTrigger]="fileActionsMenu">
148
-
149
- </button>
150
- </ui-input-group-addon>
151
- </ui-input-group>
152
-
153
- <ng-template uiMenuContent #fileActionsMenu="uiMenuContent">
154
- <ui-menu-surface>
155
- <ui-menu-label>File actions</ui-menu-label>
156
- <button ui-menu-item type="button">Settings</button>
157
- <button ui-menu-item type="button">Copy path</button>
158
- <ui-menu-separator />
159
- <button ui-menu-item type="button">Open location</button>
160
- </ui-menu-surface>
161
- </ng-template>
162
- ```
163
-
164
- ### Spinner status row
165
-
166
- ```html
167
- <ui-input-group>
168
- <input ui-input-group-input placeholder="Saving changes..." />
169
- <ui-input-group-addon align="inline-end">
170
- <ui-input-group-text>Saving...</ui-input-group-text>
171
- <span
172
- aria-hidden="true"
173
- class="inline-flex size-4 animate-spin rounded-full border-2 border-muted border-t-foreground"></span>
174
- </ui-input-group-addon>
175
- </ui-input-group>
176
- ```
177
-
178
- ## API Reference
179
-
180
- ### `InputGroupComponent`
181
-
182
- | Input | Type | Default |
183
- | ------- | -------- | ------------ |
184
- | `class` | `string` | empty string |
185
-
186
- ### `InputGroupAddonComponent`
187
-
188
- | Input | Type | Default |
189
- | ------- | ------------------------------------------------------------- | ---------------- |
190
- | `align` | `'inline-start', 'inline-end', 'block-start', or 'block-end'` | `'inline-start'` |
191
- | `class` | `string` | empty string |
192
-
193
- ### `InputGroupButtonComponent`
194
-
195
- | Input | Type | Default |
196
- | --------- | ------------------------------------- | ------------ |
197
- | `variant` | `ButtonVariant` | `'ghost'` |
198
- | `size` | `'xs', 'icon-xs', 'sm', or 'icon-sm'` | `'xs'` |
199
- | `class` | `string` | empty string |
200
-
201
- ### `InputGroupInputComponent` and `InputGroupTextareaComponent`
202
-
203
- | Input | Type | Default |
204
- | ------- | -------- | ------------ |
205
- | `class` | `string` | empty string |
206
-
207
- All other native input and textarea attributes pass through unchanged.
208
-
209
- ## Styling And Theming
210
-
211
- - `ui-input-group` owns the shared border, focus ring, radius, and background surface.
212
- - `ui-input-group-addon` uses logical separators so start and end alignments still read correctly in RTL layouts.
213
- - Override `--radius` on the group root when the grouped field should be sharper or more pill-shaped.
214
- - Add spacing or typography utilities through `class` on any primitive without breaking the core layout contract.
215
-
216
- ## Accessibility
217
-
218
- - Keep the input or textarea before addons in the DOM so tab order and assistive reading order stay predictable.
219
- - Provide a visible label with `ui-form-label`, `ui-label`, or another accessible name source.
220
- - Give icon-only `ui-input-group-button` elements an `aria-label`.
221
- - Use `uiFormControl` inside `ui-form-field` when labels, descriptions, and invalid messaging should auto-wire to the grouped control.
222
-
223
- ## Keyboard Interactions
224
-
225
- - Text input and textarea editing remain native.
226
- - Buttons inside addons participate in the normal tab sequence after the text control.
227
- - Changing `align` only affects visual placement; it does not change keyboard order.
228
-
229
- ## Angular Notes
230
-
231
- - `ui-input-group-input` and `ui-input-group-textarea` are attribute selectors on native controls, so native input and textarea behavior remains intact.
232
- - For custom controls, set `data-slot="input-group-control"` and provide your own spacing utilities so the wrapper can still coordinate focus and addon layout.
233
- - Upstream shadcn `Field` examples map to the local `ui-form-field`, `ui-form-label`, and `ui-form-description` primitives rather than a separate `field` runtime component.
234
-
235
- ## Source Parity
236
-
237
- This Angular implementation covers the core shadcn Input Group primitives, all four addon alignments, textarea support, custom control guidance, and RTL composition.
238
-
239
- Keyboard shortcut badges, dropdown triggers, and spinner/status rows are composed from the same primitives plus the local menu surface and inline status markup instead of requiring input-group-specific wrappers.
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-component-input-group.mjs",
3
- "typings": "../../types/ojiepermana-angular-component-input-group.d.ts"
4
- }
@@ -1,278 +0,0 @@
1
- # Input OTP
2
-
3
- Accessible one-time password input with grouped slots, copy-paste distribution, roving focus, signal-friendly control, and reactive-form support.
4
-
5
- Use Input OTP for verification codes, step-up authentication, banking PIN entry, and short recovery codes where each character should be visually separated without losing keyboard or paste ergonomics.
6
-
7
- ## Import
8
-
9
- ```ts
10
- import {
11
- InputOtpComponent,
12
- InputOtpGroupComponent,
13
- InputOtpSeparatorComponent,
14
- InputOtpSlotComponent,
15
- REGEXP_ONLY_DIGITS,
16
- REGEXP_ONLY_DIGITS_AND_CHARS,
17
- } from '@ojiepermana/angular/component/input-otp';
18
- ```
19
-
20
- When the code input belongs to a richer field layout, pair it with the existing form primitives:
21
-
22
- ```ts
23
- import {
24
- FormDescriptionComponent,
25
- FormFieldComponent,
26
- FormLabelComponent,
27
- FormMessageComponent,
28
- } from '@ojiepermana/angular/component/form';
29
- ```
30
-
31
- ## Composition
32
-
33
- The Angular structure follows the shadcn Input OTP information architecture while translating it to standalone selectors.
34
-
35
- ```text
36
- ui-input-otp
37
- ├── ui-input-otp-group
38
- │ ├── ui-input-otp-slot
39
- │ ├── ui-input-otp-slot
40
- │ └── ui-input-otp-slot
41
- ├── ui-input-otp-separator
42
- └── ui-input-otp-group
43
- ├── ui-input-otp-slot
44
- ├── ui-input-otp-slot
45
- └── ui-input-otp-slot
46
- ```
47
-
48
- ## Basic Usage
49
-
50
- Use the root component for value flow and the projected parts for layout.
51
-
52
- ```ts
53
- protected readonly code = signal('');
54
- protected readonly digitsPattern = REGEXP_ONLY_DIGITS;
55
- ```
56
-
57
- ```html
58
- <ui-form-field>
59
- <ui-form-label>Verification code</ui-form-label>
60
- <ui-input-otp [maxLength]="6" [pattern]="digitsPattern" [value]="code()" (valueChange)="code.set($event)">
61
- <ui-input-otp-group>
62
- <ui-input-otp-slot [index]="0" />
63
- <ui-input-otp-slot [index]="1" />
64
- <ui-input-otp-slot [index]="2" />
65
- <ui-input-otp-slot [index]="3" />
66
- <ui-input-otp-slot [index]="4" />
67
- <ui-input-otp-slot [index]="5" />
68
- </ui-input-otp-group>
69
- </ui-input-otp>
70
- <ui-form-description>Paste the code from your email or authenticator app.</ui-form-description>
71
- </ui-form-field>
72
- ```
73
-
74
- ## Common Patterns
75
-
76
- ### Separator groups
77
-
78
- Split longer codes into smaller clusters when the verification flow benefits from visual chunking.
79
-
80
- ```html
81
- <ui-input-otp [maxLength]="6" [pattern]="digitsPattern" [value]="code()" (valueChange)="code.set($event)">
82
- <ui-input-otp-group>
83
- <ui-input-otp-slot [index]="0" />
84
- <ui-input-otp-slot [index]="1" />
85
- </ui-input-otp-group>
86
- <ui-input-otp-separator />
87
- <ui-input-otp-group>
88
- <ui-input-otp-slot [index]="2" />
89
- <ui-input-otp-slot [index]="3" />
90
- </ui-input-otp-group>
91
- <ui-input-otp-separator />
92
- <ui-input-otp-group>
93
- <ui-input-otp-slot [index]="4" />
94
- <ui-input-otp-slot [index]="5" />
95
- </ui-input-otp-group>
96
- </ui-input-otp>
97
- ```
98
-
99
- ### Reactive forms
100
-
101
- The root component implements `ControlValueAccessor` and also integrates directly with `ui-form-field`, so labels, descriptions, and invalid-state wiring work without `uiFormControl`.
102
-
103
- ```ts
104
- readonly verificationForm = new FormGroup({
105
- code: new FormControl('', {
106
- nonNullable: true,
107
- validators: [Validators.required, Validators.minLength(6)],
108
- }),
109
- });
110
- ```
111
-
112
- ```html
113
- <ui-form-field>
114
- <ui-form-label>Verification code</ui-form-label>
115
- <ui-input-otp formControlName="code" [maxLength]="6" [pattern]="digitsPattern">
116
- <ui-input-otp-group
117
- class="*:data-[slot=input-otp-slot]:h-12 *:data-[slot=input-otp-slot]:w-11 *:data-[slot=input-otp-slot]:text-xl">
118
- <ui-input-otp-slot [index]="0" />
119
- <ui-input-otp-slot [index]="1" />
120
- <ui-input-otp-slot [index]="2" />
121
- </ui-input-otp-group>
122
- <ui-input-otp-separator class="mx-2" />
123
- <ui-input-otp-group
124
- class="*:data-[slot=input-otp-slot]:h-12 *:data-[slot=input-otp-slot]:w-11 *:data-[slot=input-otp-slot]:text-xl">
125
- <ui-input-otp-slot [index]="3" />
126
- <ui-input-otp-slot [index]="4" />
127
- <ui-input-otp-slot [index]="5" />
128
- </ui-input-otp-group>
129
- </ui-input-otp>
130
- <ui-form-description>Enter the 6-digit code sent to m@example.com.</ui-form-description>
131
- <ui-form-message />
132
- </ui-form-field>
133
- ```
134
-
135
- ### Disabled and invalid states
136
-
137
- Use the native `disabled` input when the code should remain visible but unavailable, and forward `aria-invalid="true"` when an expired or rejected code needs the destructive treatment.
138
-
139
- ```html
140
- <ui-input-otp [maxLength]="6" [pattern]="digitsPattern" value="123456" disabled>
141
- <ui-input-otp-group>
142
- <ui-input-otp-slot [index]="0" />
143
- <ui-input-otp-slot [index]="1" />
144
- <ui-input-otp-slot [index]="2" />
145
- </ui-input-otp-group>
146
- <ui-input-otp-separator />
147
- <ui-input-otp-group>
148
- <ui-input-otp-slot [index]="3" />
149
- <ui-input-otp-slot [index]="4" />
150
- <ui-input-otp-slot [index]="5" />
151
- </ui-input-otp-group>
152
- </ui-input-otp>
153
- ```
154
-
155
- ```html
156
- <ui-input-otp
157
- aria-invalid="true"
158
- [maxLength]="6"
159
- [pattern]="digitsPattern"
160
- [value]="invalidCode()"
161
- (valueChange)="invalidCode.set($event)">
162
- <ui-input-otp-group>
163
- <ui-input-otp-slot [index]="0" />
164
- <ui-input-otp-slot [index]="1" />
165
- <ui-input-otp-slot [index]="2" />
166
- </ui-input-otp-group>
167
- <ui-input-otp-separator />
168
- <ui-input-otp-group>
169
- <ui-input-otp-slot [index]="3" />
170
- <ui-input-otp-slot [index]="4" />
171
- <ui-input-otp-slot [index]="5" />
172
- </ui-input-otp-group>
173
- </ui-input-otp>
174
- ```
175
-
176
- ### Four digits and alphanumeric codes
177
-
178
- Use `REGEXP_ONLY_DIGITS` for numeric OTPs and `REGEXP_ONLY_DIGITS_AND_CHARS` for mixed recovery codes.
179
-
180
- ```html
181
- <ui-input-otp [maxLength]="4" [pattern]="digitsPattern" [inputmode]="'numeric'">
182
- <ui-input-otp-group>
183
- <ui-input-otp-slot [index]="0" />
184
- <ui-input-otp-slot [index]="1" />
185
- <ui-input-otp-slot [index]="2" />
186
- <ui-input-otp-slot [index]="3" />
187
- </ui-input-otp-group>
188
- </ui-input-otp>
189
- ```
190
-
191
- ```html
192
- <ui-input-otp [maxLength]="6" [pattern]="digitsAndCharsPattern" [inputmode]="'text'">
193
- <ui-input-otp-group>
194
- <ui-input-otp-slot [index]="0" />
195
- <ui-input-otp-slot [index]="1" />
196
- <ui-input-otp-slot [index]="2" />
197
- </ui-input-otp-group>
198
- <ui-input-otp-separator />
199
- <ui-input-otp-group>
200
- <ui-input-otp-slot [index]="3" />
201
- <ui-input-otp-slot [index]="4" />
202
- <ui-input-otp-slot [index]="5" />
203
- </ui-input-otp-group>
204
- </ui-input-otp>
205
- ```
206
-
207
- ## API Reference
208
-
209
- ### `InputOtpComponent`
210
-
211
- | Input | Type | Default |
212
- | ------------------ | -------------------------- | ----------------- |
213
- | `maxLength` | `number` | `6` |
214
- | `value` | `string` | `undefined` |
215
- | `pattern` | `RegExp \| string \| null` | `null` |
216
- | `required` | `boolean` | `false` |
217
- | `disabled` | `boolean` | `false` |
218
- | `inputmode` | `string \| null` | `'numeric'` |
219
- | `autocomplete` | `string \| null` | `'one-time-code'` |
220
- | `aria-label` | `string \| null` | `null` |
221
- | `aria-labelledby` | `string \| null` | `null` |
222
- | `aria-describedby` | `string \| null` | `null` |
223
- | `class` | `string` | `''` |
224
-
225
- ### Output
226
-
227
- | Output | Type |
228
- | ------------- | -------- |
229
- | `valueChange` | `string` |
230
-
231
- ### Parts
232
-
233
- | Part | Selector | Notes |
234
- | ---------------------------- | ------------------------ | ------------------------------------------------------------- |
235
- | `InputOtpGroupComponent` | `ui-input-otp-group` | Groups adjacent slots into one bordered cluster. |
236
- | `InputOtpSlotComponent` | `ui-input-otp-slot` | Requires an `index` and renders the focusable character slot. |
237
- | `InputOtpSeparatorComponent` | `ui-input-otp-separator` | Inserts an optional visual separator between groups. |
238
-
239
- Convenience exports: `REGEXP_ONLY_DIGITS` and `REGEXP_ONLY_DIGITS_AND_CHARS`.
240
-
241
- ## Styling and Theming
242
-
243
- The component exposes shadcn-style `data-slot` hooks on the root, group, separator, and slot hosts. Use `*:data-[slot=input-otp-slot]` utilities on `ui-input-otp-group` when a layout needs taller or wider cells, for example:
244
-
245
- ```html
246
- <ui-input-otp-group
247
- class="*:data-[slot=input-otp-slot]:h-12 *:data-[slot=input-otp-slot]:w-11 *:data-[slot=input-otp-slot]:text-xl">
248
- ...
249
- </ui-input-otp-group>
250
- ```
251
-
252
- The default styles use the shared border, ring, destructive, foreground, and muted-foreground tokens from the library theme.
253
-
254
- ## Accessibility
255
-
256
- - Each slot is a real input with an accessible name that includes its position in the sequence.
257
- - `ui-form-field` labels and descriptions wire to the component automatically when the OTP lives inside the field wrapper.
258
- - `aria-invalid="true"` on the root forwards the destructive treatment across the slot set.
259
- - Keep the surrounding label and helper text descriptive. Users should understand where the code came from and how many characters are expected.
260
-
261
- ## Keyboard Interactions
262
-
263
- - Typing a character replaces the current slot and advances focus.
264
- - Paste distributes accepted characters from the current slot onward.
265
- - Arrow keys move across slots and flip direction under RTL layouts.
266
- - `Backspace` removes the current or previous slot and shifts the remaining value left.
267
- - `Delete` removes the current slot and shifts the remaining value left.
268
-
269
- ## Angular Notes
270
-
271
- - Use `[value]` plus `(valueChange)` for signal-backed local state.
272
- - Use `formControlName`, `[formControl]`, or `[(ngModel)]` for form-driven flows.
273
- - There is no separate `defaultValue` input; seed the initial code with the bound signal or form control value.
274
- - Unlike native inputs, this component does not need `uiFormControl`; it integrates with the form-field context directly.
275
-
276
- ## Source Parity
277
-
278
- This Angular slice keeps the shadcn composition, grouped separators, pattern filtering, paste handling, and verification-form examples. The deliberate Angular deviation is the runtime implementation: each slot is a visible input coordinated by the root CVA instead of the upstream single hidden-input package. Browser one-time-code autofill works best through the first slot with the default `autocomplete="one-time-code"` behavior.
@@ -1,4 +0,0 @@
1
- {
2
- "module": "../../fesm2022/ojiepermana-angular-component-input-otp.mjs",
3
- "typings": "../../types/ojiepermana-angular-component-input-otp.d.ts"
4
- }