pdm-ui-kit 0.1.2 → 0.1.4

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 (378) hide show
  1. package/dist/corelusa-pdm-ui-kit/README.md +79 -0
  2. package/dist/corelusa-pdm-ui-kit/esm2020/corelusa-pdm-ui-kit.mjs +5 -0
  3. package/{fesm2015/pdm-ui-kit.mjs → dist/corelusa-pdm-ui-kit/fesm2015/corelusa-pdm-ui-kit.mjs} +1 -1
  4. package/dist/corelusa-pdm-ui-kit/fesm2015/corelusa-pdm-ui-kit.mjs.map +1 -0
  5. package/{fesm2020/pdm-ui-kit.mjs → dist/corelusa-pdm-ui-kit/fesm2020/corelusa-pdm-ui-kit.mjs} +1 -1
  6. package/dist/corelusa-pdm-ui-kit/fesm2020/corelusa-pdm-ui-kit.mjs.map +1 -0
  7. package/dist/corelusa-pdm-ui-kit/index.d.ts +5 -0
  8. package/dist/corelusa-pdm-ui-kit/package.json +47 -0
  9. package/dist/pdm-ui-kit/README.md +128 -0
  10. package/dist/pdm-ui-kit/esm2020/lib/components/accordion/accordion.component.mjs +42 -0
  11. package/dist/pdm-ui-kit/esm2020/lib/components/alert/alert.component.mjs +35 -0
  12. package/dist/pdm-ui-kit/esm2020/lib/components/alert-dialog/alert-dialog.component.mjs +69 -0
  13. package/dist/pdm-ui-kit/esm2020/lib/components/aspect-ratio/aspect-ratio.component.mjs +31 -0
  14. package/dist/pdm-ui-kit/esm2020/lib/components/avatar/avatar.component.mjs +46 -0
  15. package/dist/pdm-ui-kit/esm2020/lib/components/badge/badge.component.mjs +23 -0
  16. package/dist/pdm-ui-kit/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +29 -0
  17. package/dist/pdm-ui-kit/esm2020/lib/components/button/button.component.mjs +82 -0
  18. package/dist/pdm-ui-kit/esm2020/lib/components/button-group/button-group.component.mjs +23 -0
  19. package/dist/pdm-ui-kit/esm2020/lib/components/calendar/calendar.component.mjs +71 -0
  20. package/dist/pdm-ui-kit/esm2020/lib/components/card/card.component.mjs +65 -0
  21. package/dist/pdm-ui-kit/esm2020/lib/components/carousel/carousel.component.mjs +97 -0
  22. package/dist/pdm-ui-kit/esm2020/lib/components/chart/chart.component.mjs +174 -0
  23. package/dist/pdm-ui-kit/esm2020/lib/components/checkbox/checkbox.component.mjs +47 -0
  24. package/dist/pdm-ui-kit/esm2020/lib/components/collapsible/collapsible.component.mjs +43 -0
  25. package/dist/pdm-ui-kit/esm2020/lib/components/combobox/combobox.component.mjs +51 -0
  26. package/dist/pdm-ui-kit/esm2020/lib/components/command/command.component.mjs +75 -0
  27. package/dist/pdm-ui-kit/esm2020/lib/components/context-menu/context-menu.component.mjs +78 -0
  28. package/dist/pdm-ui-kit/esm2020/lib/components/data-table/data-table.component.mjs +89 -0
  29. package/dist/pdm-ui-kit/esm2020/lib/components/date-picker/date-picker.component.mjs +63 -0
  30. package/dist/pdm-ui-kit/esm2020/lib/components/dialog/dialog.component.mjs +90 -0
  31. package/dist/pdm-ui-kit/esm2020/lib/components/drawer/drawer.component.mjs +72 -0
  32. package/dist/pdm-ui-kit/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +120 -0
  33. package/dist/pdm-ui-kit/esm2020/lib/components/empty/empty.component.mjs +58 -0
  34. package/dist/pdm-ui-kit/esm2020/lib/components/field/field.component.mjs +64 -0
  35. package/dist/pdm-ui-kit/esm2020/lib/components/hover-card/hover-card.component.mjs +44 -0
  36. package/dist/pdm-ui-kit/esm2020/lib/components/icon/icon.component.mjs +94 -0
  37. package/dist/pdm-ui-kit/esm2020/lib/components/input/input.component.mjs +65 -0
  38. package/dist/pdm-ui-kit/esm2020/lib/components/input-group/input-group.component.mjs +63 -0
  39. package/dist/pdm-ui-kit/esm2020/lib/components/input-otp/input-otp.component.mjs +140 -0
  40. package/dist/pdm-ui-kit/esm2020/lib/components/input-password/input-password.component.mjs +72 -0
  41. package/dist/pdm-ui-kit/esm2020/lib/components/item/item.component.mjs +23 -0
  42. package/dist/pdm-ui-kit/esm2020/lib/components/kbd/kbd.component.mjs +17 -0
  43. package/dist/pdm-ui-kit/esm2020/lib/components/label/label.component.mjs +23 -0
  44. package/dist/pdm-ui-kit/esm2020/lib/components/menubar/menubar.component.mjs +31 -0
  45. package/dist/pdm-ui-kit/esm2020/lib/components/native-select/native-select.component.mjs +42 -0
  46. package/dist/pdm-ui-kit/esm2020/lib/components/navigation-menu/navigation-menu.component.mjs +20 -0
  47. package/dist/pdm-ui-kit/esm2020/lib/components/pagination/pagination.component.mjs +47 -0
  48. package/dist/pdm-ui-kit/esm2020/lib/components/popover/popover.component.mjs +58 -0
  49. package/dist/pdm-ui-kit/esm2020/lib/components/progress/progress.component.mjs +33 -0
  50. package/dist/pdm-ui-kit/esm2020/lib/components/radio-group/radio-group.component.mjs +38 -0
  51. package/dist/pdm-ui-kit/esm2020/lib/components/scroll-area/scroll-area.component.mjs +20 -0
  52. package/dist/pdm-ui-kit/esm2020/lib/components/select/select.component.mjs +38 -0
  53. package/dist/pdm-ui-kit/esm2020/lib/components/separator/separator.component.mjs +26 -0
  54. package/dist/pdm-ui-kit/esm2020/lib/components/sheet/sheet.component.mjs +39 -0
  55. package/dist/pdm-ui-kit/esm2020/lib/components/sidebar/sidebar.component.mjs +20 -0
  56. package/dist/pdm-ui-kit/esm2020/lib/components/skeleton/skeleton.component.mjs +17 -0
  57. package/dist/pdm-ui-kit/esm2020/lib/components/slider/slider.component.mjs +46 -0
  58. package/dist/pdm-ui-kit/esm2020/lib/components/sonner/sonner.component.mjs +39 -0
  59. package/dist/pdm-ui-kit/esm2020/lib/components/spinner/spinner.component.mjs +20 -0
  60. package/dist/pdm-ui-kit/esm2020/lib/components/switch/switch.component.mjs +35 -0
  61. package/dist/pdm-ui-kit/esm2020/lib/components/table/table.component.mjs +17 -0
  62. package/dist/pdm-ui-kit/esm2020/lib/components/tabs/tabs.component.mjs +31 -0
  63. package/dist/pdm-ui-kit/esm2020/lib/components/textarea/textarea.component.mjs +59 -0
  64. package/dist/pdm-ui-kit/esm2020/lib/components/toggle/toggle.component.mjs +41 -0
  65. package/dist/pdm-ui-kit/esm2020/lib/components/toggle-group/toggle-group.component.mjs +31 -0
  66. package/dist/pdm-ui-kit/esm2020/lib/components/tooltip/tooltip.component.mjs +33 -0
  67. package/dist/pdm-ui-kit/esm2020/lib/pdm-ui-kit.module.mjs +245 -0
  68. package/dist/pdm-ui-kit/esm2020/public-api.mjs +59 -0
  69. package/dist/pdm-ui-kit/fesm2015/pdm-ui-kit.mjs +2980 -0
  70. package/dist/pdm-ui-kit/fesm2015/pdm-ui-kit.mjs.map +1 -0
  71. package/dist/pdm-ui-kit/fesm2020/pdm-ui-kit.mjs +2975 -0
  72. package/dist/pdm-ui-kit/fesm2020/pdm-ui-kit.mjs.map +1 -0
  73. package/dist/pdm-ui-kit/lib/components/accordion/accordion.component.d.ts +19 -0
  74. package/dist/pdm-ui-kit/lib/components/alert/alert.component.d.ts +13 -0
  75. package/dist/pdm-ui-kit/lib/components/alert-dialog/alert-dialog.component.d.ts +21 -0
  76. package/dist/pdm-ui-kit/lib/components/aspect-ratio/aspect-ratio.component.d.ts +10 -0
  77. package/dist/pdm-ui-kit/lib/components/avatar/avatar.component.d.ts +20 -0
  78. package/dist/pdm-ui-kit/lib/components/badge/badge.component.d.ts +9 -0
  79. package/dist/pdm-ui-kit/lib/components/breadcrumb/breadcrumb.component.d.ts +10 -0
  80. package/dist/pdm-ui-kit/lib/components/button/button.component.d.ts +24 -0
  81. package/dist/pdm-ui-kit/lib/components/button-group/button-group.component.d.ts +9 -0
  82. package/dist/pdm-ui-kit/lib/components/calendar/calendar.component.d.ts +28 -0
  83. package/dist/pdm-ui-kit/lib/components/card/card.component.d.ts +24 -0
  84. package/dist/pdm-ui-kit/lib/components/carousel/carousel.component.d.ts +25 -0
  85. package/dist/pdm-ui-kit/lib/components/chart/chart.component.d.ts +41 -0
  86. package/dist/pdm-ui-kit/lib/components/checkbox/checkbox.component.d.ts +17 -0
  87. package/dist/pdm-ui-kit/lib/components/collapsible/collapsible.component.d.ts +14 -0
  88. package/dist/pdm-ui-kit/lib/components/combobox/combobox.component.d.ts +18 -0
  89. package/dist/pdm-ui-kit/lib/components/command/command.component.d.ts +33 -0
  90. package/dist/pdm-ui-kit/lib/components/context-menu/context-menu.component.d.ts +26 -0
  91. package/dist/pdm-ui-kit/lib/components/data-table/data-table.component.d.ts +36 -0
  92. package/dist/pdm-ui-kit/lib/components/date-picker/date-picker.component.d.ts +23 -0
  93. package/dist/pdm-ui-kit/lib/components/dialog/dialog.component.d.ts +30 -0
  94. package/dist/pdm-ui-kit/lib/components/drawer/drawer.component.d.ts +27 -0
  95. package/dist/pdm-ui-kit/lib/components/dropdown-menu/dropdown-menu.component.d.ts +34 -0
  96. package/dist/pdm-ui-kit/lib/components/empty/empty.component.d.ts +19 -0
  97. package/dist/pdm-ui-kit/lib/components/field/field.component.d.ts +23 -0
  98. package/dist/pdm-ui-kit/lib/components/hover-card/hover-card.component.d.ts +14 -0
  99. package/dist/pdm-ui-kit/lib/components/icon/icon.component.d.ts +18 -0
  100. package/dist/pdm-ui-kit/lib/components/input/input.component.d.ts +23 -0
  101. package/dist/pdm-ui-kit/lib/components/input-group/input-group.component.d.ts +22 -0
  102. package/dist/pdm-ui-kit/lib/components/input-otp/input-otp.component.d.ts +26 -0
  103. package/dist/pdm-ui-kit/lib/components/input-password/input-password.component.d.ts +25 -0
  104. package/dist/pdm-ui-kit/lib/components/item/item.component.d.ts +8 -0
  105. package/dist/pdm-ui-kit/lib/components/kbd/kbd.component.d.ts +6 -0
  106. package/dist/pdm-ui-kit/lib/components/label/label.component.d.ts +8 -0
  107. package/dist/pdm-ui-kit/lib/components/menubar/menubar.component.d.ts +17 -0
  108. package/dist/pdm-ui-kit/lib/components/native-select/native-select.component.d.ts +20 -0
  109. package/dist/pdm-ui-kit/lib/components/navigation-menu/navigation-menu.component.d.ts +12 -0
  110. package/dist/pdm-ui-kit/lib/components/pagination/pagination.component.d.ts +13 -0
  111. package/dist/pdm-ui-kit/lib/components/popover/popover.component.d.ts +17 -0
  112. package/dist/pdm-ui-kit/lib/components/progress/progress.component.d.ts +10 -0
  113. package/dist/pdm-ui-kit/lib/components/radio-group/radio-group.component.d.ts +19 -0
  114. package/dist/pdm-ui-kit/lib/components/scroll-area/scroll-area.component.d.ts +7 -0
  115. package/dist/pdm-ui-kit/lib/components/select/select.component.d.ts +19 -0
  116. package/dist/pdm-ui-kit/lib/components/separator/separator.component.d.ts +9 -0
  117. package/dist/pdm-ui-kit/lib/components/sheet/sheet.component.d.ts +13 -0
  118. package/dist/pdm-ui-kit/lib/components/sidebar/sidebar.component.d.ts +7 -0
  119. package/dist/pdm-ui-kit/lib/components/skeleton/skeleton.component.d.ts +6 -0
  120. package/dist/pdm-ui-kit/lib/components/slider/slider.component.d.ts +15 -0
  121. package/dist/pdm-ui-kit/lib/components/sonner/sonner.component.d.ts +13 -0
  122. package/dist/pdm-ui-kit/lib/components/spinner/spinner.component.d.ts +7 -0
  123. package/dist/pdm-ui-kit/lib/components/switch/switch.component.d.ts +13 -0
  124. package/dist/pdm-ui-kit/lib/components/table/table.component.d.ts +6 -0
  125. package/dist/pdm-ui-kit/lib/components/tabs/tabs.component.d.ts +16 -0
  126. package/dist/pdm-ui-kit/lib/components/textarea/textarea.component.d.ts +21 -0
  127. package/dist/pdm-ui-kit/lib/components/toggle/toggle.component.d.ts +14 -0
  128. package/dist/pdm-ui-kit/lib/components/toggle-group/toggle-group.component.d.ts +16 -0
  129. package/dist/pdm-ui-kit/lib/components/tooltip/tooltip.component.d.ts +10 -0
  130. package/dist/pdm-ui-kit/lib/pdm-ui-kit.module.d.ts +64 -0
  131. package/dist/pdm-ui-kit/package.json +44 -0
  132. package/dist/pdm-ui-kit/public-api.d.ts +58 -0
  133. package/ng-package.json +8 -0
  134. package/package.json +13 -20
  135. package/pdm-ui-kit-0.1.1.tgz +0 -0
  136. package/pdm-ui-kit-0.1.2.tgz +0 -0
  137. package/pdm-ui-kit-0.1.3.tgz +0 -0
  138. package/pdm-ui-kit-0.1.4.tgz +0 -0
  139. package/src/lib/components/accordion/accordion.component.html +34 -0
  140. package/src/lib/components/accordion/accordion.component.ts +38 -0
  141. package/src/lib/components/alert/alert.component.html +52 -0
  142. package/src/lib/components/alert/alert.component.ts +25 -0
  143. package/src/lib/components/alert-dialog/alert-dialog.component.html +41 -0
  144. package/src/lib/components/alert-dialog/alert-dialog.component.ts +45 -0
  145. package/src/lib/components/aspect-ratio/aspect-ratio.component.html +11 -0
  146. package/src/lib/components/aspect-ratio/aspect-ratio.component.ts +18 -0
  147. package/src/lib/components/avatar/avatar.component.html +21 -0
  148. package/src/lib/components/avatar/avatar.component.ts +32 -0
  149. package/src/lib/components/badge/badge.component.html +28 -0
  150. package/src/lib/components/badge/badge.component.ts +23 -0
  151. package/src/lib/components/breadcrumb/breadcrumb.component.html +39 -0
  152. package/src/lib/components/breadcrumb/breadcrumb.component.ts +26 -0
  153. package/src/lib/components/button/button.component.html +15 -0
  154. package/src/lib/components/button/button.component.ts +84 -0
  155. package/src/lib/components/button-group/button-group.component.html +39 -0
  156. package/src/lib/components/button-group/button-group.component.ts +15 -0
  157. package/src/lib/components/calendar/calendar.component.html +73 -0
  158. package/src/lib/components/calendar/calendar.component.ts +78 -0
  159. package/src/lib/components/card/card.component.html +77 -0
  160. package/src/lib/components/card/card.component.ts +39 -0
  161. package/src/lib/components/carousel/carousel.component.html +86 -0
  162. package/src/lib/components/carousel/carousel.component.ts +100 -0
  163. package/src/lib/components/chart/chart.component.html +143 -0
  164. package/src/lib/components/chart/chart.component.ts +147 -0
  165. package/src/lib/components/checkbox/checkbox.component.html +38 -0
  166. package/src/lib/components/checkbox/checkbox.component.ts +32 -0
  167. package/src/lib/components/collapsible/collapsible.component.html +26 -0
  168. package/src/lib/components/collapsible/collapsible.component.ts +29 -0
  169. package/src/lib/components/combobox/combobox.component.html +42 -0
  170. package/src/lib/components/combobox/combobox.component.ts +32 -0
  171. package/src/lib/components/command/command.component.html +55 -0
  172. package/src/lib/components/command/command.component.ts +67 -0
  173. package/src/lib/components/context-menu/context-menu.component.html +47 -0
  174. package/src/lib/components/context-menu/context-menu.component.ts +67 -0
  175. package/src/lib/components/data-table/data-table.component.html +63 -0
  176. package/src/lib/components/data-table/data-table.component.ts +78 -0
  177. package/src/lib/components/date-picker/date-picker.component.html +38 -0
  178. package/src/lib/components/date-picker/date-picker.component.ts +38 -0
  179. package/src/lib/components/dialog/dialog.component.html +78 -0
  180. package/src/lib/components/dialog/dialog.component.ts +55 -0
  181. package/src/lib/components/drawer/drawer.component.html +56 -0
  182. package/src/lib/components/drawer/drawer.component.ts +43 -0
  183. package/src/lib/components/dropdown-menu/dropdown-menu.component.html +56 -0
  184. package/src/lib/components/dropdown-menu/dropdown-menu.component.ts +126 -0
  185. package/src/lib/components/empty/empty.component.html +29 -0
  186. package/src/lib/components/empty/empty.component.ts +35 -0
  187. package/src/lib/components/field/field.component.html +26 -0
  188. package/src/lib/components/field/field.component.ts +42 -0
  189. package/src/lib/components/hover-card/hover-card.component.html +24 -0
  190. package/src/lib/components/hover-card/hover-card.component.ts +36 -0
  191. package/src/lib/components/icon/icon.component.html +286 -0
  192. package/src/lib/components/icon/icon.component.ts +133 -0
  193. package/src/lib/components/input/input.component.html +25 -0
  194. package/src/lib/components/input/input.component.ts +33 -0
  195. package/src/lib/components/input-group/input-group.component.html +59 -0
  196. package/src/lib/components/input-group/input-group.component.ts +32 -0
  197. package/src/lib/components/input-otp/input-otp.component.html +25 -0
  198. package/src/lib/components/input-otp/input-otp.component.ts +146 -0
  199. package/src/lib/components/input-password/input-password.component.html +66 -0
  200. package/src/lib/components/input-password/input-password.component.ts +46 -0
  201. package/src/lib/components/item/item.component.html +10 -0
  202. package/src/lib/components/item/item.component.ts +12 -0
  203. package/src/lib/components/kbd/kbd.component.html +3 -0
  204. package/src/lib/components/kbd/kbd.component.ts +10 -0
  205. package/src/lib/components/label/label.component.html +7 -0
  206. package/src/lib/components/label/label.component.ts +12 -0
  207. package/src/lib/components/menubar/menubar.component.html +16 -0
  208. package/src/lib/components/menubar/menubar.component.ts +29 -0
  209. package/src/lib/components/native-select/native-select.component.html +17 -0
  210. package/src/lib/components/native-select/native-select.component.ts +28 -0
  211. package/src/lib/components/navigation-menu/navigation-menu.component.html +15 -0
  212. package/src/lib/components/navigation-menu/navigation-menu.component.ts +17 -0
  213. package/src/lib/components/pagination/pagination.component.html +30 -0
  214. package/src/lib/components/pagination/pagination.component.ts +37 -0
  215. package/src/lib/components/popover/popover.component.html +6 -0
  216. package/src/lib/components/popover/popover.component.ts +40 -0
  217. package/src/lib/components/progress/progress.component.html +9 -0
  218. package/src/lib/components/progress/progress.component.ts +20 -0
  219. package/src/lib/components/radio-group/radio-group.component.html +25 -0
  220. package/src/lib/components/radio-group/radio-group.component.ts +30 -0
  221. package/src/lib/components/scroll-area/scroll-area.component.html +5 -0
  222. package/src/lib/components/scroll-area/scroll-area.component.ts +11 -0
  223. package/src/lib/components/select/select.component.html +14 -0
  224. package/src/lib/components/select/select.component.ts +27 -0
  225. package/src/lib/components/separator/separator.component.html +5 -0
  226. package/src/lib/components/separator/separator.component.ts +16 -0
  227. package/src/lib/components/sheet/sheet.component.html +10 -0
  228. package/src/lib/components/sheet/sheet.component.ts +28 -0
  229. package/src/lib/components/sidebar/sidebar.component.html +3 -0
  230. package/src/lib/components/sidebar/sidebar.component.ts +11 -0
  231. package/src/lib/components/skeleton/skeleton.component.html +1 -0
  232. package/src/lib/components/skeleton/skeleton.component.ts +10 -0
  233. package/src/lib/components/slider/slider.component.html +15 -0
  234. package/src/lib/components/slider/slider.component.ts +31 -0
  235. package/src/lib/components/sonner/sonner.component.html +10 -0
  236. package/src/lib/components/sonner/sonner.component.ts +25 -0
  237. package/src/lib/components/spinner/spinner.component.html +6 -0
  238. package/src/lib/components/spinner/spinner.component.ts +11 -0
  239. package/src/lib/components/switch/switch.component.html +14 -0
  240. package/src/lib/components/switch/switch.component.ts +20 -0
  241. package/src/lib/components/table/table.component.html +5 -0
  242. package/src/lib/components/table/table.component.ts +10 -0
  243. package/src/lib/components/tabs/tabs.component.html +21 -0
  244. package/src/lib/components/tabs/tabs.component.ts +26 -0
  245. package/src/lib/components/textarea/textarea.component.html +21 -0
  246. package/src/lib/components/textarea/textarea.component.ts +28 -0
  247. package/src/lib/components/toggle/toggle.component.html +16 -0
  248. package/src/lib/components/toggle/toggle.component.ts +29 -0
  249. package/src/lib/components/toggle-group/toggle-group.component.html +17 -0
  250. package/src/lib/components/toggle-group/toggle-group.component.ts +26 -0
  251. package/src/lib/components/tooltip/tooltip.component.html +6 -0
  252. package/src/lib/components/tooltip/tooltip.component.ts +20 -0
  253. package/src/lib/pdm-ui-kit.module.ts +126 -0
  254. package/src/public-api.ts +58 -0
  255. package/tsconfig.json +30 -0
  256. package/tsconfig.lib.json +17 -0
  257. package/fesm2015/pdm-ui-kit.mjs.map +0 -1
  258. package/fesm2020/pdm-ui-kit.mjs.map +0 -1
  259. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/accordion/accordion.component.mjs +0 -0
  260. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/alert/alert.component.mjs +0 -0
  261. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/alert-dialog/alert-dialog.component.mjs +0 -0
  262. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/aspect-ratio/aspect-ratio.component.mjs +0 -0
  263. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/avatar/avatar.component.mjs +0 -0
  264. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/badge/badge.component.mjs +0 -0
  265. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/breadcrumb/breadcrumb.component.mjs +0 -0
  266. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/button/button.component.mjs +0 -0
  267. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/button-group/button-group.component.mjs +0 -0
  268. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/calendar/calendar.component.mjs +0 -0
  269. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/card/card.component.mjs +0 -0
  270. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/carousel/carousel.component.mjs +0 -0
  271. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/chart/chart.component.mjs +0 -0
  272. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/checkbox/checkbox.component.mjs +0 -0
  273. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/collapsible/collapsible.component.mjs +0 -0
  274. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/combobox/combobox.component.mjs +0 -0
  275. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/command/command.component.mjs +0 -0
  276. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/context-menu/context-menu.component.mjs +0 -0
  277. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/data-table/data-table.component.mjs +0 -0
  278. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/date-picker/date-picker.component.mjs +0 -0
  279. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/dialog/dialog.component.mjs +0 -0
  280. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/drawer/drawer.component.mjs +0 -0
  281. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -0
  282. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/empty/empty.component.mjs +0 -0
  283. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/field/field.component.mjs +0 -0
  284. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/hover-card/hover-card.component.mjs +0 -0
  285. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/icon/icon.component.mjs +0 -0
  286. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/input/input.component.mjs +0 -0
  287. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/input-group/input-group.component.mjs +0 -0
  288. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/input-otp/input-otp.component.mjs +0 -0
  289. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/input-password/input-password.component.mjs +0 -0
  290. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/item/item.component.mjs +0 -0
  291. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/kbd/kbd.component.mjs +0 -0
  292. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/label/label.component.mjs +0 -0
  293. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/menubar/menubar.component.mjs +0 -0
  294. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/native-select/native-select.component.mjs +0 -0
  295. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/navigation-menu/navigation-menu.component.mjs +0 -0
  296. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/pagination/pagination.component.mjs +0 -0
  297. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/popover/popover.component.mjs +0 -0
  298. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/progress/progress.component.mjs +0 -0
  299. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/radio-group/radio-group.component.mjs +0 -0
  300. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/scroll-area/scroll-area.component.mjs +0 -0
  301. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/select/select.component.mjs +0 -0
  302. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/separator/separator.component.mjs +0 -0
  303. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/sheet/sheet.component.mjs +0 -0
  304. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/sidebar/sidebar.component.mjs +0 -0
  305. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/skeleton/skeleton.component.mjs +0 -0
  306. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/slider/slider.component.mjs +0 -0
  307. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/sonner/sonner.component.mjs +0 -0
  308. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/spinner/spinner.component.mjs +0 -0
  309. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/switch/switch.component.mjs +0 -0
  310. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/table/table.component.mjs +0 -0
  311. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/tabs/tabs.component.mjs +0 -0
  312. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/textarea/textarea.component.mjs +0 -0
  313. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/toggle/toggle.component.mjs +0 -0
  314. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/toggle-group/toggle-group.component.mjs +0 -0
  315. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/components/tooltip/tooltip.component.mjs +0 -0
  316. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/lib/pdm-ui-kit.module.mjs +0 -0
  317. /package/{esm2020 → dist/corelusa-pdm-ui-kit/esm2020}/public-api.mjs +0 -0
  318. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/accordion/accordion.component.d.ts +0 -0
  319. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/alert/alert.component.d.ts +0 -0
  320. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/alert-dialog/alert-dialog.component.d.ts +0 -0
  321. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/aspect-ratio/aspect-ratio.component.d.ts +0 -0
  322. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/avatar/avatar.component.d.ts +0 -0
  323. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/badge/badge.component.d.ts +0 -0
  324. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/breadcrumb/breadcrumb.component.d.ts +0 -0
  325. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/button/button.component.d.ts +0 -0
  326. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/button-group/button-group.component.d.ts +0 -0
  327. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/calendar/calendar.component.d.ts +0 -0
  328. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/card/card.component.d.ts +0 -0
  329. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/carousel/carousel.component.d.ts +0 -0
  330. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/chart/chart.component.d.ts +0 -0
  331. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/checkbox/checkbox.component.d.ts +0 -0
  332. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/collapsible/collapsible.component.d.ts +0 -0
  333. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/combobox/combobox.component.d.ts +0 -0
  334. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/command/command.component.d.ts +0 -0
  335. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/context-menu/context-menu.component.d.ts +0 -0
  336. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/data-table/data-table.component.d.ts +0 -0
  337. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/date-picker/date-picker.component.d.ts +0 -0
  338. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/dialog/dialog.component.d.ts +0 -0
  339. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/drawer/drawer.component.d.ts +0 -0
  340. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/dropdown-menu/dropdown-menu.component.d.ts +0 -0
  341. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/empty/empty.component.d.ts +0 -0
  342. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/field/field.component.d.ts +0 -0
  343. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/hover-card/hover-card.component.d.ts +0 -0
  344. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/icon/icon.component.d.ts +0 -0
  345. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/input/input.component.d.ts +0 -0
  346. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/input-group/input-group.component.d.ts +0 -0
  347. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/input-otp/input-otp.component.d.ts +0 -0
  348. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/input-password/input-password.component.d.ts +0 -0
  349. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/item/item.component.d.ts +0 -0
  350. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/kbd/kbd.component.d.ts +0 -0
  351. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/label/label.component.d.ts +0 -0
  352. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/menubar/menubar.component.d.ts +0 -0
  353. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/native-select/native-select.component.d.ts +0 -0
  354. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/navigation-menu/navigation-menu.component.d.ts +0 -0
  355. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/pagination/pagination.component.d.ts +0 -0
  356. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/popover/popover.component.d.ts +0 -0
  357. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/progress/progress.component.d.ts +0 -0
  358. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/radio-group/radio-group.component.d.ts +0 -0
  359. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/scroll-area/scroll-area.component.d.ts +0 -0
  360. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/select/select.component.d.ts +0 -0
  361. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/separator/separator.component.d.ts +0 -0
  362. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/sheet/sheet.component.d.ts +0 -0
  363. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/sidebar/sidebar.component.d.ts +0 -0
  364. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/skeleton/skeleton.component.d.ts +0 -0
  365. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/slider/slider.component.d.ts +0 -0
  366. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/sonner/sonner.component.d.ts +0 -0
  367. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/spinner/spinner.component.d.ts +0 -0
  368. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/switch/switch.component.d.ts +0 -0
  369. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/table/table.component.d.ts +0 -0
  370. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/tabs/tabs.component.d.ts +0 -0
  371. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/textarea/textarea.component.d.ts +0 -0
  372. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/toggle/toggle.component.d.ts +0 -0
  373. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/toggle-group/toggle-group.component.d.ts +0 -0
  374. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/components/tooltip/tooltip.component.d.ts +0 -0
  375. /package/{lib → dist/corelusa-pdm-ui-kit/lib}/pdm-ui-kit.module.d.ts +0 -0
  376. /package/{public-api.d.ts → dist/corelusa-pdm-ui-kit/public-api.d.ts} +0 -0
  377. /package/{esm2020 → dist/pdm-ui-kit/esm2020}/pdm-ui-kit.mjs +0 -0
  378. /package/{index.d.ts → dist/pdm-ui-kit/index.d.ts} +0 -0
