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,2975 +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
- if (this.items[index]?.disabled)
26
- return;
27
- this.expandedIndexChange.emit(this.expandedIndex === index ? -1 : index);
28
- }
29
- }
30
- PdmAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- 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 });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAccordionComponent, decorators: [{
33
- type: Component,
34
- 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" }]
35
- }], propDecorators: { items: [{
36
- type: Input
37
- }], expandedIndex: [{
38
- type: Input
39
- }], className: [{
40
- type: Input
41
- }], expandedIndexChange: [{
42
- type: Output
43
- }] } });
44
-
45
- class PdmAlertComponent {
46
- constructor() {
47
- this.variant = 'default';
48
- this.title = 'Success! Your changes have been saved';
49
- this.description = 'This is an alert with icon, title and description.';
50
- this.details = [];
51
- this.className = '';
52
- }
53
- get isDestructive() {
54
- return this.variant === 'destructive';
55
- }
56
- get isTitleOnly() {
57
- return this.variant === 'title-only';
58
- }
59
- }
60
- PdmAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- 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 });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertComponent, decorators: [{
63
- type: Component,
64
- 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" }]
65
- }], propDecorators: { variant: [{
66
- type: Input
67
- }], title: [{
68
- type: Input
69
- }], description: [{
70
- type: Input
71
- }], details: [{
72
- type: Input
73
- }], className: [{
74
- type: Input
75
- }] } });
76
-
77
- class PdmAlertDialogComponent {
78
- constructor() {
79
- this.open = false;
80
- this.showTrigger = false;
81
- this.triggerText = 'Show dialog';
82
- this.title = 'Are you absolutely sure?';
83
- this.description = '';
84
- this.confirmText = 'Continue';
85
- this.cancelText = 'Cancel';
86
- this.className = '';
87
- this.openChange = new EventEmitter();
88
- this.confirm = new EventEmitter();
89
- this.cancel = new EventEmitter();
90
- }
91
- onTriggerClick() {
92
- this.open = true;
93
- this.openChange.emit(true);
94
- }
95
- onCancel() {
96
- this.cancel.emit();
97
- this.open = false;
98
- this.openChange.emit(false);
99
- }
100
- onConfirm() {
101
- this.confirm.emit();
102
- this.open = false;
103
- this.openChange.emit(false);
104
- }
105
- onEsc() {
106
- if (this.open) {
107
- this.onCancel();
108
- }
109
- }
110
- }
111
- PdmAlertDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- 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 });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAlertDialogComponent, decorators: [{
114
- type: Component,
115
- 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" }]
116
- }], propDecorators: { open: [{
117
- type: Input
118
- }], showTrigger: [{
119
- type: Input
120
- }], triggerText: [{
121
- type: Input
122
- }], title: [{
123
- type: Input
124
- }], description: [{
125
- type: Input
126
- }], confirmText: [{
127
- type: Input
128
- }], cancelText: [{
129
- type: Input
130
- }], className: [{
131
- type: Input
132
- }], openChange: [{
133
- type: Output
134
- }], confirm: [{
135
- type: Output
136
- }], cancel: [{
137
- type: Output
138
- }], onEsc: [{
139
- type: HostListener,
140
- args: ['document:keydown.escape']
141
- }] } });
142
-
143
- class PdmAspectRatioComponent {
144
- constructor() {
145
- this.ratio = 16 / 9;
146
- this.imageSrc = '';
147
- this.imageAlt = '';
148
- this.className = '';
149
- }
150
- get paddingTop() {
151
- if (!this.ratio || this.ratio <= 0)
152
- return '56.25%';
153
- return (100 / this.ratio).toFixed(4) + '%';
154
- }
155
- }
156
- PdmAspectRatioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
- 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 });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAspectRatioComponent, decorators: [{
159
- type: Component,
160
- 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" }]
161
- }], propDecorators: { ratio: [{
162
- type: Input
163
- }], imageSrc: [{
164
- type: Input
165
- }], imageAlt: [{
166
- type: Input
167
- }], className: [{
168
- type: Input
169
- }] } });
170
-
171
- class PdmAvatarComponent {
172
- constructor() {
173
- this.src = '';
174
- this.alt = 'Avatar';
175
- this.fallback = 'U';
176
- this.shape = 'circle';
177
- this.size = 'md';
178
- this.groupSources = [];
179
- this.className = '';
180
- this.sizeClasses = {
181
- sm: 'h-8 w-8',
182
- md: 'h-10 w-10',
183
- lg: 'h-12 w-12'
184
- };
185
- }
186
- get isGroup() {
187
- return this.groupSources.length > 0;
188
- }
189
- get radiusClass() {
190
- return this.shape === 'square' ? 'rounded-[8px]' : 'rounded-full';
191
- }
192
- }
193
- PdmAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
194
- 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 });
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmAvatarComponent, decorators: [{
196
- type: Component,
197
- 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" }]
198
- }], propDecorators: { src: [{
199
- type: Input
200
- }], alt: [{
201
- type: Input
202
- }], fallback: [{
203
- type: Input
204
- }], shape: [{
205
- type: Input
206
- }], size: [{
207
- type: Input
208
- }], groupSources: [{
209
- type: Input
210
- }], className: [{
211
- type: Input
212
- }] } });
213
-
214
- class PdmBadgeComponent {
215
- constructor() {
216
- this.variant = 'default';
217
- this.text = 'Badge';
218
- this.className = '';
219
- }
220
- }
221
- PdmBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
222
- 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 });
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBadgeComponent, decorators: [{
224
- type: Component,
225
- 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" }]
226
- }], propDecorators: { variant: [{
227
- type: Input
228
- }], text: [{
229
- type: Input
230
- }], className: [{
231
- type: Input
232
- }] } });
233
-
234
- class PdmBreadcrumbComponent {
235
- constructor() {
236
- this.mode = 'link-component';
237
- this.items = ['Home', 'Components', 'Breadcrumb'];
238
- this.className = '';
239
- }
240
- get renderedItems() {
241
- if ((this.mode === 'collapsed' || this.mode === 'responsive') && this.items.length > 3) {
242
- return [this.items[0], '...', this.items[this.items.length - 2], this.items[this.items.length - 1]];
243
- }
244
- return this.items;
245
- }
246
- }
247
- PdmBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
248
- 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 });
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmBreadcrumbComponent, decorators: [{
250
- type: Component,
251
- 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" }]
252
- }], propDecorators: { mode: [{
253
- type: Input
254
- }], items: [{
255
- type: Input
256
- }], className: [{
257
- type: Input
258
- }] } });
259
-
260
- class PdmButtonGroupComponent {
261
- constructor() {
262
- this.variant = 'default';
263
- this.items = ['Archive', 'Report'];
264
- this.className = '';
265
- }
266
- }
267
- PdmButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
268
- 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 });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonGroupComponent, decorators: [{
270
- type: Component,
271
- 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" }]
272
- }], propDecorators: { variant: [{
273
- type: Input
274
- }], items: [{
275
- type: Input
276
- }], className: [{
277
- type: Input
278
- }] } });
279
-
280
- class PdmButtonComponent {
281
- constructor() {
282
- this.type = 'button';
283
- this.variant = 'default';
284
- this.state = 'default';
285
- this.size = 'default';
286
- this.disabled = false;
287
- this.loading = false;
288
- this.className = '';
289
- this.pressed = new EventEmitter();
290
- this.toneClassMap = {
291
- default: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
292
- primary: { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
293
- destructive: { default: 'bg-destructive text-background', hover: 'bg-destructive text-background opacity-90' },
294
- outline: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
295
- subtle: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
296
- secondary: { default: 'bg-secondary text-secondary-foreground', hover: 'bg-accent text-accent-foreground' },
297
- ghost: { default: 'bg-transparent text-foreground', hover: 'bg-accent text-accent-foreground' },
298
- link: { default: 'bg-transparent text-primary', hover: 'bg-transparent text-primary' },
299
- 'with-icon': { default: 'bg-primary text-primary-foreground', hover: 'bg-primary text-primary-foreground opacity-90' },
300
- icon: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
301
- 'icon-circle': { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
302
- rounded: { default: 'border border-border bg-background text-foreground', hover: 'border border-border bg-accent text-accent-foreground' },
303
- loading: { default: 'bg-primary text-primary-foreground opacity-70', hover: 'bg-primary text-primary-foreground opacity-70' }
304
- };
305
- }
306
- get isDisabled() {
307
- return this.disabled || this.loading || this.variant === 'loading';
308
- }
309
- get rootClasses() {
310
- const currentState = this.state === 'hover' ? 'hover' : 'default';
311
- const toneClass = this.toneClassMap[this.variant][currentState];
312
- return [
313
- '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',
314
- this.variant === 'link' ? 'px-4 py-2 h-9' : '',
315
- this.variant === 'icon' ? 'h-8 w-8 p-2' : '',
316
- this.variant === 'icon-circle' ? 'h-10 w-10 rounded-[96px] p-3' : '',
317
- this.variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',
318
- this.variant !== 'icon' && this.variant !== 'icon-circle' && this.variant !== 'rounded'
319
- ? this.size === 'small'
320
- ? 'h-8 px-3'
321
- : this.size === 'large'
322
- ? 'h-10 px-5'
323
- : 'h-9 px-4'
324
- : '',
325
- this.variant === 'link' && this.state === 'hover' ? 'underline [text-decoration-skip-ink:none]' : '',
326
- toneClass,
327
- this.className
328
- ];
329
- }
330
- onClick(event) {
331
- if (!this.isDisabled) {
332
- this.pressed.emit(event);
333
- }
334
- }
335
- }
336
- PdmButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
337
- 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 });
338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmButtonComponent, decorators: [{
339
- type: Component,
340
- 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" }]
341
- }], propDecorators: { type: [{
342
- type: Input
343
- }], variant: [{
344
- type: Input
345
- }], state: [{
346
- type: Input
347
- }], size: [{
348
- type: Input
349
- }], disabled: [{
350
- type: Input
351
- }], loading: [{
352
- type: Input
353
- }], className: [{
354
- type: Input
355
- }], pressed: [{
356
- type: Output
357
- }] } });
358
-
359
- class PdmCalendarComponent {
360
- constructor() {
361
- this.mode = 'single';
362
- this.month = 6;
363
- this.year = 2025;
364
- this.selectedDay = 25;
365
- this.rangeStartDay = 25;
366
- this.rangeEndDay = 9;
367
- this.className = '';
368
- this.weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
369
- }
370
- get leftMonthName() {
371
- return this.monthName(this.month - 1);
372
- }
373
- get rightMonthName() {
374
- const rightMonth = this.month % 12;
375
- return this.monthName(rightMonth);
376
- }
377
- get leftCells() {
378
- return this.buildMonthCells(this.year, this.month - 1, this.selectedDay, this.mode === 'range' ? this.rangeStartDay : undefined, this.mode === 'range' ? 31 : undefined);
379
- }
380
- get rightCells() {
381
- const rightMonth = this.month % 12;
382
- const rightYear = this.month === 12 ? this.year + 1 : this.year;
383
- return this.buildMonthCells(rightYear, rightMonth, this.mode === 'range' ? this.rangeEndDay : undefined, 1, this.mode === 'range' ? this.rangeEndDay : undefined);
384
- }
385
- monthName(monthIndex) {
386
- const safe = ((monthIndex % 12) + 12) % 12;
387
- return new Date(this.year, safe, 1).toLocaleString('en-US', { month: 'long' });
388
- }
389
- buildMonthCells(year, monthIndex, selectedDay, rangeStartDay, rangeEndDay) {
390
- const firstDay = new Date(year, monthIndex, 1);
391
- const startWeekday = firstDay.getDay();
392
- const daysInMonth = new Date(year, monthIndex + 1, 0).getDate();
393
- const cells = [];
394
- for (let i = 0; i < 42; i += 1) {
395
- const dayNumber = i - startWeekday + 1;
396
- const date = new Date(year, monthIndex, dayNumber);
397
- const outside = dayNumber < 1 || dayNumber > daysInMonth;
398
- const day = date.getDate();
399
- const selected = !outside && !!selectedDay && day === selectedDay;
400
- const inRange = !outside && !!rangeStartDay && !!rangeEndDay && day >= rangeStartDay && day <= rangeEndDay;
401
- cells.push({ date, day, outside, selected, inRange });
402
- }
403
- return cells;
404
- }
405
- }
406
- PdmCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
407
- 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 });
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCalendarComponent, decorators: [{
409
- type: Component,
410
- 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" }]
411
- }], propDecorators: { mode: [{
412
- type: Input
413
- }], month: [{
414
- type: Input
415
- }], year: [{
416
- type: Input
417
- }], selectedDay: [{
418
- type: Input
419
- }], rangeStartDay: [{
420
- type: Input
421
- }], rangeEndDay: [{
422
- type: Input
423
- }], className: [{
424
- type: Input
425
- }] } });
426
-
427
- class PdmCarouselComponent {
428
- constructor() {
429
- this.variant = 'default';
430
- this.className = '';
431
- this.slides = [1, 2, 3, 4, 5];
432
- this.startIndex = 0;
433
- this.loop = false;
434
- this.indexChange = new EventEmitter();
435
- this._index = 0;
436
- }
437
- ngOnInit() {
438
- this._index = this.normalizeIndex(this.startIndex);
439
- }
440
- get index() {
441
- return this._index;
442
- }
443
- get canPrev() {
444
- return this.loop || this._index > 0;
445
- }
446
- get canNext() {
447
- return this.loop || this._index < this.maxIndex;
448
- }
449
- get maxIndex() {
450
- if (this.slides.length === 0) {
451
- return 0;
452
- }
453
- if (this.variant === 'sizes') {
454
- return Math.max(0, this.slides.length - 3);
455
- }
456
- if (this.variant === 'orientation') {
457
- return Math.max(0, this.slides.length - 2);
458
- }
459
- return Math.max(0, this.slides.length - 1);
460
- }
461
- get visibleSlides() {
462
- if (this.slides.length === 0) {
463
- return [];
464
- }
465
- if (this.variant === 'sizes') {
466
- return this.sliceWindow(3);
467
- }
468
- if (this.variant === 'orientation') {
469
- return this.sliceWindow(2);
470
- }
471
- return [this.slides[this._index]];
472
- }
473
- onPrev() {
474
- if (!this.canPrev) {
475
- return;
476
- }
477
- const next = this._index - 1;
478
- this.setIndex(this.loop && next < 0 ? this.maxIndex : next);
479
- }
480
- onNext() {
481
- if (!this.canNext) {
482
- return;
483
- }
484
- const next = this._index + 1;
485
- this.setIndex(this.loop && next > this.maxIndex ? 0 : next);
486
- }
487
- setIndex(value) {
488
- const normalized = this.normalizeIndex(value);
489
- this._index = normalized;
490
- this.indexChange.emit(this._index);
491
- }
492
- normalizeIndex(value) {
493
- if (this.slides.length === 0) {
494
- return 0;
495
- }
496
- return Math.min(this.maxIndex, Math.max(0, value));
497
- }
498
- sliceWindow(size) {
499
- return this.slides.slice(this._index, this._index + size);
500
- }
501
- }
502
- PdmCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
503
- 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 });
504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCarouselComponent, decorators: [{
505
- type: Component,
506
- 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" }]
507
- }], propDecorators: { variant: [{
508
- type: Input
509
- }], className: [{
510
- type: Input
511
- }], slides: [{
512
- type: Input
513
- }], startIndex: [{
514
- type: Input
515
- }], loop: [{
516
- type: Input
517
- }], indexChange: [{
518
- type: Output
519
- }] } });
520
-
521
- class PdmCardComponent {
522
- constructor() {
523
- this.variant = 'default';
524
- this.className = '';
525
- this.title = 'Login to your account';
526
- this.description = 'Enter your email below to login to your account';
527
- this.actionText = 'Sign up';
528
- this.emailLabel = 'Email';
529
- this.emailPlaceholder = 'm@example.com';
530
- this.passwordLabel = 'Password';
531
- this.passwordHint = 'Forgot password?';
532
- this.primaryActionText = 'Login';
533
- this.secondaryActionText = 'Login with Google';
534
- this.primaryAction = new EventEmitter();
535
- this.secondaryAction = new EventEmitter();
536
- this.actionPressed = new EventEmitter();
537
- }
538
- onPrimaryAction() {
539
- this.primaryAction.emit();
540
- }
541
- onSecondaryAction() {
542
- this.secondaryAction.emit();
543
- }
544
- onActionPressed() {
545
- this.actionPressed.emit();
546
- }
547
- }
548
- PdmCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
549
- 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 });
550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCardComponent, decorators: [{
551
- type: Component,
552
- 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" }]
553
- }], propDecorators: { variant: [{
554
- type: Input
555
- }], className: [{
556
- type: Input
557
- }], title: [{
558
- type: Input
559
- }], description: [{
560
- type: Input
561
- }], actionText: [{
562
- type: Input
563
- }], emailLabel: [{
564
- type: Input
565
- }], emailPlaceholder: [{
566
- type: Input
567
- }], passwordLabel: [{
568
- type: Input
569
- }], passwordHint: [{
570
- type: Input
571
- }], primaryActionText: [{
572
- type: Input
573
- }], secondaryActionText: [{
574
- type: Input
575
- }], primaryAction: [{
576
- type: Output
577
- }], secondaryAction: [{
578
- type: Output
579
- }], actionPressed: [{
580
- type: Output
581
- }] } });
582
-
583
- class PdmChartComponent {
584
- constructor() {
585
- this.type = 'bar';
586
- this.className = '';
587
- this.title = 'Bar Chart - Interactive';
588
- this.description = 'Showing total visitors for the last 3 months';
589
- this.desktopLabel = 'Desktop';
590
- this.desktopValue = '24,828';
591
- this.mobileLabel = 'Mobile';
592
- this.mobileValue = '25,010';
593
- this.labels = ['Apr 9', 'Apr 19', 'Apr 29', 'May 9', 'May 19', 'May 29', 'Jun 9', 'Jun 19', 'Jun 30'];
594
- this.bars = [
595
- 48, 21, 53, 69, 56, 77, 12, 54, 61, 59, 66, 27, 24, 27, 84, 62, 44, 18, 45, 57,
596
- 45, 72, 56, 15, 73, 25, 59, 86, 49, 59, 69, 93, 96, 72, 30, 58, 75, 67, 43, 43,
597
- 84, 89, 62, 96, 59, 72, 82, 34, 34, 70, 62, 42, 40, 80, 60, 33, 67, 34, 34, 88,
598
- 22, 84, 19, 62, 56, 43, 95, 70, 67, 89, 84, 31, 18, 92, 16, 87, 54, 44, 91, 23,
599
- 67, 77, 49, 59, 93, 26, 29, 81, 84, 30, 22, 84
600
- ];
601
- this.line = [40, 28, 56, 49, 73, 67, 81, 58, 92];
602
- this.pie = [35, 28, 20, 17];
603
- this.radar = [72, 58, 88, 64, 79, 70];
604
- this.radialValue = 76;
605
- this.radialLabel = 'Completion';
606
- this.radialDescription = 'Updated monthly';
607
- this.tooltipTitle = 'June 2024';
608
- this.tooltipPrimaryLabel = 'Desktop';
609
- this.tooltipPrimaryValue = '12,450';
610
- this.tooltipSecondaryLabel = 'Mobile';
611
- this.tooltipSecondaryValue = '8,110';
612
- this.pieLabels = ['Desktop', 'Mobile', 'Tablet', 'Other'];
613
- }
614
- get normalizedBars() {
615
- if (!this.bars.length) {
616
- return [];
617
- }
618
- const max = Math.max(...this.bars);
619
- if (max === 0) {
620
- return this.bars.map(() => 0);
621
- }
622
- return this.bars.map((value) => Math.max(8, Math.round((value / max) * 183)));
623
- }
624
- get normalizedLine() {
625
- if (!this.line.length) {
626
- return [];
627
- }
628
- const max = Math.max(...this.line);
629
- if (max === 0) {
630
- return this.line.map(() => 170);
631
- }
632
- return this.line.map((value) => 180 - Math.round((value / max) * 150));
633
- }
634
- get linePath() {
635
- const points = this.normalizedLine;
636
- if (!points.length) {
637
- return '';
638
- }
639
- const step = points.length > 1 ? 320 / (points.length - 1) : 0;
640
- return points
641
- .map((y, index) => `${index === 0 ? 'M' : 'L'} ${Math.round(index * step)} ${y}`)
642
- .join(' ');
643
- }
644
- get areaPath() {
645
- const linePath = this.linePath;
646
- if (!linePath) {
647
- return '';
648
- }
649
- return `${linePath} L 320 180 L 0 180 Z`;
650
- }
651
- get pieSegments() {
652
- const total = this.pie.reduce((acc, value) => acc + Math.max(value, 0), 0);
653
- if (total === 0) {
654
- return [];
655
- }
656
- let offset = 0;
657
- const colors = ['#0090ff', '#34d399', '#f59e0b', '#f43f5e'];
658
- return this.pie.map((value, index) => {
659
- const size = (Math.max(value, 0) / total) * 100;
660
- const segment = {
661
- color: colors[index % colors.length],
662
- size,
663
- offset,
664
- label: this.pieLabels[index] ?? `Series ${index + 1}`
665
- };
666
- offset += size;
667
- return segment;
668
- });
669
- }
670
- get pieGradient() {
671
- const segments = this.pieSegments;
672
- if (!segments.length) {
673
- return 'conic-gradient(#e5e5e5 0 100%)';
674
- }
675
- return `conic-gradient(${segments
676
- .map((segment) => `${segment.color} ${segment.offset}% ${segment.offset + segment.size}%`)
677
- .join(', ')})`;
678
- }
679
- get radarPoints() {
680
- const values = this.radar.slice(0, 6);
681
- if (!values.length) {
682
- return '';
683
- }
684
- const max = Math.max(...values, 1);
685
- const radius = 72;
686
- const center = 80;
687
- return values
688
- .map((value, index) => {
689
- const angle = ((Math.PI * 2) / values.length) * index - Math.PI / 2;
690
- const valueRadius = (Math.max(value, 0) / max) * radius;
691
- const x = center + Math.cos(angle) * valueRadius;
692
- const y = center + Math.sin(angle) * valueRadius;
693
- return `${x},${y}`;
694
- })
695
- .join(' ');
696
- }
697
- get radialStrokeOffset() {
698
- const bounded = Math.max(0, Math.min(this.radialValue, 100));
699
- const circumference = 2 * Math.PI * 42;
700
- return circumference - (bounded / 100) * circumference;
701
- }
702
- }
703
- PdmChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
704
- 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 });
705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmChartComponent, decorators: [{
706
- type: Component,
707
- 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" }]
708
- }], propDecorators: { type: [{
709
- type: Input
710
- }], className: [{
711
- type: Input
712
- }], title: [{
713
- type: Input
714
- }], description: [{
715
- type: Input
716
- }], desktopLabel: [{
717
- type: Input
718
- }], desktopValue: [{
719
- type: Input
720
- }], mobileLabel: [{
721
- type: Input
722
- }], mobileValue: [{
723
- type: Input
724
- }], labels: [{
725
- type: Input
726
- }], bars: [{
727
- type: Input
728
- }], line: [{
729
- type: Input
730
- }], pie: [{
731
- type: Input
732
- }], radar: [{
733
- type: Input
734
- }], radialValue: [{
735
- type: Input
736
- }], radialLabel: [{
737
- type: Input
738
- }], radialDescription: [{
739
- type: Input
740
- }], tooltipTitle: [{
741
- type: Input
742
- }], tooltipPrimaryLabel: [{
743
- type: Input
744
- }], tooltipPrimaryValue: [{
745
- type: Input
746
- }], tooltipSecondaryLabel: [{
747
- type: Input
748
- }], tooltipSecondaryValue: [{
749
- type: Input
750
- }], pieLabels: [{
751
- type: Input
752
- }] } });
753
-
754
- class PdmCheckboxComponent {
755
- constructor() {
756
- this.id = '';
757
- this.checked = false;
758
- this.disabled = false;
759
- this.variant = 'default';
760
- this.label = 'Accept terms and conditions';
761
- this.description = '';
762
- this.className = '';
763
- this.checkedChange = new EventEmitter();
764
- }
765
- get hasDescription() {
766
- return this.variant === 'subtext' || this.variant === 'card' ? !!this.description : false;
767
- }
768
- onToggle() {
769
- if (this.disabled) {
770
- return;
771
- }
772
- this.checkedChange.emit(!this.checked);
773
- }
774
- }
775
- PdmCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
776
- 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 });
777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCheckboxComponent, decorators: [{
778
- type: Component,
779
- 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" }]
780
- }], propDecorators: { id: [{
781
- type: Input
782
- }], checked: [{
783
- type: Input
784
- }], disabled: [{
785
- type: Input
786
- }], variant: [{
787
- type: Input
788
- }], label: [{
789
- type: Input
790
- }], description: [{
791
- type: Input
792
- }], className: [{
793
- type: Input
794
- }], checkedChange: [{
795
- type: Output
796
- }] } });
797
-
798
- class PdmCollapsibleComponent {
799
- constructor() {
800
- this.title = '@peduarte starred 3 repositories';
801
- this.open = false;
802
- this.disabled = false;
803
- this.items = ['@radix-ui/primitives', '@radix-ui/colors', '@stitches/react'];
804
- this.className = '';
805
- this.openChange = new EventEmitter();
806
- }
807
- get visibleItems() {
808
- if (!this.items.length) {
809
- return [];
810
- }
811
- return this.open ? this.items : this.items.slice(0, 1);
812
- }
813
- toggle() {
814
- if (!this.disabled) {
815
- this.openChange.emit(!this.open);
816
- }
817
- }
818
- }
819
- PdmCollapsibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
820
- 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 });
821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCollapsibleComponent, decorators: [{
822
- type: Component,
823
- 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" }]
824
- }], propDecorators: { title: [{
825
- type: Input
826
- }], open: [{
827
- type: Input
828
- }], disabled: [{
829
- type: Input
830
- }], items: [{
831
- type: Input
832
- }], className: [{
833
- type: Input
834
- }], openChange: [{
835
- type: Output
836
- }] } });
837
-
838
- class PdmComboboxComponent {
839
- constructor() {
840
- this.open = false;
841
- this.placeholder = 'Select framework...';
842
- this.searchPlaceholder = 'Search framework';
843
- this.className = '';
844
- this.options = ['Next.js', 'SvelteKit', 'Nuxt.js', 'Remix', 'Astro'];
845
- this.value = '';
846
- this.width = 200;
847
- this.openChange = new EventEmitter();
848
- this.valueChange = new EventEmitter();
849
- }
850
- get selectedLabel() {
851
- return this.value || this.placeholder;
852
- }
853
- toggle() {
854
- this.openChange.emit(!this.open);
855
- }
856
- select(option) {
857
- this.valueChange.emit(option);
858
- this.openChange.emit(false);
859
- }
860
- }
861
- PdmComboboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
862
- 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 });
863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmComboboxComponent, decorators: [{
864
- type: Component,
865
- 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" }]
866
- }], propDecorators: { open: [{
867
- type: Input
868
- }], placeholder: [{
869
- type: Input
870
- }], searchPlaceholder: [{
871
- type: Input
872
- }], className: [{
873
- type: Input
874
- }], options: [{
875
- type: Input
876
- }], value: [{
877
- type: Input
878
- }], width: [{
879
- type: Input
880
- }], openChange: [{
881
- type: Output
882
- }], valueChange: [{
883
- type: Output
884
- }] } });
885
-
886
- class PdmIconComponent {
887
- constructor() {
888
- this.name = 'check';
889
- this.library = 'lucide';
890
- this.assetUrl = null;
891
- this.size = 16;
892
- this.strokeWidth = 1.5;
893
- this.className = '';
894
- this.ariaLabel = null;
895
- this.decorative = false;
896
- this.aliasMapByLibrary = {
897
- lucide: {},
898
- tabler: {
899
- 'alert-triangle': 'alert-circle',
900
- 'chevron-down': 'chevron-down',
901
- 'chevron-right': 'chevron-right',
902
- 'user-circle': 'user',
903
- 'settings-2': 'settings',
904
- 'external-link': 'external-link'
905
- },
906
- hugeicons: {
907
- 'alert-02': 'alert-circle',
908
- 'user-circle': 'user',
909
- 'search-01': 'search',
910
- 'settings-01': 'settings',
911
- 'arrow-right-01': 'chevron-right',
912
- 'arrow-down-01': 'chevron-down'
913
- },
914
- phosphor: {
915
- 'warning-circle': 'alert-circle',
916
- 'caret-down': 'chevron-down',
917
- 'caret-right': 'chevron-right',
918
- 'user-circle': 'user',
919
- gear: 'settings',
920
- 'arrow-square-out': 'external-link'
921
- },
922
- remix: {
923
- 'alert-line': 'alert-circle',
924
- 'arrow-right-line': 'chevron-right',
925
- 'arrow-down-s-line': 'chevron-down',
926
- 'external-link-line': 'external-link',
927
- 'user-line': 'user',
928
- 'settings-3-line': 'settings'
929
- }
930
- };
931
- }
932
- get resolvedStrokeWidth() {
933
- if (this.strokeWidth) {
934
- return this.strokeWidth;
935
- }
936
- if (this.library === 'phosphor') {
937
- return 1.6;
938
- }
939
- if (this.library === 'tabler') {
940
- return 1.8;
941
- }
942
- return 1.5;
943
- }
944
- get iconKey() {
945
- const raw = `${this.name || ''}`.trim();
946
- if (!raw) {
947
- return 'circle';
948
- }
949
- const trimmed = raw.replace(/^(lucide|tabler|hugeicons|phosphor|remix)\//, '');
950
- const aliases = this.aliasMapByLibrary[this.library] ?? {};
951
- return aliases[trimmed] ?? trimmed;
952
- }
953
- }
954
- PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
955
- 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 });
956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmIconComponent, decorators: [{
957
- type: Component,
958
- 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" }]
959
- }], propDecorators: { name: [{
960
- type: Input
961
- }], library: [{
962
- type: Input
963
- }], assetUrl: [{
964
- type: Input
965
- }], size: [{
966
- type: Input
967
- }], strokeWidth: [{
968
- type: Input
969
- }], className: [{
970
- type: Input
971
- }], ariaLabel: [{
972
- type: Input
973
- }], decorative: [{
974
- type: Input
975
- }] } });
976
-
977
- class PdmCommandComponent {
978
- constructor() {
979
- this.open = true;
980
- this.hintLabel = 'Press';
981
- this.hintKey = 'J';
982
- this.placeholder = 'Type a command or search...';
983
- this.emptyMessage = 'No results found.';
984
- this.items = [
985
- { label: 'Calendar', value: 'calendar', group: 'Suggestions', icon: 'calendar' },
986
- { label: 'Search emoji', value: 'emoji', group: 'Suggestions', icon: 'smile' },
987
- { label: 'Calculator', value: 'calculator', group: 'Suggestions', icon: 'calculator', disabled: true },
988
- { label: 'Profile', value: 'profile', group: 'Settings', icon: 'user', shortcut: '⌘P' },
989
- { label: 'Billing', value: 'billing', group: 'Settings', icon: 'credit-card', shortcut: '⌘B' },
990
- { label: 'Settings', value: 'settings', group: 'Settings', icon: 'settings', shortcut: '⌘S' }
991
- ];
992
- this.className = '';
993
- this.itemSelect = new EventEmitter();
994
- this.openChange = new EventEmitter();
995
- this.query = '';
996
- }
997
- get filteredItems() {
998
- const q = this.query.toLowerCase().trim();
999
- if (!q)
1000
- return this.items;
1001
- return this.items.filter((item) => item.label.toLowerCase().includes(q));
1002
- }
1003
- get groupedItems() {
1004
- const map = new Map();
1005
- for (const item of this.filteredItems) {
1006
- const key = item.group || '';
1007
- const arr = map.get(key) ?? [];
1008
- arr.push(item);
1009
- map.set(key, arr);
1010
- }
1011
- return Array.from(map.entries()).map(([name, items]) => ({ name, items }));
1012
- }
1013
- onQueryChange(event) {
1014
- this.query = event.target.value;
1015
- }
1016
- toggleOpen() {
1017
- this.openChange.emit(!this.open);
1018
- }
1019
- select(value) {
1020
- this.itemSelect.emit(value);
1021
- }
1022
- }
1023
- PdmCommandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCommandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1024
- 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 });
1025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmCommandComponent, decorators: [{
1026
- type: Component,
1027
- 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" }]
1028
- }], propDecorators: { open: [{
1029
- type: Input
1030
- }], hintLabel: [{
1031
- type: Input
1032
- }], hintKey: [{
1033
- type: Input
1034
- }], placeholder: [{
1035
- type: Input
1036
- }], emptyMessage: [{
1037
- type: Input
1038
- }], items: [{
1039
- type: Input
1040
- }], className: [{
1041
- type: Input
1042
- }], itemSelect: [{
1043
- type: Output
1044
- }], openChange: [{
1045
- type: Output
1046
- }] } });
1047
-
1048
- class PdmContextMenuComponent {
1049
- constructor(elementRef) {
1050
- this.elementRef = elementRef;
1051
- this.items = [
1052
- { type: 'item', label: 'Back', value: 'back', inset: true, shortcut: '⌘[' },
1053
- { type: 'item', label: 'Forward', value: 'forward', inset: true, shortcut: '⌘]', disabled: true },
1054
- { type: 'item', label: 'Reload', value: 'reload', inset: true, shortcut: '⌘R' },
1055
- { type: 'item', label: 'More Tools', value: 'more-tools', inset: true, showChevron: true },
1056
- { type: 'separator' },
1057
- { type: 'item', label: 'Show Bookmarks Bar', value: 'show-bookmarks', checked: true },
1058
- { type: 'item', label: 'Show Full URLs', value: 'show-urls', inset: true },
1059
- { type: 'separator' },
1060
- { type: 'label', label: 'People' },
1061
- { type: 'separator' },
1062
- { type: 'item', label: 'Pedro Duarte', value: 'pedro', selectedDot: true },
1063
- { type: 'item', label: 'Colm Tuite', value: 'colm', inset: true }
1064
- ];
1065
- this.className = '';
1066
- this.triggerLabel = 'Right click here';
1067
- this.width = 300;
1068
- this.height = 150;
1069
- this.itemSelect = new EventEmitter();
1070
- this.open = false;
1071
- this.x = 0;
1072
- this.y = 0;
1073
- }
1074
- onContextMenu(event) {
1075
- event.preventDefault();
1076
- this.x = event.clientX;
1077
- this.y = event.clientY;
1078
- this.open = true;
1079
- }
1080
- select(item) {
1081
- if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value)
1082
- return;
1083
- this.itemSelect.emit(item.value);
1084
- this.open = false;
1085
- }
1086
- onEsc() {
1087
- this.open = false;
1088
- }
1089
- onDocumentClick(event) {
1090
- if (!this.open)
1091
- return;
1092
- const target = event.target;
1093
- if (target && !this.elementRef.nativeElement.contains(target)) {
1094
- this.open = false;
1095
- }
1096
- }
1097
- }
1098
- PdmContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1099
- 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 });
1100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmContextMenuComponent, decorators: [{
1101
- type: Component,
1102
- 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" }]
1103
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { items: [{
1104
- type: Input
1105
- }], className: [{
1106
- type: Input
1107
- }], triggerLabel: [{
1108
- type: Input
1109
- }], width: [{
1110
- type: Input
1111
- }], height: [{
1112
- type: Input
1113
- }], itemSelect: [{
1114
- type: Output
1115
- }], onEsc: [{
1116
- type: HostListener,
1117
- args: ['document:keydown.escape']
1118
- }], onDocumentClick: [{
1119
- type: HostListener,
1120
- args: ['document:click', ['$event']]
1121
- }] } });
1122
-
1123
- class PdmDataTableComponent {
1124
- constructor() {
1125
- this.className = '';
1126
- this.filterPlaceholder = 'Filter emails...';
1127
- this.columnsLabel = 'Columns';
1128
- this.rows = [
1129
- { id: '1', status: 'Success', email: 'ken99@yahoo.com', amount: '$316.00' },
1130
- { id: '2', status: 'Success', email: 'abe45@gmail.com', amount: '$242.00' },
1131
- { id: '3', status: 'Processing', email: 'monserrat44@gmail.com', amount: '$837.00' },
1132
- { id: '4', status: 'Success', email: 'silas22@gmail.com', amount: '$874.00' },
1133
- { id: '5', status: 'Failed', email: 'carmella@hotmail.com', amount: '$721.00' }
1134
- ];
1135
- this.page = 1;
1136
- this.pageSize = 5;
1137
- this.query = '';
1138
- this.queryChange = new EventEmitter();
1139
- this.rowAction = new EventEmitter();
1140
- this.pageChange = new EventEmitter();
1141
- this.selectionChange = new EventEmitter();
1142
- }
1143
- get filteredRows() {
1144
- const q = this.query.trim().toLowerCase();
1145
- if (!q)
1146
- return this.rows;
1147
- return this.rows.filter((r) => r.email.toLowerCase().includes(q));
1148
- }
1149
- get pagedRows() {
1150
- const start = (this.page - 1) * this.pageSize;
1151
- return this.filteredRows.slice(start, start + this.pageSize);
1152
- }
1153
- get totalPages() {
1154
- return Math.max(1, Math.ceil(this.filteredRows.length / this.pageSize));
1155
- }
1156
- get selectedCount() {
1157
- return this.rows.filter((row) => row.selected).length;
1158
- }
1159
- onQueryInput(event) {
1160
- const value = event.target.value;
1161
- this.queryChange.emit(value);
1162
- }
1163
- onToggleRow(row, event) {
1164
- this.selectionChange.emit({ id: row.id, selected: event.target.checked });
1165
- }
1166
- previous() {
1167
- if (this.page <= 1)
1168
- return;
1169
- this.pageChange.emit(this.page - 1);
1170
- }
1171
- next() {
1172
- if (this.page >= this.totalPages)
1173
- return;
1174
- this.pageChange.emit(this.page + 1);
1175
- }
1176
- onAction(row) {
1177
- this.rowAction.emit(row.id);
1178
- }
1179
- }
1180
- PdmDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1181
- 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 });
1182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDataTableComponent, decorators: [{
1183
- type: Component,
1184
- 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" }]
1185
- }], propDecorators: { className: [{
1186
- type: Input
1187
- }], filterPlaceholder: [{
1188
- type: Input
1189
- }], columnsLabel: [{
1190
- type: Input
1191
- }], rows: [{
1192
- type: Input
1193
- }], page: [{
1194
- type: Input
1195
- }], pageSize: [{
1196
- type: Input
1197
- }], query: [{
1198
- type: Input
1199
- }], queryChange: [{
1200
- type: Output
1201
- }], rowAction: [{
1202
- type: Output
1203
- }], pageChange: [{
1204
- type: Output
1205
- }], selectionChange: [{
1206
- type: Output
1207
- }] } });
1208
-
1209
- class PdmDatePickerComponent {
1210
- constructor() {
1211
- this.variant = 'default';
1212
- this.className = '';
1213
- this.open = false;
1214
- this.label = 'Date of Birth';
1215
- this.value = 'Select a date';
1216
- this.month = 6;
1217
- this.year = 2025;
1218
- this.selectedDay = 25;
1219
- this.time = '10:30:00';
1220
- this.naturalLanguageValue = 'In 2 days';
1221
- this.naturalLanguageHint = 'Your post will be published on June 21, 2025.';
1222
- this.openChange = new EventEmitter();
1223
- this.valueChange = new EventEmitter();
1224
- }
1225
- toggle() {
1226
- this.openChange.emit(!this.open);
1227
- }
1228
- selectPreset(value) {
1229
- this.valueChange.emit(value);
1230
- }
1231
- get monthLabel() {
1232
- return new Date(this.year, this.month - 1, 1).toLocaleString('en-US', { month: 'short' });
1233
- }
1234
- }
1235
- PdmDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1236
- 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 });
1237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDatePickerComponent, decorators: [{
1238
- type: Component,
1239
- 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" }]
1240
- }], propDecorators: { variant: [{
1241
- type: Input
1242
- }], className: [{
1243
- type: Input
1244
- }], open: [{
1245
- type: Input
1246
- }], label: [{
1247
- type: Input
1248
- }], value: [{
1249
- type: Input
1250
- }], month: [{
1251
- type: Input
1252
- }], year: [{
1253
- type: Input
1254
- }], selectedDay: [{
1255
- type: Input
1256
- }], time: [{
1257
- type: Input
1258
- }], naturalLanguageValue: [{
1259
- type: Input
1260
- }], naturalLanguageHint: [{
1261
- type: Input
1262
- }], openChange: [{
1263
- type: Output
1264
- }], valueChange: [{
1265
- type: Output
1266
- }] } });
1267
-
1268
- class PdmDialogComponent {
1269
- constructor() {
1270
- this.open = false;
1271
- this.variant = 'default';
1272
- this.title = 'Edit profile';
1273
- this.description = 'Make changes to your profile here. Click save when you\'re done.';
1274
- this.closeOnBackdrop = true;
1275
- this.closeOnEsc = true;
1276
- this.showCloseButton = true;
1277
- this.primaryActionText = 'Save changes';
1278
- this.secondaryActionText = 'Cancel';
1279
- this.nameLabel = 'Name';
1280
- this.nameValue = 'Pedro Duarte';
1281
- this.usernameLabel = 'Username';
1282
- this.usernameValue = '@peduarte';
1283
- this.linkValue = 'https://ui.shadcn.com/docs/installation';
1284
- this.className = '';
1285
- this.openChange = new EventEmitter();
1286
- this.primaryAction = new EventEmitter();
1287
- this.secondaryAction = new EventEmitter();
1288
- }
1289
- onEsc() {
1290
- if (this.open && this.closeOnEsc) {
1291
- this.close();
1292
- }
1293
- }
1294
- close() {
1295
- this.openChange.emit(false);
1296
- }
1297
- onPrimaryAction() {
1298
- this.primaryAction.emit();
1299
- }
1300
- onSecondaryAction() {
1301
- this.secondaryAction.emit();
1302
- }
1303
- onBackdropClick() {
1304
- if (this.closeOnBackdrop) {
1305
- this.close();
1306
- }
1307
- }
1308
- }
1309
- PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1310
- 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 });
1311
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDialogComponent, decorators: [{
1312
- type: Component,
1313
- 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" }]
1314
- }], propDecorators: { open: [{
1315
- type: Input
1316
- }], variant: [{
1317
- type: Input
1318
- }], title: [{
1319
- type: Input
1320
- }], description: [{
1321
- type: Input
1322
- }], closeOnBackdrop: [{
1323
- type: Input
1324
- }], closeOnEsc: [{
1325
- type: Input
1326
- }], showCloseButton: [{
1327
- type: Input
1328
- }], primaryActionText: [{
1329
- type: Input
1330
- }], secondaryActionText: [{
1331
- type: Input
1332
- }], nameLabel: [{
1333
- type: Input
1334
- }], nameValue: [{
1335
- type: Input
1336
- }], usernameLabel: [{
1337
- type: Input
1338
- }], usernameValue: [{
1339
- type: Input
1340
- }], linkValue: [{
1341
- type: Input
1342
- }], className: [{
1343
- type: Input
1344
- }], openChange: [{
1345
- type: Output
1346
- }], primaryAction: [{
1347
- type: Output
1348
- }], secondaryAction: [{
1349
- type: Output
1350
- }], onEsc: [{
1351
- type: HostListener,
1352
- args: ['document:keydown.escape']
1353
- }] } });
1354
-
1355
- class PdmDropdownMenuComponent {
1356
- constructor(elementRef) {
1357
- this.elementRef = elementRef;
1358
- this.triggerText = 'Open';
1359
- this.variant = 'default';
1360
- this.items = [];
1361
- this.closeOnSelect = true;
1362
- this.panelClassName = '';
1363
- this.className = '';
1364
- this.itemSelect = new EventEmitter();
1365
- this.itemsChange = new EventEmitter();
1366
- this.open = false;
1367
- }
1368
- toggle() {
1369
- this.open = !this.open;
1370
- }
1371
- get resolvedItems() {
1372
- if (this.items.length) {
1373
- return this.items;
1374
- }
1375
- if (this.variant === 'checkboxes') {
1376
- return [
1377
- { type: 'label', label: 'Appearance' },
1378
- { type: 'separator' },
1379
- { type: 'item', label: 'Status Bar', value: 'status-bar', checked: true },
1380
- { type: 'item', label: 'Activity Bar', value: 'activity-bar', checked: false },
1381
- { type: 'item', label: 'Panel', value: 'panel', checked: false }
1382
- ];
1383
- }
1384
- if (this.variant === 'radio-group') {
1385
- return [
1386
- { type: 'label', label: 'Panel Position' },
1387
- { type: 'separator' },
1388
- { type: 'item', label: 'Top', value: 'top', radioSelected: true },
1389
- { type: 'item', label: 'Bottom', value: 'bottom', radioSelected: false },
1390
- { type: 'item', label: 'Right', value: 'right', radioSelected: false }
1391
- ];
1392
- }
1393
- return [
1394
- { type: 'label', label: 'My Account', inset: true },
1395
- { type: 'separator' },
1396
- { type: 'item', label: 'Profile', value: 'profile', shortcut: '⇧⌘P' },
1397
- { type: 'item', label: 'Billing', value: 'billing', shortcut: '⌘B' },
1398
- { type: 'item', label: 'Settings', value: 'settings', shortcut: '⌘S' },
1399
- { type: 'item', label: 'Keyboard shortcuts', value: 'shortcuts', shortcut: '⌘K' },
1400
- { type: 'separator' },
1401
- { type: 'item', label: 'Team', value: 'team' },
1402
- { type: 'item', label: 'Invite users', value: 'invite', showChevron: true },
1403
- { type: 'item', label: 'New Team', value: 'new-team', shortcut: '⌘+T' },
1404
- { type: 'separator' },
1405
- { type: 'item', label: 'GitHub', value: 'github' },
1406
- { type: 'item', label: 'Support', value: 'support' },
1407
- { type: 'item', label: 'API', value: 'api', disabled: true },
1408
- { type: 'separator' },
1409
- { type: 'item', label: 'Log out', value: 'logout', shortcut: '⇧⌘Q' }
1410
- ];
1411
- }
1412
- select(item) {
1413
- if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value)
1414
- return;
1415
- if (this.variant === 'checkboxes') {
1416
- const updated = this.resolvedItems.map((entry) => entry.value === item.value ? { ...entry, checked: !entry.checked } : entry);
1417
- this.itemsChange.emit(updated);
1418
- }
1419
- if (this.variant === 'radio-group') {
1420
- const updated = this.resolvedItems.map((entry) => entry.type === 'item'
1421
- ? { ...entry, radioSelected: entry.value === item.value }
1422
- : entry);
1423
- this.itemsChange.emit(updated);
1424
- }
1425
- this.itemSelect.emit(item.value);
1426
- const shouldClose = this.variant === 'default' ? this.closeOnSelect : false;
1427
- if (shouldClose) {
1428
- this.open = false;
1429
- }
1430
- }
1431
- onEsc() {
1432
- this.open = false;
1433
- }
1434
- onDocumentClick(event) {
1435
- if (!this.open)
1436
- return;
1437
- const target = event.target;
1438
- if (target && !this.elementRef.nativeElement.contains(target)) {
1439
- this.open = false;
1440
- }
1441
- }
1442
- }
1443
- PdmDropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDropdownMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1444
- 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 });
1445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDropdownMenuComponent, decorators: [{
1446
- type: Component,
1447
- 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" }]
1448
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { triggerText: [{
1449
- type: Input
1450
- }], variant: [{
1451
- type: Input
1452
- }], items: [{
1453
- type: Input
1454
- }], closeOnSelect: [{
1455
- type: Input
1456
- }], panelClassName: [{
1457
- type: Input
1458
- }], className: [{
1459
- type: Input
1460
- }], itemSelect: [{
1461
- type: Output
1462
- }], itemsChange: [{
1463
- type: Output
1464
- }], onEsc: [{
1465
- type: HostListener,
1466
- args: ['document:keydown.escape']
1467
- }], onDocumentClick: [{
1468
- type: HostListener,
1469
- args: ['document:click', ['$event']]
1470
- }] } });
1471
-
1472
- class PdmDrawerComponent {
1473
- constructor() {
1474
- this.open = false;
1475
- this.variant = 'drawer';
1476
- this.className = '';
1477
- this.title = 'Move Goal';
1478
- this.description = 'Set your daily activity goal.';
1479
- this.value = 350;
1480
- this.unit = 'CALORIES/DAY';
1481
- this.profileTitle = 'Edit profile';
1482
- this.profileDescription = 'Make changes to your profile here. Click save when you\'re done.';
1483
- this.nameLabel = 'Name';
1484
- this.nameValue = 'Pedro Duarte';
1485
- this.usernameLabel = 'Username';
1486
- this.usernameValue = '@peduarte';
1487
- this.openChange = new EventEmitter();
1488
- this.primaryAction = new EventEmitter();
1489
- this.secondaryAction = new EventEmitter();
1490
- this.bars = [72, 54, 58, 49, 60, 65, 44, 53, 61, 52, 63, 48, 66];
1491
- }
1492
- close() {
1493
- this.openChange.emit(false);
1494
- }
1495
- onPrimaryAction() {
1496
- this.primaryAction.emit();
1497
- }
1498
- onSecondaryAction() {
1499
- this.secondaryAction.emit();
1500
- }
1501
- }
1502
- PdmDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1503
- 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 });
1504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmDrawerComponent, decorators: [{
1505
- type: Component,
1506
- 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" }]
1507
- }], propDecorators: { open: [{
1508
- type: Input
1509
- }], variant: [{
1510
- type: Input
1511
- }], className: [{
1512
- type: Input
1513
- }], title: [{
1514
- type: Input
1515
- }], description: [{
1516
- type: Input
1517
- }], value: [{
1518
- type: Input
1519
- }], unit: [{
1520
- type: Input
1521
- }], profileTitle: [{
1522
- type: Input
1523
- }], profileDescription: [{
1524
- type: Input
1525
- }], nameLabel: [{
1526
- type: Input
1527
- }], nameValue: [{
1528
- type: Input
1529
- }], usernameLabel: [{
1530
- type: Input
1531
- }], usernameValue: [{
1532
- type: Input
1533
- }], openChange: [{
1534
- type: Output
1535
- }], primaryAction: [{
1536
- type: Output
1537
- }], secondaryAction: [{
1538
- type: Output
1539
- }] } });
1540
-
1541
- class PdmEmptyComponent {
1542
- constructor() {
1543
- this.variant = 'default';
1544
- this.title = 'No Projects Yet';
1545
- this.description = "You haven't created any projects yet. Get started by creating your first project.";
1546
- this.iconName = 'folder';
1547
- this.primaryActionLabel = '';
1548
- this.secondaryActionLabel = '';
1549
- this.linkLabel = '';
1550
- this.className = '';
1551
- this.primaryAction = new EventEmitter();
1552
- this.secondaryAction = new EventEmitter();
1553
- this.linkAction = new EventEmitter();
1554
- }
1555
- get containerClass() {
1556
- if (this.variant === 'outline') {
1557
- return 'border border-dashed border-[hsl(var(--border))] rounded-[12px]';
1558
- }
1559
- if (this.variant === 'background') {
1560
- return 'rounded-[12px] bg-[hsl(var(--muted))]';
1561
- }
1562
- return '';
1563
- }
1564
- }
1565
- PdmEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1566
- 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 });
1567
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmEmptyComponent, decorators: [{
1568
- type: Component,
1569
- 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" }]
1570
- }], propDecorators: { variant: [{
1571
- type: Input
1572
- }], title: [{
1573
- type: Input
1574
- }], description: [{
1575
- type: Input
1576
- }], iconName: [{
1577
- type: Input
1578
- }], primaryActionLabel: [{
1579
- type: Input
1580
- }], secondaryActionLabel: [{
1581
- type: Input
1582
- }], linkLabel: [{
1583
- type: Input
1584
- }], className: [{
1585
- type: Input
1586
- }], primaryAction: [{
1587
- type: Output
1588
- }], secondaryAction: [{
1589
- type: Output
1590
- }], linkAction: [{
1591
- type: Output
1592
- }] } });
1593
-
1594
- class PdmFieldComponent {
1595
- constructor() {
1596
- this.id = '';
1597
- this.label = '';
1598
- this.description = '';
1599
- this.error = '';
1600
- this.required = false;
1601
- this.disabled = false;
1602
- this.invalid = false;
1603
- this.orientation = 'vertical';
1604
- this.descriptionPosition = 'after';
1605
- this.className = '';
1606
- this.labelClassName = '';
1607
- this.controlClassName = '';
1608
- }
1609
- get rootClass() {
1610
- return this.orientation === 'horizontal'
1611
- ? 'grid items-start gap-3 sm:grid-cols-[200px_minmax(0,1fr)] sm:gap-4'
1612
- : 'grid w-full gap-3';
1613
- }
1614
- get isHorizontal() {
1615
- return this.orientation === 'horizontal';
1616
- }
1617
- get showDescriptionBeforeControl() {
1618
- return !this.isHorizontal && this.descriptionPosition === 'before' && !!this.description && !this.invalid;
1619
- }
1620
- get showDescriptionAfterControl() {
1621
- return !this.isHorizontal && !this.showDescriptionBeforeControl && !!this.description && !this.invalid;
1622
- }
1623
- }
1624
- PdmFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1625
- 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", descriptionPosition: "descriptionPosition", className: "className", labelClassName: "labelClassName", controlClassName: "controlClassName" }, ngImport: i0, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\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=\"isHorizontal && description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></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 });
1626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmFieldComponent, decorators: [{
1627
- type: Component,
1628
- args: [{ selector: 'pdm-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"[rootClass, className]\">\n <div [ngClass]=\"[isHorizontal ? 'grid gap-1.5' : 'grid gap-0']\">\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=\"isHorizontal && description && !invalid\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n </div>\n\n <div [ngClass]=\"['grid gap-3', controlClassName]\">\n <p *ngIf=\"showDescriptionBeforeControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n\n <ng-content></ng-content>\n <ng-content select=\"[pdmFieldControl]\"></ng-content>\n\n <p *ngIf=\"showDescriptionAfterControl\" class=\"text-sm leading-5 text-[hsl(var(--muted-foreground))]\">{{ description }}</p>\n <p *ngIf=\"!isHorizontal && invalid && error\" class=\"text-sm leading-5 text-[hsl(var(--destructive))]\">{{ error }}</p>\n <ng-content select=\"[pdmFieldDescription]\"></ng-content>\n </div>\n</div>\n" }]
1629
- }], propDecorators: { id: [{
1630
- type: Input
1631
- }], label: [{
1632
- type: Input
1633
- }], description: [{
1634
- type: Input
1635
- }], error: [{
1636
- type: Input
1637
- }], required: [{
1638
- type: Input
1639
- }], disabled: [{
1640
- type: Input
1641
- }], invalid: [{
1642
- type: Input
1643
- }], orientation: [{
1644
- type: Input
1645
- }], descriptionPosition: [{
1646
- type: Input
1647
- }], className: [{
1648
- type: Input
1649
- }], labelClassName: [{
1650
- type: Input
1651
- }], controlClassName: [{
1652
- type: Input
1653
- }] } });
1654
-
1655
- class PdmHoverCardComponent {
1656
- constructor() {
1657
- this.className = '';
1658
- this.panelClassName = '';
1659
- this.side = 'bottom';
1660
- this.align = 'start';
1661
- this.panelWidth = 304;
1662
- this.open = false;
1663
- }
1664
- get positionClass() {
1665
- const sideClassMap = {
1666
- top: 'bottom-full mb-2',
1667
- right: 'left-full ml-2',
1668
- bottom: 'top-full mt-2',
1669
- left: 'right-full mr-2'
1670
- };
1671
- const alignClassMap = {
1672
- start: this.side === 'top' || this.side === 'bottom' ? 'left-0' : 'top-0',
1673
- center: this.side === 'top' || this.side === 'bottom' ? 'left-1/2 -translate-x-1/2' : 'top-1/2 -translate-y-1/2',
1674
- end: this.side === 'top' || this.side === 'bottom' ? 'right-0' : 'bottom-0'
1675
- };
1676
- return `${sideClassMap[this.side]} ${alignClassMap[this.align]}`;
1677
- }
1678
- }
1679
- PdmHoverCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmHoverCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1680
- 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 });
1681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmHoverCardComponent, decorators: [{
1682
- type: Component,
1683
- 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" }]
1684
- }], propDecorators: { className: [{
1685
- type: Input
1686
- }], panelClassName: [{
1687
- type: Input
1688
- }], side: [{
1689
- type: Input
1690
- }], align: [{
1691
- type: Input
1692
- }], panelWidth: [{
1693
- type: Input
1694
- }] } });
1695
-
1696
- class PdmItemComponent {
1697
- constructor() {
1698
- this.className = '';
1699
- this.disabled = false;
1700
- this.selected = false;
1701
- }
1702
- }
1703
- PdmItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1704
- 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 });
1705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmItemComponent, decorators: [{
1706
- type: Component,
1707
- 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" }]
1708
- }], propDecorators: { className: [{
1709
- type: Input
1710
- }], disabled: [{
1711
- type: Input
1712
- }], selected: [{
1713
- type: Input
1714
- }] } });
1715
-
1716
- class PdmInputComponent {
1717
- constructor() {
1718
- this.id = '';
1719
- this.type = 'text';
1720
- this.value = '';
1721
- this.placeholder = '';
1722
- this.disabled = false;
1723
- this.readonly = false;
1724
- this.required = false;
1725
- this.invalid = false;
1726
- this.className = '';
1727
- this.inputClassName = '';
1728
- this.label = '';
1729
- this.helperText = '';
1730
- this.errorText = '';
1731
- this.valueChange = new EventEmitter();
1732
- this.blurred = new EventEmitter();
1733
- }
1734
- onInput(event) {
1735
- this.valueChange.emit(event.target.value);
1736
- }
1737
- onBlur(event) {
1738
- this.blurred.emit(event);
1739
- }
1740
- }
1741
- PdmInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1742
- 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-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--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-[hsl(var(--background))] px-3 py-1 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] placeholder:text-[hsl(var(--muted-foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]',\n type === 'file' ? 'text-sm leading-5' : 'text-base leading-6',\n invalid\n ? 'border-[hsl(var(--destructive))] focus:border-[hsl(var(--destructive))] focus:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]'\n : 'border-[hsl(var(--input))] focus:border-[hsl(var(--ring))] focus:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\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 });
1743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputComponent, decorators: [{
1744
- type: Component,
1745
- args: [{ selector: 'pdm-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--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-[hsl(var(--background))] px-3 py-1 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] placeholder:text-[hsl(var(--muted-foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]',\n type === 'file' ? 'text-sm leading-5' : 'text-base leading-6',\n invalid\n ? 'border-[hsl(var(--destructive))] focus:border-[hsl(var(--destructive))] focus:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]'\n : 'border-[hsl(var(--input))] focus:border-[hsl(var(--ring))] focus:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]',\n inputClassName\n ]\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n />\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" }]
1746
- }], propDecorators: { id: [{
1747
- type: Input
1748
- }], type: [{
1749
- type: Input
1750
- }], value: [{
1751
- type: Input
1752
- }], placeholder: [{
1753
- type: Input
1754
- }], disabled: [{
1755
- type: Input
1756
- }], readonly: [{
1757
- type: Input
1758
- }], required: [{
1759
- type: Input
1760
- }], invalid: [{
1761
- type: Input
1762
- }], className: [{
1763
- type: Input
1764
- }], inputClassName: [{
1765
- type: Input
1766
- }], label: [{
1767
- type: Input
1768
- }], helperText: [{
1769
- type: Input
1770
- }], errorText: [{
1771
- type: Input
1772
- }], valueChange: [{
1773
- type: Output
1774
- }], blurred: [{
1775
- type: Output
1776
- }] } });
1777
-
1778
- class PdmInputPasswordComponent {
1779
- constructor() {
1780
- this.id = '';
1781
- this.value = '';
1782
- this.placeholder = '';
1783
- this.disabled = false;
1784
- this.readonly = false;
1785
- this.required = false;
1786
- this.invalid = false;
1787
- this.className = '';
1788
- this.inputClassName = '';
1789
- this.label = '';
1790
- this.helperText = '';
1791
- this.errorText = '';
1792
- this.valueChange = new EventEmitter();
1793
- this.blurred = new EventEmitter();
1794
- this.showPassword = false;
1795
- }
1796
- get inputType() {
1797
- return this.showPassword ? 'text' : 'password';
1798
- }
1799
- onInput(event) {
1800
- this.valueChange.emit(event.target.value);
1801
- }
1802
- onBlur(event) {
1803
- this.blurred.emit(event);
1804
- }
1805
- toggleVisibility() {
1806
- if (this.disabled) {
1807
- return;
1808
- }
1809
- this.showPassword = !this.showPassword;
1810
- }
1811
- }
1812
- PdmInputPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1813
- 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-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--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-[hsl(var(--background))] px-3 py-1 pr-10 text-base leading-6 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] placeholder:text-[hsl(var(--muted-foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n invalid\n ? 'border-[hsl(var(--destructive))] focus:border-[hsl(var(--destructive))] focus:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]'\n : 'border-[hsl(var(--input))] focus:border-[hsl(var(--ring))] focus:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]',\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-[hsl(var(--muted-foreground))] outline-none transition-colors hover:text-[hsl(var(--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-[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 });
1814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputPasswordComponent, decorators: [{
1815
- type: Component,
1816
- args: [{ selector: 'pdm-input-password', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['grid w-full gap-3', className]\">\n <label *ngIf=\"label\" [attr.for]=\"id\" class=\"text-sm font-medium leading-5 text-[hsl(var(--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-[hsl(var(--background))] px-3 py-1 pr-10 text-base leading-6 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] placeholder:text-[hsl(var(--muted-foreground))] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n invalid\n ? 'border-[hsl(var(--destructive))] focus:border-[hsl(var(--destructive))] focus:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]'\n : 'border-[hsl(var(--input))] focus:border-[hsl(var(--ring))] focus:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]',\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-[hsl(var(--muted-foreground))] outline-none transition-colors hover:text-[hsl(var(--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-[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" }]
1817
- }], propDecorators: { id: [{
1818
- type: Input
1819
- }], value: [{
1820
- type: Input
1821
- }], placeholder: [{
1822
- type: Input
1823
- }], disabled: [{
1824
- type: Input
1825
- }], readonly: [{
1826
- type: Input
1827
- }], required: [{
1828
- type: Input
1829
- }], invalid: [{
1830
- type: Input
1831
- }], className: [{
1832
- type: Input
1833
- }], inputClassName: [{
1834
- type: Input
1835
- }], label: [{
1836
- type: Input
1837
- }], helperText: [{
1838
- type: Input
1839
- }], errorText: [{
1840
- type: Input
1841
- }], valueChange: [{
1842
- type: Output
1843
- }], blurred: [{
1844
- type: Output
1845
- }] } });
1846
-
1847
- class PdmInputGroupComponent {
1848
- constructor() {
1849
- this.id = '';
1850
- this.type = 'text';
1851
- this.value = '';
1852
- this.placeholder = '';
1853
- this.disabled = false;
1854
- this.invalid = false;
1855
- this.prefixText = '';
1856
- this.suffixText = '';
1857
- this.prefixIcon = '';
1858
- this.suffixIcon = '';
1859
- this.buttonText = '';
1860
- this.className = '';
1861
- this.valueChange = new EventEmitter();
1862
- this.buttonClick = new EventEmitter();
1863
- }
1864
- onInput(event) {
1865
- this.valueChange.emit(event.target.value);
1866
- }
1867
- onButtonClick(event) {
1868
- this.buttonClick.emit(event);
1869
- }
1870
- }
1871
- PdmInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1872
- 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", buttonText: "buttonText", className: "className" }, outputs: { valueChange: "valueChange", buttonClick: "buttonClick" }, ngImport: i0, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-[8px] border bg-[hsl(var(--background))] px-3 py-1 text-base leading-6 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] transition-[border-color,box-shadow]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n !invalid && !disabled ? 'focus-within:border-[hsl(var(--ring))] focus-within:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]' : '',\n invalid && !disabled ? 'focus-within:border-[hsl(var(--destructive))] focus-within:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ 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 [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-base leading-6 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]',\n type === 'file' ? 'text-sm leading-5 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-[10px] border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 py-2 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\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 });
1873
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputGroupComponent, decorators: [{
1874
- type: Component,
1875
- args: [{ selector: 'pdm-input-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"[\n 'flex w-full items-center gap-2',\n disabled ? 'opacity-50' : '',\n className\n ]\"\n>\n <div\n [ngClass]=\"[\n 'flex h-9 min-w-0 flex-1 items-center overflow-hidden rounded-[8px] border bg-[hsl(var(--background))] px-3 py-1 text-base leading-6 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] transition-[border-color,box-shadow]',\n invalid ? 'border-[hsl(var(--destructive))]' : 'border-[hsl(var(--input))]',\n !invalid && !disabled ? 'focus-within:border-[hsl(var(--ring))] focus-within:shadow-[0_0_0_3px_hsl(var(--ring)/0.5)]' : '',\n invalid && !disabled ? 'focus-within:border-[hsl(var(--destructive))] focus-within:shadow-[0_0_0_3px_hsl(var(--destructive)/0.2)]' : '',\n disabled ? 'cursor-not-allowed' : ''\n ]\"\n >\n <div\n *ngIf=\"prefixText || prefixIcon\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pr-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"prefixIcon\" [name]=\"prefixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"prefixText\">{{ 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 [ngClass]=\"[\n 'h-full min-w-0 flex-1 border-0 bg-transparent p-0 text-base leading-6 text-[hsl(var(--foreground))] outline-none placeholder:text-[hsl(var(--muted-foreground))]',\n type === 'file' ? 'text-sm leading-5 file:mr-1 file:border-0 file:bg-transparent file:px-[6px] file:py-px file:text-sm file:font-medium file:leading-5 file:text-[hsl(var(--foreground))]' : ''\n ]\"\n (input)=\"onInput($event)\"\n />\n\n <div\n *ngIf=\"!buttonText && (suffixText || suffixIcon)\"\n class=\"inline-flex h-full shrink-0 items-center gap-2 pl-2 text-sm leading-5 text-[hsl(var(--muted-foreground))]\"\n >\n <pdm-icon *ngIf=\"suffixIcon\" [name]=\"suffixIcon\" [size]=\"16\"></pdm-icon>\n <span *ngIf=\"suffixText\" class=\"font-medium\">{{ suffixText }}</span>\n <ng-content select=\"[pdmInputGroupSuffix]\"></ng-content>\n </div>\n </div>\n\n <button\n *ngIf=\"buttonText\"\n type=\"button\"\n [disabled]=\"disabled\"\n class=\"inline-flex h-9 shrink-0 items-center justify-center rounded-[10px] border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 py-2 text-sm font-medium leading-5 text-[hsl(var(--foreground))] shadow-[0_1px_2px_rgba(0,0,0,0.1)] outline-none transition-[border-color,box-shadow] focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed\"\n (click)=\"onButtonClick($event)\"\n >\n {{ buttonText }}\n </button>\n</div>\n" }]
1876
- }], propDecorators: { id: [{
1877
- type: Input
1878
- }], type: [{
1879
- type: Input
1880
- }], value: [{
1881
- type: Input
1882
- }], placeholder: [{
1883
- type: Input
1884
- }], disabled: [{
1885
- type: Input
1886
- }], invalid: [{
1887
- type: Input
1888
- }], prefixText: [{
1889
- type: Input
1890
- }], suffixText: [{
1891
- type: Input
1892
- }], prefixIcon: [{
1893
- type: Input
1894
- }], suffixIcon: [{
1895
- type: Input
1896
- }], buttonText: [{
1897
- type: Input
1898
- }], className: [{
1899
- type: Input
1900
- }], valueChange: [{
1901
- type: Output
1902
- }], buttonClick: [{
1903
- type: Output
1904
- }] } });
1905
-
1906
- class PdmInputOtpComponent {
1907
- constructor() {
1908
- this.length = 6;
1909
- this.groupSize = 3;
1910
- this.disabled = false;
1911
- this.invalid = false;
1912
- this.className = '';
1913
- this.valueChange = new EventEmitter();
1914
- this.completed = new EventEmitter();
1915
- this.values = Array.from({ length: this.length }, () => '');
1916
- }
1917
- ngOnChanges() {
1918
- if (this.values.length !== this.length) {
1919
- this.values = Array.from({ length: this.length }, (_, index) => this.values[index] ?? '');
1920
- }
1921
- }
1922
- trackByIndex(index) {
1923
- return index;
1924
- }
1925
- onInput(index, event) {
1926
- const input = event.target;
1927
- const char = (input.value || '').replace(/\D+/g, '').slice(-1);
1928
- this.values[index] = char;
1929
- input.value = char;
1930
- this.emit();
1931
- if (char) {
1932
- this.focusInput(index + 1, true);
1933
- }
1934
- }
1935
- onKeyDown(index, event) {
1936
- if (event.key === 'Backspace' && !this.values[index]) {
1937
- this.focusInput(index - 1);
1938
- return;
1939
- }
1940
- if (event.key === 'ArrowLeft') {
1941
- event.preventDefault();
1942
- this.focusInput(index - 1);
1943
- return;
1944
- }
1945
- if (event.key === 'ArrowRight') {
1946
- event.preventDefault();
1947
- this.focusInput(index + 1);
1948
- }
1949
- }
1950
- onPaste(event) {
1951
- event.preventDefault();
1952
- const pastedText = (event.clipboardData?.getData('text') ?? '').replace(/\D+/g, '').slice(0, this.length);
1953
- if (!pastedText) {
1954
- return;
1955
- }
1956
- this.values = Array.from({ length: this.length }, (_, index) => pastedText[index] ?? '');
1957
- this.emit();
1958
- const nextIndex = Math.min(pastedText.length, this.length - 1);
1959
- this.focusInput(nextIndex);
1960
- }
1961
- getInputClasses(index) {
1962
- const classes = [
1963
- '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',
1964
- 'shadow-[0_1px_2px_0_rgba(0,0,0,0.1)]',
1965
- 'focus:border-input focus:ring-1 focus:ring-primary/30',
1966
- 'disabled:cursor-not-allowed disabled:opacity-50',
1967
- ];
1968
- if (this.invalid) {
1969
- classes.push('border-destructive focus:border-destructive focus:ring-destructive');
1970
- }
1971
- else {
1972
- classes.push('border-input');
1973
- }
1974
- if (this.isGroupStart(index)) {
1975
- classes.push('rounded-l-md border-l');
1976
- }
1977
- else {
1978
- classes.push('border-l-0');
1979
- }
1980
- if (this.isGroupEnd(index)) {
1981
- classes.push('rounded-r-md');
1982
- }
1983
- return classes.join(' ');
1984
- }
1985
- shouldShowSeparator(index) {
1986
- return this.groupSize > 0 && (index + 1) % this.groupSize === 0 && index < this.length - 1;
1987
- }
1988
- isGroupStart(index) {
1989
- return this.groupSize <= 0 || index % this.groupSize === 0;
1990
- }
1991
- isGroupEnd(index) {
1992
- if (this.groupSize <= 0) {
1993
- return index === this.length - 1;
1994
- }
1995
- return (index + 1) % this.groupSize === 0 || index === this.length - 1;
1996
- }
1997
- emit() {
1998
- const value = this.values.join('');
1999
- this.valueChange.emit(value);
2000
- if (value.length === this.length && !this.values.includes('')) {
2001
- this.completed.emit(value);
2002
- }
2003
- }
2004
- focusInput(index, deferred = false) {
2005
- if (deferred) {
2006
- requestAnimationFrame(() => this.focusInput(index, false));
2007
- return;
2008
- }
2009
- if (!this.inputs || index < 0 || index >= this.length) {
2010
- return;
2011
- }
2012
- const input = this.inputs.get(index)?.nativeElement;
2013
- if (input) {
2014
- input.focus();
2015
- input.select();
2016
- }
2017
- }
2018
- }
2019
- PdmInputOtpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputOtpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2020
- 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 });
2021
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmInputOtpComponent, decorators: [{
2022
- type: Component,
2023
- 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" }]
2024
- }], propDecorators: { length: [{
2025
- type: Input
2026
- }], groupSize: [{
2027
- type: Input
2028
- }], disabled: [{
2029
- type: Input
2030
- }], invalid: [{
2031
- type: Input
2032
- }], className: [{
2033
- type: Input
2034
- }], valueChange: [{
2035
- type: Output
2036
- }], completed: [{
2037
- type: Output
2038
- }], inputs: [{
2039
- type: ViewChildren,
2040
- args: ['otpInput']
2041
- }] } });
2042
-
2043
- class PdmKbdComponent {
2044
- constructor() {
2045
- this.className = '';
2046
- }
2047
- }
2048
- PdmKbdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmKbdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2049
- 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 });
2050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmKbdComponent, decorators: [{
2051
- type: Component,
2052
- 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" }]
2053
- }], propDecorators: { className: [{
2054
- type: Input
2055
- }] } });
2056
-
2057
- class PdmLabelComponent {
2058
- constructor() {
2059
- this.forId = '';
2060
- this.required = false;
2061
- this.className = '';
2062
- }
2063
- }
2064
- PdmLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2065
- 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 });
2066
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmLabelComponent, decorators: [{
2067
- type: Component,
2068
- 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" }]
2069
- }], propDecorators: { forId: [{
2070
- type: Input
2071
- }], required: [{
2072
- type: Input
2073
- }], className: [{
2074
- type: Input
2075
- }] } });
2076
-
2077
- class PdmMenubarComponent {
2078
- constructor() {
2079
- this.menus = [];
2080
- this.className = '';
2081
- this.itemSelect = new EventEmitter();
2082
- this.openIndex = -1;
2083
- }
2084
- toggle(index) {
2085
- this.openIndex = this.openIndex === index ? -1 : index;
2086
- }
2087
- select(value) {
2088
- this.itemSelect.emit(value);
2089
- this.openIndex = -1;
2090
- }
2091
- }
2092
- PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmMenubarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2093
- 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 });
2094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmMenubarComponent, decorators: [{
2095
- type: Component,
2096
- 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" }]
2097
- }], propDecorators: { menus: [{
2098
- type: Input
2099
- }], className: [{
2100
- type: Input
2101
- }], itemSelect: [{
2102
- type: Output
2103
- }] } });
2104
-
2105
- class PdmNativeSelectComponent {
2106
- constructor() {
2107
- this.id = '';
2108
- this.value = '';
2109
- this.disabled = false;
2110
- this.invalid = false;
2111
- this.options = [];
2112
- this.placeholder = 'Select an option';
2113
- this.className = '';
2114
- this.valueChange = new EventEmitter();
2115
- }
2116
- onChange(event) {
2117
- this.valueChange.emit(event.target.value);
2118
- }
2119
- }
2120
- PdmNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNativeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2121
- 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 });
2122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNativeSelectComponent, decorators: [{
2123
- type: Component,
2124
- 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" }]
2125
- }], propDecorators: { id: [{
2126
- type: Input
2127
- }], value: [{
2128
- type: Input
2129
- }], disabled: [{
2130
- type: Input
2131
- }], invalid: [{
2132
- type: Input
2133
- }], options: [{
2134
- type: Input
2135
- }], placeholder: [{
2136
- type: Input
2137
- }], className: [{
2138
- type: Input
2139
- }], valueChange: [{
2140
- type: Output
2141
- }] } });
2142
-
2143
- class PdmNavigationMenuComponent {
2144
- constructor() {
2145
- this.items = [];
2146
- this.className = '';
2147
- }
2148
- }
2149
- PdmNavigationMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2150
- 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 });
2151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmNavigationMenuComponent, decorators: [{
2152
- type: Component,
2153
- 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" }]
2154
- }], propDecorators: { items: [{
2155
- type: Input
2156
- }], className: [{
2157
- type: Input
2158
- }] } });
2159
-
2160
- class PdmPaginationComponent {
2161
- constructor() {
2162
- this.page = 1;
2163
- this.pageCount = 1;
2164
- this.maxVisible = 5;
2165
- this.className = '';
2166
- this.pageChange = new EventEmitter();
2167
- }
2168
- get visiblePages() {
2169
- const total = Math.max(1, this.pageCount);
2170
- const visible = Math.max(1, this.maxVisible);
2171
- const half = Math.floor(visible / 2);
2172
- let start = Math.max(1, this.page - half);
2173
- let end = Math.min(total, start + visible - 1);
2174
- if (end - start + 1 < visible) {
2175
- start = Math.max(1, end - visible + 1);
2176
- }
2177
- return Array.from({ length: end - start + 1 }, (_, i) => start + i);
2178
- }
2179
- setPage(next) {
2180
- if (next < 1 || next > this.pageCount || next === this.page) {
2181
- return;
2182
- }
2183
- this.pageChange.emit(next);
2184
- }
2185
- }
2186
- PdmPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2187
- 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 });
2188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPaginationComponent, decorators: [{
2189
- type: Component,
2190
- 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" }]
2191
- }], propDecorators: { page: [{
2192
- type: Input
2193
- }], pageCount: [{
2194
- type: Input
2195
- }], maxVisible: [{
2196
- type: Input
2197
- }], className: [{
2198
- type: Input
2199
- }], pageChange: [{
2200
- type: Output
2201
- }] } });
2202
-
2203
- class PdmPopoverComponent {
2204
- constructor(elementRef) {
2205
- this.elementRef = elementRef;
2206
- this.open = false;
2207
- this.triggerText = 'Open';
2208
- this.className = '';
2209
- this.panelClassName = '';
2210
- this.showTrigger = true;
2211
- this.openChange = new EventEmitter();
2212
- }
2213
- toggle() {
2214
- this.open = !this.open;
2215
- this.openChange.emit(this.open);
2216
- }
2217
- onEsc() {
2218
- if (this.open) {
2219
- this.open = false;
2220
- this.openChange.emit(false);
2221
- }
2222
- }
2223
- onDocumentClick(event) {
2224
- if (!this.open)
2225
- return;
2226
- const target = event.target;
2227
- if (target && !this.elementRef.nativeElement.contains(target)) {
2228
- this.open = false;
2229
- this.openChange.emit(false);
2230
- }
2231
- }
2232
- }
2233
- PdmPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPopoverComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2234
- 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 });
2235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmPopoverComponent, decorators: [{
2236
- type: Component,
2237
- 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" }]
2238
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { open: [{
2239
- type: Input
2240
- }], triggerText: [{
2241
- type: Input
2242
- }], className: [{
2243
- type: Input
2244
- }], panelClassName: [{
2245
- type: Input
2246
- }], showTrigger: [{
2247
- type: Input
2248
- }], openChange: [{
2249
- type: Output
2250
- }], onEsc: [{
2251
- type: HostListener,
2252
- args: ['document:keydown.escape']
2253
- }], onDocumentClick: [{
2254
- type: HostListener,
2255
- args: ['document:click', ['$event']]
2256
- }] } });
2257
-
2258
- class PdmProgressComponent {
2259
- constructor() {
2260
- this.value = 0;
2261
- this.max = 100;
2262
- this.indeterminate = false;
2263
- this.className = '';
2264
- }
2265
- get width() {
2266
- if (this.indeterminate)
2267
- return '100%';
2268
- const safeMax = this.max > 0 ? this.max : 100;
2269
- const pct = Math.min(100, Math.max(0, (this.value / safeMax) * 100));
2270
- return pct + '%';
2271
- }
2272
- }
2273
- PdmProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2274
- 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 });
2275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmProgressComponent, decorators: [{
2276
- type: Component,
2277
- 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" }]
2278
- }], propDecorators: { value: [{
2279
- type: Input
2280
- }], max: [{
2281
- type: Input
2282
- }], indeterminate: [{
2283
- type: Input
2284
- }], className: [{
2285
- type: Input
2286
- }] } });
2287
-
2288
- class PdmRadioGroupComponent {
2289
- constructor() {
2290
- this.name = 'pdm-radio-group';
2291
- this.value = '';
2292
- this.options = [];
2293
- this.direction = 'vertical';
2294
- this.className = '';
2295
- this.valueChange = new EventEmitter();
2296
- }
2297
- optionId(option) {
2298
- return `${this.name}-${option.value}`;
2299
- }
2300
- onChange(event) {
2301
- this.valueChange.emit(event.target.value);
2302
- }
2303
- }
2304
- PdmRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2305
- 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 });
2306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmRadioGroupComponent, decorators: [{
2307
- type: Component,
2308
- 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" }]
2309
- }], propDecorators: { name: [{
2310
- type: Input
2311
- }], value: [{
2312
- type: Input
2313
- }], options: [{
2314
- type: Input
2315
- }], direction: [{
2316
- type: Input
2317
- }], className: [{
2318
- type: Input
2319
- }], valueChange: [{
2320
- type: Output
2321
- }] } });
2322
-
2323
- class PdmScrollAreaComponent {
2324
- constructor() {
2325
- this.maxHeight = '16rem';
2326
- this.className = '';
2327
- }
2328
- }
2329
- PdmScrollAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmScrollAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2330
- 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 });
2331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmScrollAreaComponent, decorators: [{
2332
- type: Component,
2333
- 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" }]
2334
- }], propDecorators: { maxHeight: [{
2335
- type: Input
2336
- }], className: [{
2337
- type: Input
2338
- }] } });
2339
-
2340
- class PdmSelectComponent {
2341
- constructor() {
2342
- this.id = '';
2343
- this.value = '';
2344
- this.options = [];
2345
- this.disabled = false;
2346
- this.invalid = false;
2347
- this.className = '';
2348
- this.valueChange = new EventEmitter();
2349
- }
2350
- onChange(event) {
2351
- this.valueChange.emit(event.target.value);
2352
- }
2353
- }
2354
- PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2355
- 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 });
2356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSelectComponent, decorators: [{
2357
- type: Component,
2358
- 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" }]
2359
- }], propDecorators: { id: [{
2360
- type: Input
2361
- }], value: [{
2362
- type: Input
2363
- }], options: [{
2364
- type: Input
2365
- }], disabled: [{
2366
- type: Input
2367
- }], invalid: [{
2368
- type: Input
2369
- }], className: [{
2370
- type: Input
2371
- }], valueChange: [{
2372
- type: Output
2373
- }] } });
2374
-
2375
- class PdmSeparatorComponent {
2376
- constructor() {
2377
- this.orientation = 'horizontal';
2378
- this.decorative = true;
2379
- this.className = '';
2380
- }
2381
- get orientationClass() {
2382
- return this.orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full';
2383
- }
2384
- }
2385
- PdmSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2386
- 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 });
2387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSeparatorComponent, decorators: [{
2388
- type: Component,
2389
- 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" }]
2390
- }], propDecorators: { orientation: [{
2391
- type: Input
2392
- }], decorative: [{
2393
- type: Input
2394
- }], className: [{
2395
- type: Input
2396
- }] } });
2397
-
2398
- class PdmSheetComponent {
2399
- constructor() {
2400
- this.open = false;
2401
- this.side = 'right';
2402
- this.className = '';
2403
- this.openChange = new EventEmitter();
2404
- }
2405
- close() {
2406
- this.openChange.emit(false);
2407
- }
2408
- get panelClass() {
2409
- if (this.side === 'left')
2410
- return 'left-0 top-0 h-full w-full max-w-[360px] border-r';
2411
- if (this.side === 'top')
2412
- return 'top-0 left-0 w-full border-b';
2413
- if (this.side === 'bottom')
2414
- return 'bottom-0 left-0 w-full border-t';
2415
- return 'right-0 top-0 h-full w-full max-w-[360px] border-l';
2416
- }
2417
- }
2418
- PdmSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2419
- 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 });
2420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSheetComponent, decorators: [{
2421
- type: Component,
2422
- 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" }]
2423
- }], propDecorators: { open: [{
2424
- type: Input
2425
- }], side: [{
2426
- type: Input
2427
- }], className: [{
2428
- type: Input
2429
- }], openChange: [{
2430
- type: Output
2431
- }] } });
2432
-
2433
- class PdmSidebarComponent {
2434
- constructor() {
2435
- this.collapsed = false;
2436
- this.className = '';
2437
- }
2438
- }
2439
- PdmSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2440
- 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 });
2441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSidebarComponent, decorators: [{
2442
- type: Component,
2443
- 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" }]
2444
- }], propDecorators: { collapsed: [{
2445
- type: Input
2446
- }], className: [{
2447
- type: Input
2448
- }] } });
2449
-
2450
- class PdmSkeletonComponent {
2451
- constructor() {
2452
- this.className = '';
2453
- }
2454
- }
2455
- PdmSkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2456
- 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 });
2457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSkeletonComponent, decorators: [{
2458
- type: Component,
2459
- args: [{ selector: 'pdm-skeleton', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['animate-pulse rounded-md bg-[hsl(var(--muted))]', className]\"></div>\n" }]
2460
- }], propDecorators: { className: [{
2461
- type: Input
2462
- }] } });
2463
-
2464
- class PdmSliderComponent {
2465
- constructor() {
2466
- this.min = 0;
2467
- this.max = 100;
2468
- this.step = 1;
2469
- this.value = 0;
2470
- this.disabled = false;
2471
- this.className = '';
2472
- this.valueChange = new EventEmitter();
2473
- }
2474
- get percentage() {
2475
- const safeRange = this.max - this.min;
2476
- if (safeRange <= 0) {
2477
- return 0;
2478
- }
2479
- const bounded = Math.min(this.max, Math.max(this.min, this.value));
2480
- return ((bounded - this.min) / safeRange) * 100;
2481
- }
2482
- onInput(event) {
2483
- this.valueChange.emit(Number(event.target.value));
2484
- }
2485
- }
2486
- PdmSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2487
- 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 });
2488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSliderComponent, decorators: [{
2489
- type: Component,
2490
- 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" }]
2491
- }], propDecorators: { min: [{
2492
- type: Input
2493
- }], max: [{
2494
- type: Input
2495
- }], step: [{
2496
- type: Input
2497
- }], value: [{
2498
- type: Input
2499
- }], disabled: [{
2500
- type: Input
2501
- }], className: [{
2502
- type: Input
2503
- }], valueChange: [{
2504
- type: Output
2505
- }] } });
2506
-
2507
- class PdmSonnerComponent {
2508
- constructor() {
2509
- this.title = '';
2510
- this.description = '';
2511
- this.tone = 'default';
2512
- this.className = '';
2513
- this.dismissed = new EventEmitter();
2514
- }
2515
- get toneClass() {
2516
- if (this.tone === 'success')
2517
- return 'border-emerald-200 bg-emerald-50 text-emerald-900';
2518
- if (this.tone === 'error')
2519
- return 'border-red-200 bg-red-50 text-red-900';
2520
- if (this.tone === 'warning')
2521
- return 'border-amber-200 bg-amber-50 text-amber-900';
2522
- return 'border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[hsl(var(--foreground))]';
2523
- }
2524
- }
2525
- PdmSonnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSonnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2526
- 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 });
2527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSonnerComponent, decorators: [{
2528
- type: Component,
2529
- 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" }]
2530
- }], propDecorators: { title: [{
2531
- type: Input
2532
- }], description: [{
2533
- type: Input
2534
- }], tone: [{
2535
- type: Input
2536
- }], className: [{
2537
- type: Input
2538
- }], dismissed: [{
2539
- type: Output
2540
- }] } });
2541
-
2542
- class PdmSpinnerComponent {
2543
- constructor() {
2544
- this.size = 16;
2545
- this.className = '';
2546
- }
2547
- }
2548
- PdmSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2549
- 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 });
2550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSpinnerComponent, decorators: [{
2551
- type: Component,
2552
- 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" }]
2553
- }], propDecorators: { size: [{
2554
- type: Input
2555
- }], className: [{
2556
- type: Input
2557
- }] } });
2558
-
2559
- class PdmSwitchComponent {
2560
- constructor() {
2561
- this.id = '';
2562
- this.checked = false;
2563
- this.disabled = false;
2564
- this.label = '';
2565
- this.className = '';
2566
- this.checkedChange = new EventEmitter();
2567
- }
2568
- onToggle(event) {
2569
- this.checkedChange.emit(event.target.checked);
2570
- }
2571
- }
2572
- PdmSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2573
- 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 });
2574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmSwitchComponent, decorators: [{
2575
- type: Component,
2576
- 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" }]
2577
- }], propDecorators: { id: [{
2578
- type: Input
2579
- }], checked: [{
2580
- type: Input
2581
- }], disabled: [{
2582
- type: Input
2583
- }], label: [{
2584
- type: Input
2585
- }], className: [{
2586
- type: Input
2587
- }], checkedChange: [{
2588
- type: Output
2589
- }] } });
2590
-
2591
- class PdmTableComponent {
2592
- constructor() {
2593
- this.className = '';
2594
- }
2595
- }
2596
- PdmTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2597
- 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 });
2598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTableComponent, decorators: [{
2599
- type: Component,
2600
- 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" }]
2601
- }], propDecorators: { className: [{
2602
- type: Input
2603
- }] } });
2604
-
2605
- class PdmTabsComponent {
2606
- constructor() {
2607
- this.items = [];
2608
- this.value = '';
2609
- this.className = '';
2610
- this.valueChange = new EventEmitter();
2611
- }
2612
- select(item) {
2613
- if (!item.disabled) {
2614
- this.valueChange.emit(item.value);
2615
- }
2616
- }
2617
- }
2618
- PdmTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2619
- 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 });
2620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTabsComponent, decorators: [{
2621
- type: Component,
2622
- 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" }]
2623
- }], propDecorators: { items: [{
2624
- type: Input
2625
- }], value: [{
2626
- type: Input
2627
- }], className: [{
2628
- type: Input
2629
- }], valueChange: [{
2630
- type: Output
2631
- }] } });
2632
-
2633
- class PdmTextareaComponent {
2634
- constructor() {
2635
- this.id = '';
2636
- this.value = '';
2637
- this.placeholder = '';
2638
- this.rows = 4;
2639
- this.disabled = false;
2640
- this.readonly = false;
2641
- this.required = false;
2642
- this.invalid = false;
2643
- this.className = '';
2644
- this.textareaClassName = '';
2645
- this.label = '';
2646
- this.helperText = '';
2647
- this.errorText = '';
2648
- this.valueChange = new EventEmitter();
2649
- }
2650
- onInput(event) {
2651
- this.valueChange.emit(event.target.value);
2652
- }
2653
- }
2654
- PdmTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2655
- 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 });
2656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTextareaComponent, decorators: [{
2657
- type: Component,
2658
- 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" }]
2659
- }], propDecorators: { id: [{
2660
- type: Input
2661
- }], value: [{
2662
- type: Input
2663
- }], placeholder: [{
2664
- type: Input
2665
- }], rows: [{
2666
- type: Input
2667
- }], disabled: [{
2668
- type: Input
2669
- }], readonly: [{
2670
- type: Input
2671
- }], required: [{
2672
- type: Input
2673
- }], invalid: [{
2674
- type: Input
2675
- }], className: [{
2676
- type: Input
2677
- }], textareaClassName: [{
2678
- type: Input
2679
- }], label: [{
2680
- type: Input
2681
- }], helperText: [{
2682
- type: Input
2683
- }], errorText: [{
2684
- type: Input
2685
- }], valueChange: [{
2686
- type: Output
2687
- }] } });
2688
-
2689
- class PdmToggleComponent {
2690
- constructor() {
2691
- this.pressed = false;
2692
- this.disabled = false;
2693
- this.size = 'default';
2694
- this.className = '';
2695
- this.pressedChange = new EventEmitter();
2696
- }
2697
- toggle() {
2698
- if (!this.disabled) {
2699
- this.pressedChange.emit(!this.pressed);
2700
- }
2701
- }
2702
- get sizeClass() {
2703
- if (this.size === 'sm')
2704
- return 'h-8 px-2.5 min-w-[32px]';
2705
- if (this.size === 'lg')
2706
- return 'h-10 px-4 min-w-[40px]';
2707
- return 'h-9 px-3 min-w-[36px]';
2708
- }
2709
- }
2710
- PdmToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2711
- 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 });
2712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleComponent, decorators: [{
2713
- type: Component,
2714
- 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" }]
2715
- }], propDecorators: { pressed: [{
2716
- type: Input
2717
- }], disabled: [{
2718
- type: Input
2719
- }], size: [{
2720
- type: Input
2721
- }], className: [{
2722
- type: Input
2723
- }], pressedChange: [{
2724
- type: Output
2725
- }] } });
2726
-
2727
- class PdmToggleGroupComponent {
2728
- constructor() {
2729
- this.items = [];
2730
- this.value = '';
2731
- this.className = '';
2732
- this.valueChange = new EventEmitter();
2733
- }
2734
- onSelect(next, disabled) {
2735
- if (!disabled && next !== this.value) {
2736
- this.valueChange.emit(next);
2737
- }
2738
- }
2739
- }
2740
- PdmToggleGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2741
- 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 });
2742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmToggleGroupComponent, decorators: [{
2743
- type: Component,
2744
- 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" }]
2745
- }], propDecorators: { items: [{
2746
- type: Input
2747
- }], value: [{
2748
- type: Input
2749
- }], className: [{
2750
- type: Input
2751
- }], valueChange: [{
2752
- type: Output
2753
- }] } });
2754
-
2755
- class PdmTooltipComponent {
2756
- constructor() {
2757
- this.text = '';
2758
- this.side = 'top';
2759
- this.className = '';
2760
- this.open = false;
2761
- }
2762
- get positionClass() {
2763
- if (this.side === 'bottom')
2764
- return 'top-full left-1/2 -translate-x-1/2 mt-2';
2765
- if (this.side === 'left')
2766
- return 'right-full top-1/2 -translate-y-1/2 mr-2';
2767
- if (this.side === 'right')
2768
- return 'left-full top-1/2 -translate-y-1/2 ml-2';
2769
- return 'bottom-full left-1/2 -translate-x-1/2 mb-2';
2770
- }
2771
- }
2772
- PdmTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2773
- 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 });
2774
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmTooltipComponent, decorators: [{
2775
- type: Component,
2776
- 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" }]
2777
- }], propDecorators: { text: [{
2778
- type: Input
2779
- }], side: [{
2780
- type: Input
2781
- }], className: [{
2782
- type: Input
2783
- }] } });
2784
-
2785
- const COMPONENTS = [
2786
- PdmAccordionComponent,
2787
- PdmAlertComponent,
2788
- PdmAlertDialogComponent,
2789
- PdmAspectRatioComponent,
2790
- PdmAvatarComponent,
2791
- PdmBadgeComponent,
2792
- PdmBreadcrumbComponent,
2793
- PdmButtonGroupComponent,
2794
- PdmButtonComponent,
2795
- PdmCalendarComponent,
2796
- PdmCarouselComponent,
2797
- PdmCardComponent,
2798
- PdmChartComponent,
2799
- PdmCheckboxComponent,
2800
- PdmCollapsibleComponent,
2801
- PdmComboboxComponent,
2802
- PdmCommandComponent,
2803
- PdmContextMenuComponent,
2804
- PdmDataTableComponent,
2805
- PdmDatePickerComponent,
2806
- PdmDialogComponent,
2807
- PdmDropdownMenuComponent,
2808
- PdmDrawerComponent,
2809
- PdmEmptyComponent,
2810
- PdmFieldComponent,
2811
- PdmHoverCardComponent,
2812
- PdmIconComponent,
2813
- PdmItemComponent,
2814
- PdmInputComponent,
2815
- PdmInputPasswordComponent,
2816
- PdmInputGroupComponent,
2817
- PdmInputOtpComponent,
2818
- PdmKbdComponent,
2819
- PdmLabelComponent,
2820
- PdmMenubarComponent,
2821
- PdmNativeSelectComponent,
2822
- PdmNavigationMenuComponent,
2823
- PdmPaginationComponent,
2824
- PdmPopoverComponent,
2825
- PdmProgressComponent,
2826
- PdmRadioGroupComponent,
2827
- PdmScrollAreaComponent,
2828
- PdmSelectComponent,
2829
- PdmSeparatorComponent,
2830
- PdmSheetComponent,
2831
- PdmSidebarComponent,
2832
- PdmSkeletonComponent,
2833
- PdmSliderComponent,
2834
- PdmSonnerComponent,
2835
- PdmSpinnerComponent,
2836
- PdmSwitchComponent,
2837
- PdmTableComponent,
2838
- PdmTabsComponent,
2839
- PdmTextareaComponent,
2840
- PdmToggleComponent,
2841
- PdmToggleGroupComponent,
2842
- PdmTooltipComponent
2843
- ];
2844
- class PdmUiKitModule {
2845
- }
2846
- PdmUiKitModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2847
- PdmUiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, declarations: [PdmAccordionComponent,
2848
- PdmAlertComponent,
2849
- PdmAlertDialogComponent,
2850
- PdmAspectRatioComponent,
2851
- PdmAvatarComponent,
2852
- PdmBadgeComponent,
2853
- PdmBreadcrumbComponent,
2854
- PdmButtonGroupComponent,
2855
- PdmButtonComponent,
2856
- PdmCalendarComponent,
2857
- PdmCarouselComponent,
2858
- PdmCardComponent,
2859
- PdmChartComponent,
2860
- PdmCheckboxComponent,
2861
- PdmCollapsibleComponent,
2862
- PdmComboboxComponent,
2863
- PdmCommandComponent,
2864
- PdmContextMenuComponent,
2865
- PdmDataTableComponent,
2866
- PdmDatePickerComponent,
2867
- PdmDialogComponent,
2868
- PdmDropdownMenuComponent,
2869
- PdmDrawerComponent,
2870
- PdmEmptyComponent,
2871
- PdmFieldComponent,
2872
- PdmHoverCardComponent,
2873
- PdmIconComponent,
2874
- PdmItemComponent,
2875
- PdmInputComponent,
2876
- PdmInputPasswordComponent,
2877
- PdmInputGroupComponent,
2878
- PdmInputOtpComponent,
2879
- PdmKbdComponent,
2880
- PdmLabelComponent,
2881
- PdmMenubarComponent,
2882
- PdmNativeSelectComponent,
2883
- PdmNavigationMenuComponent,
2884
- PdmPaginationComponent,
2885
- PdmPopoverComponent,
2886
- PdmProgressComponent,
2887
- PdmRadioGroupComponent,
2888
- PdmScrollAreaComponent,
2889
- PdmSelectComponent,
2890
- PdmSeparatorComponent,
2891
- PdmSheetComponent,
2892
- PdmSidebarComponent,
2893
- PdmSkeletonComponent,
2894
- PdmSliderComponent,
2895
- PdmSonnerComponent,
2896
- PdmSpinnerComponent,
2897
- PdmSwitchComponent,
2898
- PdmTableComponent,
2899
- PdmTabsComponent,
2900
- PdmTextareaComponent,
2901
- PdmToggleComponent,
2902
- PdmToggleGroupComponent,
2903
- PdmTooltipComponent], imports: [CommonModule], exports: [PdmAccordionComponent,
2904
- PdmAlertComponent,
2905
- PdmAlertDialogComponent,
2906
- PdmAspectRatioComponent,
2907
- PdmAvatarComponent,
2908
- PdmBadgeComponent,
2909
- PdmBreadcrumbComponent,
2910
- PdmButtonGroupComponent,
2911
- PdmButtonComponent,
2912
- PdmCalendarComponent,
2913
- PdmCarouselComponent,
2914
- PdmCardComponent,
2915
- PdmChartComponent,
2916
- PdmCheckboxComponent,
2917
- PdmCollapsibleComponent,
2918
- PdmComboboxComponent,
2919
- PdmCommandComponent,
2920
- PdmContextMenuComponent,
2921
- PdmDataTableComponent,
2922
- PdmDatePickerComponent,
2923
- PdmDialogComponent,
2924
- PdmDropdownMenuComponent,
2925
- PdmDrawerComponent,
2926
- PdmEmptyComponent,
2927
- PdmFieldComponent,
2928
- PdmHoverCardComponent,
2929
- PdmIconComponent,
2930
- PdmItemComponent,
2931
- PdmInputComponent,
2932
- PdmInputPasswordComponent,
2933
- PdmInputGroupComponent,
2934
- PdmInputOtpComponent,
2935
- PdmKbdComponent,
2936
- PdmLabelComponent,
2937
- PdmMenubarComponent,
2938
- PdmNativeSelectComponent,
2939
- PdmNavigationMenuComponent,
2940
- PdmPaginationComponent,
2941
- PdmPopoverComponent,
2942
- PdmProgressComponent,
2943
- PdmRadioGroupComponent,
2944
- PdmScrollAreaComponent,
2945
- PdmSelectComponent,
2946
- PdmSeparatorComponent,
2947
- PdmSheetComponent,
2948
- PdmSidebarComponent,
2949
- PdmSkeletonComponent,
2950
- PdmSliderComponent,
2951
- PdmSonnerComponent,
2952
- PdmSpinnerComponent,
2953
- PdmSwitchComponent,
2954
- PdmTableComponent,
2955
- PdmTabsComponent,
2956
- PdmTextareaComponent,
2957
- PdmToggleComponent,
2958
- PdmToggleGroupComponent,
2959
- PdmTooltipComponent] });
2960
- PdmUiKitModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, imports: [CommonModule] });
2961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PdmUiKitModule, decorators: [{
2962
- type: NgModule,
2963
- args: [{
2964
- imports: [CommonModule],
2965
- declarations: COMPONENTS,
2966
- exports: COMPONENTS
2967
- }]
2968
- }] });
2969
-
2970
- /**
2971
- * Generated bundle index. Do not edit.
2972
- */
2973
-
2974
- 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 };
2975
- //# sourceMappingURL=pdm-ui-kit.mjs.map