pdm-ui-kit 0.1.4 → 0.1.6

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 (402) hide show
  1. package/esm2020/lib/components/accordion/accordion.component.mjs +42 -0
  2. package/esm2020/lib/components/alert/alert.component.mjs +35 -0
  3. package/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +69 -0
  4. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/aspect-ratio/aspect-ratio.component.mjs +4 -4
  5. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/avatar/avatar.component.mjs +5 -5
  6. package/esm2020/lib/components/badge/badge.component.mjs +23 -0
  7. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +29 -0
  8. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/button/button.component.mjs +4 -4
  9. package/esm2020/lib/components/button-group/button-group.component.mjs +23 -0
  10. package/esm2020/lib/components/calendar/calendar.component.mjs +71 -0
  11. package/esm2020/lib/components/card/card.component.mjs +65 -0
  12. package/esm2020/lib/components/carousel/carousel.component.mjs +97 -0
  13. package/esm2020/lib/components/chart/chart.component.mjs +174 -0
  14. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/checkbox/checkbox.component.mjs +5 -5
  15. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/collapsible/collapsible.component.mjs +5 -5
  16. package/esm2020/lib/components/combobox/combobox.component.mjs +51 -0
  17. package/esm2020/lib/components/command/command.component.mjs +75 -0
  18. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/context-menu/context-menu.component.mjs +5 -5
  19. package/esm2020/lib/components/data-table/data-table.component.mjs +89 -0
  20. package/esm2020/lib/components/date-picker/date-picker.component.mjs +63 -0
  21. package/esm2020/lib/components/dialog/dialog.component.mjs +90 -0
  22. package/esm2020/lib/components/drawer/drawer.component.mjs +72 -0
  23. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/dropdown-menu/dropdown-menu.component.mjs +5 -5
  24. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/empty/empty.component.mjs +4 -4
  25. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/field/field.component.mjs +4 -4
  26. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/hover-card/hover-card.component.mjs +5 -5
  27. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/icon/icon.component.mjs +4 -4
  28. package/esm2020/lib/components/input/input.component.mjs +71 -0
  29. package/esm2020/lib/components/input-group/input-group.component.mjs +63 -0
  30. package/esm2020/lib/components/input-otp/input-otp.component.mjs +140 -0
  31. package/esm2020/lib/components/input-password/input-password.component.mjs +78 -0
  32. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/item/item.component.mjs +4 -4
  33. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/kbd/kbd.component.mjs +4 -4
  34. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/label/label.component.mjs +4 -4
  35. package/esm2020/lib/components/menubar/menubar.component.mjs +37 -0
  36. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/native-select/native-select.component.mjs +5 -5
  37. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/navigation-menu/navigation-menu.component.mjs +4 -4
  38. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/pagination/pagination.component.mjs +5 -5
  39. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/popover/popover.component.mjs +5 -5
  40. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/progress/progress.component.mjs +4 -4
  41. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/radio-group/radio-group.component.mjs +4 -4
  42. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/scroll-area/scroll-area.component.mjs +4 -4
  43. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/select/select.component.mjs +5 -5
  44. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/separator/separator.component.mjs +4 -4
  45. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/sheet/sheet.component.mjs +5 -5
  46. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/sidebar/sidebar.component.mjs +4 -4
  47. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/skeleton/skeleton.component.mjs +4 -4
  48. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/slider/slider.component.mjs +5 -5
  49. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/sonner/sonner.component.mjs +4 -4
  50. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/spinner/spinner.component.mjs +4 -4
  51. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/switch/switch.component.mjs +5 -5
  52. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/table/table.component.mjs +4 -4
  53. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/tabs/tabs.component.mjs +5 -5
  54. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/textarea/textarea.component.mjs +5 -5
  55. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/toggle/toggle.component.mjs +4 -4
  56. package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/lib/components/toggle-group/toggle-group.component.mjs +4 -4
  57. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/components/tooltip/tooltip.component.mjs +4 -4
  58. package/{dist/pdm-ui-kit/esm2020 → esm2020}/lib/pdm-ui-kit.module.mjs +5 -5
  59. package/fesm2015/pdm-ui-kit.mjs +2998 -0
  60. package/fesm2015/pdm-ui-kit.mjs.map +1 -0
  61. package/fesm2020/pdm-ui-kit.mjs +2993 -0
  62. package/fesm2020/pdm-ui-kit.mjs.map +1 -0
  63. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/accordion/accordion.component.d.ts +1 -1
  64. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/alert/alert.component.d.ts +2 -2
  65. package/{dist/pdm-ui-kit/lib → lib}/components/alert-dialog/alert-dialog.component.d.ts +1 -1
  66. package/{dist/pdm-ui-kit/lib → lib}/components/aspect-ratio/aspect-ratio.component.d.ts +1 -1
  67. package/{dist/pdm-ui-kit/lib → lib}/components/avatar/avatar.component.d.ts +2 -2
  68. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/badge/badge.component.d.ts +2 -2
  69. package/{dist/pdm-ui-kit/lib → lib}/components/breadcrumb/breadcrumb.component.d.ts +2 -2
  70. package/{dist/pdm-ui-kit/lib → lib}/components/button/button.component.d.ts +4 -4
  71. package/{dist/pdm-ui-kit/lib → lib}/components/button-group/button-group.component.d.ts +2 -2
  72. package/{dist/pdm-ui-kit/lib → lib}/components/calendar/calendar.component.d.ts +2 -2
  73. package/{dist/pdm-ui-kit/lib → lib}/components/card/card.component.d.ts +2 -2
  74. package/{dist/pdm-ui-kit/lib → lib}/components/carousel/carousel.component.d.ts +2 -2
  75. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/chart/chart.component.d.ts +2 -2
  76. package/{dist/pdm-ui-kit/lib → lib}/components/checkbox/checkbox.component.d.ts +2 -2
  77. package/{dist/pdm-ui-kit/lib → lib}/components/collapsible/collapsible.component.d.ts +1 -1
  78. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/combobox/combobox.component.d.ts +1 -1
  79. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/command/command.component.d.ts +1 -1
  80. package/{dist/pdm-ui-kit/lib → lib}/components/context-menu/context-menu.component.d.ts +1 -1
  81. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/data-table/data-table.component.d.ts +1 -1
  82. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/date-picker/date-picker.component.d.ts +2 -2
  83. package/{dist/pdm-ui-kit/lib → lib}/components/dialog/dialog.component.d.ts +2 -2
  84. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/drawer/drawer.component.d.ts +2 -2
  85. package/{dist/pdm-ui-kit/lib → lib}/components/dropdown-menu/dropdown-menu.component.d.ts +2 -2
  86. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/empty/empty.component.d.ts +2 -2
  87. package/{dist/pdm-ui-kit/lib → lib}/components/field/field.component.d.ts +3 -3
  88. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/hover-card/hover-card.component.d.ts +3 -3
  89. package/lib/components/icon/icon.component.d.ts +18 -0
  90. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/input/input.component.d.ts +5 -1
  91. package/{dist/pdm-ui-kit/lib → lib}/components/input-group/input-group.component.d.ts +1 -1
  92. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/input-otp/input-otp.component.d.ts +1 -1
  93. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/input-password/input-password.component.d.ts +4 -1
  94. package/{dist/pdm-ui-kit/lib → lib}/components/item/item.component.d.ts +1 -1
  95. package/{dist/pdm-ui-kit/lib → lib}/components/kbd/kbd.component.d.ts +1 -1
  96. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/label/label.component.d.ts +1 -1
  97. package/{dist/pdm-ui-kit/lib → lib}/components/menubar/menubar.component.d.ts +2 -1
  98. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/native-select/native-select.component.d.ts +1 -1
  99. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/navigation-menu/navigation-menu.component.d.ts +1 -1
  100. package/{dist/pdm-ui-kit/lib → lib}/components/pagination/pagination.component.d.ts +1 -1
  101. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/popover/popover.component.d.ts +1 -1
  102. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/progress/progress.component.d.ts +1 -1
  103. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/radio-group/radio-group.component.d.ts +1 -1
  104. package/{dist/pdm-ui-kit/lib → lib}/components/scroll-area/scroll-area.component.d.ts +1 -1
  105. package/{dist/pdm-ui-kit/lib → lib}/components/select/select.component.d.ts +1 -1
  106. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/separator/separator.component.d.ts +1 -1
  107. package/{dist/pdm-ui-kit/lib → lib}/components/sheet/sheet.component.d.ts +2 -2
  108. package/{dist/pdm-ui-kit/lib → lib}/components/sidebar/sidebar.component.d.ts +1 -1
  109. package/{dist/pdm-ui-kit/lib → lib}/components/skeleton/skeleton.component.d.ts +1 -1
  110. package/{dist/pdm-ui-kit/lib → lib}/components/slider/slider.component.d.ts +1 -1
  111. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/sonner/sonner.component.d.ts +2 -2
  112. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/spinner/spinner.component.d.ts +1 -1
  113. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/switch/switch.component.d.ts +1 -1
  114. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/table/table.component.d.ts +1 -1
  115. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/tabs/tabs.component.d.ts +1 -1
  116. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/textarea/textarea.component.d.ts +1 -1
  117. package/{dist/pdm-ui-kit/lib → lib}/components/toggle/toggle.component.d.ts +2 -2
  118. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/toggle-group/toggle-group.component.d.ts +1 -1
  119. package/{dist/corelusa-pdm-ui-kit/lib → lib}/components/tooltip/tooltip.component.d.ts +1 -1
  120. package/package.json +22 -15
  121. package/dist/corelusa-pdm-ui-kit/README.md +0 -79
  122. package/dist/corelusa-pdm-ui-kit/esm2020/corelusa-pdm-ui-kit.mjs +0 -5
  123. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/accordion/accordion.component.mjs +0 -42
  124. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/alert/alert.component.mjs +0 -35
  125. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +0 -69
  126. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/avatar/avatar.component.mjs +0 -46
  127. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/badge/badge.component.mjs +0 -23
  128. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +0 -29
  129. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/button/button.component.mjs +0 -82
  130. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/button-group/button-group.component.mjs +0 -23
  131. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/calendar/calendar.component.mjs +0 -71
  132. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/card/card.component.mjs +0 -65
  133. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/carousel/carousel.component.mjs +0 -97
  134. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/chart/chart.component.mjs +0 -174
  135. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/checkbox/checkbox.component.mjs +0 -47
  136. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/combobox/combobox.component.mjs +0 -51
  137. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/command/command.component.mjs +0 -75
  138. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/data-table/data-table.component.mjs +0 -89
  139. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/date-picker/date-picker.component.mjs +0 -63
  140. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/dialog/dialog.component.mjs +0 -90
  141. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/drawer/drawer.component.mjs +0 -72
  142. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/empty/empty.component.mjs +0 -58
  143. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/field/field.component.mjs +0 -52
  144. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/input/input.component.mjs +0 -65
  145. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/input-group/input-group.component.mjs +0 -54
  146. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -140
  147. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/input-password/input-password.component.mjs +0 -72
  148. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/item/item.component.mjs +0 -23
  149. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/label/label.component.mjs +0 -23
  150. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/menubar/menubar.component.mjs +0 -31
  151. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/native-select/native-select.component.mjs +0 -42
  152. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +0 -20
  153. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/pagination/pagination.component.mjs +0 -47
  154. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/popover/popover.component.mjs +0 -58
  155. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/progress/progress.component.mjs +0 -33
  156. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/radio-group/radio-group.component.mjs +0 -38
  157. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/select/select.component.mjs +0 -38
  158. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/separator/separator.component.mjs +0 -26
  159. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/sidebar/sidebar.component.mjs +0 -20
  160. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/slider/slider.component.mjs +0 -46
  161. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/table/table.component.mjs +0 -17
  162. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/tabs/tabs.component.mjs +0 -31
  163. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/toggle/toggle.component.mjs +0 -41
  164. package/dist/corelusa-pdm-ui-kit/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -33
  165. package/dist/corelusa-pdm-ui-kit/esm2020/lib/pdm-ui-kit.module.mjs +0 -245
  166. package/dist/corelusa-pdm-ui-kit/fesm2015/corelusa-pdm-ui-kit.mjs +0 -2959
  167. package/dist/corelusa-pdm-ui-kit/fesm2015/corelusa-pdm-ui-kit.mjs.map +0 -1
  168. package/dist/corelusa-pdm-ui-kit/fesm2020/corelusa-pdm-ui-kit.mjs +0 -2954
  169. package/dist/corelusa-pdm-ui-kit/fesm2020/corelusa-pdm-ui-kit.mjs.map +0 -1
  170. package/dist/corelusa-pdm-ui-kit/index.d.ts +0 -5
  171. package/dist/corelusa-pdm-ui-kit/lib/components/alert-dialog/alert-dialog.component.d.ts +0 -21
  172. package/dist/corelusa-pdm-ui-kit/lib/components/aspect-ratio/aspect-ratio.component.d.ts +0 -10
  173. package/dist/corelusa-pdm-ui-kit/lib/components/avatar/avatar.component.d.ts +0 -20
  174. package/dist/corelusa-pdm-ui-kit/lib/components/breadcrumb/breadcrumb.component.d.ts +0 -10
  175. package/dist/corelusa-pdm-ui-kit/lib/components/button/button.component.d.ts +0 -24
  176. package/dist/corelusa-pdm-ui-kit/lib/components/button-group/button-group.component.d.ts +0 -9
  177. package/dist/corelusa-pdm-ui-kit/lib/components/calendar/calendar.component.d.ts +0 -28
  178. package/dist/corelusa-pdm-ui-kit/lib/components/card/card.component.d.ts +0 -24
  179. package/dist/corelusa-pdm-ui-kit/lib/components/carousel/carousel.component.d.ts +0 -25
  180. package/dist/corelusa-pdm-ui-kit/lib/components/checkbox/checkbox.component.d.ts +0 -17
  181. package/dist/corelusa-pdm-ui-kit/lib/components/collapsible/collapsible.component.d.ts +0 -14
  182. package/dist/corelusa-pdm-ui-kit/lib/components/context-menu/context-menu.component.d.ts +0 -26
  183. package/dist/corelusa-pdm-ui-kit/lib/components/dialog/dialog.component.d.ts +0 -30
  184. package/dist/corelusa-pdm-ui-kit/lib/components/dropdown-menu/dropdown-menu.component.d.ts +0 -34
  185. package/dist/corelusa-pdm-ui-kit/lib/components/field/field.component.d.ts +0 -18
  186. package/dist/corelusa-pdm-ui-kit/lib/components/icon/icon.component.d.ts +0 -18
  187. package/dist/corelusa-pdm-ui-kit/lib/components/input-group/input-group.component.d.ts +0 -19
  188. package/dist/corelusa-pdm-ui-kit/lib/components/item/item.component.d.ts +0 -8
  189. package/dist/corelusa-pdm-ui-kit/lib/components/kbd/kbd.component.d.ts +0 -6
  190. package/dist/corelusa-pdm-ui-kit/lib/components/menubar/menubar.component.d.ts +0 -17
  191. package/dist/corelusa-pdm-ui-kit/lib/components/pagination/pagination.component.d.ts +0 -13
  192. package/dist/corelusa-pdm-ui-kit/lib/components/scroll-area/scroll-area.component.d.ts +0 -7
  193. package/dist/corelusa-pdm-ui-kit/lib/components/select/select.component.d.ts +0 -19
  194. package/dist/corelusa-pdm-ui-kit/lib/components/sheet/sheet.component.d.ts +0 -13
  195. package/dist/corelusa-pdm-ui-kit/lib/components/sidebar/sidebar.component.d.ts +0 -7
  196. package/dist/corelusa-pdm-ui-kit/lib/components/skeleton/skeleton.component.d.ts +0 -6
  197. package/dist/corelusa-pdm-ui-kit/lib/components/slider/slider.component.d.ts +0 -15
  198. package/dist/corelusa-pdm-ui-kit/lib/components/toggle/toggle.component.d.ts +0 -14
  199. package/dist/corelusa-pdm-ui-kit/package.json +0 -47
  200. package/dist/pdm-ui-kit/README.md +0 -128
  201. package/dist/pdm-ui-kit/esm2020/lib/components/accordion/accordion.component.mjs +0 -42
  202. package/dist/pdm-ui-kit/esm2020/lib/components/alert/alert.component.mjs +0 -35
  203. package/dist/pdm-ui-kit/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +0 -69
  204. package/dist/pdm-ui-kit/esm2020/lib/components/aspect-ratio/aspect-ratio.component.mjs +0 -31
  205. package/dist/pdm-ui-kit/esm2020/lib/components/badge/badge.component.mjs +0 -23
  206. package/dist/pdm-ui-kit/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +0 -29
  207. package/dist/pdm-ui-kit/esm2020/lib/components/button-group/button-group.component.mjs +0 -23
  208. package/dist/pdm-ui-kit/esm2020/lib/components/calendar/calendar.component.mjs +0 -71
  209. package/dist/pdm-ui-kit/esm2020/lib/components/card/card.component.mjs +0 -65
  210. package/dist/pdm-ui-kit/esm2020/lib/components/carousel/carousel.component.mjs +0 -97
  211. package/dist/pdm-ui-kit/esm2020/lib/components/chart/chart.component.mjs +0 -174
  212. package/dist/pdm-ui-kit/esm2020/lib/components/collapsible/collapsible.component.mjs +0 -43
  213. package/dist/pdm-ui-kit/esm2020/lib/components/combobox/combobox.component.mjs +0 -51
  214. package/dist/pdm-ui-kit/esm2020/lib/components/command/command.component.mjs +0 -75
  215. package/dist/pdm-ui-kit/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -78
  216. package/dist/pdm-ui-kit/esm2020/lib/components/data-table/data-table.component.mjs +0 -89
  217. package/dist/pdm-ui-kit/esm2020/lib/components/date-picker/date-picker.component.mjs +0 -63
  218. package/dist/pdm-ui-kit/esm2020/lib/components/dialog/dialog.component.mjs +0 -90
  219. package/dist/pdm-ui-kit/esm2020/lib/components/drawer/drawer.component.mjs +0 -72
  220. package/dist/pdm-ui-kit/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -120
  221. package/dist/pdm-ui-kit/esm2020/lib/components/hover-card/hover-card.component.mjs +0 -44
  222. package/dist/pdm-ui-kit/esm2020/lib/components/icon/icon.component.mjs +0 -94
  223. package/dist/pdm-ui-kit/esm2020/lib/components/input/input.component.mjs +0 -65
  224. package/dist/pdm-ui-kit/esm2020/lib/components/input-group/input-group.component.mjs +0 -63
  225. package/dist/pdm-ui-kit/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -140
  226. package/dist/pdm-ui-kit/esm2020/lib/components/input-password/input-password.component.mjs +0 -72
  227. package/dist/pdm-ui-kit/esm2020/lib/components/kbd/kbd.component.mjs +0 -17
  228. package/dist/pdm-ui-kit/esm2020/lib/components/menubar/menubar.component.mjs +0 -31
  229. package/dist/pdm-ui-kit/esm2020/lib/components/scroll-area/scroll-area.component.mjs +0 -20
  230. package/dist/pdm-ui-kit/esm2020/lib/components/sheet/sheet.component.mjs +0 -39
  231. package/dist/pdm-ui-kit/esm2020/lib/components/skeleton/skeleton.component.mjs +0 -17
  232. package/dist/pdm-ui-kit/esm2020/lib/components/sonner/sonner.component.mjs +0 -39
  233. package/dist/pdm-ui-kit/esm2020/lib/components/spinner/spinner.component.mjs +0 -20
  234. package/dist/pdm-ui-kit/esm2020/lib/components/switch/switch.component.mjs +0 -35
  235. package/dist/pdm-ui-kit/esm2020/lib/components/textarea/textarea.component.mjs +0 -59
  236. package/dist/pdm-ui-kit/esm2020/lib/components/toggle-group/toggle-group.component.mjs +0 -31
  237. package/dist/pdm-ui-kit/esm2020/public-api.mjs +0 -59
  238. package/dist/pdm-ui-kit/fesm2015/pdm-ui-kit.mjs +0 -2980
  239. package/dist/pdm-ui-kit/fesm2015/pdm-ui-kit.mjs.map +0 -1
  240. package/dist/pdm-ui-kit/fesm2020/pdm-ui-kit.mjs +0 -2975
  241. package/dist/pdm-ui-kit/fesm2020/pdm-ui-kit.mjs.map +0 -1
  242. package/dist/pdm-ui-kit/lib/components/accordion/accordion.component.d.ts +0 -19
  243. package/dist/pdm-ui-kit/lib/components/alert/alert.component.d.ts +0 -13
  244. package/dist/pdm-ui-kit/lib/components/badge/badge.component.d.ts +0 -9
  245. package/dist/pdm-ui-kit/lib/components/chart/chart.component.d.ts +0 -41
  246. package/dist/pdm-ui-kit/lib/components/combobox/combobox.component.d.ts +0 -18
  247. package/dist/pdm-ui-kit/lib/components/command/command.component.d.ts +0 -33
  248. package/dist/pdm-ui-kit/lib/components/data-table/data-table.component.d.ts +0 -36
  249. package/dist/pdm-ui-kit/lib/components/date-picker/date-picker.component.d.ts +0 -23
  250. package/dist/pdm-ui-kit/lib/components/drawer/drawer.component.d.ts +0 -27
  251. package/dist/pdm-ui-kit/lib/components/empty/empty.component.d.ts +0 -19
  252. package/dist/pdm-ui-kit/lib/components/hover-card/hover-card.component.d.ts +0 -14
  253. package/dist/pdm-ui-kit/lib/components/icon/icon.component.d.ts +0 -18
  254. package/dist/pdm-ui-kit/lib/components/input/input.component.d.ts +0 -23
  255. package/dist/pdm-ui-kit/lib/components/input-otp/input-otp.component.d.ts +0 -26
  256. package/dist/pdm-ui-kit/lib/components/input-password/input-password.component.d.ts +0 -25
  257. package/dist/pdm-ui-kit/lib/components/label/label.component.d.ts +0 -8
  258. package/dist/pdm-ui-kit/lib/components/native-select/native-select.component.d.ts +0 -20
  259. package/dist/pdm-ui-kit/lib/components/navigation-menu/navigation-menu.component.d.ts +0 -12
  260. package/dist/pdm-ui-kit/lib/components/popover/popover.component.d.ts +0 -17
  261. package/dist/pdm-ui-kit/lib/components/progress/progress.component.d.ts +0 -10
  262. package/dist/pdm-ui-kit/lib/components/radio-group/radio-group.component.d.ts +0 -19
  263. package/dist/pdm-ui-kit/lib/components/separator/separator.component.d.ts +0 -9
  264. package/dist/pdm-ui-kit/lib/components/sonner/sonner.component.d.ts +0 -13
  265. package/dist/pdm-ui-kit/lib/components/spinner/spinner.component.d.ts +0 -7
  266. package/dist/pdm-ui-kit/lib/components/switch/switch.component.d.ts +0 -13
  267. package/dist/pdm-ui-kit/lib/components/table/table.component.d.ts +0 -6
  268. package/dist/pdm-ui-kit/lib/components/tabs/tabs.component.d.ts +0 -16
  269. package/dist/pdm-ui-kit/lib/components/textarea/textarea.component.d.ts +0 -21
  270. package/dist/pdm-ui-kit/lib/components/toggle-group/toggle-group.component.d.ts +0 -16
  271. package/dist/pdm-ui-kit/lib/components/tooltip/tooltip.component.d.ts +0 -10
  272. package/dist/pdm-ui-kit/lib/pdm-ui-kit.module.d.ts +0 -64
  273. package/dist/pdm-ui-kit/package.json +0 -44
  274. package/dist/pdm-ui-kit/public-api.d.ts +0 -58
  275. package/ng-package.json +0 -8
  276. package/pdm-ui-kit-0.1.1.tgz +0 -0
  277. package/pdm-ui-kit-0.1.2.tgz +0 -0
  278. package/pdm-ui-kit-0.1.3.tgz +0 -0
  279. package/pdm-ui-kit-0.1.4.tgz +0 -0
  280. package/src/lib/components/accordion/accordion.component.html +0 -34
  281. package/src/lib/components/accordion/accordion.component.ts +0 -38
  282. package/src/lib/components/alert/alert.component.html +0 -52
  283. package/src/lib/components/alert/alert.component.ts +0 -25
  284. package/src/lib/components/alert-dialog/alert-dialog.component.html +0 -41
  285. package/src/lib/components/alert-dialog/alert-dialog.component.ts +0 -45
  286. package/src/lib/components/aspect-ratio/aspect-ratio.component.html +0 -11
  287. package/src/lib/components/aspect-ratio/aspect-ratio.component.ts +0 -18
  288. package/src/lib/components/avatar/avatar.component.html +0 -21
  289. package/src/lib/components/avatar/avatar.component.ts +0 -32
  290. package/src/lib/components/badge/badge.component.html +0 -28
  291. package/src/lib/components/badge/badge.component.ts +0 -23
  292. package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -39
  293. package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -26
  294. package/src/lib/components/button/button.component.html +0 -15
  295. package/src/lib/components/button/button.component.ts +0 -84
  296. package/src/lib/components/button-group/button-group.component.html +0 -39
  297. package/src/lib/components/button-group/button-group.component.ts +0 -15
  298. package/src/lib/components/calendar/calendar.component.html +0 -73
  299. package/src/lib/components/calendar/calendar.component.ts +0 -78
  300. package/src/lib/components/card/card.component.html +0 -77
  301. package/src/lib/components/card/card.component.ts +0 -39
  302. package/src/lib/components/carousel/carousel.component.html +0 -86
  303. package/src/lib/components/carousel/carousel.component.ts +0 -100
  304. package/src/lib/components/chart/chart.component.html +0 -143
  305. package/src/lib/components/chart/chart.component.ts +0 -147
  306. package/src/lib/components/checkbox/checkbox.component.html +0 -38
  307. package/src/lib/components/checkbox/checkbox.component.ts +0 -32
  308. package/src/lib/components/collapsible/collapsible.component.html +0 -26
  309. package/src/lib/components/collapsible/collapsible.component.ts +0 -29
  310. package/src/lib/components/combobox/combobox.component.html +0 -42
  311. package/src/lib/components/combobox/combobox.component.ts +0 -32
  312. package/src/lib/components/command/command.component.html +0 -55
  313. package/src/lib/components/command/command.component.ts +0 -67
  314. package/src/lib/components/context-menu/context-menu.component.html +0 -47
  315. package/src/lib/components/context-menu/context-menu.component.ts +0 -67
  316. package/src/lib/components/data-table/data-table.component.html +0 -63
  317. package/src/lib/components/data-table/data-table.component.ts +0 -78
  318. package/src/lib/components/date-picker/date-picker.component.html +0 -38
  319. package/src/lib/components/date-picker/date-picker.component.ts +0 -38
  320. package/src/lib/components/dialog/dialog.component.html +0 -78
  321. package/src/lib/components/dialog/dialog.component.ts +0 -55
  322. package/src/lib/components/drawer/drawer.component.html +0 -56
  323. package/src/lib/components/drawer/drawer.component.ts +0 -43
  324. package/src/lib/components/dropdown-menu/dropdown-menu.component.html +0 -56
  325. package/src/lib/components/dropdown-menu/dropdown-menu.component.ts +0 -126
  326. package/src/lib/components/empty/empty.component.html +0 -29
  327. package/src/lib/components/empty/empty.component.ts +0 -35
  328. package/src/lib/components/field/field.component.html +0 -26
  329. package/src/lib/components/field/field.component.ts +0 -42
  330. package/src/lib/components/hover-card/hover-card.component.html +0 -24
  331. package/src/lib/components/hover-card/hover-card.component.ts +0 -36
  332. package/src/lib/components/icon/icon.component.html +0 -286
  333. package/src/lib/components/icon/icon.component.ts +0 -133
  334. package/src/lib/components/input/input.component.html +0 -25
  335. package/src/lib/components/input/input.component.ts +0 -33
  336. package/src/lib/components/input-group/input-group.component.html +0 -59
  337. package/src/lib/components/input-group/input-group.component.ts +0 -32
  338. package/src/lib/components/input-otp/input-otp.component.html +0 -25
  339. package/src/lib/components/input-otp/input-otp.component.ts +0 -146
  340. package/src/lib/components/input-password/input-password.component.html +0 -66
  341. package/src/lib/components/input-password/input-password.component.ts +0 -46
  342. package/src/lib/components/item/item.component.html +0 -10
  343. package/src/lib/components/item/item.component.ts +0 -12
  344. package/src/lib/components/kbd/kbd.component.html +0 -3
  345. package/src/lib/components/kbd/kbd.component.ts +0 -10
  346. package/src/lib/components/label/label.component.html +0 -7
  347. package/src/lib/components/label/label.component.ts +0 -12
  348. package/src/lib/components/menubar/menubar.component.html +0 -16
  349. package/src/lib/components/menubar/menubar.component.ts +0 -29
  350. package/src/lib/components/native-select/native-select.component.html +0 -17
  351. package/src/lib/components/native-select/native-select.component.ts +0 -28
  352. package/src/lib/components/navigation-menu/navigation-menu.component.html +0 -15
  353. package/src/lib/components/navigation-menu/navigation-menu.component.ts +0 -17
  354. package/src/lib/components/pagination/pagination.component.html +0 -30
  355. package/src/lib/components/pagination/pagination.component.ts +0 -37
  356. package/src/lib/components/popover/popover.component.html +0 -6
  357. package/src/lib/components/popover/popover.component.ts +0 -40
  358. package/src/lib/components/progress/progress.component.html +0 -9
  359. package/src/lib/components/progress/progress.component.ts +0 -20
  360. package/src/lib/components/radio-group/radio-group.component.html +0 -25
  361. package/src/lib/components/radio-group/radio-group.component.ts +0 -30
  362. package/src/lib/components/scroll-area/scroll-area.component.html +0 -5
  363. package/src/lib/components/scroll-area/scroll-area.component.ts +0 -11
  364. package/src/lib/components/select/select.component.html +0 -14
  365. package/src/lib/components/select/select.component.ts +0 -27
  366. package/src/lib/components/separator/separator.component.html +0 -5
  367. package/src/lib/components/separator/separator.component.ts +0 -16
  368. package/src/lib/components/sheet/sheet.component.html +0 -10
  369. package/src/lib/components/sheet/sheet.component.ts +0 -28
  370. package/src/lib/components/sidebar/sidebar.component.html +0 -3
  371. package/src/lib/components/sidebar/sidebar.component.ts +0 -11
  372. package/src/lib/components/skeleton/skeleton.component.html +0 -1
  373. package/src/lib/components/skeleton/skeleton.component.ts +0 -10
  374. package/src/lib/components/slider/slider.component.html +0 -15
  375. package/src/lib/components/slider/slider.component.ts +0 -31
  376. package/src/lib/components/sonner/sonner.component.html +0 -10
  377. package/src/lib/components/sonner/sonner.component.ts +0 -25
  378. package/src/lib/components/spinner/spinner.component.html +0 -6
  379. package/src/lib/components/spinner/spinner.component.ts +0 -11
  380. package/src/lib/components/switch/switch.component.html +0 -14
  381. package/src/lib/components/switch/switch.component.ts +0 -20
  382. package/src/lib/components/table/table.component.html +0 -5
  383. package/src/lib/components/table/table.component.ts +0 -10
  384. package/src/lib/components/tabs/tabs.component.html +0 -21
  385. package/src/lib/components/tabs/tabs.component.ts +0 -26
  386. package/src/lib/components/textarea/textarea.component.html +0 -21
  387. package/src/lib/components/textarea/textarea.component.ts +0 -28
  388. package/src/lib/components/toggle/toggle.component.html +0 -16
  389. package/src/lib/components/toggle/toggle.component.ts +0 -29
  390. package/src/lib/components/toggle-group/toggle-group.component.html +0 -17
  391. package/src/lib/components/toggle-group/toggle-group.component.ts +0 -26
  392. package/src/lib/components/tooltip/tooltip.component.html +0 -6
  393. package/src/lib/components/tooltip/tooltip.component.ts +0 -20
  394. package/src/lib/pdm-ui-kit.module.ts +0 -126
  395. package/src/public-api.ts +0 -58
  396. package/tsconfig.json +0 -30
  397. package/tsconfig.lib.json +0 -17
  398. /package/{dist/pdm-ui-kit/esm2020 → esm2020}/pdm-ui-kit.mjs +0 -0
  399. /package/{dist/corelusa-pdm-ui-kit/esm2020 → esm2020}/public-api.mjs +0 -0
  400. /package/{dist/pdm-ui-kit/index.d.ts → index.d.ts} +0 -0
  401. /package/{dist/corelusa-pdm-ui-kit/lib → lib}/pdm-ui-kit.module.d.ts +0 -0
  402. /package/{dist/corelusa-pdm-ui-kit/public-api.d.ts → public-api.d.ts} +0 -0