@@ -0,0 +1,47 @@
1
+ <div class="relative" [ngClass]="className" (contextmenu)="onContextMenu($event)">
2
+ <div
3
+ class="flex items-center justify-center rounded-[8px] border border-dashed border-[#e5e5e5]"
4
+ [style.width.px]="width"
5
+ [style.height.px]="height"
6
+ >
7
+ <span class="text-[14px] font-medium leading-5 text-[#0a0a0a]">{{ triggerLabel }}</span>
8
+ </div>
9
+
10
+ <div
11
+ *ngIf="open"
12
+ 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)]"
13
+ [style.left.px]="x + 4"
14
+ [style.top.px]="y + 2"
15
+ >
16
+ <div class="px-1 pt-1">
17
+ <ng-container *ngFor="let item of items">
18
+ <div *ngIf="item.type === 'separator'" class="my-1 border-t border-[#e5e5e5]"></div>
19
+
20
+ <div *ngIf="item.type === 'label'" class="h-8 px-8 py-[6px] text-[14px] font-semibold leading-5 text-[#0a0a0a]">
21
+ {{ item.label }}
22
+ </div>
23
+
24
+ <button
25
+ *ngIf="!item.type || item.type === 'item'"
26
+ type="button"
27
+ [disabled]="item.disabled"
28
+ class="flex h-8 w-full items-center rounded-[6px] py-[6px] pr-2 text-left disabled:opacity-50"
29
+ [ngClass]="item.inset ? 'pl-8' : 'px-2'"
30
+ (click)="select(item)"
31
+ >
32
+ <span class="mr-2 inline-flex w-4 shrink-0 items-center justify-center text-[#0a0a0a]">
33
+ <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">
34
+ <path d="M5 12.5L9.2 16.7L19 7" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path>
35
+ </svg>
36
+ <span *ngIf="item.selectedDot" class="h-2 w-2 rounded-full bg-[#0a0a0a]"></span>
37
+ </span>
38
+ <span class="min-w-0 flex-1 truncate text-[14px] leading-5 text-[#0a0a0a]">{{ item.label }}</span>
39
+ <span *ngIf="item.shortcut" class="text-[12px] leading-4 text-[#737373]">{{ item.shortcut }}</span>
40
+ <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">
41
+ <path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
42
+ </svg>
43
+ </button>
44
+ </ng-container>
45
+ </div>
46
+ </div>
47
+ </div>
@@ -0,0 +1,67 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { PdmMenuItem } from '../dropdown-menu/dropdown-menu.component';
3
+
4
+ export interface PdmContextMenuItem extends PdmMenuItem {
5
+ checked?: boolean;
6
+ selectedDot?: boolean;
7
+ }
8
+
9
+ @Component({
10
+ selector: 'pdm-context-menu',
11
+ templateUrl: './context-menu.component.html',
12
+ changeDetection: ChangeDetectionStrategy.OnPush
13
+ })
14
+ export class PdmContextMenuComponent {
15
+ @Input() items: PdmContextMenuItem[] = [
16
+ { type: 'item', label: 'Back', value: 'back', inset: true, shortcut: '⌘[' },
17
+ { type: 'item', label: 'Forward', value: 'forward', inset: true, shortcut: '⌘]', disabled: true },
18
+ { type: 'item', label: 'Reload', value: 'reload', inset: true, shortcut: '⌘R' },
19
+ { type: 'item', label: 'More Tools', value: 'more-tools', inset: true, showChevron: true },
20
+ { type: 'separator' },
21
+ { type: 'item', label: 'Show Bookmarks Bar', value: 'show-bookmarks', checked: true },
22
+ { type: 'item', label: 'Show Full URLs', value: 'show-urls', inset: true },
23
+ { type: 'separator' },
24
+ { type: 'label', label: 'People' },
25
+ { type: 'separator' },
26
+ { type: 'item', label: 'Pedro Duarte', value: 'pedro', selectedDot: true },
27
+ { type: 'item', label: 'Colm Tuite', value: 'colm', inset: true }
28
+ ];
29
+ @Input() className = '';
30
+ @Input() triggerLabel = 'Right click here';
31
+ @Input() width = 300;
32
+ @Input() height = 150;
33
+ @Output() itemSelect = new EventEmitter<string>();
34
+
35
+ open = false;
36
+ x = 0;
37
+ y = 0;
38
+
39
+ constructor(private readonly elementRef: ElementRef<HTMLElement>) {}
40
+
41
+ onContextMenu(event: MouseEvent): void {
42
+ event.preventDefault();
43
+ this.x = event.clientX;
44
+ this.y = event.clientY;
45
+ this.open = true;
46
+ }
47
+
48
+ select(item: PdmContextMenuItem): void {
49
+ if (item.disabled || item.type === 'separator' || item.type === 'label' || !item.value) return;
50
+ this.itemSelect.emit(item.value);
51
+ this.open = false;
52
+ }
53
+
54
+ @HostListener('document:keydown.escape')
55
+ onEsc(): void {
56
+ this.open = false;
57
+ }
58
+
59
+ @HostListener('document:click', ['$event'])
60
+ onDocumentClick(event: MouseEvent): void {
61
+ if (!this.open) return;
62
+ const target = event.target as Node | null;
63
+ if (target && !this.elementRef.nativeElement.contains(target)) {
64
+ this.open = false;
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,63 @@
1
+ <section [ngClass]="['flex w-[590px] flex-col items-end', className]">
2
+ <div class="flex w-full items-center justify-between py-4">
3
+ <input
4
+ type="text"
5
+ [placeholder]="filterPlaceholder"
6
+ [value]="query"
7
+ (input)="onQueryInput($event)"
8
+ 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"
9
+ />
10
+
11
+ <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)]">
12
+ <span class="text-[14px] font-medium leading-5 text-[#0a0a0a]">{{ columnsLabel }}</span>
13
+ <svg viewBox="0 0 24 24" class="h-4 w-4 text-[#0a0a0a]" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M7 10L12 15L17 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
15
+ </svg>
16
+ </button>
17
+ </div>
18
+
19
+ <div class="w-full overflow-hidden rounded-[8px] border border-[#e5e5e5] bg-white">
20
+ <table class="w-full border-collapse text-[14px] leading-5 text-[#0a0a0a]">
21
+ <thead>
22
+ <tr class="border-b border-[#e5e5e5]">
23
+ <th class="w-[32px] px-2 text-left font-medium"><input type="checkbox" class="h-4 w-4 rounded-[4px] border border-[#e5e5e5]" /></th>
24
+ <th class="w-[120px] px-2 py-2 text-left font-medium">Status</th>
25
+ <th class="w-[270px] px-2 py-2 text-left font-medium">
26
+ <button type="button" class="inline-flex items-center gap-1 rounded-[6px] px-3 py-2">
27
+ <span>Email</span>
28
+ <svg viewBox="0 0 24 24" class="h-4 w-4" fill="none" xmlns="http://www.w3.org/2000/svg">
29
+ <path d="M8 6L4 10L8 14M16 18L20 14L16 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
30
+ </svg>
31
+ </button>
32
+ </th>
33
+ <th class="w-[100px] px-2 py-2 text-right font-medium">Amount</th>
34
+ <th class="px-2 py-2"></th>
35
+ </tr>
36
+ </thead>
37
+
38
+ <tbody>
39
+ <tr *ngFor="let row of pagedRows" class="border-b border-[#e5e5e5] last:border-b-0">
40
+ <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>
41
+ <td class="px-2 py-2">{{ row.status }}</td>
42
+ <td class="px-2 py-2">{{ row.email }}</td>
43
+ <td class="px-2 py-2 text-right">{{ row.amount }}</td>
44
+ <td class="px-2 py-2">
45
+ <button type="button" class="inline-flex h-8 w-8 items-center justify-center" (click)="onAction(row)">
46
+ <svg viewBox="0 0 24 24" class="h-4 w-4" fill="none" xmlns="http://www.w3.org/2000/svg">
47
+ <circle cx="6" cy="12" r="1.5" fill="currentColor"></circle>
48
+ <circle cx="12" cy="12" r="1.5" fill="currentColor"></circle>
49
+ <circle cx="18" cy="12" r="1.5" fill="currentColor"></circle>
50
+ </svg>
51
+ </button>
52
+ </td>
53
+ </tr>
54
+ </tbody>
55
+ </table>
56
+ </div>
57
+
58
+ <div class="flex w-full items-center gap-2 py-4">
59
+ <p class="flex-1 pr-2 text-[14px] leading-5 text-[#737373]">{{ selectedCount }} of {{ rows.length }} row(s) selected.</p>
60
+ <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>
61
+ <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>
62
+ </div>
63
+ </section>
@@ -0,0 +1,78 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+
3
+ export interface PdmDataTableRow {
4
+ id: string;
5
+ status: string;
6
+ email: string;
7
+ amount: string;
8
+ selected?: boolean;
9
+ }
10
+
11
+ @Component({
12
+ selector: 'pdm-data-table',
13
+ templateUrl: './data-table.component.html',
14
+ changeDetection: ChangeDetectionStrategy.OnPush
15
+ })
16
+ export class PdmDataTableComponent {
17
+ @Input() className = '';
18
+ @Input() filterPlaceholder = 'Filter emails...';
19
+ @Input() columnsLabel = 'Columns';
20
+ @Input() rows: PdmDataTableRow[] = [
21
+ { id: '1', status: 'Success', email: 'ken99@yahoo.com', amount: '$316.00' },
22
+ { id: '2', status: 'Success', email: 'abe45@gmail.com', amount: '$242.00' },
23
+ { id: '3', status: 'Processing', email: 'monserrat44@gmail.com', amount: '$837.00' },
24
+ { id: '4', status: 'Success', email: 'silas22@gmail.com', amount: '$874.00' },
25
+ { id: '5', status: 'Failed', email: 'carmella@hotmail.com', amount: '$721.00' }
26
+ ];
27
+
28
+ @Input() page = 1;
29
+ @Input() pageSize = 5;
30
+ @Input() query = '';
31
+
32
+ @Output() queryChange = new EventEmitter<string>();
33
+ @Output() rowAction = new EventEmitter<string>();
34
+ @Output() pageChange = new EventEmitter<number>();
35
+ @Output() selectionChange = new EventEmitter<{ id: string; selected: boolean }>();
36
+
37
+ get filteredRows(): PdmDataTableRow[] {
38
+ const q = this.query.trim().toLowerCase();
39
+ if (!q) return this.rows;
40
+ return this.rows.filter((r) => r.email.toLowerCase().includes(q));
41
+ }
42
+
43
+ get pagedRows(): PdmDataTableRow[] {
44
+ const start = (this.page - 1) * this.pageSize;
45
+ return this.filteredRows.slice(start, start + this.pageSize);
46
+ }
47
+
48
+ get totalPages(): number {
49
+ return Math.max(1, Math.ceil(this.filteredRows.length / this.pageSize));
50
+ }
51
+
52
+ get selectedCount(): number {
53
+ return this.rows.filter((row) => row.selected).length;
54
+ }
55
+
56
+ onQueryInput(event: Event): void {
57
+ const value = (event.target as HTMLInputElement).value;
58
+ this.queryChange.emit(value);
59
+ }
60
+
61
+ onToggleRow(row: PdmDataTableRow, event: Event): void {
62
+ this.selectionChange.emit({ id: row.id, selected: (event.target as HTMLInputElement).checked });
63
+ }
64
+
65
+ previous(): void {
66
+ if (this.page <= 1) return;
67
+ this.pageChange.emit(this.page - 1);
68
+ }
69
+
70
+ next(): void {
71
+ if (this.page >= this.totalPages) return;
72
+ this.pageChange.emit(this.page + 1);
73
+ }
74
+
75
+ onAction(row: PdmDataTableRow): void {
76
+ this.rowAction.emit(row.id);
77
+ }
78
+ }
@@ -0,0 +1,38 @@
1
+ <section [ngClass]="['flex flex-col gap-3', className]" class="w-[250px]">
2
+ <label class="text-[14px] font-medium leading-5 text-[#0a0a0a]">{{ label }}</label>
3
+
4
+ <div class="flex items-center gap-2" *ngIf="variant === 'date-time'">
5
+ <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()">
6
+ <span class="truncate text-[12px] leading-4 text-[#0a0a0a]">{{ value }}</span>
7
+ <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>
8
+ </button>
9
+ <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>
10
+ </div>
11
+
12
+ <div *ngIf="variant !== 'date-time'" class="flex flex-col gap-2">
13
+ <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()">
14
+ <span class="truncate text-[16px] leading-6 text-[#0a0a0a]">{{ variant === 'natural-language' ? naturalLanguageValue : value }}</span>
15
+ <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>
16
+ </button>
17
+
18
+ <p *ngIf="variant === 'natural-language'" class="max-w-[192px] text-[12px] leading-4 text-[#737373]">{{ naturalLanguageHint }}</p>
19
+ </div>
20
+
21
+ <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)]">
22
+ <div class="mb-4 flex items-center justify-between">
23
+ <button type="button" class="h-8 w-8 rounded-[6px] text-[#0a0a0a]">‹</button>
24
+ <div class="flex items-center gap-1.5">
25
+ <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>˅</span></button>
26
+ <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>˅</span></button>
27
+ </div>
28
+ <button type="button" class="h-8 w-8 rounded-[6px] text-[#0a0a0a]">›</button>
29
+ </div>
30
+
31
+ <pdm-calendar [month]="month" [year]="year" [selectedDay]="selectedDay" mode="single"></pdm-calendar>
32
+
33
+ <div *ngIf="variant === 'with-input' || variant === 'natural-language'" class="mt-3 flex gap-2">
34
+ <button type="button" class="h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]" (click)="selectPreset('Today')">Today</button>
35
+ <button type="button" class="h-8 rounded-[8px] border border-[#e5e5e5] px-3 text-[12px] text-[#0a0a0a]" (click)="selectPreset('Tomorrow')">Tomorrow</button>
36
+ </div>
37
+ </div>
38
+ </section>
@@ -0,0 +1,38 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+
3
+ export type PdmDatePickerVariant = 'default' | 'with-input' | 'date-time' | 'natural-language';
4
+
5
+ @Component({
6
+ selector: 'pdm-date-picker',
7
+ templateUrl: './date-picker.component.html',
8
+ changeDetection: ChangeDetectionStrategy.OnPush
9
+ })
10
+ export class PdmDatePickerComponent {
11
+ @Input() variant: PdmDatePickerVariant = 'default';
12
+ @Input() className = '';
13
+ @Input() open = false;
14
+
15
+ @Input() label = 'Date of Birth';
16
+ @Input() value = 'Select a date';
17
+ @Input() month = 6;
18
+ @Input() year = 2025;
19
+ @Input() selectedDay = 25;
20
+ @Input() time = '10:30:00';
21
+ @Input() naturalLanguageValue = 'In 2 days';
22
+ @Input() naturalLanguageHint = 'Your post will be published on June 21, 2025.';
23
+
24
+ @Output() openChange = new EventEmitter<boolean>();
25
+ @Output() valueChange = new EventEmitter<string>();
26
+
27
+ toggle(): void {
28
+ this.openChange.emit(!this.open);
29
+ }
30
+
31
+ selectPreset(value: string): void {
32
+ this.valueChange.emit(value);
33
+ }
34
+
35
+ get monthLabel(): string {
36
+ return new Date(this.year, this.month - 1, 1).toLocaleString('en-US', { month: 'short' });
37
+ }
38
+ }
@@ -0,0 +1,78 @@
1
+ <div *ngIf="open" class="fixed inset-0 z-50 flex items-center justify-center p-4">
2
+ <div class="absolute inset-0 bg-[rgba(0,0,0,0.3)]" (click)="onBackdropClick()"></div>
3
+ <section
4
+ role="dialog"
5
+ aria-modal="true"
6
+ [ngClass]="[
7
+ '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)]',
8
+ className
9
+ ]"
10
+ >
11
+ <div class="flex items-start justify-between gap-3">
12
+ <div class="min-w-0">
13
+ <h2 class="m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]">{{ title }}</h2>
14
+ <p *ngIf="description" class="m-0 mt-2 text-[14px] leading-5 text-[#737373]">{{ description }}</p>
15
+ </div>
16
+ <button
17
+ *ngIf="showCloseButton"
18
+ type="button"
19
+ class="inline-flex h-6 w-6 items-center justify-center text-[#0a0a0a] opacity-70"
20
+ (click)="close()"
21
+ aria-label="Close dialog"
22
+ >
23
+ <svg viewBox="0 0 24 24" class="h-4 w-4" fill="none" xmlns="http://www.w3.org/2000/svg">
24
+ <path d="M6 6L18 18M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path>
25
+ </svg>
26
+ </button>
27
+ </div>
28
+
29
+ <ng-container *ngIf="variant === 'default'; else customCloseDialog">
30
+ <div class="mt-4 flex flex-col gap-4">
31
+ <div class="flex flex-col gap-3">
32
+ <label class="text-[14px] font-medium leading-5 text-[#0a0a0a]">{{ nameLabel }}</label>
33
+ <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>
34
+ </div>
35
+ <div class="flex flex-col gap-3">
36
+ <label class="text-[14px] font-medium leading-5 text-[#0a0a0a]">{{ usernameLabel }}</label>
37
+ <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>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="mt-4 flex justify-end gap-2">
42
+ <button
43
+ type="button"
44
+ 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)]"
45
+ (click)="onSecondaryAction()"
46
+ >
47
+ {{ secondaryActionText }}
48
+ </button>
49
+ <button
50
+ type="button"
51
+ 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)]"
52
+ (click)="onPrimaryAction()"
53
+ >
54
+ {{ primaryActionText }}
55
+ </button>
56
+ </div>
57
+ </ng-container>
58
+
59
+ <ng-template #customCloseDialog>
60
+ <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)]">
61
+ {{ linkValue }}
62
+ </div>
63
+ <div class="mt-4 flex">
64
+ <button
65
+ type="button"
66
+ 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)]"
67
+ (click)="onSecondaryAction()"
68
+ >
69
+ Close
70
+ </button>
71
+ </div>
72
+ </ng-template>
73
+
74
+ <div class="mt-4">
75
+ <ng-content></ng-content>
76
+ </div>
77
+ </section>
78
+ </div>
@@ -0,0 +1,55 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+
3
+ export type PdmDialogVariant = 'default' | 'custom-close';
4
+
5
+ @Component({
6
+ selector: 'pdm-dialog',
7
+ templateUrl: './dialog.component.html',
8
+ changeDetection: ChangeDetectionStrategy.OnPush
9
+ })
10
+ export class PdmDialogComponent {
11
+ @Input() open = false;
12
+ @Input() variant: PdmDialogVariant = 'default';
13
+ @Input() title = 'Edit profile';
14
+ @Input() description = 'Make changes to your profile here. Click save when you\'re done.';
15
+ @Input() closeOnBackdrop = true;
16
+ @Input() closeOnEsc = true;
17
+ @Input() showCloseButton = true;
18
+ @Input() primaryActionText = 'Save changes';
19
+ @Input() secondaryActionText = 'Cancel';
20
+ @Input() nameLabel = 'Name';
21
+ @Input() nameValue = 'Pedro Duarte';
22
+ @Input() usernameLabel = 'Username';
23
+ @Input() usernameValue = '@peduarte';
24
+ @Input() linkValue = 'https://ui.shadcn.com/docs/installation';
25
+ @Input() className = '';
26
+
27
+ @Output() openChange = new EventEmitter<boolean>();
28
+ @Output() primaryAction = new EventEmitter<void>();
29
+ @Output() secondaryAction = new EventEmitter<void>();
30
+
31
+ @HostListener('document:keydown.escape')
32
+ onEsc(): void {
33
+ if (this.open && this.closeOnEsc) {
34
+ this.close();
35
+ }
36
+ }
37
+
38
+ close(): void {
39
+ this.openChange.emit(false);
40
+ }
41
+
42
+ onPrimaryAction(): void {
43
+ this.primaryAction.emit();
44
+ }
45
+
46
+ onSecondaryAction(): void {
47
+ this.secondaryAction.emit();
48
+ }
49
+
50
+ onBackdropClick(): void {
51
+ if (this.closeOnBackdrop) {
52
+ this.close();
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,56 @@
1
+ <div *ngIf="open" class="fixed inset-0 z-50" [ngClass]="className">
2
+ <div class="absolute inset-0 bg-[rgba(0,0,0,0.3)]" (click)="close()"></div>
3
+
4
+ <section
5
+ *ngIf="variant === 'drawer'; else responsiveDialog"
6
+ 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)]"
7
+ >
8
+ <div class="mx-auto mb-4 h-1 w-10 rounded-full bg-[#e5e5e5]"></div>
9
+
10
+ <div class="mx-auto flex max-w-[320px] flex-col items-center">
11
+ <h3 class="m-0 text-[14px] font-semibold leading-5 text-[#0a0a0a]">{{ title }}</h3>
12
+ <p class="m-0 mt-1 text-[12px] leading-4 text-[#737373]">{{ description }}</p>
13
+
14
+ <div class="mt-3 flex w-full items-center justify-center gap-4">
15
+ <button type="button" class="inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]">-</button>
16
+ <div class="text-center">
17
+ <div class="text-[48px] font-semibold leading-none text-[#0a0a0a]">{{ value }}</div>
18
+ <div class="mt-1 text-[10px] tracking-wide text-[#737373]">{{ unit }}</div>
19
+ </div>
20
+ <button type="button" class="inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#e5e5e5] text-[#737373]">+</button>
21
+ </div>
22
+
23
+ <div class="mt-3 flex h-[58px] w-full items-end gap-[3px]">
24
+ <div *ngFor="let bar of bars" class="flex-1 bg-[#171717]" [style.height.px]="bar"></div>
25
+ </div>
26
+
27
+ <button type="button" class="mt-3 h-9 w-full rounded-[10px] bg-[#171717] text-[14px] font-medium text-[#fafafa]" (click)="onPrimaryAction()">Submit</button>
28
+ <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>
29
+ </div>
30
+ </section>
31
+
32
+ <ng-template #responsiveDialog>
33
+ <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)]">
34
+ <div class="flex items-start justify-between">
35
+ <div>
36
+ <h3 class="m-0 text-[18px] font-semibold leading-7 text-[#0a0a0a]">{{ profileTitle }}</h3>
37
+ <p class="m-0 mt-1 text-[12px] leading-4 text-[#737373]">{{ profileDescription }}</p>
38
+ </div>
39
+ <button type="button" class="h-5 w-5 text-[#737373]" (click)="close()">×</button>
40
+ </div>
41
+
42
+ <div class="mt-3 flex flex-col gap-3">
43
+ <div>
44
+ <label class="mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]">{{ nameLabel }}</label>
45
+ <div class="h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]">{{ nameValue }}</div>
46
+ </div>
47
+ <div>
48
+ <label class="mb-1 block text-[12px] font-medium leading-4 text-[#0a0a0a]">{{ usernameLabel }}</label>
49
+ <div class="h-8 rounded-[6px] border border-[#e5e5e5] bg-white px-2 py-1 text-[12px] leading-4 text-[#0a0a0a]">{{ usernameValue }}</div>
50
+ </div>
51
+ </div>
52
+
53
+ <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>
54
+ </section>
55
+ </ng-template>
56
+ </div>
@@ -0,0 +1,43 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+
3
+ export type PdmDrawerVariant = 'drawer' | 'responsive-dialog';
4
+
5
+ @Component({
6
+ selector: 'pdm-drawer',
7
+ templateUrl: './drawer.component.html',
8
+ changeDetection: ChangeDetectionStrategy.OnPush
9
+ })
10
+ export class PdmDrawerComponent {
11
+ @Input() open = false;
12
+ @Input() variant: PdmDrawerVariant = 'drawer';
13
+ @Input() className = '';
14
+ @Input() title = 'Move Goal';
15
+ @Input() description = 'Set your daily activity goal.';
16
+ @Input() value = 350;
17
+ @Input() unit = 'CALORIES/DAY';
18
+
19
+ @Input() profileTitle = 'Edit profile';
20
+ @Input() profileDescription = 'Make changes to your profile here. Click save when you\'re done.';
21
+ @Input() nameLabel = 'Name';
22
+ @Input() nameValue = 'Pedro Duarte';
23
+ @Input() usernameLabel = 'Username';
24
+ @Input() usernameValue = '@peduarte';
25
+
26
+ @Output() openChange = new EventEmitter<boolean>();
27
+ @Output() primaryAction = new EventEmitter<void>();
28
+ @Output() secondaryAction = new EventEmitter<void>();
29
+
30
+ readonly bars = [72, 54, 58, 49, 60, 65, 44, 53, 61, 52, 63, 48, 66];
31
+
32
+ close(): void {
33
+ this.openChange.emit(false);
34
+ }
35
+
36
+ onPrimaryAction(): void {
37
+ this.primaryAction.emit();
38
+ }
39
+
40
+ onSecondaryAction(): void {
41
+ this.secondaryAction.emit();
42
+ }
43
+ }
@@ -0,0 +1,56 @@
1
+ <div class="relative inline-block" [ngClass]="className">
2
+ <button
3
+ type="button"
4
+ 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)]"
5
+ [attr.aria-expanded]="open"
6
+ (click)="toggle()"
7
+ >
8
+ {{ triggerText }}
9
+ </button>
10
+
11
+ <div
12
+ *ngIf="open"
13
+ [ngClass]="[
14
+ '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)]',
15
+ panelClassName
16
+ ]"
17
+ >
18
+ <ng-container *ngFor="let item of resolvedItems">
19
+ <div *ngIf="item.type === 'separator'" class="my-[5px] h-px bg-[#f1f5f9]"></div>
20
+
21
+ <div
22
+ *ngIf="item.type === 'label'"
23
+ [ngClass]="['px-2 py-1.5 text-[14px] font-semibold leading-5 text-[#0a0a0a]', item.inset ? 'pl-8' : '']"
24
+ >
25
+ {{ item.label }}
26
+ </div>
27
+
28
+ <button
29
+ *ngIf="!item.type || item.type === 'item'"
30
+ type="button"
31
+ [disabled]="item.disabled"
32
+ [ngClass]="[
33
+ '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',
34
+ item.inset ? 'pl-8' : ''
35
+ ]"
36
+ (click)="select(item)"
37
+ >
38
+ <span class="inline-flex h-4 w-4 shrink-0 items-center justify-center">
39
+ <svg
40
+ *ngIf="item.checked"
41
+ viewBox="0 0 24 24"
42
+ class="h-3.5 w-3.5 text-[#0a0a0a]"
43
+ fill="none"
44
+ xmlns="http://www.w3.org/2000/svg"
45
+ >
46
+ <path d="M5 12.5L9.2 16.7L19 7" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path>
47
+ </svg>
48
+ <span *ngIf="item.radioSelected" class="h-2 w-2 rounded-full bg-[#0a0a0a]"></span>
49
+ </span>
50
+ <span class="min-w-0 flex-1 truncate">{{ item.label }}</span>
51
+ <span *ngIf="item.shortcut" class="text-[12px] leading-5 text-[#64748b]">{{ item.shortcut }}</span>
52
+ <span *ngIf="item.showChevron" class="text-[16px] leading-none text-[#475569]">›</span>
53
+ </button>
54
+ </ng-container>
55
+ </div>
56
+ </div>