@gbmtech/aurora-ui 0.4.106 → 0.5.0

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 (672) hide show
  1. package/dist/cjs/components/alert-dialog.cjs +1 -2
  2. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  3. package/dist/cjs/components/app-layout/app-layout-breadcrumb.cjs +1 -2
  4. package/dist/cjs/components/app-layout/app-layout-breadcrumb.d.ts +1 -2
  5. package/dist/cjs/components/app-layout/app-layout-breadcrumb.d.ts.map +1 -1
  6. package/dist/cjs/components/app-layout/app-layout-content.cjs +1 -2
  7. package/dist/cjs/components/app-layout/app-layout-filters.cjs +1 -2
  8. package/dist/cjs/components/app-layout/app-layout-header.cjs +1 -2
  9. package/dist/cjs/components/app-layout/app-layout-provider.cjs +1 -2
  10. package/dist/cjs/components/app-layout/app-layout.cjs +1 -2
  11. package/dist/cjs/components/app-layout/index.cjs +1 -2
  12. package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs +1 -2
  13. package/dist/cjs/components/app-layout/sidebar/app-sidebar.d.ts +2 -2
  14. package/dist/cjs/components/app-layout/sidebar/app-sidebar.d.ts.map +1 -1
  15. package/dist/cjs/components/app-layout/sidebar/index.cjs +1 -2
  16. package/dist/cjs/components/app-layout/sidebar/index.d.ts +2 -2
  17. package/dist/cjs/components/app-layout/sidebar/index.d.ts.map +1 -1
  18. package/dist/cjs/components/app-layout/sidebar/intl/messages.cjs +1 -2
  19. package/dist/cjs/components/app-layout/sidebar/logo.cjs +1 -2
  20. package/dist/cjs/components/app-layout/sidebar/nav-modules.cjs +1 -2
  21. package/dist/cjs/components/app-layout/sidebar/nav-sub-item.cjs +1 -2
  22. package/dist/cjs/components/app-layout/sidebar/nav-user.cjs +1 -2
  23. package/dist/cjs/components/app-layout/sidebar/nav-user.d.ts.map +1 -1
  24. package/dist/cjs/components/app-layout/sidebar/sidebar-icons.cjs +1 -2
  25. package/dist/cjs/components/app-layout/sidebar/sidebar.cjs +1 -2
  26. package/dist/cjs/components/app-layout/sidebar/sidebar.d.ts +3 -3
  27. package/dist/cjs/components/app-layout/sidebar/sidebar.d.ts.map +1 -1
  28. package/dist/cjs/components/autocomplete/autocomplete-content.cjs +1 -2
  29. package/dist/cjs/components/autocomplete/autocomplete-context.cjs +1 -2
  30. package/dist/cjs/components/autocomplete/autocomplete-empty.cjs +1 -2
  31. package/dist/cjs/components/autocomplete/autocomplete-input.cjs +1 -2
  32. package/dist/cjs/components/autocomplete/autocomplete-item.cjs +1 -2
  33. package/dist/cjs/components/autocomplete/autocomplete-list.cjs +1 -2
  34. package/dist/cjs/components/autocomplete/autocomplete.cjs +1 -2
  35. package/dist/cjs/components/autocomplete/index.cjs +1 -2
  36. package/dist/cjs/components/avatar.cjs +1 -2
  37. package/dist/cjs/components/avatar.d.ts.map +1 -1
  38. package/dist/cjs/components/badge.cjs +1 -2
  39. package/dist/cjs/components/badge.d.ts +2 -2
  40. package/dist/cjs/components/badge.d.ts.map +1 -1
  41. package/dist/cjs/components/breadcrumb.cjs +1 -2
  42. package/dist/cjs/components/breadcrumb.d.ts +8 -8
  43. package/dist/cjs/components/breadcrumb.d.ts.map +1 -1
  44. package/dist/cjs/components/button.cjs +1 -2
  45. package/dist/cjs/components/button.d.ts +2 -2
  46. package/dist/cjs/components/button.d.ts.map +1 -1
  47. package/dist/cjs/components/calendar.cjs +1 -2
  48. package/dist/cjs/components/calendar.d.ts +6 -2
  49. package/dist/cjs/components/calendar.d.ts.map +1 -1
  50. package/dist/cjs/components/checkbox.cjs +1 -2
  51. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  52. package/dist/cjs/components/combobox.cjs +1 -2
  53. package/dist/cjs/components/command.cjs +1 -2
  54. package/dist/cjs/components/command.d.ts +1 -1
  55. package/dist/cjs/components/command.d.ts.map +1 -1
  56. package/dist/cjs/components/context-menu.cjs +1 -2
  57. package/dist/cjs/components/context-menu.d.ts +1 -1
  58. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  59. package/dist/cjs/components/{icons → custom-icons}/rumo.cjs +1 -2
  60. package/dist/cjs/components/custom-icons/rumo.d.ts.map +1 -0
  61. package/dist/cjs/components/{icons → custom-icons}/vli.cjs +1 -2
  62. package/dist/cjs/components/custom-icons/vli.d.ts.map +1 -0
  63. package/dist/cjs/components/data-table/data-table-action-bar.cjs +1 -2
  64. package/dist/cjs/components/data-table/data-table-action-bar.d.ts +1 -1
  65. package/dist/cjs/components/data-table/data-table-action-bar.d.ts.map +1 -1
  66. package/dist/cjs/components/data-table/data-table-advanced-toolbar.cjs +1 -2
  67. package/dist/cjs/components/data-table/data-table-column-header.cjs +1 -2
  68. package/dist/cjs/components/data-table/data-table-date-filter.cjs +1 -2
  69. package/dist/cjs/components/data-table/data-table-faceted-filter.cjs +1 -2
  70. package/dist/cjs/components/data-table/data-table-filter-list.cjs +1 -2
  71. package/dist/cjs/components/data-table/data-table-filter-menu.cjs +1 -2
  72. package/dist/cjs/components/data-table/data-table-pagination.cjs +1 -2
  73. package/dist/cjs/components/data-table/data-table-pagination.d.ts +2 -2
  74. package/dist/cjs/components/data-table/data-table-pagination.d.ts.map +1 -1
  75. package/dist/cjs/components/data-table/data-table-range-filter.cjs +1 -2
  76. package/dist/cjs/components/data-table/data-table-skeleton.cjs +1 -2
  77. package/dist/cjs/components/data-table/data-table-slider-filter.cjs +1 -2
  78. package/dist/cjs/components/data-table/data-table-sort-list.cjs +1 -2
  79. package/dist/cjs/components/data-table/data-table-toolbar.cjs +1 -2
  80. package/dist/cjs/components/data-table/data-table-view-options.cjs +1 -2
  81. package/dist/cjs/components/data-table/data-table.cjs +1 -2
  82. package/dist/cjs/components/data-table/index.cjs +1 -2
  83. package/dist/cjs/components/data-table/index.d.ts +1 -1
  84. package/dist/cjs/components/data-table/index.d.ts.map +1 -1
  85. package/dist/cjs/components/date-picker-with-range.cjs +1 -2
  86. package/dist/cjs/components/date-picker.cjs +1 -2
  87. package/dist/cjs/components/date-time-picker-with-range.cjs +1 -2
  88. package/dist/cjs/components/date-time-picker-with-range.d.ts.map +1 -1
  89. package/dist/cjs/components/datetime-picker/datetime-picker.cjs +2 -2
  90. package/dist/cjs/components/datetime-picker/datetime-picker.d.ts +68 -75
  91. package/dist/cjs/components/datetime-picker/datetime-picker.d.ts.map +1 -1
  92. package/dist/cjs/components/datetime-picker/index.cjs +1 -0
  93. package/dist/cjs/components/datetime-picker/index.d.ts +3 -0
  94. package/dist/cjs/components/datetime-picker/index.d.ts.map +1 -0
  95. package/dist/cjs/components/dialog.cjs +1 -2
  96. package/dist/cjs/components/dialog.d.ts.map +1 -1
  97. package/dist/cjs/components/dropdown-menu.cjs +1 -2
  98. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  99. package/dist/cjs/components/faceted.cjs +1 -2
  100. package/dist/cjs/components/faceted.d.ts.map +1 -1
  101. package/dist/cjs/components/form.cjs +1 -2
  102. package/dist/cjs/components/form.d.ts +1 -1
  103. package/dist/cjs/components/form.d.ts.map +1 -1
  104. package/dist/cjs/components/input-otp.cjs +1 -2
  105. package/dist/cjs/components/input-otp.d.ts +5 -5
  106. package/dist/cjs/components/input-otp.d.ts.map +1 -1
  107. package/dist/cjs/components/input-password.cjs +1 -2
  108. package/dist/cjs/components/input.cjs +1 -2
  109. package/dist/cjs/components/input.d.ts.map +1 -1
  110. package/dist/cjs/components/label.cjs +1 -2
  111. package/dist/cjs/components/mask-input.cjs +1 -2
  112. package/dist/cjs/components/month-picker.cjs +1 -2
  113. package/dist/cjs/components/multi-select.cjs +1 -2
  114. package/dist/cjs/components/multi-select.d.ts.map +1 -1
  115. package/dist/cjs/components/pagination.cjs +1 -2
  116. package/dist/cjs/components/pagination.d.ts +8 -8
  117. package/dist/cjs/components/pagination.d.ts.map +1 -1
  118. package/dist/cjs/components/popover.cjs +1 -2
  119. package/dist/cjs/components/radio-group.cjs +1 -2
  120. package/dist/cjs/components/react-aria-components/calendar-rac.cjs +1 -2
  121. package/dist/cjs/components/react-aria-components/date-picker-rac.cjs +1 -2
  122. package/dist/cjs/components/react-aria-components/datefield-rac.cjs +1 -2
  123. package/dist/cjs/components/react-aria-components/index.cjs +1 -2
  124. package/dist/cjs/components/scroll-area.cjs +1 -2
  125. package/dist/cjs/components/select.cjs +1 -2
  126. package/dist/cjs/components/separator.cjs +1 -2
  127. package/dist/cjs/components/sheet/index.cjs +1 -2
  128. package/dist/cjs/components/sheet/sheet-content-variants.cjs +1 -2
  129. package/dist/cjs/components/sheet/sheet.cjs +1 -2
  130. package/dist/cjs/components/sheet/sheet.d.ts +11 -11
  131. package/dist/cjs/components/sheet/sheet.d.ts.map +1 -1
  132. package/dist/cjs/components/skeleton.cjs +1 -2
  133. package/dist/cjs/components/slider.cjs +1 -2
  134. package/dist/cjs/components/sortable.cjs +2 -3
  135. package/dist/cjs/components/sortable.d.ts.map +1 -1
  136. package/dist/cjs/components/spinner.cjs +1 -2
  137. package/dist/cjs/components/spinner.d.ts.map +1 -1
  138. package/dist/cjs/components/switch.cjs +1 -2
  139. package/dist/cjs/components/switch.d.ts +2 -2
  140. package/dist/cjs/components/switch.d.ts.map +1 -1
  141. package/dist/cjs/components/table-expandable.cjs +1 -2
  142. package/dist/cjs/components/table.cjs +1 -2
  143. package/dist/cjs/components/tabs/index.cjs +1 -2
  144. package/dist/cjs/components/tabs/tabs-content.cjs +1 -2
  145. package/dist/cjs/components/tabs/tabs-list.cjs +1 -2
  146. package/dist/cjs/components/tabs/tabs-root.cjs +1 -2
  147. package/dist/cjs/components/tabs/tabs-trigger.cjs +1 -2
  148. package/dist/cjs/components/textarea.cjs +1 -2
  149. package/dist/cjs/components/theme-provider.cjs +1 -2
  150. package/dist/cjs/components/theme-toggle.cjs +1 -2
  151. package/dist/cjs/components/time-picker/index.cjs +1 -0
  152. package/dist/cjs/components/time-picker/index.d.ts +4 -0
  153. package/dist/cjs/components/time-picker/index.d.ts.map +1 -0
  154. package/dist/cjs/components/time-picker/time-picker-input.cjs +2 -0
  155. package/dist/cjs/components/time-picker/time-picker-input.d.ts +17 -0
  156. package/dist/cjs/components/time-picker/time-picker-input.d.ts.map +1 -0
  157. package/dist/cjs/components/time-picker/time-picker.cjs +2 -0
  158. package/dist/cjs/components/time-picker/time-picker.d.ts +34 -0
  159. package/dist/cjs/components/time-picker/time-picker.d.ts.map +1 -0
  160. package/dist/cjs/components/title.cjs +1 -2
  161. package/dist/cjs/components/title.d.ts +2 -2
  162. package/dist/cjs/components/title.d.ts.map +1 -1
  163. package/dist/cjs/components/tokens-grid.cjs +1 -2
  164. package/dist/cjs/components/tooltip/index.cjs +1 -0
  165. package/dist/cjs/components/tooltip/index.d.ts +4 -0
  166. package/dist/cjs/components/tooltip/index.d.ts.map +1 -0
  167. package/dist/cjs/components/tooltip/tooltip-content-variants.cjs +1 -0
  168. package/dist/cjs/components/tooltip/tooltip-content-variants.d.ts +18 -0
  169. package/dist/cjs/components/tooltip/tooltip-content-variants.d.ts.map +1 -0
  170. package/dist/cjs/components/tooltip/tooltip.cjs +2 -0
  171. package/dist/cjs/components/tooltip/tooltip.d.ts +20 -0
  172. package/dist/cjs/components/tooltip/tooltip.d.ts.map +1 -0
  173. package/dist/cjs/hooks/use-callback-ref.cjs +1 -2
  174. package/dist/cjs/hooks/use-data-table.cjs +1 -2
  175. package/dist/cjs/hooks/use-debounce.cjs +1 -2
  176. package/dist/cjs/hooks/use-debounced-callback.cjs +1 -2
  177. package/dist/cjs/hooks/use-mobile.cjs +1 -2
  178. package/dist/cjs/index.cjs +1 -2
  179. package/dist/cjs/index.d.ts +36 -36
  180. package/dist/cjs/index.d.ts.map +1 -1
  181. package/dist/cjs/lib/composition.cjs +1 -2
  182. package/dist/cjs/lib/data-table-config.cjs +1 -2
  183. package/dist/cjs/lib/data-table.cjs +1 -2
  184. package/dist/cjs/lib/date-picker.cjs +1 -0
  185. package/dist/cjs/lib/date-picker.d.ts +50 -0
  186. package/dist/cjs/lib/date-picker.d.ts.map +1 -0
  187. package/dist/cjs/lib/format.cjs +1 -2
  188. package/dist/cjs/lib/id.cjs +1 -2
  189. package/dist/cjs/lib/index.cjs +1 -2
  190. package/dist/cjs/lib/parsers.cjs +1 -2
  191. package/dist/cjs/lib/utils.cjs +1 -2
  192. package/dist/cjs/lib/utils.d.ts.map +1 -1
  193. package/dist/cjs/primitive/input.cjs +1 -2
  194. package/dist/cjs/tokens/colors.cjs +1 -2
  195. package/dist/cjs/tokens/index.cjs +1 -2
  196. package/dist/cjs/types/data-table.cjs +1 -2
  197. package/dist/cjs/types/index.cjs +1 -2
  198. package/dist/cjs/types/locale.cjs +1 -2
  199. package/dist/cjs/types/module.cjs +1 -2
  200. package/dist/cjs/types/user.cjs +1 -2
  201. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  202. package/dist/esm/components/alert-dialog.js +1 -2
  203. package/dist/esm/components/app-layout/app-layout-breadcrumb.d.ts +1 -2
  204. package/dist/esm/components/app-layout/app-layout-breadcrumb.d.ts.map +1 -1
  205. package/dist/esm/components/app-layout/app-layout-breadcrumb.js +1 -2
  206. package/dist/esm/components/app-layout/app-layout-content.js +1 -2
  207. package/dist/esm/components/app-layout/app-layout-filters.js +1 -2
  208. package/dist/esm/components/app-layout/app-layout-header.js +1 -2
  209. package/dist/esm/components/app-layout/app-layout-provider.js +1 -2
  210. package/dist/esm/components/app-layout/app-layout.js +1 -2
  211. package/dist/esm/components/app-layout/sidebar/app-sidebar.d.ts +2 -2
  212. package/dist/esm/components/app-layout/sidebar/app-sidebar.d.ts.map +1 -1
  213. package/dist/esm/components/app-layout/sidebar/app-sidebar.js +1 -2
  214. package/dist/esm/components/app-layout/sidebar/index.d.ts +2 -2
  215. package/dist/esm/components/app-layout/sidebar/index.d.ts.map +1 -1
  216. package/dist/esm/components/app-layout/sidebar/index.js +1 -1
  217. package/dist/esm/components/app-layout/sidebar/intl/messages.js +1 -2
  218. package/dist/esm/components/app-layout/sidebar/logo.js +1 -2
  219. package/dist/esm/components/app-layout/sidebar/nav-modules.js +1 -2
  220. package/dist/esm/components/app-layout/sidebar/nav-sub-item.js +1 -2
  221. package/dist/esm/components/app-layout/sidebar/nav-user.d.ts.map +1 -1
  222. package/dist/esm/components/app-layout/sidebar/nav-user.js +1 -2
  223. package/dist/esm/components/app-layout/sidebar/sidebar-icons.js +1 -2
  224. package/dist/esm/components/app-layout/sidebar/sidebar.d.ts +3 -3
  225. package/dist/esm/components/app-layout/sidebar/sidebar.d.ts.map +1 -1
  226. package/dist/esm/components/app-layout/sidebar/sidebar.js +1 -2
  227. package/dist/esm/components/autocomplete/autocomplete-content.js +1 -2
  228. package/dist/esm/components/autocomplete/autocomplete-context.js +1 -2
  229. package/dist/esm/components/autocomplete/autocomplete-empty.js +1 -2
  230. package/dist/esm/components/autocomplete/autocomplete-input.js +1 -2
  231. package/dist/esm/components/autocomplete/autocomplete-item.js +1 -2
  232. package/dist/esm/components/autocomplete/autocomplete-list.js +1 -2
  233. package/dist/esm/components/autocomplete/autocomplete.js +1 -2
  234. package/dist/esm/components/avatar.d.ts.map +1 -1
  235. package/dist/esm/components/avatar.js +1 -2
  236. package/dist/esm/components/badge.d.ts +2 -2
  237. package/dist/esm/components/badge.d.ts.map +1 -1
  238. package/dist/esm/components/badge.js +1 -2
  239. package/dist/esm/components/breadcrumb.d.ts +8 -8
  240. package/dist/esm/components/breadcrumb.d.ts.map +1 -1
  241. package/dist/esm/components/breadcrumb.js +1 -2
  242. package/dist/esm/components/button.d.ts +2 -2
  243. package/dist/esm/components/button.d.ts.map +1 -1
  244. package/dist/esm/components/button.js +1 -2
  245. package/dist/esm/components/calendar.d.ts +6 -2
  246. package/dist/esm/components/calendar.d.ts.map +1 -1
  247. package/dist/esm/components/calendar.js +1 -2
  248. package/dist/esm/components/checkbox.d.ts.map +1 -1
  249. package/dist/esm/components/checkbox.js +1 -2
  250. package/dist/esm/components/combobox.js +1 -2
  251. package/dist/esm/components/command.d.ts +1 -1
  252. package/dist/esm/components/command.d.ts.map +1 -1
  253. package/dist/esm/components/command.js +1 -2
  254. package/dist/esm/components/context-menu.d.ts +1 -1
  255. package/dist/esm/components/context-menu.d.ts.map +1 -1
  256. package/dist/esm/components/context-menu.js +1 -2
  257. package/dist/esm/components/custom-icons/rumo.d.ts.map +1 -0
  258. package/dist/esm/components/{icons → custom-icons}/rumo.js +1 -2
  259. package/dist/esm/components/custom-icons/vli.d.ts.map +1 -0
  260. package/dist/esm/components/{icons → custom-icons}/vli.js +1 -2
  261. package/dist/esm/components/data-table/data-table-action-bar.d.ts +1 -1
  262. package/dist/esm/components/data-table/data-table-action-bar.d.ts.map +1 -1
  263. package/dist/esm/components/data-table/data-table-action-bar.js +1 -2
  264. package/dist/esm/components/data-table/data-table-advanced-toolbar.js +1 -2
  265. package/dist/esm/components/data-table/data-table-column-header.js +1 -2
  266. package/dist/esm/components/data-table/data-table-date-filter.js +1 -2
  267. package/dist/esm/components/data-table/data-table-faceted-filter.js +1 -2
  268. package/dist/esm/components/data-table/data-table-filter-list.js +1 -2
  269. package/dist/esm/components/data-table/data-table-filter-menu.js +1 -2
  270. package/dist/esm/components/data-table/data-table-pagination.d.ts +2 -2
  271. package/dist/esm/components/data-table/data-table-pagination.d.ts.map +1 -1
  272. package/dist/esm/components/data-table/data-table-pagination.js +1 -2
  273. package/dist/esm/components/data-table/data-table-range-filter.js +1 -2
  274. package/dist/esm/components/data-table/data-table-skeleton.js +1 -2
  275. package/dist/esm/components/data-table/data-table-slider-filter.js +1 -2
  276. package/dist/esm/components/data-table/data-table-sort-list.js +1 -2
  277. package/dist/esm/components/data-table/data-table-toolbar.js +1 -2
  278. package/dist/esm/components/data-table/data-table-view-options.js +1 -2
  279. package/dist/esm/components/data-table/data-table.js +1 -2
  280. package/dist/esm/components/data-table/index.d.ts +1 -1
  281. package/dist/esm/components/data-table/index.d.ts.map +1 -1
  282. package/dist/esm/components/data-table/index.js +1 -2
  283. package/dist/esm/components/date-picker-with-range.js +1 -2
  284. package/dist/esm/components/date-picker.js +1 -2
  285. package/dist/esm/components/date-time-picker-with-range.d.ts.map +1 -1
  286. package/dist/esm/components/date-time-picker-with-range.js +1 -2
  287. package/dist/esm/components/datetime-picker/datetime-picker.d.ts +68 -75
  288. package/dist/esm/components/datetime-picker/datetime-picker.d.ts.map +1 -1
  289. package/dist/esm/components/datetime-picker/datetime-picker.js +2 -2
  290. package/dist/esm/components/datetime-picker/index.d.ts +3 -0
  291. package/dist/esm/components/datetime-picker/index.d.ts.map +1 -0
  292. package/dist/esm/components/datetime-picker/index.js +1 -0
  293. package/dist/esm/components/dialog.d.ts.map +1 -1
  294. package/dist/esm/components/dialog.js +1 -2
  295. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  296. package/dist/esm/components/dropdown-menu.js +1 -2
  297. package/dist/esm/components/faceted.d.ts.map +1 -1
  298. package/dist/esm/components/faceted.js +1 -2
  299. package/dist/esm/components/form.d.ts +1 -1
  300. package/dist/esm/components/form.d.ts.map +1 -1
  301. package/dist/esm/components/form.js +1 -2
  302. package/dist/esm/components/input-otp.d.ts +5 -5
  303. package/dist/esm/components/input-otp.d.ts.map +1 -1
  304. package/dist/esm/components/input-otp.js +1 -2
  305. package/dist/esm/components/input-password.js +1 -2
  306. package/dist/esm/components/input.d.ts.map +1 -1
  307. package/dist/esm/components/input.js +1 -2
  308. package/dist/esm/components/label.js +1 -2
  309. package/dist/esm/components/mask-input.js +1 -2
  310. package/dist/esm/components/month-picker.js +1 -2
  311. package/dist/esm/components/multi-select.d.ts.map +1 -1
  312. package/dist/esm/components/multi-select.js +1 -2
  313. package/dist/esm/components/pagination.d.ts +8 -8
  314. package/dist/esm/components/pagination.d.ts.map +1 -1
  315. package/dist/esm/components/pagination.js +1 -2
  316. package/dist/esm/components/popover.js +1 -2
  317. package/dist/esm/components/radio-group.js +1 -2
  318. package/dist/esm/components/react-aria-components/calendar-rac.js +1 -2
  319. package/dist/esm/components/react-aria-components/date-picker-rac.js +1 -2
  320. package/dist/esm/components/react-aria-components/datefield-rac.js +1 -2
  321. package/dist/esm/components/scroll-area.js +1 -2
  322. package/dist/esm/components/select.js +1 -2
  323. package/dist/esm/components/separator.js +1 -2
  324. package/dist/esm/components/sheet/sheet-content-variants.js +1 -2
  325. package/dist/esm/components/sheet/sheet.d.ts +11 -11
  326. package/dist/esm/components/sheet/sheet.d.ts.map +1 -1
  327. package/dist/esm/components/sheet/sheet.js +1 -2
  328. package/dist/esm/components/skeleton.js +1 -2
  329. package/dist/esm/components/slider.js +1 -2
  330. package/dist/esm/components/sortable.d.ts.map +1 -1
  331. package/dist/esm/components/sortable.js +2 -3
  332. package/dist/esm/components/spinner.d.ts.map +1 -1
  333. package/dist/esm/components/spinner.js +1 -2
  334. package/dist/esm/components/switch.d.ts +2 -2
  335. package/dist/esm/components/switch.d.ts.map +1 -1
  336. package/dist/esm/components/switch.js +1 -2
  337. package/dist/esm/components/table-expandable.js +1 -2
  338. package/dist/esm/components/table.js +1 -2
  339. package/dist/esm/components/tabs/index.js +1 -2
  340. package/dist/esm/components/tabs/tabs-content.js +1 -2
  341. package/dist/esm/components/tabs/tabs-list.js +1 -2
  342. package/dist/esm/components/tabs/tabs-root.js +1 -2
  343. package/dist/esm/components/tabs/tabs-trigger.js +1 -2
  344. package/dist/esm/components/textarea.js +1 -2
  345. package/dist/esm/components/theme-provider.js +1 -2
  346. package/dist/esm/components/theme-toggle.js +1 -2
  347. package/dist/esm/components/time-picker/index.d.ts +4 -0
  348. package/dist/esm/components/time-picker/index.d.ts.map +1 -0
  349. package/dist/esm/components/time-picker/index.js +1 -0
  350. package/dist/esm/components/time-picker/time-picker-input.d.ts +17 -0
  351. package/dist/esm/components/time-picker/time-picker-input.d.ts.map +1 -0
  352. package/dist/esm/components/time-picker/time-picker-input.js +2 -0
  353. package/dist/esm/components/time-picker/time-picker.d.ts +34 -0
  354. package/dist/esm/components/time-picker/time-picker.d.ts.map +1 -0
  355. package/dist/esm/components/time-picker/time-picker.js +2 -0
  356. package/dist/esm/components/title.d.ts +2 -2
  357. package/dist/esm/components/title.d.ts.map +1 -1
  358. package/dist/esm/components/title.js +1 -2
  359. package/dist/esm/components/tokens-grid.js +1 -2
  360. package/dist/esm/components/tooltip/index.d.ts +4 -0
  361. package/dist/esm/components/tooltip/index.d.ts.map +1 -0
  362. package/dist/esm/components/tooltip/index.js +1 -0
  363. package/dist/esm/components/tooltip/tooltip-content-variants.d.ts +18 -0
  364. package/dist/esm/components/tooltip/tooltip-content-variants.d.ts.map +1 -0
  365. package/dist/esm/components/tooltip/tooltip-content-variants.js +1 -0
  366. package/dist/esm/components/tooltip/tooltip.d.ts +20 -0
  367. package/dist/esm/components/tooltip/tooltip.d.ts.map +1 -0
  368. package/dist/esm/components/tooltip/tooltip.js +2 -0
  369. package/dist/esm/hooks/use-callback-ref.js +1 -2
  370. package/dist/esm/hooks/use-data-table.js +1 -2
  371. package/dist/esm/hooks/use-debounce.js +1 -2
  372. package/dist/esm/hooks/use-debounced-callback.js +1 -2
  373. package/dist/esm/hooks/use-mobile.js +1 -2
  374. package/dist/esm/index.d.ts +36 -36
  375. package/dist/esm/index.d.ts.map +1 -1
  376. package/dist/esm/index.js +1 -1
  377. package/dist/esm/lib/composition.js +1 -2
  378. package/dist/esm/lib/data-table-config.js +1 -2
  379. package/dist/esm/lib/data-table.js +1 -2
  380. package/dist/esm/lib/date-picker.d.ts +50 -0
  381. package/dist/esm/lib/date-picker.d.ts.map +1 -0
  382. package/dist/esm/lib/date-picker.js +1 -0
  383. package/dist/esm/lib/format.js +1 -2
  384. package/dist/esm/lib/id.js +1 -2
  385. package/dist/esm/lib/parsers.js +1 -2
  386. package/dist/esm/lib/utils.d.ts.map +1 -1
  387. package/dist/esm/lib/utils.js +1 -2
  388. package/dist/esm/primitive/input.js +1 -2
  389. package/dist/esm/tokens/colors.js +1 -2
  390. package/dist/styles/index.css +1 -312
  391. package/package.json +2 -2
  392. package/dist/cjs/components/alert-dialog.cjs.map +0 -1
  393. package/dist/cjs/components/app-layout/app-layout-breadcrumb.cjs.map +0 -1
  394. package/dist/cjs/components/app-layout/app-layout-content.cjs.map +0 -1
  395. package/dist/cjs/components/app-layout/app-layout-filters.cjs.map +0 -1
  396. package/dist/cjs/components/app-layout/app-layout-header.cjs.map +0 -1
  397. package/dist/cjs/components/app-layout/app-layout-provider.cjs.map +0 -1
  398. package/dist/cjs/components/app-layout/app-layout.cjs.map +0 -1
  399. package/dist/cjs/components/app-layout/index.cjs.map +0 -1
  400. package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs.map +0 -1
  401. package/dist/cjs/components/app-layout/sidebar/index.cjs.map +0 -1
  402. package/dist/cjs/components/app-layout/sidebar/intl/messages.cjs.map +0 -1
  403. package/dist/cjs/components/app-layout/sidebar/logo.cjs.map +0 -1
  404. package/dist/cjs/components/app-layout/sidebar/nav-modules.cjs.map +0 -1
  405. package/dist/cjs/components/app-layout/sidebar/nav-sub-item.cjs.map +0 -1
  406. package/dist/cjs/components/app-layout/sidebar/nav-user.cjs.map +0 -1
  407. package/dist/cjs/components/app-layout/sidebar/sidebar-icons.cjs.map +0 -1
  408. package/dist/cjs/components/app-layout/sidebar/sidebar.cjs.map +0 -1
  409. package/dist/cjs/components/autocomplete/autocomplete-content.cjs.map +0 -1
  410. package/dist/cjs/components/autocomplete/autocomplete-context.cjs.map +0 -1
  411. package/dist/cjs/components/autocomplete/autocomplete-empty.cjs.map +0 -1
  412. package/dist/cjs/components/autocomplete/autocomplete-input.cjs.map +0 -1
  413. package/dist/cjs/components/autocomplete/autocomplete-item.cjs.map +0 -1
  414. package/dist/cjs/components/autocomplete/autocomplete-list.cjs.map +0 -1
  415. package/dist/cjs/components/autocomplete/autocomplete.cjs.map +0 -1
  416. package/dist/cjs/components/autocomplete/index.cjs.map +0 -1
  417. package/dist/cjs/components/avatar.cjs.map +0 -1
  418. package/dist/cjs/components/badge.cjs.map +0 -1
  419. package/dist/cjs/components/breadcrumb.cjs.map +0 -1
  420. package/dist/cjs/components/button.cjs.map +0 -1
  421. package/dist/cjs/components/calendar.cjs.map +0 -1
  422. package/dist/cjs/components/checkbox.cjs.map +0 -1
  423. package/dist/cjs/components/combobox.cjs.map +0 -1
  424. package/dist/cjs/components/command.cjs.map +0 -1
  425. package/dist/cjs/components/context-menu.cjs.map +0 -1
  426. package/dist/cjs/components/data-table/data-table-action-bar.cjs.map +0 -1
  427. package/dist/cjs/components/data-table/data-table-advanced-toolbar.cjs.map +0 -1
  428. package/dist/cjs/components/data-table/data-table-column-header.cjs.map +0 -1
  429. package/dist/cjs/components/data-table/data-table-date-filter.cjs.map +0 -1
  430. package/dist/cjs/components/data-table/data-table-faceted-filter.cjs.map +0 -1
  431. package/dist/cjs/components/data-table/data-table-filter-list.cjs.map +0 -1
  432. package/dist/cjs/components/data-table/data-table-filter-menu.cjs.map +0 -1
  433. package/dist/cjs/components/data-table/data-table-pagination.cjs.map +0 -1
  434. package/dist/cjs/components/data-table/data-table-range-filter.cjs.map +0 -1
  435. package/dist/cjs/components/data-table/data-table-skeleton.cjs.map +0 -1
  436. package/dist/cjs/components/data-table/data-table-slider-filter.cjs.map +0 -1
  437. package/dist/cjs/components/data-table/data-table-sort-list.cjs.map +0 -1
  438. package/dist/cjs/components/data-table/data-table-toolbar.cjs.map +0 -1
  439. package/dist/cjs/components/data-table/data-table-view-options.cjs.map +0 -1
  440. package/dist/cjs/components/data-table/data-table.cjs.map +0 -1
  441. package/dist/cjs/components/data-table/index.cjs.map +0 -1
  442. package/dist/cjs/components/date-picker-with-range.cjs.map +0 -1
  443. package/dist/cjs/components/date-picker.cjs.map +0 -1
  444. package/dist/cjs/components/date-time-picker-with-range.cjs.map +0 -1
  445. package/dist/cjs/components/datetime-picker/datetime-picker.cjs.map +0 -1
  446. package/dist/cjs/components/datetime-picker/month-year-picker.cjs +0 -2
  447. package/dist/cjs/components/datetime-picker/month-year-picker.cjs.map +0 -1
  448. package/dist/cjs/components/datetime-picker/month-year-picker.d.ts +0 -10
  449. package/dist/cjs/components/datetime-picker/month-year-picker.d.ts.map +0 -1
  450. package/dist/cjs/components/datetime-picker/time-item.cjs +0 -2
  451. package/dist/cjs/components/datetime-picker/time-item.cjs.map +0 -1
  452. package/dist/cjs/components/datetime-picker/time-item.d.ts +0 -10
  453. package/dist/cjs/components/datetime-picker/time-item.d.ts.map +0 -1
  454. package/dist/cjs/components/dialog.cjs.map +0 -1
  455. package/dist/cjs/components/dropdown-menu.cjs.map +0 -1
  456. package/dist/cjs/components/faceted.cjs.map +0 -1
  457. package/dist/cjs/components/form.cjs.map +0 -1
  458. package/dist/cjs/components/icons/rumo.cjs.map +0 -1
  459. package/dist/cjs/components/icons/rumo.d.ts.map +0 -1
  460. package/dist/cjs/components/icons/vli.cjs.map +0 -1
  461. package/dist/cjs/components/icons/vli.d.ts.map +0 -1
  462. package/dist/cjs/components/input-otp.cjs.map +0 -1
  463. package/dist/cjs/components/input-password.cjs.map +0 -1
  464. package/dist/cjs/components/input.cjs.map +0 -1
  465. package/dist/cjs/components/label.cjs.map +0 -1
  466. package/dist/cjs/components/mask-input.cjs.map +0 -1
  467. package/dist/cjs/components/month-picker.cjs.map +0 -1
  468. package/dist/cjs/components/multi-select.cjs.map +0 -1
  469. package/dist/cjs/components/pagination.cjs.map +0 -1
  470. package/dist/cjs/components/popover.cjs.map +0 -1
  471. package/dist/cjs/components/radio-group.cjs.map +0 -1
  472. package/dist/cjs/components/react-aria-components/calendar-rac.cjs.map +0 -1
  473. package/dist/cjs/components/react-aria-components/date-picker-rac.cjs.map +0 -1
  474. package/dist/cjs/components/react-aria-components/datefield-rac.cjs.map +0 -1
  475. package/dist/cjs/components/react-aria-components/index.cjs.map +0 -1
  476. package/dist/cjs/components/scroll-area.cjs.map +0 -1
  477. package/dist/cjs/components/select.cjs.map +0 -1
  478. package/dist/cjs/components/separator.cjs.map +0 -1
  479. package/dist/cjs/components/sheet/index.cjs.map +0 -1
  480. package/dist/cjs/components/sheet/sheet-content-variants.cjs.map +0 -1
  481. package/dist/cjs/components/sheet/sheet.cjs.map +0 -1
  482. package/dist/cjs/components/skeleton.cjs.map +0 -1
  483. package/dist/cjs/components/slider.cjs.map +0 -1
  484. package/dist/cjs/components/sortable.cjs.map +0 -1
  485. package/dist/cjs/components/spinner.cjs.map +0 -1
  486. package/dist/cjs/components/switch.cjs.map +0 -1
  487. package/dist/cjs/components/table-expandable.cjs.map +0 -1
  488. package/dist/cjs/components/table.cjs.map +0 -1
  489. package/dist/cjs/components/tabs/index.cjs.map +0 -1
  490. package/dist/cjs/components/tabs/tabs-content.cjs.map +0 -1
  491. package/dist/cjs/components/tabs/tabs-list.cjs.map +0 -1
  492. package/dist/cjs/components/tabs/tabs-root.cjs.map +0 -1
  493. package/dist/cjs/components/tabs/tabs-trigger.cjs.map +0 -1
  494. package/dist/cjs/components/textarea.cjs.map +0 -1
  495. package/dist/cjs/components/theme-provider.cjs.map +0 -1
  496. package/dist/cjs/components/theme-toggle.cjs.map +0 -1
  497. package/dist/cjs/components/time-picker-input.cjs +0 -3
  498. package/dist/cjs/components/time-picker-input.cjs.map +0 -1
  499. package/dist/cjs/components/time-picker-input.d.ts +0 -13
  500. package/dist/cjs/components/time-picker-input.d.ts.map +0 -1
  501. package/dist/cjs/components/time-picker.cjs +0 -3
  502. package/dist/cjs/components/time-picker.cjs.map +0 -1
  503. package/dist/cjs/components/time-picker.d.ts +0 -8
  504. package/dist/cjs/components/time-picker.d.ts.map +0 -1
  505. package/dist/cjs/components/title.cjs.map +0 -1
  506. package/dist/cjs/components/tokens-grid.cjs.map +0 -1
  507. package/dist/cjs/components/tooltip.cjs +0 -3
  508. package/dist/cjs/components/tooltip.cjs.map +0 -1
  509. package/dist/cjs/components/tooltip.d.ts +0 -10
  510. package/dist/cjs/components/tooltip.d.ts.map +0 -1
  511. package/dist/cjs/hooks/use-callback-ref.cjs.map +0 -1
  512. package/dist/cjs/hooks/use-data-table.cjs.map +0 -1
  513. package/dist/cjs/hooks/use-debounce.cjs.map +0 -1
  514. package/dist/cjs/hooks/use-debounced-callback.cjs.map +0 -1
  515. package/dist/cjs/hooks/use-mobile.cjs.map +0 -1
  516. package/dist/cjs/index.cjs.map +0 -1
  517. package/dist/cjs/lib/composition.cjs.map +0 -1
  518. package/dist/cjs/lib/data-table-config.cjs.map +0 -1
  519. package/dist/cjs/lib/data-table.cjs.map +0 -1
  520. package/dist/cjs/lib/format.cjs.map +0 -1
  521. package/dist/cjs/lib/id.cjs.map +0 -1
  522. package/dist/cjs/lib/index.cjs.map +0 -1
  523. package/dist/cjs/lib/parsers.cjs.map +0 -1
  524. package/dist/cjs/lib/utils.cjs.map +0 -1
  525. package/dist/cjs/primitive/input.cjs.map +0 -1
  526. package/dist/cjs/tokens/colors.cjs.map +0 -1
  527. package/dist/cjs/tokens/index.cjs.map +0 -1
  528. package/dist/cjs/types/data-table.cjs.map +0 -1
  529. package/dist/cjs/types/index.cjs.map +0 -1
  530. package/dist/cjs/types/locale.cjs.map +0 -1
  531. package/dist/cjs/types/module.cjs.map +0 -1
  532. package/dist/cjs/types/user.cjs.map +0 -1
  533. package/dist/cjs/utils/time-picker.cjs +0 -2
  534. package/dist/cjs/utils/time-picker.cjs.map +0 -1
  535. package/dist/cjs/utils/time-picker.d.ts +0 -29
  536. package/dist/cjs/utils/time-picker.d.ts.map +0 -1
  537. package/dist/esm/components/alert-dialog.js.map +0 -1
  538. package/dist/esm/components/app-layout/app-layout-breadcrumb.js.map +0 -1
  539. package/dist/esm/components/app-layout/app-layout-content.js.map +0 -1
  540. package/dist/esm/components/app-layout/app-layout-filters.js.map +0 -1
  541. package/dist/esm/components/app-layout/app-layout-header.js.map +0 -1
  542. package/dist/esm/components/app-layout/app-layout-provider.js.map +0 -1
  543. package/dist/esm/components/app-layout/app-layout.js.map +0 -1
  544. package/dist/esm/components/app-layout/sidebar/app-sidebar.js.map +0 -1
  545. package/dist/esm/components/app-layout/sidebar/intl/messages.js.map +0 -1
  546. package/dist/esm/components/app-layout/sidebar/logo.js.map +0 -1
  547. package/dist/esm/components/app-layout/sidebar/nav-modules.js.map +0 -1
  548. package/dist/esm/components/app-layout/sidebar/nav-sub-item.js.map +0 -1
  549. package/dist/esm/components/app-layout/sidebar/nav-user.js.map +0 -1
  550. package/dist/esm/components/app-layout/sidebar/sidebar-icons.js.map +0 -1
  551. package/dist/esm/components/app-layout/sidebar/sidebar.js.map +0 -1
  552. package/dist/esm/components/autocomplete/autocomplete-content.js.map +0 -1
  553. package/dist/esm/components/autocomplete/autocomplete-context.js.map +0 -1
  554. package/dist/esm/components/autocomplete/autocomplete-empty.js.map +0 -1
  555. package/dist/esm/components/autocomplete/autocomplete-input.js.map +0 -1
  556. package/dist/esm/components/autocomplete/autocomplete-item.js.map +0 -1
  557. package/dist/esm/components/autocomplete/autocomplete-list.js.map +0 -1
  558. package/dist/esm/components/autocomplete/autocomplete.js.map +0 -1
  559. package/dist/esm/components/avatar.js.map +0 -1
  560. package/dist/esm/components/badge.js.map +0 -1
  561. package/dist/esm/components/breadcrumb.js.map +0 -1
  562. package/dist/esm/components/button.js.map +0 -1
  563. package/dist/esm/components/calendar.js.map +0 -1
  564. package/dist/esm/components/checkbox.js.map +0 -1
  565. package/dist/esm/components/combobox.js.map +0 -1
  566. package/dist/esm/components/command.js.map +0 -1
  567. package/dist/esm/components/context-menu.js.map +0 -1
  568. package/dist/esm/components/data-table/data-table-action-bar.js.map +0 -1
  569. package/dist/esm/components/data-table/data-table-advanced-toolbar.js.map +0 -1
  570. package/dist/esm/components/data-table/data-table-column-header.js.map +0 -1
  571. package/dist/esm/components/data-table/data-table-date-filter.js.map +0 -1
  572. package/dist/esm/components/data-table/data-table-faceted-filter.js.map +0 -1
  573. package/dist/esm/components/data-table/data-table-filter-list.js.map +0 -1
  574. package/dist/esm/components/data-table/data-table-filter-menu.js.map +0 -1
  575. package/dist/esm/components/data-table/data-table-pagination.js.map +0 -1
  576. package/dist/esm/components/data-table/data-table-range-filter.js.map +0 -1
  577. package/dist/esm/components/data-table/data-table-skeleton.js.map +0 -1
  578. package/dist/esm/components/data-table/data-table-slider-filter.js.map +0 -1
  579. package/dist/esm/components/data-table/data-table-sort-list.js.map +0 -1
  580. package/dist/esm/components/data-table/data-table-toolbar.js.map +0 -1
  581. package/dist/esm/components/data-table/data-table-view-options.js.map +0 -1
  582. package/dist/esm/components/data-table/data-table.js.map +0 -1
  583. package/dist/esm/components/data-table/index.js.map +0 -1
  584. package/dist/esm/components/date-picker-with-range.js.map +0 -1
  585. package/dist/esm/components/date-picker.js.map +0 -1
  586. package/dist/esm/components/date-time-picker-with-range.js.map +0 -1
  587. package/dist/esm/components/datetime-picker/datetime-picker.js.map +0 -1
  588. package/dist/esm/components/datetime-picker/month-year-picker.d.ts +0 -10
  589. package/dist/esm/components/datetime-picker/month-year-picker.d.ts.map +0 -1
  590. package/dist/esm/components/datetime-picker/month-year-picker.js +0 -2
  591. package/dist/esm/components/datetime-picker/month-year-picker.js.map +0 -1
  592. package/dist/esm/components/datetime-picker/time-item.d.ts +0 -10
  593. package/dist/esm/components/datetime-picker/time-item.d.ts.map +0 -1
  594. package/dist/esm/components/datetime-picker/time-item.js +0 -2
  595. package/dist/esm/components/datetime-picker/time-item.js.map +0 -1
  596. package/dist/esm/components/dialog.js.map +0 -1
  597. package/dist/esm/components/dropdown-menu.js.map +0 -1
  598. package/dist/esm/components/faceted.js.map +0 -1
  599. package/dist/esm/components/form.js.map +0 -1
  600. package/dist/esm/components/icons/rumo.d.ts.map +0 -1
  601. package/dist/esm/components/icons/rumo.js.map +0 -1
  602. package/dist/esm/components/icons/vli.d.ts.map +0 -1
  603. package/dist/esm/components/icons/vli.js.map +0 -1
  604. package/dist/esm/components/input-otp.js.map +0 -1
  605. package/dist/esm/components/input-password.js.map +0 -1
  606. package/dist/esm/components/input.js.map +0 -1
  607. package/dist/esm/components/label.js.map +0 -1
  608. package/dist/esm/components/mask-input.js.map +0 -1
  609. package/dist/esm/components/month-picker.js.map +0 -1
  610. package/dist/esm/components/multi-select.js.map +0 -1
  611. package/dist/esm/components/pagination.js.map +0 -1
  612. package/dist/esm/components/popover.js.map +0 -1
  613. package/dist/esm/components/radio-group.js.map +0 -1
  614. package/dist/esm/components/react-aria-components/calendar-rac.js.map +0 -1
  615. package/dist/esm/components/react-aria-components/date-picker-rac.js.map +0 -1
  616. package/dist/esm/components/react-aria-components/datefield-rac.js.map +0 -1
  617. package/dist/esm/components/scroll-area.js.map +0 -1
  618. package/dist/esm/components/select.js.map +0 -1
  619. package/dist/esm/components/separator.js.map +0 -1
  620. package/dist/esm/components/sheet/sheet-content-variants.js.map +0 -1
  621. package/dist/esm/components/sheet/sheet.js.map +0 -1
  622. package/dist/esm/components/skeleton.js.map +0 -1
  623. package/dist/esm/components/slider.js.map +0 -1
  624. package/dist/esm/components/sortable.js.map +0 -1
  625. package/dist/esm/components/spinner.js.map +0 -1
  626. package/dist/esm/components/switch.js.map +0 -1
  627. package/dist/esm/components/table-expandable.js.map +0 -1
  628. package/dist/esm/components/table.js.map +0 -1
  629. package/dist/esm/components/tabs/index.js.map +0 -1
  630. package/dist/esm/components/tabs/tabs-content.js.map +0 -1
  631. package/dist/esm/components/tabs/tabs-list.js.map +0 -1
  632. package/dist/esm/components/tabs/tabs-root.js.map +0 -1
  633. package/dist/esm/components/tabs/tabs-trigger.js.map +0 -1
  634. package/dist/esm/components/textarea.js.map +0 -1
  635. package/dist/esm/components/theme-provider.js.map +0 -1
  636. package/dist/esm/components/theme-toggle.js.map +0 -1
  637. package/dist/esm/components/time-picker-input.d.ts +0 -13
  638. package/dist/esm/components/time-picker-input.d.ts.map +0 -1
  639. package/dist/esm/components/time-picker-input.js +0 -3
  640. package/dist/esm/components/time-picker-input.js.map +0 -1
  641. package/dist/esm/components/time-picker.d.ts +0 -8
  642. package/dist/esm/components/time-picker.d.ts.map +0 -1
  643. package/dist/esm/components/time-picker.js +0 -3
  644. package/dist/esm/components/time-picker.js.map +0 -1
  645. package/dist/esm/components/title.js.map +0 -1
  646. package/dist/esm/components/tokens-grid.js.map +0 -1
  647. package/dist/esm/components/tooltip.d.ts +0 -10
  648. package/dist/esm/components/tooltip.d.ts.map +0 -1
  649. package/dist/esm/components/tooltip.js +0 -3
  650. package/dist/esm/components/tooltip.js.map +0 -1
  651. package/dist/esm/hooks/use-callback-ref.js.map +0 -1
  652. package/dist/esm/hooks/use-data-table.js.map +0 -1
  653. package/dist/esm/hooks/use-debounce.js.map +0 -1
  654. package/dist/esm/hooks/use-debounced-callback.js.map +0 -1
  655. package/dist/esm/hooks/use-mobile.js.map +0 -1
  656. package/dist/esm/lib/composition.js.map +0 -1
  657. package/dist/esm/lib/data-table-config.js.map +0 -1
  658. package/dist/esm/lib/data-table.js.map +0 -1
  659. package/dist/esm/lib/format.js.map +0 -1
  660. package/dist/esm/lib/id.js.map +0 -1
  661. package/dist/esm/lib/parsers.js.map +0 -1
  662. package/dist/esm/lib/utils.js.map +0 -1
  663. package/dist/esm/primitive/input.js.map +0 -1
  664. package/dist/esm/tokens/colors.js.map +0 -1
  665. package/dist/esm/utils/time-picker.d.ts +0 -29
  666. package/dist/esm/utils/time-picker.d.ts.map +0 -1
  667. package/dist/esm/utils/time-picker.js +0 -2
  668. package/dist/esm/utils/time-picker.js.map +0 -1
  669. /package/dist/cjs/components/{icons → custom-icons}/rumo.d.ts +0 -0
  670. /package/dist/cjs/components/{icons → custom-icons}/vli.d.ts +0 -0
  671. /package/dist/esm/components/{icons → custom-icons}/rumo.d.ts +0 -0
  672. /package/dist/esm/components/{icons → custom-icons}/vli.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-date-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-date-filter.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank, XCircle } from '@phosphor-icons/react'\r\nimport type { Column } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\nimport type { DateRange } from 'react-day-picker'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Calendar } from '@/components/calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { formatDate } from '@/lib/format'\r\n\r\ntype DateSelection = Date[] | DateRange\r\n\r\nfunction getIsDateRange(value: DateSelection): value is DateRange {\r\n return value && typeof value === 'object' && !Array.isArray(value)\r\n}\r\n\r\nfunction parseAsDate(timestamp: number | string | undefined): Date | undefined {\r\n if (!timestamp) return undefined\r\n const numericTimestamp =\r\n typeof timestamp === 'string' ? Number(timestamp) : timestamp\r\n const date = new Date(numericTimestamp)\r\n return !Number.isNaN(date.getTime()) ? date : undefined\r\n}\r\n\r\nfunction parseColumnFilterValue(value: unknown) {\r\n if (value === null || value === undefined) {\r\n return []\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map(item => {\r\n if (typeof item === 'number' || typeof item === 'string') {\r\n return item\r\n }\r\n return undefined\r\n })\r\n }\r\n\r\n if (typeof value === 'string' || typeof value === 'number') {\r\n return [value]\r\n }\r\n\r\n return []\r\n}\r\n\r\ninterface DataTableDateFilterProps<TData> {\r\n column: Column<TData, unknown>\r\n title?: string\r\n multiple?: boolean\r\n}\r\n\r\nexport function DataTableDateFilter<TData>({\r\n column,\r\n title,\r\n multiple,\r\n}: DataTableDateFilterProps<TData>) {\r\n const columnFilterValue = column.getFilterValue()\r\n\r\n const selectedDates = React.useMemo<DateSelection>(() => {\r\n if (!columnFilterValue) {\r\n return multiple ? { from: undefined, to: undefined } : []\r\n }\r\n\r\n if (multiple) {\r\n const timestamps = parseColumnFilterValue(columnFilterValue)\r\n return {\r\n from: parseAsDate(timestamps[0]),\r\n to: parseAsDate(timestamps[1]),\r\n }\r\n }\r\n\r\n const timestamps = parseColumnFilterValue(columnFilterValue)\r\n const date = parseAsDate(timestamps[0])\r\n return date ? [date] : []\r\n }, [columnFilterValue, multiple])\r\n\r\n const onSelect = React.useCallback(\r\n (date: Date | DateRange | undefined) => {\r\n if (!date) {\r\n column.setFilterValue(undefined)\r\n return\r\n }\r\n\r\n if (multiple && !('getTime' in date)) {\r\n const from = date.from?.getTime()\r\n const to = date.to?.getTime()\r\n column.setFilterValue(from || to ? [from, to] : undefined)\r\n } else if (!multiple && 'getTime' in date) {\r\n column.setFilterValue(date.getTime())\r\n }\r\n },\r\n [column, multiple]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n event.stopPropagation()\r\n column.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n const hasValue = React.useMemo(() => {\r\n if (multiple) {\r\n if (!getIsDateRange(selectedDates)) return false\r\n return selectedDates.from || selectedDates.to\r\n }\r\n if (!Array.isArray(selectedDates)) return false\r\n return selectedDates.length > 0\r\n }, [multiple, selectedDates])\r\n\r\n const formatDateRange = React.useCallback((range: DateRange) => {\r\n if (!range.from && !range.to) return ''\r\n if (range.from && range.to) {\r\n return `${formatDate(range.from)} - ${formatDate(range.to)}`\r\n }\r\n return formatDate(range.from ?? range.to)\r\n }, [])\r\n\r\n const label = React.useMemo(() => {\r\n if (multiple) {\r\n if (!getIsDateRange(selectedDates)) return null\r\n\r\n const hasSelectedDates = selectedDates.from || selectedDates.to\r\n const dateText = hasSelectedDates\r\n ? formatDateRange(selectedDates)\r\n : 'Select date range'\r\n\r\n return (\r\n <span className=\"flex items-center gap-2\">\r\n <span>{title}</span>\r\n {hasSelectedDates && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <span>{dateText}</span>\r\n </>\r\n )}\r\n </span>\r\n )\r\n }\r\n\r\n if (getIsDateRange(selectedDates)) return null\r\n\r\n const hasSelectedDate = selectedDates.length > 0\r\n const dateText = hasSelectedDate\r\n ? formatDate(selectedDates[0])\r\n : 'Select date'\r\n\r\n return (\r\n <span className=\"flex items-center gap-2\">\r\n <span>{title}</span>\r\n {hasSelectedDate && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <span>{dateText}</span>\r\n </>\r\n )}\r\n </span>\r\n )\r\n }, [selectedDates, multiple, formatDateRange, title])\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\">\r\n {hasValue ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n onClick={onReset}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\r\n >\r\n <XCircle />\r\n </div>\r\n ) : (\r\n <CalendarBlank />\r\n )}\r\n {label}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n {multiple ? (\r\n <Calendar\r\n initialFocus\r\n mode=\"range\"\r\n selected={\r\n getIsDateRange(selectedDates)\r\n ? selectedDates\r\n : { from: undefined, to: undefined }\r\n }\r\n onSelect={onSelect}\r\n />\r\n ) : (\r\n <Calendar\r\n initialFocus\r\n mode=\"single\"\r\n selected={\r\n !getIsDateRange(selectedDates) ? selectedDates[0] : undefined\r\n }\r\n onSelect={onSelect}\r\n />\r\n )}\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["getIsDateRange","value","Array","parseAsDate","timestamp","date","Date","Number","undefined","parseColumnFilterValue","item","DataTableDateFilter","column","title","multiple","columnFilterValue","selectedDates","React","timestamps","onSelect","from","to","onReset","event","hasValue","formatDateRange","range","formatDate","label","hasSelectedDates","dateText","Separator","hasSelectedDate","Popover","PopoverTrigger","Button","XCircle","CalendarBlank","PopoverContent","Calendar"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-faceted-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-faceted-filter.tsx"],"sourcesContent":["\r\n\r\nimport type { Option } from '@/types/data-table'\r\nimport { CheckIcon, PlusCircleIcon, XCircleIcon } from '@phosphor-icons/react'\r\nimport type { Column } from '@tanstack/react-table'\r\n\r\nimport { Badge } from '@/components/badge'\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { cn } from '@/lib/utils'\r\nimport * as React from 'react'\r\n\r\ninterface DataTableFacetedFilterProps<TData, TValue> {\r\n column?: Column<TData, TValue>\r\n title?: string\r\n options: Option[]\r\n multiple?: boolean\r\n}\r\n\r\nexport function DataTableFacetedFilter<TData, TValue>({\r\n column,\r\n title,\r\n options,\r\n multiple,\r\n}: DataTableFacetedFilterProps<TData, TValue>) {\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const columnFilterValue = column?.getFilterValue()\r\n const selectedValues = new Set(\r\n Array.isArray(columnFilterValue) ? columnFilterValue : []\r\n )\r\n\r\n const onItemSelect = React.useCallback(\r\n (option: Option, isSelected: boolean) => {\r\n if (!column) return\r\n\r\n if (multiple) {\r\n const newSelectedValues = new Set(selectedValues)\r\n if (isSelected) {\r\n newSelectedValues.delete(option.value)\r\n } else {\r\n newSelectedValues.add(option.value)\r\n }\r\n const filterValues = Array.from(newSelectedValues)\r\n column.setFilterValue(filterValues.length ? filterValues : undefined)\r\n } else {\r\n column.setFilterValue(isSelected ? undefined : [option.value])\r\n setOpen(false)\r\n }\r\n },\r\n [column, multiple, selectedValues]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event?: React.MouseEvent) => {\r\n event?.stopPropagation()\r\n column?.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\">\r\n {selectedValues?.size > 0 ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n onClick={onReset}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\r\n >\r\n <XCircleIcon />\r\n </div>\r\n ) : (\r\n <PlusCircleIcon />\r\n )}\r\n {title}\r\n {selectedValues?.size > 0 && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"rounded-sm px-1 font-normal lg:hidden\"\r\n >\r\n {selectedValues.size}\r\n </Badge>\r\n <div className=\"hidden items-center gap-1 lg:flex\">\r\n {selectedValues.size > 2 ? (\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"rounded-sm px-1 font-normal\"\r\n >\r\n {selectedValues.size} selected\r\n </Badge>\r\n ) : (\r\n options\r\n .filter(option => selectedValues.has(option.value))\r\n .map(option => (\r\n <Badge\r\n variant=\"secondary\"\r\n key={option.value}\r\n className=\"rounded-sm px-1 font-normal\"\r\n >\r\n {option.label}\r\n </Badge>\r\n ))\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-[12.5rem] p-0\" align=\"start\">\r\n <Command>\r\n <CommandInput placeholder={title} />\r\n <CommandList className=\"max-h-full\">\r\n <CommandEmpty>No results found.</CommandEmpty>\r\n <CommandGroup className=\"max-h-[18.75rem] overflow-y-auto overflow-x-hidden\">\r\n {options.map(option => {\r\n const isSelected = selectedValues.has(option.value)\r\n\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => onItemSelect(option, isSelected)}\r\n >\r\n <div\r\n className={cn(\r\n 'flex size-4 items-center justify-center rounded-sm border border-primary',\r\n isSelected\r\n ? 'bg-primary'\r\n : 'opacity-50 [&_svg]:invisible'\r\n )}\r\n >\r\n <CheckIcon />\r\n </div>\r\n {option.icon && <option.icon />}\r\n <span className=\"truncate\">{option.label}</span>\r\n {option.count && (\r\n <span className=\"ml-auto font-mono text-xs\">\r\n {option.count}\r\n </span>\r\n )}\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n {selectedValues.size > 0 && (\r\n <>\r\n <CommandSeparator />\r\n <CommandGroup>\r\n <CommandItem\r\n onSelect={() => onReset()}\r\n className=\"justify-center text-center\"\r\n >\r\n Limpar filtros\r\n </CommandItem>\r\n </CommandGroup>\r\n </>\r\n )}\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["DataTableFacetedFilter","column","title","options","multiple","open","setOpen","React","columnFilterValue","selectedValues","Set","Array","onItemSelect","option","isSelected","newSelectedValues","filterValues","undefined","onReset","event","Popover","PopoverTrigger","Button","XCircleIcon","PlusCircleIcon","Separator","Badge","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","cn","CheckIcon","CommandSeparator"],"mappings":";6kBA6BO,SAASA,EAAsC,CACpDC,OAAAA,CAAM,CACNC,MAAAA,CAAK,CACLC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACmC,EAC3C,GAAM,CAACC,EAAMC,EAAQ,CAAGC,EAAe,IAEjCC,EAAoBP,GAAQ,iBAC5BQ,EAAiB,IAAIC,IACzBC,MAAM,OAAO,CAACH,GAAqBA,EAAoB,EAAE,EAGrDI,EAAeL,EACnB,CAACM,EAAgBC,KACf,GAAKb,EAEL,GAAIG,EAAU,CACZ,IAAMW,EAAoB,IAAIL,IAAID,GAC9BK,EACFC,EAAkB,MAAM,CAACF,EAAO,KAAK,EAErCE,EAAkB,GAAG,CAACF,EAAO,KAAK,EAEpC,IAAMG,EAAeL,MAAM,IAAI,CAACI,GAChCd,EAAO,cAAc,CAACe,EAAa,MAAM,CAAGA,EAAeC,OAC7D,MACEhB,EAAO,cAAc,CAACa,EAAaG,OAAY,CAACJ,EAAO,KAAK,CAAC,EAC7DP,EAAQ,GAEZ,EACA,CAACL,EAAQG,EAAUK,EAAe,EAG9BS,EAAUX,EACd,IACEY,GAAO,kBACPlB,GAAQ,eAAegB,OACzB,EACA,CAAChB,EAAO,EAGV,OACE,EAACmB,EAAOA,CAAC,KAAMf,EAAM,aAAcC,E,UACjC,EAACe,EAAcA,CAAC,QAAO,G,SACrB,EAACC,EAAMA,CAAC,QAAQ,UAAU,KAAK,K,UAC5Bb,GAAgB,KAAO,EACtB,EAAC,OACC,KAAK,SACL,aAAY,CAAC,MAAM,EAAEP,EAAM,OAAO,CAAC,CACnC,SAAU,EACV,QAASgB,EACT,UAAU,qI,SAEV,EAACK,EAAWA,CAAAA,E,GAGd,EAACC,EAAcA,CAAAA,GAEhBtB,EACAO,GAAgB,KAAO,GACtB,K,UACE,EAACgB,EAASA,CACR,YAAY,WACZ,UAAU,wC,GAEZ,EAACC,EAAKA,CACJ,QAAQ,YACR,UAAU,wC,SAETjB,EAAe,IAAI,GAEtB,EAAC,OAAI,UAAU,oC,SACZA,EAAe,IAAI,CAAG,EACrB,EAACiB,EAAKA,CACJ,QAAQ,YACR,UAAU,8B,UAETjB,EAAe,IAAI,CAAC,Y,GAGvBN,EACG,MAAM,CAACU,GAAUJ,EAAe,GAAG,CAACI,EAAO,KAAK,GAChD,GAAG,CAACA,GACH,EAACa,EAAKA,CACJ,QAAQ,YAER,UAAU,8B,SAETb,EAAO,KAAK,EAHRA,EAAO,KAAK,E,WAYnC,EAACc,EAAcA,CAAC,UAAU,kBAAkB,MAAM,Q,SAChD,EAACC,EAAOA,C,UACN,EAACC,EAAYA,CAAC,YAAa3B,C,GAC3B,EAAC4B,EAAWA,CAAC,UAAU,a,UACrB,EAACC,EAAYA,C,SAAC,mB,GACd,EAACC,EAAYA,CAAC,UAAU,qD,SACrB7B,EAAQ,GAAG,CAACU,IACX,IAAMC,EAAaL,EAAe,GAAG,CAACI,EAAO,KAAK,EAElD,OACE,EAACoB,EAAWA,CAEV,SAAU,IAAMrB,EAAaC,EAAQC,G,UAErC,EAAC,OACC,UAAWoB,EACT,2EACApB,EACI,aACA,gC,SAGN,EAACqB,EAASA,CAAAA,E,GAEXtB,EAAO,IAAI,EAAI,EAACA,EAAO,IAAI,KAC5B,EAAC,QAAK,UAAU,W,SAAYA,EAAO,KAAK,GACvCA,EAAO,KAAK,EACX,EAAC,QAAK,UAAU,4B,SACbA,EAAO,KAAK,KAjBZA,EAAO,KAAK,CAsBvB,E,GAEDJ,EAAe,IAAI,CAAG,GACrB,K,UACE,EAAC2B,EAAgBA,CAAAA,GACjB,EAACJ,EAAYA,C,SACX,EAACC,EAAWA,CACV,SAAU,IAAMf,IAChB,UAAU,6B,SACX,gB,kBAWnB,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-filter-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-filter-list.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n CalendarBlankIcon,\r\n CaretUpDownIcon,\r\n CheckIcon,\r\n DotsSixVerticalIcon,\r\n FunnelSimpleIcon,\r\n TrashIcon,\r\n} from '@phosphor-icons/react'\r\nimport type { Column, ColumnMeta, Table } from '@tanstack/react-table'\r\nimport { parseAsStringEnum, useQueryState } from 'nuqs'\r\nimport * as React from 'react'\r\n\r\nimport { Badge } from '@/components/badge'\r\nimport { Button } from '@/components/button'\r\nimport { Calendar } from '@/components/calendar'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { DataTableRangeFilter } from '@/components/data-table/data-table-range-filter'\r\nimport {\r\n Faceted,\r\n FacetedBadgeList,\r\n FacetedContent,\r\n FacetedEmpty,\r\n FacetedGroup,\r\n FacetedInput,\r\n FacetedItem,\r\n FacetedList,\r\n FacetedTrigger,\r\n} from '@/components/faceted'\r\nimport { Input } from '@/components/input'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/select'\r\nimport {\r\n Sortable,\r\n SortableContent,\r\n SortableItem,\r\n SortableItemHandle,\r\n SortableOverlay,\r\n} from '@/components/sortable'\r\nimport { useDebouncedCallback } from '@/hooks/use-debounced-callback'\r\nimport { getDefaultFilterOperator, getFilterOperators } from '@/lib/data-table'\r\nimport { dataTableConfig } from '@/lib/data-table-config'\r\nimport { formatDate } from '@/lib/format'\r\nimport { generateId } from '@/lib/id'\r\nimport { getFiltersStateParser } from '@/lib/parsers'\r\nimport { cn } from '@/lib/utils'\r\nimport type {\r\n ExtendedColumnFilter,\r\n FilterOperator,\r\n JoinOperator,\r\n} from '@/types/data-table'\r\n\r\nconst FILTERS_KEY = 'filters'\r\nconst JOIN_OPERATOR_KEY = 'joinOperator'\r\nconst DEBOUNCE_MS = 300\r\nconst THROTTLE_MS = 50\r\nconst OPEN_MENU_SHORTCUT = 'f'\r\nconst REMOVE_FILTER_SHORTCUTS = ['backspace', 'delete']\r\n\r\ninterface DataTableFilterListProps<TData>\r\n extends React.ComponentProps<typeof PopoverContent> {\r\n table: Table<TData>\r\n debounceMs?: number\r\n throttleMs?: number\r\n shallow?: boolean\r\n}\r\n\r\nexport function DataTableFilterList<TData>({\r\n table,\r\n debounceMs = DEBOUNCE_MS,\r\n throttleMs = THROTTLE_MS,\r\n shallow = true,\r\n ...props\r\n}: DataTableFilterListProps<TData>) {\r\n const id = React.useId()\r\n const labelId = React.useId()\r\n const descriptionId = React.useId()\r\n const [open, setOpen] = React.useState(false)\r\n const addButtonRef = React.useRef<HTMLButtonElement>(null)\r\n\r\n const columns = React.useMemo(() => {\r\n return table\r\n .getAllColumns()\r\n .filter(column => column.columnDef.enableColumnFilter)\r\n }, [table])\r\n\r\n const [filters, setFilters] = useQueryState(\r\n FILTERS_KEY,\r\n getFiltersStateParser<TData>(columns.map(field => field.id))\r\n .withDefault([])\r\n .withOptions({\r\n clearOnDefault: true,\r\n shallow,\r\n throttleMs,\r\n })\r\n )\r\n const debouncedSetFilters = useDebouncedCallback(setFilters, debounceMs)\r\n\r\n const [joinOperator, setJoinOperator] = useQueryState(\r\n JOIN_OPERATOR_KEY,\r\n parseAsStringEnum(['e', 'ou']).withDefault('e').withOptions({\r\n clearOnDefault: true,\r\n shallow,\r\n })\r\n )\r\n\r\n const onFilterAdd = React.useCallback(() => {\r\n const column = columns[0]\r\n\r\n if (!column) return\r\n\r\n debouncedSetFilters([\r\n ...filters,\r\n {\r\n id: column.id as Extract<keyof TData, string>,\r\n value: '',\r\n variant: column.columnDef.meta?.variant ?? 'text',\r\n operator: getDefaultFilterOperator(\r\n column.columnDef.meta?.variant ?? 'text'\r\n ),\r\n filterId: generateId({ length: 8 }),\r\n },\r\n ])\r\n }, [columns, filters, debouncedSetFilters])\r\n\r\n const onFilterUpdate = React.useCallback(\r\n (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => {\r\n debouncedSetFilters(prevFilters => {\r\n const updatedFilters = prevFilters.map(filter => {\r\n if (filter.filterId === filterId) {\r\n return { ...filter, ...updates } as ExtendedColumnFilter<TData>\r\n }\r\n return filter\r\n })\r\n return updatedFilters\r\n })\r\n },\r\n [debouncedSetFilters]\r\n )\r\n\r\n const onFilterRemove = React.useCallback(\r\n (filterId: string) => {\r\n const updatedFilters = filters.filter(\r\n filter => filter.filterId !== filterId\r\n )\r\n void setFilters(updatedFilters)\r\n requestAnimationFrame(() => {\r\n addButtonRef.current?.focus()\r\n })\r\n },\r\n [filters, setFilters]\r\n )\r\n\r\n const onFiltersReset = React.useCallback(() => {\r\n void setFilters(null)\r\n void setJoinOperator('e')\r\n }, [setFilters, setJoinOperator])\r\n\r\n React.useEffect(() => {\r\n function onKeyDown(event: KeyboardEvent) {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n !event.ctrlKey &&\r\n !event.metaKey &&\r\n !event.shiftKey\r\n ) {\r\n event.preventDefault()\r\n setOpen(true)\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n event.shiftKey &&\r\n filters.length > 0\r\n ) {\r\n event.preventDefault()\r\n onFilterRemove(filters[filters.length - 1]?.filterId ?? '')\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [filters, onFilterRemove])\r\n\r\n const onTriggerKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (\r\n REMOVE_FILTER_SHORTCUTS.includes(event.key.toLowerCase()) &&\r\n filters.length > 0\r\n ) {\r\n event.preventDefault()\r\n onFilterRemove(filters[filters.length - 1]?.filterId ?? '')\r\n }\r\n },\r\n [filters, onFilterRemove]\r\n )\r\n\r\n return (\r\n <Sortable\r\n value={filters}\r\n onValueChange={setFilters}\r\n getItemValue={item => item.filterId}\r\n >\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\" onKeyDown={onTriggerKeyDown}>\r\n <FunnelSimpleIcon weight=\"bold\" />\r\n Filtro\r\n {filters.length > 0 && (\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"h-[18.24px] rounded-[3.2px] px-[5.12px] font-mono font-normal text-[10.4px]\"\r\n >\r\n {filters.length}\r\n </Badge>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n aria-describedby={descriptionId}\r\n aria-labelledby={labelId}\r\n className=\"flex w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] flex-col gap-3.5 p-4 sm:min-w-[380px]\"\r\n {...props}\r\n >\r\n <div className=\"flex flex-col gap-1\">\r\n <h4 id={labelId} className=\"font-medium leading-none\">\r\n {filters.length > 0 ? 'Filtros' : 'Nenhum filtro aplicado'}\r\n </h4>\r\n <p\r\n id={descriptionId}\r\n className={cn(\r\n 'text-gray-400 text-sm',\r\n filters.length > 0 && 'sr-only'\r\n )}\r\n >\r\n {filters.length > 0\r\n ? 'Modifique os filtros para filtrar suas linhas.'\r\n : 'Adicione filtros para filtrar suas linhas.'}\r\n </p>\r\n </div>\r\n {filters.length > 0 ? (\r\n <SortableContent asChild>\r\n <div\r\n role=\"list\"\r\n className=\"flex max-h-[300px] flex-col gap-2 overflow-y-auto p-1\"\r\n >\r\n {filters.map((filter, index) => (\r\n <DataTableFilterItem<TData>\r\n key={filter.filterId}\r\n filter={filter}\r\n index={index}\r\n filterItemId={`${id}-filter-${filter.filterId}`}\r\n joinOperator={joinOperator}\r\n setJoinOperator={setJoinOperator}\r\n columns={columns}\r\n onFilterUpdate={onFilterUpdate}\r\n onFilterRemove={onFilterRemove}\r\n />\r\n ))}\r\n </div>\r\n </SortableContent>\r\n ) : null}\r\n <div className=\"flex w-full items-center gap-2\">\r\n <Button\r\n size=\"sm\"\r\n className=\"rounded\"\r\n ref={addButtonRef}\r\n onClick={onFilterAdd}\r\n >\r\n Adicionar filtro\r\n </Button>\r\n {filters.length > 0 ? (\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"rounded\"\r\n onClick={onFiltersReset}\r\n >\r\n Resetar filtros\r\n </Button>\r\n ) : null}\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n <SortableOverlay>\r\n <div className=\"flex items-center gap-2\">\r\n <div className=\"h-10 min-w-[72px] rounded-sm bg-primary/10\" />\r\n <div className=\"h-10 w-32 rounded-sm bg-primary/10\" />\r\n <div className=\"h-10 w-32 rounded-sm bg-primary/10\" />\r\n <div className=\"h-10 min-w-36 flex-1 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n </div>\r\n </SortableOverlay>\r\n </Sortable>\r\n )\r\n}\r\n\r\ninterface DataTableFilterItemProps<TData> {\r\n filter: ExtendedColumnFilter<TData>\r\n index: number\r\n filterItemId: string\r\n joinOperator: JoinOperator\r\n setJoinOperator: (value: JoinOperator) => void\r\n columns: Column<TData>[]\r\n onFilterUpdate: (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => void\r\n onFilterRemove: (filterId: string) => void\r\n}\r\n\r\nfunction DataTableFilterItem<TData>({\r\n filter,\r\n index,\r\n filterItemId,\r\n joinOperator,\r\n setJoinOperator,\r\n columns,\r\n onFilterUpdate,\r\n onFilterRemove,\r\n}: DataTableFilterItemProps<TData>) {\r\n const [showFieldSelector, setShowFieldSelector] = React.useState(false)\r\n const [showOperatorSelector, setShowOperatorSelector] = React.useState(false)\r\n const [showValueSelector, setShowValueSelector] = React.useState(false)\r\n\r\n const column = columns.find(column => column.id === filter.id)\r\n if (!column) return null\r\n\r\n const joinOperatorListboxId = `${filterItemId}-join-operator-listbox`\r\n const fieldListboxId = `${filterItemId}-field-listbox`\r\n const operatorListboxId = `${filterItemId}-operator-listbox`\r\n const inputId = `${filterItemId}-input`\r\n\r\n const columnMeta = column.columnDef.meta\r\n const filterOperators = getFilterOperators(filter.variant)\r\n\r\n const onItemKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (showFieldSelector || showOperatorSelector || showValueSelector) {\r\n return\r\n }\r\n\r\n if (REMOVE_FILTER_SHORTCUTS.includes(event.key.toLowerCase())) {\r\n event.preventDefault()\r\n onFilterRemove(filter.filterId)\r\n }\r\n },\r\n [\r\n filter.filterId,\r\n showFieldSelector,\r\n showOperatorSelector,\r\n showValueSelector,\r\n onFilterRemove,\r\n ]\r\n )\r\n\r\n return (\r\n <SortableItem value={filter.filterId} asChild>\r\n <div\r\n role=\"listitem\"\r\n id={filterItemId}\r\n tabIndex={-1}\r\n className=\"flex items-center gap-2\"\r\n onKeyDown={onItemKeyDown}\r\n >\r\n <div className=\"min-w-[72px] text-center\">\r\n {index === 0 ? (\r\n <span className=\"text-gray-400 text-sm\">Onde</span>\r\n ) : index === 1 ? (\r\n <Select\r\n value={joinOperator}\r\n onValueChange={(value: JoinOperator) => setJoinOperator(value)}\r\n >\r\n <SelectTrigger\r\n aria-label=\"Select join operator\"\r\n aria-controls={joinOperatorListboxId}\r\n className=\"h-10 rounded lowercase [&[data-size]]:h-10\"\r\n >\r\n <SelectValue placeholder={joinOperator} />\r\n </SelectTrigger>\r\n <SelectContent\r\n id={joinOperatorListboxId}\r\n position=\"popper\"\r\n className=\"min-w-(--radix-select-trigger-width) lowercase\"\r\n >\r\n {dataTableConfig.joinOperators.map(joinOperator => (\r\n <SelectItem key={joinOperator} value={joinOperator}>\r\n {joinOperator}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n ) : (\r\n <span className=\"text-gray-400 text-sm\">{joinOperator}</span>\r\n )}\r\n </div>\r\n <Popover open={showFieldSelector} onOpenChange={setShowFieldSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n role=\"combobox\"\r\n aria-controls={fieldListboxId}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"w-32 justify-between rounded font-normal\"\r\n >\r\n <span className=\"truncate\">\r\n {columns.find(column => column.id === filter.id)?.columnDef.meta\r\n ?.label ?? 'Selecione o campo'}\r\n </span>\r\n <CaretUpDownIcon className=\"opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={fieldListboxId}\r\n align=\"start\"\r\n className=\"w-40 origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n <Command>\r\n <CommandInput placeholder=\"Buscar campo...\" />\r\n <CommandList>\r\n <CommandEmpty>Nenhum campo encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n value={column.id}\r\n onSelect={value => {\r\n onFilterUpdate(filter.filterId, {\r\n id: value as Extract<keyof TData, string>,\r\n variant: column.columnDef.meta?.variant ?? 'text',\r\n operator: getDefaultFilterOperator(\r\n column.columnDef.meta?.variant ?? 'text'\r\n ),\r\n value: '',\r\n })\r\n\r\n setShowFieldSelector(false)\r\n }}\r\n >\r\n <span className=\"truncate\">\r\n {column.columnDef.meta?.label}\r\n </span>\r\n <CheckIcon\r\n className={cn(\r\n 'ml-auto',\r\n column.id === filter.id ? 'opacity-100' : 'opacity-0'\r\n )}\r\n />\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n <Select\r\n open={showOperatorSelector}\r\n onOpenChange={setShowOperatorSelector}\r\n value={filter.operator}\r\n onValueChange={(value: FilterOperator) =>\r\n onFilterUpdate(filter.filterId, {\r\n operator: value,\r\n value:\r\n value === 'isEmpty' || value === 'isNotEmpty'\r\n ? ''\r\n : filter.value,\r\n })\r\n }\r\n >\r\n <SelectTrigger\r\n aria-controls={operatorListboxId}\r\n className=\"h-10 w-32 rounded lowercase [&[data-size]]:h-10\"\r\n >\r\n <div className=\"truncate\">\r\n <SelectValue placeholder={filter.operator} />\r\n </div>\r\n </SelectTrigger>\r\n <SelectContent\r\n id={operatorListboxId}\r\n className=\"origin-[var(--radix-select-content-transform-origin)]\"\r\n >\r\n {filterOperators.map(operator => (\r\n <SelectItem\r\n key={operator.value}\r\n value={operator.value}\r\n className=\"lowercase\"\r\n >\r\n {operator.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n <div className=\"min-w-36 flex-1\">\r\n {onFilterInputRender({\r\n filter,\r\n inputId,\r\n column,\r\n columnMeta,\r\n onFilterUpdate,\r\n showValueSelector,\r\n setShowValueSelector,\r\n })}\r\n </div>\r\n <Button\r\n aria-controls={filterItemId}\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-8 rounded\"\r\n onClick={() => onFilterRemove(filter.filterId)}\r\n >\r\n <TrashIcon weight=\"bold\" />\r\n </Button>\r\n <SortableItemHandle asChild>\r\n <Button variant=\"outline\" size=\"icon\" className=\"size-8 rounded\">\r\n <DotsSixVerticalIcon weight=\"bold\" />\r\n </Button>\r\n </SortableItemHandle>\r\n </div>\r\n </SortableItem>\r\n )\r\n}\r\n\r\nfunction onFilterInputRender<TData>({\r\n filter,\r\n inputId,\r\n column,\r\n columnMeta,\r\n onFilterUpdate,\r\n showValueSelector,\r\n setShowValueSelector,\r\n}: {\r\n filter: ExtendedColumnFilter<TData>\r\n inputId: string\r\n column: Column<TData>\r\n columnMeta?: ColumnMeta<TData, unknown>\r\n onFilterUpdate: (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => void\r\n showValueSelector: boolean\r\n setShowValueSelector: (value: boolean) => void\r\n}) {\r\n if (filter.operator === 'isEmpty' || filter.operator === 'isNotEmpty') {\r\n return (\r\n <div\r\n id={inputId}\r\n role=\"status\"\r\n aria-label={`${columnMeta?.label} filter is ${\r\n filter.operator === 'isEmpty' ? 'empty' : 'not empty'\r\n }`}\r\n aria-live=\"polite\"\r\n className=\"h-10 w-full rounded border bg-transparent dark:bg-input/30\"\r\n />\r\n )\r\n }\r\n\r\n switch (filter.variant) {\r\n case 'text':\r\n case 'number':\r\n case 'range': {\r\n if (\r\n (filter.variant === 'range' && filter.operator === 'isBetween') ||\r\n filter.operator === 'isBetween'\r\n ) {\r\n return (\r\n <DataTableRangeFilter\r\n filter={filter}\r\n column={column}\r\n inputId={inputId}\r\n onFilterUpdate={onFilterUpdate}\r\n />\r\n )\r\n }\r\n\r\n const isNumber = filter.variant === 'number' || filter.variant === 'range'\r\n\r\n return (\r\n <Input\r\n id={inputId}\r\n type={isNumber ? 'number' : filter.variant}\r\n aria-label={`${columnMeta?.label} filter value`}\r\n aria-describedby={`${inputId}-description`}\r\n inputMode={isNumber ? 'numeric' : undefined}\r\n placeholder={columnMeta?.placeholder ?? 'Enter a value...'}\r\n className=\"h-10 w-full rounded\"\r\n defaultValue={\r\n typeof filter.value === 'string' ? filter.value : undefined\r\n }\r\n onChange={event =>\r\n onFilterUpdate(filter.filterId, {\r\n value: event.target.value,\r\n })\r\n }\r\n />\r\n )\r\n }\r\n\r\n case 'boolean': {\r\n if (Array.isArray(filter.value)) return null\r\n\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n return (\r\n <Select\r\n open={showValueSelector}\r\n onOpenChange={setShowValueSelector}\r\n value={filter.value}\r\n onValueChange={value =>\r\n onFilterUpdate(filter.filterId, {\r\n value,\r\n })\r\n }\r\n >\r\n <SelectTrigger\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n aria-label={`${columnMeta?.label} boolean filter`}\r\n className=\"h-10 w-full rounded [&[data-size]]:h-10\"\r\n >\r\n <SelectValue placeholder={filter.value ? 'True' : 'False'} />\r\n </SelectTrigger>\r\n <SelectContent id={inputListboxId}>\r\n <SelectItem value=\"true\">True</SelectItem>\r\n <SelectItem value=\"false\">False</SelectItem>\r\n </SelectContent>\r\n </Select>\r\n )\r\n }\r\n\r\n case 'select':\r\n case 'multiSelect': {\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n const multiple = filter.variant === 'multiSelect'\r\n const selectedValues = multiple\r\n ? Array.isArray(filter.value)\r\n ? filter.value\r\n : []\r\n : typeof filter.value === 'string'\r\n ? filter.value\r\n : undefined\r\n\r\n return (\r\n <Faceted\r\n open={showValueSelector}\r\n onOpenChange={setShowValueSelector}\r\n value={selectedValues}\r\n onValueChange={value => {\r\n onFilterUpdate(filter.filterId, {\r\n value,\r\n })\r\n }}\r\n multiple={multiple}\r\n >\r\n <FacetedTrigger asChild>\r\n <Button\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n aria-label={`${columnMeta?.label} filter value${multiple ? 's' : ''}`}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"w-full rounded font-normal\"\r\n >\r\n <FacetedBadgeList\r\n options={columnMeta?.options}\r\n placeholder={\r\n columnMeta?.placeholder ??\r\n `Select option${multiple ? 's' : ''}...`\r\n }\r\n />\r\n </Button>\r\n </FacetedTrigger>\r\n <FacetedContent\r\n id={inputListboxId}\r\n className=\"w-[200px] origin-[var(--radix-popover-content-transform-origin)]\"\r\n >\r\n <FacetedInput\r\n aria-label={`Search ${columnMeta?.label} options`}\r\n placeholder={columnMeta?.placeholder ?? 'Search options...'}\r\n />\r\n <FacetedList>\r\n <FacetedEmpty>Nenhum resultado</FacetedEmpty>\r\n <FacetedGroup>\r\n {columnMeta?.options?.map(option => (\r\n <FacetedItem key={option.value} value={option.value}>\r\n {option.icon && <option.icon />}\r\n <span>{option.label}</span>\r\n {option.count && (\r\n <span className=\"ml-auto font-mono text-xs\">\r\n {option.count}\r\n </span>\r\n )}\r\n </FacetedItem>\r\n ))}\r\n </FacetedGroup>\r\n </FacetedList>\r\n </FacetedContent>\r\n </Faceted>\r\n )\r\n }\r\n\r\n case 'date':\r\n case 'dateRange': {\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n const dateValue = Array.isArray(filter.value)\r\n ? filter.value.filter(Boolean)\r\n : [filter.value, filter.value].filter(Boolean)\r\n\r\n const displayValue =\r\n filter.operator === 'isBetween' && dateValue.length === 2\r\n ? `${formatDate(new Date(Number(dateValue[0])))} - ${formatDate(\r\n new Date(Number(dateValue[1]))\r\n )}`\r\n : dateValue[0]\r\n ? formatDate(new Date(Number(dateValue[0])))\r\n : 'Escolha uma data'\r\n\r\n return (\r\n <Popover open={showValueSelector} onOpenChange={setShowValueSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n aria-label={`${columnMeta?.label} date filter`}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className={cn(\r\n 'w-full justify-start rounded text-left font-normal',\r\n !filter.value && 'text-gray-400'\r\n )}\r\n >\r\n <CalendarBlankIcon weight=\"bold\" />\r\n <span className=\"truncate text-sm\">{displayValue}</span>\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={inputListboxId}\r\n align=\"start\"\r\n className=\"w-auto origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n {filter.operator === 'isBetween' ? (\r\n <Calendar\r\n aria-label={`Select ${columnMeta?.label} date range`}\r\n mode=\"range\"\r\n selected={\r\n dateValue.length === 2\r\n ? {\r\n from: new Date(Number(dateValue[0])),\r\n to: new Date(Number(dateValue[1])),\r\n }\r\n : {\r\n from: new Date(),\r\n to: new Date(),\r\n }\r\n }\r\n onSelect={date => {\r\n onFilterUpdate(filter.filterId, {\r\n value: date\r\n ? [\r\n (date.from?.getTime() ?? '').toString(),\r\n (date.to?.getTime() ?? '').toString(),\r\n ]\r\n : [],\r\n })\r\n }}\r\n />\r\n ) : (\r\n <Calendar\r\n aria-label={`Select ${columnMeta?.label} date`}\r\n mode=\"single\"\r\n selected={\r\n dateValue[0] ? new Date(Number(dateValue[0])) : undefined\r\n }\r\n onSelect={date => {\r\n onFilterUpdate(filter.filterId, {\r\n value: (date?.getTime() ?? '').toString(),\r\n })\r\n }}\r\n />\r\n )}\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n"],"names":["REMOVE_FILTER_SHORTCUTS","DataTableFilterList","table","debounceMs","throttleMs","shallow","props","id","React","labelId","descriptionId","open","setOpen","addButtonRef","columns","column","filters","setFilters","useQueryState","getFiltersStateParser","field","debouncedSetFilters","useDebouncedCallback","joinOperator","setJoinOperator","parseAsStringEnum","onFilterAdd","getDefaultFilterOperator","generateId","onFilterUpdate","filterId","updates","prevFilters","filter","onFilterRemove","requestAnimationFrame","onFiltersReset","onKeyDown","event","HTMLInputElement","HTMLTextAreaElement","window","onTriggerKeyDown","Sortable","item","Popover","PopoverTrigger","Button","FunnelSimpleIcon","Badge","PopoverContent","cn","SortableContent","index","DataTableFilterItem","SortableOverlay","filterItemId","showFieldSelector","setShowFieldSelector","showOperatorSelector","setShowOperatorSelector","showValueSelector","setShowValueSelector","joinOperatorListboxId","fieldListboxId","operatorListboxId","inputId","columnMeta","filterOperators","getFilterOperators","onItemKeyDown","SortableItem","Select","value","SelectTrigger","SelectValue","SelectContent","dataTableConfig","SelectItem","CaretUpDownIcon","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","CheckIcon","operator","onFilterInputRender","DataTableRangeFilter","isNumber","Input","undefined","Array","inputListboxId","multiple","Faceted","FacetedTrigger","FacetedBadgeList","FacetedContent","FacetedInput","FacetedList","FacetedEmpty","FacetedGroup","option","FacetedItem","dateValue","Boolean","displayValue","formatDate","Date","Number","CalendarBlankIcon","Calendar","date","TrashIcon","SortableItemHandle","DotsSixVerticalIcon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-filter-menu.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-filter-menu.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n Calendar as CalendarIcon,\r\n Check,\r\n FunnelSimple,\r\n SealCheck,\r\n TextAlignLeft,\r\n X,\r\n} from '@phosphor-icons/react'\r\nimport type { Column, Table } from '@tanstack/react-table'\r\nimport { useQueryState } from 'nuqs'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Calendar } from '@/components/calendar'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { DataTableRangeFilter } from '@/components/data-table/data-table-range-filter'\r\nimport { Input } from '@/components/input'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/select'\r\nimport { useDebouncedCallback } from '@/hooks/use-debounced-callback'\r\nimport { getDefaultFilterOperator, getFilterOperators } from '@/lib/data-table'\r\nimport { formatDate } from '@/lib/format'\r\nimport { generateId } from '@/lib/id'\r\nimport { getFiltersStateParser } from '@/lib/parsers'\r\nimport { cn } from '@/lib/utils'\r\nimport type { ExtendedColumnFilter, FilterOperator } from '@/types/data-table'\r\n\r\nconst FILTERS_KEY = 'filters'\r\nconst DEBOUNCE_MS = 300\r\nconst THROTTLE_MS = 50\r\nconst OPEN_MENU_SHORTCUT = 'f'\r\nconst REMOVE_FILTER_SHORTCUTS = ['backspace', 'delete']\r\n\r\ninterface DataTableFilterMenuProps<TData>\r\n extends React.ComponentProps<typeof PopoverContent> {\r\n table: Table<TData>\r\n debounceMs?: number\r\n throttleMs?: number\r\n shallow?: boolean\r\n}\r\n\r\nexport function DataTableFilterMenu<TData>({\r\n table,\r\n debounceMs = DEBOUNCE_MS,\r\n throttleMs = THROTTLE_MS,\r\n shallow = true,\r\n align = 'start',\r\n ...props\r\n}: DataTableFilterMenuProps<TData>) {\r\n const id = React.useId()\r\n\r\n const columns = React.useMemo(() => {\r\n return table\r\n .getAllColumns()\r\n .filter(column => column.columnDef.enableColumnFilter)\r\n }, [table])\r\n\r\n const [open, setOpen] = React.useState(false)\r\n const [selectedColumn, setSelectedColumn] =\r\n React.useState<Column<TData> | null>(null)\r\n const [inputValue, setInputValue] = React.useState('')\r\n const triggerRef = React.useRef<HTMLButtonElement>(null)\r\n const inputRef = React.useRef<HTMLInputElement>(null)\r\n\r\n const onOpenChange = React.useCallback((open: boolean) => {\r\n setOpen(open)\r\n\r\n if (!open) {\r\n setTimeout(() => {\r\n setSelectedColumn(null)\r\n setInputValue('')\r\n }, 100)\r\n }\r\n }, [])\r\n\r\n const onInputKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (\r\n REMOVE_FILTER_SHORTCUTS.includes(event.key.toLowerCase()) &&\r\n !inputValue &&\r\n selectedColumn\r\n ) {\r\n event.preventDefault()\r\n setSelectedColumn(null)\r\n }\r\n },\r\n [inputValue, selectedColumn]\r\n )\r\n\r\n const [filters, setFilters] = useQueryState(\r\n FILTERS_KEY,\r\n getFiltersStateParser<TData>(columns.map(field => field.id))\r\n .withDefault([])\r\n .withOptions({\r\n clearOnDefault: true,\r\n shallow,\r\n throttleMs,\r\n })\r\n )\r\n const debouncedSetFilters = useDebouncedCallback(setFilters, debounceMs)\r\n\r\n const onFilterAdd = React.useCallback(\r\n (column: Column<TData>, value: string) => {\r\n if (!value.trim() && column.columnDef.meta?.variant !== 'boolean') {\r\n return\r\n }\r\n\r\n const filterValue =\r\n column.columnDef.meta?.variant === 'multiSelect' ? [value] : value\r\n\r\n const newFilter: ExtendedColumnFilter<TData> = {\r\n id: column.id as Extract<keyof TData, string>,\r\n value: filterValue,\r\n variant: column.columnDef.meta?.variant ?? 'text',\r\n operator: getDefaultFilterOperator(\r\n column.columnDef.meta?.variant ?? 'text'\r\n ),\r\n filterId: generateId({ length: 8 }),\r\n }\r\n\r\n debouncedSetFilters([...filters, newFilter])\r\n setOpen(false)\r\n\r\n setTimeout(() => {\r\n setSelectedColumn(null)\r\n setInputValue('')\r\n }, 100)\r\n },\r\n [filters, debouncedSetFilters]\r\n )\r\n\r\n const onFilterRemove = React.useCallback(\r\n (filterId: string) => {\r\n const updatedFilters = filters.filter(\r\n filter => filter.filterId !== filterId\r\n )\r\n debouncedSetFilters(updatedFilters)\r\n requestAnimationFrame(() => {\r\n triggerRef.current?.focus()\r\n })\r\n },\r\n [filters, debouncedSetFilters]\r\n )\r\n\r\n const onFilterUpdate = React.useCallback(\r\n (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => {\r\n debouncedSetFilters(prevFilters => {\r\n const updatedFilters = prevFilters.map(filter => {\r\n if (filter.filterId === filterId) {\r\n return { ...filter, ...updates } as ExtendedColumnFilter<TData>\r\n }\r\n return filter\r\n })\r\n return updatedFilters\r\n })\r\n },\r\n [debouncedSetFilters]\r\n )\r\n\r\n const onFiltersReset = React.useCallback(() => {\r\n debouncedSetFilters([])\r\n }, [debouncedSetFilters])\r\n\r\n React.useEffect(() => {\r\n function onKeyDown(event: KeyboardEvent) {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n !event.ctrlKey &&\r\n !event.metaKey &&\r\n !event.shiftKey\r\n ) {\r\n event.preventDefault()\r\n setOpen(true)\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n event.shiftKey &&\r\n !open &&\r\n filters.length > 0\r\n ) {\r\n event.preventDefault()\r\n onFilterRemove(filters[filters.length - 1]?.filterId ?? '')\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [open, filters, onFilterRemove])\r\n\r\n const onTriggerKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (\r\n REMOVE_FILTER_SHORTCUTS.includes(event.key.toLowerCase()) &&\r\n filters.length > 0\r\n ) {\r\n event.preventDefault()\r\n onFilterRemove(filters[filters.length - 1]?.filterId ?? '')\r\n }\r\n },\r\n [filters, onFilterRemove]\r\n )\r\n\r\n return (\r\n <div className=\"flex flex-wrap items-center gap-2\">\r\n {filters.map(filter => (\r\n <DataTableFilterItem\r\n key={filter.filterId}\r\n filter={filter}\r\n filterItemId={`${id}-filter-${filter.filterId}`}\r\n columns={columns}\r\n onFilterUpdate={onFilterUpdate}\r\n onFilterRemove={onFilterRemove}\r\n />\r\n ))}\r\n {filters.length > 0 && (\r\n <Button\r\n aria-label=\"Reset all filters\"\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-8\"\r\n onClick={onFiltersReset}\r\n >\r\n <X />\r\n </Button>\r\n )}\r\n <Popover open={open} onOpenChange={onOpenChange}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n aria-label=\"Open filter command menu\"\r\n variant=\"outline\"\r\n size={filters.length > 0 ? 'icon' : 'sm'}\r\n className={cn(filters.length > 0 && 'size-8', 'h-10')}\r\n ref={triggerRef}\r\n onKeyDown={onTriggerKeyDown}\r\n >\r\n <FunnelSimple />\r\n {filters.length > 0 ? null : 'Filter'}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n align={align}\r\n className=\"w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n {...props}\r\n >\r\n <Command loop className=\"[&_[cmdk-input-wrapper]_svg]:hidden\">\r\n <CommandInput\r\n ref={inputRef}\r\n placeholder={\r\n selectedColumn\r\n ? (selectedColumn.columnDef.meta?.label ?? selectedColumn.id)\r\n : 'Search fields...'\r\n }\r\n value={inputValue}\r\n onValueChange={setInputValue}\r\n onKeyDown={onInputKeyDown}\r\n />\r\n <CommandList>\r\n {selectedColumn ? (\r\n <>\r\n {selectedColumn.columnDef.meta?.options && (\r\n <CommandEmpty>No options found.</CommandEmpty>\r\n )}\r\n <FilterValueSelector\r\n column={selectedColumn}\r\n value={inputValue}\r\n onSelect={value => onFilterAdd(selectedColumn, value)}\r\n />\r\n </>\r\n ) : (\r\n <>\r\n <CommandEmpty>No fields found.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n value={column.id}\r\n onSelect={() => {\r\n setSelectedColumn(column)\r\n setInputValue('')\r\n requestAnimationFrame(() => {\r\n inputRef.current?.focus()\r\n })\r\n }}\r\n >\r\n {column.columnDef.meta?.icon && (\r\n <column.columnDef.meta.icon />\r\n )}\r\n <span className=\"truncate\">\r\n {column.columnDef.meta?.label ?? column.id}\r\n </span>\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </>\r\n )}\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n )\r\n}\r\n\r\ninterface DataTableFilterItemProps<TData> {\r\n filter: ExtendedColumnFilter<TData>\r\n filterItemId: string\r\n columns: Column<TData>[]\r\n onFilterUpdate: (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => void\r\n onFilterRemove: (filterId: string) => void\r\n}\r\n\r\nfunction DataTableFilterItem<TData>({\r\n filter,\r\n filterItemId,\r\n columns,\r\n onFilterUpdate,\r\n onFilterRemove,\r\n}: DataTableFilterItemProps<TData>) {\r\n {\r\n const [showFieldSelector, setShowFieldSelector] = React.useState(false)\r\n const [showOperatorSelector, setShowOperatorSelector] =\r\n React.useState(false)\r\n const [showValueSelector, setShowValueSelector] = React.useState(false)\r\n\r\n const column = columns.find(column => column.id === filter.id)\r\n if (!column) return null\r\n\r\n const operatorListboxId = `${filterItemId}-operator-listbox`\r\n const inputId = `${filterItemId}-input`\r\n\r\n const columnMeta = column.columnDef.meta\r\n const filterOperators = getFilterOperators(filter.variant)\r\n\r\n const onItemKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (showFieldSelector || showOperatorSelector || showValueSelector) {\r\n return\r\n }\r\n\r\n if (REMOVE_FILTER_SHORTCUTS.includes(event.key.toLowerCase())) {\r\n event.preventDefault()\r\n onFilterRemove(filter.filterId)\r\n }\r\n },\r\n [\r\n filter.filterId,\r\n showFieldSelector,\r\n showOperatorSelector,\r\n showValueSelector,\r\n onFilterRemove,\r\n ]\r\n )\r\n\r\n return (\r\n <div\r\n key={filter.filterId}\r\n role=\"listitem\"\r\n id={filterItemId}\r\n className=\"flex h-10 items-center rounded-md bg-background\"\r\n onKeyDown={onItemKeyDown}\r\n >\r\n <Popover open={showFieldSelector} onOpenChange={setShowFieldSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"rounded-none rounded-l-md border border-r-0 font-normal dark:bg-input/30\"\r\n >\r\n {columnMeta?.icon && (\r\n <columnMeta.icon className=\"text-muted-foreground\" />\r\n )}\r\n {columnMeta?.label ?? column.id}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n align=\"start\"\r\n className=\"w-48 origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n <Command loop>\r\n <CommandInput placeholder=\"Search fields...\" />\r\n <CommandList>\r\n <CommandEmpty>No fields found.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n value={column.id}\r\n onSelect={() => {\r\n onFilterUpdate(filter.filterId, {\r\n id: column.id as Extract<keyof TData, string>,\r\n variant: column.columnDef.meta?.variant ?? 'text',\r\n operator: getDefaultFilterOperator(\r\n column.columnDef.meta?.variant ?? 'text'\r\n ),\r\n value: '',\r\n })\r\n\r\n setShowFieldSelector(false)\r\n }}\r\n >\r\n {column.columnDef.meta?.icon && (\r\n <column.columnDef.meta.icon />\r\n )}\r\n <span className=\"truncate\">\r\n {column.columnDef.meta?.label ?? column.id}\r\n </span>\r\n <Check\r\n className={cn(\r\n 'ml-auto',\r\n column.id === filter.id ? 'opacity-100' : 'opacity-0'\r\n )}\r\n />\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n <Select\r\n open={showOperatorSelector}\r\n onOpenChange={setShowOperatorSelector}\r\n value={filter.operator}\r\n onValueChange={(value: FilterOperator) =>\r\n onFilterUpdate(filter.filterId, {\r\n operator: value,\r\n value:\r\n value === 'isEmpty' || value === 'isNotEmpty'\r\n ? ''\r\n : filter.value,\r\n })\r\n }\r\n >\r\n <SelectTrigger\r\n aria-controls={operatorListboxId}\r\n className=\"h-10 rounded-none border-r-0 px-2.5 lowercase [&[data-size]]:h-10 [&_svg]:hidden\"\r\n >\r\n <SelectValue placeholder={filter.operator} />\r\n </SelectTrigger>\r\n <SelectContent\r\n id={operatorListboxId}\r\n className=\"origin-[var(--radix-select-content-transform-origin)]\"\r\n >\r\n {filterOperators.map(operator => (\r\n <SelectItem\r\n key={operator.value}\r\n className=\"lowercase\"\r\n value={operator.value}\r\n >\r\n {operator.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n {onFilterInputRender({\r\n filter,\r\n column,\r\n inputId,\r\n onFilterUpdate,\r\n showValueSelector,\r\n setShowValueSelector,\r\n })}\r\n <Button\r\n aria-controls={filterItemId}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-full rounded-none rounded-r-md border border-l-0 px-1.5 font-normal dark:bg-input/30\"\r\n onClick={() => onFilterRemove(filter.filterId)}\r\n >\r\n <X className=\"size-3.5\" />\r\n </Button>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\ninterface FilterValueSelectorProps<TData> {\r\n column: Column<TData>\r\n value: string\r\n onSelect: (value: string) => void\r\n}\r\n\r\nfunction FilterValueSelector<TData>({\r\n column,\r\n value,\r\n onSelect,\r\n}: FilterValueSelectorProps<TData>) {\r\n const variant = column.columnDef.meta?.variant ?? 'text'\r\n\r\n switch (variant) {\r\n case 'boolean':\r\n return (\r\n <CommandGroup>\r\n <CommandItem value=\"true\" onSelect={() => onSelect('true')}>\r\n True\r\n </CommandItem>\r\n <CommandItem value=\"false\" onSelect={() => onSelect('false')}>\r\n False\r\n </CommandItem>\r\n </CommandGroup>\r\n )\r\n\r\n case 'select':\r\n case 'multiSelect':\r\n return (\r\n <CommandGroup>\r\n {column.columnDef.meta?.options?.map(option => (\r\n <CommandItem\r\n key={option.value}\r\n value={option.value}\r\n onSelect={() => onSelect(option.value)}\r\n >\r\n {option.icon && <option.icon />}\r\n <span className=\"truncate\">{option.label}</span>\r\n {option.count && (\r\n <span className=\"ml-auto font-mono text-xs\">\r\n {option.count}\r\n </span>\r\n )}\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n )\r\n\r\n case 'date':\r\n case 'dateRange':\r\n return (\r\n <Calendar\r\n initialFocus\r\n mode=\"single\"\r\n selected={value ? new Date(value) : undefined}\r\n onSelect={date => onSelect(date?.getTime().toString() ?? '')}\r\n />\r\n )\r\n\r\n default: {\r\n const isEmpty = !value.trim()\r\n\r\n return (\r\n <CommandGroup>\r\n <CommandItem\r\n value={value}\r\n onSelect={() => onSelect(value)}\r\n disabled={isEmpty}\r\n >\r\n {isEmpty ? (\r\n <>\r\n <TextAlignLeft />\r\n <span>Type to add filter...</span>\r\n </>\r\n ) : (\r\n <>\r\n <SealCheck />\r\n <span className=\"truncate\">Filter by &quot;{value}&quot;</span>\r\n </>\r\n )}\r\n </CommandItem>\r\n </CommandGroup>\r\n )\r\n }\r\n }\r\n}\r\n\r\nfunction onFilterInputRender<TData>({\r\n filter,\r\n column,\r\n inputId,\r\n onFilterUpdate,\r\n showValueSelector,\r\n setShowValueSelector,\r\n}: {\r\n filter: ExtendedColumnFilter<TData>\r\n column: Column<TData>\r\n inputId: string\r\n onFilterUpdate: (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => void\r\n showValueSelector: boolean\r\n setShowValueSelector: (value: boolean) => void\r\n}) {\r\n if (filter.operator === 'isEmpty' || filter.operator === 'isNotEmpty') {\r\n return (\r\n <div\r\n id={inputId}\r\n role=\"status\"\r\n aria-label={`${column.columnDef.meta?.label} filter is ${\r\n filter.operator === 'isEmpty' ? 'empty' : 'not empty'\r\n }`}\r\n aria-live=\"polite\"\r\n className=\"h-full w-16 rounded-none border bg-transparent px-1.5 py-0.5 text-muted-foreground dark:bg-input/30\"\r\n />\r\n )\r\n }\r\n\r\n switch (filter.variant) {\r\n case 'text':\r\n case 'number':\r\n case 'range': {\r\n if (\r\n (filter.variant === 'range' && filter.operator === 'isBetween') ||\r\n filter.operator === 'isBetween'\r\n ) {\r\n return (\r\n <DataTableRangeFilter\r\n filter={filter}\r\n column={column}\r\n inputId={inputId}\r\n onFilterUpdate={onFilterUpdate}\r\n className=\"size-full max-w-28 gap-0 [&_[data-slot='range-min']]:border-r-0 [&_input]:rounded-none [&_input]:px-1.5\"\r\n />\r\n )\r\n }\r\n\r\n const isNumber = filter.variant === 'number' || filter.variant === 'range'\r\n\r\n return (\r\n <Input\r\n id={inputId}\r\n type={isNumber ? 'number' : 'text'}\r\n inputMode={isNumber ? 'numeric' : undefined}\r\n placeholder={column.columnDef.meta?.placeholder ?? 'Enter value...'}\r\n className=\"h-full w-24 rounded-none px-1.5\"\r\n defaultValue={typeof filter.value === 'string' ? filter.value : ''}\r\n onChange={event =>\r\n onFilterUpdate(filter.filterId, { value: event.target.value })\r\n }\r\n />\r\n )\r\n }\r\n\r\n case 'boolean': {\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n return (\r\n <Select\r\n open={showValueSelector}\r\n onOpenChange={setShowValueSelector}\r\n value={typeof filter.value === 'string' ? filter.value : 'true'}\r\n onValueChange={(value: 'true' | 'false') =>\r\n onFilterUpdate(filter.filterId, { value })\r\n }\r\n >\r\n <SelectTrigger\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n className=\"rounded-none bg-transparent px-1.5 py-0.5 [&_svg]:hidden\"\r\n >\r\n <SelectValue placeholder={filter.value ? 'True' : 'False'} />\r\n </SelectTrigger>\r\n <SelectContent id={inputListboxId}>\r\n <SelectItem value=\"true\">True</SelectItem>\r\n <SelectItem value=\"false\">False</SelectItem>\r\n </SelectContent>\r\n </Select>\r\n )\r\n }\r\n\r\n case 'select':\r\n case 'multiSelect': {\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n const options = column.columnDef.meta?.options ?? []\r\n const selectedValues = Array.isArray(filter.value)\r\n ? filter.value\r\n : [filter.value]\r\n\r\n const selectedOptions = options.filter(option =>\r\n selectedValues.includes(option.value)\r\n )\r\n\r\n return (\r\n <Popover open={showValueSelector} onOpenChange={setShowValueSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-full min-w-16 rounded-none border px-1.5 font-normal dark:bg-input/30\"\r\n >\r\n {selectedOptions.length === 0 ? (\r\n filter.variant === 'multiSelect' ? (\r\n 'Select options...'\r\n ) : (\r\n 'Select option...'\r\n )\r\n ) : (\r\n <>\r\n <div className=\"-space-x-2 flex items-center rtl:space-x-reverse\">\r\n {selectedOptions.map(selectedOption =>\r\n selectedOption.icon ? (\r\n <div\r\n key={selectedOption.value}\r\n className=\"rounded-full border bg-background p-0.5\"\r\n >\r\n <selectedOption.icon className=\"size-3.5\" />\r\n </div>\r\n ) : null\r\n )}\r\n </div>\r\n <span className=\"truncate\">\r\n {selectedOptions.length > 1\r\n ? `${selectedOptions.length} selected`\r\n : selectedOptions[0]?.label}\r\n </span>\r\n </>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={inputListboxId}\r\n align=\"start\"\r\n className=\"w-48 origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n <Command>\r\n <CommandInput placeholder=\"Search options...\" />\r\n <CommandList>\r\n <CommandEmpty>No options found.</CommandEmpty>\r\n <CommandGroup>\r\n {options.map(option => (\r\n <CommandItem\r\n key={option.value}\r\n value={option.value}\r\n onSelect={() => {\r\n const value =\r\n filter.variant === 'multiSelect'\r\n ? selectedValues.includes(option.value)\r\n ? selectedValues.filter(v => v !== option.value)\r\n : [...selectedValues, option.value]\r\n : option.value\r\n onFilterUpdate(filter.filterId, { value })\r\n }}\r\n >\r\n {option.icon && <option.icon />}\r\n <span className=\"truncate\">{option.label}</span>\r\n {filter.variant === 'multiSelect' && (\r\n <Check\r\n className={cn(\r\n 'ml-auto',\r\n selectedValues.includes(option.value)\r\n ? 'opacity-100'\r\n : 'opacity-0'\r\n )}\r\n />\r\n )}\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n\r\n case 'date':\r\n case 'dateRange': {\r\n const inputListboxId = `${inputId}-listbox`\r\n\r\n const dateValue = Array.isArray(filter.value)\r\n ? filter.value.filter(Boolean)\r\n : [filter.value, filter.value].filter(Boolean)\r\n\r\n const displayValue =\r\n filter.operator === 'isBetween' && dateValue.length === 2\r\n ? `${formatDate(new Date(Number(dateValue[0])))} - ${formatDate(\r\n new Date(Number(dateValue[1]))\r\n )}`\r\n : dateValue[0]\r\n ? formatDate(new Date(Number(dateValue[0])))\r\n : 'Pick date...'\r\n\r\n return (\r\n <Popover open={showValueSelector} onOpenChange={setShowValueSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id={inputId}\r\n aria-controls={inputListboxId}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className={cn(\r\n 'h-full rounded-none border px-1.5 font-normal dark:bg-input/30',\r\n !filter.value && 'text-muted-foreground'\r\n )}\r\n >\r\n <CalendarIcon className=\"size-3.5\" />\r\n <span className=\"truncate\">{displayValue}</span>\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={inputListboxId}\r\n align=\"start\"\r\n className=\"w-auto origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n {filter.operator === 'isBetween' ? (\r\n <Calendar\r\n mode=\"range\"\r\n initialFocus\r\n selected={\r\n dateValue.length === 2\r\n ? {\r\n from: new Date(Number(dateValue[0])),\r\n to: new Date(Number(dateValue[1])),\r\n }\r\n : {\r\n from: new Date(),\r\n to: new Date(),\r\n }\r\n }\r\n onSelect={date => {\r\n onFilterUpdate(filter.filterId, {\r\n value: date\r\n ? [\r\n (date.from?.getTime() ?? '').toString(),\r\n (date.to?.getTime() ?? '').toString(),\r\n ]\r\n : [],\r\n })\r\n }}\r\n />\r\n ) : (\r\n <Calendar\r\n mode=\"single\"\r\n initialFocus\r\n selected={\r\n dateValue[0] ? new Date(Number(dateValue[0])) : undefined\r\n }\r\n onSelect={date => {\r\n onFilterUpdate(filter.filterId, {\r\n value: (date?.getTime() ?? '').toString(),\r\n })\r\n }}\r\n />\r\n )}\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n"],"names":["REMOVE_FILTER_SHORTCUTS","DataTableFilterMenu","table","debounceMs","throttleMs","shallow","align","props","id","React","columns","column","open","setOpen","selectedColumn","setSelectedColumn","inputValue","setInputValue","triggerRef","inputRef","onOpenChange","setTimeout","onInputKeyDown","event","filters","setFilters","useQueryState","getFiltersStateParser","field","debouncedSetFilters","useDebouncedCallback","onFilterAdd","value","filterValue","getDefaultFilterOperator","generateId","onFilterRemove","filterId","filter","requestAnimationFrame","onFilterUpdate","updates","prevFilters","onFiltersReset","onKeyDown","HTMLInputElement","HTMLTextAreaElement","window","onTriggerKeyDown","DataTableFilterItem","Button","X","Popover","PopoverTrigger","cn","FunnelSimple","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","FilterValueSelector","CommandGroup","CommandItem","filterItemId","showFieldSelector","setShowFieldSelector","showOperatorSelector","setShowOperatorSelector","showValueSelector","setShowValueSelector","operatorListboxId","inputId","columnMeta","filterOperators","getFilterOperators","Check","Select","SelectTrigger","SelectValue","SelectContent","operator","SelectItem","onFilterInputRender","DataTableRangeFilter","isNumber","Input","undefined","inputListboxId","options","selectedValues","Array","selectedOptions","option","selectedOption","v","dateValue","Boolean","displayValue","formatDate","Date","Number","CalendarIcon","Calendar","date","onSelect","isEmpty","TextAlignLeft","SealCheck"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-pagination.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-pagination.tsx"],"sourcesContent":["import {\r\n CaretDoubleLeftIcon,\r\n CaretDoubleRightIcon,\r\n CaretLeftIcon,\r\n CaretRightIcon,\r\n} from '@phosphor-icons/react'\r\nimport type { Table } from '@tanstack/react-table'\r\n\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/select'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTablePaginationProps<TData> extends React.ComponentProps<'div'> {\r\n table: Table<TData>\r\n pageSizeOptions?: number[]\r\n}\r\n\r\nexport function DataTablePagination<TData>({\r\n table,\r\n pageSizeOptions = [10, 20, 30, 40, 50],\r\n className,\r\n ...props\r\n}: DataTablePaginationProps<TData>) {\r\n return (\r\n <div\r\n className={cn(\r\n 'flex w-full flex-col-reverse items-center justify-between gap-4 overflow-auto p-1 sm:flex-row sm:gap-8',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex-1 whitespace-nowrap text-muted-foreground text-sm\">\r\n {table.getFilteredSelectedRowModel().rows.length} de{' '}\r\n {table.getFilteredRowModel().rows.length} linhas selecionadas.\r\n </div>\r\n <div className=\"flex flex-col-reverse items-center gap-4 sm:flex-row sm:gap-6 lg:gap-8\">\r\n <div className=\"flex items-center space-x-2\">\r\n <p className=\"whitespace-nowrap font-medium text-sm\">\r\n Linhas por página\r\n </p>\r\n <Select\r\n value={`${table.getState().pagination.pageSize}`}\r\n onValueChange={value => {\r\n table.setPageSize(Number(value))\r\n }}\r\n >\r\n <SelectTrigger className=\"h-10 w-[5.5rem] [&[data-size]]:h-10\">\r\n <SelectValue placeholder={table.getState().pagination.pageSize} />\r\n </SelectTrigger>\r\n <SelectContent side=\"top\">\r\n {pageSizeOptions.map(pageSize => (\r\n <SelectItem key={pageSize} value={`${pageSize}`}>\r\n {pageSize}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n <div className=\"flex items-center justify-center font-medium text-sm\">\r\n Página {table.getState().pagination.pageIndex + 1} de{' '}\r\n {table.getPageCount()}\r\n </div>\r\n <div className=\"flex items-center space-x-2\">\r\n <Button\r\n aria-label=\"Go to first page\"\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"hidden size-10 lg:flex\"\r\n onClick={() => table.setPageIndex(0)}\r\n disabled={!table.getCanPreviousPage()}\r\n >\r\n <CaretDoubleLeftIcon />\r\n </Button>\r\n <Button\r\n aria-label=\"Go to previous page\"\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-10\"\r\n onClick={() => table.previousPage()}\r\n disabled={!table.getCanPreviousPage()}\r\n >\r\n <CaretLeftIcon />\r\n </Button>\r\n <Button\r\n aria-label=\"Go to next page\"\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-10\"\r\n onClick={() => table.nextPage()}\r\n disabled={!table.getCanNextPage()}\r\n >\r\n <CaretRightIcon />\r\n </Button>\r\n <Button\r\n aria-label=\"Go to last page\"\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"hidden size-10 lg:flex\"\r\n onClick={() => table.setPageIndex(table.getPageCount() - 1)}\r\n disabled={!table.getCanNextPage()}\r\n >\r\n <CaretDoubleRightIcon />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTablePagination","table","pageSizeOptions","className","props","cn","Select","value","Number","SelectTrigger","SelectValue","SelectContent","pageSize","SelectItem","Button","CaretDoubleLeftIcon","CaretLeftIcon","CaretRightIcon","CaretDoubleRightIcon"],"mappings":"0WAuBO,SAASA,EAA2B,CACzCC,MAAAA,CAAK,CACLC,gBAAAA,EAAkB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAG,CACtCC,UAAAA,CAAS,CACT,GAAGC,EAC6B,EAChC,OACE,EAAC,OACC,UAAWC,EACT,yGACAF,GAED,GAAGC,CAAK,C,UAET,EAAC,OAAI,UAAU,yD,UACZH,EAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,MAAI,IACpDA,EAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,wB,GAE3C,EAAC,OAAI,UAAU,yE,UACb,EAAC,OAAI,UAAU,8B,UACb,EAAC,KAAE,UAAU,wC,SAAwC,sB,GAGrD,EAACK,EAAMA,CACL,MAAO,CAAC,EAAEL,EAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAChD,cAAeM,AAAAA,IACbN,EAAM,WAAW,CAACO,OAAOD,GAC3B,E,UAEA,EAACE,EAAaA,CAAC,UAAU,sC,SACvB,EAACC,EAAWA,CAAC,YAAaT,EAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,A,KAEhE,EAACU,EAAaA,CAAC,KAAK,M,SACjBT,EAAgB,GAAG,CAACU,AAAAA,GACnB,EAACC,EAAUA,CAAgB,MAAO,CAAC,EAAED,EAAS,CAAC,C,SAC5CA,C,EADcA,G,SAOzB,EAAC,OAAI,UAAU,uD,UAAuD,aAC5DX,EAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAG,EAAE,MAAI,IACrDA,EAAM,YAAY,G,GAErB,EAAC,OAAI,UAAU,8B,UACb,EAACa,EAAMA,CACL,aAAW,mBACX,QAAQ,UACR,KAAK,OACL,UAAU,yBACV,QAAS,IAAMb,EAAM,YAAY,CAAC,GAClC,SAAU,CAACA,EAAM,kBAAkB,G,SAEnC,EAACc,EAAmBA,CAAAA,E,GAEtB,EAACD,EAAMA,CACL,aAAW,sBACX,QAAQ,UACR,KAAK,OACL,UAAU,UACV,QAAS,IAAMb,EAAM,YAAY,GACjC,SAAU,CAACA,EAAM,kBAAkB,G,SAEnC,EAACe,EAAaA,CAAAA,E,GAEhB,EAACF,EAAMA,CACL,aAAW,kBACX,QAAQ,UACR,KAAK,OACL,UAAU,UACV,QAAS,IAAMb,EAAM,QAAQ,GAC7B,SAAU,CAACA,EAAM,cAAc,G,SAE/B,EAACgB,EAAcA,CAAAA,E,GAEjB,EAACH,EAAMA,CACL,aAAW,kBACX,QAAQ,UACR,KAAK,OACL,UAAU,yBACV,QAAS,IAAMb,EAAM,YAAY,CAACA,EAAM,YAAY,GAAK,GACzD,SAAU,CAACA,EAAM,cAAc,G,SAE/B,EAACiB,EAAoBA,CAAAA,E,WAMjC,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-range-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-range-filter.tsx"],"sourcesContent":["\r\n\r\nimport type { Column } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Input } from '@/components/input'\r\nimport { cn } from '@/lib/utils'\r\nimport type { ExtendedColumnFilter } from '@/types/data-table'\r\n\r\ninterface DataTableRangeFilterProps<TData> extends React.ComponentProps<'div'> {\r\n filter: ExtendedColumnFilter<TData>\r\n column: Column<TData>\r\n inputId: string\r\n onFilterUpdate: (\r\n filterId: string,\r\n updates: Partial<Omit<ExtendedColumnFilter<TData>, 'filterId'>>\r\n ) => void\r\n}\r\n\r\nexport function DataTableRangeFilter<TData>({\r\n filter,\r\n column,\r\n inputId,\r\n onFilterUpdate,\r\n className,\r\n ...props\r\n}: DataTableRangeFilterProps<TData>) {\r\n const meta = column.columnDef.meta\r\n\r\n const [min, max] = React.useMemo(() => {\r\n const range = column.columnDef.meta?.range\r\n if (range) return range\r\n\r\n const values = column.getFacetedMinMaxValues()\r\n if (!values) return [0, 100]\r\n\r\n return [values[0], values[1]]\r\n }, [column])\r\n\r\n const formatValue = React.useCallback(\r\n (value: string | number | undefined) => {\r\n if (value === undefined || value === '') return ''\r\n const numValue = Number(value)\r\n return Number.isNaN(numValue)\r\n ? ''\r\n : numValue.toLocaleString(undefined, {\r\n maximumFractionDigits: 0,\r\n })\r\n },\r\n []\r\n )\r\n\r\n const value = React.useMemo(() => {\r\n if (Array.isArray(filter.value)) return filter.value.map(formatValue)\r\n return [formatValue(filter.value), '']\r\n }, [filter.value, formatValue])\r\n\r\n const onRangeValueChange = React.useCallback(\r\n (value: string, isMin?: boolean) => {\r\n const numValue = Number(value)\r\n const currentValues = Array.isArray(filter.value)\r\n ? filter.value\r\n : ['', '']\r\n const otherValue = isMin\r\n ? (currentValues[1] ?? '')\r\n : (currentValues[0] ?? '')\r\n\r\n if (\r\n value === '' ||\r\n (!Number.isNaN(numValue) &&\r\n (isMin\r\n ? numValue >= min && numValue <= (Number(otherValue) || max)\r\n : numValue <= max && numValue >= (Number(otherValue) || min)))\r\n ) {\r\n onFilterUpdate(filter.filterId, {\r\n value: isMin ? [value, otherValue] : [otherValue, value],\r\n })\r\n }\r\n },\r\n [filter.filterId, filter.value, min, max, onFilterUpdate]\r\n )\r\n\r\n return (\r\n <div\r\n data-slot=\"range\"\r\n className={cn('flex w-full items-center gap-2', className)}\r\n {...props}\r\n >\r\n <Input\r\n id={`${inputId}-min`}\r\n type=\"number\"\r\n aria-label={`${meta?.label} minimum value`}\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n data-slot=\"range-min\"\r\n inputMode=\"numeric\"\r\n placeholder={min.toString()}\r\n min={min}\r\n max={max}\r\n className=\"h-10 w-full rounded\"\r\n defaultValue={value[0]}\r\n onChange={event => onRangeValueChange(event.target.value, true)}\r\n />\r\n <span className=\"sr-only shrink-0 text-muted-foreground\">to</span>\r\n <Input\r\n id={`${inputId}-max`}\r\n type=\"number\"\r\n aria-label={`${meta?.label} maximum value`}\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n data-slot=\"range-max\"\r\n inputMode=\"numeric\"\r\n placeholder={max.toString()}\r\n min={min}\r\n max={max}\r\n className=\"h-10 w-full rounded\"\r\n defaultValue={value[1]}\r\n onChange={event => onRangeValueChange(event.target.value)}\r\n />\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTableRangeFilter","filter","column","inputId","onFilterUpdate","className","props","meta","min","max","React","range","values","formatValue","value","undefined","numValue","Number","Array","onRangeValueChange","isMin","currentValues","otherValue","cn","Input","event"],"mappings":";+KAmBO,SAASA,EAA4B,CAC1CC,OAAAA,CAAM,CACNC,OAAAA,CAAM,CACNC,QAAAA,CAAO,CACPC,eAAAA,CAAc,CACdC,UAAAA,CAAS,CACT,GAAGC,EAC8B,EACjC,IAAMC,EAAOL,EAAO,SAAS,CAAC,IAAI,CAE5B,CAACM,EAAKC,EAAI,CAAGC,EAAc,KAC/B,IAAMC,EAAQT,EAAO,SAAS,CAAC,IAAI,EAAE,MACrC,GAAIS,EAAO,OAAOA,EAElB,IAAMC,EAASV,EAAO,sBAAsB,UAC5C,EAEO,CAACU,CAAM,CAAC,EAAE,CAAEA,CAAM,CAAC,EAAE,CAAC,CAFT,CAAC,EAAG,IAAI,EAG3B,CAACV,EAAO,EAELW,EAAcH,EAClB,IACE,GAAII,SAAAA,GAAuBA,KAAAA,EAAc,MAAO,GAChD,IAAME,EAAWC,OAAOH,GACxB,OAAOG,OAAO,KAAK,CAACD,GAChB,GACAA,EAAS,cAAc,CAACD,OAAW,CACjC,sBAAuB,CACzB,EACN,EACA,EAAE,EAGED,EAAQJ,EAAc,IAC1B,MAAU,OAAO,CAACT,EAAO,KAAK,EAAUA,EAAO,KAAK,CAAC,GAAG,CAACY,GAClD,CAACA,EAAYZ,EAAO,KAAK,EAAG,GAAG,CACrC,CAACA,EAAO,KAAK,CAAEY,EAAY,EAExBM,EAAqBT,EACzB,CAACI,EAAeM,KACd,IAAMJ,EAAWC,OAAOH,GAClBO,EAAgBH,MAAM,OAAO,CAACjB,EAAO,KAAK,EAC5CA,EAAO,KAAK,CACZ,CAAC,GAAI,GAAG,CACNqB,EAAaF,EACdC,CAAa,CAAC,EAAE,EAAI,GACpBA,CAAa,CAAC,EAAE,EAAI,EAGvBP,CAAAA,CAAAA,KAAAA,GACC,CAACG,OAAO,KAAK,CAACD,IACZI,CAAAA,EACGJ,GAAYR,GAAOQ,GAAaC,CAAAA,OAAOK,IAAeb,CAAE,EACxDO,GAAYP,GAAOO,GAAaC,CAAAA,OAAOK,IAAed,CAAE,EAAC,GAE/DJ,EAAeH,EAAO,QAAQ,CAAE,CAC9B,MAAOmB,EAAQ,CAACN,EAAOQ,EAAW,CAAG,CAACA,EAAYR,EAAM,EAG9D,EACA,CAACb,EAAO,QAAQ,CAAEA,EAAO,KAAK,CAAEO,EAAKC,EAAKL,EAAe,EAG3D,OACE,EAAC,OACC,YAAU,QACV,UAAWmB,EAAG,iCAAkClB,GAC/C,GAAGC,CAAK,C,UAET,EAACkB,EAAKA,CACJ,GAAI,CAAC,EAAErB,EAAQ,IAAI,CAAC,CACpB,KAAK,SACL,aAAY,CAAC,EAAEI,GAAM,MAAM,cAAc,CAAC,CAC1C,gBAAeC,EACf,gBAAeC,EACf,YAAU,YACV,UAAU,UACV,YAAaD,EAAI,QAAQ,GACzB,IAAKA,EACL,IAAKC,EACL,UAAU,sBACV,aAAcK,CAAK,CAAC,EAAE,CACtB,SAAUW,GAASN,EAAmBM,EAAM,MAAM,CAAC,KAAK,CAAE,G,GAE5D,EAAC,QAAK,UAAU,yC,SAAyC,I,GACzD,EAACD,EAAKA,CACJ,GAAI,CAAC,EAAErB,EAAQ,IAAI,CAAC,CACpB,KAAK,SACL,aAAY,CAAC,EAAEI,GAAM,MAAM,cAAc,CAAC,CAC1C,gBAAeC,EACf,gBAAeC,EACf,YAAU,YACV,UAAU,UACV,YAAaA,EAAI,QAAQ,GACzB,IAAKD,EACL,IAAKC,EACL,UAAU,sBACV,aAAcK,CAAK,CAAC,EAAE,CACtB,SAAUW,GAASN,EAAmBM,EAAM,MAAM,CAAC,KAAK,C,KAIhE,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-skeleton.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import { Skeleton } from '@/components/skeleton'\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/table'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTableSkeletonProps extends React.ComponentProps<'div'> {\r\n columnCount: number\r\n rowCount?: number\r\n filterCount?: number\r\n cellWidths?: string[]\r\n withViewOptions?: boolean\r\n withPagination?: boolean\r\n shrinkZero?: boolean\r\n}\r\n\r\nexport function DataTableSkeleton({\r\n columnCount,\r\n rowCount = 10,\r\n filterCount = 0,\r\n cellWidths = ['auto'],\r\n withViewOptions = true,\r\n withPagination = true,\r\n shrinkZero = false,\r\n className,\r\n ...props\r\n}: DataTableSkeletonProps) {\r\n const cozyCellWidths = Array.from(\r\n { length: columnCount },\r\n (_, index) => cellWidths[index % cellWidths.length] ?? 'auto'\r\n )\r\n\r\n return (\r\n <div\r\n className={cn('flex w-full flex-col gap-2.5 overflow-auto', className)}\r\n {...props}\r\n >\r\n <div className=\"flex w-full items-center justify-between gap-2 overflow-auto p-1\">\r\n <div className=\"flex flex-1 items-center gap-2\">\r\n {filterCount > 0\r\n ? Array.from({ length: filterCount }).map((_, i) => (\r\n <Skeleton key={i} className=\"h-7 w-[4.5rem]\" />\r\n ))\r\n : null}\r\n </div>\r\n {withViewOptions ? (\r\n <Skeleton className=\"ml-auto hidden h-7 w-[4.5rem] lg:flex\" />\r\n ) : null}\r\n </div>\r\n <div className=\"rounded-md border\">\r\n <Table>\r\n <TableHeader>\r\n {Array.from({ length: 1 }).map((_, i) => (\r\n <TableRow key={i} className=\"hover:bg-transparent\">\r\n {Array.from({ length: columnCount }).map((_, j) => (\r\n <TableHead\r\n key={j}\r\n style={{\r\n width: cozyCellWidths[j],\r\n minWidth: shrinkZero ? cozyCellWidths[j] : 'auto',\r\n }}\r\n >\r\n <Skeleton className=\"h-6 w-full\" />\r\n </TableHead>\r\n ))}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {Array.from({ length: rowCount }).map((_, i) => (\r\n <TableRow key={i} className=\"hover:bg-transparent\">\r\n {Array.from({ length: columnCount }).map((_, j) => (\r\n <TableCell\r\n key={j}\r\n style={{\r\n width: cozyCellWidths[j],\r\n minWidth: shrinkZero ? cozyCellWidths[j] : 'auto',\r\n }}\r\n >\r\n <Skeleton className=\"h-6 w-full\" />\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n {withPagination ? (\r\n <div className=\"flex w-full items-center justify-between gap-4 overflow-auto p-1 sm:gap-8\">\r\n <Skeleton className=\"h-7 w-40 shrink-0\" />\r\n <div className=\"flex items-center gap-4 sm:gap-6 lg:gap-8\">\r\n <div className=\"flex items-center gap-2\">\r\n <Skeleton className=\"h-7 w-24\" />\r\n <Skeleton className=\"h-7 w-[4.5rem]\" />\r\n </div>\r\n <div className=\"flex items-center justify-center font-medium text-sm\">\r\n <Skeleton className=\"h-7 w-20\" />\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n <Skeleton className=\"hidden size-7 lg:block\" />\r\n <Skeleton className=\"size-7\" />\r\n <Skeleton className=\"size-7\" />\r\n <Skeleton className=\"hidden size-7 lg:block\" />\r\n </div>\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTableSkeleton","columnCount","rowCount","filterCount","cellWidths","withViewOptions","withPagination","shrinkZero","className","props","cozyCellWidths","Array","_","index","cn","i","Skeleton","Table","TableHeader","TableRow","j","TableHead","TableBody","TableCell"],"mappings":"oPAqBO,SAASA,EAAkB,CAChCC,YAAAA,CAAW,CACXC,SAAAA,EAAW,EAAE,CACbC,YAAAA,EAAc,CAAC,CACfC,WAAAA,EAAa,CAAC,OAAO,CACrBC,gBAAAA,EAAkB,EAAI,CACtBC,eAAAA,EAAiB,EAAI,CACrBC,WAAAA,EAAa,EAAK,CAClBC,UAAAA,CAAS,CACT,GAAGC,EACoB,EACvB,IAAMC,EAAiBC,MAAM,IAAI,CAC/B,CAAE,OAAQV,CAAY,EACtB,CAACW,EAAGC,IAAUT,CAAU,CAACS,EAAQT,EAAW,MAAM,CAAC,EAAI,QAGzD,OACE,EAAC,OACC,UAAWU,EAAG,6CAA8CN,GAC3D,GAAGC,CAAK,C,UAET,EAAC,OAAI,UAAU,mE,UACb,EAAC,OAAI,UAAU,iC,SACZN,EAAc,EACXQ,MAAM,IAAI,CAAC,CAAE,OAAQR,CAAY,GAAG,GAAG,CAAC,CAACS,EAAGG,IAC1C,EAACC,EAAQA,CAAS,UAAU,gB,EAAbD,IAEjB,I,GAELV,EACC,EAACW,EAAQA,CAAC,UAAU,uC,GAClB,K,GAEN,EAAC,OAAI,UAAU,oB,SACb,EAACC,EAAKA,C,UACJ,EAACC,EAAWA,C,SACTP,MAAM,IAAI,CAAC,CAAE,OAAQ,CAAE,GAAG,GAAG,CAAC,CAACC,EAAGG,IACjC,EAACI,EAAQA,CAAS,UAAU,uB,SACzBR,MAAM,IAAI,CAAC,CAAE,OAAQV,CAAY,GAAG,GAAG,CAAC,CAACW,EAAGQ,IAC3C,EAACC,EAASA,CAER,MAAO,CACL,MAAOX,CAAc,CAACU,EAAE,CACxB,SAAUb,EAAaG,CAAc,CAACU,EAAE,CAAG,MAC7C,E,SAEA,EAACJ,EAAQA,CAAC,UAAU,Y,IANfI,G,EAHIL,G,GAenB,EAACO,EAASA,C,SACPX,MAAM,IAAI,CAAC,CAAE,OAAQT,CAAS,GAAG,GAAG,CAAC,CAACU,EAAGG,IACxC,EAACI,EAAQA,CAAS,UAAU,uB,SACzBR,MAAM,IAAI,CAAC,CAAE,OAAQV,CAAY,GAAG,GAAG,CAAC,CAACW,EAAGQ,IAC3C,EAACG,EAASA,CAER,MAAO,CACL,MAAOb,CAAc,CAACU,EAAE,CACxB,SAAUb,EAAaG,CAAc,CAACU,EAAE,CAAG,MAC7C,E,SAEA,EAACJ,EAAQA,CAAC,UAAU,Y,IANfI,G,EAHIL,G,QAiBtBT,EACC,EAAC,OAAI,UAAU,4E,UACb,EAACU,EAAQA,CAAC,UAAU,mB,GACpB,EAAC,OAAI,UAAU,4C,UACb,EAAC,OAAI,UAAU,0B,UACb,EAACA,EAAQA,CAAC,UAAU,U,GACpB,EAACA,EAAQA,CAAC,UAAU,gB,MAEtB,EAAC,OAAI,UAAU,uD,SACb,EAACA,EAAQA,CAAC,UAAU,U,KAEtB,EAAC,OAAI,UAAU,0B,UACb,EAACA,EAAQA,CAAC,UAAU,wB,GACpB,EAACA,EAAQA,CAAC,UAAU,Q,GACpB,EAACA,EAAQA,CAAC,UAAU,Q,GACpB,EAACA,EAAQA,CAAC,UAAU,wB,YAIxB,K,EAGV,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-slider-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-slider-filter.tsx"],"sourcesContent":["\r\n\r\nimport type { Column } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Input } from '@/components/input'\r\nimport { Label } from '@/components/label'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { Slider } from '@/components/slider'\r\nimport { cn } from '@/lib/utils'\r\nimport { PlusCircle, XCircle } from '@phosphor-icons/react'\r\n\r\ninterface Range {\r\n min: number\r\n max: number\r\n}\r\n\r\ntype RangeValue = [number, number]\r\n\r\nfunction getIsValidRange(value: unknown): value is RangeValue {\r\n return (\r\n Array.isArray(value) &&\r\n value.length === 2 &&\r\n typeof value[0] === 'number' &&\r\n typeof value[1] === 'number'\r\n )\r\n}\r\n\r\ninterface DataTableSliderFilterProps<TData> {\r\n column: Column<TData, unknown>\r\n title?: string\r\n}\r\n\r\nexport function DataTableSliderFilter<TData>({\r\n column,\r\n title,\r\n}: DataTableSliderFilterProps<TData>) {\r\n const id = React.useId()\r\n\r\n const columnFilterValue = getIsValidRange(column.getFilterValue())\r\n ? (column.getFilterValue() as RangeValue)\r\n : undefined\r\n\r\n const defaultRange = column.columnDef.meta?.range\r\n const unit = column.columnDef.meta?.unit\r\n\r\n const { min, max, step } = React.useMemo<Range & { step: number }>(() => {\r\n let minValue = 0\r\n let maxValue = 100\r\n\r\n if (defaultRange && getIsValidRange(defaultRange)) {\r\n ;[minValue, maxValue] = defaultRange\r\n } else {\r\n const values = column.getFacetedMinMaxValues()\r\n if (values && Array.isArray(values) && values.length === 2) {\r\n const [facetMinValue, facetMaxValue] = values\r\n if (\r\n typeof facetMinValue === 'number' &&\r\n typeof facetMaxValue === 'number'\r\n ) {\r\n minValue = facetMinValue\r\n maxValue = facetMaxValue\r\n }\r\n }\r\n }\r\n\r\n const rangeSize = maxValue - minValue\r\n const step =\r\n rangeSize <= 20\r\n ? 1\r\n : rangeSize <= 100\r\n ? Math.ceil(rangeSize / 20)\r\n : Math.ceil(rangeSize / 50)\r\n\r\n return { min: minValue, max: maxValue, step }\r\n }, [column, defaultRange])\r\n\r\n const range = React.useMemo((): RangeValue => {\r\n return columnFilterValue ?? [min, max]\r\n }, [columnFilterValue, min, max])\r\n\r\n const formatValue = React.useCallback((value: number) => {\r\n return value.toLocaleString(undefined, { maximumFractionDigits: 0 })\r\n }, [])\r\n\r\n const onFromInputChange = React.useCallback(\r\n (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const numValue = Number(event.target.value)\r\n if (!Number.isNaN(numValue) && numValue >= min && numValue <= range[1]) {\r\n column.setFilterValue([numValue, range[1]])\r\n }\r\n },\r\n [column, min, range]\r\n )\r\n\r\n const onToInputChange = React.useCallback(\r\n (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const numValue = Number(event.target.value)\r\n if (!Number.isNaN(numValue) && numValue <= max && numValue >= range[0]) {\r\n column.setFilterValue([range[0], numValue])\r\n }\r\n },\r\n [column, max, range]\r\n )\r\n\r\n const onSliderValueChange = React.useCallback(\r\n (value: RangeValue) => {\r\n if (Array.isArray(value) && value.length === 2) {\r\n column.setFilterValue(value)\r\n }\r\n },\r\n [column]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n if (event.target instanceof HTMLDivElement) {\r\n event.stopPropagation()\r\n }\r\n column.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\">\r\n {columnFilterValue ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-500\"\r\n onClick={onReset}\r\n >\r\n <XCircle />\r\n </div>\r\n ) : (\r\n <PlusCircle />\r\n )}\r\n <span>{title}</span>\r\n {columnFilterValue ? (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n {formatValue(columnFilterValue[0])} -{' '}\r\n {formatValue(columnFilterValue[1])}\r\n {unit ? ` ${unit}` : ''}\r\n </>\r\n ) : null}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent align=\"start\" className=\"flex w-auto flex-col gap-4\">\r\n <div className=\"flex flex-col gap-3\">\r\n <p className=\"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\r\n {title}\r\n </p>\r\n <div className=\"flex items-center gap-4\">\r\n <Label htmlFor={`${id}-from`} className=\"sr-only\">\r\n From\r\n </Label>\r\n <div className=\"relative\">\r\n <Input\r\n id={`${id}-from`}\r\n type=\"number\"\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n inputMode=\"numeric\"\r\n pattern=\"[0-9]*\"\r\n placeholder={min.toString()}\r\n min={min}\r\n max={max}\r\n value={range[0]?.toString()}\r\n onChange={onFromInputChange}\r\n className={cn('h-10 w-24', unit && 'pr-8')}\r\n />\r\n {unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {unit}\r\n </span>\r\n )}\r\n </div>\r\n <Label htmlFor={`${id}-to`} className=\"sr-only\">\r\n to\r\n </Label>\r\n <div className=\"relative\">\r\n <Input\r\n id={`${id}-to`}\r\n type=\"number\"\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n inputMode=\"numeric\"\r\n pattern=\"[0-9]*\"\r\n placeholder={max.toString()}\r\n min={min}\r\n max={max}\r\n value={range[1]?.toString()}\r\n onChange={onToInputChange}\r\n className={cn('h-10 w-24', unit && 'pr-8')}\r\n />\r\n {unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {unit}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n <Label htmlFor={`${id}-slider`} className=\"sr-only\">\r\n {title} slider\r\n </Label>\r\n <Slider\r\n id={`${id}-slider`}\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={range}\r\n onValueChange={onSliderValueChange}\r\n />\r\n </div>\r\n <Button\r\n aria-label={`Clear ${title} filter`}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={onReset}\r\n >\r\n Limpar\r\n </Button>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["getIsValidRange","value","Array","DataTableSliderFilter","column","title","id","React","columnFilterValue","undefined","defaultRange","unit","min","max","step","minValue","maxValue","values","facetMinValue","facetMaxValue","rangeSize","Math","range","formatValue","onFromInputChange","event","numValue","Number","onToInputChange","onSliderValueChange","onReset","HTMLDivElement","Popover","PopoverTrigger","Button","XCircle","PlusCircle","Separator","PopoverContent","Label","Input","cn","Slider"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-sort-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-sort-list.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n ArrowsDownUpIcon,\r\n CaretUpDownIcon,\r\n DotsSixVerticalIcon,\r\n TrashIcon,\r\n} from '@phosphor-icons/react'\r\nimport type { ColumnSort, SortDirection, Table } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Badge } from '@/components/badge'\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/select'\r\nimport {\r\n Sortable,\r\n SortableContent,\r\n SortableItem,\r\n SortableItemHandle,\r\n SortableOverlay,\r\n} from '@/components/sortable'\r\nimport { dataTableConfig } from '@/lib/data-table-config'\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst OPEN_MENU_SHORTCUT = 's'\r\nconst REMOVE_SORT_SHORTCUTS = ['backspace', 'delete']\r\n\r\ninterface DataTableSortListProps<TData>\r\n extends React.ComponentProps<typeof PopoverContent> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableSortList<TData>({\r\n table,\r\n ...props\r\n}: DataTableSortListProps<TData>) {\r\n const id = React.useId()\r\n const labelId = React.useId()\r\n const descriptionId = React.useId()\r\n const [open, setOpen] = React.useState(false)\r\n const addButtonRef = React.useRef<HTMLButtonElement>(null)\r\n\r\n const sorting = table.getState().sorting\r\n const onSortingChange = table.setSorting\r\n\r\n const { columnLabels, columns } = React.useMemo(() => {\r\n const labels = new Map<string, string>()\r\n const sortingIds = new Set(sorting.map(s => s.id))\r\n const availableColumns: { id: string; label: string }[] = []\r\n\r\n for (const column of table.getAllColumns()) {\r\n if (!column.getCanSort()) continue\r\n\r\n const label = column.columnDef.meta?.label ?? column.id\r\n labels.set(column.id, label)\r\n\r\n if (!sortingIds.has(column.id)) {\r\n availableColumns.push({ id: column.id, label })\r\n }\r\n }\r\n\r\n return {\r\n columnLabels: labels,\r\n columns: availableColumns,\r\n }\r\n }, [sorting, table])\r\n\r\n const onSortAdd = React.useCallback(() => {\r\n const firstColumn = columns[0]\r\n if (!firstColumn) return\r\n\r\n onSortingChange(prevSorting => [\r\n ...prevSorting,\r\n { id: firstColumn.id, desc: false },\r\n ])\r\n }, [columns, onSortingChange])\r\n\r\n const onSortUpdate = React.useCallback(\r\n (sortId: string, updates: Partial<ColumnSort>) => {\r\n onSortingChange(prevSorting => {\r\n if (!prevSorting) return prevSorting\r\n return prevSorting.map(sort =>\r\n sort.id === sortId ? { ...sort, ...updates } : sort\r\n )\r\n })\r\n },\r\n [onSortingChange]\r\n )\r\n\r\n const onSortRemove = React.useCallback(\r\n (sortId: string) => {\r\n onSortingChange(prevSorting =>\r\n prevSorting.filter(item => item.id !== sortId)\r\n )\r\n },\r\n [onSortingChange]\r\n )\r\n\r\n const onSortingReset = React.useCallback(\r\n () => onSortingChange(table.initialState.sorting),\r\n [onSortingChange, table.initialState.sorting]\r\n )\r\n\r\n React.useEffect(() => {\r\n function onKeyDown(event: KeyboardEvent) {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n !event.ctrlKey &&\r\n !event.metaKey &&\r\n !event.shiftKey\r\n ) {\r\n event.preventDefault()\r\n setOpen(true)\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n event.shiftKey &&\r\n sorting.length > 0\r\n ) {\r\n event.preventDefault()\r\n onSortingReset()\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [sorting.length, onSortingReset])\r\n\r\n const onTriggerKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (\r\n REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase()) &&\r\n sorting.length > 0\r\n ) {\r\n event.preventDefault()\r\n onSortingReset()\r\n }\r\n },\r\n [sorting.length, onSortingReset]\r\n )\r\n\r\n return (\r\n <Sortable\r\n value={sorting}\r\n onValueChange={onSortingChange}\r\n getItemValue={item => item.id}\r\n >\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\" onKeyDown={onTriggerKeyDown}>\r\n <ArrowsDownUpIcon />\r\n Ordenar\r\n {sorting.length > 0 && (\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"h-[18.24px] rounded-[3.2px] px-[5.12px] font-mono font-normal text-[10.4px]\"\r\n >\r\n {sorting.length}\r\n </Badge>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n aria-labelledby={labelId}\r\n aria-describedby={descriptionId}\r\n className=\"flex w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] flex-col gap-3.5 p-4 sm:min-w-[380px]\"\r\n {...props}\r\n >\r\n <div className=\"flex flex-col gap-1\">\r\n <h4 id={labelId} className=\"font-medium leading-none\">\r\n {sorting.length > 0\r\n ? 'Ordenar por'\r\n : 'Nenhuma ordenação aplicada'}\r\n </h4>\r\n <p\r\n id={descriptionId}\r\n className={cn(\r\n 'text-gray-500 text-sm',\r\n sorting.length > 0 && 'sr-only'\r\n )}\r\n >\r\n {sorting.length > 0\r\n ? 'Modifique a ordenação para organizar suas linhas.'\r\n : 'Adicione uma ordenação para organizar suas linhas.'}\r\n </p>\r\n </div>\r\n {sorting.length > 0 && (\r\n <SortableContent asChild>\r\n <div\r\n role=\"list\"\r\n className=\"flex max-h-[300px] flex-col gap-2 overflow-y-auto p-1\"\r\n >\r\n {sorting.map(sort => (\r\n <DataTableSortItem\r\n key={sort.id}\r\n sort={sort}\r\n sortItemId={`${id}-sort-${sort.id}`}\r\n columns={columns}\r\n columnLabels={columnLabels}\r\n onSortUpdate={onSortUpdate}\r\n onSortRemove={onSortRemove}\r\n />\r\n ))}\r\n </div>\r\n </SortableContent>\r\n )}\r\n <div className=\"flex w-full items-center gap-2\">\r\n <Button\r\n size=\"sm\"\r\n className=\"rounded\"\r\n ref={addButtonRef}\r\n onClick={onSortAdd}\r\n disabled={columns.length === 0}\r\n >\r\n Adicionar\r\n </Button>\r\n {sorting.length > 0 && (\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"rounded\"\r\n onClick={onSortingReset}\r\n >\r\n Resetar\r\n </Button>\r\n )}\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n <SortableOverlay>\r\n <div className=\"flex items-center gap-2\">\r\n <div className=\"h-10 w-[180px] rounded-sm bg-primary/10\" />\r\n <div className=\"h-10 w-24 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n </div>\r\n </SortableOverlay>\r\n </Sortable>\r\n )\r\n}\r\n\r\ninterface DataTableSortItemProps {\r\n sort: ColumnSort\r\n sortItemId: string\r\n columns: { id: string; label: string }[]\r\n columnLabels: Map<string, string>\r\n onSortUpdate: (sortId: string, updates: Partial<ColumnSort>) => void\r\n onSortRemove: (sortId: string) => void\r\n}\r\n\r\nfunction DataTableSortItem({\r\n sort,\r\n sortItemId,\r\n columns,\r\n columnLabels,\r\n onSortUpdate,\r\n onSortRemove,\r\n}: DataTableSortItemProps) {\r\n const fieldListboxId = `${sortItemId}-field-listbox`\r\n const fieldTriggerId = `${sortItemId}-field-trigger`\r\n const directionListboxId = `${sortItemId}-direction-listbox`\r\n\r\n const [showFieldSelector, setShowFieldSelector] = React.useState(false)\r\n const [showDirectionSelector, setShowDirectionSelector] =\r\n React.useState(false)\r\n\r\n const onItemKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (showFieldSelector || showDirectionSelector) {\r\n return\r\n }\r\n\r\n if (REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase())) {\r\n event.preventDefault()\r\n onSortRemove(sort.id)\r\n }\r\n },\r\n [sort.id, showFieldSelector, showDirectionSelector, onSortRemove]\r\n )\r\n\r\n return (\r\n <SortableItem value={sort.id} asChild>\r\n <div\r\n role=\"listitem\"\r\n id={sortItemId}\r\n tabIndex={-1}\r\n className=\"flex items-center gap-2\"\r\n onKeyDown={onItemKeyDown}\r\n >\r\n <Popover open={showFieldSelector} onOpenChange={setShowFieldSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id={fieldTriggerId}\r\n role=\"combobox\"\r\n aria-controls={fieldListboxId}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"w-44 justify-between rounded font-normal\"\r\n >\r\n <span className=\"truncate\">{columnLabels.get(sort.id)}</span>\r\n <CaretUpDownIcon className=\"opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={fieldListboxId}\r\n className=\"w-[var(--radix-popover-trigger-width)] origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n <Command>\r\n <CommandInput placeholder=\"Buscar campo...\" />\r\n <CommandList>\r\n <CommandEmpty>Nenhum campo encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n value={column.id}\r\n onSelect={value => onSortUpdate(sort.id, { id: value })}\r\n >\r\n <span className=\"truncate\">{column.label}</span>\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n <Select\r\n open={showDirectionSelector}\r\n onOpenChange={setShowDirectionSelector}\r\n value={sort.desc ? 'desc' : 'asc'}\r\n onValueChange={(value: SortDirection) =>\r\n onSortUpdate(sort.id, { desc: value === 'desc' })\r\n }\r\n >\r\n <SelectTrigger\r\n aria-controls={directionListboxId}\r\n className=\"h-10 w-24 rounded [&[data-size]]:h-10\"\r\n >\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent\r\n id={directionListboxId}\r\n className=\"min-w-[var(--radix-select-trigger-width)] origin-[var(--radix-select-content-transform-origin)]\"\r\n >\r\n {dataTableConfig.sortOrders.map(order => (\r\n <SelectItem key={order.value} value={order.value}>\r\n {order.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n <Button\r\n aria-controls={sortItemId}\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-10 shrink-0 rounded\"\r\n onClick={() => onSortRemove(sort.id)}\r\n >\r\n <TrashIcon weight=\"bold\" />\r\n </Button>\r\n <SortableItemHandle asChild>\r\n <Button\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"size-10 shrink-0 rounded\"\r\n >\r\n <DotsSixVerticalIcon weight=\"bold\" />\r\n </Button>\r\n </SortableItemHandle>\r\n </div>\r\n </SortableItem>\r\n )\r\n}\r\n"],"names":["REMOVE_SORT_SHORTCUTS","DataTableSortList","table","props","id","React","labelId","descriptionId","open","setOpen","addButtonRef","sorting","onSortingChange","columnLabels","columns","labels","Map","sortingIds","Set","s","availableColumns","column","label","onSortAdd","firstColumn","prevSorting","onSortUpdate","sortId","updates","sort","onSortRemove","item","onSortingReset","onKeyDown","event","HTMLInputElement","HTMLTextAreaElement","window","onTriggerKeyDown","Sortable","Popover","PopoverTrigger","Button","ArrowsDownUpIcon","Badge","PopoverContent","cn","SortableContent","DataTableSortItem","SortableOverlay","sortItemId","fieldListboxId","fieldTriggerId","directionListboxId","showFieldSelector","setShowFieldSelector","showDirectionSelector","setShowDirectionSelector","onItemKeyDown","SortableItem","CaretUpDownIcon","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","value","Select","SelectTrigger","SelectValue","SelectContent","dataTableConfig","order","SelectItem","TrashIcon","SortableItemHandle","DotsSixVerticalIcon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-toolbar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-toolbar.tsx"],"sourcesContent":["\r\n\r\nimport { XIcon } from '@phosphor-icons/react'\r\nimport type { Column, Table } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { DataTableDateFilter } from '@/components/data-table/data-table-date-filter'\r\nimport { DataTableFacetedFilter } from '@/components/data-table/data-table-faceted-filter'\r\nimport { DataTableSliderFilter } from '@/components/data-table/data-table-slider-filter'\r\nimport { DataTableViewOptions } from '@/components/data-table/data-table-view-options'\r\nimport { Input } from '@/components/input'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTableToolbarProps<TData> extends React.ComponentProps<'div'> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableToolbar<TData>({\r\n table,\r\n children,\r\n className,\r\n ...props\r\n}: DataTableToolbarProps<TData>) {\r\n const isFiltered = table.getState().columnFilters.length > 0\r\n\r\n const columns = React.useMemo(\r\n () => table.getAllColumns().filter(column => column.getCanFilter()),\r\n [table]\r\n )\r\n\r\n const onReset = React.useCallback(() => {\r\n table.resetColumnFilters()\r\n }, [table])\r\n\r\n return (\r\n <div\r\n role=\"toolbar\"\r\n aria-orientation=\"horizontal\"\r\n className={cn(\r\n 'flex w-full items-start justify-between gap-2',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex flex-1 flex-wrap items-center gap-2\">\r\n {columns.map(column => (\r\n <DataTableToolbarFilter key={column.id} column={column} />\r\n ))}\r\n {isFiltered && (\r\n <Button\r\n aria-label=\"Reset filters\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={onReset}\r\n >\r\n <XIcon />\r\n Limpar\r\n </Button>\r\n )}\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n {children}\r\n <DataTableViewOptions table={table} />\r\n </div>\r\n </div>\r\n )\r\n}\r\ninterface DataTableToolbarFilterProps<TData> {\r\n column: Column<TData>\r\n}\r\n\r\nfunction DataTableToolbarFilter<TData>({\r\n column,\r\n}: DataTableToolbarFilterProps<TData>) {\r\n {\r\n const columnMeta = column.columnDef.meta\r\n\r\n const onFilterRender = React.useCallback(() => {\r\n if (!columnMeta?.variant) return null\r\n\r\n switch (columnMeta.variant) {\r\n case 'text':\r\n return (\r\n <Input\r\n placeholder={columnMeta.placeholder ?? columnMeta.label}\r\n value={(column.getFilterValue() as string) ?? ''}\r\n onChange={event => column.setFilterValue(event.target.value)}\r\n className=\"h-9 w-40 lg:w-56\"\r\n classNames={{\r\n input: 'text-sm',\r\n }}\r\n />\r\n )\r\n\r\n case 'number':\r\n return (\r\n <div className=\"relative\">\r\n <Input\r\n type=\"number\"\r\n inputMode=\"numeric\"\r\n placeholder={columnMeta.placeholder ?? columnMeta.label}\r\n value={(column.getFilterValue() as string) ?? ''}\r\n onChange={event => column.setFilterValue(event.target.value)}\r\n className={cn('h-10 w-[120px]', columnMeta.unit && 'pr-8')}\r\n classNames={{\r\n input: 'text-sm',\r\n }}\r\n />\r\n {columnMeta.unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {columnMeta.unit}\r\n </span>\r\n )}\r\n </div>\r\n )\r\n\r\n case 'range':\r\n return (\r\n <DataTableSliderFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n />\r\n )\r\n\r\n case 'date':\r\n case 'dateRange':\r\n return (\r\n <DataTableDateFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n multiple={columnMeta.variant === 'dateRange'}\r\n />\r\n )\r\n\r\n case 'select':\r\n case 'multiSelect':\r\n return (\r\n <DataTableFacetedFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n options={columnMeta.options ?? []}\r\n multiple={columnMeta.variant === 'multiSelect'}\r\n />\r\n )\r\n\r\n default:\r\n return null\r\n }\r\n }, [column, columnMeta])\r\n\r\n return onFilterRender()\r\n }\r\n}\r\n"],"names":["DataTableToolbar","table","children","className","props","isFiltered","columns","React","column","onReset","cn","DataTableToolbarFilter","Button","XIcon","DataTableViewOptions","columnMeta","onFilterRender","Input","event","DataTableSliderFilter","DataTableDateFilter","DataTableFacetedFilter"],"mappings":";uhBAkBO,SAASA,EAAwB,CACtCC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACT,GAAGC,EAC0B,EAC7B,IAAMC,EAAaJ,EAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAG,EAErDK,EAAUC,EACd,IAAMN,EAAM,aAAa,GAAG,MAAM,CAACO,GAAUA,EAAO,YAAY,IAChE,CAACP,EAAM,EAGHQ,EAAUF,EAAkB,KAChCN,EAAM,kBAAkB,EAC1B,EAAG,CAACA,EAAM,EAEV,OACE,EAAC,OACC,KAAK,UACL,mBAAiB,aACjB,UAAWS,EACT,gDACAP,GAED,GAAGC,CAAK,C,UAET,EAAC,OAAI,UAAU,2C,UACZE,EAAQ,GAAG,CAACE,GACX,EAACG,EAAAA,CAAuC,OAAQH,C,EAAnBA,EAAO,EAAE,GAEvCH,GACC,EAACO,EAAMA,CACL,aAAW,gBACX,QAAQ,UACR,KAAK,KACL,QAASH,E,UAET,EAACI,EAAKA,CAAAA,GAAG,S,MAKf,EAAC,OAAI,UAAU,0B,UACZX,EACD,EAACY,EAAoBA,CAAC,MAAOb,C,QAIrC,CAKA,SAASU,EAA8B,CACrCH,OAAAA,CAAM,CAC6B,EACnC,CACE,IAAMO,EAAaP,EAAO,SAAS,CAAC,IAAI,CA2ExC,OAAOQ,EAzEkC,KACvC,GAAI,CAACD,GAAY,QAAS,OAAO,KAEjC,OAAQA,EAAW,OAAO,EACxB,IAAK,OACH,OACE,EAACE,EAAKA,CACJ,YAAaF,EAAW,WAAW,EAAIA,EAAW,KAAK,CACvD,MAAQP,EAAO,cAAc,IAAiB,GAC9C,SAAUU,GAASV,EAAO,cAAc,CAACU,EAAM,MAAM,CAAC,KAAK,EAC3D,UAAU,mBACV,WAAY,CACV,MAAO,SACT,C,EAIN,KAAK,SACH,OACE,EAAC,OAAI,UAAU,W,UACb,EAACD,EAAKA,CACJ,KAAK,SACL,UAAU,UACV,YAAaF,EAAW,WAAW,EAAIA,EAAW,KAAK,CACvD,MAAQP,EAAO,cAAc,IAAiB,GAC9C,SAAUU,GAASV,EAAO,cAAc,CAACU,EAAM,MAAM,CAAC,KAAK,EAC3D,UAAWR,EAAG,iBAAkBK,EAAW,IAAI,EAAI,QACnD,WAAY,CACV,MAAO,SACT,C,GAEDA,EAAW,IAAI,EACd,EAAC,QAAK,UAAU,8G,SACbA,EAAW,IAAI,KAM1B,KAAK,QACH,OACE,EAACI,EAAqBA,CACpB,OAAQX,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,EAI1C,KAAK,OACL,IAAK,YACH,OACE,EAACY,EAAmBA,CAClB,OAAQZ,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,CACpC,SAAUO,cAAAA,EAAW,OAAO,EAIlC,KAAK,SACL,IAAK,cACH,OACE,EAACM,EAAsBA,CACrB,OAAQb,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,CACpC,QAASO,EAAW,OAAO,EAAI,EAAE,CACjC,SAAUA,gBAAAA,EAAW,OAAO,EAIlC,SACE,OAAO,IACX,CACF,EAAG,CAACP,EAAQO,EAAW,GAGzB,CACF,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table-view-options.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-view-options.tsx"],"sourcesContent":["\r\n\r\nimport { CaretUpDownIcon, CheckIcon, SlidersHorizontalIcon } from '@phosphor-icons/react'\r\nimport type { Table } from '@tanstack/react-table'\r\n\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { cn } from '@/lib/utils'\r\nimport * as React from 'react'\r\n\r\ninterface DataTableViewOptionsProps<TData> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableViewOptions<TData>({\r\n table,\r\n}: DataTableViewOptionsProps<TData>) {\r\n const columns = React.useMemo(\r\n () =>\r\n table\r\n .getAllColumns()\r\n .filter(\r\n column =>\r\n typeof column.accessorFn !== 'undefined' && column.getCanHide()\r\n ),\r\n [table]\r\n )\r\n\r\n if (columns.length <= 0) {\r\n return null\r\n }\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n aria-label=\"Toggle columns\"\r\n role=\"combobox\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n className=\"ml-auto hidden lg:flex\"\r\n >\r\n <SlidersHorizontalIcon />\r\n Ver\r\n <CaretUpDownIcon className=\"ml-auto opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent align=\"end\" className=\"w-44 p-0\">\r\n <Command>\r\n <CommandInput placeholder=\"Buscar colunas...\" />\r\n <CommandList>\r\n <CommandEmpty>Nenhuma coluna encontrada.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n onSelect={() =>\r\n column.toggleVisibility(!column.getIsVisible())\r\n }\r\n >\r\n <span className=\"truncate\">\r\n {column.columnDef.meta?.label ?? column.id}\r\n </span>\r\n <CheckIcon\r\n className={cn(\r\n 'ml-auto size-4 shrink-0',\r\n column.getIsVisible() ? 'opacity-100' : 'opacity-0'\r\n )}\r\n />\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["DataTableViewOptions","table","columns","React","column","Popover","PopoverTrigger","Button","SlidersHorizontalIcon","CaretUpDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","CheckIcon","cn"],"mappings":";kdAsBO,SAASA,EAA4B,CAC1CC,MAAAA,CAAK,CAC4B,EACjC,IAAMC,EAAUC,EACd,IACEF,EACG,aAAa,GACb,MAAM,CACLG,GACE,SAAOA,EAAO,UAAU,EAAoBA,EAAO,UAAU,IAErE,CAACH,EAAM,SAGT,EAAY,MAAM,EAAI,EACb,KAIP,EAACI,EAAOA,C,UACN,EAACC,EAAcA,CAAC,QAAO,G,SACrB,EAACC,EAAMA,CACL,aAAW,iBACX,KAAK,WACL,QAAQ,UACR,KAAK,KACL,UAAU,yB,UAEV,EAACC,EAAqBA,CAAAA,GAAG,MAEzB,EAACC,EAAeA,CAAC,UAAU,oB,QAG/B,EAACC,EAAcA,CAAC,MAAM,MAAM,UAAU,W,SACpC,EAACC,EAAOA,C,UACN,EAACC,EAAYA,CAAC,YAAY,mB,GAC1B,EAACC,EAAWA,C,UACV,EAACC,EAAYA,C,SAAC,4B,GACd,EAACC,EAAYA,C,SACVb,EAAQ,GAAG,CAACE,GACX,EAACY,EAAWA,CAEV,SAAU,IACRZ,EAAO,gBAAgB,CAAC,CAACA,EAAO,YAAY,I,UAG9C,EAAC,QAAK,UAAU,W,SACbA,EAAO,SAAS,CAAC,IAAI,EAAE,OAASA,EAAO,EAAE,GAE5C,EAACa,EAASA,CACR,UAAWC,EACT,0BACAd,EAAO,YAAY,GAAK,cAAgB,Y,KAXvCA,EAAO,EAAE,E,aAsBhC,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\data-table.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table.tsx"],"sourcesContent":["import { type Table as TanstackTable, flexRender } from '@tanstack/react-table'\r\nimport type * as React from 'react'\r\n\r\nimport { DataTablePagination } from '@/components/data-table/data-table-pagination'\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/table'\r\nimport { getCommonPinningStyles } from '@/lib/data-table'\r\nimport { cn } from '@/lib/utils'\r\nimport {\r\n ContextMenu,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuTrigger,\r\n} from '../context-menu'\r\n\r\ninterface DataTableProps<TData> extends React.ComponentProps<'div'> {\r\n table: TanstackTable<TData>\r\n actionBar?: React.ReactNode\r\n onRowClick?: (row: TData) => void\r\n contextMenuOptions?: (row: TData) => { label: string; onClick: () => void }[]\r\n classNames?: {\r\n table?: {\r\n wrapper?: string\r\n header?: string\r\n head?: string\r\n row?: string\r\n cell?: string\r\n }\r\n }\r\n hasPagination?: boolean\r\n}\r\n\r\nexport function DataTable<TData>({\r\n table,\r\n actionBar,\r\n onRowClick,\r\n contextMenuOptions,\r\n children,\r\n className,\r\n classNames,\r\n hasPagination = true,\r\n ...props\r\n}: DataTableProps<TData>) {\r\n return (\r\n <div\r\n className={cn('flex w-full flex-col gap-2.5 overflow-auto', className)}\r\n {...props}\r\n >\r\n {children}\r\n <Table\r\n classNames={{\r\n wrapper: classNames?.table?.wrapper,\r\n }}\r\n >\r\n <TableHeader className={classNames?.table?.header}>\r\n {table.getHeaderGroups().map(headerGroup => (\r\n <TableRow key={headerGroup.id} className={classNames?.table?.row}>\r\n {headerGroup.headers.map(header => (\r\n <TableHead\r\n key={header.id}\r\n colSpan={header.colSpan}\r\n style={{\r\n ...getCommonPinningStyles({ column: header.column }),\r\n }}\r\n className={classNames?.table?.head}\r\n >\r\n {header.isPlaceholder\r\n ? null\r\n : flexRender(\r\n header.column.columnDef.header,\r\n header.getContext()\r\n )}\r\n </TableHead>\r\n ))}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {table.getRowModel().rows?.length ? (\r\n table.getRowModel().rows.map(row => (\r\n <ContextMenu key={row.id}>\r\n <ContextMenuTrigger asChild>\r\n <TableRow\r\n key={row.id}\r\n data-state={row.getIsSelected() && 'selected'}\r\n onClick={() => onRowClick?.(row.original)}\r\n className={cn(\r\n classNames?.table?.row,\r\n onRowClick && row.getIsSelected() && 'border-primary'\r\n )}\r\n >\r\n {row.getVisibleCells().map(cell => (\r\n <TableCell\r\n key={cell.id}\r\n style={{\r\n ...getCommonPinningStyles({ column: cell.column }),\r\n }}\r\n className={classNames?.table?.cell}\r\n >\r\n {flexRender(\r\n cell.column.columnDef.cell,\r\n cell.getContext()\r\n )}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </ContextMenuTrigger>\r\n {contextMenuOptions && (\r\n <ContextMenuContent>\r\n {contextMenuOptions(row.original).map(option => (\r\n <ContextMenuItem\r\n key={option.label}\r\n onClick={option.onClick}\r\n >\r\n {option.label}\r\n </ContextMenuItem>\r\n ))}\r\n </ContextMenuContent>\r\n )}\r\n </ContextMenu>\r\n ))\r\n ) : (\r\n <TableRow>\r\n <TableCell\r\n colSpan={table.getAllColumns().length}\r\n className=\"h-24 text-center\"\r\n >\r\n Nenhum resultado\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n <div className=\"flex flex-col gap-2.5\">\r\n {hasPagination && <DataTablePagination table={table} />}\r\n {actionBar &&\r\n table.getFilteredSelectedRowModel().rows.length > 0 &&\r\n actionBar}\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTable","table","actionBar","onRowClick","contextMenuOptions","children","className","classNames","hasPagination","props","cn","Table","TableHeader","headerGroup","TableRow","header","TableHead","getCommonPinningStyles","flexRender","TableBody","row","ContextMenu","ContextMenuTrigger","cell","TableCell","ContextMenuContent","option","ContextMenuItem","DataTablePagination"],"mappings":"qfAsCO,SAASA,EAAiB,CAC/BC,MAAAA,CAAK,CACLC,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACVC,mBAAAA,CAAkB,CAClBC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACVC,cAAAA,EAAgB,EAAI,CACpB,GAAGC,EACmB,EACtB,OACE,EAAC,OACC,UAAWC,EAAG,6CAA8CJ,GAC3D,GAAGG,CAAK,C,UAERJ,EACD,EAACM,EAAKA,CACJ,WAAY,CACV,QAASJ,GAAY,OAAO,OAC9B,E,UAEA,EAACK,EAAWA,CAAC,UAAWL,GAAY,OAAO,O,SACxCN,EAAM,eAAe,GAAG,GAAG,CAACY,AAAAA,GAC3B,EAACC,EAAQA,CAAsB,UAAWP,GAAY,OAAO,I,SAC1DM,EAAY,OAAO,CAAC,GAAG,CAACE,AAAAA,GACvB,EAACC,EAASA,CAER,QAASD,EAAO,OAAO,CACvB,MAAO,CACL,GAAGE,EAAuB,CAAE,OAAQF,EAAO,MAAM,AAAC,EAAE,AACtD,EACA,UAAWR,GAAY,OAAO,K,SAE7BQ,EAAO,aAAa,CACjB,KACAG,EACEH,EAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAC9BA,EAAO,UAAU,G,EAXlBA,EAAO,EAAE,E,EAHLF,EAAY,EAAE,E,GAqBjC,EAACM,EAASA,C,SACPlB,EAAM,WAAW,GAAG,IAAI,EAAE,OACzBA,EAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAACmB,AAAAA,GAC3B,EAACC,EAAWA,C,UACV,EAACC,EAAkBA,CAAC,QAAO,G,SACzB,EAACR,EAAQA,CAEP,aAAYM,EAAI,aAAa,IAAM,WACnC,QAAS,IAAMjB,IAAaiB,EAAI,QAAQ,EACxC,UAAWV,EACTH,GAAY,OAAO,IACnBJ,GAAciB,EAAI,aAAa,IAAM,kB,SAGtCA,EAAI,eAAe,GAAG,GAAG,CAACG,AAAAA,GACzB,EAACC,EAASA,CAER,MAAO,CACL,GAAGP,EAAuB,CAAE,OAAQM,EAAK,MAAM,AAAC,EAAE,AACpD,EACA,UAAWhB,GAAY,OAAO,K,SAE7BW,EACCK,EAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAC1BA,EAAK,UAAU,G,EARZA,EAAK,EAAE,E,EAVXH,EAAI,EAAE,C,GAwBdhB,GACC,EAACqB,EAAkBA,C,SAChBrB,EAAmBgB,EAAI,QAAQ,EAAE,GAAG,CAACM,AAAAA,GACpC,EAACC,EAAeA,CAEd,QAASD,EAAO,OAAO,C,SAEtBA,EAAO,KAAK,A,EAHRA,EAAO,KAAK,E,KA/BTN,EAAI,EAAE,GA0C1B,EAACN,EAAQA,C,SACP,EAACU,EAASA,CACR,QAASvB,EAAM,aAAa,GAAG,MAAM,CACrC,UAAU,mB,SACX,kB,UAOT,EAAC,OAAI,UAAU,wB,UACZO,GAAiB,EAACoB,EAAmBA,CAAC,MAAO3B,C,GAC7CC,GACCD,EAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAG,GAClDC,E,KAIV,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\index.js","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["Object","Symbol"],"mappings":"gsCAAA,EAAoB,CAAC,CAAG,CAAC,EAAS,KACjC,IAAI,IAAI,KAAO,EACL,EAAoB,CAAC,CAAC,EAAY,IAAQ,CAAC,EAAoB,CAAC,CAAC,EAAS,IACzEA,OAAO,cAAc,CAAC,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNA,EAAoB,CAAC,CAAG,CAAC,EAAK,IAAUA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClF,EAAoB,CAAC,CAAG,AAAC,IACrB,AAAkB,aAAlB,OAAOC,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAAC,EAASC,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAAC,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\date-picker-with-range.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker-with-range.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlankIcon } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\nimport { DateRange } from 'react-day-picker'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\ninterface DatePickerWithRangeProps {\r\n startDate?: Date\r\n endDate?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: DateRange | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DatePickerWithRange\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePickerWithRange({\r\n startDate,\r\n endDate,\r\n onChange,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n}: DatePickerWithRangeProps) {\r\n const [date, setDate] = useState<DateRange | undefined>({\r\n from: startDate,\r\n to: endDate,\r\n })\r\n\r\n const isRangeSelected = date?.from || date?.to\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"outline\"\r\n className={cn(\r\n 'h-10 min-w-60 justify-between overflow-hidden rounded-md px-4 text-left font-normal hover:bg-background dark:hover:bg-input/50',\r\n !isRangeSelected && 'text-muted-foreground',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n <div className=\"flex flex-grow items-center\">\r\n <CalendarBlankIcon\r\n weight=\"regular\"\r\n className=\"mr-2 size-4 text-foreground\"\r\n />\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, 'dd/MM/yyyy')} -{' '}\r\n {format(date.to, 'dd/MM/yyyy')}\r\n </>\r\n ) : (\r\n format(date.from, 'dd/MM/yyyy')\r\n )\r\n ) : (\r\n placeholder || 'Selecione um período'\r\n )}\r\n </div>\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n autoFocus\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={date => {\r\n setDate(date)\r\n onChange?.(date)\r\n }}\r\n numberOfMonths={2}\r\n disabled={disabled}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePickerWithRange }\r\n"],"names":["DatePickerWithRange","startDate","endDate","onChange","placeholder","className","disabled","date","setDate","useState","Popover","PopoverTrigger","Button","cn","CalendarBlankIcon","format","PopoverContent","Calendar"],"mappings":";+XAyBA,SAASA,EAAoB,CAC3BC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CACS,EACzB,GAAM,CAACC,EAAMC,EAAQ,CAAGC,EAAgC,CACtD,KAAMR,EACN,GAAIC,CACN,GAIA,OACE,EAACQ,EAAOA,C,UACN,EAACC,EAAcA,CAAC,QAAO,G,SACrB,EAACC,EAAMA,CACL,GAAG,OACH,QAAQ,UACR,UAAWC,EACT,iIACA,CAVcN,CAAAA,GAAM,MAAQA,GAAM,EAAC,GAUf,wBACpBF,GAEF,SAAUC,E,SAEV,EAAC,OAAI,UAAU,8B,UACb,EAACQ,EAAiBA,CAChB,OAAO,UACP,UAAU,6B,GAEXP,GAAM,KACLA,EAAK,EAAE,CACL,K,UACGQ,EAAOR,EAAK,IAAI,CAAE,cAAc,KAAG,IACnCQ,EAAOR,EAAK,EAAE,CAAE,c,GAGnBQ,EAAOR,EAAK,IAAI,CAAE,cAGpBH,GAAe,0B,OAKvB,EAACY,EAAcA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,EAACC,EAAQA,CACP,UAAS,GACT,KAAK,QACL,aAAcV,GAAM,KACpB,SAAUA,EACV,SAAUA,IACRC,EAAQD,GACRJ,IAAWI,EACb,EACA,eAAgB,EAChB,SAAUD,C,OAKpB,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\date-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlankIcon } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { ComponentProps, useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n defaultValue,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n ...props\r\n}: ComponentProps<typeof Calendar> & {\r\n date?: Date\r\n defaultValue?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"outline\"\r\n size=\"default\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-background',\r\n !currentDate && 'text-muted-foreground',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlankIcon className=\"ml-4 size-4 text-foreground\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n {...props}\r\n mode=\"single\"\r\n selected={currentDate ?? defaultValue}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","defaultValue","placeholder","className","disabled","onChange","props","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlankIcon","PopoverContent","Calendar"],"mappings":";iXAeA,SAASA,EAAW,CAClBC,KAAAA,CAAI,CACJC,aAAAA,CAAY,CACZC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACR,GAAGC,EAQJ,EACC,GAAM,CAACC,EAAaC,EAAe,CAAGC,EAA2BT,GAEjE,OACE,EAACU,EAAOA,C,UACN,EAACC,EAAcA,CAAC,QAAO,G,SACrB,EAACC,EAAMA,CACL,GAAG,OACH,QAAQ,UACR,KAAK,UACL,UAAWC,EACT,6FACA,CAACN,GAAe,wBAChBJ,GAEF,SAAUC,E,UAETG,EACCO,EAAOP,EAAa,cAEpB,EAAC,Q,SAAML,GAAe,kB,GAExB,EAACa,EAAiBA,CAAC,UAAU,6B,QAGjC,EAACC,EAAcA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,EAACC,EAAQA,CACN,GAAGX,CAAK,CACT,KAAK,SACL,SAAUC,GAAeN,EACzB,SAAUD,IACRQ,EAAeR,GACfK,IAAWL,EACb,C,OAKV,Q"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\date-time-picker-with-range.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-time-picker-with-range.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank, X } from '@phosphor-icons/react/dist/ssr'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\nimport { DateRange } from 'react-day-picker'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\nimport { TimePicker } from './time-picker'\r\n\r\ninterface DateTimePickerWithRangeProps {\r\n startDate?: Date\r\n endDate?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: DateRange | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePickerWithRange\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DateTimePickerWithRange({\r\n startDate,\r\n endDate,\r\n onChange,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n}: DateTimePickerWithRangeProps) {\r\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\r\n from: startDate,\r\n to: endDate,\r\n })\r\n\r\n const handleDateChange = (newRange: Partial<DateRange> | undefined) => {\r\n if (!newRange) {\r\n setDateRange(undefined)\r\n onChange?.(undefined)\r\n return\r\n }\r\n\r\n setDateRange({\r\n from: newRange.from ?? dateRange?.from,\r\n to: newRange.to,\r\n })\r\n onChange?.({\r\n from: newRange.from ?? dateRange?.from,\r\n to: newRange.to,\r\n })\r\n }\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"outline\"\r\n className={cn(\r\n 'h-12 min-w-96 justify-between px-4 text-left font-normal',\r\n !dateRange?.from && !dateRange?.to && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {dateRange?.from ? (\r\n dateRange.to ? (\r\n `${format(dateRange.from, 'dd/MM/yyyy HH:mm')} - ${format(dateRange.to, 'dd/MM/yyyy HH:mm')}`\r\n ) : (\r\n format(dateRange.from, 'dd/MM/yyyy HH:mm')\r\n )\r\n ) : (\r\n <span>{placeholder || 'Selecione o período'}</span>\r\n )}\r\n <CalendarBlank size={20} className=\"ml-2 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\">\r\n <Calendar\r\n mode=\"range\"\r\n selected={dateRange}\r\n onSelect={handleDateChange}\r\n numberOfMonths={2}\r\n />\r\n <div className=\"flex flex-col border-stroke border-t p-3\">\r\n <div className=\"flex justify-between gap-4\">\r\n <TimePicker\r\n onTimeChange={date =>\r\n handleDateChange({ ...dateRange, from: date })\r\n }\r\n date={dateRange?.from}\r\n />\r\n <TimePicker\r\n onTimeChange={date =>\r\n handleDateChange({ ...dateRange, to: date })\r\n }\r\n date={dateRange?.to}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"flex flex-1 justify-center\">\r\n <Button\r\n variant=\"outline\"\r\n className=\"flex h-12 flex-1\"\r\n onClick={() => handleDateChange(undefined)}\r\n >\r\n <X size={12} /> Clear\r\n </Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DateTimePickerWithRange }\r\n"],"names":["DateTimePickerWithRange","startDate","endDate","onChange","placeholder","className","disabled","dateRange","setDateRange","useState","handleDateChange","newRange","undefined","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar","TimePicker","date","X"],"mappings":";2aA0BA,SAASA,EAAwB,CAC/BC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CACa,EAC7B,GAAM,CAACC,EAAWC,EAAa,CAAGC,EAAgC,CAChE,KAAMR,EACN,GAAIC,CACN,GAEMQ,EAAmB,IACvB,GAAI,CAACC,EAAU,CACbH,EAAaI,QACbT,IAAWS,QACX,MACF,CAEAJ,EAAa,CACX,KAAMG,EAAS,IAAI,EAAIJ,GAAW,KAClC,GAAII,EAAS,EAAE,GAEjBR,IAAW,CACT,KAAMQ,EAAS,IAAI,EAAIJ,GAAW,KAClC,GAAII,EAAS,EAAE,EAEnB,EAEA,OACE,EAACE,EAAOA,C,UACN,EAACC,EAAcA,CAAC,QAAO,G,SACrB,EAACC,EAAMA,CACL,GAAG,OACH,QAAQ,UACR,UAAWC,EACT,2DACA,CAACT,GAAW,MAAQ,CAACA,GAAW,IAAM,gBACtCF,GAEF,SAAUC,E,UAETC,GAAW,KACVA,EAAU,EAAE,CACV,CAAC,EAAEU,EAAOV,EAAU,IAAI,CAAE,oBAAoB,GAAG,EAAEU,EAAOV,EAAU,EAAE,CAAE,oBAAoB,CAAC,CAE7FU,EAAOV,EAAU,IAAI,CAAE,oBAGzB,EAAC,Q,SAAMH,GAAe,wB,GAExB,EAACc,EAAaA,CAAC,KAAM,GAAI,UAAU,oB,QAGvC,EAACC,EAAcA,CAAC,UAAU,a,UACxB,EAACC,EAAQA,CACP,KAAK,QACL,SAAUb,EACV,SAAUG,EACV,eAAgB,C,GAElB,EAAC,OAAI,UAAU,2C,SACb,EAAC,OAAI,UAAU,6B,UACb,EAACW,EAAUA,CACT,aAAcC,GACZZ,EAAiB,CAAE,GAAGH,CAAS,CAAE,KAAMe,CAAK,GAE9C,KAAMf,GAAW,I,GAEnB,EAACc,EAAUA,CACT,aAAcC,GACZZ,EAAiB,CAAE,GAAGH,CAAS,CAAE,GAAIe,CAAK,GAE5C,KAAMf,GAAW,E,QAIvB,EAAC,OAAI,UAAU,6B,SACb,EAACQ,EAAMA,CACL,QAAQ,UACR,UAAU,mBACV,QAAS,IAAML,EAAiBE,Q,UAEhC,EAACW,EAACA,CAAC,KAAM,E,GAAM,S,UAM3B,Q"}