@iclips/ui 1.4.13 → 2.0.1

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 (690) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION-v2.md +214 -0
  3. package/README.md +106 -0
  4. package/dist/alert-theme.css +94 -0
  5. package/dist/assets/illustrations/announcements.png.cjs +2 -0
  6. package/dist/assets/illustrations/announcements.png.cjs.map +1 -0
  7. package/dist/assets/illustrations/announcements.png.js +5 -0
  8. package/dist/assets/illustrations/announcements.png.js.map +1 -0
  9. package/dist/assets/illustrations/checklist-approved.png.cjs +2 -0
  10. package/dist/assets/illustrations/checklist-approved.png.cjs.map +1 -0
  11. package/dist/assets/illustrations/checklist-approved.png.js +5 -0
  12. package/dist/assets/illustrations/checklist-approved.png.js.map +1 -0
  13. package/dist/assets/illustrations/client-profile.png.cjs +2 -0
  14. package/dist/assets/illustrations/client-profile.png.cjs.map +1 -0
  15. package/dist/assets/illustrations/client-profile.png.js +5 -0
  16. package/dist/assets/illustrations/client-profile.png.js.map +1 -0
  17. package/dist/assets/illustrations/contract-agreement.png.cjs +2 -0
  18. package/dist/assets/illustrations/contract-agreement.png.cjs.map +1 -0
  19. package/dist/assets/illustrations/contract-agreement.png.js +5 -0
  20. package/dist/assets/illustrations/contract-agreement.png.js.map +1 -0
  21. package/dist/assets/illustrations/create-record.png.cjs +2 -0
  22. package/dist/assets/illustrations/create-record.png.cjs.map +1 -0
  23. package/dist/assets/illustrations/create-record.png.js +5 -0
  24. package/dist/assets/illustrations/create-record.png.js.map +1 -0
  25. package/dist/assets/illustrations/cta-action.png.cjs +2 -0
  26. package/dist/assets/illustrations/cta-action.png.cjs.map +1 -0
  27. package/dist/assets/illustrations/cta-action.png.js +5 -0
  28. package/dist/assets/illustrations/cta-action.png.js.map +1 -0
  29. package/dist/assets/illustrations/draft-document.png.cjs +2 -0
  30. package/dist/assets/illustrations/draft-document.png.cjs.map +1 -0
  31. package/dist/assets/illustrations/draft-document.png.js +5 -0
  32. package/dist/assets/illustrations/draft-document.png.js.map +1 -0
  33. package/dist/assets/illustrations/edit-company.png.cjs +2 -0
  34. package/dist/assets/illustrations/edit-company.png.cjs.map +1 -0
  35. package/dist/assets/illustrations/edit-company.png.js +5 -0
  36. package/dist/assets/illustrations/edit-company.png.js.map +1 -0
  37. package/dist/assets/illustrations/edit-document.png.cjs +2 -0
  38. package/dist/assets/illustrations/edit-document.png.cjs.map +1 -0
  39. package/dist/assets/illustrations/edit-document.png.js +5 -0
  40. package/dist/assets/illustrations/edit-document.png.js.map +1 -0
  41. package/dist/assets/illustrations/empty-no-results.png.cjs +2 -0
  42. package/dist/assets/illustrations/empty-no-results.png.cjs.map +1 -0
  43. package/dist/assets/illustrations/empty-no-results.png.js +5 -0
  44. package/dist/assets/illustrations/empty-no-results.png.js.map +1 -0
  45. package/dist/assets/illustrations/empty-not-found.png.cjs +2 -0
  46. package/dist/assets/illustrations/empty-not-found.png.cjs.map +1 -0
  47. package/dist/assets/illustrations/empty-not-found.png.js +5 -0
  48. package/dist/assets/illustrations/empty-not-found.png.js.map +1 -0
  49. package/dist/assets/illustrations/empty-task-approved.png.cjs +2 -0
  50. package/dist/assets/illustrations/empty-task-approved.png.cjs.map +1 -0
  51. package/dist/assets/illustrations/empty-task-approved.png.js +5 -0
  52. package/dist/assets/illustrations/empty-task-approved.png.js.map +1 -0
  53. package/dist/assets/illustrations/empty-workflow-status.png.cjs +2 -0
  54. package/dist/assets/illustrations/empty-workflow-status.png.cjs.map +1 -0
  55. package/dist/assets/illustrations/empty-workflow-status.png.js +5 -0
  56. package/dist/assets/illustrations/empty-workflow-status.png.js.map +1 -0
  57. package/dist/assets/illustrations/integrations.png.cjs +2 -0
  58. package/dist/assets/illustrations/integrations.png.cjs.map +1 -0
  59. package/dist/assets/illustrations/integrations.png.js +5 -0
  60. package/dist/assets/illustrations/integrations.png.js.map +1 -0
  61. package/dist/assets/illustrations/onboarding-tips.png.cjs +2 -0
  62. package/dist/assets/illustrations/onboarding-tips.png.cjs.map +1 -0
  63. package/dist/assets/illustrations/onboarding-tips.png.js +5 -0
  64. package/dist/assets/illustrations/onboarding-tips.png.js.map +1 -0
  65. package/dist/assets/illustrations/scheduled-tasks.png.cjs +2 -0
  66. package/dist/assets/illustrations/scheduled-tasks.png.cjs.map +1 -0
  67. package/dist/assets/illustrations/scheduled-tasks.png.js +5 -0
  68. package/dist/assets/illustrations/scheduled-tasks.png.js.map +1 -0
  69. package/dist/assets/illustrations/search-documents.png.cjs +2 -0
  70. package/dist/assets/illustrations/search-documents.png.cjs.map +1 -0
  71. package/dist/assets/illustrations/search-documents.png.js +5 -0
  72. package/dist/assets/illustrations/search-documents.png.js.map +1 -0
  73. package/dist/assets/illustrations/success-checkmark.png.cjs +2 -0
  74. package/dist/assets/illustrations/success-checkmark.png.cjs.map +1 -0
  75. package/dist/assets/illustrations/success-checkmark.png.js +5 -0
  76. package/dist/assets/illustrations/success-checkmark.png.js.map +1 -0
  77. package/dist/components/ui/brand-colors.cjs +2 -0
  78. package/dist/components/ui/brand-colors.cjs.map +1 -0
  79. package/dist/components/ui/brand-colors.js +8 -0
  80. package/dist/components/ui/brand-colors.js.map +1 -0
  81. package/dist/components/ui/charts/chart.cjs +8 -0
  82. package/dist/components/ui/charts/chart.cjs.map +1 -0
  83. package/dist/components/ui/charts/chart.js +214 -0
  84. package/dist/components/ui/charts/chart.js.map +1 -0
  85. package/dist/components/ui/charts/donut-chart.cjs +2 -0
  86. package/dist/components/ui/charts/donut-chart.cjs.map +1 -0
  87. package/dist/components/ui/charts/donut-chart.js +285 -0
  88. package/dist/components/ui/charts/donut-chart.js.map +1 -0
  89. package/dist/components/ui/charts/kpi-card.cjs +2 -0
  90. package/dist/components/ui/charts/kpi-card.cjs.map +1 -0
  91. package/dist/components/ui/charts/kpi-card.js +75 -0
  92. package/dist/components/ui/charts/kpi-card.js.map +1 -0
  93. package/dist/components/ui/data/advanced-data-table.cjs +2 -0
  94. package/dist/components/ui/data/advanced-data-table.cjs.map +1 -0
  95. package/dist/components/ui/data/advanced-data-table.js +69 -0
  96. package/dist/components/ui/data/advanced-data-table.js.map +1 -0
  97. package/dist/components/ui/data/comment-system.cjs +2 -0
  98. package/dist/components/ui/data/comment-system.cjs.map +1 -0
  99. package/dist/components/ui/data/comment-system.js +492 -0
  100. package/dist/components/ui/data/comment-system.js.map +1 -0
  101. package/dist/components/ui/data/data-table-empty-state.cjs +2 -0
  102. package/dist/components/ui/data/data-table-empty-state.cjs.map +1 -0
  103. package/dist/components/ui/data/data-table-empty-state.js +40 -0
  104. package/dist/components/ui/data/data-table-empty-state.js.map +1 -0
  105. package/dist/components/ui/data/data-table-toolbar.cjs +2 -0
  106. package/dist/components/ui/data/data-table-toolbar.cjs.map +1 -0
  107. package/dist/components/ui/data/data-table-toolbar.js +85 -0
  108. package/dist/components/ui/data/data-table-toolbar.js.map +1 -0
  109. package/dist/components/ui/data/data-table.cjs +2 -0
  110. package/dist/components/ui/data/data-table.cjs.map +1 -0
  111. package/dist/components/ui/data/data-table.js +181 -0
  112. package/dist/components/ui/data/data-table.js.map +1 -0
  113. package/dist/components/ui/data/document-editor.cjs +2 -0
  114. package/dist/components/ui/data/document-editor.cjs.map +1 -0
  115. package/dist/components/ui/data/document-editor.js +158 -0
  116. package/dist/components/ui/data/document-editor.js.map +1 -0
  117. package/dist/components/ui/data/editorial-calendar.cjs +2 -0
  118. package/dist/components/ui/data/editorial-calendar.cjs.map +1 -0
  119. package/dist/components/ui/data/editorial-calendar.js +840 -0
  120. package/dist/components/ui/data/editorial-calendar.js.map +1 -0
  121. package/dist/components/ui/data/filter-bar.cjs +2 -0
  122. package/dist/components/ui/data/filter-bar.cjs.map +1 -0
  123. package/dist/components/ui/data/filter-bar.js +60 -0
  124. package/dist/components/ui/data/filter-bar.js.map +1 -0
  125. package/dist/components/ui/data/filter-builder.cjs +2 -0
  126. package/dist/components/ui/data/filter-builder.cjs.map +1 -0
  127. package/dist/components/ui/data/filter-builder.js +378 -0
  128. package/dist/components/ui/data/filter-builder.js.map +1 -0
  129. package/dist/components/ui/data/filter-chip.cjs +2 -0
  130. package/dist/components/ui/data/filter-chip.cjs.map +1 -0
  131. package/dist/components/ui/data/filter-chip.js +39 -0
  132. package/dist/components/ui/data/filter-chip.js.map +1 -0
  133. package/dist/components/ui/data/mention-list.cjs +2 -0
  134. package/dist/components/ui/data/mention-list.cjs.map +1 -0
  135. package/dist/components/ui/data/mention-list.js +46 -0
  136. package/dist/components/ui/data/mention-list.js.map +1 -0
  137. package/dist/components/ui/data/table-pagination.cjs +2 -0
  138. package/dist/components/ui/data/table-pagination.cjs.map +1 -0
  139. package/dist/components/ui/data/table-pagination.js +176 -0
  140. package/dist/components/ui/data/table-pagination.js.map +1 -0
  141. package/dist/components/ui/data/table-types.cjs +2 -0
  142. package/dist/components/ui/data/table-types.cjs.map +1 -0
  143. package/dist/components/ui/data/table-types.js +14 -0
  144. package/dist/components/ui/data/table-types.js.map +1 -0
  145. package/dist/components/ui/data/table.cjs +2 -0
  146. package/dist/components/ui/data/table.cjs.map +1 -0
  147. package/dist/components/ui/data/table.js +130 -0
  148. package/dist/components/ui/data/table.js.map +1 -0
  149. package/dist/components/ui/feedback/alert.cjs +2 -0
  150. package/dist/components/ui/feedback/alert.cjs.map +1 -0
  151. package/dist/components/ui/feedback/alert.js +67 -0
  152. package/dist/components/ui/feedback/alert.js.map +1 -0
  153. package/dist/components/ui/feedback/empty-state.cjs +2 -0
  154. package/dist/components/ui/feedback/empty-state.cjs.map +1 -0
  155. package/dist/components/ui/feedback/empty-state.js +78 -0
  156. package/dist/components/ui/feedback/empty-state.js.map +1 -0
  157. package/dist/components/ui/feedback/illustrations.cjs +2 -0
  158. package/dist/components/ui/feedback/illustrations.cjs.map +1 -0
  159. package/dist/components/ui/feedback/illustrations.js +157 -0
  160. package/dist/components/ui/feedback/illustrations.js.map +1 -0
  161. package/dist/components/ui/feedback/toast.cjs +2 -0
  162. package/dist/components/ui/feedback/toast.cjs.map +1 -0
  163. package/dist/components/ui/feedback/toast.js +38 -0
  164. package/dist/components/ui/feedback/toast.js.map +1 -0
  165. package/dist/components/ui/forms/calendar.cjs +2 -0
  166. package/dist/components/ui/forms/calendar.cjs.map +1 -0
  167. package/dist/components/ui/forms/calendar.js +65 -0
  168. package/dist/components/ui/forms/calendar.js.map +1 -0
  169. package/dist/components/ui/forms/checkbox.cjs +2 -0
  170. package/dist/components/ui/forms/checkbox.cjs.map +1 -0
  171. package/dist/components/ui/forms/checkbox.js +31 -0
  172. package/dist/components/ui/forms/checkbox.js.map +1 -0
  173. package/dist/components/ui/forms/color-picker.cjs +2 -0
  174. package/dist/components/ui/forms/color-picker.cjs.map +1 -0
  175. package/dist/components/ui/forms/color-picker.js +151 -0
  176. package/dist/components/ui/forms/color-picker.js.map +1 -0
  177. package/dist/components/ui/forms/combobox.cjs +2 -0
  178. package/dist/components/ui/forms/combobox.cjs.map +1 -0
  179. package/dist/components/ui/forms/combobox.js +208 -0
  180. package/dist/components/ui/forms/combobox.js.map +1 -0
  181. package/dist/components/ui/forms/currency-input.cjs +2 -0
  182. package/dist/components/ui/forms/currency-input.cjs.map +1 -0
  183. package/dist/components/ui/forms/currency-input.js +81 -0
  184. package/dist/components/ui/forms/currency-input.js.map +1 -0
  185. package/dist/components/ui/forms/date-picker.cjs +2 -0
  186. package/dist/components/ui/forms/date-picker.cjs.map +1 -0
  187. package/dist/components/ui/forms/date-picker.js +199 -0
  188. package/dist/components/ui/forms/date-picker.js.map +1 -0
  189. package/dist/components/ui/forms/date-range-picker.cjs +2 -0
  190. package/dist/components/ui/forms/date-range-picker.cjs.map +1 -0
  191. package/dist/components/ui/forms/date-range-picker.js +305 -0
  192. package/dist/components/ui/forms/date-range-picker.js.map +1 -0
  193. package/dist/components/ui/forms/editable-badge.cjs +2 -0
  194. package/dist/components/ui/forms/editable-badge.cjs.map +1 -0
  195. package/dist/components/ui/forms/editable-badge.js +137 -0
  196. package/dist/components/ui/forms/editable-badge.js.map +1 -0
  197. package/dist/components/ui/forms/file-attachment-list.cjs +2 -0
  198. package/dist/components/ui/forms/file-attachment-list.cjs.map +1 -0
  199. package/dist/components/ui/forms/file-attachment-list.js +235 -0
  200. package/dist/components/ui/forms/file-attachment-list.js.map +1 -0
  201. package/dist/components/ui/forms/file-upload-zone.cjs +3 -0
  202. package/dist/components/ui/forms/file-upload-zone.cjs.map +1 -0
  203. package/dist/components/ui/forms/file-upload-zone.js +142 -0
  204. package/dist/components/ui/forms/file-upload-zone.js.map +1 -0
  205. package/dist/components/ui/forms/form.cjs +2 -0
  206. package/dist/components/ui/forms/form.cjs.map +1 -0
  207. package/dist/components/ui/forms/form.js +109 -0
  208. package/dist/components/ui/forms/form.js.map +1 -0
  209. package/dist/components/ui/forms/input-group.cjs +2 -0
  210. package/dist/components/ui/forms/input-group.cjs.map +1 -0
  211. package/dist/components/ui/forms/input-group.js +131 -0
  212. package/dist/components/ui/forms/input-group.js.map +1 -0
  213. package/dist/components/ui/forms/input-otp.cjs +2 -0
  214. package/dist/components/ui/forms/input-otp.cjs.map +1 -0
  215. package/dist/components/ui/forms/input-otp.js +63 -0
  216. package/dist/components/ui/forms/input-otp.js.map +1 -0
  217. package/dist/components/ui/forms/input-validation.cjs +2 -0
  218. package/dist/components/ui/forms/input-validation.cjs.map +1 -0
  219. package/dist/components/ui/forms/input-validation.js +55 -0
  220. package/dist/components/ui/forms/input-validation.js.map +1 -0
  221. package/dist/components/ui/forms/input.cjs +2 -0
  222. package/dist/components/ui/forms/input.cjs.map +1 -0
  223. package/dist/components/ui/forms/input.js +26 -0
  224. package/dist/components/ui/forms/input.js.map +1 -0
  225. package/dist/components/ui/forms/month-range-picker.cjs +2 -0
  226. package/dist/components/ui/forms/month-range-picker.cjs.map +1 -0
  227. package/dist/components/ui/forms/month-range-picker.js +263 -0
  228. package/dist/components/ui/forms/month-range-picker.js.map +1 -0
  229. package/dist/components/ui/forms/multi-select.cjs +2 -0
  230. package/dist/components/ui/forms/multi-select.cjs.map +1 -0
  231. package/dist/components/ui/forms/multi-select.js +251 -0
  232. package/dist/components/ui/forms/multi-select.js.map +1 -0
  233. package/dist/components/ui/forms/number-input.cjs +2 -0
  234. package/dist/components/ui/forms/number-input.cjs.map +1 -0
  235. package/dist/components/ui/forms/number-input.js +220 -0
  236. package/dist/components/ui/forms/number-input.js.map +1 -0
  237. package/dist/components/ui/forms/password-input.cjs +2 -0
  238. package/dist/components/ui/forms/password-input.cjs.map +1 -0
  239. package/dist/components/ui/forms/password-input.js +43 -0
  240. package/dist/components/ui/forms/password-input.js.map +1 -0
  241. package/dist/components/ui/forms/radio-group.cjs +2 -0
  242. package/dist/components/ui/forms/radio-group.cjs.map +1 -0
  243. package/dist/components/ui/forms/radio-group.js +41 -0
  244. package/dist/components/ui/forms/radio-group.js.map +1 -0
  245. package/dist/components/ui/forms/select.cjs +2 -0
  246. package/dist/components/ui/forms/select.cjs.map +1 -0
  247. package/dist/components/ui/forms/select.js +140 -0
  248. package/dist/components/ui/forms/select.js.map +1 -0
  249. package/dist/components/ui/forms/slider.cjs +2 -0
  250. package/dist/components/ui/forms/slider.cjs.map +1 -0
  251. package/dist/components/ui/forms/slider.js +62 -0
  252. package/dist/components/ui/forms/slider.js.map +1 -0
  253. package/dist/components/ui/forms/social-button.cjs +2 -0
  254. package/dist/components/ui/forms/social-button.cjs.map +1 -0
  255. package/dist/components/ui/forms/social-button.js +86 -0
  256. package/dist/components/ui/forms/social-button.js.map +1 -0
  257. package/dist/components/ui/forms/switch.cjs +2 -0
  258. package/dist/components/ui/forms/switch.cjs.map +1 -0
  259. package/dist/components/ui/forms/switch.js +31 -0
  260. package/dist/components/ui/forms/switch.js.map +1 -0
  261. package/dist/components/ui/forms/textarea.cjs +2 -0
  262. package/dist/components/ui/forms/textarea.cjs.map +1 -0
  263. package/dist/components/ui/forms/textarea.js +22 -0
  264. package/dist/components/ui/forms/textarea.js.map +1 -0
  265. package/dist/components/ui/forms/time-picker.cjs +2 -0
  266. package/dist/components/ui/forms/time-picker.cjs.map +1 -0
  267. package/dist/components/ui/forms/time-picker.js +195 -0
  268. package/dist/components/ui/forms/time-picker.js.map +1 -0
  269. package/dist/components/ui/forms/toggle-group.cjs +2 -0
  270. package/dist/components/ui/forms/toggle-group.cjs.map +1 -0
  271. package/dist/components/ui/forms/toggle-group.js +53 -0
  272. package/dist/components/ui/forms/toggle-group.js.map +1 -0
  273. package/dist/components/ui/forms/toggle.cjs +2 -0
  274. package/dist/components/ui/forms/toggle.cjs.map +1 -0
  275. package/dist/components/ui/forms/toggle.js +40 -0
  276. package/dist/components/ui/forms/toggle.js.map +1 -0
  277. package/dist/components/ui/layout/accordion.cjs +2 -0
  278. package/dist/components/ui/layout/accordion.cjs.map +1 -0
  279. package/dist/components/ui/layout/accordion.js +53 -0
  280. package/dist/components/ui/layout/accordion.js.map +1 -0
  281. package/dist/components/ui/layout/auth-layout.cjs +2 -0
  282. package/dist/components/ui/layout/auth-layout.cjs.map +1 -0
  283. package/dist/components/ui/layout/auth-layout.js +74 -0
  284. package/dist/components/ui/layout/auth-layout.js.map +1 -0
  285. package/dist/components/ui/layout/card.cjs +2 -0
  286. package/dist/components/ui/layout/card.cjs.map +1 -0
  287. package/dist/components/ui/layout/card.js +104 -0
  288. package/dist/components/ui/layout/card.js.map +1 -0
  289. package/dist/components/ui/layout/carousel.cjs +2 -0
  290. package/dist/components/ui/layout/carousel.cjs.map +1 -0
  291. package/dist/components/ui/layout/carousel.js +189 -0
  292. package/dist/components/ui/layout/carousel.js.map +1 -0
  293. package/dist/components/ui/layout/collapsible.cjs +2 -0
  294. package/dist/components/ui/layout/collapsible.cjs.map +1 -0
  295. package/dist/components/ui/layout/collapsible.js +30 -0
  296. package/dist/components/ui/layout/collapsible.js.map +1 -0
  297. package/dist/components/ui/layout/page-header.cjs +2 -0
  298. package/dist/components/ui/layout/page-header.cjs.map +1 -0
  299. package/dist/components/ui/layout/page-header.js +81 -0
  300. package/dist/components/ui/layout/page-header.js.map +1 -0
  301. package/dist/components/ui/layout/resizable.cjs +2 -0
  302. package/dist/components/ui/layout/resizable.cjs.map +1 -0
  303. package/dist/components/ui/layout/resizable.js +45 -0
  304. package/dist/components/ui/layout/resizable.js.map +1 -0
  305. package/dist/components/ui/layout/scroll-area.cjs +2 -0
  306. package/dist/components/ui/layout/scroll-area.cjs.map +1 -0
  307. package/dist/components/ui/layout/scroll-area.js +56 -0
  308. package/dist/components/ui/layout/scroll-area.js.map +1 -0
  309. package/dist/components/ui/navigation/breadcrumb.cjs +2 -0
  310. package/dist/components/ui/navigation/breadcrumb.cjs.map +1 -0
  311. package/dist/components/ui/navigation/breadcrumb.js +94 -0
  312. package/dist/components/ui/navigation/breadcrumb.js.map +1 -0
  313. package/dist/components/ui/navigation/navigation-menu.cjs +2 -0
  314. package/dist/components/ui/navigation/navigation-menu.cjs.map +1 -0
  315. package/dist/components/ui/navigation/navigation-menu.js +144 -0
  316. package/dist/components/ui/navigation/navigation-menu.js.map +1 -0
  317. package/dist/components/ui/navigation/pagination.cjs +2 -0
  318. package/dist/components/ui/navigation/pagination.cjs.map +1 -0
  319. package/dist/components/ui/navigation/pagination.js +106 -0
  320. package/dist/components/ui/navigation/pagination.js.map +1 -0
  321. package/dist/components/ui/navigation/sidebar.cjs +2 -0
  322. package/dist/components/ui/navigation/sidebar.cjs.map +1 -0
  323. package/dist/components/ui/navigation/sidebar.js +579 -0
  324. package/dist/components/ui/navigation/sidebar.js.map +1 -0
  325. package/dist/components/ui/navigation/tabs.cjs +2 -0
  326. package/dist/components/ui/navigation/tabs.cjs.map +1 -0
  327. package/dist/components/ui/navigation/tabs.js +58 -0
  328. package/dist/components/ui/navigation/tabs.js.map +1 -0
  329. package/dist/components/ui/navigation/underline-tabs.cjs +2 -0
  330. package/dist/components/ui/navigation/underline-tabs.cjs.map +1 -0
  331. package/dist/components/ui/navigation/underline-tabs.js +109 -0
  332. package/dist/components/ui/navigation/underline-tabs.js.map +1 -0
  333. package/dist/components/ui/overlays/alert-dialog.cjs +2 -0
  334. package/dist/components/ui/overlays/alert-dialog.cjs.map +1 -0
  335. package/dist/components/ui/overlays/alert-dialog.js +135 -0
  336. package/dist/components/ui/overlays/alert-dialog.js.map +1 -0
  337. package/dist/components/ui/overlays/command.cjs +2 -0
  338. package/dist/components/ui/overlays/command.cjs.map +1 -0
  339. package/dist/components/ui/overlays/command.js +143 -0
  340. package/dist/components/ui/overlays/command.js.map +1 -0
  341. package/dist/components/ui/overlays/context-menu.cjs +2 -0
  342. package/dist/components/ui/overlays/context-menu.cjs.map +1 -0
  343. package/dist/components/ui/overlays/context-menu.js +197 -0
  344. package/dist/components/ui/overlays/context-menu.js.map +1 -0
  345. package/dist/components/ui/overlays/dialog.cjs +2 -0
  346. package/dist/components/ui/overlays/dialog.cjs.map +1 -0
  347. package/dist/components/ui/overlays/dialog.js +112 -0
  348. package/dist/components/ui/overlays/dialog.js.map +1 -0
  349. package/dist/components/ui/overlays/drawer.cjs +2 -0
  350. package/dist/components/ui/overlays/drawer.cjs.map +1 -0
  351. package/dist/components/ui/overlays/drawer.js +109 -0
  352. package/dist/components/ui/overlays/drawer.js.map +1 -0
  353. package/dist/components/ui/overlays/dropdown-menu.cjs +2 -0
  354. package/dist/components/ui/overlays/dropdown-menu.cjs.map +1 -0
  355. package/dist/components/ui/overlays/dropdown-menu.js +198 -0
  356. package/dist/components/ui/overlays/dropdown-menu.js.map +1 -0
  357. package/dist/components/ui/overlays/hover-card.cjs +2 -0
  358. package/dist/components/ui/overlays/hover-card.cjs.map +1 -0
  359. package/dist/components/ui/overlays/hover-card.js +40 -0
  360. package/dist/components/ui/overlays/hover-card.js.map +1 -0
  361. package/dist/components/ui/overlays/menubar.cjs +2 -0
  362. package/dist/components/ui/overlays/menubar.cjs.map +1 -0
  363. package/dist/components/ui/overlays/menubar.js +213 -0
  364. package/dist/components/ui/overlays/menubar.js.map +1 -0
  365. package/dist/components/ui/overlays/popover.cjs +2 -0
  366. package/dist/components/ui/overlays/popover.cjs.map +1 -0
  367. package/dist/components/ui/overlays/popover.js +36 -0
  368. package/dist/components/ui/overlays/popover.js.map +1 -0
  369. package/dist/components/ui/overlays/sheet.cjs +2 -0
  370. package/dist/components/ui/overlays/sheet.cjs.map +1 -0
  371. package/dist/components/ui/overlays/sheet.js +109 -0
  372. package/dist/components/ui/overlays/sheet.js.map +1 -0
  373. package/dist/components/ui/overlays/side-panel.cjs +16 -0
  374. package/dist/components/ui/overlays/side-panel.cjs.map +1 -0
  375. package/dist/components/ui/overlays/side-panel.js +117 -0
  376. package/dist/components/ui/overlays/side-panel.js.map +1 -0
  377. package/dist/components/ui/overlays/tooltip.cjs +2 -0
  378. package/dist/components/ui/overlays/tooltip.cjs.map +1 -0
  379. package/dist/components/ui/overlays/tooltip.js +50 -0
  380. package/dist/components/ui/overlays/tooltip.js.map +1 -0
  381. package/dist/components/ui/primitives/aspect-ratio.cjs +2 -0
  382. package/dist/components/ui/primitives/aspect-ratio.cjs.map +1 -0
  383. package/dist/components/ui/primitives/aspect-ratio.js +10 -0
  384. package/dist/components/ui/primitives/aspect-ratio.js.map +1 -0
  385. package/dist/components/ui/primitives/avatar.cjs +2 -0
  386. package/dist/components/ui/primitives/avatar.cjs.map +1 -0
  387. package/dist/components/ui/primitives/avatar.js +63 -0
  388. package/dist/components/ui/primitives/avatar.js.map +1 -0
  389. package/dist/components/ui/primitives/badge.cjs +2 -0
  390. package/dist/components/ui/primitives/badge.cjs.map +1 -0
  391. package/dist/components/ui/primitives/badge.js +50 -0
  392. package/dist/components/ui/primitives/badge.js.map +1 -0
  393. package/dist/components/ui/primitives/brand-logo.cjs +2 -0
  394. package/dist/components/ui/primitives/brand-logo.cjs.map +1 -0
  395. package/dist/components/ui/primitives/brand-logo.js +74 -0
  396. package/dist/components/ui/primitives/brand-logo.js.map +1 -0
  397. package/dist/components/ui/primitives/brand-logo.negative-paths.cjs +2 -0
  398. package/dist/components/ui/primitives/brand-logo.negative-paths.cjs.map +1 -0
  399. package/dist/components/ui/primitives/brand-logo.negative-paths.js +15 -0
  400. package/dist/components/ui/primitives/brand-logo.negative-paths.js.map +1 -0
  401. package/dist/components/ui/primitives/brand-logo.positive-paths.cjs +2 -0
  402. package/dist/components/ui/primitives/brand-logo.positive-paths.cjs.map +1 -0
  403. package/dist/components/ui/primitives/brand-logo.positive-paths.js +15 -0
  404. package/dist/components/ui/primitives/brand-logo.positive-paths.js.map +1 -0
  405. package/dist/components/ui/primitives/brand-logo.symbol-paths.cjs +2 -0
  406. package/dist/components/ui/primitives/brand-logo.symbol-paths.cjs.map +1 -0
  407. package/dist/components/ui/primitives/brand-logo.symbol-paths.js +8 -0
  408. package/dist/components/ui/primitives/brand-logo.symbol-paths.js.map +1 -0
  409. package/dist/components/ui/primitives/button.cjs +2 -0
  410. package/dist/components/ui/primitives/button.cjs.map +1 -0
  411. package/dist/components/ui/primitives/button.js +52 -0
  412. package/dist/components/ui/primitives/button.js.map +1 -0
  413. package/dist/components/ui/primitives/label.cjs +2 -0
  414. package/dist/components/ui/primitives/label.cjs.map +1 -0
  415. package/dist/components/ui/primitives/label.js +22 -0
  416. package/dist/components/ui/primitives/label.js.map +1 -0
  417. package/dist/components/ui/primitives/progress.cjs +2 -0
  418. package/dist/components/ui/primitives/progress.cjs.map +1 -0
  419. package/dist/components/ui/primitives/progress.js +30 -0
  420. package/dist/components/ui/primitives/progress.js.map +1 -0
  421. package/dist/components/ui/primitives/separator.cjs +2 -0
  422. package/dist/components/ui/primitives/separator.cjs.map +1 -0
  423. package/dist/components/ui/primitives/separator.js +26 -0
  424. package/dist/components/ui/primitives/separator.js.map +1 -0
  425. package/dist/components/ui/primitives/skeleton.cjs +2 -0
  426. package/dist/components/ui/primitives/skeleton.cjs.map +1 -0
  427. package/dist/components/ui/primitives/skeleton.js +31 -0
  428. package/dist/components/ui/primitives/skeleton.js.map +1 -0
  429. package/dist/components/ui/use-controllable-value.cjs +2 -0
  430. package/dist/components/ui/use-controllable-value.cjs.map +1 -0
  431. package/dist/components/ui/use-controllable-value.js +14 -0
  432. package/dist/components/ui/use-controllable-value.js.map +1 -0
  433. package/dist/components/ui/utils.cjs +2 -0
  434. package/dist/components/ui/utils.cjs.map +1 -0
  435. package/dist/components/ui/utils.js +20 -0
  436. package/dist/components/ui/utils.js.map +1 -0
  437. package/dist/editor.cjs +2 -0
  438. package/dist/editor.cjs.map +1 -0
  439. package/dist/editor.d.cts +114 -0
  440. package/dist/editor.d.ts +114 -0
  441. package/dist/editor.js +12 -0
  442. package/dist/editor.js.map +1 -0
  443. package/dist/hooks/use-data-table-filters.cjs +2 -0
  444. package/dist/hooks/use-data-table-filters.cjs.map +1 -0
  445. package/dist/hooks/use-data-table-filters.js +118 -0
  446. package/dist/hooks/use-data-table-filters.js.map +1 -0
  447. package/dist/hooks/use-data-table.cjs +2 -0
  448. package/dist/hooks/use-data-table.cjs.map +1 -0
  449. package/dist/hooks/use-data-table.js +84 -0
  450. package/dist/hooks/use-data-table.js.map +1 -0
  451. package/dist/hooks/use-mobile.cjs +2 -0
  452. package/dist/hooks/use-mobile.cjs.map +1 -0
  453. package/dist/hooks/use-mobile.js +17 -0
  454. package/dist/hooks/use-mobile.js.map +1 -0
  455. package/dist/hooks/use-table-pagination.cjs +2 -0
  456. package/dist/hooks/use-table-pagination.cjs.map +1 -0
  457. package/dist/hooks/use-table-pagination.js +44 -0
  458. package/dist/hooks/use-table-pagination.js.map +1 -0
  459. package/dist/index.cjs +1 -242
  460. package/dist/index.cjs.map +1 -1
  461. package/dist/index.css +1 -1
  462. package/dist/index.d.cts +2939 -0
  463. package/dist/index.d.ts +2939 -149
  464. package/dist/index.js +375 -63715
  465. package/dist/index.js.map +1 -1
  466. package/dist/preset.css +352 -0
  467. package/dist/toast-theme.css +100 -0
  468. package/dist/tokens.css +471 -0
  469. package/package.json +144 -45
  470. package/scripts/codemod-v2-renames.mjs +101 -0
  471. package/scripts/codemod-v2-toast.mjs +84 -0
  472. package/dist/components/figma/ImageWithFallback.d.ts +0 -3
  473. package/dist/components/figma/ImageWithFallback.d.ts.map +0 -1
  474. package/dist/components/print-templates/ContractTemplate.d.ts +0 -89
  475. package/dist/components/print-templates/ContractTemplate.d.ts.map +0 -1
  476. package/dist/components/print-templates/ProposalTemplate.d.ts +0 -41
  477. package/dist/components/print-templates/ProposalTemplate.d.ts.map +0 -1
  478. package/dist/components/print-templates/index.d.ts +0 -22
  479. package/dist/components/print-templates/index.d.ts.map +0 -1
  480. package/dist/components/print-templates/shared/PrintFooter.d.ts +0 -21
  481. package/dist/components/print-templates/shared/PrintFooter.d.ts.map +0 -1
  482. package/dist/components/print-templates/shared/PrintHeader.d.ts +0 -38
  483. package/dist/components/print-templates/shared/PrintHeader.d.ts.map +0 -1
  484. package/dist/components/print-templates/shared/PrintInfoGrid.d.ts +0 -22
  485. package/dist/components/print-templates/shared/PrintInfoGrid.d.ts.map +0 -1
  486. package/dist/components/print-templates/shared/PrintSection.d.ts +0 -29
  487. package/dist/components/print-templates/shared/PrintSection.d.ts.map +0 -1
  488. package/dist/components/print-templates/shared/PrintSignature.d.ts +0 -27
  489. package/dist/components/print-templates/shared/PrintSignature.d.ts.map +0 -1
  490. package/dist/components/print-templates/shared/PrintTable.d.ts +0 -44
  491. package/dist/components/print-templates/shared/PrintTable.d.ts.map +0 -1
  492. package/dist/components/timeline-demo.d.ts +0 -3
  493. package/dist/components/timeline-demo.d.ts.map +0 -1
  494. package/dist/components/ui/accordion.d.ts +0 -8
  495. package/dist/components/ui/accordion.d.ts.map +0 -1
  496. package/dist/components/ui/advanced-data-table.d.ts +0 -100
  497. package/dist/components/ui/advanced-data-table.d.ts.map +0 -1
  498. package/dist/components/ui/alert-dialog.d.ts +0 -15
  499. package/dist/components/ui/alert-dialog.d.ts.map +0 -1
  500. package/dist/components/ui/alert-toast.d.ts +0 -11
  501. package/dist/components/ui/alert-toast.d.ts.map +0 -1
  502. package/dist/components/ui/alert.d.ts +0 -10
  503. package/dist/components/ui/alert.d.ts.map +0 -1
  504. package/dist/components/ui/app-layout-primary-nav.d.ts +0 -30
  505. package/dist/components/ui/app-layout-primary-nav.d.ts.map +0 -1
  506. package/dist/components/ui/app-layout-secondary-nav.d.ts +0 -34
  507. package/dist/components/ui/app-layout-secondary-nav.d.ts.map +0 -1
  508. package/dist/components/ui/app-layout-user-menu.d.ts +0 -28
  509. package/dist/components/ui/app-layout-user-menu.d.ts.map +0 -1
  510. package/dist/components/ui/aspect-ratio.d.ts +0 -4
  511. package/dist/components/ui/aspect-ratio.d.ts.map +0 -1
  512. package/dist/components/ui/auth-layout.d.ts +0 -28
  513. package/dist/components/ui/auth-layout.d.ts.map +0 -1
  514. package/dist/components/ui/avatar.d.ts +0 -21
  515. package/dist/components/ui/avatar.d.ts.map +0 -1
  516. package/dist/components/ui/badge.d.ts +0 -18
  517. package/dist/components/ui/badge.d.ts.map +0 -1
  518. package/dist/components/ui/brand-logo.d.ts +0 -7
  519. package/dist/components/ui/brand-logo.d.ts.map +0 -1
  520. package/dist/components/ui/breadcrumb.d.ts +0 -12
  521. package/dist/components/ui/breadcrumb.d.ts.map +0 -1
  522. package/dist/components/ui/button.d.ts +0 -15
  523. package/dist/components/ui/button.d.ts.map +0 -1
  524. package/dist/components/ui/calendar.d.ts +0 -31
  525. package/dist/components/ui/calendar.d.ts.map +0 -1
  526. package/dist/components/ui/card.d.ts +0 -10
  527. package/dist/components/ui/card.d.ts.map +0 -1
  528. package/dist/components/ui/carousel.d.ts +0 -20
  529. package/dist/components/ui/carousel.d.ts.map +0 -1
  530. package/dist/components/ui/chart.d.ts +0 -45
  531. package/dist/components/ui/chart.d.ts.map +0 -1
  532. package/dist/components/ui/checkbox.d.ts +0 -5
  533. package/dist/components/ui/checkbox.d.ts.map +0 -1
  534. package/dist/components/ui/collapsible.d.ts +0 -6
  535. package/dist/components/ui/collapsible.d.ts.map +0 -1
  536. package/dist/components/ui/color-picker.d.ts +0 -13
  537. package/dist/components/ui/color-picker.d.ts.map +0 -1
  538. package/dist/components/ui/combobox.d.ts +0 -118
  539. package/dist/components/ui/combobox.d.ts.map +0 -1
  540. package/dist/components/ui/command.d.ts +0 -17
  541. package/dist/components/ui/command.d.ts.map +0 -1
  542. package/dist/components/ui/comment-system.d.ts +0 -43
  543. package/dist/components/ui/comment-system.d.ts.map +0 -1
  544. package/dist/components/ui/context-menu.d.ts +0 -26
  545. package/dist/components/ui/context-menu.d.ts.map +0 -1
  546. package/dist/components/ui/contract-print.d.ts +0 -82
  547. package/dist/components/ui/contract-print.d.ts.map +0 -1
  548. package/dist/components/ui/currency-input.d.ts +0 -11
  549. package/dist/components/ui/currency-input.d.ts.map +0 -1
  550. package/dist/components/ui/data-table.d.ts +0 -30
  551. package/dist/components/ui/data-table.d.ts.map +0 -1
  552. package/dist/components/ui/date-picker.d.ts +0 -111
  553. package/dist/components/ui/date-picker.d.ts.map +0 -1
  554. package/dist/components/ui/date-range-picker.d.ts +0 -128
  555. package/dist/components/ui/date-range-picker.d.ts.map +0 -1
  556. package/dist/components/ui/dialog.d.ts +0 -14
  557. package/dist/components/ui/dialog.d.ts.map +0 -1
  558. package/dist/components/ui/document-editor.d.ts +0 -14
  559. package/dist/components/ui/document-editor.d.ts.map +0 -1
  560. package/dist/components/ui/donut-chart.d.ts +0 -32
  561. package/dist/components/ui/donut-chart.d.ts.map +0 -1
  562. package/dist/components/ui/drawer.d.ts +0 -14
  563. package/dist/components/ui/drawer.d.ts.map +0 -1
  564. package/dist/components/ui/dropdown-menu.d.ts +0 -26
  565. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  566. package/dist/components/ui/editable-badge.d.ts +0 -98
  567. package/dist/components/ui/editable-badge.d.ts.map +0 -1
  568. package/dist/components/ui/editorial-calendar.d.ts +0 -22
  569. package/dist/components/ui/editorial-calendar.d.ts.map +0 -1
  570. package/dist/components/ui/empty-state.d.ts +0 -59
  571. package/dist/components/ui/empty-state.d.ts.map +0 -1
  572. package/dist/components/ui/filter-bar.d.ts +0 -16
  573. package/dist/components/ui/filter-bar.d.ts.map +0 -1
  574. package/dist/components/ui/filter-builder.d.ts +0 -39
  575. package/dist/components/ui/filter-builder.d.ts.map +0 -1
  576. package/dist/components/ui/filter-chip.d.ts +0 -8
  577. package/dist/components/ui/filter-chip.d.ts.map +0 -1
  578. package/dist/components/ui/form.d.ts +0 -25
  579. package/dist/components/ui/form.d.ts.map +0 -1
  580. package/dist/components/ui/gantt-chart.d.ts +0 -28
  581. package/dist/components/ui/gantt-chart.d.ts.map +0 -1
  582. package/dist/components/ui/hover-card.d.ts +0 -7
  583. package/dist/components/ui/hover-card.d.ts.map +0 -1
  584. package/dist/components/ui/illustrations.d.ts +0 -76
  585. package/dist/components/ui/illustrations.d.ts.map +0 -1
  586. package/dist/components/ui/index.d.ts +0 -91
  587. package/dist/components/ui/index.d.ts.map +0 -1
  588. package/dist/components/ui/input-group.d.ts +0 -19
  589. package/dist/components/ui/input-group.d.ts.map +0 -1
  590. package/dist/components/ui/input-otp.d.ts +0 -12
  591. package/dist/components/ui/input-otp.d.ts.map +0 -1
  592. package/dist/components/ui/input-validation.d.ts +0 -35
  593. package/dist/components/ui/input-validation.d.ts.map +0 -1
  594. package/dist/components/ui/input.d.ts +0 -4
  595. package/dist/components/ui/input.d.ts.map +0 -1
  596. package/dist/components/ui/kanban-card.d.ts +0 -59
  597. package/dist/components/ui/kanban-card.d.ts.map +0 -1
  598. package/dist/components/ui/kanban-generic-card.d.ts +0 -43
  599. package/dist/components/ui/kanban-generic-card.d.ts.map +0 -1
  600. package/dist/components/ui/kpi-card.d.ts +0 -45
  601. package/dist/components/ui/kpi-card.d.ts.map +0 -1
  602. package/dist/components/ui/label.d.ts +0 -5
  603. package/dist/components/ui/label.d.ts.map +0 -1
  604. package/dist/components/ui/lista-anexos-arquivo.d.ts +0 -47
  605. package/dist/components/ui/lista-anexos-arquivo.d.ts.map +0 -1
  606. package/dist/components/ui/mention-list.d.ts +0 -7
  607. package/dist/components/ui/mention-list.d.ts.map +0 -1
  608. package/dist/components/ui/menubar.d.ts +0 -27
  609. package/dist/components/ui/menubar.d.ts.map +0 -1
  610. package/dist/components/ui/month-range-picker.d.ts +0 -71
  611. package/dist/components/ui/month-range-picker.d.ts.map +0 -1
  612. package/dist/components/ui/multi-select.d.ts +0 -98
  613. package/dist/components/ui/multi-select.d.ts.map +0 -1
  614. package/dist/components/ui/navigation-menu.d.ts +0 -15
  615. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  616. package/dist/components/ui/number-input.d.ts +0 -83
  617. package/dist/components/ui/number-input.d.ts.map +0 -1
  618. package/dist/components/ui/page-header.d.ts +0 -32
  619. package/dist/components/ui/page-header.d.ts.map +0 -1
  620. package/dist/components/ui/pagination.d.ts +0 -14
  621. package/dist/components/ui/pagination.d.ts.map +0 -1
  622. package/dist/components/ui/password-input.d.ts +0 -7
  623. package/dist/components/ui/password-input.d.ts.map +0 -1
  624. package/dist/components/ui/popover.d.ts +0 -8
  625. package/dist/components/ui/popover.d.ts.map +0 -1
  626. package/dist/components/ui/progress-timeline.d.ts +0 -42
  627. package/dist/components/ui/progress-timeline.d.ts.map +0 -1
  628. package/dist/components/ui/progress.d.ts +0 -7
  629. package/dist/components/ui/progress.d.ts.map +0 -1
  630. package/dist/components/ui/radio-group.d.ts +0 -6
  631. package/dist/components/ui/radio-group.d.ts.map +0 -1
  632. package/dist/components/ui/resizable.d.ts +0 -9
  633. package/dist/components/ui/resizable.d.ts.map +0 -1
  634. package/dist/components/ui/saved-filters.d.ts +0 -16
  635. package/dist/components/ui/saved-filters.d.ts.map +0 -1
  636. package/dist/components/ui/scroll-area.d.ts +0 -8
  637. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  638. package/dist/components/ui/select.d.ts +0 -16
  639. package/dist/components/ui/select.d.ts.map +0 -1
  640. package/dist/components/ui/separator.d.ts +0 -5
  641. package/dist/components/ui/separator.d.ts.map +0 -1
  642. package/dist/components/ui/sheet.d.ts +0 -14
  643. package/dist/components/ui/sheet.d.ts.map +0 -1
  644. package/dist/components/ui/side-panel.d.ts +0 -40
  645. package/dist/components/ui/side-panel.d.ts.map +0 -1
  646. package/dist/components/ui/sidebar.d.ts +0 -70
  647. package/dist/components/ui/sidebar.d.ts.map +0 -1
  648. package/dist/components/ui/skeleton.d.ts +0 -8
  649. package/dist/components/ui/skeleton.d.ts.map +0 -1
  650. package/dist/components/ui/slider.d.ts +0 -5
  651. package/dist/components/ui/slider.d.ts.map +0 -1
  652. package/dist/components/ui/social-button.d.ts +0 -13
  653. package/dist/components/ui/social-button.d.ts.map +0 -1
  654. package/dist/components/ui/switch.d.ts +0 -5
  655. package/dist/components/ui/switch.d.ts.map +0 -1
  656. package/dist/components/ui/table-pagination.d.ts +0 -131
  657. package/dist/components/ui/table-pagination.d.ts.map +0 -1
  658. package/dist/components/ui/table-types.d.ts +0 -320
  659. package/dist/components/ui/table-types.d.ts.map +0 -1
  660. package/dist/components/ui/table.d.ts +0 -34
  661. package/dist/components/ui/table.d.ts.map +0 -1
  662. package/dist/components/ui/tabs.d.ts +0 -8
  663. package/dist/components/ui/tabs.d.ts.map +0 -1
  664. package/dist/components/ui/task-edit-dialog.d.ts +0 -15
  665. package/dist/components/ui/task-edit-dialog.d.ts.map +0 -1
  666. package/dist/components/ui/textarea.d.ts +0 -4
  667. package/dist/components/ui/textarea.d.ts.map +0 -1
  668. package/dist/components/ui/time-picker.d.ts +0 -85
  669. package/dist/components/ui/time-picker.d.ts.map +0 -1
  670. package/dist/components/ui/timeline.d.ts +0 -63
  671. package/dist/components/ui/timeline.d.ts.map +0 -1
  672. package/dist/components/ui/toast.d.ts +0 -5
  673. package/dist/components/ui/toast.d.ts.map +0 -1
  674. package/dist/components/ui/toggle-group.d.ts +0 -8
  675. package/dist/components/ui/toggle-group.d.ts.map +0 -1
  676. package/dist/components/ui/toggle.d.ts +0 -10
  677. package/dist/components/ui/toggle.d.ts.map +0 -1
  678. package/dist/components/ui/tooltip.d.ts +0 -8
  679. package/dist/components/ui/tooltip.d.ts.map +0 -1
  680. package/dist/components/ui/underline-tabs.d.ts +0 -29
  681. package/dist/components/ui/underline-tabs.d.ts.map +0 -1
  682. package/dist/components/ui/use-mobile.d.ts +0 -2
  683. package/dist/components/ui/use-mobile.d.ts.map +0 -1
  684. package/dist/components/ui/use-print-contract.d.ts +0 -37
  685. package/dist/components/ui/use-print-contract.d.ts.map +0 -1
  686. package/dist/components/ui/utils.d.ts +0 -3
  687. package/dist/components/ui/utils.d.ts.map +0 -1
  688. package/dist/components/ui/zona-upload-arquivo.d.ts +0 -34
  689. package/dist/components/ui/zona-upload-arquivo.d.ts.map +0 -1
  690. package/dist/index.d.ts.map +0 -1
