@ojiepermana/angular 22.1.11 → 22.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/README.md +32 -26
  2. package/chart/README.md +272 -0
  3. package/component/README.md +89 -0
  4. package/component/accordion/README.md +195 -0
  5. package/component/alert/README.md +184 -0
  6. package/component/alert-dialog/README.md +255 -0
  7. package/component/aspect-ratio/README.md +116 -0
  8. package/component/avatar/README.md +182 -0
  9. package/component/badge/README.md +143 -0
  10. package/component/breadcrumb/README.md +223 -0
  11. package/component/button/README.md +141 -0
  12. package/component/button-group/README.md +214 -0
  13. package/component/calendar/README.md +137 -0
  14. package/component/card/README.md +232 -0
  15. package/component/carousel/README.md +276 -0
  16. package/component/checkbox/README.md +153 -0
  17. package/component/collapsible/README.md +216 -0
  18. package/component/combobox/README.md +202 -0
  19. package/component/command/README.md +287 -0
  20. package/component/composer/README.md +241 -0
  21. package/component/context-menu/README.md +268 -0
  22. package/component/date-picker/README.md +202 -0
  23. package/component/dialog/README.md +276 -0
  24. package/component/drawer/README.md +147 -0
  25. package/component/dropdown-menu/README.md +336 -0
  26. package/component/editor/README.md +152 -0
  27. package/component/empty/README.md +193 -0
  28. package/component/form/README.md +216 -0
  29. package/component/hover-card/README.md +150 -0
  30. package/component/icon/README.md +25 -0
  31. package/component/input/README.md +160 -0
  32. package/component/input-group/README.md +245 -0
  33. package/component/input-otp/README.md +331 -0
  34. package/component/item/README.md +254 -0
  35. package/component/kanban/README.md +81 -0
  36. package/component/kbd/README.md +141 -0
  37. package/component/label/README.md +137 -0
  38. package/component/menubar/README.md +270 -0
  39. package/component/native-select/README.md +176 -0
  40. package/component/navigation-menu/README.md +165 -0
  41. package/component/pagination/README.md +151 -0
  42. package/component/pillbox/README.md +68 -0
  43. package/component/popover/README.md +54 -0
  44. package/component/progress/README.md +160 -0
  45. package/component/radio/README.md +212 -0
  46. package/component/resizable/README.md +178 -0
  47. package/component/scroll-area/README.md +150 -0
  48. package/component/select/README.md +228 -0
  49. package/component/separator/README.md +175 -0
  50. package/component/sheet/README.md +190 -0
  51. package/component/skeleton/README.md +158 -0
  52. package/component/slider/README.md +207 -0
  53. package/component/spinner/README.md +160 -0
  54. package/component/switch/README.md +170 -0
  55. package/component/table/README.md +292 -0
  56. package/component/tabs/README.md +220 -0
  57. package/component/textarea/README.md +169 -0
  58. package/component/timeline/README.md +94 -0
  59. package/component/toast/README.md +173 -0
  60. package/component/toggle/README.md +133 -0
  61. package/component/toggle-group/README.md +234 -0
  62. package/component/tooltip/README.md +230 -0
  63. package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
  64. package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
  65. package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
  66. package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
  67. package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
  68. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
  69. package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
  70. package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
  71. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
  72. package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
  73. package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
  74. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
  75. package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
  76. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
  77. package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
  78. package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
  79. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
  80. package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
  81. package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
  82. package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
  83. package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
  84. package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
  85. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
  86. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
  87. package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
  88. package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
  89. package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
  90. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
  91. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
  92. package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
  93. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
  94. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
  95. package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
  96. package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
  97. package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
  98. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
  99. package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
  100. package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
  101. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
  102. package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
  103. package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
  104. package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
  105. package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
  106. package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
  107. package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
  108. package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
  109. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
  110. package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
  111. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
  112. package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
  113. package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
  114. package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
  115. package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
  116. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
  117. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
  118. package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
  119. package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
  120. package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
  121. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
  122. package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
  123. package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
  124. package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
  125. package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
  126. package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
  127. package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
  128. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
  129. package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
  130. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
  131. package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
  132. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
  133. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
  134. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
  135. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
  136. package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
  137. package/fesm2022/ojiepermana-angular-component.mjs +4 -4
  138. package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
  139. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
  140. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
  141. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
  142. package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
  143. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
  144. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
  145. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
  146. package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
  147. package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
  148. package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
  149. package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
  150. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
  151. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
  152. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
  153. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
  154. package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
  155. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
  156. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
  157. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
  158. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
  159. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
  160. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
  161. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
  162. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
  163. package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
  164. package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
  165. package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
  166. package/fesm2022/ojiepermana-angular.mjs +6 -11
  167. package/navigation/README.md +374 -0
  168. package/package.json +81 -20
  169. package/sdk/README.md +212 -0
  170. package/sdk/schematics/collection.json +20 -0
  171. package/sdk/schematics/init/index.js +83 -0
  172. package/sdk/schematics/init/schema.json +19 -0
  173. package/sdk/schematics/ng-add/index.js +147 -0
  174. package/sdk/schematics/ng-add/schema.json +14 -0
  175. package/sdk/schematics/package.json +3 -0
  176. package/sdk/schematics/sdk/index.js +175 -0
  177. package/sdk/schematics/sdk/schema.json +19 -0
  178. package/sdk/sdk.config.example.json +24 -0
  179. package/sdk/src/config/loader.js +43 -0
  180. package/sdk/src/config/schema.js +59 -0
  181. package/sdk/src/emit/client.js +251 -0
  182. package/sdk/src/emit/metadata.js +310 -0
  183. package/sdk/src/emit/models.js +104 -0
  184. package/sdk/src/emit/navigation.js +56 -0
  185. package/sdk/src/emit/operations.js +118 -0
  186. package/sdk/src/emit/public-api.js +54 -0
  187. package/sdk/src/emit/services.js +110 -0
  188. package/sdk/src/engine.js +67 -0
  189. package/sdk/src/layout/per-domain.js +360 -0
  190. package/sdk/src/package.json +3 -0
  191. package/sdk/src/parser/bundle.js +25 -0
  192. package/sdk/src/parser/ir.js +429 -0
  193. package/sdk/src/parser/types.js +7 -0
  194. package/sdk/src/render/template.js +152 -0
  195. package/sdk/src/writer/index.js +286 -0
  196. package/theme/README.md +126 -0
  197. package/theme/component/settings/README.md +135 -0
  198. package/theme/layout/README.md +539 -0
  199. package/theme/page/README.md +453 -0
  200. package/theme/shell/README.md +340 -0
  201. package/theme/styles/README.md +178 -0
  202. package/theme/styles/css/base/components.css +553 -0
  203. package/theme/styles/css/base/index.css +14 -0
  204. package/theme/styles/css/base/package.css +9 -0
  205. package/theme/styles/css/base/prefers-dark.css +86 -0
  206. package/theme/styles/css/base/print.css +62 -0
  207. package/theme/styles/css/base/status.css +38 -0
  208. package/theme/styles/css/base/tailwind.css +165 -0
  209. package/theme/styles/css/base/theme.css +373 -0
  210. package/theme/styles/css/base/tokens.css +361 -0
  211. package/theme/styles/css/color/amber.css +72 -0
  212. package/theme/styles/css/color/blue.css +72 -0
  213. package/theme/styles/css/color/brand.css +38 -0
  214. package/theme/styles/css/color/cyan.css +72 -0
  215. package/theme/styles/css/color/emerald.css +72 -0
  216. package/theme/styles/css/color/fuchsia.css +72 -0
  217. package/theme/styles/css/color/green.css +72 -0
  218. package/theme/styles/css/color/index.css +19 -0
  219. package/theme/styles/css/color/indigo.css +72 -0
  220. package/theme/styles/css/color/lime.css +72 -0
  221. package/theme/styles/css/color/orange.css +72 -0
  222. package/theme/styles/css/color/pink.css +72 -0
  223. package/theme/styles/css/color/purple.css +72 -0
  224. package/theme/styles/css/color/red.css +72 -0
  225. package/theme/styles/css/color/rose.css +72 -0
  226. package/theme/styles/css/color/sky.css +72 -0
  227. package/theme/styles/css/color/teal.css +72 -0
  228. package/theme/styles/css/color/violet.css +72 -0
  229. package/theme/styles/css/color/yellow.css +72 -0
  230. package/theme/styles/css/index.css +18 -0
  231. package/theme/styles/css/neutral/gray.css +63 -0
  232. package/theme/styles/css/neutral/index.css +11 -0
  233. package/theme/styles/css/neutral/mauve.css +63 -0
  234. package/theme/styles/css/neutral/mist.css +63 -0
  235. package/theme/styles/css/neutral/neutral.css +63 -0
  236. package/theme/styles/css/neutral/olive.css +63 -0
  237. package/theme/styles/css/neutral/slate.css +63 -0
  238. package/theme/styles/css/neutral/stone.css +63 -0
  239. package/theme/styles/css/neutral/taupe.css +63 -0
  240. package/theme/styles/css/neutral/zinc.css +63 -0
  241. package/theme/styles/css/radius/index.css +30 -0
  242. package/theme/styles/css/space/index.css +20 -0
  243. package/types/ojiepermana-angular-chart-area.d.ts +76 -1
  244. package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
  245. package/types/ojiepermana-angular-chart-core.d.ts +811 -1
  246. package/types/ojiepermana-angular-chart-line.d.ts +75 -1
  247. package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
  248. package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
  249. package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
  250. package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
  251. package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
  252. package/types/ojiepermana-angular-chart.d.ts +2 -1
  253. package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
  254. package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
  255. package/types/ojiepermana-angular-component-alert.d.ts +42 -1
  256. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
  257. package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
  258. package/types/ojiepermana-angular-component-badge.d.ts +24 -1
  259. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
  260. package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
  261. package/types/ojiepermana-angular-component-button.d.ts +27 -1
  262. package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
  263. package/types/ojiepermana-angular-component-card.d.ts +69 -1
  264. package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
  265. package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
  266. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
  267. package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
  268. package/types/ojiepermana-angular-component-command.d.ts +130 -1
  269. package/types/ojiepermana-angular-component-composer.d.ts +90 -1
  270. package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
  271. package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
  272. package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
  273. package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
  274. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
  275. package/types/ojiepermana-angular-component-editor.d.ts +135 -1
  276. package/types/ojiepermana-angular-component-empty.d.ts +50 -1
  277. package/types/ojiepermana-angular-component-form.d.ts +159 -1
  278. package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
  279. package/types/ojiepermana-angular-component-icon.d.ts +89 -1
  280. package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
  281. package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
  282. package/types/ojiepermana-angular-component-input.d.ts +21 -1
  283. package/types/ojiepermana-angular-component-item.d.ts +93 -1
  284. package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
  285. package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
  286. package/types/ojiepermana-angular-component-label.d.ts +11 -1
  287. package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
  288. package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
  289. package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
  290. package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
  291. package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
  292. package/types/ojiepermana-angular-component-popover.d.ts +66 -1
  293. package/types/ojiepermana-angular-component-progress.d.ts +17 -1
  294. package/types/ojiepermana-angular-component-radio.d.ts +60 -1
  295. package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
  296. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
  297. package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
  298. package/types/ojiepermana-angular-component-select.d.ts +122 -1
  299. package/types/ojiepermana-angular-component-separator.d.ts +14 -1
  300. package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
  301. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
  302. package/types/ojiepermana-angular-component-slider.d.ts +83 -1
  303. package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
  304. package/types/ojiepermana-angular-component-switch.d.ts +44 -1
  305. package/types/ojiepermana-angular-component-table.d.ts +57 -1
  306. package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
  307. package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
  308. package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
  309. package/types/ojiepermana-angular-component-toast.d.ts +64 -1
  310. package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
  311. package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
  312. package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
  313. package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
  314. package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
  315. package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
  316. package/types/ojiepermana-angular-component-utils.d.ts +2 -1
  317. package/types/ojiepermana-angular-component.d.ts +2 -1
  318. package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
  319. package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
  320. package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
  321. package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
  322. package/types/ojiepermana-angular-navigation.d.ts +507 -1
  323. package/types/ojiepermana-angular-sdk.d.ts +89 -1
  324. package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
  325. package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
  326. package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
  327. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
  328. package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
  329. package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
  330. package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
  331. package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
  332. package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
  333. package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
  334. package/types/ojiepermana-angular-theme-page.d.ts +5 -1
  335. package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
  336. package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
  337. package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
  338. package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
  339. package/types/ojiepermana-angular-theme.d.ts +2 -1
  340. package/types/ojiepermana-angular.d.ts +5 -5
