@ojiepermana/angular 21.3.3 → 22.0.1

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 (291) hide show
  1. package/README.md +10 -6
  2. package/component/accordion/README.md +195 -0
  3. package/component/alert/README.md +182 -0
  4. package/component/alert-dialog/README.md +239 -0
  5. package/component/aspect-ratio/README.md +112 -0
  6. package/component/avatar/README.md +176 -0
  7. package/component/badge/README.md +133 -0
  8. package/component/breadcrumb/README.md +216 -0
  9. package/component/button/README.md +139 -0
  10. package/component/button-group/README.md +208 -0
  11. package/component/calendar/README.md +132 -0
  12. package/component/card/README.md +220 -0
  13. package/component/carousel/README.md +276 -0
  14. package/component/checkbox/README.md +149 -0
  15. package/component/collapsible/README.md +195 -0
  16. package/component/combobox/README.md +198 -0
  17. package/component/command/README.md +275 -0
  18. package/component/composer/README.md +235 -0
  19. package/component/composer/package.json +4 -0
  20. package/component/context-menu/README.md +267 -0
  21. package/component/date-picker/README.md +177 -0
  22. package/component/dialog/README.md +237 -0
  23. package/component/drawer/README.md +145 -0
  24. package/component/dropdown-menu/README.md +311 -0
  25. package/component/editor/README.md +136 -0
  26. package/component/editor/package.json +4 -0
  27. package/component/empty/README.md +183 -0
  28. package/component/empty/package.json +4 -0
  29. package/component/form/README.md +210 -0
  30. package/component/hover-card/README.md +146 -0
  31. package/component/hover-card/package.json +4 -0
  32. package/component/input/README.md +159 -0
  33. package/component/input-group/README.md +239 -0
  34. package/component/input-otp/README.md +278 -0
  35. package/component/input-otp/package.json +4 -0
  36. package/component/item/README.md +247 -0
  37. package/component/kanban/README.md +81 -0
  38. package/component/kanban/package.json +4 -0
  39. package/component/kbd/README.md +139 -0
  40. package/component/kbd/package.json +4 -0
  41. package/component/label/README.md +136 -0
  42. package/component/menubar/README.md +269 -0
  43. package/component/menubar/package.json +4 -0
  44. package/component/native-select/README.md +176 -0
  45. package/component/native-select/package.json +4 -0
  46. package/component/navigation-menu/README.md +160 -0
  47. package/component/navigation-menu/package.json +4 -0
  48. package/component/pagination/README.md +144 -0
  49. package/component/pillbox/README.md +67 -0
  50. package/component/pillbox/package.json +4 -0
  51. package/component/popover/README.md +43 -0
  52. package/component/progress/README.md +160 -0
  53. package/component/radio/README.md +209 -0
  54. package/component/resizable/README.md +168 -0
  55. package/component/resizable/package.json +4 -0
  56. package/component/scroll-area/README.md +143 -0
  57. package/component/select/README.md +174 -0
  58. package/component/separator/README.md +170 -0
  59. package/component/sheet/README.md +183 -0
  60. package/component/skeleton/README.md +158 -0
  61. package/component/slider/README.md +207 -0
  62. package/component/spinner/README.md +160 -0
  63. package/component/spinner/package.json +4 -0
  64. package/component/switch/README.md +166 -0
  65. package/component/table/README.md +291 -0
  66. package/component/tabs/README.md +219 -0
  67. package/component/textarea/README.md +154 -0
  68. package/component/timeline/README.md +94 -0
  69. package/component/timeline/package.json +4 -0
  70. package/component/toast/README.md +321 -0
  71. package/component/toggle/README.md +131 -0
  72. package/component/toggle/package.json +4 -0
  73. package/component/toggle-group/README.md +206 -0
  74. package/component/toggle-group/package.json +4 -0
  75. package/component/tooltip/README.md +211 -0
  76. package/fesm2022/ojiepermana-angular-component-accordion.mjs +45 -30
  77. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +1 -1
  78. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +95 -61
  79. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +1 -1
  80. package/fesm2022/ojiepermana-angular-component-alert.mjs +30 -21
  81. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +1 -1
  82. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +11 -7
  83. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +1 -1
  84. package/fesm2022/ojiepermana-angular-component-avatar.mjs +50 -34
  85. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +1 -1
  86. package/fesm2022/ojiepermana-angular-component-badge.mjs +9 -6
  87. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +1 -1
  88. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +49 -35
  89. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +1 -1
  90. package/fesm2022/ojiepermana-angular-component-button-group.mjs +25 -17
  91. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +1 -1
  92. package/fesm2022/ojiepermana-angular-component-button.mjs +11 -7
  93. package/fesm2022/ojiepermana-angular-component-button.mjs.map +1 -1
  94. package/fesm2022/ojiepermana-angular-component-calendar.mjs +23 -13
  95. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +1 -1
  96. package/fesm2022/ojiepermana-angular-component-card.mjs +51 -36
  97. package/fesm2022/ojiepermana-angular-component-card.mjs.map +1 -1
  98. package/fesm2022/ojiepermana-angular-component-carousel.mjs +66 -42
  99. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +1 -1
  100. package/fesm2022/ojiepermana-angular-component-chart.mjs +494 -283
  101. package/fesm2022/ojiepermana-angular-component-chart.mjs.map +1 -1
  102. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +23 -13
  103. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +1 -1
  104. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +28 -20
  105. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +1 -1
  106. package/fesm2022/ojiepermana-angular-component-combobox.mjs +27 -18
  107. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +1 -1
  108. package/fesm2022/ojiepermana-angular-component-command.mjs +77 -52
  109. package/fesm2022/ojiepermana-angular-component-command.mjs.map +1 -1
  110. package/fesm2022/ojiepermana-angular-component-composer.mjs +352 -0
  111. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +1 -0
  112. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +9 -6
  113. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +1 -1
  114. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +34 -19
  115. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +1 -1
  116. package/fesm2022/ojiepermana-angular-component-dialog.mjs +55 -38
  117. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +1 -1
  118. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +1 -1
  119. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +108 -74
  120. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +1 -1
  121. package/fesm2022/ojiepermana-angular-component-editor.mjs +717 -0
  122. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +1 -0
  123. package/fesm2022/ojiepermana-angular-component-empty.mjs +145 -0
  124. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +1 -0
  125. package/fesm2022/ojiepermana-angular-component-form.mjs +200 -42
  126. package/fesm2022/ojiepermana-angular-component-form.mjs.map +1 -1
  127. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +297 -0
  128. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +1 -0
  129. package/fesm2022/ojiepermana-angular-component-input-group.mjs +48 -33
  130. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +1 -1
  131. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +514 -0
  132. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +1 -0
  133. package/fesm2022/ojiepermana-angular-component-input.mjs +7 -5
  134. package/fesm2022/ojiepermana-angular-component-input.mjs.map +1 -1
  135. package/fesm2022/ojiepermana-angular-component-item.mjs +76 -53
  136. package/fesm2022/ojiepermana-angular-component-item.mjs.map +1 -1
  137. package/fesm2022/ojiepermana-angular-component-kanban.mjs +314 -0
  138. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +1 -0
  139. package/fesm2022/ojiepermana-angular-component-kbd.mjs +55 -0
  140. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +1 -0
  141. package/fesm2022/ojiepermana-angular-component-label.mjs +9 -6
  142. package/fesm2022/ojiepermana-angular-component-label.mjs.map +1 -1
  143. package/fesm2022/ojiepermana-angular-component-menubar.mjs +308 -0
  144. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +1 -0
  145. package/fesm2022/ojiepermana-angular-component-native-select.mjs +67 -0
  146. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +1 -0
  147. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +413 -0
  148. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +1 -0
  149. package/fesm2022/ojiepermana-angular-component-pagination.mjs +65 -31
  150. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +1 -1
  151. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +812 -0
  152. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +1 -0
  153. package/fesm2022/ojiepermana-angular-component-popover.mjs +18 -12
  154. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +1 -1
  155. package/fesm2022/ojiepermana-angular-component-progress.mjs +17 -10
  156. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +1 -1
  157. package/fesm2022/ojiepermana-angular-component-radio.mjs +47 -17
  158. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +1 -1
  159. package/fesm2022/ojiepermana-angular-component-resizable.mjs +481 -0
  160. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +1 -0
  161. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +15 -9
  162. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +1 -1
  163. package/fesm2022/ojiepermana-angular-component-select.mjs +71 -26
  164. package/fesm2022/ojiepermana-angular-component-select.mjs.map +1 -1
  165. package/fesm2022/ojiepermana-angular-component-separator.mjs +11 -7
  166. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +1 -1
  167. package/fesm2022/ojiepermana-angular-component-sheet.mjs +91 -42
  168. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +1 -1
  169. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +7 -5
  170. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +1 -1
  171. package/fesm2022/ojiepermana-angular-component-slider.mjs +401 -7
  172. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +1 -1
  173. package/fesm2022/ojiepermana-angular-component-spinner.mjs +60 -0
  174. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +1 -0
  175. package/fesm2022/ojiepermana-angular-component-switch.mjs +47 -15
  176. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +1 -1
  177. package/fesm2022/ojiepermana-angular-component-table.mjs +56 -40
  178. package/fesm2022/ojiepermana-angular-component-table.mjs.map +1 -1
  179. package/fesm2022/ojiepermana-angular-component-tabs.mjs +58 -38
  180. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +1 -1
  181. package/fesm2022/ojiepermana-angular-component-textarea.mjs +8 -6
  182. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +1 -1
  183. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -0
  184. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +1 -0
  185. package/fesm2022/ojiepermana-angular-component-toast.mjs +28 -4
  186. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +1 -1
  187. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +289 -0
  188. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +1 -0
  189. package/fesm2022/ojiepermana-angular-component-toggle.mjs +82 -0
  190. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +1 -0
  191. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +304 -6
  192. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +1 -1
  193. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +1 -1
  194. package/fesm2022/ojiepermana-angular-layout-component.mjs +45 -24
  195. package/fesm2022/ojiepermana-angular-layout-component.mjs.map +1 -1
  196. package/fesm2022/ojiepermana-angular-layout-provider.mjs.map +1 -1
  197. package/fesm2022/ojiepermana-angular-layout-services.mjs +7 -5
  198. package/fesm2022/ojiepermana-angular-layout-services.mjs.map +1 -1
  199. package/fesm2022/ojiepermana-angular-layout-shell.mjs +3 -3
  200. package/fesm2022/ojiepermana-angular-layout-shell.mjs.map +1 -1
  201. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs +9 -6
  202. package/fesm2022/ojiepermana-angular-layout-token-directive.mjs.map +1 -1
  203. package/fesm2022/ojiepermana-angular-layout-token.mjs.map +1 -1
  204. package/fesm2022/{ojiepermana-angular-layout-empty.mjs → ojiepermana-angular-layout-type-empty.mjs} +4 -4
  205. package/fesm2022/ojiepermana-angular-layout-type-empty.mjs.map +1 -0
  206. package/fesm2022/{ojiepermana-angular-layout-horizontal.mjs → ojiepermana-angular-layout-type-horizontal.mjs} +26 -17
  207. package/fesm2022/ojiepermana-angular-layout-type-horizontal.mjs.map +1 -0
  208. package/fesm2022/{ojiepermana-angular-layout-vertical.mjs → ojiepermana-angular-layout-type-vertical.mjs} +28 -18
  209. package/fesm2022/ojiepermana-angular-layout-type-vertical.mjs.map +1 -0
  210. package/fesm2022/ojiepermana-angular-layout.mjs +74 -50
  211. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  212. package/fesm2022/ojiepermana-angular-navigation-demo-data.mjs.map +1 -1
  213. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +11 -7
  214. package/fesm2022/ojiepermana-angular-navigation-icon.mjs.map +1 -1
  215. package/fesm2022/ojiepermana-angular-navigation-item.mjs +27 -16
  216. package/fesm2022/ojiepermana-angular-navigation-item.mjs.map +1 -1
  217. package/fesm2022/ojiepermana-angular-navigation-service.mjs +29 -20
  218. package/fesm2022/ojiepermana-angular-navigation-service.mjs.map +1 -1
  219. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs +71 -43
  220. package/fesm2022/ojiepermana-angular-navigation-sidebar.mjs.map +1 -1
  221. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs +261 -24
  222. package/fesm2022/ojiepermana-angular-navigation-topbar.mjs.map +1 -1
  223. package/fesm2022/ojiepermana-angular-theme-provider.mjs.map +1 -1
  224. package/fesm2022/ojiepermana-angular-theme-services.mjs +19 -11
  225. package/fesm2022/ojiepermana-angular-theme-services.mjs.map +1 -1
  226. package/fesm2022/ojiepermana-angular-theme-token.mjs.map +1 -1
  227. package/fesm2022/ojiepermana-angular-theme.mjs +19 -11
  228. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  229. package/generator/api/README.md +8 -5
  230. package/generator/api/bin/src/emit/client.js +4 -2
  231. package/generator/api/bin/src/writer/index.js +47 -5
  232. package/generator/guide/bin/schematics/build/index.js +3 -2
  233. package/generator/guide/bin/src/engine/component.js +2 -2
  234. package/generator/guide/bin/src/engine/index.js +3 -3
  235. package/generator/guide/bin/src/engine/render.js +10 -5
  236. package/layout/type/empty/package.json +4 -0
  237. package/layout/type/horizontal/package.json +4 -0
  238. package/layout/type/vertical/package.json +4 -0
  239. package/navigation/topbar/README.md +196 -0
  240. package/package.json +89 -25
  241. package/theme/README.md +110 -3
  242. package/theme/styles/integrations/material/autocomplete.css +178 -0
  243. package/theme/styles/integrations/material/button.css +468 -0
  244. package/theme/styles/integrations/material/dialog.css +152 -0
  245. package/theme/styles/integrations/material/select.css +175 -0
  246. package/theme/styles/integrations/material/slide-toggle.css +234 -0
  247. package/theme/styles/integrations/material/slider.css +194 -0
  248. package/theme/styles/integrations/material/tabs.css +229 -0
  249. package/theme/styles/integrations/material.css +70 -60
  250. package/types/ojiepermana-angular-component-combobox.d.ts +1 -2
  251. package/types/ojiepermana-angular-component-composer.d.ts +90 -0
  252. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +2 -0
  253. package/types/ojiepermana-angular-component-editor.d.ts +123 -0
  254. package/types/ojiepermana-angular-component-empty.d.ts +50 -0
  255. package/types/ojiepermana-angular-component-form.d.ts +52 -3
  256. package/types/ojiepermana-angular-component-hover-card.d.ts +74 -0
  257. package/types/ojiepermana-angular-component-input-otp.d.ts +136 -0
  258. package/types/ojiepermana-angular-component-kanban.d.ts +70 -0
  259. package/types/ojiepermana-angular-component-kbd.d.ts +16 -0
  260. package/types/ojiepermana-angular-component-menubar.d.ts +67 -0
  261. package/types/ojiepermana-angular-component-native-select.d.ts +26 -0
  262. package/types/ojiepermana-angular-component-navigation-menu.d.ts +96 -0
  263. package/types/ojiepermana-angular-component-pagination.d.ts +10 -4
  264. package/types/ojiepermana-angular-component-pillbox.d.ts +157 -0
  265. package/types/ojiepermana-angular-component-radio.d.ts +7 -1
  266. package/types/ojiepermana-angular-component-resizable.d.ts +99 -0
  267. package/types/ojiepermana-angular-component-select.d.ts +17 -5
  268. package/types/ojiepermana-angular-component-sheet.d.ts +3 -1
  269. package/types/ojiepermana-angular-component-slider.d.ts +59 -1
  270. package/types/ojiepermana-angular-component-spinner.d.ts +13 -0
  271. package/types/ojiepermana-angular-component-switch.d.ts +13 -3
  272. package/types/ojiepermana-angular-component-timeline.d.ts +63 -0
  273. package/types/ojiepermana-angular-component-toast.d.ts +12 -3
  274. package/types/ojiepermana-angular-component-toggle-group.d.ts +89 -0
  275. package/types/ojiepermana-angular-component-toggle.d.ts +25 -0
  276. package/types/ojiepermana-angular-component-tooltip.d.ts +72 -5
  277. package/types/{ojiepermana-angular-layout-horizontal.d.ts → ojiepermana-angular-layout-type-horizontal.d.ts} +3 -3
  278. package/types/{ojiepermana-angular-layout-vertical.d.ts → ojiepermana-angular-layout-type-vertical.d.ts} +3 -3
  279. package/types/ojiepermana-angular-layout.d.ts +5 -5
  280. package/types/ojiepermana-angular-navigation-item.d.ts +1 -1
  281. package/types/ojiepermana-angular-navigation-service.d.ts +7 -7
  282. package/types/ojiepermana-angular-navigation-sidebar.d.ts +8 -8
  283. package/types/ojiepermana-angular-navigation-topbar.d.ts +24 -4
  284. package/types/ojiepermana-angular-navigation-types.d.ts +14 -8
  285. package/fesm2022/ojiepermana-angular-layout-empty.mjs.map +0 -1
  286. package/fesm2022/ojiepermana-angular-layout-horizontal.mjs.map +0 -1
  287. package/fesm2022/ojiepermana-angular-layout-vertical.mjs.map +0 -1
  288. package/layout/empty/package.json +0 -4
  289. package/layout/horizontal/package.json +0 -4
  290. package/layout/vertical/package.json +0 -4
  291. /package/types/{ojiepermana-angular-layout-empty.d.ts → ojiepermana-angular-layout-type-empty.d.ts} +0 -0