@@ -0,0 +1,378 @@
1
+ import { jsxs as u, jsx as l, Fragment as H } from "react/jsx-runtime";
2
+ import k from "react";
3
+ import { cn as b } from "../utils.js";
4
+ import { Button as v } from "../primitives/button.js";
5
+ import { Plus as j, Search as B, X as P } from "lucide-react";
6
+ import { Popover as y, PopoverTrigger as w, PopoverContent as S } from "../overlays/popover.js";
7
+ import { Badge as I } from "../primitives/badge.js";
8
+ import { Input as R } from "../forms/input.js";
9
+ import { Checkbox as M } from "../forms/checkbox.js";
10
+ import { Label as L } from "../primitives/label.js";
11
+ import { DatePicker as D } from "../forms/date-picker.js";
12
+ const T = [
13
+ { value: "is", label: "é", multiSelect: !1 },
14
+ { value: "is_not", label: "não é", multiSelect: !1 },
15
+ { value: "is_any_of", label: "é qualquer um de", multiSelect: !0 },
16
+ { value: "is_none_of", label: "não é nenhum de", multiSelect: !0 },
17
+ { value: "contains", label: "contém", multiSelect: !1 },
18
+ { value: "does_not_contain", label: "não contém", multiSelect: !1 },
19
+ { value: "greater_than", label: "maior que", multiSelect: !1 },
20
+ { value: "greater_than_or_equal", label: "maior ou igual a", multiSelect: !1 },
21
+ { value: "less_than", label: "menor que", multiSelect: !1 },
22
+ { value: "less_than_or_equal", label: "menor ou igual a", multiSelect: !1 },
23
+ { value: "is_empty", label: "está vazio", multiSelect: !1 },
24
+ { value: "is_not_empty", label: "não está vazio", multiSelect: !1 }
25
+ ];
26
+ function ee({
27
+ conditions: r,
28
+ onConditionsChange: d,
29
+ fields: x,
30
+ className: n
31
+ }) {
32
+ const _ = () => {
33
+ var m;
34
+ const s = {
35
+ id: Math.random().toString(36).substr(2, 9),
36
+ field: ((m = x[0]) == null ? void 0 : m.value) || "",
37
+ operator: "is",
38
+ value: ""
39
+ };
40
+ d([...r, s]);
41
+ }, a = (s) => {
42
+ d(r.filter((m) => m.id !== s));
43
+ }, h = (s, m) => {
44
+ d(
45
+ r.map((c) => c.id === s ? { ...c, ...m } : c)
46
+ );
47
+ };
48
+ return /* @__PURE__ */ u("div", { className: b("space-y-3", n), children: [
49
+ r.length === 0 ? /* @__PURE__ */ l("div", { className: "text-center py-8 text-muted-foreground text-sm", children: 'Nenhuma condição de filtro. Clique em "Adicionar condição" para começar.' }) : r.map((s, m) => /* @__PURE__ */ l(
50
+ E,
51
+ {
52
+ condition: s,
53
+ fields: x,
54
+ index: m,
55
+ onUpdate: (c) => h(s.id, c),
56
+ onRemove: () => a(s.id)
57
+ },
58
+ s.id
59
+ )),
60
+ /* @__PURE__ */ u(
61
+ v,
62
+ {
63
+ type: "button",
64
+ variant: "outline",
65
+ size: "sm",
66
+ onClick: _,
67
+ className: "gap-2",
68
+ children: [
69
+ /* @__PURE__ */ l(j, { className: "h-4 w-4" }),
70
+ "Adicionar condição"
71
+ ]
72
+ }
73
+ )
74
+ ] });
75
+ }
76
+ function E({
77
+ condition: r,
78
+ fields: d,
79
+ index: x,
80
+ onUpdate: n,
81
+ onRemove: _
82
+ }) {
83
+ var q;
84
+ const a = d.find((e) => e.value === r.field), h = T.find((e) => e.value === r.operator), s = (a == null ? void 0 : a.multiSelect) || (h == null ? void 0 : h.multiSelect) || !1, m = !["is_empty", "is_not_empty"].includes(r.operator), [c, A] = k.useState(""), p = k.useMemo(() => a != null && a.groups ? a.groups.flatMap((e) => [
85
+ {
86
+ value: e.value ?? `__label__${e.label}`,
87
+ label: e.label,
88
+ isHeader: !0,
89
+ selecionavel: !!e.value
90
+ },
91
+ ...e.options.map((t) => ({
92
+ value: t.value,
93
+ label: t.label,
94
+ isHeader: !1,
95
+ selecionavel: !0,
96
+ isFilho: !0
97
+ }))
98
+ ]) : ((a == null ? void 0 : a.options) ?? []).map((e) => ({
99
+ value: e.value,
100
+ label: e.label,
101
+ isHeader: !1,
102
+ selecionavel: !0
103
+ })), [a == null ? void 0 : a.options, a == null ? void 0 : a.groups]), z = k.useMemo(() => {
104
+ if (!c) return p;
105
+ const e = c.toLowerCase(), t = (o) => o.label.toLowerCase().includes(e) || o.value.toLowerCase().includes(e);
106
+ if (!(a != null && a.groups)) return p.filter(t);
107
+ const i = [];
108
+ let f = null, C = !1, N = !1;
109
+ for (const o of p) {
110
+ if (o.isHeader) {
111
+ f = o, C = t(o), N = !1, C && (i.push(o), N = !0);
112
+ continue;
113
+ }
114
+ (C || t(o)) && (!N && f && (i.push(f), N = !0), i.push(o));
115
+ }
116
+ return i;
117
+ }, [p, c, a == null ? void 0 : a.groups]), g = Array.isArray(r.value) ? r.value : r.value ? [r.value] : [], V = (e) => {
118
+ if (!s) {
119
+ n({ value: e });
120
+ return;
121
+ }
122
+ const t = Array.isArray(r.value) ? r.value : [], i = t.includes(e) ? t.filter((f) => f !== e) : [...t, e];
123
+ n({ value: i });
124
+ }, $ = (e) => {
125
+ if (!s) return;
126
+ const t = Array.isArray(r.value) ? r.value : [];
127
+ n({ value: t.filter((i) => i !== e) });
128
+ };
129
+ return /* @__PURE__ */ u("div", { className: "flex items-start gap-2 group", children: [
130
+ /* @__PURE__ */ l("div", { className: "flex items-center h-9 px-2 text-sm text-muted-foreground", children: x === 0 ? "Onde" : "E" }),
131
+ /* @__PURE__ */ u("div", { className: "flex-1 flex items-center gap-2 flex-wrap p-2 border rounded-lg bg-background", children: [
132
+ /* @__PURE__ */ u(y, { children: [
133
+ /* @__PURE__ */ l(w, { asChild: !0, children: /* @__PURE__ */ l(
134
+ v,
135
+ {
136
+ variant: "ghost",
137
+ size: "sm",
138
+ className: "h-7 px-2 font-normal hover:bg-muted",
139
+ children: (a == null ? void 0 : a.label) || "Selecionar campo"
140
+ }
141
+ ) }),
142
+ /* @__PURE__ */ l(S, { className: "w-[200px] p-2", align: "start", children: /* @__PURE__ */ l("div", { className: "space-y-1", children: d.map((e) => /* @__PURE__ */ l(
143
+ v,
144
+ {
145
+ variant: "ghost",
146
+ size: "sm",
147
+ className: b(
148
+ "w-full justify-start",
149
+ r.field === e.value && "bg-muted"
150
+ ),
151
+ onClick: () => n({
152
+ field: e.value,
153
+ value: e.multiSelect ? [] : ""
154
+ }),
155
+ children: e.label
156
+ },
157
+ e.value
158
+ )) }) })
159
+ ] }),
160
+ /* @__PURE__ */ u(y, { children: [
161
+ /* @__PURE__ */ l(w, { asChild: !0, children: /* @__PURE__ */ l(
162
+ v,
163
+ {
164
+ variant: "ghost",
165
+ size: "sm",
166
+ className: "h-7 px-2 font-normal hover:bg-muted text-muted-foreground",
167
+ children: (h == null ? void 0 : h.label) || "is"
168
+ }
169
+ ) }),
170
+ /* @__PURE__ */ l(S, { className: "w-[200px] p-2", align: "start", children: /* @__PURE__ */ l("div", { className: "space-y-1", children: T.map((e) => /* @__PURE__ */ l(
171
+ v,
172
+ {
173
+ variant: "ghost",
174
+ size: "sm",
175
+ className: b(
176
+ "w-full justify-start",
177
+ r.operator === e.value && "bg-muted"
178
+ ),
179
+ onClick: () => n({
180
+ operator: e.value,
181
+ value: e.multiSelect ? [] : ""
182
+ }),
183
+ children: e.label
184
+ },
185
+ e.value
186
+ )) }) })
187
+ ] }),
188
+ m && /* @__PURE__ */ u(H, { children: [
189
+ a != null && a.options || a != null && a.groups ? (
190
+ // Select field with options
191
+ /* @__PURE__ */ u(y, { onOpenChange: (e) => !e && A(""), children: [
192
+ /* @__PURE__ */ l(w, { asChild: !0, children: /* @__PURE__ */ l(
193
+ v,
194
+ {
195
+ variant: "ghost",
196
+ size: "sm",
197
+ className: "h-7 px-2 font-normal hover:bg-muted",
198
+ children: s && g.length > 0 ? /* @__PURE__ */ u("span", { className: "flex items-center gap-1", children: [
199
+ g.length,
200
+ " selecionado",
201
+ g.length > 1 ? "s" : ""
202
+ ] }) : !s && r.value && ((q = p.find((e) => e.value === r.value)) == null ? void 0 : q.label) || "Selecionar valor"
203
+ }
204
+ ) }),
205
+ /* @__PURE__ */ l(
206
+ S,
207
+ {
208
+ className: "w-80 max-w-[calc(100vw-2rem)] p-3",
209
+ align: "start",
210
+ collisionPadding: 8,
211
+ children: /* @__PURE__ */ u("div", { className: "space-y-2", children: [
212
+ /* @__PURE__ */ l(L, { className: "text-xs text-muted-foreground", children: s ? "Selecionar valores" : "Selecionar valor" }),
213
+ /* @__PURE__ */ u("div", { className: "relative", children: [
214
+ /* @__PURE__ */ l(B, { className: "absolute left-2 top-2.5 h-4 w-4 text-muted-foreground" }),
215
+ /* @__PURE__ */ l(
216
+ R,
217
+ {
218
+ type: "text",
219
+ placeholder: "Buscar...",
220
+ value: c,
221
+ onChange: (e) => A(e.target.value),
222
+ className: "h-9 pl-8",
223
+ autoFocus: !0
224
+ }
225
+ )
226
+ ] }),
227
+ /* @__PURE__ */ l("div", { className: "space-y-2 max-h-[320px] overflow-y-auto overflow-x-hidden", children: z.length === 0 ? /* @__PURE__ */ l("div", { className: "text-sm text-muted-foreground text-center py-4", children: "Nenhum resultado encontrado" }) : z.map((e) => {
228
+ if (e.isHeader && !e.selecionavel)
229
+ return /* @__PURE__ */ l(
230
+ "div",
231
+ {
232
+ title: e.label,
233
+ className: "truncate pt-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",
234
+ children: e.label
235
+ },
236
+ e.value
237
+ );
238
+ const t = s ? g.includes(e.value) : r.value === e.value;
239
+ return /* @__PURE__ */ l(
240
+ "div",
241
+ {
242
+ className: b(
243
+ "flex min-w-0 items-center space-x-2",
244
+ e.isFilho && "pl-4"
245
+ ),
246
+ children: s ? /* @__PURE__ */ u(H, { children: [
247
+ /* @__PURE__ */ l(
248
+ M,
249
+ {
250
+ id: `${r.id}-${e.value}`,
251
+ checked: t,
252
+ onCheckedChange: () => V(e.value)
253
+ }
254
+ ),
255
+ /* @__PURE__ */ l(
256
+ "label",
257
+ {
258
+ htmlFor: `${r.id}-${e.value}`,
259
+ title: e.label,
260
+ className: b(
261
+ "min-w-0 flex-1 cursor-pointer truncate text-sm",
262
+ e.isHeader && "font-semibold uppercase tracking-wide"
263
+ ),
264
+ children: e.label
265
+ }
266
+ )
267
+ ] }) : /* @__PURE__ */ l(
268
+ v,
269
+ {
270
+ variant: "ghost",
271
+ size: "sm",
272
+ title: e.label,
273
+ className: b(
274
+ "w-full min-w-0 justify-start",
275
+ e.isHeader && "font-semibold uppercase tracking-wide",
276
+ t && "bg-muted"
277
+ ),
278
+ onClick: () => n({ value: e.value }),
279
+ children: /* @__PURE__ */ l("span", { className: "truncate", children: e.label })
280
+ }
281
+ )
282
+ },
283
+ e.value
284
+ );
285
+ }) })
286
+ ] })
287
+ }
288
+ )
289
+ ] })
290
+ ) : (a == null ? void 0 : a.type) === "date" ? (
291
+ // Date picker
292
+ /* @__PURE__ */ l(
293
+ D,
294
+ {
295
+ value: r.value ? /* @__PURE__ */ new Date(r.value + "T00:00:00") : void 0,
296
+ onChange: (e) => {
297
+ if (e) {
298
+ const t = e.toISOString().split("T")[0];
299
+ n({ value: t });
300
+ } else
301
+ n({ value: "" });
302
+ },
303
+ placeholder: "Selecionar data",
304
+ className: "h-7 text-sm"
305
+ }
306
+ )
307
+ ) : (
308
+ // Text/Number input
309
+ /* @__PURE__ */ u(y, { children: [
310
+ /* @__PURE__ */ l(w, { asChild: !0, children: /* @__PURE__ */ l(
311
+ v,
312
+ {
313
+ variant: "ghost",
314
+ size: "sm",
315
+ className: "h-7 px-2 font-normal hover:bg-muted max-w-[200px] truncate",
316
+ children: r.value || "Inserir valor"
317
+ }
318
+ ) }),
319
+ /* @__PURE__ */ l(S, { className: "w-[240px] p-3", align: "start", children: /* @__PURE__ */ u("div", { className: "space-y-2", children: [
320
+ /* @__PURE__ */ l(L, { className: "text-xs text-muted-foreground", children: "Inserir valor" }),
321
+ /* @__PURE__ */ l(
322
+ R,
323
+ {
324
+ type: (a == null ? void 0 : a.type) === "number" ? "number" : "text",
325
+ value: Array.isArray(r.value) ? "" : r.value,
326
+ onChange: (e) => n({ value: e.target.value }),
327
+ placeholder: "Digite o valor...",
328
+ autoFocus: !0
329
+ }
330
+ )
331
+ ] }) })
332
+ ] })
333
+ ),
334
+ s && g.length > 0 && /* @__PURE__ */ l("div", { className: "flex items-center gap-1 flex-wrap", children: g.map((e) => {
335
+ var i;
336
+ const t = ((i = p.find((f) => f.value === e)) == null ? void 0 : i.label) || e;
337
+ return /* @__PURE__ */ u(
338
+ I,
339
+ {
340
+ variant: "secondary",
341
+ className: "gap-1 h-6 text-xs",
342
+ children: [
343
+ t,
344
+ /* @__PURE__ */ l(
345
+ "button",
346
+ {
347
+ type: "button",
348
+ onClick: () => $(e),
349
+ className: "ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors",
350
+ "aria-label": `Remover ${t}`,
351
+ children: /* @__PURE__ */ l(P, { className: "h-3 w-3" })
352
+ }
353
+ )
354
+ ]
355
+ },
356
+ e
357
+ );
358
+ }) })
359
+ ] })
360
+ ] }),
361
+ /* @__PURE__ */ l(
362
+ v,
363
+ {
364
+ type: "button",
365
+ variant: "ghost",
366
+ size: "sm",
367
+ onClick: _,
368
+ className: "h-9 w-9 p-0 opacity-0 group-hover:opacity-100 transition-opacity",
369
+ "aria-label": "Remover condição",
370
+ children: /* @__PURE__ */ l(P, { className: "h-4 w-4" })
371
+ }
372
+ )
373
+ ] });
374
+ }
375
+ export {
376
+ ee as FilterBuilder
377
+ };
378
+ //# sourceMappingURL=filter-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-builder.js","sources":["../../../../src/components/ui/data/filter-builder.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"../utils\";\nimport { Button } from \"../primitives/button\";\nimport { Plus, X, Search } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../overlays/popover\";\nimport { Badge } from \"../primitives/badge\";\nimport { Input } from \"../forms/input\";\nimport { Checkbox } from \"../forms/checkbox\";\nimport { Label } from \"../primitives/label\";\nimport { DatePicker } from \"../forms/date-picker\";\n\nexport interface FilterCondition {\n id: string;\n field: string;\n operator: string;\n value: string | string[]; // Suporta multi-seleção\n}\n\n/** Item já achatado da lista de valores, com a marcação de hierarquia preservada */\ninterface ListItem {\n value: string;\n label: string;\n isHeader: boolean;\n selecionavel: boolean;\n isFilho?: boolean;\n}\n\nexport interface FilterOptionGroup {\n label: string;\n /** Quando presente, o cabeçalho do grupo também é selecionável */\n value?: string;\n options: { value: string; label: string }[];\n}\n\nexport interface FilterField {\n value: string;\n label: string;\n type?: \"text\" | \"number\" | \"select\" | \"date\";\n options?: { value: string; label: string }[]; // Para campos select\n /**\n * Opções agrupadas hierarquicamente — mesma forma usada por Combobox e MultiSelect.\n * Use `options` OU `groups`. O cabeçalho só é selecionável quando tem `value`.\n */\n groups?: FilterOptionGroup[];\n multiSelect?: boolean; // Habilitar multi-seleção para este campo\n}\n\nexport interface FilterBuilderProps {\n conditions: FilterCondition[];\n onConditionsChange: (conditions: FilterCondition[]) => void;\n fields: FilterField[];\n className?: string;\n}\n\n// Definições de operadores com suporte a multi-seleção\nconst OPERATORS = [\n { value: \"is\", label: \"é\", multiSelect: false },\n { value: \"is_not\", label: \"não é\", multiSelect: false },\n { value: \"is_any_of\", label: \"é qualquer um de\", multiSelect: true },\n { value: \"is_none_of\", label: \"não é nenhum de\", multiSelect: true },\n { value: \"contains\", label: \"contém\", multiSelect: false },\n { value: \"does_not_contain\", label: \"não contém\", multiSelect: false },\n { value: \"greater_than\", label: \"maior que\", multiSelect: false },\n { value: \"greater_than_or_equal\", label: \"maior ou igual a\", multiSelect: false },\n { value: \"less_than\", label: \"menor que\", multiSelect: false },\n { value: \"less_than_or_equal\", label: \"menor ou igual a\", multiSelect: false },\n { value: \"is_empty\", label: \"está vazio\", multiSelect: false },\n { value: \"is_not_empty\", label: \"não está vazio\", multiSelect: false },\n];\n\nexport function FilterBuilder({\n conditions,\n onConditionsChange,\n fields,\n className,\n}: FilterBuilderProps) {\n const addCondition = () => {\n const newCondition: FilterCondition = {\n id: Math.random().toString(36).substr(2, 9),\n field: fields[0]?.value || \"\",\n operator: \"is\",\n value: \"\",\n };\n onConditionsChange([...conditions, newCondition]);\n };\n\n const removeCondition = (id: string) => {\n onConditionsChange(conditions.filter((c) => c.id !== id));\n };\n\n const updateCondition = (id: string, updates: Partial<FilterCondition>) => {\n onConditionsChange(\n conditions.map((c) => (c.id === id ? { ...c, ...updates } : c))\n );\n };\n\n return (\n <div className={cn(\"space-y-3\", className)}>\n {/* Conditions */}\n {conditions.length === 0 ? (\n <div className=\"text-center py-8 text-muted-foreground text-sm\">\n Nenhuma condição de filtro. Clique em \"Adicionar condição\" para começar.\n </div>\n ) : (\n conditions.map((condition, index) => (\n <ConditionRow\n key={condition.id}\n condition={condition}\n fields={fields}\n index={index}\n onUpdate={(updates) => updateCondition(condition.id, updates)}\n onRemove={() => removeCondition(condition.id)}\n />\n ))\n )}\n\n {/* Add Condition Button */}\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={addCondition}\n className=\"gap-2\"\n >\n <Plus className=\"h-4 w-4\" />\n Adicionar condição\n </Button>\n </div>\n );\n}\n\ninterface ConditionRowProps {\n condition: FilterCondition;\n fields: FilterField[];\n index: number;\n onUpdate: (updates: Partial<FilterCondition>) => void;\n onRemove: () => void;\n}\n\nfunction ConditionRow({\n condition,\n fields,\n index,\n onUpdate,\n onRemove,\n}: ConditionRowProps) {\n const selectedField = fields.find((f) => f.value === condition.field);\n const selectedOperator = OPERATORS.find((op) => op.value === condition.operator);\n \n // Multi-select enabled if field has multiSelect: true OR operator requires it\n const isMultiSelect = selectedField?.multiSelect || selectedOperator?.multiSelect || false;\n const needsValue = ![\"is_empty\", \"is_not_empty\"].includes(condition.operator);\n\n // Search state for filtering options\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n // Lista achatada com metadados de hierarquia — unifica `options` e `groups` num único\n // fluxo de renderização, preservando a marcação de cabeçalho e de filho.\n const itensLista = React.useMemo<ListItem[]>(() => {\n if (selectedField?.groups) {\n return selectedField.groups.flatMap((group) => [\n {\n value: group.value ?? `__label__${group.label}`,\n label: group.label,\n isHeader: true,\n selecionavel: Boolean(group.value),\n },\n ...group.options.map((o) => ({\n value: o.value,\n label: o.label,\n isHeader: false,\n selecionavel: true,\n isFilho: true,\n })),\n ]);\n }\n return (selectedField?.options ?? []).map((o) => ({\n value: o.value,\n label: o.label,\n isHeader: false,\n selecionavel: true,\n }));\n }, [selectedField?.options, selectedField?.groups]);\n\n // Busca preservando a hierarquia: casar o cabeçalho mantém todos os seus filhos;\n // casar um filho mantém o cabeçalho como contexto.\n const itensFiltrados = React.useMemo(() => {\n if (!searchTerm) return itensLista;\n\n const termo = searchTerm.toLowerCase();\n const casa = (i: ListItem) =>\n i.label.toLowerCase().includes(termo) || i.value.toLowerCase().includes(termo);\n\n if (!selectedField?.groups) return itensLista.filter(casa);\n\n const resultado: ListItem[] = [];\n let header: ListItem | null = null;\n let headerCasou = false;\n let headerIncluido = false;\n\n for (const item of itensLista) {\n if (item.isHeader) {\n header = item;\n headerCasou = casa(item);\n headerIncluido = false;\n if (headerCasou) {\n resultado.push(item);\n headerIncluido = true;\n }\n continue;\n }\n if (headerCasou || casa(item)) {\n if (!headerIncluido && header) {\n resultado.push(header);\n headerIncluido = true;\n }\n resultado.push(item);\n }\n }\n return resultado;\n }, [itensLista, searchTerm, selectedField?.groups]);\n\n // Convert value to array for multi-select\n const valueAsArray = Array.isArray(condition.value)\n ? condition.value\n : condition.value\n ? [condition.value]\n : [];\n\n const toggleValue = (val: string) => {\n if (!isMultiSelect) {\n onUpdate({ value: val });\n return;\n }\n\n const currentValues = Array.isArray(condition.value) ? condition.value : [];\n const newValues = currentValues.includes(val)\n ? currentValues.filter((v) => v !== val)\n : [...currentValues, val];\n onUpdate({ value: newValues });\n };\n\n const removeValue = (val: string) => {\n if (!isMultiSelect) return;\n const currentValues = Array.isArray(condition.value) ? condition.value : [];\n onUpdate({ value: currentValues.filter((v) => v !== val) });\n };\n\n return (\n <div className=\"flex items-start gap-2 group\">\n {/* Index */}\n <div className=\"flex items-center h-9 px-2 text-sm text-muted-foreground\">\n {index === 0 ? \"Onde\" : \"E\"}\n </div>\n\n {/* Condition Display */}\n <div className=\"flex-1 flex items-center gap-2 flex-wrap p-2 border rounded-lg bg-background\">\n {/* Field Selector */}\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 font-normal hover:bg-muted\"\n >\n {selectedField?.label || \"Selecionar campo\"}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-2\" align=\"start\">\n <div className=\"space-y-1\">\n {fields.map((field) => (\n <Button\n key={field.value}\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\n \"w-full justify-start\",\n condition.field === field.value && \"bg-muted\"\n )}\n onClick={() => \n onUpdate({ \n field: field.value, \n value: field.multiSelect ? [] : \"\" \n })\n }\n >\n {field.label}\n </Button>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n\n {/* Operator Selector */}\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 font-normal hover:bg-muted text-muted-foreground\"\n >\n {selectedOperator?.label || \"is\"}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-2\" align=\"start\">\n <div className=\"space-y-1\">\n {OPERATORS.map((op) => (\n <Button\n key={op.value}\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\n \"w-full justify-start\",\n condition.operator === op.value && \"bg-muted\"\n )}\n onClick={() =>\n onUpdate({\n operator: op.value,\n value: op.multiSelect ? [] : \"\",\n })\n }\n >\n {op.label}\n </Button>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n\n {/* Value Selector/Input */}\n {needsValue && (\n <>\n {selectedField?.options || selectedField?.groups ? (\n // Select field with options\n <Popover onOpenChange={(open) => !open && setSearchTerm(\"\")}>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 font-normal hover:bg-muted\"\n >\n {isMultiSelect && valueAsArray.length > 0 ? (\n <span className=\"flex items-center gap-1\">\n {valueAsArray.length} selecionado{valueAsArray.length > 1 ? 's' : ''}\n </span>\n ) : !isMultiSelect && condition.value ? (\n itensLista.find((opt) => opt.value === condition.value)?.label ||\n \"Selecionar valor\"\n ) : (\n \"Selecionar valor\"\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-80 max-w-[calc(100vw-2rem)] p-3\"\n align=\"start\"\n collisionPadding={8}\n >\n <div className=\"space-y-2\">\n <Label className=\"text-xs text-muted-foreground\">\n {isMultiSelect ? \"Selecionar valores\" : \"Selecionar valor\"}\n </Label>\n \n {/* Search Input */}\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n type=\"text\"\n placeholder=\"Buscar...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"h-9 pl-8\"\n autoFocus\n />\n </div>\n \n {/* Filtered Options */}\n <div className=\"space-y-2 max-h-[320px] overflow-y-auto overflow-x-hidden\">\n {(() => {\n if (itensFiltrados.length === 0) {\n return (\n <div className=\"text-sm text-muted-foreground text-center py-4\">\n Nenhum resultado encontrado\n </div>\n );\n }\n\n return itensFiltrados.map((option) => {\n // Cabeçalho de grupo sem `value` — apenas rótulo visual\n if (option.isHeader && !option.selecionavel) {\n return (\n <div\n key={option.value}\n title={option.label}\n className=\"truncate pt-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground\"\n >\n {option.label}\n </div>\n );\n }\n\n const isSelected = isMultiSelect\n ? valueAsArray.includes(option.value)\n : condition.value === option.value;\n\n return (\n <div\n key={option.value}\n className={cn(\n \"flex min-w-0 items-center space-x-2\",\n option.isFilho && \"pl-4\"\n )}\n >\n {isMultiSelect ? (\n <>\n <Checkbox\n id={`${condition.id}-${option.value}`}\n checked={isSelected}\n onCheckedChange={() =>\n toggleValue(option.value)\n }\n />\n <label\n htmlFor={`${condition.id}-${option.value}`}\n title={option.label}\n className={cn(\n \"min-w-0 flex-1 cursor-pointer truncate text-sm\",\n option.isHeader && \"font-semibold uppercase tracking-wide\"\n )}\n >\n {option.label}\n </label>\n </>\n ) : (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n title={option.label}\n className={cn(\n \"w-full min-w-0 justify-start\",\n option.isHeader && \"font-semibold uppercase tracking-wide\",\n isSelected && \"bg-muted\"\n )}\n onClick={() => onUpdate({ value: option.value })}\n >\n <span className=\"truncate\">{option.label}</span>\n </Button>\n )}\n </div>\n );\n });\n })()}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n ) : selectedField?.type === \"date\" ? (\n // Date picker\n <DatePicker\n value={condition.value ? new Date(condition.value + 'T00:00:00') : undefined}\n onChange={(date) => {\n if (date) {\n // Formato ISO (YYYY-MM-DD)\n const isoDate = date.toISOString().split('T')[0];\n onUpdate({ value: isoDate });\n } else {\n onUpdate({ value: '' });\n }\n }}\n placeholder=\"Selecionar data\"\n className=\"h-7 text-sm\"\n />\n ) : (\n // Text/Number input\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 font-normal hover:bg-muted max-w-[200px] truncate\"\n >\n {condition.value || \"Inserir valor\"}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[240px] p-3\" align=\"start\">\n <div className=\"space-y-2\">\n <Label className=\"text-xs text-muted-foreground\">\n Inserir valor\n </Label>\n <Input\n type={selectedField?.type === \"number\" ? \"number\" : \"text\"}\n value={\n Array.isArray(condition.value) ? \"\" : condition.value\n }\n onChange={(e) => onUpdate({ value: e.target.value })}\n placeholder=\"Digite o valor...\"\n autoFocus\n />\n </div>\n </PopoverContent>\n </Popover>\n )}\n\n {/* Multi-select chips */}\n {isMultiSelect && valueAsArray.length > 0 && (\n <div className=\"flex items-center gap-1 flex-wrap\">\n {valueAsArray.map((val) => {\n // itensLista ja cobre `options` e `groups` (inclusive o cabecalho\n // selecionavel do grupo). Buscar so em `options` fazia o badge de um campo\n // hierarquico exibir o value cru — \"g-2\" no lugar do nome do grupo.\n const optionLabel =\n itensLista.find((item) => item.value === val)?.label || val;\n return (\n <Badge\n key={val}\n variant=\"secondary\"\n className=\"gap-1 h-6 text-xs\"\n >\n {optionLabel}\n <button\n type=\"button\"\n onClick={() => removeValue(val)}\n className=\"ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors\"\n aria-label={`Remover ${optionLabel}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </Badge>\n );\n })}\n </div>\n )}\n </>\n )}\n </div>\n\n {/* Remove Button */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={onRemove}\n className=\"h-9 w-9 p-0 opacity-0 group-hover:opacity-100 transition-opacity\"\n aria-label=\"Remover condição\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n );\n}"],"names":["OPERATORS","FilterBuilder","conditions","onConditionsChange","fields","className","addCondition","newCondition","_a","removeCondition","id","c","updateCondition","updates","cn","jsx","condition","index","ConditionRow","jsxs","Button","Plus","onUpdate","onRemove","selectedField","f","selectedOperator","op","isMultiSelect","needsValue","searchTerm","setSearchTerm","React","itensLista","group","o","itensFiltrados","termo","casa","i","resultado","header","headerCasou","headerIncluido","item","valueAsArray","toggleValue","val","currentValues","newValues","v","removeValue","Popover","PopoverTrigger","PopoverContent","field","Fragment","open","opt","Label","Search","Input","option","isSelected","Checkbox","DatePicker","date","isoDate","optionLabel","Badge","X"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("react"),l=require("lucide-react"),o=require("../utils.cjs"),u=require("../primitives/badge.cjs");function d(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const p=d(i),a=p.forwardRef(({label:e,value:s,onRemove:t,className:n},c)=>r.jsxs(u.Badge,{ref:c,variant:"secondary",className:o.cn("gap-1 pr-1 pl-2 h-7",t&&"pr-1",n),children:[r.jsxs("span",{className:"text-sm",children:[e,s&&r.jsxs(r.Fragment,{children:[": ",r.jsx("span",{className:"font-semibold",children:s})]})]}),t&&r.jsx("button",{type:"button",onClick:t,className:"ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors","aria-label":`Remover filtro ${e}`,children:r.jsx(l.X,{className:"h-3 w-3"})})]}));a.displayName="FilterChip";exports.FilterChip=a;
2
+ //# sourceMappingURL=filter-chip.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-chip.cjs","sources":["../../../../src/components/ui/data/filter-chip.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../utils\";\nimport { Badge } from \"../primitives/badge\";\n\nexport interface FilterChipProps {\n label: string;\n value?: string;\n onRemove?: () => void;\n className?: string;\n}\n\nexport const FilterChip = React.forwardRef<HTMLSpanElement, FilterChipProps>(\n ({ label, value, onRemove, className }, ref) => (\n <Badge\n ref={ref}\n variant=\"secondary\"\n className={cn(\"gap-1 pr-1 pl-2 h-7\", onRemove && \"pr-1\", className)}\n >\n <span className=\"text-sm\">\n {label}\n {value && (\n <>\n : <span className=\"font-semibold\">{value}</span>\n </>\n )}\n </span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors\"\n aria-label={`Remover filtro ${label}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </Badge>\n ),\n);\nFilterChip.displayName = \"FilterChip\";\n"],"names":["FilterChip","React","label","value","onRemove","className","ref","jsxs","Badge","cn","Fragment","jsx","X"],"mappings":"2fAYaA,EAAaC,EAAM,WAC9B,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,SAAAC,EAAU,UAAAC,CAAA,EAAaC,IACtCC,EAAAA,KAACC,EAAAA,MAAA,CACC,IAAAF,EACA,QAAQ,YACR,UAAWG,EAAAA,GAAG,sBAAuBL,GAAY,OAAQC,CAAS,EAElE,SAAA,CAAAE,EAAAA,KAAC,OAAA,CAAK,UAAU,UACb,SAAA,CAAAL,EACAC,GACCI,EAAAA,KAAAG,WAAA,CAAE,SAAA,CAAA,KACEC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAR,CAAA,CAAM,CAAA,CAAA,CAC3C,CAAA,EAEJ,EACCC,GACCO,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAASP,EACT,UAAU,yDACV,aAAY,kBAAkBF,CAAK,GAEnC,SAAAS,EAAAA,IAACC,EAAAA,EAAA,CAAE,UAAU,SAAA,CAAU,CAAA,CAAA,CACzB,CAAA,CAAA,CAIR,EACAZ,EAAW,YAAc"}
@@ -0,0 +1,39 @@
1
+ import { jsxs as a, Fragment as m, jsx as s } from "react/jsx-runtime";
2
+ import * as l from "react";
3
+ import { X as n } from "lucide-react";
4
+ import { cn as p } from "../utils.js";
5
+ import { Badge as c } from "../primitives/badge.js";
6
+ const d = l.forwardRef(
7
+ ({ label: t, value: e, onRemove: r, className: i }, o) => /* @__PURE__ */ a(
8
+ c,
9
+ {
10
+ ref: o,
11
+ variant: "secondary",
12
+ className: p("gap-1 pr-1 pl-2 h-7", r && "pr-1", i),
13
+ children: [
14
+ /* @__PURE__ */ a("span", { className: "text-sm", children: [
15
+ t,
16
+ e && /* @__PURE__ */ a(m, { children: [
17
+ ": ",
18
+ /* @__PURE__ */ s("span", { className: "font-semibold", children: e })
19
+ ] })
20
+ ] }),
21
+ r && /* @__PURE__ */ s(
22
+ "button",
23
+ {
24
+ type: "button",
25
+ onClick: r,
26
+ className: "ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors",
27
+ "aria-label": `Remover filtro ${t}`,
28
+ children: /* @__PURE__ */ s(n, { className: "h-3 w-3" })
29
+ }
30
+ )
31
+ ]
32
+ }
33
+ )
34
+ );
35
+ d.displayName = "FilterChip";
36
+ export {
37
+ d as FilterChip
38
+ };
39
+ //# sourceMappingURL=filter-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-chip.js","sources":["../../../../src/components/ui/data/filter-chip.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../utils\";\nimport { Badge } from \"../primitives/badge\";\n\nexport interface FilterChipProps {\n label: string;\n value?: string;\n onRemove?: () => void;\n className?: string;\n}\n\nexport const FilterChip = React.forwardRef<HTMLSpanElement, FilterChipProps>(\n ({ label, value, onRemove, className }, ref) => (\n <Badge\n ref={ref}\n variant=\"secondary\"\n className={cn(\"gap-1 pr-1 pl-2 h-7\", onRemove && \"pr-1\", className)}\n >\n <span className=\"text-sm\">\n {label}\n {value && (\n <>\n : <span className=\"font-semibold\">{value}</span>\n </>\n )}\n </span>\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ml-1 rounded-sm hover:bg-muted p-0.5 transition-colors\"\n aria-label={`Remover filtro ${label}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </Badge>\n ),\n);\nFilterChip.displayName = \"FilterChip\";\n"],"names":["FilterChip","React","label","value","onRemove","className","ref","jsxs","Badge","cn","Fragment","jsx","X"],"mappings":";;;;;AAYO,MAAMA,IAAaC,EAAM;AAAA,EAC9B,CAAC,EAAE,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,WAAAC,EAAA,GAAaC,MACtC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,SAAQ;AAAA,MACR,WAAWG,EAAG,uBAAuBL,KAAY,QAAQC,CAAS;AAAA,MAElE,UAAA;AAAA,QAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,WACb,UAAA;AAAA,UAAAL;AAAA,UACAC,KACC,gBAAAI,EAAAG,GAAA,EAAE,UAAA;AAAA,YAAA;AAAA,YACE,gBAAAC,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAR,EAAA,CAAM;AAAA,UAAA,EAAA,CAC3C;AAAA,QAAA,GAEJ;AAAA,QACCC,KACC,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAASP;AAAA,YACT,WAAU;AAAA,YACV,cAAY,kBAAkBF,CAAK;AAAA,YAEnC,UAAA,gBAAAS,EAACC,GAAA,EAAE,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACzB;AAAA,IAAA;AAAA,EAAA;AAIR;AACAZ,EAAW,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("react"),i=require("../primitives/avatar.cjs"),f=require("../utils.cjs"),c=a.forwardRef((n,d)=>{const[s,o]=a.useState(0),l=e=>{const r=n.items[e];r&&n.command({id:r.id,label:r.name})},u=()=>{o((s+n.items.length-1)%n.items.length)},m=()=>{o((s+1)%n.items.length)},x=()=>{l(s)};return a.useEffect(()=>{o(0)},[n.items]),a.useImperativeHandle(d,()=>({onKeyDown:({event:e})=>e.key==="ArrowUp"?(u(),!0):e.key==="ArrowDown"?(m(),!0):e.key==="Enter"?(x(),!0):!1})),t.jsx("div",{className:"bg-popover text-popover-foreground border rounded-md shadow-md overflow-hidden p-1 min-w-[200px]",children:n.items.length?n.items.map((e,r)=>t.jsxs("button",{className:f.cn("w-full flex items-center gap-2 px-2 py-1.5 text-sm rounded-sm select-none outline-none cursor-pointer transition-colors",r===s?"bg-accent text-accent-foreground":"hover:bg-muted"),onClick:()=>l(r),children:[t.jsxs(i.Avatar,{className:"h-6 w-6",children:[t.jsx(i.AvatarImage,{src:e.avatar}),t.jsx(i.AvatarFallback,{children:e.name.substring(0,2).toUpperCase()})]}),t.jsxs("div",{className:"flex flex-col items-start",children:[t.jsx("span",{className:"font-medium text-xs",children:e.name}),e.role&&t.jsx("span",{className:"text-[10px] text-muted-foreground capitalize",children:e.role})]})]},e.id)):t.jsx("div",{className:"px-2 py-1.5 text-sm text-muted-foreground",children:"Nenhum usuário encontrado"})})});c.displayName="MentionList";exports.MentionList=c;
2
+ //# sourceMappingURL=mention-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-list.cjs","sources":["../../../../src/components/ui/data/mention-list.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { cn } from '../utils';\n\n/** Item mencionável exibido na lista (subconjunto de CommentUser usado pela UI). */\nexport interface MentionListItem {\n id: string | number;\n name: string;\n avatar?: string;\n role?: string;\n}\n\nexport interface MentionListProps {\n items: MentionListItem[];\n command: (props: { id: string | number; label: string }) => void;\n}\n\nexport const MentionList = forwardRef((props: MentionListProps, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const selectItem = (index: number) => {\n const item = props.items[index];\n if (item) {\n props.command({ id: item.id, label: item.name });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => {\n setSelectedIndex(0);\n }, [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n return (\n <div className=\"bg-popover text-popover-foreground border rounded-md shadow-md overflow-hidden p-1 min-w-[200px]\">\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n key={item.id}\n className={cn(\n \"w-full flex items-center gap-2 px-2 py-1.5 text-sm rounded-sm select-none outline-none cursor-pointer transition-colors\",\n index === selectedIndex ? \"bg-accent text-accent-foreground\" : \"hover:bg-muted\"\n )}\n onClick={() => selectItem(index)}\n >\n <Avatar className=\"h-6 w-6\">\n <AvatarImage src={item.avatar} />\n <AvatarFallback>{item.name.substring(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <div className=\"flex flex-col items-start\">\n <span className=\"font-medium text-xs\">{item.name}</span>\n {item.role && <span className=\"text-[10px] text-muted-foreground capitalize\">{item.role}</span>}\n </div>\n </button>\n ))\n ) : (\n <div className=\"px-2 py-1.5 text-sm text-muted-foreground\">\n Nenhum usuário encontrado\n </div>\n )}\n </div>\n );\n});\n\nMentionList.displayName = 'MentionList';\n"],"names":["MentionList","forwardRef","props","ref","selectedIndex","setSelectedIndex","useState","selectItem","index","item","upHandler","downHandler","enterHandler","useEffect","useImperativeHandle","event","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":"wMAiBaA,EAAcC,EAAAA,WAAW,CAACC,EAAyBC,IAAQ,CACtE,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAAA,SAAS,CAAC,EAE9CC,EAAcC,GAAkB,CACpC,MAAMC,EAAOP,EAAM,MAAMM,CAAK,EAC1BC,GACFP,EAAM,QAAQ,CAAE,GAAIO,EAAK,GAAI,MAAOA,EAAK,KAAM,CAEnD,EAEMC,EAAY,IAAM,CACtBL,GAAkBD,EAAgBF,EAAM,MAAM,OAAS,GAAKA,EAAM,MAAM,MAAM,CAChF,EAEMS,EAAc,IAAM,CACxBN,GAAkBD,EAAgB,GAAKF,EAAM,MAAM,MAAM,CAC3D,EAEMU,EAAe,IAAM,CACzBL,EAAWH,CAAa,CAC1B,EAEAS,OAAAA,EAAAA,UAAU,IAAM,CACdR,EAAiB,CAAC,CACpB,EAAG,CAACH,EAAM,KAAK,CAAC,EAEhBY,EAAAA,oBAAoBX,EAAK,KAAO,CAC9B,UAAW,CAAC,CAAE,MAAAY,KACRA,EAAM,MAAQ,WAChBL,EAAA,EACO,IAGLK,EAAM,MAAQ,aAChBJ,EAAA,EACO,IAGLI,EAAM,MAAQ,SAChBH,EAAA,EACO,IAGF,EACT,EACA,EAGAI,EAAAA,IAAC,MAAA,CAAI,UAAU,mGACZ,SAAAd,EAAM,MAAM,OACXA,EAAM,MAAM,IAAI,CAACO,EAAMD,IACrBS,EAAAA,KAAC,SAAA,CAEC,UAAWC,EAAAA,GACT,0HACAV,IAAUJ,EAAgB,mCAAqC,gBAAA,EAEjE,QAAS,IAAMG,EAAWC,CAAK,EAE/B,SAAA,CAAAS,EAAAA,KAACE,EAAAA,OAAA,CAAO,UAAU,UAChB,SAAA,CAAAH,EAAAA,IAACI,EAAAA,YAAA,CAAY,IAAKX,EAAK,MAAA,CAAQ,EAC/BO,EAAAA,IAACK,EAAAA,gBAAgB,SAAAZ,EAAK,KAAK,UAAU,EAAG,CAAC,EAAE,aAAY,CAAE,CAAA,EAC3D,EACAQ,EAAAA,KAAC,MAAA,CAAI,UAAU,4BACX,SAAA,CAAAD,EAAAA,IAAC,OAAA,CAAK,UAAU,sBAAuB,SAAAP,EAAK,KAAK,EAChDA,EAAK,MAAQO,EAAAA,IAAC,QAAK,UAAU,+CAAgD,WAAK,IAAA,CAAK,CAAA,CAAA,CAC5F,CAAA,CAAA,EAdKP,EAAK,EAAA,CAgBb,EAEDO,EAAAA,IAAC,OAAI,UAAU,4CAA4C,qCAE3D,EAEJ,CAEJ,CAAC,EAEDhB,EAAY,YAAc"}
@@ -0,0 +1,46 @@
1
+ import { jsx as r, jsxs as s } from "react/jsx-runtime";
2
+ import { forwardRef as u, useState as f, useEffect as x, useImperativeHandle as h } from "react";
3
+ import { Avatar as g, AvatarImage as p, AvatarFallback as w } from "../primitives/avatar.js";
4
+ import { cn as v } from "../utils.js";
5
+ const N = u((t, d) => {
6
+ const [o, a] = f(0), l = (e) => {
7
+ const n = t.items[e];
8
+ n && t.command({ id: n.id, label: n.name });
9
+ }, i = () => {
10
+ a((o + t.items.length - 1) % t.items.length);
11
+ }, c = () => {
12
+ a((o + 1) % t.items.length);
13
+ }, m = () => {
14
+ l(o);
15
+ };
16
+ return x(() => {
17
+ a(0);
18
+ }, [t.items]), h(d, () => ({
19
+ onKeyDown: ({ event: e }) => e.key === "ArrowUp" ? (i(), !0) : e.key === "ArrowDown" ? (c(), !0) : e.key === "Enter" ? (m(), !0) : !1
20
+ })), /* @__PURE__ */ r("div", { className: "bg-popover text-popover-foreground border rounded-md shadow-md overflow-hidden p-1 min-w-[200px]", children: t.items.length ? t.items.map((e, n) => /* @__PURE__ */ s(
21
+ "button",
22
+ {
23
+ className: v(
24
+ "w-full flex items-center gap-2 px-2 py-1.5 text-sm rounded-sm select-none outline-none cursor-pointer transition-colors",
25
+ n === o ? "bg-accent text-accent-foreground" : "hover:bg-muted"
26
+ ),
27
+ onClick: () => l(n),
28
+ children: [
29
+ /* @__PURE__ */ s(g, { className: "h-6 w-6", children: [
30
+ /* @__PURE__ */ r(p, { src: e.avatar }),
31
+ /* @__PURE__ */ r(w, { children: e.name.substring(0, 2).toUpperCase() })
32
+ ] }),
33
+ /* @__PURE__ */ s("div", { className: "flex flex-col items-start", children: [
34
+ /* @__PURE__ */ r("span", { className: "font-medium text-xs", children: e.name }),
35
+ e.role && /* @__PURE__ */ r("span", { className: "text-[10px] text-muted-foreground capitalize", children: e.role })
36
+ ] })
37
+ ]
38
+ },
39
+ e.id
40
+ )) : /* @__PURE__ */ r("div", { className: "px-2 py-1.5 text-sm text-muted-foreground", children: "Nenhum usuário encontrado" }) });
41
+ });
42
+ N.displayName = "MentionList";
43
+ export {
44
+ N as MentionList
45
+ };
46
+ //# sourceMappingURL=mention-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-list.js","sources":["../../../../src/components/ui/data/mention-list.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../primitives/avatar';\nimport { cn } from '../utils';\n\n/** Item mencionável exibido na lista (subconjunto de CommentUser usado pela UI). */\nexport interface MentionListItem {\n id: string | number;\n name: string;\n avatar?: string;\n role?: string;\n}\n\nexport interface MentionListProps {\n items: MentionListItem[];\n command: (props: { id: string | number; label: string }) => void;\n}\n\nexport const MentionList = forwardRef((props: MentionListProps, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const selectItem = (index: number) => {\n const item = props.items[index];\n if (item) {\n props.command({ id: item.id, label: item.name });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => {\n setSelectedIndex(0);\n }, [props.items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n return (\n <div className=\"bg-popover text-popover-foreground border rounded-md shadow-md overflow-hidden p-1 min-w-[200px]\">\n {props.items.length ? (\n props.items.map((item, index) => (\n <button\n key={item.id}\n className={cn(\n \"w-full flex items-center gap-2 px-2 py-1.5 text-sm rounded-sm select-none outline-none cursor-pointer transition-colors\",\n index === selectedIndex ? \"bg-accent text-accent-foreground\" : \"hover:bg-muted\"\n )}\n onClick={() => selectItem(index)}\n >\n <Avatar className=\"h-6 w-6\">\n <AvatarImage src={item.avatar} />\n <AvatarFallback>{item.name.substring(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <div className=\"flex flex-col items-start\">\n <span className=\"font-medium text-xs\">{item.name}</span>\n {item.role && <span className=\"text-[10px] text-muted-foreground capitalize\">{item.role}</span>}\n </div>\n </button>\n ))\n ) : (\n <div className=\"px-2 py-1.5 text-sm text-muted-foreground\">\n Nenhum usuário encontrado\n </div>\n )}\n </div>\n );\n});\n\nMentionList.displayName = 'MentionList';\n"],"names":["MentionList","forwardRef","props","ref","selectedIndex","setSelectedIndex","useState","selectItem","index","item","upHandler","downHandler","enterHandler","useEffect","useImperativeHandle","event","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":";;;;AAiBO,MAAMA,IAAcC,EAAW,CAACC,GAAyBC,MAAQ;AACtE,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAS,CAAC,GAE9CC,IAAa,CAACC,MAAkB;AACpC,UAAMC,IAAOP,EAAM,MAAMM,CAAK;AAC9B,IAAIC,KACFP,EAAM,QAAQ,EAAE,IAAIO,EAAK,IAAI,OAAOA,EAAK,MAAM;AAAA,EAEnD,GAEMC,IAAY,MAAM;AACtB,IAAAL,GAAkBD,IAAgBF,EAAM,MAAM,SAAS,KAAKA,EAAM,MAAM,MAAM;AAAA,EAChF,GAEMS,IAAc,MAAM;AACxB,IAAAN,GAAkBD,IAAgB,KAAKF,EAAM,MAAM,MAAM;AAAA,EAC3D,GAEMU,IAAe,MAAM;AACzB,IAAAL,EAAWH,CAAa;AAAA,EAC1B;AAEA,SAAAS,EAAU,MAAM;AACd,IAAAR,EAAiB,CAAC;AAAA,EACpB,GAAG,CAACH,EAAM,KAAK,CAAC,GAEhBY,EAAoBX,GAAK,OAAO;AAAA,IAC9B,WAAW,CAAC,EAAE,OAAAY,QACRA,EAAM,QAAQ,aAChBL,EAAA,GACO,MAGLK,EAAM,QAAQ,eAChBJ,EAAA,GACO,MAGLI,EAAM,QAAQ,WAChBH,EAAA,GACO,MAGF;AAAA,EACT,EACA,GAGA,gBAAAI,EAAC,OAAA,EAAI,WAAU,oGACZ,UAAAd,EAAM,MAAM,SACXA,EAAM,MAAM,IAAI,CAACO,GAAMD,MACrB,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAWC;AAAA,QACT;AAAA,QACAV,MAAUJ,IAAgB,qCAAqC;AAAA,MAAA;AAAA,MAEjE,SAAS,MAAMG,EAAWC,CAAK;AAAA,MAE/B,UAAA;AAAA,QAAA,gBAAAS,EAACE,GAAA,EAAO,WAAU,WAChB,UAAA;AAAA,UAAA,gBAAAH,EAACI,GAAA,EAAY,KAAKX,EAAK,OAAA,CAAQ;AAAA,UAC/B,gBAAAO,EAACK,KAAgB,UAAAZ,EAAK,KAAK,UAAU,GAAG,CAAC,EAAE,cAAY,CAAE;AAAA,QAAA,GAC3D;AAAA,QACA,gBAAAQ,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,UAAA,gBAAAD,EAAC,QAAA,EAAK,WAAU,uBAAuB,UAAAP,EAAK,MAAK;AAAA,UAChDA,EAAK,QAAQ,gBAAAO,EAAC,UAAK,WAAU,gDAAgD,YAAK,KAAA,CAAK;AAAA,QAAA,EAAA,CAC5F;AAAA,MAAA;AAAA,IAAA;AAAA,IAdKP,EAAK;AAAA,EAAA,CAgBb,IAED,gBAAAO,EAAC,SAAI,WAAU,6CAA4C,uCAE3D,GAEJ;AAEJ,CAAC;AAEDhB,EAAY,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),q=require("../utils.cjs"),m=require("../primitives/button.cjs"),u=require("../forms/select.cjs"),h=require("lucide-react"),T={previous:"Anterior",next:"Próxima",first:"Primeira",last:"Última",showing:"Mostrando",of:"de",results:"resultados",itemsPerPage:"Itens por página",page:"Página"},B=[10,20,30,50,100];function N(s,i,r=5){if(i<=r)return Array.from({length:i},(o,x)=>x+1);const a=[],n=Math.floor(r/2);a.push(1);let c=Math.max(2,s-n),d=Math.min(i-1,s+n);s<=n+1?d=r-1:s>=i-n&&(c=i-r+2),c>2&&a.push("ellipsis");for(let o=c;o<=d;o++)a.push(o);return d<i-1&&a.push("ellipsis"),i>1&&a.push(i),a}function b({currentPage:s,totalPages:i,pageSize:r,totalItems:a,onPageChange:n,onPageSizeChange:c,pageSizeOptions:d=B,maxVisiblePages:o=5,showInfo:x=!0,showPageNumbers:v=!0,showPageSizeSelector:w=!0,showFirstLastButtons:f=!0,labels:g,className:y}){const t={...T,...g},C=N(s,i,o),M=(s-1)*r+1,S=Math.min(s*r,a),j=s>1,p=s<i;return i===0?null:e.jsxs("div",{className:q.cn("flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",y),role:"navigation","aria-label":"Paginação da tabela",children:[x&&e.jsxs("p",{className:"text-sm text-muted-foreground order-2 sm:order-1",children:[t.showing," ",e.jsx("span",{className:"font-medium text-foreground",children:M})," - ",e.jsx("span",{className:"font-medium text-foreground",children:S})," ",t.of," ",e.jsx("span",{className:"font-medium text-foreground",children:a})," ",t.results]}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-4 order-1 sm:order-2",children:[w&&c&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:t.itemsPerPage}),e.jsxs(u.Select,{value:String(r),onValueChange:l=>c(Number(l)),children:[e.jsx(u.SelectTrigger,{className:"h-8 w-[70px]","aria-label":t.itemsPerPage,children:e.jsx(u.SelectValue,{placeholder:r})}),e.jsx(u.SelectContent,{children:d.map(l=>e.jsx(u.SelectItem,{value:String(l),children:l},l))})]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground sm:hidden",children:[t.page," ",s," ",t.of," ",i]}),e.jsxs("div",{className:"flex items-center gap-1",children:[f&&e.jsx(m.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>n(1),disabled:!j,"aria-label":t.first,children:e.jsx(h.ChevronsLeft,{className:"h-4 w-4"})}),e.jsx(m.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>n(s-1),disabled:!j,"aria-label":t.previous,children:e.jsx(h.ChevronLeft,{className:"h-4 w-4"})}),v&&e.jsx("div",{className:"hidden sm:flex items-center gap-1",children:C.map((l,k)=>l==="ellipsis"?e.jsx("span",{className:"flex items-center justify-center w-8 h-8 text-muted-foreground","aria-hidden":!0,children:"..."},`ellipsis-${k}`):e.jsx(m.Button,{variant:s===l?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>n(l),"aria-label":`${t.page} ${l}`,"aria-current":s===l?"page":void 0,children:l},l))}),e.jsx(m.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>n(s+1),disabled:!p,"aria-label":t.next,children:e.jsx(h.ChevronRight,{className:"h-4 w-4"})}),f&&e.jsx(m.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>n(i),disabled:!p,"aria-label":t.last,children:e.jsx(h.ChevronsRight,{className:"h-4 w-4"})})]})]})]})}b.displayName="TablePagination";exports.TablePagination=b;exports.getPageNumbers=N;
2
+ //# sourceMappingURL=table-pagination.cjs.map