@@ -0,0 +1,202 @@
1
+ # Combobox
2
+
3
+ Searchable single-select surface built from a button trigger, a CDK overlay,
4
+ and the shared [Command](../command/README.md) list primitives.
5
+
6
+ Use Combobox when users need type-to-filter selection from a medium-sized list
7
+ without leaving the current form, settings screen, or dashboard panel.
8
+
9
+ ## Import
10
+
11
+ ```ts
12
+ import { ComboboxComponent, type ComboboxOption } from '@ojiepermana/angular/component/combobox';
13
+ ```
14
+
15
+ ## Composition
16
+
17
+ The Angular structure maps the combobox idea onto the existing library stack:
18
+
19
+ ```text
20
+ Combobox
21
+ ├── button[role="combobox"]
22
+ └── CDK overlay
23
+ └── Command
24
+ ├── input[CommandInput]
25
+ └── CommandList
26
+ └── button[CommandItem]
27
+ ```
28
+
29
+ This differs from the current shadcn Base UI page, which documents an input-first
30
+ combobox. The Angular library currently ships the common searchable single-select
31
+ pattern on top of Button + Command + CDK Overlay.
32
+
33
+ ## Basic usage
34
+
35
+ Bind `[(value)]` when a signal or parent component should own the selected value.
36
+ Pass width or layout utilities through the host `class`; the trigger fills that
37
+ host width.
38
+
39
+ ```ts
40
+ frameworkOptions: ComboboxOption<string>[] = [
41
+ { value: 'angular', label: 'Angular' },
42
+ { value: 'nextjs', label: 'Next.js' },
43
+ { value: 'astro', label: 'Astro' },
44
+ ];
45
+
46
+ selectedFramework = signal<string | null>(null);
47
+ ```
48
+
49
+ ```html
50
+ <Combobox
51
+ class="w-80"
52
+ [options]="frameworkOptions"
53
+ [(value)]="selectedFramework"
54
+ placeholder="Select framework"
55
+ searchPlaceholder="Search frameworks..."
56
+ />
57
+ ```
58
+
59
+ ## Common patterns
60
+
61
+ ### Object-backed values
62
+
63
+ Option values can be full domain objects, not only strings.
64
+
65
+ ```ts
66
+ type Country = {
67
+ code: string;
68
+ label: string;
69
+ region: string;
70
+ currency: string;
71
+ };
72
+
73
+ countryOptions: ComboboxOption<Country>[] = [
74
+ {
75
+ value: { code: 'ca', label: 'Canada', region: 'North America', currency: 'CAD' },
76
+ label: 'Canada',
77
+ },
78
+ {
79
+ value: { code: 'jp', label: 'Japan', region: 'Asia', currency: 'JPY' },
80
+ label: 'Japan',
81
+ },
82
+ ];
83
+
84
+ selectedCountry = signal<Country | null>(countryOptions[0]?.value ?? null);
85
+ ```
86
+
87
+ ```html
88
+ <Combobox
89
+ class="w-full max-w-sm"
90
+ [options]="countryOptions"
91
+ [(value)]="selectedCountry"
92
+ placeholder="Select country"
93
+ searchPlaceholder="Search countries..."
94
+ />
95
+ ```
96
+
97
+ ### Disabled options and empty states
98
+
99
+ Mark options with `disabled: true` when they should stay visible but unavailable.
100
+ Tune `searchPlaceholder` and `emptyText` so large lists feel intentional.
101
+
102
+ ```ts
103
+ feedOptions: ComboboxOption<string>[] = [
104
+ { value: 'release-notes', label: 'Release notes' },
105
+ { value: 'beta-api', label: 'Beta API access', disabled: true },
106
+ { value: 'status-page', label: 'Status page' },
107
+ ];
108
+ ```
109
+
110
+ ```html
111
+ <Combobox
112
+ class="w-full max-w-sm"
113
+ [options]="feedOptions"
114
+ placeholder="Choose a feed"
115
+ searchPlaceholder="Search feeds..."
116
+ emptyText="No feeds matched your query."
117
+ />
118
+ ```
119
+
120
+ ### Reactive forms
121
+
122
+ The component implements `ControlValueAccessor`, so it also works with Angular
123
+ reactive forms.
124
+
125
+ ```ts
126
+ readonly form = new FormGroup({
127
+ framework: new FormControl<string | null>(null),
128
+ });
129
+ ```
130
+
131
+ ```html
132
+ <form [formGroup]="form">
133
+ <Combobox
134
+ class="w-80"
135
+ formControlName="framework"
136
+ [options]="frameworkOptions"
137
+ placeholder="Select framework"
138
+ searchPlaceholder="Search frameworks..."
139
+ />
140
+ </form>
141
+ ```
142
+
143
+ ## API reference
144
+
145
+ | Input or model | Type | Default |
146
+ | ------------------- | ---------------------------------- | --------------------- |
147
+ | `options` | `ReadonlyArray<ComboboxOption<T>>` | `[]` |
148
+ | `value` | `T \| null` | `null` |
149
+ | `placeholder` | `string` | `'Select…'` |
150
+ | `searchPlaceholder` | `string` | `'Search…'` |
151
+ | `emptyText` | `string` | `'No results found.'` |
152
+ | `disabled` | `boolean` | `false` |
153
+ | `class` | `string` | `''` |
154
+
155
+ Output: `valueChange: T | null`.
156
+
157
+ ### `ComboboxOption<T>`
158
+
159
+ ```ts
160
+ interface ComboboxOption<T = unknown> {
161
+ value: T;
162
+ label: string;
163
+ disabled?: boolean;
164
+ }
165
+ ```
166
+
167
+ ## Styling and theming
168
+
169
+ - Pass `class` to the host element for width and layout. The trigger fills the host width.
170
+ - Trigger uses the shared `outline` button variant.
171
+ - Overlay panel class is `combobox-panel`.
172
+ - Overlay width tracks the trigger with `--combobox-trigger-width`.
173
+
174
+ ## Accessibility
175
+
176
+ - Trigger exposes `role="combobox"`, `aria-expanded`, `aria-controls`, and `aria-haspopup="listbox"`.
177
+ - Panel content is powered by `Command`, which provides the filter input and listbox roles.
178
+ - Escape and outside click close the panel; focus returns to the trigger.
179
+ - Keep a visible label or surrounding explanatory copy when placeholder text alone is not enough context.
180
+
181
+ ## Keyboard interactions
182
+
183
+ - Enter or Space opens the trigger because it is a native button.
184
+ - Arrow keys move between filtered command items once the search input is focused.
185
+ - Enter selects the active option, and Escape closes the surface.
186
+ - Tab closes the listbox, returns focus to the trigger, and lets the browser continue the tab sequence from there.
187
+
188
+ ## Angular notes
189
+
190
+ - `[(value)]` is the simplest signal-friendly binding for standalone components.
191
+ - Because the component implements `ControlValueAccessor`, it also works with reactive forms.
192
+ - Object-backed selections rely on strict equality. Reuse the same object instances from the bound `options` array.
193
+
194
+ ## Source parity
195
+
196
+ The current shadcn combobox docs also cover grouped collections, popup triggers,
197
+ clear buttons, invalid styling, input add-ons, and multi-select chips. Those
198
+ variants are not exposed by `Combobox` yet.
199
+
200
+ This README documents the supported Angular surface today and calls out the
201
+ upstream shadcn page as a reference for future expansion, not as a promise that
202
+ every upstream example already exists in this package.
@@ -0,0 +1,287 @@
1
+ # Command
2
+
3
+ Searchable command palette primitive for quick actions, navigation, and settings.
4
+
5
+ Use Command inline for filterable action lists, or compose it with Dialog to recreate shadcn's `CommandDialog` pattern. The same primitive also powers [Combobox](../combobox/README.md).
6
+
7
+ ## Import
8
+
9
+ Import the command parts directly from the component package.
10
+
11
+ ```ts
12
+ import {
13
+ CommandComponent,
14
+ CommandEmptyComponent,
15
+ CommandGroupComponent,
16
+ CommandInputComponent,
17
+ CommandItemComponent,
18
+ CommandListComponent,
19
+ CommandSeparatorComponent,
20
+ CommandShortcutComponent,
21
+ } from '@ojiepermana/angular/component/command';
22
+ ```
23
+
24
+ When you want a palette launcher like shadcn's `CommandDialog`, add Button and Dialog primitives as well.
25
+
26
+ ```ts
27
+ import { ButtonComponent } from '@ojiepermana/angular/component/button';
28
+ import {
29
+ DialogComponent,
30
+ DialogDescriptionComponent,
31
+ DialogHeaderComponent,
32
+ DialogTitleComponent,
33
+ } from '@ojiepermana/angular/component/dialog';
34
+ ```
35
+
36
+ ## Composition
37
+
38
+ The Angular composition mirrors shadcn's structure while keeping overlay behavior separate.
39
+
40
+ ```text
41
+ Command
42
+ ├── input[CommandInput]
43
+ └── CommandList
44
+ ├── CommandEmpty
45
+ ├── CommandGroup
46
+ │ ├── button[CommandItem]
47
+ │ └── button[CommandItem]
48
+ ├── CommandSeparator
49
+ └── CommandGroup
50
+ ├── button[CommandItem]
51
+ └── button[CommandItem]
52
+ ```
53
+
54
+ ## Basic usage
55
+
56
+ Build the searchable surface from the root, input, list, and grouped items. Add `span[CommandShortcut]` when an item should expose a trailing keyboard hint.
57
+
58
+ ```html
59
+ <command class="max-w-md rounded-lg border border-border">
60
+ <input CommandInput placeholder="Type a command or search..." />
61
+ <CommandList>
62
+ <CommandEmpty>No results found.</CommandEmpty>
63
+
64
+ <CommandGroup heading="Suggestions">
65
+ <button type="button" CommandItem value="Calendar" (selected)="open('calendar')">
66
+ Calendar
67
+ </button>
68
+ <button type="button" CommandItem value="Search Emoji" (selected)="open('emoji')">
69
+ Search Emoji
70
+ </button>
71
+ </CommandGroup>
72
+
73
+ <CommandSeparator />
74
+
75
+ <CommandGroup heading="Settings">
76
+ <button type="button" CommandItem value="Profile" (selected)="open('profile')">
77
+ Profile
78
+ <span CommandShortcut>⌘P</span>
79
+ </button>
80
+ </CommandGroup>
81
+ </CommandList>
82
+ </command>
83
+ ```
84
+
85
+ ## Common patterns
86
+
87
+ ### Command palette dialog
88
+
89
+ shadcn ships a dedicated `CommandDialog` helper. In this Angular library, compose `Dialog` with `Command` instead.
90
+
91
+ ```ts
92
+ const commandOpen = signal(false);
93
+ ```
94
+
95
+ ```html
96
+ <button type="button" Button variant="outline" (click)="commandOpen.set(true)">Open menu</button>
97
+
98
+ <dialog [(open)]="commandOpen">
99
+ <DialogHeader>
100
+ <DialogTitle>Command palette</DialogTitle>
101
+ <DialogDescription> Search for navigation, billing, or settings actions. </DialogDescription>
102
+ </DialogHeader>
103
+
104
+ <command class="mt-4 rounded-lg border border-border">
105
+ <input CommandInput placeholder="Type a command or search..." />
106
+ <CommandList>
107
+ <CommandEmpty>No results found.</CommandEmpty>
108
+ <CommandGroup heading="Suggestions">
109
+ <button type="button" CommandItem value="Calendar" (selected)="commandOpen.set(false)">
110
+ Calendar
111
+ </button>
112
+ </CommandGroup>
113
+ </CommandList>
114
+ </command>
115
+ </dialog>
116
+ ```
117
+
118
+ ### Shortcuts
119
+
120
+ Use `span[CommandShortcut]` for keyboard hints aligned to the trailing edge of each row.
121
+
122
+ ```html
123
+ <command class="max-w-md rounded-lg border border-border">
124
+ <input CommandInput placeholder="Search shortcuts..." />
125
+ <CommandList>
126
+ <CommandGroup heading="Quick actions">
127
+ <button type="button" CommandItem value="Profile">
128
+ Profile
129
+ <span CommandShortcut>⌘P</span>
130
+ </button>
131
+ <button type="button" CommandItem value="Billing">
132
+ Billing
133
+ <span CommandShortcut>⌘B</span>
134
+ </button>
135
+ </CommandGroup>
136
+ </CommandList>
137
+ </command>
138
+ ```
139
+
140
+ ### Scrollable command lists
141
+
142
+ The list container defaults to a scrollable max height. Override it with `class` when the palette needs to expose many groups.
143
+
144
+ ```html
145
+ <command class="max-w-xl rounded-lg border border-border">
146
+ <input CommandInput placeholder="Jump to a tool or action..." />
147
+ <CommandList class="max-h-56">
148
+ <CommandEmpty>No results found.</CommandEmpty>
149
+ <CommandGroup heading="Navigation">...</CommandGroup>
150
+ <CommandSeparator />
151
+ <CommandGroup heading="Actions">...</CommandGroup>
152
+ <CommandSeparator />
153
+ <CommandGroup heading="Tools">...</CommandGroup>
154
+ </CommandList>
155
+ </command>
156
+ ```
157
+
158
+ ### Controlled query
159
+
160
+ Two-way bind the query when the parent needs to inspect, reset, or prefill the current search string.
161
+
162
+ ```ts
163
+ const query = signal('');
164
+ ```
165
+
166
+ ```html
167
+ <command [(query)]="query" class="max-w-md rounded-lg border border-border">
168
+ <input CommandInput placeholder="Filter actions..." />
169
+ <CommandList>...</CommandList>
170
+ </command>
171
+ ```
172
+
173
+ ### RTL
174
+
175
+ For right-to-left interfaces, apply `dir="rtl"` to the wrapper and input.
176
+
177
+ ```html
178
+ <section dir="rtl" lang="ar" class="max-w-md text-right">
179
+ <command class="rounded-lg border border-border">
180
+ <input CommandInput placeholder="اكتب أمرًا أو ابحث..." dir="rtl" />
181
+ <CommandList>
182
+ <CommandEmpty>لم يتم العثور على نتائج.</CommandEmpty>
183
+ <CommandGroup heading="اقتراحات">...</CommandGroup>
184
+ <CommandSeparator />
185
+ <CommandGroup heading="الإعدادات">...</CommandGroup>
186
+ </CommandList>
187
+ </command>
188
+ </section>
189
+ ```
190
+
191
+ ## API reference
192
+
193
+ ### `CommandComponent`
194
+
195
+ | Input / Model / Output | Type | Default |
196
+ | ---------------------- | -------- | ------------------------------- |
197
+ | `query` | `string` | `''` |
198
+ | `class` | `string` | `''` |
199
+ | `dismissed` | `void` | emitted on Escape with no query |
200
+
201
+ `(dismissed)` fires when Escape arrives and there is nothing left to clear. A
202
+ Command inside a dialog or popover can ignore it -- the overlay closes itself on
203
+ Escape -- but a standalone one has no other way to be asked to close.
204
+
205
+ ### `CommandInputComponent`
206
+
207
+ | Input | Type | Default |
208
+ | ------------- | -------- | --------------------------- |
209
+ | `placeholder` | `string` | `Type a command or search…` |
210
+ | `class` | `string` | `''` |
211
+
212
+ Behavior:
213
+
214
+ - Uses `role="combobox"` and `aria-autocomplete="list"`.
215
+ - Arrow Down and Arrow Up move the active item.
216
+ - Enter selects the active visible item.
217
+
218
+ ### `CommandListComponent`
219
+
220
+ | Input | Type | Default |
221
+ | ------- | -------- | ------- |
222
+ | `class` | `string` | `''` |
223
+
224
+ Behavior: renders the listbox region and scroll container.
225
+
226
+ ### `CommandGroupComponent`
227
+
228
+ | Input | Type | Default |
229
+ | --------- | ---------------- | ------- |
230
+ | `heading` | `string \| null` | `null` |
231
+ | `class` | `string` | `''` |
232
+
233
+ ### `CommandItemComponent`
234
+
235
+ | Input / Output | Type | Default |
236
+ | -------------- | ----------------------------- | -------------------- |
237
+ | `value` | `string` | `''` |
238
+ | `disabled` | `boolean` | `false` |
239
+ | `class` | `string` | `''` |
240
+ | `selected` | `MouseEvent \| KeyboardEvent` | emitted on selection |
241
+
242
+ Behavior:
243
+
244
+ - Uses `role="option"`.
245
+ - Hides automatically when the current query does not match its `value` or text content.
246
+ - Skips selection when `disabled` is `true`.
247
+
248
+ ### Auxiliary parts
249
+
250
+ - `CommandEmpty` appears only when no visible items match the query.
251
+ - `CommandSeparator` renders a divider between groups.
252
+ - `span[CommandShortcut]` aligns trailing shortcut text with `ml-auto` styling.
253
+
254
+ ## Styling and theming
255
+
256
+ Pass `class` to the root and parts to tune borders, width, list height, and embedded dialog layouts.
257
+
258
+ The primitive already applies shared theme tokens such as `bg-popover`, `text-popover-foreground`, `border-border`, and active-row accent styles. Typical overrides include:
259
+
260
+ - `rounded-lg border border-border` on the root for shadcn-like cards.
261
+ - `max-h-*` on `CommandList` for taller or shorter scroll regions.
262
+ - Additional spacing or layout classes on items when an app supplies inline badges or icons.
263
+
264
+ ## Accessibility
265
+
266
+ - The input uses combobox semantics while the list exposes listbox-style options.
267
+ - Items expose `aria-selected`, `data-active`, and disabled state markers.
268
+ - Disabled items remain visible for discoverability but are skipped by keyboard selection.
269
+ - Keep item labels descriptive and avoid deeply nested interactive content inside a command item.
270
+
271
+ ## Keyboard interactions
272
+
273
+ - Arrow Down and Arrow Up move the active option through visible, enabled items; disabled rows are never announced as the active descendant.
274
+ - Enter selects the active item.
275
+ - Typing filters items by the configured `value` or fallback text content.
276
+ - Escape clears the query, and asks the container to dismiss (`(dismissed)`) once the query is already empty. Both consume the key's default action; only the clearing one stops propagating, so a Command inside a dialog does not close the dialog while clearing its search, but a second Escape does close it.
277
+
278
+ ## Angular notes
279
+
280
+ - The root exposes a signal-backed `query` model, so `[(query)]` works naturally in standalone components.
281
+ - `button[CommandItem]` is the most practical item host because it preserves native semantics for click and keyboard handlers.
282
+ - `ComboboxComponent` already builds on this primitive, so keep command examples action-oriented instead of mixing them with form-specific behavior.
283
+ - This primitive intentionally stays presentational. Compose it with higher-level surfaces such as Dialog rather than coupling it to overlay infrastructure.
284
+
285
+ ## Source parity
286
+
287
+ This Angular implementation follows shadcn's Command information architecture and `cmdk` mental model while translating the dialog helper into existing `Dialog` primitives and Angular selectors.