@ojiepermana/angular-component 22.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/README.md +82 -0
  2. package/accordion/README.md +193 -0
  3. package/alert/README.md +180 -0
  4. package/alert-dialog/README.md +239 -0
  5. package/aspect-ratio/README.md +112 -0
  6. package/avatar/README.md +176 -0
  7. package/badge/README.md +133 -0
  8. package/breadcrumb/README.md +216 -0
  9. package/button/README.md +139 -0
  10. package/button-group/README.md +208 -0
  11. package/calendar/README.md +135 -0
  12. package/card/README.md +220 -0
  13. package/carousel/README.md +276 -0
  14. package/checkbox/README.md +149 -0
  15. package/collapsible/README.md +195 -0
  16. package/combobox/README.md +198 -0
  17. package/command/README.md +275 -0
  18. package/composer/README.md +235 -0
  19. package/context-menu/README.md +267 -0
  20. package/date-picker/README.md +179 -0
  21. package/dialog/README.md +235 -0
  22. package/drawer/README.md +145 -0
  23. package/dropdown-menu/README.md +311 -0
  24. package/editor/README.md +136 -0
  25. package/empty/README.md +183 -0
  26. package/fesm2022/ojiepermana-angular-component-accordion.mjs +186 -0
  27. package/fesm2022/ojiepermana-angular-component-accordion.mjs.map +1 -0
  28. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +276 -0
  29. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs.map +1 -0
  30. package/fesm2022/ojiepermana-angular-component-alert.mjs +99 -0
  31. package/fesm2022/ojiepermana-angular-component-alert.mjs.map +1 -0
  32. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +37 -0
  33. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs.map +1 -0
  34. package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -0
  35. package/fesm2022/ojiepermana-angular-component-avatar.mjs.map +1 -0
  36. package/fesm2022/ojiepermana-angular-component-badge.mjs +50 -0
  37. package/fesm2022/ojiepermana-angular-component-badge.mjs.map +1 -0
  38. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +200 -0
  39. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs.map +1 -0
  40. package/fesm2022/ojiepermana-angular-component-button-group.mjs +103 -0
  41. package/fesm2022/ojiepermana-angular-component-button-group.mjs.map +1 -0
  42. package/fesm2022/ojiepermana-angular-component-button.mjs +68 -0
  43. package/fesm2022/ojiepermana-angular-component-button.mjs.map +1 -0
  44. package/fesm2022/ojiepermana-angular-component-calendar.mjs +103 -0
  45. package/fesm2022/ojiepermana-angular-component-calendar.mjs.map +1 -0
  46. package/fesm2022/ojiepermana-angular-component-card.mjs +152 -0
  47. package/fesm2022/ojiepermana-angular-component-card.mjs.map +1 -0
  48. package/fesm2022/ojiepermana-angular-component-carousel.mjs +334 -0
  49. package/fesm2022/ojiepermana-angular-component-carousel.mjs.map +1 -0
  50. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +165 -0
  51. package/fesm2022/ojiepermana-angular-component-checkbox.mjs.map +1 -0
  52. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +121 -0
  53. package/fesm2022/ojiepermana-angular-component-collapsible.mjs.map +1 -0
  54. package/fesm2022/ojiepermana-angular-component-combobox.mjs +274 -0
  55. package/fesm2022/ojiepermana-angular-component-combobox.mjs.map +1 -0
  56. package/fesm2022/ojiepermana-angular-component-command.mjs +297 -0
  57. package/fesm2022/ojiepermana-angular-component-command.mjs.map +1 -0
  58. package/fesm2022/ojiepermana-angular-component-composer.mjs +352 -0
  59. package/fesm2022/ojiepermana-angular-component-composer.mjs.map +1 -0
  60. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +108 -0
  61. package/fesm2022/ojiepermana-angular-component-context-menu.mjs.map +1 -0
  62. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +186 -0
  63. package/fesm2022/ojiepermana-angular-component-date-picker.mjs.map +1 -0
  64. package/fesm2022/ojiepermana-angular-component-dialog.mjs +283 -0
  65. package/fesm2022/ojiepermana-angular-component-dialog.mjs.map +1 -0
  66. package/fesm2022/ojiepermana-angular-component-drawer.mjs +6 -0
  67. package/fesm2022/ojiepermana-angular-component-drawer.mjs.map +1 -0
  68. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +494 -0
  69. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs.map +1 -0
  70. package/fesm2022/ojiepermana-angular-component-editor.mjs +680 -0
  71. package/fesm2022/ojiepermana-angular-component-editor.mjs.map +1 -0
  72. package/fesm2022/ojiepermana-angular-component-empty.mjs +145 -0
  73. package/fesm2022/ojiepermana-angular-component-empty.mjs.map +1 -0
  74. package/fesm2022/ojiepermana-angular-component-form.mjs +364 -0
  75. package/fesm2022/ojiepermana-angular-component-form.mjs.map +1 -0
  76. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +275 -0
  77. package/fesm2022/ojiepermana-angular-component-hover-card.mjs.map +1 -0
  78. package/fesm2022/ojiepermana-angular-component-icon.mjs +86 -0
  79. package/fesm2022/ojiepermana-angular-component-icon.mjs.map +1 -0
  80. package/fesm2022/ojiepermana-angular-component-input-group.mjs +179 -0
  81. package/fesm2022/ojiepermana-angular-component-input-group.mjs.map +1 -0
  82. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +517 -0
  83. package/fesm2022/ojiepermana-angular-component-input-otp.mjs.map +1 -0
  84. package/fesm2022/ojiepermana-angular-component-input.mjs +45 -0
  85. package/fesm2022/ojiepermana-angular-component-input.mjs.map +1 -0
  86. package/fesm2022/ojiepermana-angular-component-item.mjs +264 -0
  87. package/fesm2022/ojiepermana-angular-component-item.mjs.map +1 -0
  88. package/fesm2022/ojiepermana-angular-component-kanban.mjs +314 -0
  89. package/fesm2022/ojiepermana-angular-component-kanban.mjs.map +1 -0
  90. package/fesm2022/ojiepermana-angular-component-kbd.mjs +55 -0
  91. package/fesm2022/ojiepermana-angular-component-kbd.mjs.map +1 -0
  92. package/fesm2022/ojiepermana-angular-component-label.mjs +33 -0
  93. package/fesm2022/ojiepermana-angular-component-label.mjs.map +1 -0
  94. package/fesm2022/ojiepermana-angular-component-menubar.mjs +311 -0
  95. package/fesm2022/ojiepermana-angular-component-menubar.mjs.map +1 -0
  96. package/fesm2022/ojiepermana-angular-component-native-select.mjs +67 -0
  97. package/fesm2022/ojiepermana-angular-component-native-select.mjs.map +1 -0
  98. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +408 -0
  99. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs.map +1 -0
  100. package/fesm2022/ojiepermana-angular-component-pagination.mjs +226 -0
  101. package/fesm2022/ojiepermana-angular-component-pagination.mjs.map +1 -0
  102. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +810 -0
  103. package/fesm2022/ojiepermana-angular-component-pillbox.mjs.map +1 -0
  104. package/fesm2022/ojiepermana-angular-component-popover.mjs +145 -0
  105. package/fesm2022/ojiepermana-angular-component-popover.mjs.map +1 -0
  106. package/fesm2022/ojiepermana-angular-component-progress.mjs +60 -0
  107. package/fesm2022/ojiepermana-angular-component-progress.mjs.map +1 -0
  108. package/fesm2022/ojiepermana-angular-component-radio.mjs +173 -0
  109. package/fesm2022/ojiepermana-angular-component-radio.mjs.map +1 -0
  110. package/fesm2022/ojiepermana-angular-component-resizable.mjs +478 -0
  111. package/fesm2022/ojiepermana-angular-component-resizable.mjs.map +1 -0
  112. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +54 -0
  113. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs.map +1 -0
  114. package/fesm2022/ojiepermana-angular-component-select.mjs +297 -0
  115. package/fesm2022/ojiepermana-angular-component-select.mjs.map +1 -0
  116. package/fesm2022/ojiepermana-angular-component-separator.mjs +37 -0
  117. package/fesm2022/ojiepermana-angular-component-separator.mjs.map +1 -0
  118. package/fesm2022/ojiepermana-angular-component-sheet.mjs +297 -0
  119. package/fesm2022/ojiepermana-angular-component-sheet.mjs.map +1 -0
  120. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +31 -0
  121. package/fesm2022/ojiepermana-angular-component-skeleton.mjs.map +1 -0
  122. package/fesm2022/ojiepermana-angular-component-slider.mjs +423 -0
  123. package/fesm2022/ojiepermana-angular-component-slider.mjs.map +1 -0
  124. package/fesm2022/ojiepermana-angular-component-spinner.mjs +60 -0
  125. package/fesm2022/ojiepermana-angular-component-spinner.mjs.map +1 -0
  126. package/fesm2022/ojiepermana-angular-component-switch.mjs +140 -0
  127. package/fesm2022/ojiepermana-angular-component-switch.mjs.map +1 -0
  128. package/fesm2022/ojiepermana-angular-component-table.mjs +155 -0
  129. package/fesm2022/ojiepermana-angular-component-table.mjs.map +1 -0
  130. package/fesm2022/ojiepermana-angular-component-tabs.mjs +271 -0
  131. package/fesm2022/ojiepermana-angular-component-tabs.mjs.map +1 -0
  132. package/fesm2022/ojiepermana-angular-component-textarea.mjs +39 -0
  133. package/fesm2022/ojiepermana-angular-component-textarea.mjs.map +1 -0
  134. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -0
  135. package/fesm2022/ojiepermana-angular-component-timeline.mjs.map +1 -0
  136. package/fesm2022/ojiepermana-angular-component-toast.mjs +161 -0
  137. package/fesm2022/ojiepermana-angular-component-toast.mjs.map +1 -0
  138. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +289 -0
  139. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs.map +1 -0
  140. package/fesm2022/ojiepermana-angular-component-toggle.mjs +82 -0
  141. package/fesm2022/ojiepermana-angular-component-toggle.mjs.map +1 -0
  142. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +410 -0
  143. package/fesm2022/ojiepermana-angular-component-tooltip.mjs.map +1 -0
  144. package/fesm2022/ojiepermana-angular-component-utils.mjs +81 -0
  145. package/fesm2022/ojiepermana-angular-component-utils.mjs.map +1 -0
  146. package/fesm2022/ojiepermana-angular-component.mjs +11 -0
  147. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -0
  148. package/form/README.md +210 -0
  149. package/hover-card/README.md +142 -0
  150. package/icon/README.md +25 -0
  151. package/input/README.md +159 -0
  152. package/input-group/README.md +237 -0
  153. package/input-otp/README.md +278 -0
  154. package/item/README.md +247 -0
  155. package/kanban/README.md +81 -0
  156. package/kbd/README.md +139 -0
  157. package/label/README.md +135 -0
  158. package/menubar/README.md +269 -0
  159. package/native-select/README.md +176 -0
  160. package/navigation-menu/README.md +160 -0
  161. package/package.json +291 -0
  162. package/pagination/README.md +144 -0
  163. package/pillbox/README.md +67 -0
  164. package/popover/README.md +43 -0
  165. package/progress/README.md +160 -0
  166. package/radio/README.md +209 -0
  167. package/resizable/README.md +168 -0
  168. package/scroll-area/README.md +143 -0
  169. package/select/README.md +174 -0
  170. package/separator/README.md +170 -0
  171. package/sheet/README.md +183 -0
  172. package/skeleton/README.md +158 -0
  173. package/slider/README.md +207 -0
  174. package/spinner/README.md +160 -0
  175. package/switch/README.md +166 -0
  176. package/table/README.md +291 -0
  177. package/tabs/README.md +214 -0
  178. package/textarea/README.md +153 -0
  179. package/timeline/README.md +94 -0
  180. package/toast/README.md +321 -0
  181. package/toggle/README.md +131 -0
  182. package/toggle-group/README.md +206 -0
  183. package/tooltip/README.md +207 -0
  184. package/types/ojiepermana-angular-component-accordion.d.ts +51 -0
  185. package/types/ojiepermana-angular-component-alert-dialog.d.ts +93 -0
  186. package/types/ojiepermana-angular-component-alert.d.ts +37 -0
  187. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -0
  188. package/types/ojiepermana-angular-component-avatar.d.ts +51 -0
  189. package/types/ojiepermana-angular-component-badge.d.ts +19 -0
  190. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -0
  191. package/types/ojiepermana-angular-component-button-group.d.ts +26 -0
  192. package/types/ojiepermana-angular-component-button.d.ts +22 -0
  193. package/types/ojiepermana-angular-component-calendar.d.ts +39 -0
  194. package/types/ojiepermana-angular-component-card.d.ts +60 -0
  195. package/types/ojiepermana-angular-component-carousel.d.ts +86 -0
  196. package/types/ojiepermana-angular-component-checkbox.d.ts +42 -0
  197. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -0
  198. package/types/ojiepermana-angular-component-combobox.d.ts +53 -0
  199. package/types/ojiepermana-angular-component-command.d.ts +102 -0
  200. package/types/ojiepermana-angular-component-composer.d.ts +90 -0
  201. package/types/ojiepermana-angular-component-context-menu.d.ts +36 -0
  202. package/types/ojiepermana-angular-component-date-picker.d.ts +48 -0
  203. package/types/ojiepermana-angular-component-dialog.d.ts +87 -0
  204. package/types/ojiepermana-angular-component-drawer.d.ts +1 -0
  205. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +140 -0
  206. package/types/ojiepermana-angular-component-editor.d.ts +126 -0
  207. package/types/ojiepermana-angular-component-empty.d.ts +50 -0
  208. package/types/ojiepermana-angular-component-form.d.ts +140 -0
  209. package/types/ojiepermana-angular-component-hover-card.d.ts +75 -0
  210. package/types/ojiepermana-angular-component-icon.d.ts +31 -0
  211. package/types/ojiepermana-angular-component-input-group.d.ts +51 -0
  212. package/types/ojiepermana-angular-component-input-otp.d.ts +142 -0
  213. package/types/ojiepermana-angular-component-input.d.ts +16 -0
  214. package/types/ojiepermana-angular-component-item.d.ts +88 -0
  215. package/types/ojiepermana-angular-component-kanban.d.ts +70 -0
  216. package/types/ojiepermana-angular-component-kbd.d.ts +16 -0
  217. package/types/ojiepermana-angular-component-label.d.ts +11 -0
  218. package/types/ojiepermana-angular-component-menubar.d.ts +69 -0
  219. package/types/ojiepermana-angular-component-native-select.d.ts +26 -0
  220. package/types/ojiepermana-angular-component-navigation-menu.d.ts +98 -0
  221. package/types/ojiepermana-angular-component-pagination.d.ts +33 -0
  222. package/types/ojiepermana-angular-component-pillbox.d.ts +156 -0
  223. package/types/ojiepermana-angular-component-popover.d.ts +50 -0
  224. package/types/ojiepermana-angular-component-progress.d.ts +17 -0
  225. package/types/ojiepermana-angular-component-radio.d.ts +57 -0
  226. package/types/ojiepermana-angular-component-resizable.d.ts +99 -0
  227. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -0
  228. package/types/ojiepermana-angular-component-select.d.ts +56 -0
  229. package/types/ojiepermana-angular-component-separator.d.ts +14 -0
  230. package/types/ojiepermana-angular-component-sheet.d.ts +78 -0
  231. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -0
  232. package/types/ojiepermana-angular-component-slider.d.ts +74 -0
  233. package/types/ojiepermana-angular-component-spinner.d.ts +13 -0
  234. package/types/ojiepermana-angular-component-switch.d.ts +44 -0
  235. package/types/ojiepermana-angular-component-table.d.ts +52 -0
  236. package/types/ojiepermana-angular-component-tabs.d.ts +92 -0
  237. package/types/ojiepermana-angular-component-textarea.d.ts +12 -0
  238. package/types/ojiepermana-angular-component-timeline.d.ts +63 -0
  239. package/types/ojiepermana-angular-component-toast.d.ts +51 -0
  240. package/types/ojiepermana-angular-component-toggle-group.d.ts +89 -0
  241. package/types/ojiepermana-angular-component-toggle.d.ts +25 -0
  242. package/types/ojiepermana-angular-component-tooltip.d.ts +101 -0
  243. package/types/ojiepermana-angular-component-utils.d.ts +30 -0
  244. package/types/ojiepermana-angular-component.d.ts +2 -0