@@ -1,2959 +0,0 @@
1
- import * as i1 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, HostListener, ViewChildren, NgModule } from '@angular/core';
5
-
6
- class PdmAccordionComponent {
7
- constructor() {
8
- this.items = [];
9
- this.expandedIndex = -1;
10
- this.className = '';
11
- this.expandedIndexChange = new EventEmitter();
12
- }
13
- isExpanded(index) {
14
- return this.expandedIndex === index;
15
- }
16
- contentLines(content) {
17
- if (Array.isArray(content))
18
- return content;
19
- return content
20
- .split('\n')
21
- .map((line) => line.trim())
22
- .filter((line) => line.length > 0);
23
- }
24
- toggle(index) {
25
- var _a;
26
- if ((_a = this.items[index]) === null || _a === void 0 ? void 0 : _a.disabled)
27
- return;
28
- this.expandedIndexChange.emit(this.expandedIndex === index ? -1 : index);
29
- }
30
- }
31
- PdmAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- PdmAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAccordionComponent, selector: "pdm-accordion", inputs: { items: "items", expandedIndex: "expandedIndex", className: "className" }, outputs: { expandedIndexChange: "expandedIndexChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[#e5e5e5]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[#0a0a0a] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[#0a0a0a]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, decorators: [{
34
- type: Component,
35
- args: [{ selector: 'pdm-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngFor=\"let item of items; let i = index\" class=\"border-b border-[#e5e5e5]\">\n <h3>\n <button\n type=\"button\"\n class=\"flex h-[52px] w-full items-center justify-between py-4 text-left text-[14px] font-medium leading-5 text-[#0a0a0a] transition-colors\"\n [disabled]=\"item.disabled\"\n [attr.aria-expanded]=\"isExpanded(i)\"\n [attr.aria-controls]=\"item.id + '-panel'\"\n (click)=\"toggle(i)\"\n >\n <span class=\"pr-[10px]\">{{ item.title }}</span>\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a]\" aria-hidden=\"true\">\n <svg\n class=\"h-4 w-4 transition-transform\"\n [ngClass]=\"isExpanded(i) ? 'rotate-180' : ''\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M3.5 6.5L8 11L12.5 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </button>\n </h3>\n <div\n *ngIf=\"isExpanded(i)\"\n [id]=\"item.id + '-panel'\"\n class=\"flex flex-col gap-4 pb-4 text-[14px] font-normal leading-5 text-[#0a0a0a]\"\n >\n <p *ngFor=\"let line of contentLines(item.content)\" class=\"m-0\">{{ line }}</p>\n </div>\n </div>\n</div>\n" }]
36
- }], propDecorators: { items: [{
37
- type: Input
38
- }], expandedIndex: [{
39
- type: Input
40
- }], className: [{
41
- type: Input
42
- }], expandedIndexChange: [{
43
- type: Output
44
- }] } });
45
-
46
- class PdmAlertComponent {
47
- constructor() {
48
- this.variant = 'default';
49
- this.title = 'Success! Your changes have been saved';
50
- this.description = 'This is an alert with icon, title and description.';
51
- this.details = [];
52
- this.className = '';
53
- }
54
- get isDestructive() {
55
- return this.variant === 'destructive';
56
- }
57
- get isTitleOnly() {
58
- return this.variant === 'title-only';
59
- }
60
- }
61
- PdmAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- PdmAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAlertComponent, selector: "pdm-alert", inputs: { variant: "variant", title: "title", description: "description", details: "details", className: "className" }, ngImport: i0, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#dc2626]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[#dc2626]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'pdm-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n role=\"alert\"\n [ngClass]=\"[\n 'w-full rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-3',\n className\n ]\"\n>\n <div [ngClass]=\"['flex gap-3', isDestructive ? 'items-start' : 'items-center']\">\n <span class=\"inline-flex h-6 w-6 shrink-0 items-center justify-center\">\n <svg *ngIf=\"!isDestructive && !isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <svg *ngIf=\"isTitleOnly\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M9 8V6.5C9 5.67 9.67 5 10.5 5H13.5C14.33 5 15 5.67 15 6.5V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <path d=\"M7 8L8 18.5C8.07 19.33 8.77 20 9.6 20H14.4C15.23 20 15.93 19.33 16 18.5L17 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <svg *ngIf=\"isDestructive\" viewBox=\"0 0 24 24\" class=\"h-5 w-5 text-[#dc2626]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </svg>\n </span>\n\n <div class=\"min-w-0 flex-1\">\n <h4\n [ngClass]=\"[\n 'm-0 text-[14px] font-medium leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a]'\n ]\"\n >\n {{ title }}\n </h4>\n\n <p\n *ngIf=\"!isTitleOnly && description\"\n [ngClass]=\"[\n 'm-0 mt-0.5 text-[14px] leading-5',\n isDestructive ? 'text-[#dc2626]' : 'text-[#0a0a0a] font-light'\n ]\"\n >\n {{ description }}\n </p>\n\n <ul *ngIf=\"isDestructive && details.length\" class=\"m-0 mt-1 pl-5 text-[14px] leading-5 text-[#dc2626]\">\n <li *ngFor=\"let item of details\">{{ item }}</li>\n </ul>\n </div>\n </div>\n</section>\n\n" }]
66
- }], propDecorators: { variant: [{
67
- type: Input
68
- }], title: [{
69
- type: Input
70
- }], description: [{
71
- type: Input
72
- }], details: [{
73
- type: Input
74
- }], className: [{
75
- type: Input
76
- }] } });
77
-
78
- class PdmAlertDialogComponent {
79
- constructor() {
80
- this.open = false;
81
- this.showTrigger = false;
82
- this.triggerText = 'Show dialog';
83
- this.title = 'Are you absolutely sure?';
84
- this.description = '';
85
- this.confirmText = 'Continue';
86
- this.cancelText = 'Cancel';
87
- this.className = '';
88
- this.openChange = new EventEmitter();
89
- this.confirm = new EventEmitter();
90
- this.cancel = new EventEmitter();
91
- }
92
- onTriggerClick() {
93
- this.open = true;
94
- this.openChange.emit(true);
95
- }
96
- onCancel() {
97
- this.cancel.emit();
98
- this.open = false;
99
- this.openChange.emit(false);
100
- }
101
- onConfirm() {
102
- this.confirm.emit();
103
- this.open = false;
104
- this.openChange.emit(false);
105
- }
106
- onEsc() {
107
- if (this.open) {
108
- this.onCancel();
109
- }
110
- }
111
- }
112
- PdmAlertDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", className: "className" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 text-[#0a0a0a] shadow-[0px_10px_15px_0px_rgba(0,0,0,0.1),0px_4px_6px_0px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, decorators: [{
115
- type: Component,
116
- args: [{ selector: 'pdm-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-5\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onCancel()\"></div>\n <section\n role=\"alertdialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[552px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 text-[#0a0a0a] shadow-[0px_10px_15px_0px_rgba(0,0,0,0.1),0px_4px_6px_0px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex flex-col gap-2\">\n <h2 class=\"text-[18px] font-semibold leading-7 tracking-normal\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"text-[14px] font-normal leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <div class=\"mt-4 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onCancel()\"\n >\n {{ cancelText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText }}\n </button>\n </div>\n </section>\n</div>\n" }]
117
- }], propDecorators: { open: [{
118
- type: Input
119
- }], showTrigger: [{
120
- type: Input
121
- }], triggerText: [{
122
- type: Input
123
- }], title: [{
124
- type: Input
125
- }], description: [{
126
- type: Input
127
- }], confirmText: [{
128
- type: Input
129
- }], cancelText: [{
130
- type: Input
131
- }], className: [{
132
- type: Input
133
- }], openChange: [{
134
- type: Output
135
- }], confirm: [{
136
- type: Output
137
- }], cancel: [{
138
- type: Output
139
- }], onEsc: [{
140
- type: HostListener,
141
- args: ['document:keydown.escape']
142
- }] } });
143
-
144
- class PdmAspectRatioComponent {
145
- constructor() {
146
- this.ratio = 16 / 9;
147
- this.imageSrc = '';
148
- this.imageAlt = '';
149
- this.className = '';
150
- }
151
- get paddingTop() {
152
- if (!this.ratio || this.ratio <= 0)
153
- return '56.25%';
154
- return (100 / this.ratio).toFixed(4) + '%';
155
- }
156
- }
157
- PdmAspectRatioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
- PdmAspectRatioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAspectRatioComponent, selector: "pdm-aspect-ratio", inputs: { ratio: "ratio", imageSrc: "imageSrc", imageAlt: "imageAlt", className: "className" }, ngImport: i0, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, decorators: [{
160
- type: Component,
161
- args: [{ selector: 'pdm-aspect-ratio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative w-full\" [ngClass]=\"className\" [style.paddingTop]=\"paddingTop\">\n <div class=\"absolute inset-0 overflow-hidden rounded-[10px]\">\n <img\n *ngIf=\"imageSrc\"\n [src]=\"imageSrc\"\n [alt]=\"imageAlt\"\n class=\"pointer-events-none h-full w-full rounded-[10px] object-cover\"\n />\n <ng-content></ng-content>\n </div>\n</div>\n" }]
162
- }], propDecorators: { ratio: [{
163
- type: Input
164
- }], imageSrc: [{
165
- type: Input
166
- }], imageAlt: [{
167
- type: Input
168
- }], className: [{
169
- type: Input
170
- }] } });
171
-
172
- class PdmAvatarComponent {
173
- constructor() {
174
- this.src = '';
175
- this.alt = 'Avatar';
176
- this.fallback = 'U';
177
- this.shape = 'circle';
178
- this.size = 'md';
179
- this.groupSources = [];
180
- this.className = '';
181
- this.sizeClasses = {
182
- sm: 'h-8 w-8',
183
- md: 'h-10 w-10',
184
- lg: 'h-12 w-12'
185
- };
186
- }
187
- get isGroup() {
188
- return this.groupSources.length > 0;
189
- }
190
- get radiusClass() {
191
- return this.shape === 'square' ? 'rounded-[8px]' : 'rounded-full';
192
- }
193
- }
194
- PdmAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
195
- PdmAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmAvatarComponent, selector: "pdm-avatar", inputs: { src: "src", alt: "alt", fallback: "fallback", shape: "shape", size: "size", groupSources: "groupSources", className: "className" }, ngImport: i0, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[#e5e5e5]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, decorators: [{
197
- type: Component,
198
- args: [{ selector: 'pdm-avatar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!isGroup\" [ngClass]=\"['relative flex shrink-0 overflow-hidden', radiusClass, sizeClasses[size], className]\">\n <img *ngIf=\"src\" [src]=\"src\" [alt]=\"alt\" [ngClass]=\"['aspect-square h-full w-full object-cover', radiusClass]\" />\n <div\n *ngIf=\"!src\"\n [ngClass]=\"['flex h-full w-full items-center justify-center bg-[hsl(var(--muted))] text-xs text-[hsl(var(--muted-foreground))]', radiusClass]\"\n >\n {{ fallback }}\n </div>\n</div>\n\n<div *ngIf=\"isGroup\" [ngClass]=\"['inline-flex items-center pr-2', className]\">\n <div\n *ngFor=\"let groupSrc of groupSources; let i = index\"\n [ngClass]=\"[\n 'relative h-8 w-8 shrink-0 overflow-hidden rounded-full',\n i > 0 ? '-mr-2 border border-[#e5e5e5]' : '-mr-2'\n ]\"\n >\n <img [src]=\"groupSrc\" [alt]=\"alt + ' ' + (i + 1)\" class=\"h-full w-full rounded-full object-cover\" />\n </div>\n</div>\n" }]
199
- }], propDecorators: { src: [{
200
- type: Input
201
- }], alt: [{
202
- type: Input
203
- }], fallback: [{
204
- type: Input
205
- }], shape: [{
206
- type: Input
207
- }], size: [{
208
- type: Input
209
- }], groupSources: [{
210
- type: Input
211
- }], className: [{
212
- type: Input
213
- }] } });
214
-
215
- class PdmBadgeComponent {
216
- constructor() {
217
- this.variant = 'default';
218
- this.text = 'Badge';
219
- this.className = '';
220
- }
221
- }
222
- PdmBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
223
- PdmBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmBadgeComponent, selector: "pdm-badge", inputs: { variant: "variant", text: "text", className: "className" }, ngImport: i0, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[#f5f5f5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[#dc2626] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[#e5e5e5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[#171717] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[#dc2626] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[#e5e5e5] px-1 py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, decorators: [{
225
- type: Component,
226
- args: [{ selector: 'pdm-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [ngClass]=\"[\n 'inline-flex items-center justify-center text-center align-middle',\n variant === 'default' ? 'h-[22px] rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'secondary' ? 'h-[22px] rounded-[10px] bg-[#f5f5f5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'destructive' ? 'h-[22px] rounded-[10px] bg-[#dc2626] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'outline' ? 'h-[22px] rounded-[10px] border border-[#e5e5e5] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n variant === 'icon' ? 'h-[22px] gap-1 rounded-[10px] bg-[#171717] px-[10px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'number' ? 'h-5 min-w-[20px] rounded-full bg-[#171717] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[#fafafa]' : '',\n variant === 'destructive-number' ? 'h-5 min-w-[20px] rounded-full bg-[#dc2626] px-[6px] py-[2px] text-[12px] font-medium leading-4 text-[rgba(255,255,255,0.95)]' : '',\n variant === 'secondary-number' ? 'h-5 min-w-[20px] rounded-full border border-[#e5e5e5] px-1 py-[2px] text-[12px] font-medium leading-4 text-[#0a0a0a]' : '',\n className\n ]\"\n>\n <svg\n *ngIf=\"variant === 'icon'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M8.5 12.5L10.8 14.8L15.8 9.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span [ngClass]=\"[variant === 'secondary-number' ? 'font-mono' : '']\">{{ text }}</span>\n</span>\n\n" }]
227
- }], propDecorators: { variant: [{
228
- type: Input
229
- }], text: [{
230
- type: Input
231
- }], className: [{
232
- type: Input
233
- }] } });
234
-
235
- class PdmBreadcrumbComponent {
236
- constructor() {
237
- this.mode = 'link-component';
238
- this.items = ['Home', 'Components', 'Breadcrumb'];
239
- this.className = '';
240
- }
241
- get renderedItems() {
242
- if ((this.mode === 'collapsed' || this.mode === 'responsive') && this.items.length > 3) {
243
- return [this.items[0], '...', this.items[this.items.length - 2], this.items[this.items.length - 1]];
244
- }
245
- return this.items;
246
- }
247
- }
248
- PdmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
249
- PdmBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmBreadcrumbComponent, selector: "pdm-breadcrumb", inputs: { mode: "mode", items: "items", className: "className" }, ngImport: i0, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[#0a0a0a]' : 'text-[#737373]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, decorators: [{
251
- type: Component,
252
- args: [{ selector: 'pdm-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n aria-label=\"breadcrumb\"\n [ngClass]=\"['inline-flex items-center gap-[6px] text-[14px] leading-5', className]\"\n>\n <ng-container *ngFor=\"let item of renderedItems; let i = index; let last = last\">\n <span [ngClass]=\"[last ? 'text-[#0a0a0a]' : 'text-[#737373]']\">{{ item }}</span>\n\n <ng-container *ngIf=\"!last\">\n <span class=\"inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg\n *ngIf=\"mode === 'custom-separator' && item !== '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 20L16 4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n </svg>\n <svg\n *ngIf=\"(mode !== 'custom-separator' && item !== '...') || item === '...'\"\n viewBox=\"0 0 24 24\"\n class=\"h-4 w-4\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"mode === 'dropdown' && i === 1 && item !== '...' && !last\">\n <span class=\"-ml-2 inline-flex h-6 w-6 items-center justify-center text-[#737373]\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </ng-container>\n </ng-container>\n</nav>\n" }]
253
- }], propDecorators: { mode: [{
254
- type: Input
255
- }], items: [{
256
- type: Input
257
- }], className: [{
258
- type: Input
259
- }] } });
260
-
261
- class PdmButtonGroupComponent {
262
- constructor() {
263
- this.variant = 'default';
264
- this.items = ['Archive', 'Report'];
265
- this.className = '';
266
- }
267
- }
268
- PdmButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
- PdmButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmButtonGroupComponent, selector: "pdm-button-group", inputs: { variant: "variant", items: "items", className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-[#e5e5e5] text-[#0a0a0a]\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[#0a0a0a]\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-[#e5e5e5] px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]', !last ? 'border-r border-[#e5e5e5]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-[#e5e5e5] text-[#0a0a0a]\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-[#0a0a0a]\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)] text-[#0a0a0a]\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-[14px] font-medium leading-5 text-[#0a0a0a]', !last ? 'border-r border-[#e5e5e5]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-[#e5e5e5] px-4 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[#0a0a0a]\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonGroupComponent, decorators: [{
271
- type: Component,
272
- args: [{ selector: 'pdm-button-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'orientation'\">\n <div class=\"inline-flex flex-col overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center border-b border-[#e5e5e5] text-[#0a0a0a]\">+</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[#0a0a0a]\">-</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-[#f5f5f5] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center border-r border-[#e5e5e5] px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Copy</button>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Paste</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'nested'\">\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button *ngFor=\"let item of ['1', '2', '3', '4', '5']; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-8 items-center justify-center px-3 text-[14px] font-medium leading-5 text-[#0a0a0a]', !last ? 'border-r border-[#e5e5e5]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center border-r border-[#e5e5e5] text-[#0a0a0a]\">\u2190</button>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center text-[#0a0a0a]\">\u2192</button>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div class=\"inline-flex h-9 w-9 items-center justify-center overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)] text-[#0a0a0a]\">\u2190</div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button *ngFor=\"let item of items; let last = last\" type=\"button\" [ngClass]=\"['inline-flex h-9 items-center justify-center px-4 text-[14px] font-medium leading-5 text-[#0a0a0a]', !last ? 'border-r border-[#e5e5e5]' : '']\">{{ item }}</button>\n </div>\n <div class=\"inline-flex overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">\n <button type=\"button\" class=\"inline-flex h-9 items-center justify-center border-r border-[#e5e5e5] px-4 text-[14px] font-medium leading-5 text-[#0a0a0a]\">Snooze</button>\n <button type=\"button\" class=\"inline-flex h-9 w-9 items-center justify-center text-[#0a0a0a]\">\u2026</button>\n </div>\n </ng-container>\n </ng-container>\n</div>\n\n" }]
273
- }], propDecorators: { variant: [{
274
- type: Input
275
- }], items: [{
276
- type: Input
277
- }], className: [{
278
- type: Input
279
- }] } });
280
-
281
- class PdmButtonComponent {
282
- constructor() {
283
- this.type = 'button';
284
- this.variant = 'default';
285
- this.state = 'default';
286
- this.size = 'default';
287
- this.disabled = false;
288
- this.loading = false;
289
- this.className = '';
290
- this.pressed = new EventEmitter();
291
- this.toneClassMap = {
292
- default: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
293
- primary: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
294
- destructive: { default: 'bg-destructive text-background', hover: 'bg-destructive text-background opacity-90' },
295
- outline: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
296
- subtle: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
297
- secondary: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
298
- ghost: { default: 'bg-transparent text-foreground', hover: 'bg-accent text-accent-foreground' },
299
- link: { default: 'bg-transparent text-primary', hover: 'bg-transparent text-primary' },
300
- 'with-icon': { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
301
- icon: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
302
- 'icon-circle': { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
303
- rounded: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
304
- loading: { default: 'bg-primary text-primary-foreground opacity-70', hover: 'bg-primary text-primary-foreground opacity-70' }
305
- };
306
- }
307
- get isDisabled() {
308
- return this.disabled || this.loading || this.variant === 'loading';
309
- }
310
- get rootClasses() {
311
- const currentState = this.state === 'hover' ? 'hover' : 'default';
312
- const toneClass = this.toneClassMap[this.variant][currentState];
313
- return [
314
- 'inline-flex items-center justify-center gap-2 rounded-[6px] border border-transparent text-[14px] font-medium leading-6 transition-colors outline-none focus:outline-none focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',
315
- this.variant === 'link' ? 'px-4 py-2 h-9' : '',
316
- this.variant === 'icon' ? 'h-8 w-8 p-2' : '',
317
- this.variant === 'icon-circle' ? 'h-10 w-10 rounded-[96px] p-3' : '',
318
- this.variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',
319
- this.variant !== 'icon' && this.variant !== 'icon-circle' && this.variant !== 'rounded'
320
- ? this.size === 'small'
321
- ? 'h-8 px-3'
322
- : this.size === 'large'
323
- ? 'h-10 px-5'
324
- : 'h-9 px-4'
325
- : '',
326
- this.variant === 'link' && this.state === 'hover' ? 'underline [text-decoration-skip-ink:none]' : '',
327
- toneClass,
328
- this.className
329
- ];
330
- }
331
- onClick(event) {
332
- if (!this.isDisabled) {
333
- this.pressed.emit(event);
334
- }
335
- }
336
- }
337
- PdmButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
338
- PdmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmButtonComponent, selector: "pdm-button", inputs: { type: "type", variant: "variant", state: "state", size: "size", disabled: "disabled", loading: "loading", className: "className" }, outputs: { pressed: "pressed" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded'\"></ng-content>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonComponent, decorators: [{
340
- type: Component,
341
- args: [{ selector: 'pdm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded'\"></ng-content>\n <ng-content></ng-content>\n</button>\n" }]
342
- }], propDecorators: { type: [{
343
- type: Input
344
- }], variant: [{
345
- type: Input
346
- }], state: [{
347
- type: Input
348
- }], size: [{
349
- type: Input
350
- }], disabled: [{
351
- type: Input
352
- }], loading: [{
353
- type: Input
354
- }], className: [{
355
- type: Input
356
- }], pressed: [{
357
- type: Output
358
- }] } });
359
-
360
- class PdmCalendarComponent {
361
- constructor() {
362
- this.mode = 'single';
363
- this.month = 6;
364
- this.year = 2025;
365
- this.selectedDay = 25;
366
- this.rangeStartDay = 25;
367
- this.rangeEndDay = 9;
368
- this.className = '';
369
- this.weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
370
- }
371
- get leftMonthName() {
372
- return this.monthName(this.month - 1);
373
- }
374
- get rightMonthName() {
375
- const rightMonth = this.month % 12;
376
- return this.monthName(rightMonth);
377
- }
378
- get leftCells() {
379
- return this.buildMonthCells(this.year, this.month - 1, this.selectedDay, this.mode === 'range' ? this.rangeStartDay : undefined, this.mode === 'range' ? 31 : undefined);
380
- }
381
- get rightCells() {
382
- const rightMonth = this.month % 12;
383
- const rightYear = this.month === 12 ? this.year + 1 : this.year;
384
- return this.buildMonthCells(rightYear, rightMonth, this.mode === 'range' ? this.rangeEndDay : undefined, 1, this.mode === 'range' ? this.rangeEndDay : undefined);
385
- }
386
- monthName(monthIndex) {
387
- const safe = ((monthIndex % 12) + 12) % 12;
388
- return new Date(this.year, safe, 1).toLocaleString('en-US', { month: 'long' });
389
- }
390
- buildMonthCells(year, monthIndex, selectedDay, rangeStartDay, rangeEndDay) {
391
- const firstDay = new Date(year, monthIndex, 1);
392
- const startWeekday = firstDay.getDay();
393
- const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();
394
- const cells = [];
395
- for (let i = 0; i < 42; i += 1) {
396
- const dayNumber = i - startWeekday + 1;
397
- const date = new Date(year, monthIndex, dayNumber);
398
- const outside = dayNumber < 1 || dayNumber > daysInMonth;
399
- const day = date.getDate();
400
- const selected = !outside && !!selectedDay && day === selectedDay;
401
- const inRange = !outside && !!rangeStartDay && !!rangeEndDay && day >= rangeStartDay && day <= rangeEndDay;
402
- cells.push({ date, day, outside, selected, inRange });
403
- }
404
- return cells;
405
- }
406
- }
407
- PdmCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
408
- PdmCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: { mode: "mode", month: "month", year: "year", selectedDay: "selectedDay", rangeStartDay: "rangeStartDay", rangeEndDay: "rangeEndDay", className: "className" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'rounded-[10px] border border-[#e5e5e5] bg-white p-3 shadow-[0px_1px_3px_0px_rgba(0,0,0,0.1)]',\n mode === 'range' ? 'w-[488px]' : 'w-[250px]',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-[160px]']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[#e5e5e5] px-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[#e5e5e5] px-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-[28px] text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[#737373]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[#0a0a0a] opacity-50' : 'text-[#0a0a0a]',\n cell.inRange ? 'bg-[#f5f5f5]' : '',\n cell.selected ? 'bg-[#171717] text-[#fafafa]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[#737373]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[#0a0a0a] opacity-50' : 'text-[#0a0a0a]',\n cell.inRange ? 'bg-[#f5f5f5]' : '',\n cell.selected ? 'bg-[#171717] text-[#fafafa]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCalendarComponent, decorators: [{
410
- type: Component,
411
- args: [{ selector: 'pdm-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'rounded-[10px] border border-[#e5e5e5] bg-white p-3 shadow-[0px_1px_3px_0px_rgba(0,0,0,0.1)]',\n mode === 'range' ? 'w-[488px]' : 'w-[250px]',\n className\n ]\"\n>\n <div [ngClass]=\"['grid gap-4', mode === 'range' ? 'grid-cols-2' : 'grid-cols-1']\">\n <div class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">\u2039</button>\n <div [ngClass]=\"['flex items-center justify-center gap-1', mode === 'range' ? 'w-full' : 'w-[160px]']\">\n <ng-container *ngIf=\"mode === 'single'; else monthText\">\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[#e5e5e5] px-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">Jun</span>\n <span class=\"inline-flex h-8 items-center rounded-[8px] border border-[#e5e5e5] px-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1)]\">2025</span>\n </ng-container>\n <ng-template #monthText>\n <span class=\"text-[28px] text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ leftMonthName }} {{ year }}</span>\n </ng-template>\n </div>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">{{ mode === 'range' ? '' : '\u203A' }}</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[#737373]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of leftCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[#0a0a0a] opacity-50' : 'text-[#0a0a0a]',\n cell.inRange ? 'bg-[#f5f5f5]' : '',\n cell.selected ? 'bg-[#171717] text-[#fafafa]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mode === 'range'\" class=\"space-y-4\">\n <header class=\"flex items-center justify-between\">\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ rightMonthName }} {{ month === 12 ? year + 1 : year }}</span>\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center rounded-[6px] text-[#0a0a0a]\">\u203A</button>\n </header>\n\n <div>\n <div class=\"grid grid-cols-7\">\n <span *ngFor=\"let day of weekdays\" class=\"inline-flex h-[21px] items-center justify-center text-[12px] font-normal leading-4 text-[#737373]\">{{ day }}</span>\n </div>\n <div class=\"mt-2 grid grid-cols-7 gap-y-2\">\n <button\n *ngFor=\"let cell of rightCells\"\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-8 w-8 items-center justify-center rounded-[8px] text-[14px] font-normal leading-5',\n cell.outside ? 'text-[#0a0a0a] opacity-50' : 'text-[#0a0a0a]',\n cell.inRange ? 'bg-[#f5f5f5]' : '',\n cell.selected ? 'bg-[#171717] text-[#fafafa]' : ''\n ]\"\n >\n {{ cell.day }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</section>\n\n" }]
412
- }], propDecorators: { mode: [{
413
- type: Input
414
- }], month: [{
415
- type: Input
416
- }], year: [{
417
- type: Input
418
- }], selectedDay: [{
419
- type: Input
420
- }], rangeStartDay: [{
421
- type: Input
422
- }], rangeEndDay: [{
423
- type: Input
424
- }], className: [{
425
- type: Input
426
- }] } });
427
-
428
- class PdmCarouselComponent {
429
- constructor() {
430
- this.variant = 'default';
431
- this.className = '';
432
- this.slides = [1, 2, 3, 4, 5];
433
- this.startIndex = 0;
434
- this.loop = false;
435
- this.indexChange = new EventEmitter();
436
- this._index = 0;
437
- }
438
- ngOnInit() {
439
- this._index = this.normalizeIndex(this.startIndex);
440
- }
441
- get index() {
442
- return this._index;
443
- }
444
- get canPrev() {
445
- return this.loop || this._index > 0;
446
- }
447
- get canNext() {
448
- return this.loop || this._index < this.maxIndex;
449
- }
450
- get maxIndex() {
451
- if (this.slides.length === 0) {
452
- return 0;
453
- }
454
- if (this.variant === 'sizes') {
455
- return Math.max(0, this.slides.length - 3);
456
- }
457
- if (this.variant === 'orientation') {
458
- return Math.max(0, this.slides.length - 2);
459
- }
460
- return Math.max(0, this.slides.length - 1);
461
- }
462
- get visibleSlides() {
463
- if (this.slides.length === 0) {
464
- return [];
465
- }
466
- if (this.variant === 'sizes') {
467
- return this.sliceWindow(3);
468
- }
469
- if (this.variant === 'orientation') {
470
- return this.sliceWindow(2);
471
- }
472
- return [this.slides[this._index]];
473
- }
474
- onPrev() {
475
- if (!this.canPrev) {
476
- return;
477
- }
478
- const next = this._index - 1;
479
- this.setIndex(this.loop && next < 0 ? this.maxIndex : next);
480
- }
481
- onNext() {
482
- if (!this.canNext) {
483
- return;
484
- }
485
- const next = this._index + 1;
486
- this.setIndex(this.loop && next > this.maxIndex ? 0 : next);
487
- }
488
- setIndex(value) {
489
- const normalized = this.normalizeIndex(value);
490
- this._index = normalized;
491
- this.indexChange.emit(this._index);
492
- }
493
- normalizeIndex(value) {
494
- if (this.slides.length === 0) {
495
- return 0;
496
- }
497
- return Math.min(this.maxIndex, Math.max(0, value));
498
- }
499
- sliceWindow(size) {
500
- return this.slides.slice(this._index, this._index + size);
501
- }
502
- }
503
- PdmCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
504
- PdmCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCarouselComponent, selector: "pdm-carousel", inputs: { variant: "variant", className: "className", slides: "slides", startIndex: "startIndex", loop: "loop" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-[165px] w-[125px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[#0a0a0a]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-[360px] w-[318px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[36px] font-semibold leading-10 text-[#0a0a0a]\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-[14px] font-medium leading-5 text-[#737373]\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-[320px] flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-[142px] w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[#0a0a0a]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCarouselComponent, decorators: [{
506
- type: Component,
507
- args: [{ selector: 'pdm-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"[className]\">\n <div *ngIf=\"variant !== 'orientation'\" class=\"flex items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <ng-container [ngSwitch]=\"variant\">\n <div *ngSwitchCase=\"'sizes'\" class=\"flex items-center\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex items-center\" [ngClass]=\"i > 0 ? 'pl-4' : ''\">\n <div class=\"flex h-[165px] w-[125px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[#0a0a0a]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngSwitchDefault class=\"flex flex-col items-center justify-center\">\n <div class=\"flex h-[360px] w-[318px] items-center p-1\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[36px] font-semibold leading-10 text-[#0a0a0a]\">{{ visibleSlides[0] }}</div>\n </div>\n </div>\n <p *ngIf=\"variant === 'api'\" class=\"m-0 pt-2 text-[14px] font-medium leading-5 text-[#737373]\">Slide {{ index + 1 }} of {{ slides.length }}</p>\n </div>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div *ngIf=\"variant === 'orientation'\" class=\"flex flex-col items-center gap-4\">\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canPrev ? 'opacity-50' : ''\"\n [disabled]=\"!canPrev\"\n (click)=\"onPrev()\"\n aria-label=\"Previous slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 15L12 9L6 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div class=\"flex w-[320px] flex-col\">\n <div *ngFor=\"let slide of visibleSlides; let i = index\" class=\"flex h-[142px] w-full items-center p-1\" [ngClass]=\"i > 0 ? 'pt-1' : ''\">\n <div class=\"flex h-full w-full items-center justify-center rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"text-center text-[30px] font-semibold leading-9 text-[#0a0a0a]\">{{ slide }}</div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"inline-flex h-8 w-8 items-center justify-center rounded-full border border-[#e5e5e5] bg-white p-[10px]\"\n [ngClass]=\"!canNext ? 'opacity-50' : ''\"\n [disabled]=\"!canNext\"\n (click)=\"onNext()\"\n aria-label=\"Next slide\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n</section>\n" }]
508
- }], propDecorators: { variant: [{
509
- type: Input
510
- }], className: [{
511
- type: Input
512
- }], slides: [{
513
- type: Input
514
- }], startIndex: [{
515
- type: Input
516
- }], loop: [{
517
- type: Input
518
- }], indexChange: [{
519
- type: Output
520
- }] } });
521
-
522
- class PdmCardComponent {
523
- constructor() {
524
- this.variant = 'default';
525
- this.className = '';
526
- this.title = 'Login to your account';
527
- this.description = 'Enter your email below to login to your account';
528
- this.actionText = 'Sign up';
529
- this.emailLabel = 'Email';
530
- this.emailPlaceholder = 'm@example.com';
531
- this.passwordLabel = 'Password';
532
- this.passwordHint = 'Forgot password?';
533
- this.primaryActionText = 'Login';
534
- this.secondaryActionText = 'Login with Google';
535
- this.primaryAction = new EventEmitter();
536
- this.secondaryAction = new EventEmitter();
537
- this.actionPressed = new EventEmitter();
538
- }
539
- onPrimaryAction() {
540
- this.primaryAction.emit();
541
- }
542
- onSecondaryAction() {
543
- this.secondaryAction.emit();
544
- }
545
- onActionPressed() {
546
- this.actionPressed.emit();
547
- }
548
- }
549
- PdmCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
550
- PdmCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCardComponent, selector: "pdm-card", inputs: { variant: "variant", className: "className", title: "title", description: "description", actionText: "actionText", emailLabel: "emailLabel", emailPlaceholder: "emailPlaceholder", passwordLabel: "passwordLabel", passwordHint: "passwordHint", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", actionPressed: "actionPressed" }, ngImport: i0, template: "<section\n [ngClass]=\"[\n 'w-full rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-[14px] leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] px-4 py-2 text-[14px] font-medium leading-5 text-[#171717]\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[#737373] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#171717]\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-[14px] leading-5 text-[#0a0a0a]\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#171717]\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCardComponent, decorators: [{
552
- type: Component,
553
- args: [{ selector: 'pdm-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n [ngClass]=\"[\n 'w-full rounded-[14px] border border-[#e5e5e5] bg-white py-6 shadow-[0_1px_3px_rgba(0,0,0,0.1)]',\n className\n ]\"\n>\n <ng-container *ngIf=\"variant === 'login'; else defaultCard\">\n <div class=\"flex w-full items-start gap-1.5 px-6\">\n <div class=\"min-w-0 flex-1\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</h3>\n <p class=\"m-0 mt-1.5 text-[14px] leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] px-4 py-2 text-[14px] font-medium leading-5 text-[#171717]\"\n (click)=\"onActionPressed()\"\n >\n {{ actionText }}\n </button>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-4 px-6\">\n <div class=\"w-full\">\n <label class=\"mb-3 block text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ emailLabel }}</label>\n <input\n type=\"email\"\n [placeholder]=\"emailPlaceholder\"\n class=\"h-9 w-full rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[#737373] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#171717]\"\n />\n </div>\n\n <div class=\"w-full\">\n <div class=\"mb-3 flex w-full items-center justify-between gap-4\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ passwordLabel }}</label>\n <button type=\"button\" class=\"text-[14px] leading-5 text-[#0a0a0a]\">\n {{ passwordHint }}\n </button>\n </div>\n <input\n type=\"password\"\n class=\"h-9 w-full rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#171717]\"\n />\n </div>\n </div>\n\n <div class=\"mt-6 flex w-full flex-col gap-2 px-6\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] bg-[#171717] px-4 py-2 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 py-2 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #defaultCard>\n <div class=\"flex w-full flex-col gap-6\">\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardHeader]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardContent]\"></ng-content>\n </div>\n <div class=\"px-6\">\n <ng-content select=\"[pdmCardFooter]\"></ng-content>\n </div>\n </div>\n </ng-template>\n</section>\n" }]
554
- }], propDecorators: { variant: [{
555
- type: Input
556
- }], className: [{
557
- type: Input
558
- }], title: [{
559
- type: Input
560
- }], description: [{
561
- type: Input
562
- }], actionText: [{
563
- type: Input
564
- }], emailLabel: [{
565
- type: Input
566
- }], emailPlaceholder: [{
567
- type: Input
568
- }], passwordLabel: [{
569
- type: Input
570
- }], passwordHint: [{
571
- type: Input
572
- }], primaryActionText: [{
573
- type: Input
574
- }], secondaryActionText: [{
575
- type: Input
576
- }], primaryAction: [{
577
- type: Output
578
- }], secondaryAction: [{
579
- type: Output
580
- }], actionPressed: [{
581
- type: Output
582
- }] } });
583
-
584
- class PdmChartComponent {
585
- constructor() {
586
- this.type = 'bar';
587
- this.className = '';
588
- this.title = 'Bar Chart - Interactive';
589
- this.description = 'Showing total visitors for the last 3 months';
590
- this.desktopLabel = 'Desktop';
591
- this.desktopValue = '24,828';
592
- this.mobileLabel = 'Mobile';
593
- this.mobileValue = '25,010';
594
- this.labels = ['Apr 9', 'Apr 19', 'Apr 29', 'May 9', 'May 19', 'May 29', 'Jun 9', 'Jun 19', 'Jun 30'];
595
- this.bars = [
596
- 48, 21, 53, 69, 56, 77, 12, 54, 61, 59, 66, 27, 24, 27, 84, 62, 44, 18, 45, 57,
597
- 45, 72, 56, 15, 73, 25, 59, 86, 49, 59, 69, 93, 96, 72, 30, 58, 75, 67, 43, 43,
598
- 84, 89, 62, 96, 59, 72, 82, 34, 34, 70, 62, 42, 40, 80, 60, 33, 67, 34, 34, 88,
599
- 22, 84, 19, 62, 56, 43, 95, 70, 67, 89, 84, 31, 18, 92, 16, 87, 54, 44, 91, 23,
600
- 67, 77, 49, 59, 93, 26, 29, 81, 84, 30, 22, 84
601
- ];
602
- this.line = [40, 28, 56, 49, 73, 67, 81, 58, 92];
603
- this.pie = [35, 28, 20, 17];
604
- this.radar = [72, 58, 88, 64, 79, 70];
605
- this.radialValue = 76;
606
- this.radialLabel = 'Completion';
607
- this.radialDescription = 'Updated monthly';
608
- this.tooltipTitle = 'June 2024';
609
- this.tooltipPrimaryLabel = 'Desktop';
610
- this.tooltipPrimaryValue = '12,450';
611
- this.tooltipSecondaryLabel = 'Mobile';
612
- this.tooltipSecondaryValue = '8,110';
613
- this.pieLabels = ['Desktop', 'Mobile', 'Tablet', 'Other'];
614
- }
615
- get normalizedBars() {
616
- if (!this.bars.length) {
617
- return [];
618
- }
619
- const max = Math.max(...this.bars);
620
- if (max === 0) {
621
- return this.bars.map(() => 0);
622
- }
623
- return this.bars.map((value) => Math.max(8, Math.round((value / max) * 183)));
624
- }
625
- get normalizedLine() {
626
- if (!this.line.length) {
627
- return [];
628
- }
629
- const max = Math.max(...this.line);
630
- if (max === 0) {
631
- return this.line.map(() => 170);
632
- }
633
- return this.line.map((value) => 180 - Math.round((value / max) * 150));
634
- }
635
- get linePath() {
636
- const points = this.normalizedLine;
637
- if (!points.length) {
638
- return '';
639
- }
640
- const step = points.length > 1 ? 320 / (points.length - 1) : 0;
641
- return points
642
- .map((y, index) => `${index === 0 ? 'M' : 'L'} ${Math.round(index * step)} ${y}`)
643
- .join(' ');
644
- }
645
- get areaPath() {
646
- const linePath = this.linePath;
647
- if (!linePath) {
648
- return '';
649
- }
650
- return `${linePath} L 320 180 L 0 180 Z`;
651
- }
652
- get pieSegments() {
653
- const total = this.pie.reduce((acc, value) => acc + Math.max(value, 0), 0);
654
- if (total === 0) {
655
- return [];
656
- }
657
- let offset = 0;
658
- const colors = ['#0090ff', '#34d399', '#f59e0b', '#f43f5e'];
659
- return this.pie.map((value, index) => {
660
- var _a;
661
- const size = (Math.max(value, 0) / total) * 100;
662
- const segment = {
663
- color: colors[index % colors.length],
664
- size,
665
- offset,
666
- label: (_a = this.pieLabels[index]) !== null && _a !== void 0 ? _a : `Series ${index + 1}`
667
- };
668
- offset += size;
669
- return segment;
670
- });
671
- }
672
- get pieGradient() {
673
- const segments = this.pieSegments;
674
- if (!segments.length) {
675
- return 'conic-gradient(#e5e5e5 0 100%)';
676
- }
677
- return `conic-gradient(${segments
678
- .map((segment) => `${segment.color} ${segment.offset}% ${segment.offset + segment.size}%`)
679
- .join(', ')})`;
680
- }
681
- get radarPoints() {
682
- const values = this.radar.slice(0, 6);
683
- if (!values.length) {
684
- return '';
685
- }
686
- const max = Math.max(...values, 1);
687
- const radius = 72;
688
- const center = 80;
689
- return values
690
- .map((value, index) => {
691
- const angle = ((Math.PI * 2) / values.length) * index - Math.PI / 2;
692
- const valueRadius = (Math.max(value, 0) / max) * radius;
693
- const x = center + Math.cos(angle) * valueRadius;
694
- const y = center + Math.sin(angle) * valueRadius;
695
- return `${x},${y}`;
696
- })
697
- .join(' ');
698
- }
699
- get radialStrokeOffset() {
700
- const bounded = Math.max(0, Math.min(this.radialValue, 100));
701
- const circumference = 2 * Math.PI * 42;
702
- return circumference - (bounded / 100) * circumference;
703
- }
704
- }
705
- PdmChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
706
- PdmChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmChartComponent, selector: "pdm-chart", inputs: { type: "type", className: "className", title: "title", description: "description", desktopLabel: "desktopLabel", desktopValue: "desktopValue", mobileLabel: "mobileLabel", mobileValue: "mobileValue", labels: "labels", bars: "bars", line: "line", pie: "pie", radar: "radar", radialValue: "radialValue", radialLabel: "radialLabel", radialDescription: "radialDescription", tooltipTitle: "tooltipTitle", tooltipPrimaryLabel: "tooltipPrimaryLabel", tooltipPrimaryValue: "tooltipPrimaryValue", tooltipSecondaryLabel: "tooltipSecondaryLabel", tooltipSecondaryValue: "tooltipSecondaryValue", pieLabels: "pieLabels" }, ngImport: i0, template: "<section [ngClass]=\"['w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))]', className]\">\n <div class=\"flex w-full items-stretch border-b border-[hsl(var(--border))]\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-5\">{{ title }}</h3>\n <p class=\"m-0 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-[92px]\">\n <div class=\"flex h-full w-[171px] flex-col justify-center border-l border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-[171px] flex-col justify-center px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-[236px] w-full flex-col justify-end gap-2\">\n <div class=\"relative h-[183px] w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[54px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[108px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[162px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-[183px] items-end gap-[2px] px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-[5px] rounded-[2px] bg-[hsl(var(--primary))]\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-[hsl(var(--card))]\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm leading-5\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium leading-5\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm\">\n <span class=\"text-[hsl(var(--muted-foreground))]\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-[30px] font-semibold leading-9\">{{ radialValue }}%</div>\n <div class=\"text-xs text-[hsl(var(--muted-foreground))]\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium leading-5\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-[220px] flex-col gap-2 rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium leading-4 text-[hsl(var(--muted-foreground))]\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-[hsl(var(--muted-foreground))]\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmChartComponent, decorators: [{
708
- type: Component,
709
- args: [{ selector: 'pdm-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['w-full rounded-[14px] border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))]', className]\">\n <div class=\"flex w-full items-stretch border-b border-[hsl(var(--border))]\">\n <div class=\"flex min-w-0 flex-1 flex-col gap-1 px-6 pb-3 pt-4\">\n <h3 class=\"m-0 text-sm font-semibold leading-5\">{{ title }}</h3>\n <p class=\"m-0 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n </div>\n\n <div class=\"flex h-[92px]\">\n <div class=\"flex h-full w-[171px] flex-col justify-center border-l border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ desktopLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ desktopValue }}</span>\n </div>\n <div class=\"flex h-full w-[171px] flex-col justify-center px-6 py-4\">\n <span class=\"text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ mobileLabel }}</span>\n <span class=\"mt-1 text-[28px] font-semibold leading-8\">{{ mobileValue }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"w-full p-6\">\n <ng-container [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'bar'\" class=\"flex h-[236px] w-full flex-col justify-end gap-2\">\n <div class=\"relative h-[183px] w-full overflow-hidden\">\n <div class=\"absolute bottom-0 left-0 right-0 border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[54px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[108px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute left-0 right-0 top-[162px] border-t border-[hsl(var(--border))] opacity-50\"></div>\n <div class=\"absolute inset-x-0 bottom-0 flex h-[183px] items-end gap-[2px] px-0.5\">\n <div *ngFor=\"let bar of normalizedBars\" class=\"w-[5px] rounded-[2px] bg-[hsl(var(--primary))]\" [style.height.px]=\"bar\"></div>\n </div>\n </div>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'line'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'area'\" class=\"flex h-[236px] w-full flex-col gap-2\">\n <svg viewBox=\"0 0 320 180\" class=\"h-[183px] w-full\">\n <defs>\n <linearGradient id=\"pdm-chart-area-gradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.35\"></stop>\n <stop offset=\"100%\" stop-color=\"hsl(var(--primary))\" stop-opacity=\"0.02\"></stop>\n </linearGradient>\n </defs>\n <line x1=\"0\" y1=\"180\" x2=\"320\" y2=\"180\" stroke=\"hsl(var(--border))\" stroke-width=\"1\"></line>\n <line x1=\"0\" y1=\"135\" x2=\"320\" y2=\"135\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"90\" x2=\"320\" y2=\"90\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <line x1=\"0\" y1=\"45\" x2=\"320\" y2=\"45\" stroke=\"hsl(var(--border))\" stroke-width=\"1\" opacity=\"0.5\"></line>\n <path [attr.d]=\"areaPath\" fill=\"url(#pdm-chart-area-gradient)\"></path>\n <path [attr.d]=\"linePath\" fill=\"none\" stroke=\"hsl(var(--primary))\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <div class=\"flex h-4 w-full items-center justify-between gap-2\">\n <span *ngFor=\"let label of labels\" class=\"truncate text-xs leading-4 text-[hsl(var(--muted-foreground))]\">{{ label }}</span>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'pie'\" class=\"flex items-center gap-6\">\n <div class=\"relative h-40 w-40 rounded-full\" [style.background]=\"pieGradient\">\n <div class=\"absolute inset-7 rounded-full bg-[hsl(var(--card))]\"></div>\n </div>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let segment of pieSegments\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2\">\n <div class=\"flex items-center gap-2\">\n <span class=\"size-2.5 rounded-full\" [style.background]=\"segment.color\"></span>\n <span class=\"text-sm leading-5\">{{ segment.label }}</span>\n </div>\n <span class=\"text-sm font-medium leading-5\">{{ segment.size | number: '1.0-0' }}%</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radar'\" class=\"flex items-center gap-6\">\n <svg viewBox=\"0 0 160 160\" class=\"h-44 w-44\">\n <polygon points=\"80,8 144,44 144,116 80,152 16,116 16,44\" fill=\"none\" stroke=\"hsl(var(--border))\"></polygon>\n <polygon points=\"80,28 126,54 126,106 80,132 34,106 34,54\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.75\"></polygon>\n <polygon points=\"80,48 109,64 109,96 80,112 51,96 51,64\" fill=\"none\" stroke=\"hsl(var(--border))\" opacity=\"0.55\"></polygon>\n <polygon [attr.points]=\"radarPoints\" fill=\"hsl(var(--primary))\" fill-opacity=\"0.22\" stroke=\"hsl(var(--primary))\" stroke-width=\"2\"></polygon>\n </svg>\n <div class=\"grid flex-1 gap-2\">\n <div *ngFor=\"let item of radar; index as i\" class=\"flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm\">\n <span class=\"text-[hsl(var(--muted-foreground))]\">Metric {{ i + 1 }}</span>\n <span class=\"font-medium\">{{ item }}</span>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'radial'\" class=\"flex items-center justify-between gap-6\">\n <div class=\"relative flex size-44 items-center justify-center\">\n <svg viewBox=\"0 0 96 96\" class=\"size-40 -rotate-90\">\n <circle cx=\"48\" cy=\"48\" r=\"42\" fill=\"none\" stroke=\"hsl(var(--muted))\" stroke-width=\"10\"></circle>\n <circle\n cx=\"48\"\n cy=\"48\"\n r=\"42\"\n fill=\"none\"\n stroke=\"hsl(var(--primary))\"\n stroke-width=\"10\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"263.89\"\n [attr.stroke-dashoffset]=\"radialStrokeOffset\"\n ></circle>\n </svg>\n <div class=\"absolute text-center\">\n <div class=\"text-[30px] font-semibold leading-9\">{{ radialValue }}%</div>\n <div class=\"text-xs text-[hsl(var(--muted-foreground))]\">{{ radialLabel }}</div>\n </div>\n </div>\n <div class=\"flex-1\">\n <p class=\"m-0 text-sm font-medium leading-5\">{{ radialLabel }}</p>\n <p class=\"m-0 mt-1 text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ radialDescription }}</p>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'tooltips'\" class=\"grid gap-3\">\n <div class=\"inline-flex w-fit min-w-[220px] flex-col gap-2 rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-3 shadow-sm\">\n <p class=\"m-0 text-xs font-medium leading-4 text-[hsl(var(--muted-foreground))]\">{{ tooltipTitle }}</p>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipPrimaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipPrimaryValue }}</span>\n </div>\n <div class=\"flex items-center justify-between text-sm\">\n <span>{{ tooltipSecondaryLabel }}</span>\n <span class=\"font-semibold\">{{ tooltipSecondaryValue }}</span>\n </div>\n </div>\n <p class=\"m-0 text-xs text-[hsl(var(--muted-foreground))]\">Tooltip style preparado para charts de l\u00EDnea, \u00E1rea y barras.</p>\n </div>\n </ng-container>\n </div>\n</section>\n" }]
710
- }], propDecorators: { type: [{
711
- type: Input
712
- }], className: [{
713
- type: Input
714
- }], title: [{
715
- type: Input
716
- }], description: [{
717
- type: Input
718
- }], desktopLabel: [{
719
- type: Input
720
- }], desktopValue: [{
721
- type: Input
722
- }], mobileLabel: [{
723
- type: Input
724
- }], mobileValue: [{
725
- type: Input
726
- }], labels: [{
727
- type: Input
728
- }], bars: [{
729
- type: Input
730
- }], line: [{
731
- type: Input
732
- }], pie: [{
733
- type: Input
734
- }], radar: [{
735
- type: Input
736
- }], radialValue: [{
737
- type: Input
738
- }], radialLabel: [{
739
- type: Input
740
- }], radialDescription: [{
741
- type: Input
742
- }], tooltipTitle: [{
743
- type: Input
744
- }], tooltipPrimaryLabel: [{
745
- type: Input
746
- }], tooltipPrimaryValue: [{
747
- type: Input
748
- }], tooltipSecondaryLabel: [{
749
- type: Input
750
- }], tooltipSecondaryValue: [{
751
- type: Input
752
- }], pieLabels: [{
753
- type: Input
754
- }] } });
755
-
756
- class PdmCheckboxComponent {
757
- constructor() {
758
- this.id = '';
759
- this.checked = false;
760
- this.disabled = false;
761
- this.variant = 'default';
762
- this.label = 'Accept terms and conditions';
763
- this.description = '';
764
- this.className = '';
765
- this.checkedChange = new EventEmitter();
766
- }
767
- get hasDescription() {
768
- return this.variant === 'subtext' || this.variant === 'card' ? !!this.description : false;
769
- }
770
- onToggle() {
771
- if (this.disabled) {
772
- return;
773
- }
774
- this.checkedChange.emit(!this.checked);
775
- }
776
- }
777
- PdmCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
778
- PdmCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCheckboxComponent, selector: "pdm-checkbox", inputs: { id: "id", checked: "checked", disabled: "disabled", variant: "variant", label: "label", description: "description", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus:outline-none focus-visible:outline-none',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-[10px] border border-foreground bg-muted p-3'\n : 'flex items-start gap-3 rounded-[10px] border border-border bg-background p-3'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[6px] border shadow-[0_1px_2px_rgba(0,0,0,0.1)]',\n checked ? 'border-foreground bg-foreground text-background' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-[14px] font-medium leading-5 text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-[14px] leading-5 text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCheckboxComponent, decorators: [{
780
- type: Component,
781
- args: [{ selector: 'pdm-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"id || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'w-full border-0 bg-transparent p-0 text-left outline-none focus:outline-none focus-visible:outline-none',\n variant === 'card'\n ? checked\n ? 'flex items-start gap-3 rounded-[10px] border border-foreground bg-muted p-3'\n : 'flex items-start gap-3 rounded-[10px] border border-border bg-background p-3'\n : hasDescription\n ? 'flex items-start gap-3'\n : 'flex items-center gap-3',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n (click)=\"onToggle()\"\n>\n <span\n [ngClass]=\"[\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[6px] border shadow-[0_1px_2px_rgba(0,0,0,0.1)]',\n checked ? 'border-foreground bg-foreground text-background' : 'border-input bg-background text-transparent'\n ]\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" class=\"h-3 w-3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 8.5L6.4 12L13 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"['min-w-0 flex-1', hasDescription ? 'flex flex-col gap-2' : 'flex items-center']\">\n <span class=\"text-[14px] font-medium leading-5 text-foreground\">{{ label }}</span>\n <span *ngIf=\"hasDescription\" class=\"text-[14px] leading-5 text-muted-foreground\">{{ description }}</span>\n </span>\n</button>\n" }]
782
- }], propDecorators: { id: [{
783
- type: Input
784
- }], checked: [{
785
- type: Input
786
- }], disabled: [{
787
- type: Input
788
- }], variant: [{
789
- type: Input
790
- }], label: [{
791
- type: Input
792
- }], description: [{
793
- type: Input
794
- }], className: [{
795
- type: Input
796
- }], checkedChange: [{
797
- type: Output
798
- }] } });
799
-
800
- class PdmCollapsibleComponent {
801
- constructor() {
802
- this.title = '@peduarte starred 3 repositories';
803
- this.open = false;
804
- this.disabled = false;
805
- this.items = ['@radix-ui/primitives', '@radix-ui/colors', '@stitches/react'];
806
- this.className = '';
807
- this.openChange = new EventEmitter();
808
- }
809
- get visibleItems() {
810
- if (!this.items.length) {
811
- return [];
812
- }
813
- return this.open ? this.items : this.items.slice(0, 1);
814
- }
815
- toggle() {
816
- if (!this.disabled) {
817
- this.openChange.emit(!this.open);
818
- }
819
- }
820
- }
821
- PdmCollapsibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
822
- PdmCollapsibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCollapsibleComponent, selector: "pdm-collapsible", inputs: { title: "title", open: "open", disabled: "disabled", items: "items", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-[350px] flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between px-4 text-left\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-[#0a0a0a]\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-[8px] border border-[#e5e5e5] bg-white px-4 py-2\"\n >\n <span class=\"font-mono text-[14px] leading-5 text-[#0a0a0a]\">{{ item }}</span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
823
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCollapsibleComponent, decorators: [{
824
- type: Component,
825
- args: [{ selector: 'pdm-collapsible', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-[350px] flex-col gap-2', className]\">\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"flex w-full items-center justify-between px-4 text-left\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</span>\n <span class=\"inline-flex h-8 w-8 items-center justify-center text-[#0a0a0a]\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n </button>\n\n <div class=\"flex w-full flex-col gap-2\">\n <div\n *ngFor=\"let item of visibleItems\"\n class=\"w-full rounded-[8px] border border-[#e5e5e5] bg-white px-4 py-2\"\n >\n <span class=\"font-mono text-[14px] leading-5 text-[#0a0a0a]\">{{ item }}</span>\n </div>\n </div>\n</div>\n" }]
826
- }], propDecorators: { title: [{
827
- type: Input
828
- }], open: [{
829
- type: Input
830
- }], disabled: [{
831
- type: Input
832
- }], items: [{
833
- type: Input
834
- }], className: [{
835
- type: Input
836
- }], openChange: [{
837
- type: Output
838
- }] } });
839
-
840
- class PdmComboboxComponent {
841
- constructor() {
842
- this.open = false;
843
- this.placeholder = 'Select framework...';
844
- this.searchPlaceholder = 'Search framework';
845
- this.className = '';
846
- this.options = ['Next.js', 'SvelteKit', 'Nuxt.js', 'Remix', 'Astro'];
847
- this.value = '';
848
- this.width = 200;
849
- this.openChange = new EventEmitter();
850
- this.valueChange = new EventEmitter();
851
- }
852
- get selectedLabel() {
853
- return this.value || this.placeholder;
854
- }
855
- toggle() {
856
- this.openChange.emit(!this.open);
857
- }
858
- select(option) {
859
- this.valueChange.emit(option);
860
- this.openChange.emit(false);
861
- }
862
- }
863
- PdmComboboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
864
- PdmComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmComboboxComponent, selector: "pdm-combobox", inputs: { open: "open", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", className: "className", options: "options", value: "value", width: "width" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"flex items-center gap-2 border-b border-[#e5e5e5] px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#737373]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-[14px] leading-5 text-[#737373]\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-[4px] px-2 py-[6px] text-left\"\n [ngClass]=\"option === value ? 'bg-[#f5f5f5]' : ''\"\n (click)=\"select(option)\"\n >\n <span [ngClass]=\"['min-w-0 flex-1 truncate text-[14px] leading-5', option === value ? 'text-[#171717]' : 'text-[#0a0a0a]']\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmComboboxComponent, decorators: [{
866
- type: Component,
867
- args: [{ selector: 'pdm-combobox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex flex-col gap-1', className]\" [style.width.px]=\"width\">\n <button\n type=\"button\"\n class=\"flex h-9 w-full items-center gap-2 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n <span class=\"min-w-0 flex-1 truncate text-left text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ selectedLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n\n <div\n *ngIf=\"open\"\n class=\"w-full rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"flex items-center gap-2 border-b border-[#e5e5e5] px-3\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#737373]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n <div class=\"h-9 flex-1 py-2 text-[14px] leading-5 text-[#737373]\">{{ searchPlaceholder }}</div>\n </div>\n\n <div class=\"p-1\">\n <button\n *ngFor=\"let option of options\"\n type=\"button\"\n class=\"flex w-full items-center gap-2 rounded-[4px] px-2 py-[6px] text-left\"\n [ngClass]=\"option === value ? 'bg-[#f5f5f5]' : ''\"\n (click)=\"select(option)\"\n >\n <span [ngClass]=\"['min-w-0 flex-1 truncate text-[14px] leading-5', option === value ? 'text-[#171717]' : 'text-[#0a0a0a]']\">{{ option }}</span>\n <svg *ngIf=\"option === value\" viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n </div>\n</div>\n" }]
868
- }], propDecorators: { open: [{
869
- type: Input
870
- }], placeholder: [{
871
- type: Input
872
- }], searchPlaceholder: [{
873
- type: Input
874
- }], className: [{
875
- type: Input
876
- }], options: [{
877
- type: Input
878
- }], value: [{
879
- type: Input
880
- }], width: [{
881
- type: Input
882
- }], openChange: [{
883
- type: Output
884
- }], valueChange: [{
885
- type: Output
886
- }] } });
887
-
888
- class PdmIconComponent {
889
- constructor() {
890
- this.name = 'check';
891
- this.library = 'lucide';
892
- this.assetUrl = null;
893
- this.size = 16;
894
- this.strokeWidth = 1.5;
895
- this.className = '';
896
- this.ariaLabel = null;
897
- this.decorative = false;
898
- this.aliasMapByLibrary = {
899
- lucide: {},
900
- tabler: {
901
- 'alert-triangle': 'alert-circle',
902
- 'chevron-down': 'chevron-down',
903
- 'chevron-right': 'chevron-right',
904
- 'user-circle': 'user',
905
- 'settings-2': 'settings',
906
- 'external-link': 'external-link'
907
- },
908
- hugeicons: {
909
- 'alert-02': 'alert-circle',
910
- 'user-circle': 'user',
911
- 'search-01': 'search',
912
- 'settings-01': 'settings',
913
- 'arrow-right-01': 'chevron-right',
914
- 'arrow-down-01': 'chevron-down'
915
- },
916
- phosphor: {
917
- 'warning-circle': 'alert-circle',
918
- 'caret-down': 'chevron-down',
919
- 'caret-right': 'chevron-right',
920
- 'user-circle': 'user',
921
- gear: 'settings',
922
- 'arrow-square-out': 'external-link'
923
- },
924
- remix: {
925
- 'alert-line': 'alert-circle',
926
- 'arrow-right-line': 'chevron-right',
927
- 'arrow-down-s-line': 'chevron-down',
928
- 'external-link-line': 'external-link',
929
- 'user-line': 'user',
930
- 'settings-3-line': 'settings'
931
- }
932
- };
933
- }
934
- get resolvedStrokeWidth() {
935
- if (this.strokeWidth) {
936
- return this.strokeWidth;
937
- }
938
- if (this.library === 'phosphor') {
939
- return 1.6;
940
- }
941
- if (this.library === 'tabler') {
942
- return 1.8;
943
- }
944
- return 1.5;
945
- }
946
- get iconKey() {
947
- var _a, _b;
948
- const raw = `${this.name || ''}`.trim();
949
- if (!raw) {
950
- return 'circle';
951
- }
952
- const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\//, '');
953
- const aliases = (_a = this.aliasMapByLibrary[this.library]) !== null && _a !== void 0 ? _a : {};
954
- return (_b = aliases[trimmed]) !== null && _b !== void 0 ? _b : trimmed;
955
- }
956
- }
957
- PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
958
- PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
959
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmIconComponent, decorators: [{
960
- type: Component,
961
- args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n" }]
962
- }], propDecorators: { name: [{
963
- type: Input
964
- }], library: [{
965
- type: Input
966
- }], assetUrl: [{
967
- type: Input
968
- }], size: [{
969
- type: Input
970
- }], strokeWidth: [{
971
- type: Input
972
- }], className: [{
973
- type: Input
974
- }], ariaLabel: [{
975
- type: Input
976
- }], decorative: [{
977
- type: Input
978
- }] } });
979
-
980
- class PdmCommandComponent {
981
- constructor() {
982
- this.open = true;
983
- this.hintLabel = 'Press';
984
- this.hintKey = 'J';
985
- this.placeholder = 'Type a command or search...';
986
- this.emptyMessage = 'No results found.';
987
- this.items = [
988
- { label: 'Calendar', value: 'calendar', group: 'Suggestions', icon: 'calendar' },
989
- { label: 'Search emoji', value: 'emoji', group: 'Suggestions', icon: 'smile' },
990
- { label: 'Calculator', value: 'calculator', group: 'Suggestions', icon: 'calculator', disabled: true },
991
- { label: 'Profile', value: 'profile', group: 'Settings', icon: 'user', shortcut: '⌘P' },
992
- { label: 'Billing', value: 'billing', group: 'Settings', icon: 'credit-card', shortcut: '⌘B' },
993
- { label: 'Settings', value: 'settings', group: 'Settings', icon: 'settings', shortcut: '⌘S' }
994
- ];
995
- this.className = '';
996
- this.itemSelect = new EventEmitter();
997
- this.openChange = new EventEmitter();
998
- this.query = '';
999
- }
1000
- get filteredItems() {
1001
- const q = this.query.toLowerCase().trim();
1002
- if (!q)
1003
- return this.items;
1004
- return this.items.filter((item) => item.label.toLowerCase().includes(q));
1005
- }
1006
- get groupedItems() {
1007
- var _a;
1008
- const map = new Map();
1009
- for (const item of this.filteredItems) {
1010
- const key = item.group || '';
1011
- const arr = (_a = map.get(key)) !== null && _a !== void 0 ? _a : [];
1012
- arr.push(item);
1013
- map.set(key, arr);
1014
- }
1015
- return Array.from(map.entries()).map(([name, items]) => ({ name, items }));
1016
- }
1017
- onQueryChange(event) {
1018
- this.query = event.target.value;
1019
- }
1020
- toggleOpen() {
1021
- this.openChange.emit(!this.open);
1022
- }
1023
- select(value) {
1024
- this.itemSelect.emit(value);
1025
- }
1026
- }
1027
- PdmCommandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCommandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1028
- PdmCommandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmCommandComponent, selector: "pdm-command", inputs: { open: "open", hintLabel: "hintLabel", hintKey: "hintKey", placeholder: "placeholder", emptyMessage: "emptyMessage", items: "items", className: "className" }, outputs: { itemSelect: "itemSelect", openChange: "openChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-[14px] font-medium leading-5 text-[#737373]\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-[6px] border border-[#e5e5e5] bg-[#f5f5f5] px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-[#737373]\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-[12px] leading-4 text-[#737373]\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-[10px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"flex items-center gap-2 border-b border-[#e5e5e5] px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-[#737373]\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-[14px] leading-5 text-[#0a0a0a] outline-none placeholder:text-[#737373]\"\n />\n </div>\n\n <div class=\"max-h-[300px] overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-[6px] text-[12px] leading-4 text-[#737373]\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-[6px] px-2 py-[6px] text-left\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-[#f5f5f5]' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-[#0a0a0a]\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-[14px] leading-5 text-[#0a0a0a]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[#737373]\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-[#e5e5e5]\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-[14px] text-[#737373]\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1029
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCommandComponent, decorators: [{
1030
- type: Component,
1031
- args: [{ selector: 'pdm-command', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div *ngIf=\"!open\" class=\"flex items-center gap-1\">\n <span class=\"text-[14px] font-medium leading-5 text-[#737373]\">{{ hintLabel }}</span>\n <button\n type=\"button\"\n class=\"inline-flex h-5 items-center gap-0.5 rounded-[6px] border border-[#e5e5e5] bg-[#f5f5f5] px-1.5\"\n (click)=\"toggleOpen()\"\n >\n <pdm-icon name=\"command\" [size]=\"12\" className=\"text-[#737373]\" [decorative]=\"true\"></pdm-icon>\n <span class=\"text-[12px] leading-4 text-[#737373]\">{{ hintKey }}</span>\n </button>\n </div>\n\n <section\n *ngIf=\"open\"\n class=\"flex w-full flex-col overflow-hidden rounded-[10px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"flex items-center gap-2 border-b border-[#e5e5e5] px-3\">\n <pdm-icon name=\"search\" [size]=\"16\" className=\"text-[#737373]\" [decorative]=\"true\"></pdm-icon>\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n [value]=\"query\"\n (input)=\"onQueryChange($event)\"\n class=\"h-10 w-full bg-transparent py-3 text-[14px] leading-5 text-[#0a0a0a] outline-none placeholder:text-[#737373]\"\n />\n </div>\n\n <div class=\"max-h-[300px] overflow-y-auto p-1\">\n <ng-container *ngFor=\"let group of groupedItems; let groupIndex = index\">\n <div *ngIf=\"group.name\" class=\"px-2 py-[6px] text-[12px] leading-4 text-[#737373]\">{{ group.name }}</div>\n <button\n *ngFor=\"let item of group.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex w-full items-center gap-2 rounded-[6px] px-2 py-[6px] text-left\"\n [ngClass]=\"[\n item.disabled ? 'opacity-50' : '',\n item.label === 'Calendar' ? 'bg-[#f5f5f5]' : ''\n ]\"\n (click)=\"select(item.value)\"\n >\n <span class=\"inline-flex h-4 w-4 items-center justify-center text-[#0a0a0a]\">\n <pdm-icon *ngIf=\"item.icon\" [name]=\"item.icon\" [size]=\"16\" [decorative]=\"true\"></pdm-icon>\n </span>\n <span class=\"min-w-0 flex-1 text-[14px] leading-5 text-[#0a0a0a]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[#737373]\">{{ item.shortcut }}</span>\n </button>\n <div *ngIf=\"groupIndex === 0 && groupedItems.length > 1\" class=\"my-1 border-t border-[#e5e5e5]\"></div>\n </ng-container>\n\n <p *ngIf=\"filteredItems.length === 0\" class=\"py-6 text-center text-[14px] text-[#737373]\">{{ emptyMessage }}</p>\n </div>\n </section>\n</div>\n" }]
1032
- }], propDecorators: { open: [{
1033
- type: Input
1034
- }], hintLabel: [{
1035
- type: Input
1036
- }], hintKey: [{
1037
- type: Input
1038
- }], placeholder: [{
1039
- type: Input
1040
- }], emptyMessage: [{
1041
- type: Input
1042
- }], items: [{
1043
- type: Input
1044
- }], className: [{
1045
- type: Input
1046
- }], itemSelect: [{
1047
- type: Output
1048
- }], openChange: [{
1049
- type: Output
1050
- }] } });
1051
-
1052
- class PdmContextMenuComponent {
1053
- constructor(elementRef) {
1054
- this.elementRef = elementRef;
1055
- this.items = [
1056
- { type: 'item', label: 'Back', value: 'back', inset: true, shortcut: '⌘[' },
1057
- { type: 'item', label: 'Forward', value: 'forward', inset: true, shortcut: '⌘]', disabled: true },
1058
- { type: 'item', label: 'Reload', value: 'reload', inset: true, shortcut: '⌘R' },
1059
- { type: 'item', label: 'More Tools', value: 'more-tools', inset: true, showChevron: true },
1060
- { type: 'separator' },
1061
- { type: 'item', label: 'Show Bookmarks Bar', value: 'show-bookmarks', checked: true },
1062
- { type: 'item', label: 'Show Full URLs', value: 'show-urls', inset: true },
1063
- { type: 'separator' },
1064
- { type: 'label', label: 'People' },
1065
- { type: 'separator' },
1066
- { type: 'item', label: 'Pedro Duarte', value: 'pedro', selectedDot: true },
1067
- { type: 'item', label: 'Colm Tuite', value: 'colm', inset: true }
1068
- ];
1069
- this.className = '';
1070
- this.triggerLabel = 'Right click here';
1071
- this.width = 300;
1072
- this.height = 150;
1073
- this.itemSelect = new EventEmitter();
1074
- this.open = false;
1075
- this.x = 0;
1076
- this.y = 0;
1077
- }
1078
- onContextMenu(event) {
1079
- event.preventDefault();
1080
- this.x = event.clientX;
1081
- this.y = event.clientY;
1082
- this.open = true;
1083
- }
1084
- select(item) {
1085
- if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value)
1086
- return;
1087
- this.itemSelect.emit(item.value);
1088
- this.open = false;
1089
- }
1090
- onEsc() {
1091
- this.open = false;
1092
- }
1093
- onDocumentClick(event) {
1094
- if (!this.open)
1095
- return;
1096
- const target = event.target;
1097
- if (target && !this.elementRef.nativeElement.contains(target)) {
1098
- this.open = false;
1099
- }
1100
- }
1101
- }
1102
- PdmContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1103
- PdmContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmContextMenuComponent, selector: "pdm-context-menu", inputs: { items: "items", className: "className", triggerLabel: "triggerLabel", width: "width", height: "height" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-[8px] border border-dashed border-[#e5e5e5]\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-[208px] rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div class=\"px-1 pt-1\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-1 border-t border-[#e5e5e5]\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"h-8 px-8 py-[6px] text-[14px] font-semibold leading-5 text-[#0a0a0a]\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex h-8 w-full items-center rounded-[6px] py-[6px] pr-2 text-left disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-[#0a0a0a]\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-[#0a0a0a]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-[14px] leading-5 text-[#0a0a0a]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[#737373]\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmContextMenuComponent, decorators: [{
1105
- type: Component,
1106
- args: [{ selector: 'pdm-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\" (contextmenu)=\"onContextMenu($event)\">\n <div\n class=\"flex items-center justify-center rounded-[8px] border border-dashed border-[#e5e5e5]\"\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n >\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ triggerLabel }}</span>\n </div>\n\n <div\n *ngIf=\"open\"\n class=\"fixed z-50 w-[208px] rounded-[8px] border border-[#e5e5e5] bg-white shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]\"\n [style.left.px]=\"x + 4\"\n [style.top.px]=\"y + 2\"\n >\n <div class=\"px-1 pt-1\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-1 border-t border-[#e5e5e5]\"></div>\n\n <div *ngIf=\"item.type === 'label'\" class=\"h-8 px-8 py-[6px] text-[14px] font-semibold leading-5 text-[#0a0a0a]\">\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"flex h-8 w-full items-center rounded-[6px] py-[6px] pr-2 text-left disabled:opacity-50\"\n [ngClass]=\"item.inset ? 'pl-8' : 'px-2'\"\n (click)=\"select(item)\"\n >\n <span class=\"mr-2 inline-flex w-4 shrink-0 items-center justify-center text-[#0a0a0a]\">\n <svg *ngIf=\"item.checked\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.selectedDot\" class=\"h-2 w-2 rounded-full bg-[#0a0a0a]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate text-[14px] leading-5 text-[#0a0a0a]\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-4 text-[#737373]\">{{ item.shortcut }}</span>\n <svg *ngIf=\"item.showChevron\" viewBox=\"0 0 24 24\" class=\"h-3.5 w-3.5 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
1107
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { items: [{
1108
- type: Input
1109
- }], className: [{
1110
- type: Input
1111
- }], triggerLabel: [{
1112
- type: Input
1113
- }], width: [{
1114
- type: Input
1115
- }], height: [{
1116
- type: Input
1117
- }], itemSelect: [{
1118
- type: Output
1119
- }], onEsc: [{
1120
- type: HostListener,
1121
- args: ['document:keydown.escape']
1122
- }], onDocumentClick: [{
1123
- type: HostListener,
1124
- args: ['document:click', ['$event']]
1125
- }] } });
1126
-
1127
- class PdmDataTableComponent {
1128
- constructor() {
1129
- this.className = '';
1130
- this.filterPlaceholder = 'Filter emails...';
1131
- this.columnsLabel = 'Columns';
1132
- this.rows = [
1133
- { id: '1', status: 'Success', email: 'ken99@yahoo.com', amount: '$316.00' },
1134
- { id: '2', status: 'Success', email: 'abe45@gmail.com', amount: '$242.00' },
1135
- { id: '3', status: 'Processing', email: 'monserrat44@gmail.com', amount: '$837.00' },
1136
- { id: '4', status: 'Success', email: 'silas22@gmail.com', amount: '$874.00' },
1137
- { id: '5', status: 'Failed', email: 'carmella@hotmail.com', amount: '$721.00' }
1138
- ];
1139
- this.page = 1;
1140
- this.pageSize = 5;
1141
- this.query = '';
1142
- this.queryChange = new EventEmitter();
1143
- this.rowAction = new EventEmitter();
1144
- this.pageChange = new EventEmitter();
1145
- this.selectionChange = new EventEmitter();
1146
- }
1147
- get filteredRows() {
1148
- const q = this.query.trim().toLowerCase();
1149
- if (!q)
1150
- return this.rows;
1151
- return this.rows.filter((r) => r.email.toLowerCase().includes(q));
1152
- }
1153
- get pagedRows() {
1154
- const start = (this.page - 1) * this.pageSize;
1155
- return this.filteredRows.slice(start, start + this.pageSize);
1156
- }
1157
- get totalPages() {
1158
- return Math.max(1, Math.ceil(this.filteredRows.length / this.pageSize));
1159
- }
1160
- get selectedCount() {
1161
- return this.rows.filter((row) => row.selected).length;
1162
- }
1163
- onQueryInput(event) {
1164
- const value = event.target.value;
1165
- this.queryChange.emit(value);
1166
- }
1167
- onToggleRow(row, event) {
1168
- this.selectionChange.emit({ id: row.id, selected: event.target.checked });
1169
- }
1170
- previous() {
1171
- if (this.page <= 1)
1172
- return;
1173
- this.pageChange.emit(this.page - 1);
1174
- }
1175
- next() {
1176
- if (this.page >= this.totalPages)
1177
- return;
1178
- this.pageChange.emit(this.page + 1);
1179
- }
1180
- onAction(row) {
1181
- this.rowAction.emit(row.id);
1182
- }
1183
- }
1184
- PdmDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1185
- PdmDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmDataTableComponent, selector: "pdm-data-table", inputs: { className: "className", filterPlaceholder: "filterPlaceholder", columnsLabel: "columnsLabel", rows: "rows", page: "page", pageSize: "pageSize", query: "query" }, outputs: { queryChange: "queryChange", rowAction: "rowAction", pageChange: "pageChange", selectionChange: "selectionChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex w-[590px] flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 w-[384px] rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[#737373] outline-none\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white\">\n <table class=\"w-full border-collapse text-[14px] leading-5 text-[#0a0a0a]\">\n <thead>\n <tr class=\"border-b border-[#e5e5e5]\">\n <th class=\"w-[32px] px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-[4px] border border-[#e5e5e5]\" /></th>\n <th class=\"w-[120px] px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"w-[270px] px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-[6px] px-3 py-2\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-[100px] px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-[#e5e5e5] last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-[4px] border border-[#e5e5e5]\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-[14px] leading-5 text-[#737373]\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDataTableComponent, decorators: [{
1187
- type: Component,
1188
- args: [{ selector: 'pdm-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex w-[590px] flex-col items-end', className]\">\n <div class=\"flex w-full items-center justify-between py-4\">\n <input\n type=\"text\"\n [placeholder]=\"filterPlaceholder\"\n [value]=\"query\"\n (input)=\"onQueryInput($event)\"\n class=\"h-9 w-[384px] rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] placeholder:text-[#737373] outline-none\"\n />\n\n <button type=\"button\" class=\"inline-flex h-9 items-center gap-2 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">\n <span class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ columnsLabel }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <div class=\"w-full overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white\">\n <table class=\"w-full border-collapse text-[14px] leading-5 text-[#0a0a0a]\">\n <thead>\n <tr class=\"border-b border-[#e5e5e5]\">\n <th class=\"w-[32px] px-2 text-left font-medium\"><input type=\"checkbox\" class=\"h-4 w-4 rounded-[4px] border border-[#e5e5e5]\" /></th>\n <th class=\"w-[120px] px-2 py-2 text-left font-medium\">Status</th>\n <th class=\"w-[270px] px-2 py-2 text-left font-medium\">\n <button type=\"button\" class=\"inline-flex items-center gap-1 rounded-[6px] px-3 py-2\">\n <span>Email</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 6L4 10L8 14M16 18L20 14L16 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n </th>\n <th class=\"w-[100px] px-2 py-2 text-right font-medium\">Amount</th>\n <th class=\"px-2 py-2\"></th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let row of pagedRows\" class=\"border-b border-[#e5e5e5] last:border-b-0\">\n <td class=\"px-2 py-2\"><input type=\"checkbox\" [checked]=\"row.selected\" (change)=\"onToggleRow(row, $event)\" class=\"h-4 w-4 rounded-[4px] border border-[#e5e5e5]\" /></td>\n <td class=\"px-2 py-2\">{{ row.status }}</td>\n <td class=\"px-2 py-2\">{{ row.email }}</td>\n <td class=\"px-2 py-2 text-right\">{{ row.amount }}</td>\n <td class=\"px-2 py-2\">\n <button type=\"button\" class=\"inline-flex h-8 w-8 items-center justify-center\" (click)=\"onAction(row)\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </svg>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"flex w-full items-center gap-2 py-4\">\n <p class=\"flex-1 pr-2 text-[14px] leading-5 text-[#737373]\">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"previous()\">Previous</button>\n <button type=\"button\" class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)] disabled:opacity-50\" [disabled]=\"page >= totalPages\" (click)=\"next()\">Next</button>\n </div>\n</section>\n" }]
1189
- }], propDecorators: { className: [{
1190
- type: Input
1191
- }], filterPlaceholder: [{
1192
- type: Input
1193
- }], columnsLabel: [{
1194
- type: Input
1195
- }], rows: [{
1196
- type: Input
1197
- }], page: [{
1198
- type: Input
1199
- }], pageSize: [{
1200
- type: Input
1201
- }], query: [{
1202
- type: Input
1203
- }], queryChange: [{
1204
- type: Output
1205
- }], rowAction: [{
1206
- type: Output
1207
- }], pageChange: [{
1208
- type: Output
1209
- }], selectionChange: [{
1210
- type: Output
1211
- }] } });
1212
-
1213
- class PdmDatePickerComponent {
1214
- constructor() {
1215
- this.variant = 'default';
1216
- this.className = '';
1217
- this.open = false;
1218
- this.label = 'Date of Birth';
1219
- this.value = 'Select a date';
1220
- this.month = 6;
1221
- this.year = 2025;
1222
- this.selectedDay = 25;
1223
- this.time = '10:30:00';
1224
- this.naturalLanguageValue = 'In 2 days';
1225
- this.naturalLanguageHint = 'Your post will be published on June 21, 2025.';
1226
- this.openChange = new EventEmitter();
1227
- this.valueChange = new EventEmitter();
1228
- }
1229
- toggle() {
1230
- this.openChange.emit(!this.open);
1231
- }
1232
- selectPreset(value) {
1233
- this.valueChange.emit(value);
1234
- }
1235
- get monthLabel() {
1236
- return new Date(this.year, this.month - 1, 1).toLocaleString('en-US', { month: 'short' });
1237
- }
1238
- }
1239
- PdmDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1240
- PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { variant: "variant", className: "className", open: "open", label: "label", value: "value", month: "month", year: "year", selectedDay: "selectedDay", time: "time", naturalLanguageValue: "naturalLanguageValue", naturalLanguageHint: "naturalLanguageHint" }, outputs: { openChange: "openChange", valueChange: "valueChange" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-[250px]\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 w-[150px] items-center justify-between rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" (click)=\"toggle()\">\n <span class=\"truncate text-[12px] leading-4 text-[#0a0a0a]\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-[92px] items-center rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[12px] leading-4 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-[192px] items-center justify-between rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" (click)=\"toggle()\">\n <span class=\"truncate text-[16px] leading-6 text-[#0a0a0a]\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"max-w-[192px] text-[12px] leading-4 text-[#737373]\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-[250px] rounded-[10px] border border-[#e5e5e5] bg-white p-3 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[#0a0a0a]\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[#e5e5e5] px-2 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[#e5e5e5] px-2 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[#0a0a0a]\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: ["mode", "month", "year", "selectedDay", "rangeStartDay", "rangeEndDay", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDatePickerComponent, decorators: [{
1242
- type: Component,
1243
- args: [{ selector: 'pdm-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col gap-3', className]\" class=\"w-[250px]\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ label }}</label>\n\n <div class=\"flex items-center gap-2\" *ngIf=\"variant === 'date-time'\">\n <button type=\"button\" class=\"flex h-9 w-[150px] items-center justify-between rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" (click)=\"toggle()\">\n <span class=\"truncate text-[12px] leading-4 text-[#0a0a0a]\">{{ value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n <div class=\"flex h-9 w-[92px] items-center rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[12px] leading-4 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ time }}</div>\n </div>\n\n <div *ngIf=\"variant !== 'date-time'\" class=\"flex flex-col gap-2\">\n <button type=\"button\" class=\"flex h-9 w-[192px] items-center justify-between rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" (click)=\"toggle()\">\n <span class=\"truncate text-[16px] leading-6 text-[#0a0a0a]\">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4 text-[#0a0a0a]\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>\n </button>\n\n <p *ngIf=\"variant === 'natural-language'\" class=\"max-w-[192px] text-[12px] leading-4 text-[#737373]\">{{ naturalLanguageHint }}</p>\n </div>\n\n <div *ngIf=\"open\" class=\"w-[250px] rounded-[10px] border border-[#e5e5e5] bg-white p-3 shadow-[0_1px_3px_rgba(0,0,0,0.1)]\">\n <div class=\"mb-4 flex items-center justify-between\">\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[#0a0a0a]\">\u2039</button>\n <div class=\"flex items-center gap-1.5\">\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[#e5e5e5] px-2 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ monthLabel }} <span>\u02C5</span></button>\n <button type=\"button\" class=\"inline-flex h-8 items-center gap-1 rounded-[6px] border border-[#e5e5e5] px-2 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ year }} <span>\u02C5</span></button>\n </div>\n <button type=\"button\" class=\"h-8 w-8 rounded-[6px] text-[#0a0a0a]\">\u203A</button>\n </div>\n\n <pdm-calendar [month]=\"month\" [year]=\"year\" [selectedDay]=\"selectedDay\" mode=\"single\"></pdm-calendar>\n\n <div *ngIf=\"variant === 'with-input' || variant === 'natural-language'\" class=\"mt-3 flex gap-2\">\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]\" (click)=\"selectPreset('Today')\">Today</button>\n <button type=\"button\" class=\"h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]\" (click)=\"selectPreset('Tomorrow')\">Tomorrow</button>\n </div>\n </div>\n</section>\n" }]
1244
- }], propDecorators: { variant: [{
1245
- type: Input
1246
- }], className: [{
1247
- type: Input
1248
- }], open: [{
1249
- type: Input
1250
- }], label: [{
1251
- type: Input
1252
- }], value: [{
1253
- type: Input
1254
- }], month: [{
1255
- type: Input
1256
- }], year: [{
1257
- type: Input
1258
- }], selectedDay: [{
1259
- type: Input
1260
- }], time: [{
1261
- type: Input
1262
- }], naturalLanguageValue: [{
1263
- type: Input
1264
- }], naturalLanguageHint: [{
1265
- type: Input
1266
- }], openChange: [{
1267
- type: Output
1268
- }], valueChange: [{
1269
- type: Output
1270
- }] } });
1271
-
1272
- class PdmDialogComponent {
1273
- constructor() {
1274
- this.open = false;
1275
- this.variant = 'default';
1276
- this.title = 'Edit profile';
1277
- this.description = 'Make changes to your profile here. Click save when you\'re done.';
1278
- this.closeOnBackdrop = true;
1279
- this.closeOnEsc = true;
1280
- this.showCloseButton = true;
1281
- this.primaryActionText = 'Save changes';
1282
- this.secondaryActionText = 'Cancel';
1283
- this.nameLabel = 'Name';
1284
- this.nameValue = 'Pedro Duarte';
1285
- this.usernameLabel = 'Username';
1286
- this.usernameValue = '@peduarte';
1287
- this.linkValue = 'https://ui.shadcn.com/docs/installation';
1288
- this.className = '';
1289
- this.openChange = new EventEmitter();
1290
- this.primaryAction = new EventEmitter();
1291
- this.secondaryAction = new EventEmitter();
1292
- }
1293
- onEsc() {
1294
- if (this.open && this.closeOnEsc) {
1295
- this.close();
1296
- }
1297
- }
1298
- close() {
1299
- this.openChange.emit(false);
1300
- }
1301
- onPrimaryAction() {
1302
- this.primaryAction.emit();
1303
- }
1304
- onSecondaryAction() {
1305
- this.secondaryAction.emit();
1306
- }
1307
- onBackdropClick() {
1308
- if (this.closeOnBackdrop) {
1309
- this.close();
1310
- }
1311
- }
1312
- }
1313
- PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1314
- PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", linkValue: "linkValue", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[423px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\n <h2 class=\"m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-[14px] leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a] opacity-70\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[#171717] px-4 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[#f5f5f5] px-4 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDialogComponent, decorators: [{
1316
- type: Component,
1317
- args: [{ selector: 'pdm-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"onBackdropClick()\"></div>\n <section\n role=\"dialog\"\n aria-modal=\"true\"\n [ngClass]=\"[\n 'relative z-10 w-full max-w-[423px] rounded-[10px] border border-[#e5e5e5] bg-white p-6 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]',\n className\n ]\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <div class=\"min-w-0\">\n <h2 class=\"m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-[14px] leading-5 text-[#737373]\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a] opacity-70\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <ng-container *ngIf=\"variant === 'default'; else customCloseDialog\">\n <div class=\"mt-4 flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ nameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ nameValue }}</div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <label class=\"text-[14px] font-medium leading-5 text-[#0a0a0a]\">{{ usernameLabel }}</label>\n <div class=\"h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <div class=\"mt-4 flex justify-end gap-2\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[#171717] px-4 text-[14px] font-medium leading-5 text-[#fafafa] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #customCloseDialog>\n <div class=\"mt-4 h-9 rounded-[8px] border border-[#e5e5e5] bg-white px-3 py-1 text-[16px] leading-6 text-[#737373] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\">\n {{ linkValue }}\n </div>\n <div class=\"mt-4 flex\">\n <button\n type=\"button\"\n class=\"h-9 rounded-[10px] bg-[#f5f5f5] px-4 text-[14px] font-medium leading-5 text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n (click)=\"onSecondaryAction()\"\n >\n Close\n </button>\n </div>\n </ng-template>\n\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n </section>\n</div>\n" }]
1318
- }], propDecorators: { open: [{
1319
- type: Input
1320
- }], variant: [{
1321
- type: Input
1322
- }], title: [{
1323
- type: Input
1324
- }], description: [{
1325
- type: Input
1326
- }], closeOnBackdrop: [{
1327
- type: Input
1328
- }], closeOnEsc: [{
1329
- type: Input
1330
- }], showCloseButton: [{
1331
- type: Input
1332
- }], primaryActionText: [{
1333
- type: Input
1334
- }], secondaryActionText: [{
1335
- type: Input
1336
- }], nameLabel: [{
1337
- type: Input
1338
- }], nameValue: [{
1339
- type: Input
1340
- }], usernameLabel: [{
1341
- type: Input
1342
- }], usernameValue: [{
1343
- type: Input
1344
- }], linkValue: [{
1345
- type: Input
1346
- }], className: [{
1347
- type: Input
1348
- }], openChange: [{
1349
- type: Output
1350
- }], primaryAction: [{
1351
- type: Output
1352
- }], secondaryAction: [{
1353
- type: Output
1354
- }], onEsc: [{
1355
- type: HostListener,
1356
- args: ['document:keydown.escape']
1357
- }] } });
1358
-
1359
- class PdmDropdownMenuComponent {
1360
- constructor(elementRef) {
1361
- this.elementRef = elementRef;
1362
- this.triggerText = 'Open';
1363
- this.variant = 'default';
1364
- this.items = [];
1365
- this.closeOnSelect = true;
1366
- this.panelClassName = '';
1367
- this.className = '';
1368
- this.itemSelect = new EventEmitter();
1369
- this.itemsChange = new EventEmitter();
1370
- this.open = false;
1371
- }
1372
- toggle() {
1373
- this.open = !this.open;
1374
- }
1375
- get resolvedItems() {
1376
- if (this.items.length) {
1377
- return this.items;
1378
- }
1379
- if (this.variant === 'checkboxes') {
1380
- return [
1381
- { type: 'label', label: 'Appearance' },
1382
- { type: 'separator' },
1383
- { type: 'item', label: 'Status Bar', value: 'status-bar', checked: true },
1384
- { type: 'item', label: 'Activity Bar', value: 'activity-bar', checked: false },
1385
- { type: 'item', label: 'Panel', value: 'panel', checked: false }
1386
- ];
1387
- }
1388
- if (this.variant === 'radio-group') {
1389
- return [
1390
- { type: 'label', label: 'Panel Position' },
1391
- { type: 'separator' },
1392
- { type: 'item', label: 'Top', value: 'top', radioSelected: true },
1393
- { type: 'item', label: 'Bottom', value: 'bottom', radioSelected: false },
1394
- { type: 'item', label: 'Right', value: 'right', radioSelected: false }
1395
- ];
1396
- }
1397
- return [
1398
- { type: 'label', label: 'My Account', inset: true },
1399
- { type: 'separator' },
1400
- { type: 'item', label: 'Profile', value: 'profile', shortcut: '⇧⌘P' },
1401
- { type: 'item', label: 'Billing', value: 'billing', shortcut: '⌘B' },
1402
- { type: 'item', label: 'Settings', value: 'settings', shortcut: '⌘S' },
1403
- { type: 'item', label: 'Keyboard shortcuts', value: 'shortcuts', shortcut: '⌘K' },
1404
- { type: 'separator' },
1405
- { type: 'item', label: 'Team', value: 'team' },
1406
- { type: 'item', label: 'Invite users', value: 'invite', showChevron: true },
1407
- { type: 'item', label: 'New Team', value: 'new-team', shortcut: '⌘+T' },
1408
- { type: 'separator' },
1409
- { type: 'item', label: 'GitHub', value: 'github' },
1410
- { type: 'item', label: 'Support', value: 'support' },
1411
- { type: 'item', label: 'API', value: 'api', disabled: true },
1412
- { type: 'separator' },
1413
- { type: 'item', label: 'Log out', value: 'logout', shortcut: '⇧⌘Q' }
1414
- ];
1415
- }
1416
- select(item) {
1417
- if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value)
1418
- return;
1419
- if (this.variant === 'checkboxes') {
1420
- const updated = this.resolvedItems.map((entry) => entry.value === item.value ? Object.assign(Object.assign({}, entry), { checked: !entry.checked }) : entry);
1421
- this.itemsChange.emit(updated);
1422
- }
1423
- if (this.variant === 'radio-group') {
1424
- const updated = this.resolvedItems.map((entry) => entry.type === 'item'
1425
- ? Object.assign(Object.assign({}, entry), { radioSelected: entry.value === item.value }) : entry);
1426
- this.itemsChange.emit(updated);
1427
- }
1428
- this.itemSelect.emit(item.value);
1429
- const shouldClose = this.variant === 'default' ? this.closeOnSelect : false;
1430
- if (shouldClose) {
1431
- this.open = false;
1432
- }
1433
- }
1434
- onEsc() {
1435
- this.open = false;
1436
- }
1437
- onDocumentClick(event) {
1438
- if (!this.open)
1439
- return;
1440
- const target = event.target;
1441
- if (target && !this.elementRef.nativeElement.contains(target)) {
1442
- this.open = false;
1443
- }
1444
- }
1445
- }
1446
- PdmDropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDropdownMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1447
- PdmDropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmDropdownMenuComponent, selector: "pdm-dropdown-menu", inputs: { triggerText: "triggerText", variant: "variant", items: "items", closeOnSelect: "closeOnSelect", panelClassName: "panelClassName", className: "className" }, outputs: { itemSelect: "itemSelect", itemsChange: "itemsChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-[224px] overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white p-1 text-[#0a0a0a] shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-[5px] h-px bg-[#f1f5f9]\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-[14px] font-semibold leading-5 text-[#0a0a0a]', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full items-center gap-2 rounded-[6px] px-2 py-1.5 text-left text-[14px] leading-5 text-[#0a0a0a] transition-colors hover:bg-[#f5f5f5] disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-[#0a0a0a]\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-[#0a0a0a]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-5 text-[#64748b]\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-[16px] leading-none text-[#475569]\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDropdownMenuComponent, decorators: [{
1449
- type: Component,
1450
- args: [{ selector: 'pdm-dropdown-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 items-center justify-center rounded-[10px] border border-[#e5e5e5] bg-white px-4 text-[14px] font-medium text-[#0a0a0a] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\"\n [attr.aria-expanded]=\"open\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <div\n *ngIf=\"open\"\n [ngClass]=\"[\n 'absolute left-0 top-full z-50 mt-2 min-w-[224px] overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white p-1 text-[#0a0a0a] shadow-[0_2px_4px_-2px_rgba(0,0,0,0.1),0_4px_6px_-1px_rgba(0,0,0,0.1)]',\n panelClassName\n ]\"\n >\n <ng-container *ngFor=\"let item of resolvedItems\">\n <div *ngIf=\"item.type === 'separator'\" class=\"my-[5px] h-px bg-[#f1f5f9]\"></div>\n\n <div\n *ngIf=\"item.type === 'label'\"\n [ngClass]=\"['px-2 py-1.5 text-[14px] font-semibold leading-5 text-[#0a0a0a]', item.inset ? 'pl-8' : '']\"\n >\n {{ item.label }}\n </div>\n\n <button\n *ngIf=\"!item.type || item.type === 'item'\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'relative flex w-full items-center gap-2 rounded-[6px] px-2 py-1.5 text-left text-[14px] leading-5 text-[#0a0a0a] transition-colors hover:bg-[#f5f5f5] disabled:pointer-events-none disabled:opacity-50',\n item.inset ? 'pl-8' : ''\n ]\"\n (click)=\"select(item)\"\n >\n <span class=\"inline-flex h-4 w-4 shrink-0 items-center justify-center\">\n <svg\n *ngIf=\"item.checked\"\n viewBox=\"0 0 24 24\"\n class=\"h-3.5 w-3.5 text-[#0a0a0a]\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n <span *ngIf=\"item.radioSelected\" class=\"h-2 w-2 rounded-full bg-[#0a0a0a]\"></span>\n </span>\n <span class=\"min-w-0 flex-1 truncate\">{{ item.label }}</span>\n <span *ngIf=\"item.shortcut\" class=\"text-[12px] leading-5 text-[#64748b]\">{{ item.shortcut }}</span>\n <span *ngIf=\"item.showChevron\" class=\"text-[16px] leading-none text-[#475569]\">\u203A</span>\n </button>\n </ng-container>\n </div>\n</div>\n" }]
1451
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { triggerText: [{
1452
- type: Input
1453
- }], variant: [{
1454
- type: Input
1455
- }], items: [{
1456
- type: Input
1457
- }], closeOnSelect: [{
1458
- type: Input
1459
- }], panelClassName: [{
1460
- type: Input
1461
- }], className: [{
1462
- type: Input
1463
- }], itemSelect: [{
1464
- type: Output
1465
- }], itemsChange: [{
1466
- type: Output
1467
- }], onEsc: [{
1468
- type: HostListener,
1469
- args: ['document:keydown.escape']
1470
- }], onDocumentClick: [{
1471
- type: HostListener,
1472
- args: ['document:click', ['$event']]
1473
- }] } });
1474
-
1475
- class PdmDrawerComponent {
1476
- constructor() {
1477
- this.open = false;
1478
- this.variant = 'drawer';
1479
- this.className = '';
1480
- this.title = 'Move Goal';
1481
- this.description = 'Set your daily activity goal.';
1482
- this.value = 350;
1483
- this.unit = 'CALORIES/DAY';
1484
- this.profileTitle = 'Edit profile';
1485
- this.profileDescription = 'Make changes to your profile here. Click save when you\'re done.';
1486
- this.nameLabel = 'Name';
1487
- this.nameValue = 'Pedro Duarte';
1488
- this.usernameLabel = 'Username';
1489
- this.usernameValue = '@peduarte';
1490
- this.openChange = new EventEmitter();
1491
- this.primaryAction = new EventEmitter();
1492
- this.secondaryAction = new EventEmitter();
1493
- this.bars = [72, 54, 58, 49, 60, 65, 44, 53, 61, 52, 63, 48, 66];
1494
- }
1495
- close() {
1496
- this.openChange.emit(false);
1497
- }
1498
- onPrimaryAction() {
1499
- this.primaryAction.emit();
1500
- }
1501
- onSecondaryAction() {
1502
- this.secondaryAction.emit();
1503
- }
1504
- }
1505
- PdmDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1506
- PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", variant: "variant", className: "className", title: "title", description: "description", value: "value", unit: "unit", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-[1229px] rounded-t-[10px] border border-[#e5e5e5] bg-white p-6 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-[#e5e5e5]\"></div>\n\n <div class=\"mx-auto flex max-w-[320px] flex-col items-center\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[#737373]\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]\">-</button>\n <div class=\"text-center\">\n <div class=\"text-[48px] font-semibold leading-none text-[#0a0a0a]\">{{ value }}</div>\n <div class=\"mt-1 text-[10px] tracking-wide text-[#737373]\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-[58px] w-full items-end gap-[3px]\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-[#171717]\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-[10px] bg-[#171717] text-[14px] font-medium text-[#fafafa]\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-[10px] border border-[#e5e5e5] bg-white text-[14px] font-medium text-[#0a0a0a]\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-[423px] -translate-x-1/2 -translate-y-1/2 rounded-[10px] border border-[#e5e5e5] bg-white p-4 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[#737373]\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-[#737373]\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-[8px] bg-[#171717] text-[12px] font-medium text-[#fafafa]\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDrawerComponent, decorators: [{
1508
- type: Component,
1509
- args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\" [ngClass]=\"className\">\n <div class=\"absolute inset-0 bg-[rgba(0,0,0,0.3)]\" (click)=\"close()\"></div>\n\n <section\n *ngIf=\"variant === 'drawer'; else responsiveDialog\"\n class=\"absolute inset-x-0 bottom-0 mx-auto w-full max-w-[1229px] rounded-t-[10px] border border-[#e5e5e5] bg-white p-6 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]\"\n >\n <div class=\"mx-auto mb-4 h-1 w-10 rounded-full bg-[#e5e5e5]\"></div>\n\n <div class=\"mx-auto flex max-w-[320px] flex-col items-center\">\n <h3 class=\"m-0 text-[14px] font-semibold leading-5 text-[#0a0a0a]\">{{ title }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[#737373]\">{{ description }}</p>\n\n <div class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]\">-</button>\n <div class=\"text-center\">\n <div class=\"text-[48px] font-semibold leading-none text-[#0a0a0a]\">{{ value }}</div>\n <div class=\"mt-1 text-[10px] tracking-wide text-[#737373]\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]\">+</button>\n </div>\n\n <div class=\"mt-3 flex h-[58px] w-full items-end gap-[3px]\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-[#171717]\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-9 w-full rounded-[10px] bg-[#171717] text-[14px] font-medium text-[#fafafa]\" (click)=\"onPrimaryAction()\">Submit</button>\n <button type=\"button\" class=\"mt-2 h-9 w-full rounded-[10px] border border-[#e5e5e5] bg-white text-[14px] font-medium text-[#0a0a0a]\" (click)=\"onSecondaryAction()\">Cancel</button>\n </div>\n </section>\n\n <ng-template #responsiveDialog>\n <section class=\"absolute left-1/2 top-1/2 w-full max-w-[423px] -translate-x-1/2 -translate-y-1/2 rounded-[10px] border border-[#e5e5e5] bg-white p-4 shadow-[0_10px_15px_rgba(0,0,0,0.1),0_4px_6px_rgba(0,0,0,0.1)]\">\n <div class=\"flex items-start justify-between\">\n <div>\n <h3 class=\"m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]\">{{ profileTitle }}</h3>\n <p class=\"m-0 mt-1 text-[12px] leading-4 text-[#737373]\">{{ profileDescription }}</p>\n </div>\n <button type=\"button\" class=\"h-5 w-5 text-[#737373]\" (click)=\"close()\">\u00D7</button>\n </div>\n\n <div class=\"mt-3 flex flex-col gap-3\">\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]\">{{ nameValue }}</div>\n </div>\n <div>\n <label class=\"mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]\">{{ usernameValue }}</div>\n </div>\n </div>\n\n <button type=\"button\" class=\"mt-3 h-8 w-full rounded-[8px] bg-[#171717] text-[12px] font-medium text-[#fafafa]\" (click)=\"onPrimaryAction()\">Save changes</button>\n </section>\n </ng-template>\n</div>\n" }]
1510
- }], propDecorators: { open: [{
1511
- type: Input
1512
- }], variant: [{
1513
- type: Input
1514
- }], className: [{
1515
- type: Input
1516
- }], title: [{
1517
- type: Input
1518
- }], description: [{
1519
- type: Input
1520
- }], value: [{
1521
- type: Input
1522
- }], unit: [{
1523
- type: Input
1524
- }], profileTitle: [{
1525
- type: Input
1526
- }], profileDescription: [{
1527
- type: Input
1528
- }], nameLabel: [{
1529
- type: Input
1530
- }], nameValue: [{
1531
- type: Input
1532
- }], usernameLabel: [{
1533
- type: Input
1534
- }], usernameValue: [{
1535
- type: Input
1536
- }], openChange: [{
1537
- type: Output
1538
- }], primaryAction: [{
1539
- type: Output
1540
- }], secondaryAction: [{
1541
- type: Output
1542
- }] } });
1543
-
1544
- class PdmEmptyComponent {
1545
- constructor() {
1546
- this.variant = 'default';
1547
- this.title = 'No Projects Yet';
1548
- this.description = "You haven't created any projects yet. Get started by creating your first project.";
1549
- this.iconName = 'folder';
1550
- this.primaryActionLabel = '';
1551
- this.secondaryActionLabel = '';
1552
- this.linkLabel = '';
1553
- this.className = '';
1554
- this.primaryAction = new EventEmitter();
1555
- this.secondaryAction = new EventEmitter();
1556
- this.linkAction = new EventEmitter();
1557
- }
1558
- get containerClass() {
1559
- if (this.variant === 'outline') {
1560
- return 'border border-dashed border-[hsl(var(--border))] rounded-[12px]';
1561
- }
1562
- if (this.variant === 'background') {
1563
- return 'rounded-[12px] bg-[hsl(var(--muted))]';
1564
- }
1565
- return '';
1566
- }
1567
- }
1568
- PdmEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1569
- PdmEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmEmptyComponent, selector: "pdm-empty", inputs: { variant: "variant", title: "title", description: "description", iconName: "iconName", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", linkLabel: "linkLabel", className: "className" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction", linkAction: "linkAction" }, ngImport: i0, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-[hsl(var(--foreground))]', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-[10px] bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"mx-auto max-w-[420px] text-sm leading-relaxed text-[hsl(var(--muted-foreground))]\">\n {{ description }}\n </p>\n </div>\n\n <div *ngIf=\"primaryActionLabel || secondaryActionLabel\" class=\"mt-1 flex flex-wrap items-center justify-center gap-3\">\n <pdm-button *ngIf=\"primaryActionLabel\" variant=\"default\" (pressed)=\"primaryAction.emit()\">{{ primaryActionLabel }}</pdm-button>\n <pdm-button *ngIf=\"secondaryActionLabel\" variant=\"outline\" (pressed)=\"secondaryAction.emit()\">{{ secondaryActionLabel }}</pdm-button>\n </div>\n\n <button\n *ngIf=\"linkLabel\"\n type=\"button\"\n class=\"mt-1 inline-flex items-center gap-2 text-[15px] font-medium text-[hsl(var(--muted-foreground))] underline-offset-4 hover:underline\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmButtonComponent, selector: "pdm-button", inputs: ["type", "variant", "state", "size", "disabled", "loading", "className"], outputs: ["pressed"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmEmptyComponent, decorators: [{
1571
- type: Component,
1572
- args: [{ selector: 'pdm-empty', changeDetection: ChangeDetectionStrategy.OnPush, template: "<section [ngClass]=\"['flex flex-col items-center justify-center gap-4 px-6 py-10 text-center text-[hsl(var(--foreground))]', containerClass, className]\">\n <div class=\"flex h-10 w-10 items-center justify-center rounded-[10px] bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]\">\n <pdm-icon [name]=\"iconName\" [size]=\"20\"></pdm-icon>\n </div>\n\n <div class=\"space-y-2\">\n <h3 class=\"text-2xl font-semibold leading-none tracking-tight\">{{ title }}</h3>\n <p class=\"mx-auto max-w-[420px] text-sm leading-relaxed text-[hsl(var(--muted-foreground))]\">\n {{ description }}\n </p>\n </div>\n\n <div *ngIf=\"primaryActionLabel || secondaryActionLabel\" class=\"mt-1 flex flex-wrap items-center justify-center gap-3\">\n <pdm-button *ngIf=\"primaryActionLabel\" variant=\"default\" (pressed)=\"primaryAction.emit()\">{{ primaryActionLabel }}</pdm-button>\n <pdm-button *ngIf=\"secondaryActionLabel\" variant=\"outline\" (pressed)=\"secondaryAction.emit()\">{{ secondaryActionLabel }}</pdm-button>\n </div>\n\n <button\n *ngIf=\"linkLabel\"\n type=\"button\"\n class=\"mt-1 inline-flex items-center gap-2 text-[15px] font-medium text-[hsl(var(--muted-foreground))] underline-offset-4 hover:underline\"\n (click)=\"linkAction.emit()\"\n >\n <span>{{ linkLabel }}</span>\n <pdm-icon name=\"arrow-up-right\" [size]=\"16\"></pdm-icon>\n </button>\n\n <ng-content></ng-content>\n</section>\n" }]
1573
- }], propDecorators: { variant: [{
1574
- type: Input
1575
- }], title: [{
1576
- type: Input
1577
- }], description: [{
1578
- type: Input
1579
- }], iconName: [{
1580
- type: Input
1581
- }], primaryActionLabel: [{
1582
- type: Input
1583
- }], secondaryActionLabel: [{
1584
- type: Input
1585
- }], linkLabel: [{
1586
- type: Input
1587
- }], className: [{
1588
- type: Input
1589
- }], primaryAction: [{
1590
- type: Output
1591
- }], secondaryAction: [{
1592
- type: Output
1593
- }], linkAction: [{
1594
- type: Output
1595
- }] } });
1596
-
1597
- class PdmFieldComponent {
1598
- constructor() {
1599
- this.id = '';
1600
- this.label = '';
1601
- this.description = '';
1602
- this.error = '';
1603
- this.required = false;
1604
- this.disabled = false;
1605
- this.invalid = false;
1606
- this.orientation = 'vertical';
1607
- this.className = '';
1608
- this.labelClassName = '';
1609
- this.controlClassName = '';
1610
- }
1611
- get rootClass() {
1612
- return this.orientation === 'horizontal'
1613
- ? 'grid items-start gap-3 sm:grid-cols-[200px_minmax(0,1fr)] sm:gap-4'
1614
- : 'grid w-full gap-3';
1615
- }
1616
- }
1617
- PdmFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1618
- PdmFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmFieldComponent, selector: "pdm-field", inputs: { id: "id", label: "label", description: "description", error: "error", required: "required", disabled: "disabled", invalid: "invalid", orientation: "orientation", className: "className", labelClassName: "labelClassName", controlClassName: "controlClassName" }, ngImport: i0, template: "<div [ngClass]=\"[rootClass, className]\">\n <div class=\"grid gap-2\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))]', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-[hsl(var(--destructive))]\">*</span>\n </label>\n\n <p *ngIf=\"description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n\n <div [ngClass]=\"controlClassName\">\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmFieldComponent, decorators: [{
1620
- type: Component,
1621
- args: [{ selector: 'pdm-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"[rootClass, className]\">\n <div class=\"grid gap-2\">\n <label\n *ngIf=\"label\"\n [attr.for]=\"id\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))]', disabled ? 'opacity-70' : '', labelClassName]\"\n >\n {{ label }}\n <span *ngIf=\"required\" class=\"text-[hsl(var(--destructive))]\">*</span>\n </label>\n\n <p *ngIf=\"description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n\n <div [ngClass]=\"controlClassName\">\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n </div>\n</div>\n" }]
1622
- }], propDecorators: { id: [{
1623
- type: Input
1624
- }], label: [{
1625
- type: Input
1626
- }], description: [{
1627
- type: Input
1628
- }], error: [{
1629
- type: Input
1630
- }], required: [{
1631
- type: Input
1632
- }], disabled: [{
1633
- type: Input
1634
- }], invalid: [{
1635
- type: Input
1636
- }], orientation: [{
1637
- type: Input
1638
- }], className: [{
1639
- type: Input
1640
- }], labelClassName: [{
1641
- type: Input
1642
- }], controlClassName: [{
1643
- type: Input
1644
- }] } });
1645
-
1646
- class PdmHoverCardComponent {
1647
- constructor() {
1648
- this.className = '';
1649
- this.panelClassName = '';
1650
- this.side = 'bottom';
1651
- this.align = 'start';
1652
- this.panelWidth = 304;
1653
- this.open = false;
1654
- }
1655
- get positionClass() {
1656
- const sideClassMap = {
1657
- top: 'bottom-full mb-2',
1658
- right: 'left-full ml-2',
1659
- bottom: 'top-full mt-2',
1660
- left: 'right-full mr-2'
1661
- };
1662
- const alignClassMap = {
1663
- start: this.side === 'top' || this.side === 'bottom' ? 'left-0' : 'top-0',
1664
- center: this.side === 'top' || this.side === 'bottom' ? 'left-1/2 -translate-x-1/2' : 'top-1/2 -translate-y-1/2',
1665
- end: this.side === 'top' || this.side === 'bottom' ? 'right-0' : 'bottom-0'
1666
- };
1667
- return `${sideClassMap[this.side]} ${alignClassMap[this.align]}`;
1668
- }
1669
- }
1670
- PdmHoverCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmHoverCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1671
- PdmHoverCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmHoverCardComponent, selector: "pdm-hover-card", inputs: { className: "className", panelClassName: "panelClassName", side: "side", align: "align", panelWidth: "panelWidth" }, ngImport: i0, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-[0_10px_30px_rgba(15,23,42,0.15)]',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1672
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmHoverCardComponent, decorators: [{
1673
- type: Component,
1674
- args: [{ selector: 'pdm-hover-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"relative inline-flex\"\n [ngClass]=\"className\"\n (mouseenter)=\"open = true\"\n (mouseleave)=\"open = false\"\n (focusin)=\"open = true\"\n (focusout)=\"open = false\"\n>\n <div>\n <ng-content select=\"[pdmHoverTrigger]\"></ng-content>\n </div>\n\n <section\n *ngIf=\"open\"\n [style.width.px]=\"panelWidth\"\n [ngClass]=\"[\n 'absolute z-30 rounded-[10px] border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-[0_10px_30px_rgba(15,23,42,0.15)]',\n positionClass,\n panelClassName\n ]\"\n >\n <ng-content select=\"[pdmHoverContent]\"></ng-content>\n </section>\n</div>\n" }]
1675
- }], propDecorators: { className: [{
1676
- type: Input
1677
- }], panelClassName: [{
1678
- type: Input
1679
- }], side: [{
1680
- type: Input
1681
- }], align: [{
1682
- type: Input
1683
- }], panelWidth: [{
1684
- type: Input
1685
- }] } });
1686
-
1687
- class PdmItemComponent {
1688
- constructor() {
1689
- this.className = '';
1690
- this.disabled = false;
1691
- this.selected = false;
1692
- }
1693
- }
1694
- PdmItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1695
- PdmItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmItemComponent, selector: "pdm-item", inputs: { className: "className", disabled: "disabled", selected: "selected" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmItemComponent, decorators: [{
1697
- type: Component,
1698
- args: [{ selector: 'pdm-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'relative flex w-full select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',\n selected ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]',\n disabled ? 'pointer-events-none opacity-50' : 'hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n>\n <ng-content></ng-content>\n</div>\n" }]
1699
- }], propDecorators: { className: [{
1700
- type: Input
1701
- }], disabled: [{
1702
- type: Input
1703
- }], selected: [{
1704
- type: Input
1705
- }] } });
1706
-
1707
- class PdmInputComponent {
1708
- constructor() {
1709
- this.id = '';
1710
- this.type = 'text';
1711
- this.value = '';
1712
- this.placeholder = '';
1713
- this.disabled = false;
1714
- this.readonly = false;
1715
- this.required = false;
1716
- this.invalid = false;
1717
- this.className = '';
1718
- this.inputClassName = '';
1719
- this.label = '';
1720
- this.helperText = '';
1721
- this.errorText = '';
1722
- this.valueChange = new EventEmitter();
1723
- this.blurred = new EventEmitter();
1724
- }
1725
- onInput(event) {
1726
- this.valueChange.emit(event.target.value);
1727
- }
1728
- onBlur(event) {
1729
- this.blurred.emit(event);
1730
- }
1731
- }
1732
- PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1733
- PdmInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmInputComponent, selector: "pdm-input", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-foreground\">{{ label }}</label>\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-background px-3 py-2 text-sm leading-5 text-foreground shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-destructive' : 'border-input',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-destructive\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputComponent, decorators: [{
1735
- type: Component,
1736
- args: [{ selector: 'pdm-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-foreground\">{{ label }}</label>\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-background px-3 py-2 text-sm leading-5 text-foreground shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-destructive' : 'border-input',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-destructive\">{{ errorText }}</p>\n</div>\n" }]
1737
- }], propDecorators: { id: [{
1738
- type: Input
1739
- }], type: [{
1740
- type: Input
1741
- }], value: [{
1742
- type: Input
1743
- }], placeholder: [{
1744
- type: Input
1745
- }], disabled: [{
1746
- type: Input
1747
- }], readonly: [{
1748
- type: Input
1749
- }], required: [{
1750
- type: Input
1751
- }], invalid: [{
1752
- type: Input
1753
- }], className: [{
1754
- type: Input
1755
- }], inputClassName: [{
1756
- type: Input
1757
- }], label: [{
1758
- type: Input
1759
- }], helperText: [{
1760
- type: Input
1761
- }], errorText: [{
1762
- type: Input
1763
- }], valueChange: [{
1764
- type: Output
1765
- }], blurred: [{
1766
- type: Output
1767
- }] } });
1768
-
1769
- class PdmInputPasswordComponent {
1770
- constructor() {
1771
- this.id = '';
1772
- this.value = '';
1773
- this.placeholder = '';
1774
- this.disabled = false;
1775
- this.readonly = false;
1776
- this.required = false;
1777
- this.invalid = false;
1778
- this.className = '';
1779
- this.inputClassName = '';
1780
- this.label = '';
1781
- this.helperText = '';
1782
- this.errorText = '';
1783
- this.valueChange = new EventEmitter();
1784
- this.blurred = new EventEmitter();
1785
- this.showPassword = false;
1786
- }
1787
- get inputType() {
1788
- return this.showPassword ? 'text' : 'password';
1789
- }
1790
- onInput(event) {
1791
- this.valueChange.emit(event.target.value);
1792
- }
1793
- onBlur(event) {
1794
- this.blurred.emit(event);
1795
- }
1796
- toggleVisibility() {
1797
- if (this.disabled) {
1798
- return;
1799
- }
1800
- this.showPassword = !this.showPassword;
1801
- }
1802
- }
1803
- PdmInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1804
- PdmInputPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmInputPasswordComponent, selector: "pdm-input-password", inputs: { id: "id", value: "value", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", className: "className", inputClassName: "inputClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange", blurred: "blurred" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-foreground\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-background px-3 py-2 pr-10 text-sm leading-5 text-foreground shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none ring-offset-background placeholder:text-muted-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-destructive' : 'border-input',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-muted-foreground outline-none transition-colors hover:text-foreground focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\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 class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\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 class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-destructive\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputPasswordComponent, decorators: [{
1806
- type: Component,
1807
- args: [{ selector: 'pdm-input-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-foreground\">{{ label }}</label>\n <div class=\"relative\">\n <input\n [id]=\"id\"\n [type]=\"inputType\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-background px-3 py-2 pr-10 text-sm leading-5 text-foreground shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none ring-offset-background placeholder:text-muted-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-destructive' : 'border-input',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\n <button\n type=\"button\"\n class=\"absolute right-2 top-1/2 inline-flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border-0 bg-transparent p-0 text-muted-foreground outline-none transition-colors hover:text-foreground focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"showPassword ? 'Hide password' : 'Show password'\"\n (click)=\"toggleVisibility()\"\n >\n <svg\n *ngIf=\"!showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\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 class=\"h-4 w-4\"\n >\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n <svg\n *ngIf=\"showPassword\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\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 class=\"h-4 w-4\"\n >\n <path d=\"M3 3l18 18\"></path>\n <path d=\"M10.58 10.58a2 2 0 1 0 2.83 2.83\"></path>\n <path d=\"M9.88 5.09A10.94 10.94 0 0 1 12 4.91c5.05 0 9.27 3.11 10.6 7.09a1 1 0 0 1 0 .64 11.9 11.9 0 0 1-1.84 3.2\"></path>\n <path d=\"M6.61 6.61A11.81 11.81 0 0 0 1.4 12a1 1 0 0 0 0 .64 11.83 11.83 0 0 0 8.79 7.54\"></path>\n </svg>\n </button>\n </div>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-muted-foreground\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-destructive\">{{ errorText }}</p>\n</div>\n" }]
1808
- }], propDecorators: { id: [{
1809
- type: Input
1810
- }], value: [{
1811
- type: Input
1812
- }], placeholder: [{
1813
- type: Input
1814
- }], disabled: [{
1815
- type: Input
1816
- }], readonly: [{
1817
- type: Input
1818
- }], required: [{
1819
- type: Input
1820
- }], invalid: [{
1821
- type: Input
1822
- }], className: [{
1823
- type: Input
1824
- }], inputClassName: [{
1825
- type: Input
1826
- }], label: [{
1827
- type: Input
1828
- }], helperText: [{
1829
- type: Input
1830
- }], errorText: [{
1831
- type: Input
1832
- }], valueChange: [{
1833
- type: Output
1834
- }], blurred: [{
1835
- type: Output
1836
- }] } });
1837
-
1838
- class PdmInputGroupComponent {
1839
- constructor() {
1840
- this.id = '';
1841
- this.type = 'text';
1842
- this.value = '';
1843
- this.placeholder = '';
1844
- this.disabled = false;
1845
- this.invalid = false;
1846
- this.prefixText = '';
1847
- this.suffixText = '';
1848
- this.prefixIcon = '';
1849
- this.suffixIcon = '';
1850
- this.className = '';
1851
- this.valueChange = new EventEmitter();
1852
- }
1853
- onInput(event) {
1854
- this.valueChange.emit(event.target.value);
1855
- }
1856
- }
1857
- PdmInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1858
- PdmInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmInputGroupComponent, selector: "pdm-input-group", inputs: { id: "id", type: "type", value: "value", placeholder: "placeholder", disabled: "disabled", invalid: "invalid", prefixText: "prefixText", suffixText: "suffixText", prefixIcon: "prefixIcon", suffixIcon: "suffixIcon", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex h-9 w-full items-center rounded-[8px] border bg-[hsl(var(--background))] text-sm shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-within:ring-1 focus-within:ring-[hsl(var(--foreground))]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div *ngIf=\"prefixText || prefixIcon\" class=\"inline-flex h-full items-center gap-2 border-r border-[hsl(var(--input))] pl-3 pr-2 text-[hsl(var(--muted-foreground))]\">\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\" class=\"text-sm leading-5\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n class=\"h-full min-w-0 flex-1 border-0 bg-transparent px-2 py-2 text-sm leading-5 outline-none placeholder:text-[hsl(var(--muted-foreground))]\"\n (input)=\"onInput($event)\"\n />\n\n <div *ngIf=\"suffixText || suffixIcon\" class=\"inline-flex h-full items-center gap-2 border-l border-[hsl(var(--input))] pl-2 pr-3 text-[hsl(var(--muted-foreground))]\">\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"text-sm font-medium leading-5\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1859
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputGroupComponent, decorators: [{
1860
- type: Component,
1861
- args: [{ selector: 'pdm-input-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex h-9 w-full items-center rounded-[8px] border bg-[hsl(var(--background))] text-sm shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-within:ring-1 focus-within:ring-[hsl(var(--foreground))]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div *ngIf=\"prefixText || prefixIcon\" class=\"inline-flex h-full items-center gap-2 border-r border-[hsl(var(--input))] pl-3 pr-2 text-[hsl(var(--muted-foreground))]\">\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\" class=\"text-sm leading-5\">{{ prefixText }}</span>\n <ng-content select=\"[pdmInputGroupPrefix]\"></ng-content>\n </div>\n\n <input\n [id]=\"id\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n class=\"h-full min-w-0 flex-1 border-0 bg-transparent px-2 py-2 text-sm leading-5 outline-none placeholder:text-[hsl(var(--muted-foreground))]\"\n (input)=\"onInput($event)\"\n />\n\n <div *ngIf=\"suffixText || suffixIcon\" class=\"inline-flex h-full items-center gap-2 border-l border-[hsl(var(--input))] pl-2 pr-3 text-[hsl(var(--muted-foreground))]\">\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"text-sm font-medium leading-5\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n</div>\n" }]
1862
- }], propDecorators: { id: [{
1863
- type: Input
1864
- }], type: [{
1865
- type: Input
1866
- }], value: [{
1867
- type: Input
1868
- }], placeholder: [{
1869
- type: Input
1870
- }], disabled: [{
1871
- type: Input
1872
- }], invalid: [{
1873
- type: Input
1874
- }], prefixText: [{
1875
- type: Input
1876
- }], suffixText: [{
1877
- type: Input
1878
- }], prefixIcon: [{
1879
- type: Input
1880
- }], suffixIcon: [{
1881
- type: Input
1882
- }], className: [{
1883
- type: Input
1884
- }], valueChange: [{
1885
- type: Output
1886
- }] } });
1887
-
1888
- class PdmInputOtpComponent {
1889
- constructor() {
1890
- this.length = 6;
1891
- this.groupSize = 3;
1892
- this.disabled = false;
1893
- this.invalid = false;
1894
- this.className = '';
1895
- this.valueChange = new EventEmitter();
1896
- this.completed = new EventEmitter();
1897
- this.values = Array.from({ length: this.length }, () => '');
1898
- }
1899
- ngOnChanges() {
1900
- if (this.values.length !== this.length) {
1901
- this.values = Array.from({ length: this.length }, (_, index) => { var _a; return (_a = this.values[index]) !== null && _a !== void 0 ? _a : ''; });
1902
- }
1903
- }
1904
- trackByIndex(index) {
1905
- return index;
1906
- }
1907
- onInput(index, event) {
1908
- const input = event.target;
1909
- const char = (input.value || '').replace(/\D+/g, '').slice(-1);
1910
- this.values[index] = char;
1911
- input.value = char;
1912
- this.emit();
1913
- if (char) {
1914
- this.focusInput(index + 1, true);
1915
- }
1916
- }
1917
- onKeyDown(index, event) {
1918
- if (event.key === 'Backspace' && !this.values[index]) {
1919
- this.focusInput(index - 1);
1920
- return;
1921
- }
1922
- if (event.key === 'ArrowLeft') {
1923
- event.preventDefault();
1924
- this.focusInput(index - 1);
1925
- return;
1926
- }
1927
- if (event.key === 'ArrowRight') {
1928
- event.preventDefault();
1929
- this.focusInput(index + 1);
1930
- }
1931
- }
1932
- onPaste(event) {
1933
- var _a, _b;
1934
- event.preventDefault();
1935
- const pastedText = ((_b = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '').replace(/\D+/g, '').slice(0, this.length);
1936
- if (!pastedText) {
1937
- return;
1938
- }
1939
- this.values = Array.from({ length: this.length }, (_, index) => { var _a; return (_a = pastedText[index]) !== null && _a !== void 0 ? _a : ''; });
1940
- this.emit();
1941
- const nextIndex = Math.min(pastedText.length, this.length - 1);
1942
- this.focusInput(nextIndex);
1943
- }
1944
- getInputClasses(index) {
1945
- const classes = [
1946
- 'h-9 w-9 appearance-none border bg-background text-center text-sm font-normal text-foreground outline-none transition focus:outline-none focus-visible:outline-none',
1947
- 'shadow-[0_1px_2px_0_rgba(0,0,0,0.1)]',
1948
- 'focus:border-input focus:ring-1 focus:ring-primary/30',
1949
- 'disabled:cursor-not-allowed disabled:opacity-50',
1950
- ];
1951
- if (this.invalid) {
1952
- classes.push('border-destructive focus:border-destructive focus:ring-destructive');
1953
- }
1954
- else {
1955
- classes.push('border-input');
1956
- }
1957
- if (this.isGroupStart(index)) {
1958
- classes.push('rounded-l-md border-l');
1959
- }
1960
- else {
1961
- classes.push('border-l-0');
1962
- }
1963
- if (this.isGroupEnd(index)) {
1964
- classes.push('rounded-r-md');
1965
- }
1966
- return classes.join(' ');
1967
- }
1968
- shouldShowSeparator(index) {
1969
- return this.groupSize > 0 && (index + 1) % this.groupSize === 0 && index < this.length - 1;
1970
- }
1971
- isGroupStart(index) {
1972
- return this.groupSize <= 0 || index % this.groupSize === 0;
1973
- }
1974
- isGroupEnd(index) {
1975
- if (this.groupSize <= 0) {
1976
- return index === this.length - 1;
1977
- }
1978
- return (index + 1) % this.groupSize === 0 || index === this.length - 1;
1979
- }
1980
- emit() {
1981
- const value = this.values.join('');
1982
- this.valueChange.emit(value);
1983
- if (value.length === this.length && !this.values.includes('')) {
1984
- this.completed.emit(value);
1985
- }
1986
- }
1987
- focusInput(index, deferred = false) {
1988
- var _a;
1989
- if (deferred) {
1990
- requestAnimationFrame(() => this.focusInput(index, false));
1991
- return;
1992
- }
1993
- if (!this.inputs || index < 0 || index >= this.length) {
1994
- return;
1995
- }
1996
- const input = (_a = this.inputs.get(index)) === null || _a === void 0 ? void 0 : _a.nativeElement;
1997
- if (input) {
1998
- input.focus();
1999
- input.select();
2000
- }
2001
- }
2002
- }
2003
- PdmInputOtpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputOtpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2004
- PdmInputOtpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmInputOtpComponent, selector: "pdm-input-otp", inputs: { length: "length", groupSize: "groupSize", disabled: "disabled", invalid: "invalid", className: "className" }, outputs: { valueChange: "valueChange", completed: "completed" }, viewQueries: [{ propertyName: "inputs", predicate: ["otpInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center justify-center', className]\" (paste)=\"onPaste($event)\">\n <ng-container *ngFor=\"let value of values; let index = index; trackBy: trackByIndex\">\n <input\n #otpInput\n [class]=\"getInputClasses(index)\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n [attr.name]=\"'otp-digit-' + index\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"'OTP digit ' + (index + 1)\"\n (input)=\"onInput(index, $event)\"\n (keydown)=\"onKeyDown(index, $event)\"\n />\n <span\n *ngIf=\"shouldShowSeparator(index)\"\n class=\"mx-2 mt-[-1px] h-px w-6 bg-foreground opacity-80\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputOtpComponent, decorators: [{
2006
- type: Component,
2007
- args: [{ selector: 'pdm-input-otp', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center justify-center', className]\" (paste)=\"onPaste($event)\">\n <ng-container *ngFor=\"let value of values; let index = index; trackBy: trackByIndex\">\n <input\n #otpInput\n [class]=\"getInputClasses(index)\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n [attr.name]=\"'otp-digit-' + index\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"'OTP digit ' + (index + 1)\"\n (input)=\"onInput(index, $event)\"\n (keydown)=\"onKeyDown(index, $event)\"\n />\n <span\n *ngIf=\"shouldShowSeparator(index)\"\n class=\"mx-2 mt-[-1px] h-px w-6 bg-foreground opacity-80\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n</div>\n" }]
2008
- }], propDecorators: { length: [{
2009
- type: Input
2010
- }], groupSize: [{
2011
- type: Input
2012
- }], disabled: [{
2013
- type: Input
2014
- }], invalid: [{
2015
- type: Input
2016
- }], className: [{
2017
- type: Input
2018
- }], valueChange: [{
2019
- type: Output
2020
- }], completed: [{
2021
- type: Output
2022
- }], inputs: [{
2023
- type: ViewChildren,
2024
- args: ['otpInput']
2025
- }] } });
2026
-
2027
- class PdmKbdComponent {
2028
- constructor() {
2029
- this.className = '';
2030
- }
2031
- }
2032
- PdmKbdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmKbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2033
- PdmKbdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmKbdComponent, selector: "pdm-kbd", inputs: { className: "className" }, ngImport: i0, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-[24px] items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 font-mono text-xs font-medium text-[hsl(var(--muted-foreground))]', className]\">\n <ng-content></ng-content>\n</kbd>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmKbdComponent, decorators: [{
2035
- type: Component,
2036
- args: [{ selector: 'pdm-kbd', changeDetection: ChangeDetectionStrategy.OnPush, template: "<kbd [ngClass]=\"['inline-flex h-6 min-w-[24px] items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted))] px-1.5 font-mono text-xs font-medium text-[hsl(var(--muted-foreground))]', className]\">\n <ng-content></ng-content>\n</kbd>\n" }]
2037
- }], propDecorators: { className: [{
2038
- type: Input
2039
- }] } });
2040
-
2041
- class PdmLabelComponent {
2042
- constructor() {
2043
- this.forId = '';
2044
- this.required = false;
2045
- this.className = '';
2046
- }
2047
- }
2048
- PdmLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2049
- PdmLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmLabelComponent, selector: "pdm-label", inputs: { forId: "forId", required: "required", className: "className" }, ngImport: i0, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-[hsl(var(--destructive))]\">*</span>\n</label>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmLabelComponent, decorators: [{
2051
- type: Component,
2052
- args: [{ selector: 'pdm-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n [attr.for]=\"forId\"\n [ngClass]=\"['text-sm font-medium leading-5 text-[hsl(var(--foreground))] peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className]\"\n>\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"ml-1 text-[hsl(var(--destructive))]\">*</span>\n</label>\n" }]
2053
- }], propDecorators: { forId: [{
2054
- type: Input
2055
- }], required: [{
2056
- type: Input
2057
- }], className: [{
2058
- type: Input
2059
- }] } });
2060
-
2061
- class PdmMenubarComponent {
2062
- constructor() {
2063
- this.menus = [];
2064
- this.className = '';
2065
- this.itemSelect = new EventEmitter();
2066
- this.openIndex = -1;
2067
- }
2068
- toggle(index) {
2069
- this.openIndex = this.openIndex === index ? -1 : index;
2070
- }
2071
- select(value) {
2072
- this.itemSelect.emit(value);
2073
- this.openIndex = -1;
2074
- }
2075
- }
2076
- PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmMenubarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2077
- PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className" }, outputs: { itemSelect: "itemSelect" }, ngImport: i0, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm leading-5 text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))]\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-[12rem] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-[0_4px_6px_rgba(0,0,0,0.09)]\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm leading-5 outline-none hover:bg-[hsl(var(--accent))] disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"select(item.value)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmMenubarComponent, decorators: [{
2079
- type: Component,
2080
- args: [{ selector: 'pdm-menubar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"menubar\" [ngClass]=\"['inline-flex h-9 items-center gap-0.5 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] p-1 shadow-[0_1px_2px_rgba(0,0,0,0.1)]', className]\">\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button type=\"button\" class=\"inline-flex h-7 items-center rounded-sm px-3 text-sm leading-5 text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))]\" (click)=\"toggle(i)\">{{ menu.label }}</button>\n <div *ngIf=\"openIndex === i\" class=\"absolute left-0 top-full z-50 mt-1 min-w-[12rem] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-[0_4px_6px_rgba(0,0,0,0.09)]\">\n <button\n *ngFor=\"let item of menu.items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm leading-5 outline-none hover:bg-[hsl(var(--accent))] disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"select(item.value)\"\n >\n {{ item.label }}\n </button>\n </div>\n </div>\n</nav>\n" }]
2081
- }], propDecorators: { menus: [{
2082
- type: Input
2083
- }], className: [{
2084
- type: Input
2085
- }], itemSelect: [{
2086
- type: Output
2087
- }] } });
2088
-
2089
- class PdmNativeSelectComponent {
2090
- constructor() {
2091
- this.id = '';
2092
- this.value = '';
2093
- this.disabled = false;
2094
- this.invalid = false;
2095
- this.options = [];
2096
- this.placeholder = 'Select an option';
2097
- this.className = '';
2098
- this.valueChange = new EventEmitter();
2099
- }
2100
- onChange(event) {
2101
- this.valueChange.emit(event.target.value);
2102
- }
2103
- }
2104
- PdmNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNativeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2105
- PdmNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmNativeSelectComponent, selector: "pdm-native-select", inputs: { id: "id", value: "value", disabled: "disabled", invalid: "invalid", options: "options", placeholder: "placeholder", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\n [ngClass]=\"[\n 'flex h-9 w-full appearance-none rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 pr-9 text-sm leading-5 shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[hsl(var(--muted-foreground))]\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNativeSelectComponent, decorators: [{
2107
- type: Component,
2108
- args: [{ selector: 'pdm-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" [ngClass]=\"className\">\n <select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n (change)=\"onChange($event)\"\n [ngClass]=\"[\n 'flex h-9 w-full appearance-none rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 pr-9 text-sm leading-5 shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]'\n ]\"\n >\n <option value=\"\" disabled>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n </select>\n <pdm-icon className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[hsl(var(--muted-foreground))]\" name=\"chevron-down\" [size]=\"16\"></pdm-icon>\n</div>\n" }]
2109
- }], propDecorators: { id: [{
2110
- type: Input
2111
- }], value: [{
2112
- type: Input
2113
- }], disabled: [{
2114
- type: Input
2115
- }], invalid: [{
2116
- type: Input
2117
- }], options: [{
2118
- type: Input
2119
- }], placeholder: [{
2120
- type: Input
2121
- }], className: [{
2122
- type: Input
2123
- }], valueChange: [{
2124
- type: Output
2125
- }] } });
2126
-
2127
- class PdmNavigationMenuComponent {
2128
- constructor() {
2129
- this.items = [];
2130
- this.className = '';
2131
- }
2132
- }
2133
- PdmNavigationMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2134
- PdmNavigationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmNavigationMenuComponent, selector: "pdm-navigation-menu", inputs: { items: "items", className: "className" }, ngImport: i0, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n item.active ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNavigationMenuComponent, decorators: [{
2136
- type: Component,
2137
- args: [{ selector: 'pdm-navigation-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [ngClass]=\"['relative z-10 flex max-w-max flex-1 items-center justify-center', className]\">\n <ul class=\"group flex flex-1 list-none items-center justify-center space-x-1\">\n <li *ngFor=\"let item of items\">\n <a\n [href]=\"item.href || '#'\"\n [ngClass]=\"[\n 'group inline-flex h-9 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n item.active ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]' : 'text-[hsl(var(--foreground))]'\n ]\"\n >\n {{ item.label }}\n </a>\n </li>\n </ul>\n</nav>\n" }]
2138
- }], propDecorators: { items: [{
2139
- type: Input
2140
- }], className: [{
2141
- type: Input
2142
- }] } });
2143
-
2144
- class PdmPaginationComponent {
2145
- constructor() {
2146
- this.page = 1;
2147
- this.pageCount = 1;
2148
- this.maxVisible = 5;
2149
- this.className = '';
2150
- this.pageChange = new EventEmitter();
2151
- }
2152
- get visiblePages() {
2153
- const total = Math.max(1, this.pageCount);
2154
- const visible = Math.max(1, this.maxVisible);
2155
- const half = Math.floor(visible / 2);
2156
- let start = Math.max(1, this.page - half);
2157
- let end = Math.min(total, start + visible - 1);
2158
- if (end - start + 1 < visible) {
2159
- start = Math.max(1, end - visible + 1);
2160
- }
2161
- return Array.from({ length: end - start + 1 }, (_, i) => start + i);
2162
- }
2163
- setPage(next) {
2164
- if (next < 1 || next > this.pageCount || next === this.page) {
2165
- return;
2166
- }
2167
- this.pageChange.emit(next);
2168
- }
2169
- }
2170
- PdmPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2171
- PdmPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmPaginationComponent, selector: "pdm-pagination", inputs: { page: "page", pageCount: "pageCount", maxVisible: "maxVisible", className: "className" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-6 min-w-[24px] items-center justify-center rounded-md px-2 text-sm',\n pageNumber === page\n ? 'border border-[hsl(var(--border))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPaginationComponent, decorators: [{
2173
- type: Component,
2174
- args: [{ selector: 'pdm-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Pagination\" [ngClass]=\"['mx-auto flex w-full justify-center', className]\">\n <ul class=\"flex items-center gap-1\">\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page <= 1\" (click)=\"setPage(page - 1)\">\n <pdm-icon name=\"chevron-left\" [size]=\"14\"></pdm-icon>\n Previous\n </button>\n </li>\n <li *ngFor=\"let pageNumber of visiblePages\">\n <button\n type=\"button\"\n [ngClass]=\"[\n 'inline-flex h-6 min-w-[24px] items-center justify-center rounded-md px-2 text-sm',\n pageNumber === page\n ? 'border border-[hsl(var(--border))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"setPage(pageNumber)\"\n >\n {{ pageNumber }}\n </button>\n </li>\n <li>\n <button type=\"button\" class=\"inline-flex h-8 items-center justify-center gap-1 rounded-md px-2 text-sm text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] disabled:opacity-50\" [disabled]=\"page >= pageCount\" (click)=\"setPage(page + 1)\">\n Next\n <pdm-icon name=\"chevron-right\" [size]=\"14\"></pdm-icon>\n </button>\n </li>\n </ul>\n</nav>\n" }]
2175
- }], propDecorators: { page: [{
2176
- type: Input
2177
- }], pageCount: [{
2178
- type: Input
2179
- }], maxVisible: [{
2180
- type: Input
2181
- }], className: [{
2182
- type: Input
2183
- }], pageChange: [{
2184
- type: Output
2185
- }] } });
2186
-
2187
- class PdmPopoverComponent {
2188
- constructor(elementRef) {
2189
- this.elementRef = elementRef;
2190
- this.open = false;
2191
- this.triggerText = 'Open';
2192
- this.className = '';
2193
- this.panelClassName = '';
2194
- this.showTrigger = true;
2195
- this.openChange = new EventEmitter();
2196
- }
2197
- toggle() {
2198
- this.open = !this.open;
2199
- this.openChange.emit(this.open);
2200
- }
2201
- onEsc() {
2202
- if (this.open) {
2203
- this.open = false;
2204
- this.openChange.emit(false);
2205
- }
2206
- }
2207
- onDocumentClick(event) {
2208
- if (!this.open)
2209
- return;
2210
- const target = event.target;
2211
- if (target && !this.elementRef.nativeElement.contains(target)) {
2212
- this.open = false;
2213
- this.openChange.emit(false);
2214
- }
2215
- }
2216
- }
2217
- PdmPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPopoverComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2218
- PdmPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmPopoverComponent, selector: "pdm-popover", inputs: { open: "open", triggerText: "triggerText", className: "className", panelClassName: "panelClassName", showTrigger: "showTrigger" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-8 items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-[320px] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-[0px_4px_6px_0px_rgba(0,0,0,0.09)]', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPopoverComponent, decorators: [{
2220
- type: Component,
2221
- args: [{ selector: 'pdm-popover', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button *ngIf=\"showTrigger\" type=\"button\" class=\"inline-flex h-8 items-center justify-center rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))] px-3 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" [attr.aria-expanded]=\"open\" (click)=\"toggle()\">{{ triggerText }}</button>\n <div *ngIf=\"open || !showTrigger\" [ngClass]=\"['absolute left-0 top-full z-30 mt-2 min-w-[320px] rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-[0px_4px_6px_0px_rgba(0,0,0,0.09)]', panelClassName]\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2222
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { open: [{
2223
- type: Input
2224
- }], triggerText: [{
2225
- type: Input
2226
- }], className: [{
2227
- type: Input
2228
- }], panelClassName: [{
2229
- type: Input
2230
- }], showTrigger: [{
2231
- type: Input
2232
- }], openChange: [{
2233
- type: Output
2234
- }], onEsc: [{
2235
- type: HostListener,
2236
- args: ['document:keydown.escape']
2237
- }], onDocumentClick: [{
2238
- type: HostListener,
2239
- args: ['document:click', ['$event']]
2240
- }] } });
2241
-
2242
- class PdmProgressComponent {
2243
- constructor() {
2244
- this.value = 0;
2245
- this.max = 100;
2246
- this.indeterminate = false;
2247
- this.className = '';
2248
- }
2249
- get width() {
2250
- if (this.indeterminate)
2251
- return '100%';
2252
- const safeMax = this.max > 0 ? this.max : 100;
2253
- const pct = Math.min(100, Math.max(0, (this.value / safeMax) * 100));
2254
- return pct + '%';
2255
- }
2256
- }
2257
- PdmProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2258
- PdmProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmProgressComponent, selector: "pdm-progress", inputs: { value: "value", max: "max", indeterminate: "indeterminate", className: "className" }, ngImport: i0, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-[hsl(var(--muted))]', className]\"\n>\n <div [ngClass]=\"['h-full bg-[hsl(var(--foreground))] transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmProgressComponent, decorators: [{
2260
- type: Component,
2261
- args: [{ selector: 'pdm-progress', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"progressbar\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuenow]=\"indeterminate ? null : value\"\n [ngClass]=\"['relative h-1.5 w-full overflow-hidden rounded-full bg-[hsl(var(--muted))]', className]\"\n>\n <div [ngClass]=\"['h-full bg-[hsl(var(--foreground))] transition-all', indeterminate ? 'animate-pulse' : '']\" [style.width]=\"width\"></div>\n</div>\n" }]
2262
- }], propDecorators: { value: [{
2263
- type: Input
2264
- }], max: [{
2265
- type: Input
2266
- }], indeterminate: [{
2267
- type: Input
2268
- }], className: [{
2269
- type: Input
2270
- }] } });
2271
-
2272
- class PdmRadioGroupComponent {
2273
- constructor() {
2274
- this.name = 'pdm-radio-group';
2275
- this.value = '';
2276
- this.options = [];
2277
- this.direction = 'vertical';
2278
- this.className = '';
2279
- this.valueChange = new EventEmitter();
2280
- }
2281
- optionId(option) {
2282
- return `${this.name}-${option.value}`;
2283
- }
2284
- onChange(event) {
2285
- this.valueChange.emit(event.target.value);
2286
- }
2287
- }
2288
- PdmRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2289
- PdmRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmRadioGroupComponent, selector: "pdm-radio-group", inputs: { name: "name", value: "value", options: "options", direction: "direction", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-[hsl(var(--input))] bg-[hsl(var(--background))] peer-checked:border-[hsl(var(--foreground))] peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))]\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))] peer-checked:block\"></span>\n </span>\n <span class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ option.label }}</span>\n </label>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmRadioGroupComponent, decorators: [{
2291
- type: Component,
2292
- args: [{ selector: 'pdm-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n role=\"radiogroup\"\n [ngClass]=\"[\n 'gap-2',\n direction === 'horizontal' ? 'inline-flex items-center' : 'grid',\n className\n ]\"\n>\n <label *ngFor=\"let option of options\" [attr.for]=\"optionId(option)\" class=\"inline-flex cursor-pointer items-center gap-2\">\n <input\n [id]=\"optionId(option)\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"option.disabled\"\n class=\"peer sr-only\"\n (change)=\"onChange($event)\"\n />\n <span class=\"relative block h-4 w-4 rounded-full border border-[hsl(var(--input))] bg-[hsl(var(--background))] peer-checked:border-[hsl(var(--foreground))] peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))]\">\n <span class=\"absolute left-1/2 top-1/2 hidden h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))] peer-checked:block\"></span>\n </span>\n <span class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ option.label }}</span>\n </label>\n</div>\n" }]
2293
- }], propDecorators: { name: [{
2294
- type: Input
2295
- }], value: [{
2296
- type: Input
2297
- }], options: [{
2298
- type: Input
2299
- }], direction: [{
2300
- type: Input
2301
- }], className: [{
2302
- type: Input
2303
- }], valueChange: [{
2304
- type: Output
2305
- }] } });
2306
-
2307
- class PdmScrollAreaComponent {
2308
- constructor() {
2309
- this.maxHeight = '16rem';
2310
- this.className = '';
2311
- }
2312
- }
2313
- PdmScrollAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmScrollAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2314
- PdmScrollAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmScrollAreaComponent, selector: "pdm-scroll-area", inputs: { maxHeight: "maxHeight", className: "className" }, ngImport: i0, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-[var(--radius)] border border-[hsl(var(--border))]', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmScrollAreaComponent, decorators: [{
2316
- type: Component,
2317
- args: [{ selector: 'pdm-scroll-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [style.maxHeight]=\"maxHeight\" [ngClass]=\"['relative overflow-auto rounded-[var(--radius)] border border-[hsl(var(--border))]', className]\">\n <div class=\"p-3\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2318
- }], propDecorators: { maxHeight: [{
2319
- type: Input
2320
- }], className: [{
2321
- type: Input
2322
- }] } });
2323
-
2324
- class PdmSelectComponent {
2325
- constructor() {
2326
- this.id = '';
2327
- this.value = '';
2328
- this.options = [];
2329
- this.disabled = false;
2330
- this.invalid = false;
2331
- this.className = '';
2332
- this.valueChange = new EventEmitter();
2333
- }
2334
- onChange(event) {
2335
- this.valueChange.emit(event.target.value);
2336
- }
2337
- }
2338
- PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2339
- PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSelectComponent, decorators: [{
2341
- type: Component,
2342
- args: [{ selector: 'pdm-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select\n [id]=\"id\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex h-9 w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n className\n ]\"\n (change)=\"onChange($event)\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">{{ option.label }}</option>\n</select>\n" }]
2343
- }], propDecorators: { id: [{
2344
- type: Input
2345
- }], value: [{
2346
- type: Input
2347
- }], options: [{
2348
- type: Input
2349
- }], disabled: [{
2350
- type: Input
2351
- }], invalid: [{
2352
- type: Input
2353
- }], className: [{
2354
- type: Input
2355
- }], valueChange: [{
2356
- type: Output
2357
- }] } });
2358
-
2359
- class PdmSeparatorComponent {
2360
- constructor() {
2361
- this.orientation = 'horizontal';
2362
- this.decorative = true;
2363
- this.className = '';
2364
- }
2365
- get orientationClass() {
2366
- return this.orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full';
2367
- }
2368
- }
2369
- PdmSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2370
- PdmSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSeparatorComponent, selector: "pdm-separator", inputs: { orientation: "orientation", decorative: "decorative", className: "className" }, ngImport: i0, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-[hsl(var(--border))]', orientationClass, className]\"\n></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSeparatorComponent, decorators: [{
2372
- type: Component,
2373
- args: [{ selector: 'pdm-separator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [attr.role]=\"decorative ? 'none' : 'separator'\"\n [attr.aria-orientation]=\"orientation\"\n [ngClass]=\"['shrink-0 bg-[hsl(var(--border))]', orientationClass, className]\"\n></div>\n" }]
2374
- }], propDecorators: { orientation: [{
2375
- type: Input
2376
- }], decorative: [{
2377
- type: Input
2378
- }], className: [{
2379
- type: Input
2380
- }] } });
2381
-
2382
- class PdmSheetComponent {
2383
- constructor() {
2384
- this.open = false;
2385
- this.side = 'right';
2386
- this.className = '';
2387
- this.openChange = new EventEmitter();
2388
- }
2389
- close() {
2390
- this.openChange.emit(false);
2391
- }
2392
- get panelClass() {
2393
- if (this.side === 'left')
2394
- return 'left-0 top-0 h-full w-full max-w-[360px] border-r';
2395
- if (this.side === 'top')
2396
- return 'top-0 left-0 w-full border-b';
2397
- if (this.side === 'bottom')
2398
- return 'bottom-0 left-0 w-full border-t';
2399
- return 'right-0 top-0 h-full w-full max-w-[360px] border-l';
2400
- }
2401
- }
2402
- PdmSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2403
- PdmSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSheetComponent, selector: "pdm-sheet", inputs: { open: "open", side: "side", className: "className" }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-black/55\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute bg-[hsl(var(--background))] border-[hsl(var(--border))] p-6 shadow-[0_4px_6px_rgba(0,0,0,0.09)]', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSheetComponent, decorators: [{
2405
- type: Component,
2406
- args: [{ selector: 'pdm-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" class=\"fixed inset-0 z-50\">\n <button type=\"button\" class=\"absolute inset-0 bg-black/55\" aria-label=\"Close sheet\" (click)=\"close()\"></button>\n\n <section [ngClass]=\"['absolute bg-[hsl(var(--background))] border-[hsl(var(--border))] p-6 shadow-[0_4px_6px_rgba(0,0,0,0.09)]', panelClass, className]\" role=\"dialog\" aria-modal=\"true\">\n <button type=\"button\" class=\"absolute right-3 top-3 rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"close()\">\n <pdm-icon name=\"x\" [size]=\"16\"></pdm-icon>\n </button>\n <ng-content></ng-content>\n </section>\n</div>\n" }]
2407
- }], propDecorators: { open: [{
2408
- type: Input
2409
- }], side: [{
2410
- type: Input
2411
- }], className: [{
2412
- type: Input
2413
- }], openChange: [{
2414
- type: Output
2415
- }] } });
2416
-
2417
- class PdmSidebarComponent {
2418
- constructor() {
2419
- this.collapsed = false;
2420
- this.className = '';
2421
- }
2422
- }
2423
- PdmSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2424
- PdmSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSidebarComponent, selector: "pdm-sidebar", inputs: { collapsed: "collapsed", className: "className" }, ngImport: i0, template: "<aside [ngClass]=\"['h-full border-r border-[hsl(var(--border))] bg-[hsl(var(--background))] transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSidebarComponent, decorators: [{
2426
- type: Component,
2427
- args: [{ selector: 'pdm-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside [ngClass]=\"['h-full border-r border-[hsl(var(--border))] bg-[hsl(var(--background))] transition-all', collapsed ? 'w-14' : 'w-64', className]\">\n <ng-content></ng-content>\n</aside>\n" }]
2428
- }], propDecorators: { collapsed: [{
2429
- type: Input
2430
- }], className: [{
2431
- type: Input
2432
- }] } });
2433
-
2434
- class PdmSkeletonComponent {
2435
- constructor() {
2436
- this.className = '';
2437
- }
2438
- }
2439
- PdmSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2440
- PdmSkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSkeletonComponent, selector: "pdm-skeleton", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-[hsl(var(--muted))]', className]\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSkeletonComponent, decorators: [{
2442
- type: Component,
2443
- args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-[hsl(var(--muted))]', className]\"></div>\n" }]
2444
- }], propDecorators: { className: [{
2445
- type: Input
2446
- }] } });
2447
-
2448
- class PdmSliderComponent {
2449
- constructor() {
2450
- this.min = 0;
2451
- this.max = 100;
2452
- this.step = 1;
2453
- this.value = 0;
2454
- this.disabled = false;
2455
- this.className = '';
2456
- this.valueChange = new EventEmitter();
2457
- }
2458
- get percentage() {
2459
- const safeRange = this.max - this.min;
2460
- if (safeRange <= 0) {
2461
- return 0;
2462
- }
2463
- const bounded = Math.min(this.max, Math.max(this.min, this.value));
2464
- return ((bounded - this.min) / safeRange) * 100;
2465
- }
2466
- onInput(event) {
2467
- this.valueChange.emit(Number(event.target.value));
2468
- }
2469
- }
2470
- PdmSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2471
- PdmSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSliderComponent, selector: "pdm-slider", inputs: { min: "min", max: "max", step: "step", value: "value", disabled: "disabled", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--muted))]\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))]\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[hsl(var(--foreground))] bg-[hsl(var(--background))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSliderComponent, decorators: [{
2473
- type: Component,
2474
- args: [{ selector: 'pdm-slider', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative h-5 w-full', className]\">\n <div class=\"absolute left-0 right-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--muted))]\"></div>\n <div class=\"absolute left-0 top-1/2 h-1 -translate-y-1/2 rounded-full bg-[hsl(var(--foreground))]\" [style.width.%]=\"percentage\"></div>\n <div class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[hsl(var(--foreground))] bg-[hsl(var(--background))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]\" [style.left.%]=\"percentage\"></div>\n <input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n class=\"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed\"\n (input)=\"onInput($event)\"\n />\n</div>\n" }]
2475
- }], propDecorators: { min: [{
2476
- type: Input
2477
- }], max: [{
2478
- type: Input
2479
- }], step: [{
2480
- type: Input
2481
- }], value: [{
2482
- type: Input
2483
- }], disabled: [{
2484
- type: Input
2485
- }], className: [{
2486
- type: Input
2487
- }], valueChange: [{
2488
- type: Output
2489
- }] } });
2490
-
2491
- class PdmSonnerComponent {
2492
- constructor() {
2493
- this.title = '';
2494
- this.description = '';
2495
- this.tone = 'default';
2496
- this.className = '';
2497
- this.dismissed = new EventEmitter();
2498
- }
2499
- get toneClass() {
2500
- if (this.tone === 'success')
2501
- return 'border-emerald-200 bg-emerald-50 text-emerald-900';
2502
- if (this.tone === 'error')
2503
- return 'border-red-200 bg-red-50 text-red-900';
2504
- if (this.tone === 'warning')
2505
- return 'border-amber-200 bg-amber-50 text-amber-900';
2506
- return 'border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[hsl(var(--foreground))]';
2507
- }
2508
- }
2509
- PdmSonnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSonnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2510
- PdmSonnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSonnerComponent, selector: "pdm-sonner", inputs: { title: "title", description: "description", tone: "tone", className: "className" }, outputs: { dismissed: "dismissed" }, ngImport: i0, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSonnerComponent, decorators: [{
2512
- type: Component,
2513
- args: [{ selector: 'pdm-sonner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['flex w-full max-w-sm items-start gap-3 rounded-lg border p-4 shadow-lg', toneClass, className]\" role=\"status\" aria-live=\"polite\">\n <div class=\"grid gap-0.5\">\n <p *ngIf=\"title\" class=\"text-sm font-semibold\">{{ title }}</p>\n <p *ngIf=\"description\" class=\"text-sm opacity-90\">{{ description }}</p>\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"ml-auto rounded-sm opacity-70 transition-opacity hover:opacity-100\" (click)=\"dismissed.emit()\" aria-label=\"Dismiss\">\n <pdm-icon name=\"x\" [size]=\"14\"></pdm-icon>\n </button>\n</div>\n" }]
2514
- }], propDecorators: { title: [{
2515
- type: Input
2516
- }], description: [{
2517
- type: Input
2518
- }], tone: [{
2519
- type: Input
2520
- }], className: [{
2521
- type: Input
2522
- }], dismissed: [{
2523
- type: Output
2524
- }] } });
2525
-
2526
- class PdmSpinnerComponent {
2527
- constructor() {
2528
- this.size = 16;
2529
- this.className = '';
2530
- }
2531
- }
2532
- PdmSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2533
- PdmSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSpinnerComponent, selector: "pdm-spinner", inputs: { size: "size", className: "className" }, ngImport: i0, template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSpinnerComponent, decorators: [{
2535
- type: Component,
2536
- args: [{ selector: 'pdm-spinner', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"['inline-block animate-spin rounded-full border-2 border-current border-r-transparent', className]\"\n aria-hidden=\"true\"\n></span>\n" }]
2537
- }], propDecorators: { size: [{
2538
- type: Input
2539
- }], className: [{
2540
- type: Input
2541
- }] } });
2542
-
2543
- class PdmSwitchComponent {
2544
- constructor() {
2545
- this.id = '';
2546
- this.checked = false;
2547
- this.disabled = false;
2548
- this.label = '';
2549
- this.className = '';
2550
- this.checkedChange = new EventEmitter();
2551
- }
2552
- onToggle(event) {
2553
- this.checkedChange.emit(event.target.checked);
2554
- }
2555
- }
2556
- PdmSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2557
- PdmSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmSwitchComponent, selector: "pdm-switch", inputs: { id: "id", checked: "checked", disabled: "disabled", label: "label", className: "className" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-[hsl(var(--muted))] transition-colors peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))] peer-disabled:opacity-50 peer-checked:bg-[hsl(var(--foreground))]\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-white shadow-[0_1px_2px_rgba(0,0,0,0.1)] transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ label }}</span>\n</label>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSwitchComponent, decorators: [{
2559
- type: Component,
2560
- args: [{ selector: 'pdm-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"id\" [ngClass]=\"['inline-flex items-center gap-2', className]\">\n <input\n [id]=\"id\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onToggle($event)\"\n />\n <span class=\"relative inline-flex h-6 w-11 items-center rounded-full border border-transparent bg-[hsl(var(--muted))] transition-colors peer-focus-visible:ring-1 peer-focus-visible:ring-[hsl(var(--foreground))] peer-disabled:opacity-50 peer-checked:bg-[hsl(var(--foreground))]\">\n <span class=\"h-5 w-5 translate-x-0.5 rounded-full bg-white shadow-[0_1px_2px_rgba(0,0,0,0.1)] transition-transform peer-checked:translate-x-5\"></span>\n </span>\n <span *ngIf=\"label\" class=\"text-sm leading-5 text-[hsl(var(--foreground))]\">{{ label }}</span>\n</label>\n" }]
2561
- }], propDecorators: { id: [{
2562
- type: Input
2563
- }], checked: [{
2564
- type: Input
2565
- }], disabled: [{
2566
- type: Input
2567
- }], label: [{
2568
- type: Input
2569
- }], className: [{
2570
- type: Input
2571
- }], checkedChange: [{
2572
- type: Output
2573
- }] } });
2574
-
2575
- class PdmTableComponent {
2576
- constructor() {
2577
- this.className = '';
2578
- }
2579
- }
2580
- PdmTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2581
- PdmTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmTableComponent, selector: "pdm-table", inputs: { className: "className" }, ngImport: i0, template: "<div [ngClass]=\"['relative w-full overflow-auto', className]\">\n <table class=\"w-full caption-bottom text-sm\">\n <ng-content></ng-content>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTableComponent, decorators: [{
2583
- type: Component,
2584
- args: [{ selector: 'pdm-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative w-full overflow-auto', className]\">\n <table class=\"w-full caption-bottom text-sm\">\n <ng-content></ng-content>\n </table>\n</div>\n" }]
2585
- }], propDecorators: { className: [{
2586
- type: Input
2587
- }] } });
2588
-
2589
- class PdmTabsComponent {
2590
- constructor() {
2591
- this.items = [];
2592
- this.value = '';
2593
- this.className = '';
2594
- this.valueChange = new EventEmitter();
2595
- }
2596
- select(item) {
2597
- if (!item.disabled) {
2598
- this.valueChange.emit(item.value);
2599
- }
2600
- }
2601
- }
2602
- PdmTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2603
- PdmTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmTabsComponent, selector: "pdm-tabs", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-[6px] bg-[hsl(var(--muted))] p-[5px]\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-[3px] px-3 py-1.5 text-sm font-medium leading-5 ring-offset-[hsl(var(--background))] transition-all focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-[hsl(var(--background))] text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]' : 'text-[hsl(var(--muted-foreground))]'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTabsComponent, decorators: [{
2605
- type: Component,
2606
- args: [{ selector: 'pdm-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['w-full', className]\">\n <div role=\"tablist\" class=\"inline-flex items-start rounded-[6px] bg-[hsl(var(--muted))] p-[5px]\">\n <button\n *ngFor=\"let item of items\"\n role=\"tab\"\n [attr.aria-selected]=\"value === item.value\"\n [disabled]=\"item.disabled\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center whitespace-nowrap rounded-[3px] px-3 py-1.5 text-sm font-medium leading-5 ring-offset-[hsl(var(--background))] transition-all focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:pointer-events-none disabled:opacity-50',\n value === item.value ? 'bg-[hsl(var(--background))] text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)]' : 'text-[hsl(var(--muted-foreground))]'\n ]\"\n (click)=\"select(item)\"\n type=\"button\"\n >\n {{ item.label }}\n </button>\n </div>\n <div class=\"mt-4\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
2607
- }], propDecorators: { items: [{
2608
- type: Input
2609
- }], value: [{
2610
- type: Input
2611
- }], className: [{
2612
- type: Input
2613
- }], valueChange: [{
2614
- type: Output
2615
- }] } });
2616
-
2617
- class PdmTextareaComponent {
2618
- constructor() {
2619
- this.id = '';
2620
- this.value = '';
2621
- this.placeholder = '';
2622
- this.rows = 4;
2623
- this.disabled = false;
2624
- this.readonly = false;
2625
- this.required = false;
2626
- this.invalid = false;
2627
- this.className = '';
2628
- this.textareaClassName = '';
2629
- this.label = '';
2630
- this.helperText = '';
2631
- this.errorText = '';
2632
- this.valueChange = new EventEmitter();
2633
- }
2634
- onInput(event) {
2635
- this.valueChange.emit(event.target.value);
2636
- }
2637
- }
2638
- PdmTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2639
- PdmTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmTextareaComponent, selector: "pdm-textarea", inputs: { id: "id", value: "value", placeholder: "placeholder", rows: "rows", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", className: "className", textareaClassName: "textareaClassName", label: "label", helperText: "helperText", errorText: "errorText" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex min-h-[65px] w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2640
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTextareaComponent, decorators: [{
2641
- type: Component,
2642
- args: [{ selector: 'pdm-textarea', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-2', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--foreground))]\">{{ label }}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"[\n 'flex min-h-[65px] w-full rounded-[8px] border bg-[hsl(var(--background))] px-3 py-2 text-sm leading-5 shadow-[0_1px_2px_rgba(0,0,0,0.1)] ring-offset-[hsl(var(--background))] placeholder:text-[hsl(var(--muted-foreground))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--foreground))] disabled:cursor-not-allowed disabled:opacity-50',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n textareaClassName\n ]\"\n (input)=\"onInput($event)\"\n ></textarea>\n <p *ngIf=\"!invalid && helperText\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ helperText }}</p>\n <p *ngIf=\"invalid && errorText\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ errorText }}</p>\n</div>\n" }]
2643
- }], propDecorators: { id: [{
2644
- type: Input
2645
- }], value: [{
2646
- type: Input
2647
- }], placeholder: [{
2648
- type: Input
2649
- }], rows: [{
2650
- type: Input
2651
- }], disabled: [{
2652
- type: Input
2653
- }], readonly: [{
2654
- type: Input
2655
- }], required: [{
2656
- type: Input
2657
- }], invalid: [{
2658
- type: Input
2659
- }], className: [{
2660
- type: Input
2661
- }], textareaClassName: [{
2662
- type: Input
2663
- }], label: [{
2664
- type: Input
2665
- }], helperText: [{
2666
- type: Input
2667
- }], errorText: [{
2668
- type: Input
2669
- }], valueChange: [{
2670
- type: Output
2671
- }] } });
2672
-
2673
- class PdmToggleComponent {
2674
- constructor() {
2675
- this.pressed = false;
2676
- this.disabled = false;
2677
- this.size = 'default';
2678
- this.className = '';
2679
- this.pressedChange = new EventEmitter();
2680
- }
2681
- toggle() {
2682
- if (!this.disabled) {
2683
- this.pressedChange.emit(!this.pressed);
2684
- }
2685
- }
2686
- get sizeClass() {
2687
- if (this.size === 'sm')
2688
- return 'h-8 px-2.5 min-w-[32px]';
2689
- if (this.size === 'lg')
2690
- return 'h-10 px-4 min-w-[40px]';
2691
- return 'h-9 px-3 min-w-[36px]';
2692
- }
2693
- }
2694
- PdmToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2695
- PdmToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmToggleComponent, selector: "pdm-toggle", inputs: { pressed: "pressed", disabled: "disabled", size: "size", className: "className" }, outputs: { pressedChange: "pressedChange" }, ngImport: i0, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n sizeClass,\n pressed\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'bg-transparent text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleComponent, decorators: [{
2697
- type: Component,
2698
- args: [{ selector: 'pdm-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"pressed\"\n [ngClass]=\"[\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n sizeClass,\n pressed\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'bg-transparent text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]',\n className\n ]\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</button>\n" }]
2699
- }], propDecorators: { pressed: [{
2700
- type: Input
2701
- }], disabled: [{
2702
- type: Input
2703
- }], size: [{
2704
- type: Input
2705
- }], className: [{
2706
- type: Input
2707
- }], pressedChange: [{
2708
- type: Output
2709
- }] } });
2710
-
2711
- class PdmToggleGroupComponent {
2712
- constructor() {
2713
- this.items = [];
2714
- this.value = '';
2715
- this.className = '';
2716
- this.valueChange = new EventEmitter();
2717
- }
2718
- onSelect(next, disabled) {
2719
- if (!disabled && next !== this.value) {
2720
- this.valueChange.emit(next);
2721
- }
2722
- }
2723
- }
2724
- PdmToggleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2725
- PdmToggleGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmToggleGroupComponent, selector: "pdm-toggle-group", inputs: { items: "items", value: "value", className: "className" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-[hsl(var(--border))] p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n item.value === value\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleGroupComponent, decorators: [{
2727
- type: Component,
2728
- args: [{ selector: 'pdm-toggle-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['inline-flex items-center rounded-md border border-[hsl(var(--border))] p-1', className]\" role=\"group\">\n <button\n *ngFor=\"let item of items\"\n type=\"button\"\n [disabled]=\"item.disabled\"\n [attr.aria-pressed]=\"item.value === value\"\n [ngClass]=\"[\n 'inline-flex h-8 items-center justify-center rounded-sm px-2.5 text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50',\n item.value === value\n ? 'bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]'\n : 'text-[hsl(var(--foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]'\n ]\"\n (click)=\"onSelect(item.value, item.disabled)\"\n >\n {{ item.label }}\n </button>\n</div>\n" }]
2729
- }], propDecorators: { items: [{
2730
- type: Input
2731
- }], value: [{
2732
- type: Input
2733
- }], className: [{
2734
- type: Input
2735
- }], valueChange: [{
2736
- type: Output
2737
- }] } });
2738
-
2739
- class PdmTooltipComponent {
2740
- constructor() {
2741
- this.text = '';
2742
- this.side = 'top';
2743
- this.className = '';
2744
- this.open = false;
2745
- }
2746
- get positionClass() {
2747
- if (this.side === 'bottom')
2748
- return 'top-full left-1/2 -translate-x-1/2 mt-2';
2749
- if (this.side === 'left')
2750
- return 'right-full top-1/2 -translate-y-1/2 mr-2';
2751
- if (this.side === 'right')
2752
- return 'left-full top-1/2 -translate-y-1/2 ml-2';
2753
- return 'bottom-full left-1/2 -translate-x-1/2 mb-2';
2754
- }
2755
- }
2756
- PdmTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2757
- PdmTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PdmTooltipComponent, selector: "pdm-tooltip", inputs: { text: "text", side: "side", className: "className" }, ngImport: i0, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-[hsl(var(--foreground))] px-3 py-1.5 text-xs text-[hsl(var(--background))] animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2758
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTooltipComponent, decorators: [{
2759
- type: Component,
2760
- args: [{ selector: 'pdm-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"relative inline-flex\" [ngClass]=\"className\" (mouseenter)=\"open = true\" (mouseleave)=\"open = false\" (focusin)=\"open = true\" (focusout)=\"open = false\">\n <ng-content></ng-content>\n <span *ngIf=\"open\" [ngClass]=\"['pointer-events-none absolute z-50 overflow-hidden rounded-md bg-[hsl(var(--foreground))] px-3 py-1.5 text-xs text-[hsl(var(--background))] animate-in fade-in-0 zoom-in-95', positionClass]\">\n {{ text }}\n </span>\n</span>\n" }]
2761
- }], propDecorators: { text: [{
2762
- type: Input
2763
- }], side: [{
2764
- type: Input
2765
- }], className: [{
2766
- type: Input
2767
- }] } });
2768
-
2769
- const COMPONENTS = [
2770
- PdmAccordionComponent,
2771
- PdmAlertComponent,
2772
- PdmAlertDialogComponent,
2773
- PdmAspectRatioComponent,
2774
- PdmAvatarComponent,
2775
- PdmBadgeComponent,
2776
- PdmBreadcrumbComponent,
2777
- PdmButtonGroupComponent,
2778
- PdmButtonComponent,
2779
- PdmCalendarComponent,
2780
- PdmCarouselComponent,
2781
- PdmCardComponent,
2782
- PdmChartComponent,
2783
- PdmCheckboxComponent,
2784
- PdmCollapsibleComponent,
2785
- PdmComboboxComponent,
2786
- PdmCommandComponent,
2787
- PdmContextMenuComponent,
2788
- PdmDataTableComponent,
2789
- PdmDatePickerComponent,
2790
- PdmDialogComponent,
2791
- PdmDropdownMenuComponent,
2792
- PdmDrawerComponent,
2793
- PdmEmptyComponent,
2794
- PdmFieldComponent,
2795
- PdmHoverCardComponent,
2796
- PdmIconComponent,
2797
- PdmItemComponent,
2798
- PdmInputComponent,
2799
- PdmInputPasswordComponent,
2800
- PdmInputGroupComponent,
2801
- PdmInputOtpComponent,
2802
- PdmKbdComponent,
2803
- PdmLabelComponent,
2804
- PdmMenubarComponent,
2805
- PdmNativeSelectComponent,
2806
- PdmNavigationMenuComponent,
2807
- PdmPaginationComponent,
2808
- PdmPopoverComponent,
2809
- PdmProgressComponent,
2810
- PdmRadioGroupComponent,
2811
- PdmScrollAreaComponent,
2812
- PdmSelectComponent,
2813
- PdmSeparatorComponent,
2814
- PdmSheetComponent,
2815
- PdmSidebarComponent,
2816
- PdmSkeletonComponent,
2817
- PdmSliderComponent,
2818
- PdmSonnerComponent,
2819
- PdmSpinnerComponent,
2820
- PdmSwitchComponent,
2821
- PdmTableComponent,
2822
- PdmTabsComponent,
2823
- PdmTextareaComponent,
2824
- PdmToggleComponent,
2825
- PdmToggleGroupComponent,
2826
- PdmTooltipComponent
2827
- ];
2828
- class PdmUiKitModule {
2829
- }
2830
- PdmUiKitModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2831
- PdmUiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, declarations: [PdmAccordionComponent,
2832
- PdmAlertComponent,
2833
- PdmAlertDialogComponent,
2834
- PdmAspectRatioComponent,
2835
- PdmAvatarComponent,
2836
- PdmBadgeComponent,
2837
- PdmBreadcrumbComponent,
2838
- PdmButtonGroupComponent,
2839
- PdmButtonComponent,
2840
- PdmCalendarComponent,
2841
- PdmCarouselComponent,
2842
- PdmCardComponent,
2843
- PdmChartComponent,
2844
- PdmCheckboxComponent,
2845
- PdmCollapsibleComponent,
2846
- PdmComboboxComponent,
2847
- PdmCommandComponent,
2848
- PdmContextMenuComponent,
2849
- PdmDataTableComponent,
2850
- PdmDatePickerComponent,
2851
- PdmDialogComponent,
2852
- PdmDropdownMenuComponent,
2853
- PdmDrawerComponent,
2854
- PdmEmptyComponent,
2855
- PdmFieldComponent,
2856
- PdmHoverCardComponent,
2857
- PdmIconComponent,
2858
- PdmItemComponent,
2859
- PdmInputComponent,
2860
- PdmInputPasswordComponent,
2861
- PdmInputGroupComponent,
2862
- PdmInputOtpComponent,
2863
- PdmKbdComponent,
2864
- PdmLabelComponent,
2865
- PdmMenubarComponent,
2866
- PdmNativeSelectComponent,
2867
- PdmNavigationMenuComponent,
2868
- PdmPaginationComponent,
2869
- PdmPopoverComponent,
2870
- PdmProgressComponent,
2871
- PdmRadioGroupComponent,
2872
- PdmScrollAreaComponent,
2873
- PdmSelectComponent,
2874
- PdmSeparatorComponent,
2875
- PdmSheetComponent,
2876
- PdmSidebarComponent,
2877
- PdmSkeletonComponent,
2878
- PdmSliderComponent,
2879
- PdmSonnerComponent,
2880
- PdmSpinnerComponent,
2881
- PdmSwitchComponent,
2882
- PdmTableComponent,
2883
- PdmTabsComponent,
2884
- PdmTextareaComponent,
2885
- PdmToggleComponent,
2886
- PdmToggleGroupComponent,
2887
- PdmTooltipComponent], imports: [CommonModule], exports: [PdmAccordionComponent,
2888
- PdmAlertComponent,
2889
- PdmAlertDialogComponent,
2890
- PdmAspectRatioComponent,
2891
- PdmAvatarComponent,
2892
- PdmBadgeComponent,
2893
- PdmBreadcrumbComponent,
2894
- PdmButtonGroupComponent,
2895
- PdmButtonComponent,
2896
- PdmCalendarComponent,
2897
- PdmCarouselComponent,
2898
- PdmCardComponent,
2899
- PdmChartComponent,
2900
- PdmCheckboxComponent,
2901
- PdmCollapsibleComponent,
2902
- PdmComboboxComponent,
2903
- PdmCommandComponent,
2904
- PdmContextMenuComponent,
2905
- PdmDataTableComponent,
2906
- PdmDatePickerComponent,
2907
- PdmDialogComponent,
2908
- PdmDropdownMenuComponent,
2909
- PdmDrawerComponent,
2910
- PdmEmptyComponent,
2911
- PdmFieldComponent,
2912
- PdmHoverCardComponent,
2913
- PdmIconComponent,
2914
- PdmItemComponent,
2915
- PdmInputComponent,
2916
- PdmInputPasswordComponent,
2917
- PdmInputGroupComponent,
2918
- PdmInputOtpComponent,
2919
- PdmKbdComponent,
2920
- PdmLabelComponent,
2921
- PdmMenubarComponent,
2922
- PdmNativeSelectComponent,
2923
- PdmNavigationMenuComponent,
2924
- PdmPaginationComponent,
2925
- PdmPopoverComponent,
2926
- PdmProgressComponent,
2927
- PdmRadioGroupComponent,
2928
- PdmScrollAreaComponent,
2929
- PdmSelectComponent,
2930
- PdmSeparatorComponent,
2931
- PdmSheetComponent,
2932
- PdmSidebarComponent,
2933
- PdmSkeletonComponent,
2934
- PdmSliderComponent,
2935
- PdmSonnerComponent,
2936
- PdmSpinnerComponent,
2937
- PdmSwitchComponent,
2938
- PdmTableComponent,
2939
- PdmTabsComponent,
2940
- PdmTextareaComponent,
2941
- PdmToggleComponent,
2942
- PdmToggleGroupComponent,
2943
- PdmTooltipComponent] });
2944
- PdmUiKitModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, imports: [CommonModule] });
2945
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, decorators: [{
2946
- type: NgModule,
2947
- args: [{
2948
- imports: [CommonModule],
2949
- declarations: COMPONENTS,
2950
- exports: COMPONENTS
2951
- }]
2952
- }] });
2953
-
2954
- /**
2955
- * Generated bundle index. Do not edit.
2956
- */
2957
-
2958
- export { PdmAccordionComponent, PdmAlertComponent, PdmAlertDialogComponent, PdmAspectRatioComponent, PdmAvatarComponent, PdmBadgeComponent, PdmBreadcrumbComponent, PdmButtonComponent, PdmButtonGroupComponent, PdmCalendarComponent, PdmCardComponent, PdmCarouselComponent, PdmChartComponent, PdmCheckboxComponent, PdmCollapsibleComponent, PdmComboboxComponent, PdmCommandComponent, PdmContextMenuComponent, PdmDataTableComponent, PdmDatePickerComponent, PdmDialogComponent, PdmDrawerComponent, PdmDropdownMenuComponent, PdmEmptyComponent, PdmFieldComponent, PdmHoverCardComponent, PdmIconComponent, PdmInputComponent, PdmInputGroupComponent, PdmInputOtpComponent, PdmInputPasswordComponent, PdmItemComponent, PdmKbdComponent, PdmLabelComponent, PdmMenubarComponent, PdmNativeSelectComponent, PdmNavigationMenuComponent, PdmPaginationComponent, PdmPopoverComponent, PdmProgressComponent, PdmRadioGroupComponent, PdmScrollAreaComponent, PdmSelectComponent, PdmSeparatorComponent, PdmSheetComponent, PdmSidebarComponent, PdmSkeletonComponent, PdmSliderComponent, PdmSonnerComponent, PdmSpinnerComponent, PdmSwitchComponent, PdmTableComponent, PdmTabsComponent, PdmTextareaComponent, PdmToggleComponent, PdmToggleGroupComponent, PdmTooltipComponent, PdmUiKitModule };
2959
- //# sourceMappingURL=corelusa-pdm-ui-kit.mjs.map