@@ -0,0 +1,314 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { cn } from '@ojiepermana/angular/component/utils';
4
+
5
+ const kanbanColumnWidthClasses = {
6
+ sm: '[--kanban-column-width:16rem]',
7
+ default: '[--kanban-column-width:18rem]',
8
+ lg: '[--kanban-column-width:22rem]',
9
+ };
10
+ class KanbanComponent {
11
+ columnWidth = input('default', /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "columnWidth" }] : /* istanbul ignore next */ []));
13
+ dense = input(false, { ...(ngDevMode ? { debugName: "dense" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
14
+ class = input('', /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
16
+ classes = computed(() => cn('flex w-full min-w-0 gap-[var(--kanban-column-gap)] overflow-x-auto pb-3 text-sm text-foreground', '[--kanban-card-gap:0.75rem] [--kanban-column-gap:1rem]', kanbanColumnWidthClasses[this.columnWidth()], this.dense() ? '[--kanban-card-gap:0.5rem] [--kanban-column-gap:0.75rem]' : '', this.class()), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanComponent, isStandalone: true, selector: "ui-kanban", inputs: { columnWidth: { classPropertyName: "columnWidth", publicName: "columnWidth", isSignal: true, isRequired: false, transformFunction: null }, dense: { classPropertyName: "dense", publicName: "dense", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban\"", "attr.data-column-width": "columnWidth()", "attr.data-dense": "dense() ? \"\" : null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanComponent, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ui-kanban',
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ host: {
27
+ '[class]': 'classes()',
28
+ '[attr.data-slot]': '"kanban"',
29
+ '[attr.data-column-width]': 'columnWidth()',
30
+ '[attr.data-dense]': 'dense() ? "" : null',
31
+ },
32
+ template: `<ng-content />`,
33
+ }]
34
+ }], propDecorators: { columnWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnWidth", required: false }] }], dense: [{ type: i0.Input, args: [{ isSignal: true, alias: "dense", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
35
+ class KanbanColumnComponent {
36
+ class = input('', /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
38
+ classes = computed(() => cn('flex max-h-full min-h-0 w-[var(--kanban-column-width)] shrink-0 flex-col overflow-hidden rounded-lg border border-border bg-muted/35 text-foreground shadow-sm', this.class()), /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanColumnComponent, isStandalone: true, selector: "ui-kanban-column", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-column\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'ui-kanban-column',
47
+ changeDetection: ChangeDetectionStrategy.OnPush,
48
+ host: {
49
+ '[class]': 'classes()',
50
+ '[attr.data-slot]': '"kanban-column"',
51
+ },
52
+ template: `<ng-content />`,
53
+ }]
54
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
55
+ class KanbanColumnHeaderComponent {
56
+ heading = input('', /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []));
58
+ subheading = input('', /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "subheading" }] : /* istanbul ignore next */ []));
60
+ count = input(null, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []));
62
+ badge = input('', /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []));
64
+ class = input('', /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
66
+ displayCount = computed(() => {
67
+ const count = this.count();
68
+ return count === null || count === undefined || count === '' ? null : count;
69
+ }, /* @ts-ignore */
70
+ ...(ngDevMode ? [{ debugName: "displayCount" }] : /* istanbul ignore next */ []));
71
+ classes = computed(() => cn('flex items-start gap-3 border-b border-border/80 px-3 py-3', this.class()), /* @ts-ignore */
72
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.0", type: KanbanColumnHeaderComponent, isStandalone: true, selector: "ui-kanban-column-header", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subheading: { classPropertyName: "subheading", publicName: "subheading", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-column-header\"" } }, ngImport: i0, template: `
75
+ <div class="order-2 inline-flex shrink-0 items-center gap-1">
76
+ <ng-content select="ui-kanban-column-actions,[ui-kanban-column-actions]" />
77
+ </div>
78
+
79
+ <div class="order-1 min-w-0 flex-1">
80
+ @if (heading()) {
81
+ <div class="flex min-w-0 items-center gap-2">
82
+ <h3 class="truncate text-sm font-semibold leading-none text-foreground">{{ heading() }}</h3>
83
+ @if (displayCount() !== null) {
84
+ <span
85
+ class="inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-muted px-1.5 text-xs font-medium text-muted-foreground">
86
+ {{ displayCount() }}
87
+ </span>
88
+ }
89
+ @if (badge()) {
90
+ <span
91
+ class="inline-flex shrink-0 items-center rounded-md border border-border bg-background px-1.5 py-0.5 text-xs font-medium text-muted-foreground">
92
+ {{ badge() }}
93
+ </span>
94
+ }
95
+ </div>
96
+ }
97
+
98
+ @if (subheading()) {
99
+ <p class="mt-1 truncate text-xs leading-5 text-muted-foreground">{{ subheading() }}</p>
100
+ }
101
+
102
+ <ng-content />
103
+ </div>
104
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnHeaderComponent, decorators: [{
107
+ type: Component,
108
+ args: [{
109
+ selector: 'ui-kanban-column-header',
110
+ changeDetection: ChangeDetectionStrategy.OnPush,
111
+ host: {
112
+ '[class]': 'classes()',
113
+ '[attr.data-slot]': '"kanban-column-header"',
114
+ },
115
+ template: `
116
+ <div class="order-2 inline-flex shrink-0 items-center gap-1">
117
+ <ng-content select="ui-kanban-column-actions,[ui-kanban-column-actions]" />
118
+ </div>
119
+
120
+ <div class="order-1 min-w-0 flex-1">
121
+ @if (heading()) {
122
+ <div class="flex min-w-0 items-center gap-2">
123
+ <h3 class="truncate text-sm font-semibold leading-none text-foreground">{{ heading() }}</h3>
124
+ @if (displayCount() !== null) {
125
+ <span
126
+ class="inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-muted px-1.5 text-xs font-medium text-muted-foreground">
127
+ {{ displayCount() }}
128
+ </span>
129
+ }
130
+ @if (badge()) {
131
+ <span
132
+ class="inline-flex shrink-0 items-center rounded-md border border-border bg-background px-1.5 py-0.5 text-xs font-medium text-muted-foreground">
133
+ {{ badge() }}
134
+ </span>
135
+ }
136
+ </div>
137
+ }
138
+
139
+ @if (subheading()) {
140
+ <p class="mt-1 truncate text-xs leading-5 text-muted-foreground">{{ subheading() }}</p>
141
+ }
142
+
143
+ <ng-content />
144
+ </div>
145
+ `,
146
+ }]
147
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subheading: [{ type: i0.Input, args: [{ isSignal: true, alias: "subheading", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
148
+ class KanbanColumnActionsComponent {
149
+ class = input('', /* @ts-ignore */
150
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
151
+ classes = computed(() => cn('inline-flex items-center gap-1', this.class()), /* @ts-ignore */
152
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanColumnActionsComponent, isStandalone: true, selector: "ui-kanban-column-actions, [ui-kanban-column-actions]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-column-actions\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
+ }
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnActionsComponent, decorators: [{
157
+ type: Component,
158
+ args: [{
159
+ selector: 'ui-kanban-column-actions, [ui-kanban-column-actions]',
160
+ changeDetection: ChangeDetectionStrategy.OnPush,
161
+ host: {
162
+ '[class]': 'classes()',
163
+ '[attr.data-slot]': '"kanban-column-actions"',
164
+ },
165
+ template: `<ng-content />`,
166
+ }]
167
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
168
+ class KanbanColumnCardsComponent {
169
+ class = input('', /* @ts-ignore */
170
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
171
+ classes = computed(() => cn('flex min-h-0 flex-1 flex-col gap-[var(--kanban-card-gap)] overflow-y-auto p-2', this.class()), /* @ts-ignore */
172
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
173
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
174
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanColumnCardsComponent, isStandalone: true, selector: "ui-kanban-column-cards", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-column-cards\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
+ }
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnCardsComponent, decorators: [{
177
+ type: Component,
178
+ args: [{
179
+ selector: 'ui-kanban-column-cards',
180
+ changeDetection: ChangeDetectionStrategy.OnPush,
181
+ host: {
182
+ '[class]': 'classes()',
183
+ '[attr.data-slot]': '"kanban-column-cards"',
184
+ },
185
+ template: `<ng-content />`,
186
+ }]
187
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
188
+ class KanbanColumnFooterComponent {
189
+ class = input('', /* @ts-ignore */
190
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
191
+ classes = computed(() => cn('flex flex-col gap-2 border-t border-border/80 px-2 py-2', this.class()), /* @ts-ignore */
192
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanColumnFooterComponent, isStandalone: true, selector: "ui-kanban-column-footer", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-column-footer\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
195
+ }
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanColumnFooterComponent, decorators: [{
197
+ type: Component,
198
+ args: [{
199
+ selector: 'ui-kanban-column-footer',
200
+ changeDetection: ChangeDetectionStrategy.OnPush,
201
+ host: {
202
+ '[class]': 'classes()',
203
+ '[attr.data-slot]': '"kanban-column-footer"',
204
+ },
205
+ template: `<ng-content />`,
206
+ }]
207
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
208
+ class KanbanCardComponent {
209
+ heading = input('', /* @ts-ignore */
210
+ ...(ngDevMode ? [{ debugName: "heading" }] : /* istanbul ignore next */ []));
211
+ selected = input(false, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
212
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
213
+ class = input('', /* @ts-ignore */
214
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
215
+ classes = computed(() => cn('flex w-full flex-col gap-3 rounded-lg border border-border bg-card p-3 text-left text-card-foreground shadow-sm transition-colors', 'hover:border-ring/60 hover:bg-accent/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background', 'disabled:pointer-events-none disabled:opacity-50', this.selected() ? 'border-ring bg-accent/40 ring-1 ring-ring' : '', this.disabled() ? 'pointer-events-none opacity-50' : '', this.class()), /* @ts-ignore */
216
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
218
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.0", type: KanbanCardComponent, isStandalone: true, selector: "ui-kanban-card, button[ui-kanban-card], a[ui-kanban-card]", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-card\"", "attr.data-selected": "selected() ? \"\" : null", "attr.aria-current": "selected() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: `
219
+ <div class="order-1">
220
+ <ng-content select="ui-kanban-card-header,[ui-kanban-card-header]" />
221
+ </div>
222
+
223
+ <div class="order-3">
224
+ <ng-content select="ui-kanban-card-footer,[ui-kanban-card-footer]" />
225
+ </div>
226
+
227
+ <div class="order-2 min-w-0">
228
+ @if (heading()) {
229
+ <p class="text-sm font-medium leading-5 text-card-foreground">{{ heading() }}</p>
230
+ }
231
+
232
+ <ng-content />
233
+ </div>
234
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
235
+ }
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardComponent, decorators: [{
237
+ type: Component,
238
+ args: [{
239
+ selector: 'ui-kanban-card, button[ui-kanban-card], a[ui-kanban-card]',
240
+ changeDetection: ChangeDetectionStrategy.OnPush,
241
+ host: {
242
+ '[class]': 'classes()',
243
+ '[attr.data-slot]': '"kanban-card"',
244
+ '[attr.data-selected]': 'selected() ? "" : null',
245
+ '[attr.aria-current]': 'selected() ? "true" : null',
246
+ '[attr.aria-disabled]': 'disabled() ? "true" : null',
247
+ '[attr.disabled]': 'disabled() ? "" : null',
248
+ },
249
+ template: `
250
+ <div class="order-1">
251
+ <ng-content select="ui-kanban-card-header,[ui-kanban-card-header]" />
252
+ </div>
253
+
254
+ <div class="order-3">
255
+ <ng-content select="ui-kanban-card-footer,[ui-kanban-card-footer]" />
256
+ </div>
257
+
258
+ <div class="order-2 min-w-0">
259
+ @if (heading()) {
260
+ <p class="text-sm font-medium leading-5 text-card-foreground">{{ heading() }}</p>
261
+ }
262
+
263
+ <ng-content />
264
+ </div>
265
+ `,
266
+ }]
267
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
268
+ class KanbanCardHeaderComponent {
269
+ class = input('', /* @ts-ignore */
270
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
271
+ classes = computed(() => cn('flex min-w-0 flex-wrap items-center gap-1.5', this.class()), /* @ts-ignore */
272
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
273
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
274
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanCardHeaderComponent, isStandalone: true, selector: "ui-kanban-card-header, [ui-kanban-card-header]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-card-header\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
275
+ }
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardHeaderComponent, decorators: [{
277
+ type: Component,
278
+ args: [{
279
+ selector: 'ui-kanban-card-header, [ui-kanban-card-header]',
280
+ changeDetection: ChangeDetectionStrategy.OnPush,
281
+ host: {
282
+ '[class]': 'classes()',
283
+ '[attr.data-slot]': '"kanban-card-header"',
284
+ },
285
+ template: `<ng-content />`,
286
+ }]
287
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
288
+ class KanbanCardFooterComponent {
289
+ class = input('', /* @ts-ignore */
290
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
291
+ classes = computed(() => cn('flex min-w-0 items-center justify-between gap-2 text-xs text-muted-foreground', this.class()), /* @ts-ignore */
292
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
293
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
294
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KanbanCardFooterComponent, isStandalone: true, selector: "ui-kanban-card-footer, [ui-kanban-card-footer]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kanban-card-footer\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
295
+ }
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KanbanCardFooterComponent, decorators: [{
297
+ type: Component,
298
+ args: [{
299
+ selector: 'ui-kanban-card-footer, [ui-kanban-card-footer]',
300
+ changeDetection: ChangeDetectionStrategy.OnPush,
301
+ host: {
302
+ '[class]': 'classes()',
303
+ '[attr.data-slot]': '"kanban-card-footer"',
304
+ },
305
+ template: `<ng-content />`,
306
+ }]
307
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
308
+
309
+ /**
310
+ * Generated bundle index. Do not edit.
311
+ */
312
+
313
+ export { KanbanCardComponent, KanbanCardFooterComponent, KanbanCardHeaderComponent, KanbanColumnActionsComponent, KanbanColumnCardsComponent, KanbanColumnComponent, KanbanColumnFooterComponent, KanbanColumnHeaderComponent, KanbanComponent };
314
+ //# sourceMappingURL=ojiepermana-angular-component-kanban.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-kanban.mjs","sources":["../../../projects/angular/component/kanban/kanban.component.ts","../../../projects/angular/component/kanban/ojiepermana-angular-component-kanban.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\nexport type KanbanColumnWidth = 'sm' | 'default' | 'lg';\n\nconst kanbanColumnWidthClasses: Record<KanbanColumnWidth, string> = {\n sm: '[--kanban-column-width:16rem]',\n default: '[--kanban-column-width:18rem]',\n lg: '[--kanban-column-width:22rem]',\n};\n\n@Component({\n selector: 'ui-kanban',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban\"',\n '[attr.data-column-width]': 'columnWidth()',\n '[attr.data-dense]': 'dense() ? \"\" : null',\n },\n template: `<ng-content />`,\n})\nexport class KanbanComponent {\n readonly columnWidth = input<KanbanColumnWidth>('default');\n readonly dense = input(false, { transform: booleanAttribute });\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'flex w-full min-w-0 gap-[var(--kanban-column-gap)] overflow-x-auto pb-3 text-sm text-foreground',\n '[--kanban-card-gap:0.75rem] [--kanban-column-gap:1rem]',\n kanbanColumnWidthClasses[this.columnWidth()],\n this.dense() ? '[--kanban-card-gap:0.5rem] [--kanban-column-gap:0.75rem]' : '',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-kanban-column',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-column\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanColumnComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'flex max-h-full min-h-0 w-[var(--kanban-column-width)] shrink-0 flex-col overflow-hidden rounded-lg border border-border bg-muted/35 text-foreground shadow-sm',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-kanban-column-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-column-header\"',\n },\n template: `\n <div class=\"order-2 inline-flex shrink-0 items-center gap-1\">\n <ng-content select=\"ui-kanban-column-actions,[ui-kanban-column-actions]\" />\n </div>\n\n <div class=\"order-1 min-w-0 flex-1\">\n @if (heading()) {\n <div class=\"flex min-w-0 items-center gap-2\">\n <h3 class=\"truncate text-sm font-semibold leading-none text-foreground\">{{ heading() }}</h3>\n @if (displayCount() !== null) {\n <span\n class=\"inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-muted px-1.5 text-xs font-medium text-muted-foreground\">\n {{ displayCount() }}\n </span>\n }\n @if (badge()) {\n <span\n class=\"inline-flex shrink-0 items-center rounded-md border border-border bg-background px-1.5 py-0.5 text-xs font-medium text-muted-foreground\">\n {{ badge() }}\n </span>\n }\n </div>\n }\n\n @if (subheading()) {\n <p class=\"mt-1 truncate text-xs leading-5 text-muted-foreground\">{{ subheading() }}</p>\n }\n\n <ng-content />\n </div>\n `,\n})\nexport class KanbanColumnHeaderComponent {\n readonly heading = input<string>('');\n readonly subheading = input<string>('');\n readonly count = input<string | number | null>(null);\n readonly badge = input<string>('');\n readonly class = input<string>('');\n\n protected readonly displayCount = computed(() => {\n const count = this.count();\n return count === null || count === undefined || count === '' ? null : count;\n });\n\n protected readonly classes = computed(() =>\n cn('flex items-start gap-3 border-b border-border/80 px-3 py-3', this.class()),\n );\n}\n\n@Component({\n selector: 'ui-kanban-column-actions, [ui-kanban-column-actions]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-column-actions\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanColumnActionsComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('inline-flex items-center gap-1', this.class()));\n}\n\n@Component({\n selector: 'ui-kanban-column-cards',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-column-cards\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanColumnCardsComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn('flex min-h-0 flex-1 flex-col gap-[var(--kanban-card-gap)] overflow-y-auto p-2', this.class()),\n );\n}\n\n@Component({\n selector: 'ui-kanban-column-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-column-footer\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanColumnFooterComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn('flex flex-col gap-2 border-t border-border/80 px-2 py-2', this.class()),\n );\n}\n\n@Component({\n selector: 'ui-kanban-card, button[ui-kanban-card], a[ui-kanban-card]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-card\"',\n '[attr.data-selected]': 'selected() ? \"\" : null',\n '[attr.aria-current]': 'selected() ? \"true\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n },\n template: `\n <div class=\"order-1\">\n <ng-content select=\"ui-kanban-card-header,[ui-kanban-card-header]\" />\n </div>\n\n <div class=\"order-3\">\n <ng-content select=\"ui-kanban-card-footer,[ui-kanban-card-footer]\" />\n </div>\n\n <div class=\"order-2 min-w-0\">\n @if (heading()) {\n <p class=\"text-sm font-medium leading-5 text-card-foreground\">{{ heading() }}</p>\n }\n\n <ng-content />\n </div>\n `,\n})\nexport class KanbanCardComponent {\n readonly heading = input<string>('');\n readonly selected = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'flex w-full flex-col gap-3 rounded-lg border border-border bg-card p-3 text-left text-card-foreground shadow-sm transition-colors',\n 'hover:border-ring/60 hover:bg-accent/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.selected() ? 'border-ring bg-accent/40 ring-1 ring-ring' : '',\n this.disabled() ? 'pointer-events-none opacity-50' : '',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-kanban-card-header, [ui-kanban-card-header]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-card-header\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanCardHeaderComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('flex min-w-0 flex-wrap items-center gap-1.5', this.class()));\n}\n\n@Component({\n selector: 'ui-kanban-card-footer, [ui-kanban-card-footer]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kanban-card-footer\"',\n },\n template: `<ng-content />`,\n})\nexport class KanbanCardFooterComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn('flex min-w-0 items-center justify-between gap-2 text-xs text-muted-foreground', this.class()),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { cn } from '@ojiepermana/angular/component/utils';
4
+
5
+ class KbdComponent {
6
+ class = input('', /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
8
+ classes = computed(() => cn([
9
+ 'inline-flex min-h-6 min-w-6 select-none items-center justify-center gap-1 whitespace-nowrap rounded-md',
10
+ 'border border-border bg-background px-1.5 font-mono text-[11px] font-medium leading-none text-foreground shadow-sm',
11
+ '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-3',
12
+ ].join(' '), this.class()), /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KbdComponent, isStandalone: true, selector: "ui-kbd, [ui-kbd]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kbd\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KbdComponent, decorators: [{
18
+ type: Component,
19
+ args: [{
20
+ selector: 'ui-kbd, [ui-kbd]',
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ host: {
23
+ '[class]': 'classes()',
24
+ '[attr.data-slot]': '"kbd"',
25
+ },
26
+ template: `<ng-content />`,
27
+ }]
28
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
29
+ class KbdGroupComponent {
30
+ class = input('', /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
32
+ classes = computed(() => cn('inline-flex flex-wrap items-center gap-1.5', this.class()), /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KbdGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: KbdGroupComponent, isStandalone: true, selector: "ui-kbd-group, [ui-kbd-group]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"kbd-group\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: KbdGroupComponent, decorators: [{
38
+ type: Component,
39
+ args: [{
40
+ selector: 'ui-kbd-group, [ui-kbd-group]',
41
+ changeDetection: ChangeDetectionStrategy.OnPush,
42
+ host: {
43
+ '[class]': 'classes()',
44
+ '[attr.data-slot]': '"kbd-group"',
45
+ },
46
+ template: `<ng-content />`,
47
+ }]
48
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
49
+
50
+ /**
51
+ * Generated bundle index. Do not edit.
52
+ */
53
+
54
+ export { KbdComponent, KbdGroupComponent };
55
+ //# sourceMappingURL=ojiepermana-angular-component-kbd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-kbd.mjs","sources":["../../../projects/angular/component/kbd/kbd.component.ts","../../../projects/angular/component/kbd/ojiepermana-angular-component-kbd.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-kbd, [ui-kbd]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kbd\"',\n },\n template: `<ng-content />`,\n})\nexport class KbdComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n [\n 'inline-flex min-h-6 min-w-6 select-none items-center justify-center gap-1 whitespace-nowrap rounded-md',\n 'border border-border bg-background px-1.5 font-mono text-[11px] font-medium leading-none text-foreground shadow-sm',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-3',\n ].join(' '),\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ui-kbd-group, [ui-kbd-group]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"kbd-group\"',\n },\n template: `<ng-content />`,\n})\nexport class KbdGroupComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn('inline-flex flex-wrap items-center gap-1.5', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,YAAY,CAAA;IACd,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA;QACE,wGAAwG;QACxG,oHAAoH;QACpH,iFAAiF;KAClF,CAAC,IAAI,CAAC,GAAG,CAAC,EACX,IAAI,CAAC,KAAK,EAAE,CACb;gFACF;uGAZU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,6RAFb,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,OAAO;AAC5B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAyBY,iBAAiB,CAAA;IACnB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,4CAA4C,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAHhG,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,+SAFlB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,kBAAkB,EAAE,aAAa;AAClC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACnCD;;AAEG;;;;"}
@@ -3,13 +3,16 @@ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/co
3
3
  import { cn } from '@ojiepermana/angular/component/utils';
4
4
 
5
5
  class LabelComponent {
6
- for = input(null, ...(ngDevMode ? [{ debugName: "for" }] : /* istanbul ignore next */ []));
7
- class = input('', ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
8
- classes = computed(() => cn('text-sm font-medium leading-none text-foreground', 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70', this.class()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.14", type: LabelComponent, isStandalone: true, selector: "ui-label, label[ui-label]", inputs: { for: { classPropertyName: "for", publicName: "for", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.for": "for() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
6
+ for = input(null, /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "for" }] : /* istanbul ignore next */ []));
8
+ class = input('', /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
10
+ classes = computed(() => cn('text-sm font-medium leading-none text-foreground', 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70', this.class()), /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.0", type: LabelComponent, isStandalone: true, selector: "ui-label, label[ui-label]", inputs: { for: { classPropertyName: "for", publicName: "for", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.for": "for() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
14
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LabelComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: LabelComponent, decorators: [{
13
16
  type: Component,
14
17
  args: [{
15
18
  selector: 'ui-label, label[ui-label]',
@@ -1 +1 @@
1
- {"version":3,"file":"ojiepermana-angular-component-label.mjs","sources":["../../../projects/angular/component/label/src/lib/label.component.ts","../../../projects/angular/component/label/ojiepermana-angular-component-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-label, label[ui-label]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.for]': 'for() || null',\n },\n template: `<ng-content />`,\n})\nexport class LabelComponent {\n readonly for = input<string | null>(null);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'text-sm font-medium leading-none text-foreground',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n this.class(),\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,cAAc,CAAA;AAChB,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,kDAAkD,EAClD,2DAA2D,EAC3D,IAAI,CAAC,KAAK,EAAE,CACb,8EACF;wGAVU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,wZAFf,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,YAAY,EAAE,eAAe;AAC9B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"ojiepermana-angular-component-label.mjs","sources":["../../../projects/angular/component/label/label.component.ts","../../../projects/angular/component/label/ojiepermana-angular-component-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular/component/utils';\n\n@Component({\n selector: 'ui-label, label[ui-label]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.for]': 'for() || null',\n },\n template: `<ng-content />`,\n})\nexport class LabelComponent {\n readonly for = input<string | null>(null);\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'text-sm font-medium leading-none text-foreground',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n this.class(),\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,cAAc,CAAA;IAChB,GAAG,GAAG,KAAK,CAAgB,IAAI;4EAAC;IAChC,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAEf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CACA,kDAAkD,EAClD,2DAA2D,EAC3D,IAAI,CAAC,KAAK,EAAE,CACb;gFACF;uGAVU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,wZAFf,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,YAAY,EAAE,eAAe;AAC9B,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACXD;;AAEG;;;;"}