@@ -0,0 +1,139 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component, signal } from '@angular/core';
3
+ import { cn } from '@ojiepermana/angular-component/utils';
4
+
5
+ const avatarSizeClasses = {
6
+ default: 'h-10 w-10',
7
+ sm: 'h-8 w-8',
8
+ lg: 'h-12 w-12',
9
+ };
10
+ class AvatarComponent {
11
+ size = input('default', /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
13
+ class = input('', /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
15
+ classes = computed(() => cn('relative flex shrink-0 overflow-hidden rounded-full', avatarSizeClasses[this.size()], this.class()), /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: AvatarComponent, isStandalone: true, selector: "Avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-size": "size()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarComponent, decorators: [{
21
+ type: Component,
22
+ args: [{
23
+ selector: 'Avatar',
24
+ changeDetection: ChangeDetectionStrategy.OnPush,
25
+ host: {
26
+ '[class]': 'classes()',
27
+ '[attr.data-size]': 'size()',
28
+ },
29
+ template: `<ng-content />`,
30
+ }]
31
+ }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
32
+ class AvatarImageComponent {
33
+ src = input.required(/* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
35
+ alt = input('', /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
37
+ class = input('', /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
39
+ failed = signal(false, /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "failed" }] : /* istanbul ignore next */ []));
41
+ classes = computed(() => cn('h-full w-full object-cover', this.class()), /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: AvatarImageComponent, isStandalone: true, selector: "AvatarImage", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: true, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "absolute inset-0 z-10 block" }, ngImport: i0, template: `
45
+ @if (!failed()) {
46
+ <img [src]="src()" [alt]="alt()" [class]="classes()" (error)="failed.set(true)" />
47
+ }
48
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarImageComponent, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ selector: 'AvatarImage',
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ host: {
56
+ class: 'absolute inset-0 z-10 block',
57
+ },
58
+ template: `
59
+ @if (!failed()) {
60
+ <img [src]="src()" [alt]="alt()" [class]="classes()" (error)="failed.set(true)" />
61
+ }
62
+ `,
63
+ }]
64
+ }], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: true }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
65
+ class AvatarFallbackComponent {
66
+ class = input('', /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
68
+ classes = computed(() => cn('absolute inset-0 z-0 flex items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground', this.class()), /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarFallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: AvatarFallbackComponent, isStandalone: true, selector: "AvatarFallback", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarFallbackComponent, decorators: [{
74
+ type: Component,
75
+ args: [{
76
+ selector: 'AvatarFallback',
77
+ changeDetection: ChangeDetectionStrategy.OnPush,
78
+ host: { '[class]': 'classes()' },
79
+ template: `<ng-content />`,
80
+ }]
81
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
82
+ class AvatarBadgeComponent {
83
+ class = input('', /* @ts-ignore */
84
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
85
+ classes = computed(() => cn('absolute bottom-0 right-0 z-10 flex size-4 translate-x-1/4 translate-y-1/4 items-center justify-center rounded-full border-2 border-background bg-primary text-2xs font-medium leading-none text-primary-foreground shadow-sm [&>*]:pointer-events-none [&>*]:size-2.5 [&>*]:shrink-0', this.class()), /* @ts-ignore */
86
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: AvatarBadgeComponent, isStandalone: true, selector: "AvatarBadge", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarBadgeComponent, decorators: [{
91
+ type: Component,
92
+ args: [{
93
+ selector: 'AvatarBadge',
94
+ changeDetection: ChangeDetectionStrategy.OnPush,
95
+ host: { '[class]': 'classes()' },
96
+ template: `<ng-content />`,
97
+ }]
98
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
99
+ class AvatarGroupComponent {
100
+ class = input('', /* @ts-ignore */
101
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
102
+ classes = computed(() => cn('inline-flex items-center [&>*]:ring-2 [&>*]:ring-background [&>*:not(:first-child)]:-ml-3', this.class()), /* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: AvatarGroupComponent, isStandalone: true, selector: "AvatarGroup", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarGroupComponent, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'AvatarGroup',
111
+ changeDetection: ChangeDetectionStrategy.OnPush,
112
+ host: { '[class]': 'classes()' },
113
+ template: `<ng-content />`,
114
+ }]
115
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
116
+ class AvatarGroupCountComponent {
117
+ class = input('', /* @ts-ignore */
118
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
119
+ classes = computed(() => cn('flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground', this.class()), /* @ts-ignore */
120
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarGroupCountComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: AvatarGroupCountComponent, isStandalone: true, selector: "AvatarGroupCount", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: AvatarGroupCountComponent, decorators: [{
125
+ type: Component,
126
+ args: [{
127
+ selector: 'AvatarGroupCount',
128
+ changeDetection: ChangeDetectionStrategy.OnPush,
129
+ host: { '[class]': 'classes()' },
130
+ template: `<ng-content />`,
131
+ }]
132
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
133
+
134
+ /**
135
+ * Generated bundle index. Do not edit.
136
+ */
137
+
138
+ export { AvatarBadgeComponent, AvatarComponent, AvatarFallbackComponent, AvatarGroupComponent, AvatarGroupCountComponent, AvatarImageComponent };
139
+ //# sourceMappingURL=ojiepermana-angular-component-avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-avatar.mjs","sources":["../../../library/component/avatar/avatar.component.ts","../../../library/component/avatar/ojiepermana-angular-component-avatar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { cn } from '@ojiepermana/angular-component/utils';\n\nconst avatarSizeClasses = {\n default: 'h-10 w-10',\n sm: 'h-8 w-8',\n lg: 'h-12 w-12',\n} as const;\n\nexport type AvatarSize = keyof typeof avatarSizeClasses;\n\n@Component({\n selector: 'Avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n template: `<ng-content />`,\n})\nexport class AvatarComponent {\n readonly size = input<AvatarSize>('default');\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('relative flex shrink-0 overflow-hidden rounded-full', avatarSizeClasses[this.size()], this.class()),\n );\n}\n\n@Component({\n selector: 'AvatarImage',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'absolute inset-0 z-10 block',\n },\n template: `\n @if (!failed()) {\n <img [src]=\"src()\" [alt]=\"alt()\" [class]=\"classes()\" (error)=\"failed.set(true)\" />\n }\n `,\n})\nexport class AvatarImageComponent {\n readonly src = input.required<string>();\n readonly alt = input<string>('');\n readonly class = input<string>('');\n\n protected readonly failed = signal(false);\n protected readonly classes = computed(() => cn('h-full w-full object-cover', this.class()));\n}\n\n@Component({\n selector: 'AvatarFallback',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarFallbackComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'absolute inset-0 z-0 flex items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'AvatarBadge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarBadgeComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'absolute bottom-0 right-0 z-10 flex size-4 translate-x-1/4 translate-y-1/4 items-center justify-center rounded-full border-2 border-background bg-primary text-2xs font-medium leading-none text-primary-foreground shadow-sm [&>*]:pointer-events-none [&>*]:size-2.5 [&>*]:shrink-0',\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'AvatarGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarGroupComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('inline-flex items-center [&>*]:ring-2 [&>*]:ring-background [&>*:not(:first-child)]:-ml-3', this.class()),\n );\n}\n\n@Component({\n selector: 'AvatarGroupCount',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class AvatarGroupCountComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn(\n 'flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground',\n this.class(),\n ),\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,50 @@
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
+ import { cva } from 'class-variance-authority';
5
+
6
+ const badgeVariants = cva([
7
+ 'inline-flex items-center gap-1 rounded-full border border-border px-2.5 py-0.5',
8
+ 'text-xs font-semibold transition-colors',
9
+ '[&>svg]:size-3 [&>svg]:shrink-0',
10
+ 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
11
+ ].join(' '), {
12
+ variants: {
13
+ variant: {
14
+ default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
15
+ secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
16
+ destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
17
+ outline: 'bg-transparent text-foreground',
18
+ ghost: 'border-transparent bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',
19
+ link: 'border-transparent bg-transparent text-foreground underline-offset-4 hover:underline',
20
+ },
21
+ },
22
+ defaultVariants: { variant: 'default' },
23
+ });
24
+
25
+ class BadgeComponent {
26
+ variant = input('default', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
28
+ class = input('', /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
30
+ classes = computed(() => cn(badgeVariants({ variant: this.variant() }), this.class()), /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BadgeComponent, isStandalone: true, selector: "Badge, [Badge]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BadgeComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'Badge, [Badge]',
39
+ changeDetection: ChangeDetectionStrategy.OnPush,
40
+ host: { '[class]': 'classes()' },
41
+ template: `<ng-content />`,
42
+ }]
43
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { BadgeComponent, badgeVariants };
50
+ //# sourceMappingURL=ojiepermana-angular-component-badge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-badge.mjs","sources":["../../../library/component/badge/badge.variants.ts","../../../library/component/badge/badge.component.ts","../../../library/component/badge/ojiepermana-angular-component-badge.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n [\n 'inline-flex items-center gap-1 rounded-full border border-border px-2.5 py-0.5',\n 'text-xs font-semibold transition-colors',\n '[&>svg]:size-3 [&>svg]:shrink-0',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'bg-transparent text-foreground',\n ghost: 'border-transparent bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground',\n link: 'border-transparent bg-transparent text-foreground underline-offset-4 hover:underline',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n\nexport type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular-component/utils';\nimport { badgeVariants, type BadgeVariant } from './badge.variants';\n\n@Component({\n selector: 'Badge, [Badge]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BadgeComponent {\n readonly variant = input<BadgeVariant>('default');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() => cn(badgeVariants({ variant: this.variant() }), this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,GAAG,CAC9B;IACE,gFAAgF;IAChF,yCAAyC;IACzC,iCAAiC;IACjC,qEAAqE;AACtE,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EACX;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,2EAA2E;AACpF,YAAA,SAAS,EAAE,iFAAiF;AAC5F,YAAA,WAAW,EAAE,uFAAuF;AACpG,YAAA,OAAO,EAAE,gCAAgC;AACzC,YAAA,KAAK,EAAE,gGAAgG;AACvG,YAAA,IAAI,EAAE,sFAAsF;AAC7F,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AACxC,CAAA;;MCXU,cAAc,CAAA;IAChB,OAAO,GAAG,KAAK,CAAe,SAAS;gFAAC;IACxC,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;IAEf,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAJ9F,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,4XAFf,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -0,0 +1,200 @@
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 BreadcrumbComponent {
6
+ class = input('', /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
8
+ classes = computed(() => cn('block', this.class()), /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbComponent, isStandalone: true, selector: "Breadcrumb, nav[Breadcrumb]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.aria-label": "\"breadcrumb\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
14
+ type: Component,
15
+ args: [{
16
+ selector: 'Breadcrumb, nav[Breadcrumb]',
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ host: {
19
+ '[class]': 'classes()',
20
+ '[attr.aria-label]': '"breadcrumb"',
21
+ },
22
+ template: `<ng-content />`,
23
+ }]
24
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
25
+ class BreadcrumbListComponent {
26
+ class = input('', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
28
+ classes = computed(() => cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class()), /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbListComponent, isStandalone: true, selector: "ol[BreadcrumbList]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbListComponent, decorators: [{
34
+ type: Component,
35
+ args: [{
36
+ selector: 'ol[BreadcrumbList]',
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ host: { '[class]': 'classes()' },
39
+ template: `<ng-content />`,
40
+ }]
41
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
42
+ class BreadcrumbItemComponent {
43
+ class = input('', /* @ts-ignore */
44
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
45
+ classes = computed(() => cn('inline-flex items-center gap-1.5', this.class()), /* @ts-ignore */
46
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbItemComponent, isStandalone: true, selector: "li[BreadcrumbItem]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ selector: 'li[BreadcrumbItem]',
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ host: { '[class]': 'classes()' },
56
+ template: `<ng-content />`,
57
+ }]
58
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
59
+ class BreadcrumbLinkComponent {
60
+ class = input('', /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
62
+ classes = computed(() => cn('transition-colors hover:text-foreground', this.class()), /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbLinkComponent, isStandalone: true, selector: "a[BreadcrumbLink]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbLinkComponent, decorators: [{
68
+ type: Component,
69
+ args: [{
70
+ selector: 'a[BreadcrumbLink]',
71
+ changeDetection: ChangeDetectionStrategy.OnPush,
72
+ host: { '[class]': 'classes()' },
73
+ template: `<ng-content />`,
74
+ }]
75
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
76
+ class BreadcrumbPageComponent {
77
+ class = input('', /* @ts-ignore */
78
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
79
+ classes = computed(() => cn('font-normal text-foreground', this.class()), /* @ts-ignore */
80
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbPageComponent, isStandalone: true, selector: "span[BreadcrumbPage]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "link", "aria-disabled": "true", "aria-current": "page" }, properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbPageComponent, decorators: [{
85
+ type: Component,
86
+ args: [{
87
+ selector: 'span[BreadcrumbPage]',
88
+ changeDetection: ChangeDetectionStrategy.OnPush,
89
+ host: {
90
+ '[class]': 'classes()',
91
+ role: 'link',
92
+ 'aria-disabled': 'true',
93
+ 'aria-current': 'page',
94
+ },
95
+ template: `<ng-content />`,
96
+ }]
97
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
98
+ class BreadcrumbSeparatorComponent {
99
+ class = input('', /* @ts-ignore */
100
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
101
+ classes = computed(() => cn('[&>svg]:size-3.5', this.class()), /* @ts-ignore */
102
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbSeparatorComponent, isStandalone: true, selector: "li[BreadcrumbSeparator]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation", "aria-hidden": "true" }, properties: { "class": "classes()" } }, ngImport: i0, template: `
105
+ <ng-content>
106
+ <svg
107
+ class="h-3.5 w-3.5"
108
+ viewBox="0 0 24 24"
109
+ fill="none"
110
+ stroke="currentColor"
111
+ stroke-width="2"
112
+ stroke-linecap="round"
113
+ stroke-linejoin="round">
114
+ <polyline points="9 18 15 12 9 6" />
115
+ </svg>
116
+ </ng-content>
117
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbSeparatorComponent, decorators: [{
120
+ type: Component,
121
+ args: [{
122
+ selector: 'li[BreadcrumbSeparator]',
123
+ changeDetection: ChangeDetectionStrategy.OnPush,
124
+ host: {
125
+ '[class]': 'classes()',
126
+ role: 'presentation',
127
+ 'aria-hidden': 'true',
128
+ },
129
+ template: `
130
+ <ng-content>
131
+ <svg
132
+ class="h-3.5 w-3.5"
133
+ viewBox="0 0 24 24"
134
+ fill="none"
135
+ stroke="currentColor"
136
+ stroke-width="2"
137
+ stroke-linecap="round"
138
+ stroke-linejoin="round">
139
+ <polyline points="9 18 15 12 9 6" />
140
+ </svg>
141
+ </ng-content>
142
+ `,
143
+ }]
144
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
145
+ class BreadcrumbEllipsisComponent {
146
+ class = input('', /* @ts-ignore */
147
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
148
+ classes = computed(() => cn('relative flex h-9 w-9 items-center justify-center', this.class()), /* @ts-ignore */
149
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbEllipsisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: BreadcrumbEllipsisComponent, isStandalone: true, selector: "span[BreadcrumbEllipsis]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation", "aria-hidden": "true" }, properties: { "class": "classes()" } }, ngImport: i0, template: `
152
+ <svg
153
+ class="h-4 w-4"
154
+ viewBox="0 0 24 24"
155
+ fill="none"
156
+ stroke="currentColor"
157
+ stroke-width="2"
158
+ stroke-linecap="round"
159
+ stroke-linejoin="round">
160
+ <circle cx="12" cy="12" r="1" />
161
+ <circle cx="19" cy="12" r="1" />
162
+ <circle cx="5" cy="12" r="1" />
163
+ </svg>
164
+ <span class="sr-only">More</span>
165
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: BreadcrumbEllipsisComponent, decorators: [{
168
+ type: Component,
169
+ args: [{
170
+ selector: 'span[BreadcrumbEllipsis]',
171
+ changeDetection: ChangeDetectionStrategy.OnPush,
172
+ host: {
173
+ '[class]': 'classes()',
174
+ role: 'presentation',
175
+ 'aria-hidden': 'true',
176
+ },
177
+ template: `
178
+ <svg
179
+ class="h-4 w-4"
180
+ viewBox="0 0 24 24"
181
+ fill="none"
182
+ stroke="currentColor"
183
+ stroke-width="2"
184
+ stroke-linecap="round"
185
+ stroke-linejoin="round">
186
+ <circle cx="12" cy="12" r="1" />
187
+ <circle cx="19" cy="12" r="1" />
188
+ <circle cx="5" cy="12" r="1" />
189
+ </svg>
190
+ <span class="sr-only">More</span>
191
+ `,
192
+ }]
193
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
194
+
195
+ /**
196
+ * Generated bundle index. Do not edit.
197
+ */
198
+
199
+ export { BreadcrumbComponent, BreadcrumbEllipsisComponent, BreadcrumbItemComponent, BreadcrumbLinkComponent, BreadcrumbListComponent, BreadcrumbPageComponent, BreadcrumbSeparatorComponent };
200
+ //# sourceMappingURL=ojiepermana-angular-component-breadcrumb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-breadcrumb.mjs","sources":["../../../library/component/breadcrumb/breadcrumb.component.ts","../../../library/component/breadcrumb/ojiepermana-angular-component-breadcrumb.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular-component/utils';\n\n@Component({\n selector: 'Breadcrumb, nav[Breadcrumb]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.aria-label]': '\"breadcrumb\"',\n },\n template: `<ng-content />`,\n})\nexport class BreadcrumbComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('block', this.class()));\n}\n\n@Component({\n selector: 'ol[BreadcrumbList]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbListComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() =>\n cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class()),\n );\n}\n\n@Component({\n selector: 'li[BreadcrumbItem]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbItemComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('inline-flex items-center gap-1.5', this.class()));\n}\n\n@Component({\n selector: 'a[BreadcrumbLink]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'classes()' },\n template: `<ng-content />`,\n})\nexport class BreadcrumbLinkComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('transition-colors hover:text-foreground', this.class()));\n}\n\n@Component({\n selector: 'span[BreadcrumbPage]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'link',\n 'aria-disabled': 'true',\n 'aria-current': 'page',\n },\n template: `<ng-content />`,\n})\nexport class BreadcrumbPageComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('font-normal text-foreground', this.class()));\n}\n\n@Component({\n selector: 'li[BreadcrumbSeparator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'presentation',\n 'aria-hidden': 'true',\n },\n template: `\n <ng-content>\n <svg\n class=\"h-3.5 w-3.5\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </ng-content>\n `,\n})\nexport class BreadcrumbSeparatorComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('[&>svg]:size-3.5', this.class()));\n}\n\n@Component({\n selector: 'span[BreadcrumbEllipsis]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n role: 'presentation',\n 'aria-hidden': 'true',\n },\n template: `\n <svg\n class=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span class=\"sr-only\">More</span>\n `,\n})\nexport class BreadcrumbEllipsisComponent {\n readonly class = input<string>('');\n protected readonly classes = computed(() => cn('relative flex h-9 w-9 items-center justify-center', this.class()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,mBAAmB,CAAA;IACrB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAF3D,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,gTAFpB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,mBAAmB,EAAE,cAAc;AACpC,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAYY,uBAAuB,CAAA;IACzB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,EAAE,CAAC,0FAA0F,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAC7G;uGAJU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,kQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAcY,uBAAuB,CAAA;IACzB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAFtF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,kQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAYY,uBAAuB,CAAA;IACzB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,yCAAyC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAF7F,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,iQAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;AAChC,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MAiBY,uBAAuB,CAAA;IACzB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAFjF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,qVAFxB,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,cAAc,EAAE,MAAM;AACvB,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;AAC3B,iBAAA;;MA6BY,4BAA4B,CAAA;IAC9B,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAFtE,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAf7B;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAvBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;oBACnC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACF,iBAAA;;MA8BY,2BAA2B,CAAA;IAC7B,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AACf,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,mDAAmD,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;uGAFvG,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhB5B;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAxBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA;;;ACvHD;;AAEG;;;;"}
@@ -0,0 +1,103 @@
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
+ const BUTTON_GROUP_BASE = [
6
+ 'inline-flex w-fit items-stretch',
7
+ 'has-[>[data-slot=button-group]]:gap-2',
8
+ '[&>*]:focus-visible:relative [&>*]:focus-visible:z-10',
9
+ '[&>input]:flex-1 [&>textarea]:flex-1',
10
+ '[&>InputGroup]:min-w-0 [&>InputGroup]:flex-1',
11
+ ].join(' ');
12
+ const buttonGroupOrientationClasses = {
13
+ horizontal: [
14
+ '[&>*:not(:first-child)]:rounded-s-none',
15
+ '[&>*:not(:first-child)]:[border-inline-start-width:0]',
16
+ '[&>*:not(:last-child)]:rounded-e-none',
17
+ ].join(' '),
18
+ vertical: [
19
+ 'flex-col',
20
+ '[&>*:not(:first-child)]:rounded-t-none',
21
+ '[&>*:not(:first-child)]:border-t-0',
22
+ '[&>*:not(:last-child)]:rounded-b-none',
23
+ ].join(' '),
24
+ };
25
+ class ButtonGroupComponent {
26
+ orientation = input('horizontal', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
28
+ class = input('', /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
30
+ classes = computed(() => cn(BUTTON_GROUP_BASE, buttonGroupOrientationClasses[this.orientation()], this.class()), /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: ButtonGroupComponent, isStandalone: true, selector: "ButtonGroup", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "class": "classes()", "attr.data-orientation": "orientation()", "attr.data-slot": "\"button-group\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'ButtonGroup',
39
+ changeDetection: ChangeDetectionStrategy.OnPush,
40
+ host: {
41
+ '[class]': 'classes()',
42
+ '[attr.data-orientation]': 'orientation()',
43
+ '[attr.data-slot]': '"button-group"',
44
+ role: 'group',
45
+ },
46
+ template: `<ng-content />`,
47
+ }]
48
+ }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
49
+ class ButtonGroupTextComponent {
50
+ class = input('', /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
52
+ classes = computed(() => cn([
53
+ 'flex items-center gap-2 whitespace-nowrap rounded-md border border-border bg-muted px-4 text-sm font-medium shadow-sm',
54
+ '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',
55
+ ].join(' '), this.class()), /* @ts-ignore */
56
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: ButtonGroupTextComponent, isStandalone: true, selector: "ButtonGroupText", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"button-group-text\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupTextComponent, decorators: [{
61
+ type: Component,
62
+ args: [{
63
+ selector: 'ButtonGroupText',
64
+ changeDetection: ChangeDetectionStrategy.OnPush,
65
+ host: {
66
+ '[class]': 'classes()',
67
+ '[attr.data-slot]': '"button-group-text"',
68
+ },
69
+ template: `<ng-content />`,
70
+ }]
71
+ }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
72
+ class ButtonGroupSeparatorComponent {
73
+ orientation = input('vertical', /* @ts-ignore */
74
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
75
+ class = input('', /* @ts-ignore */
76
+ ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
77
+ classes = computed(() => cn('relative shrink-0 bg-border', this.orientation() === 'horizontal' ? 'h-px w-full self-auto' : 'h-auto w-px self-stretch', this.class()), /* @ts-ignore */
78
+ ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: ButtonGroupSeparatorComponent, isStandalone: true, selector: "ButtonGroupSeparator", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "class": "classes()", "attr.aria-orientation": "orientation()", "attr.data-orientation": "orientation()", "attr.data-slot": "\"button-group-separator\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ButtonGroupSeparatorComponent, decorators: [{
83
+ type: Component,
84
+ args: [{
85
+ selector: 'ButtonGroupSeparator',
86
+ changeDetection: ChangeDetectionStrategy.OnPush,
87
+ host: {
88
+ '[class]': 'classes()',
89
+ '[attr.aria-orientation]': 'orientation()',
90
+ '[attr.data-orientation]': 'orientation()',
91
+ '[attr.data-slot]': '"button-group-separator"',
92
+ role: 'separator',
93
+ },
94
+ template: '',
95
+ }]
96
+ }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
97
+
98
+ /**
99
+ * Generated bundle index. Do not edit.
100
+ */
101
+
102
+ export { ButtonGroupComponent, ButtonGroupSeparatorComponent, ButtonGroupTextComponent };
103
+ //# sourceMappingURL=ojiepermana-angular-component-button-group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ojiepermana-angular-component-button-group.mjs","sources":["../../../library/component/button-group/button-group.component.ts","../../../library/component/button-group/ojiepermana-angular-component-button-group.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@ojiepermana/angular-component/utils';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\n\nconst BUTTON_GROUP_BASE = [\n 'inline-flex w-fit items-stretch',\n 'has-[>[data-slot=button-group]]:gap-2',\n '[&>*]:focus-visible:relative [&>*]:focus-visible:z-10',\n '[&>input]:flex-1 [&>textarea]:flex-1',\n '[&>InputGroup]:min-w-0 [&>InputGroup]:flex-1',\n].join(' ');\n\nconst buttonGroupOrientationClasses: Record<ButtonGroupOrientation, string> = {\n horizontal: [\n '[&>*:not(:first-child)]:rounded-s-none',\n '[&>*:not(:first-child)]:[border-inline-start-width:0]',\n '[&>*:not(:last-child)]:rounded-e-none',\n ].join(' '),\n vertical: [\n 'flex-col',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>*:not(:first-child)]:border-t-0',\n '[&>*:not(:last-child)]:rounded-b-none',\n ].join(' '),\n};\n\n@Component({\n selector: 'ButtonGroup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-slot]': '\"button-group\"',\n role: 'group',\n },\n template: `<ng-content />`,\n})\nexport class ButtonGroupComponent {\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(BUTTON_GROUP_BASE, buttonGroupOrientationClasses[this.orientation()], this.class()),\n );\n}\n\n@Component({\n selector: 'ButtonGroupText',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"button-group-text\"',\n },\n template: `<ng-content />`,\n})\nexport class ButtonGroupTextComponent {\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n [\n 'flex items-center gap-2 whitespace-nowrap rounded-md border border-border bg-muted px-4 text-sm font-medium shadow-sm',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',\n ].join(' '),\n this.class(),\n ),\n );\n}\n\n@Component({\n selector: 'ButtonGroupSeparator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-slot]': '\"button-group-separator\"',\n role: 'separator',\n },\n template: '',\n})\nexport class ButtonGroupSeparatorComponent {\n readonly orientation = input<ButtonGroupOrientation>('vertical');\n readonly class = input<string>('');\n\n protected readonly classes = computed(() =>\n cn(\n 'relative shrink-0 bg-border',\n this.orientation() === 'horizontal' ? 'h-px w-full self-auto' : 'h-auto w-px self-stretch',\n this.class(),\n ),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}