@eggspot/ui 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/dist/components/Badge.d.ts +15 -0
  2. package/dist/components/Badge.d.ts.map +1 -0
  3. package/dist/components/Badge.js +29 -0
  4. package/dist/components/Badge.js.map +1 -0
  5. package/dist/components/Breadcrumb.d.ts +12 -0
  6. package/dist/components/Breadcrumb.d.ts.map +1 -0
  7. package/dist/components/Breadcrumb.js +28 -0
  8. package/dist/components/Breadcrumb.js.map +1 -0
  9. package/dist/components/Button.d.ts +53 -0
  10. package/dist/components/Button.d.ts.map +1 -0
  11. package/dist/components/Button.js +81 -0
  12. package/dist/components/Button.js.map +1 -0
  13. package/dist/components/Button.machine.d.ts +9 -0
  14. package/dist/components/Button.machine.d.ts.map +1 -0
  15. package/dist/components/Button.machine.js +50 -0
  16. package/dist/components/Button.machine.js.map +1 -0
  17. package/dist/components/Button.variants.d.ts +10 -0
  18. package/dist/components/Button.variants.d.ts.map +1 -0
  19. package/dist/components/Button.variants.js +214 -0
  20. package/dist/components/Button.variants.js.map +1 -0
  21. package/dist/components/ButtonGroup.d.ts +9 -0
  22. package/dist/components/ButtonGroup.d.ts.map +1 -0
  23. package/dist/components/ButtonGroup.js +23 -0
  24. package/dist/components/ButtonGroup.js.map +1 -0
  25. package/dist/components/Calendar.d.ts +24 -0
  26. package/dist/components/Calendar.d.ts.map +1 -0
  27. package/dist/components/Calendar.js +64 -0
  28. package/dist/components/Calendar.js.map +1 -0
  29. package/dist/components/Calendar.utils.d.ts +6 -0
  30. package/dist/components/Calendar.utils.d.ts.map +1 -0
  31. package/dist/components/Calendar.utils.js +17 -0
  32. package/dist/components/Calendar.utils.js.map +1 -0
  33. package/dist/components/Card.d.ts +8 -0
  34. package/dist/components/Card.d.ts.map +1 -0
  35. package/dist/components/Card.js +19 -0
  36. package/dist/components/Card.js.map +1 -0
  37. package/dist/components/Checkbox.d.ts +36 -0
  38. package/dist/components/Checkbox.d.ts.map +1 -0
  39. package/dist/components/Checkbox.js +55 -0
  40. package/dist/components/Checkbox.js.map +1 -0
  41. package/dist/components/Collapsible.d.ts +20 -0
  42. package/dist/components/Collapsible.d.ts.map +1 -0
  43. package/dist/components/Collapsible.js +15 -0
  44. package/dist/components/Collapsible.js.map +1 -0
  45. package/dist/components/ConfirmDialog.d.ts +35 -0
  46. package/dist/components/ConfirmDialog.d.ts.map +1 -0
  47. package/dist/components/ConfirmDialog.js +81 -0
  48. package/dist/components/ConfirmDialog.js.map +1 -0
  49. package/dist/components/CopyButton.d.ts +67 -0
  50. package/dist/components/CopyButton.d.ts.map +1 -0
  51. package/dist/components/CopyButton.js +51 -0
  52. package/dist/components/CopyButton.js.map +1 -0
  53. package/dist/components/DashboardLayout/DashboardLayout.d.ts +3 -0
  54. package/dist/components/DashboardLayout/DashboardLayout.d.ts.map +1 -0
  55. package/dist/components/DashboardLayout/DashboardLayout.js +38 -0
  56. package/dist/components/DashboardLayout/DashboardLayout.js.map +1 -0
  57. package/dist/components/DashboardLayout/DashboardLayoutContent.d.ts +9 -0
  58. package/dist/components/DashboardLayout/DashboardLayoutContent.d.ts.map +1 -0
  59. package/dist/components/DashboardLayout/DashboardLayoutContent.js +10 -0
  60. package/dist/components/DashboardLayout/DashboardLayoutContent.js.map +1 -0
  61. package/dist/components/DashboardLayout/index.d.ts +4 -0
  62. package/dist/components/DashboardLayout/index.d.ts.map +1 -0
  63. package/dist/components/DashboardLayout/index.js +3 -0
  64. package/dist/components/DashboardLayout/index.js.map +1 -0
  65. package/dist/components/DashboardLayout/types.d.ts +37 -0
  66. package/dist/components/DashboardLayout/types.d.ts.map +1 -0
  67. package/dist/components/DashboardLayout/types.js +2 -0
  68. package/dist/components/DashboardLayout/types.js.map +1 -0
  69. package/dist/components/DataTable/DataTable.d.ts +9 -0
  70. package/dist/components/DataTable/DataTable.d.ts.map +1 -0
  71. package/dist/components/DataTable/DataTable.js +271 -0
  72. package/dist/components/DataTable/DataTable.js.map +1 -0
  73. package/dist/components/DataTable/DataTableColumnHeader.d.ts +11 -0
  74. package/dist/components/DataTable/DataTableColumnHeader.d.ts.map +1 -0
  75. package/dist/components/DataTable/DataTableColumnHeader.js +26 -0
  76. package/dist/components/DataTable/DataTableColumnHeader.js.map +1 -0
  77. package/dist/components/DataTable/DataTableDisplaySettings.d.ts +8 -0
  78. package/dist/components/DataTable/DataTableDisplaySettings.d.ts.map +1 -0
  79. package/dist/components/DataTable/DataTableDisplaySettings.js +88 -0
  80. package/dist/components/DataTable/DataTableDisplaySettings.js.map +1 -0
  81. package/dist/components/DataTable/DataTableFloatingBar.d.ts +8 -0
  82. package/dist/components/DataTable/DataTableFloatingBar.d.ts.map +1 -0
  83. package/dist/components/DataTable/DataTableFloatingBar.js +11 -0
  84. package/dist/components/DataTable/DataTableFloatingBar.js.map +1 -0
  85. package/dist/components/DataTable/DataTablePagination.d.ts +11 -0
  86. package/dist/components/DataTable/DataTablePagination.d.ts.map +1 -0
  87. package/dist/components/DataTable/DataTablePagination.js +68 -0
  88. package/dist/components/DataTable/DataTablePagination.js.map +1 -0
  89. package/dist/components/DataTable/DataTableStates.d.ts +13 -0
  90. package/dist/components/DataTable/DataTableStates.d.ts.map +1 -0
  91. package/dist/components/DataTable/DataTableStates.js +17 -0
  92. package/dist/components/DataTable/DataTableStates.js.map +1 -0
  93. package/dist/components/DataTable/DataTableToolbarContainer.d.ts +7 -0
  94. package/dist/components/DataTable/DataTableToolbarContainer.d.ts.map +1 -0
  95. package/dist/components/DataTable/DataTableToolbarContainer.js +7 -0
  96. package/dist/components/DataTable/DataTableToolbarContainer.js.map +1 -0
  97. package/dist/components/DataTable/hooks/use-data-table-settings.d.ts +19 -0
  98. package/dist/components/DataTable/hooks/use-data-table-settings.d.ts.map +1 -0
  99. package/dist/components/DataTable/hooks/use-data-table-settings.js +70 -0
  100. package/dist/components/DataTable/hooks/use-data-table-settings.js.map +1 -0
  101. package/dist/components/DataTable/index.d.ts +4 -0
  102. package/dist/components/DataTable/index.d.ts.map +1 -0
  103. package/dist/components/DataTable/index.js +3 -0
  104. package/dist/components/DataTable/index.js.map +1 -0
  105. package/dist/components/DataTable/types/data-table.d.ts +76 -0
  106. package/dist/components/DataTable/types/data-table.d.ts.map +1 -0
  107. package/dist/components/DataTable/types/data-table.js +2 -0
  108. package/dist/components/DataTable/types/data-table.js.map +1 -0
  109. package/dist/components/DatePicker.d.ts +19 -0
  110. package/dist/components/DatePicker.d.ts.map +1 -0
  111. package/dist/components/DatePicker.js +49 -0
  112. package/dist/components/DatePicker.js.map +1 -0
  113. package/dist/components/DatePicker.utils.d.ts +3 -0
  114. package/dist/components/DatePicker.utils.d.ts.map +1 -0
  115. package/dist/components/DatePicker.utils.js +23 -0
  116. package/dist/components/DatePicker.utils.js.map +1 -0
  117. package/dist/components/Datefield.d.ts +25 -0
  118. package/dist/components/Datefield.d.ts.map +1 -0
  119. package/dist/components/Datefield.js +29 -0
  120. package/dist/components/Datefield.js.map +1 -0
  121. package/dist/components/Datefield.utils.d.ts +3 -0
  122. package/dist/components/Datefield.utils.d.ts.map +1 -0
  123. package/dist/components/Datefield.utils.js +11 -0
  124. package/dist/components/Datefield.utils.js.map +1 -0
  125. package/dist/components/Dialog.d.ts +21 -0
  126. package/dist/components/Dialog.d.ts.map +1 -0
  127. package/dist/components/Dialog.js +23 -0
  128. package/dist/components/Dialog.js.map +1 -0
  129. package/dist/components/Field.d.ts +10 -0
  130. package/dist/components/Field.d.ts.map +1 -0
  131. package/dist/components/Field.js +32 -0
  132. package/dist/components/Field.js.map +1 -0
  133. package/dist/components/Filter/Filter.d.ts +4 -0
  134. package/dist/components/Filter/Filter.d.ts.map +1 -0
  135. package/dist/components/Filter/Filter.js +8 -0
  136. package/dist/components/Filter/Filter.js.map +1 -0
  137. package/dist/components/Filter/Filter.store.d.ts +13 -0
  138. package/dist/components/Filter/Filter.store.d.ts.map +1 -0
  139. package/dist/components/Filter/Filter.store.js +61 -0
  140. package/dist/components/Filter/Filter.store.js.map +1 -0
  141. package/dist/components/Filter/Filter.types.d.ts +66 -0
  142. package/dist/components/Filter/Filter.types.d.ts.map +1 -0
  143. package/dist/components/Filter/Filter.types.js +15 -0
  144. package/dist/components/Filter/Filter.types.js.map +1 -0
  145. package/dist/components/Filter/FilterBar.d.ts +7 -0
  146. package/dist/components/Filter/FilterBar.d.ts.map +1 -0
  147. package/dist/components/Filter/FilterBar.js +28 -0
  148. package/dist/components/Filter/FilterBar.js.map +1 -0
  149. package/dist/components/Filter/FilterBuilder.d.ts +3 -0
  150. package/dist/components/Filter/FilterBuilder.d.ts.map +1 -0
  151. package/dist/components/Filter/FilterBuilder.js +47 -0
  152. package/dist/components/Filter/FilterBuilder.js.map +1 -0
  153. package/dist/components/Filter/FilterField/DateModeRowValue.d.ts +5 -0
  154. package/dist/components/Filter/FilterField/DateModeRowValue.d.ts.map +1 -0
  155. package/dist/components/Filter/FilterField/DateModeRowValue.js +150 -0
  156. package/dist/components/Filter/FilterField/DateModeRowValue.js.map +1 -0
  157. package/dist/components/Filter/FilterField/FilterAsyncSelect.d.ts +13 -0
  158. package/dist/components/Filter/FilterField/FilterAsyncSelect.d.ts.map +1 -0
  159. package/dist/components/Filter/FilterField/FilterAsyncSelect.js +62 -0
  160. package/dist/components/Filter/FilterField/FilterAsyncSelect.js.map +1 -0
  161. package/dist/components/Filter/FilterField/FilterDateMode.d.ts +2 -0
  162. package/dist/components/Filter/FilterField/FilterDateMode.d.ts.map +1 -0
  163. package/dist/components/Filter/FilterField/FilterDateMode.js +167 -0
  164. package/dist/components/Filter/FilterField/FilterDateMode.js.map +1 -0
  165. package/dist/components/Filter/FilterField/FilterDateRange.d.ts +7 -0
  166. package/dist/components/Filter/FilterField/FilterDateRange.d.ts.map +1 -0
  167. package/dist/components/Filter/FilterField/FilterDateRange.js +60 -0
  168. package/dist/components/Filter/FilterField/FilterDateRange.js.map +1 -0
  169. package/dist/components/Filter/FilterField/FilterSelect.d.ts +12 -0
  170. package/dist/components/Filter/FilterField/FilterSelect.d.ts.map +1 -0
  171. package/dist/components/Filter/FilterField/FilterSelect.js +72 -0
  172. package/dist/components/Filter/FilterField/FilterSelect.js.map +1 -0
  173. package/dist/components/Filter/FilterField/FilterSingleDate.d.ts +8 -0
  174. package/dist/components/Filter/FilterField/FilterSingleDate.d.ts.map +1 -0
  175. package/dist/components/Filter/FilterField/FilterSingleDate.js +102 -0
  176. package/dist/components/Filter/FilterField/FilterSingleDate.js.map +1 -0
  177. package/dist/components/Filter/FilterField/OptionItem.d.ts +10 -0
  178. package/dist/components/Filter/FilterField/OptionItem.d.ts.map +1 -0
  179. package/dist/components/Filter/FilterField/OptionItem.js +20 -0
  180. package/dist/components/Filter/FilterField/OptionItem.js.map +1 -0
  181. package/dist/components/Filter/FilterField/index.d.ts +7 -0
  182. package/dist/components/Filter/FilterField/index.d.ts.map +1 -0
  183. package/dist/components/Filter/FilterField/index.js +7 -0
  184. package/dist/components/Filter/FilterField/index.js.map +1 -0
  185. package/dist/components/Filter/FilterRow.d.ts +7 -0
  186. package/dist/components/Filter/FilterRow.d.ts.map +1 -0
  187. package/dist/components/Filter/FilterRow.js +152 -0
  188. package/dist/components/Filter/FilterRow.js.map +1 -0
  189. package/dist/components/Filter/index.d.ts +7 -0
  190. package/dist/components/Filter/index.d.ts.map +1 -0
  191. package/dist/components/Filter/index.js +6 -0
  192. package/dist/components/Filter/index.js.map +1 -0
  193. package/dist/components/Form.d.ts +32 -0
  194. package/dist/components/Form.d.ts.map +1 -0
  195. package/dist/components/Form.js +82 -0
  196. package/dist/components/Form.js.map +1 -0
  197. package/dist/components/Heading.d.ts +10 -0
  198. package/dist/components/Heading.d.ts.map +1 -0
  199. package/dist/components/Heading.js +27 -0
  200. package/dist/components/Heading.js.map +1 -0
  201. package/dist/components/Input.d.ts +43 -0
  202. package/dist/components/Input.d.ts.map +1 -0
  203. package/dist/components/Input.js +58 -0
  204. package/dist/components/Input.js.map +1 -0
  205. package/dist/components/InputOTP.d.ts +12 -0
  206. package/dist/components/InputOTP.d.ts.map +1 -0
  207. package/dist/components/InputOTP.js +24 -0
  208. package/dist/components/InputOTP.js.map +1 -0
  209. package/dist/components/Label.d.ts +9 -0
  210. package/dist/components/Label.d.ts.map +1 -0
  211. package/dist/components/Label.js +19 -0
  212. package/dist/components/Label.js.map +1 -0
  213. package/dist/components/Layout.d.ts +47 -0
  214. package/dist/components/Layout.d.ts.map +1 -0
  215. package/dist/components/Layout.js +78 -0
  216. package/dist/components/Layout.js.map +1 -0
  217. package/dist/components/ListBox.d.ts +8 -0
  218. package/dist/components/ListBox.d.ts.map +1 -0
  219. package/dist/components/ListBox.js +28 -0
  220. package/dist/components/ListBox.js.map +1 -0
  221. package/dist/components/Menu.d.ts +19 -0
  222. package/dist/components/Menu.d.ts.map +1 -0
  223. package/dist/components/Menu.js +29 -0
  224. package/dist/components/Menu.js.map +1 -0
  225. package/dist/components/NativeSelect.d.ts +10 -0
  226. package/dist/components/NativeSelect.d.ts.map +1 -0
  227. package/dist/components/NativeSelect.js +36 -0
  228. package/dist/components/NativeSelect.js.map +1 -0
  229. package/dist/components/NumberInput.d.ts +12 -0
  230. package/dist/components/NumberInput.d.ts.map +1 -0
  231. package/dist/components/NumberInput.js +25 -0
  232. package/dist/components/NumberInput.js.map +1 -0
  233. package/dist/components/Popover.d.ts +9 -0
  234. package/dist/components/Popover.d.ts.map +1 -0
  235. package/dist/components/Popover.js +17 -0
  236. package/dist/components/Popover.js.map +1 -0
  237. package/dist/components/Provider.d.ts +10 -0
  238. package/dist/components/Provider.d.ts.map +1 -0
  239. package/dist/components/Provider.js +11 -0
  240. package/dist/components/Provider.js.map +1 -0
  241. package/dist/components/RadioGroup.d.ts +37 -0
  242. package/dist/components/RadioGroup.d.ts.map +1 -0
  243. package/dist/components/RadioGroup.js +61 -0
  244. package/dist/components/RadioGroup.js.map +1 -0
  245. package/dist/components/Resizable.d.ts +25 -0
  246. package/dist/components/Resizable.d.ts.map +1 -0
  247. package/dist/components/Resizable.js +19 -0
  248. package/dist/components/Resizable.js.map +1 -0
  249. package/dist/components/ScrollArea.d.ts +6 -0
  250. package/dist/components/ScrollArea.d.ts.map +1 -0
  251. package/dist/components/ScrollArea.js +14 -0
  252. package/dist/components/ScrollArea.js.map +1 -0
  253. package/dist/components/Select.d.ts +88 -0
  254. package/dist/components/Select.d.ts.map +1 -0
  255. package/dist/components/Select.js +174 -0
  256. package/dist/components/Select.js.map +1 -0
  257. package/dist/components/Select.utils.d.ts +13 -0
  258. package/dist/components/Select.utils.d.ts.map +1 -0
  259. package/dist/components/Select.utils.js +41 -0
  260. package/dist/components/Select.utils.js.map +1 -0
  261. package/dist/components/Separator.d.ts +4 -0
  262. package/dist/components/Separator.d.ts.map +1 -0
  263. package/dist/components/Separator.js +7 -0
  264. package/dist/components/Separator.js.map +1 -0
  265. package/dist/components/Sheet.d.ts +19 -0
  266. package/dist/components/Sheet.d.ts.map +1 -0
  267. package/dist/components/Sheet.js +24 -0
  268. package/dist/components/Sheet.js.map +1 -0
  269. package/dist/components/Sidebar/LinkItem.d.ts +34 -0
  270. package/dist/components/Sidebar/LinkItem.d.ts.map +1 -0
  271. package/dist/components/Sidebar/LinkItem.js +19 -0
  272. package/dist/components/Sidebar/LinkItem.js.map +1 -0
  273. package/dist/components/Sidebar/PageTree.d.ts +46 -0
  274. package/dist/components/Sidebar/PageTree.d.ts.map +1 -0
  275. package/dist/components/Sidebar/PageTree.js +46 -0
  276. package/dist/components/Sidebar/PageTree.js.map +1 -0
  277. package/dist/components/Sidebar/Sidebar.d.ts +94 -0
  278. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
  279. package/dist/components/Sidebar/Sidebar.js +328 -0
  280. package/dist/components/Sidebar/Sidebar.js.map +1 -0
  281. package/dist/components/Sidebar/SidebarNavTree.d.ts +26 -0
  282. package/dist/components/Sidebar/SidebarNavTree.d.ts.map +1 -0
  283. package/dist/components/Sidebar/SidebarNavTree.js +32 -0
  284. package/dist/components/Sidebar/SidebarNavTree.js.map +1 -0
  285. package/dist/components/Sidebar/Tabs.d.ts +27 -0
  286. package/dist/components/Sidebar/Tabs.d.ts.map +1 -0
  287. package/dist/components/Sidebar/Tabs.js +49 -0
  288. package/dist/components/Sidebar/Tabs.js.map +1 -0
  289. package/dist/components/Sidebar/index.d.ts +6 -0
  290. package/dist/components/Sidebar/index.d.ts.map +1 -0
  291. package/dist/components/Sidebar/index.js +22 -0
  292. package/dist/components/Sidebar/index.js.map +1 -0
  293. package/dist/components/Sonner.d.ts +16 -0
  294. package/dist/components/Sonner.d.ts.map +1 -0
  295. package/dist/components/Sonner.js +38 -0
  296. package/dist/components/Sonner.js.map +1 -0
  297. package/dist/components/Spinner.d.ts +3 -0
  298. package/dist/components/Spinner.d.ts.map +1 -0
  299. package/dist/components/Spinner.js +7 -0
  300. package/dist/components/Spinner.js.map +1 -0
  301. package/dist/components/Switch.d.ts +4 -0
  302. package/dist/components/Switch.d.ts.map +1 -0
  303. package/dist/components/Switch.js +19 -0
  304. package/dist/components/Switch.js.map +1 -0
  305. package/dist/components/Text.d.ts +10 -0
  306. package/dist/components/Text.d.ts.map +1 -0
  307. package/dist/components/Text.js +22 -0
  308. package/dist/components/Text.js.map +1 -0
  309. package/dist/components/Tooltip.d.ts +8 -0
  310. package/dist/components/Tooltip.d.ts.map +1 -0
  311. package/dist/components/Tooltip.js +24 -0
  312. package/dist/components/Tooltip.js.map +1 -0
  313. package/dist/components/Virtualizer.d.ts +8 -0
  314. package/dist/components/Virtualizer.d.ts.map +1 -0
  315. package/dist/components/Virtualizer.js +8 -0
  316. package/dist/components/Virtualizer.js.map +1 -0
  317. package/dist/consts/config.d.ts +3 -0
  318. package/dist/consts/config.d.ts.map +1 -0
  319. package/dist/consts/config.js +3 -0
  320. package/dist/consts/config.js.map +1 -0
  321. package/dist/hooks/use-mobile.d.ts +6 -0
  322. package/dist/hooks/use-mobile.d.ts.map +1 -0
  323. package/dist/hooks/use-mobile.js +16 -0
  324. package/dist/hooks/use-mobile.js.map +1 -0
  325. package/dist/lib/utils.d.ts +4 -0
  326. package/dist/lib/utils.d.ts.map +1 -0
  327. package/dist/lib/utils.js +9 -0
  328. package/dist/lib/utils.js.map +1 -0
  329. package/package.json +53 -5
  330. package/eslint.config.js +0 -41
  331. package/resolve-catalog.js +0 -61
  332. package/src/components/Button.machine.tsx +0 -50
  333. package/src/components/Button.tsx +0 -249
  334. package/src/components/Button.variants.tsx +0 -186
  335. package/src/components/ButtonGroup.tsx +0 -56
  336. package/src/components/Calendar.tsx +0 -275
  337. package/src/components/Calendar.utils.tsx +0 -22
  338. package/src/components/Checkbox.tsx +0 -199
  339. package/src/components/ConfirmDialog.tsx +0 -183
  340. package/src/components/DashboardLayout/DashboardLayout.tsx +0 -348
  341. package/src/components/DashboardLayout/SidebarNav.tsx +0 -509
  342. package/src/components/DashboardLayout/index.ts +0 -33
  343. package/src/components/DataTable/DataTable.tsx +0 -557
  344. package/src/components/DataTable/DataTableColumnHeader.tsx +0 -122
  345. package/src/components/DataTable/DataTableDisplaySettings.tsx +0 -265
  346. package/src/components/DataTable/DataTableFloatingBar.tsx +0 -44
  347. package/src/components/DataTable/DataTablePagination.tsx +0 -168
  348. package/src/components/DataTable/DataTableStates.tsx +0 -69
  349. package/src/components/DataTable/DataTableToolbarContainer.tsx +0 -47
  350. package/src/components/DataTable/hooks/use-data-table-settings.ts +0 -101
  351. package/src/components/DataTable/index.ts +0 -7
  352. package/src/components/DataTable/types/data-table.ts +0 -97
  353. package/src/components/DatePicker.tsx +0 -213
  354. package/src/components/DatePicker.utils.tsx +0 -38
  355. package/src/components/Datefield.tsx +0 -109
  356. package/src/components/Datefield.utils.ts +0 -10
  357. package/src/components/Dialog.tsx +0 -167
  358. package/src/components/Field.tsx +0 -49
  359. package/src/components/Filter/Filter.store.tsx +0 -122
  360. package/src/components/Filter/Filter.tsx +0 -11
  361. package/src/components/Filter/Filter.types.ts +0 -107
  362. package/src/components/Filter/FilterBar.tsx +0 -38
  363. package/src/components/Filter/FilterBuilder.tsx +0 -158
  364. package/src/components/Filter/FilterField/DateModeRowValue.tsx +0 -250
  365. package/src/components/Filter/FilterField/FilterAsyncSelect.tsx +0 -191
  366. package/src/components/Filter/FilterField/FilterDateMode.tsx +0 -241
  367. package/src/components/Filter/FilterField/FilterDateRange.tsx +0 -169
  368. package/src/components/Filter/FilterField/FilterSelect.tsx +0 -208
  369. package/src/components/Filter/FilterField/FilterSingleDate.tsx +0 -277
  370. package/src/components/Filter/FilterField/OptionItem.tsx +0 -112
  371. package/src/components/Filter/FilterField/index.ts +0 -6
  372. package/src/components/Filter/FilterRow.tsx +0 -527
  373. package/src/components/Filter/index.ts +0 -17
  374. package/src/components/Form.tsx +0 -195
  375. package/src/components/Heading.tsx +0 -41
  376. package/src/components/Input.tsx +0 -221
  377. package/src/components/InputOTP.tsx +0 -78
  378. package/src/components/Label.tsx +0 -65
  379. package/src/components/Layout.tsx +0 -129
  380. package/src/components/ListBox.tsx +0 -97
  381. package/src/components/Menu.tsx +0 -152
  382. package/src/components/NativeSelect.tsx +0 -77
  383. package/src/components/NumberInput.tsx +0 -114
  384. package/src/components/Popover.tsx +0 -44
  385. package/src/components/Provider.tsx +0 -22
  386. package/src/components/RadioGroup.tsx +0 -191
  387. package/src/components/Resizable.tsx +0 -71
  388. package/src/components/ScrollArea.tsx +0 -57
  389. package/src/components/Select.tsx +0 -626
  390. package/src/components/Select.utils.tsx +0 -64
  391. package/src/components/Separator.tsx +0 -25
  392. package/src/components/Sheet.tsx +0 -147
  393. package/src/components/Sonner.tsx +0 -96
  394. package/src/components/Spinner.tsx +0 -30
  395. package/src/components/Switch.tsx +0 -51
  396. package/src/components/Text.tsx +0 -35
  397. package/src/components/Tooltip.tsx +0 -58
  398. package/src/consts/config.ts +0 -2
  399. package/src/hooks/.gitkeep +0 -0
  400. package/src/lib/utils.ts +0 -10
  401. package/tsconfig.json +0 -27
  402. package/tsconfig.lint.json +0 -8
@@ -1,122 +0,0 @@
1
- import {
2
- createContext,
3
- useContext,
4
- useMemo,
5
- useState,
6
- type PropsWithChildren,
7
- } from "react"
8
-
9
- import type {
10
- FilterBuilderItem,
11
- FilterContextValue,
12
- FilterFieldValue,
13
- FilterProps,
14
- FilterRenderMode,
15
- FilterValue,
16
- } from "./Filter.types"
17
-
18
- const FilterContext = createContext<FilterContextValue | undefined>(undefined)
19
-
20
- export function useFilterContext() {
21
- const ctx = useContext(FilterContext)
22
- if (!ctx) {
23
- throw new Error("Filter components must be used within <Filter>")
24
- }
25
- return ctx
26
- }
27
-
28
- export function FilterProvider({
29
- value: controlledValue,
30
- defaultValue,
31
- onChange,
32
- children,
33
- }: PropsWithChildren<FilterProps>) {
34
- const isControlled = controlledValue !== undefined
35
-
36
- const [uncontrolledValue, setUncontrolledValue] = useState<FilterValue>(
37
- defaultValue ?? {}
38
- )
39
-
40
- const value = isControlled ? controlledValue! : uncontrolledValue
41
-
42
- const setValue = (next: FilterValue) => {
43
- if (!isControlled) setUncontrolledValue(next)
44
- onChange?.(next)
45
- }
46
-
47
- const setFieldValue = (field: string, fieldValue: FilterFieldValue) => {
48
- setValue({
49
- ...value,
50
- [field]: fieldValue,
51
- })
52
- }
53
-
54
- const clearField = (field: string) => {
55
- if (!(field in value)) return
56
- const { [field]: _removed, ...rest } = value
57
- setValue(rest)
58
- }
59
-
60
- const reset = () => {
61
- setValue({})
62
- }
63
-
64
- const ctxValue = useMemo<FilterContextValue>(
65
- () => ({
66
- value,
67
- onChange: setValue,
68
- setFieldValue,
69
- clearField,
70
- reset,
71
- }),
72
- [value]
73
- )
74
-
75
- return (
76
- <FilterContext.Provider value={ctxValue}>{children}</FilterContext.Provider>
77
- )
78
- }
79
-
80
- /** Context for the current filter item being rendered. */
81
- interface FilterItemContextValue {
82
- item: FilterBuilderItem
83
- mode: FilterRenderMode
84
- onClose?: () => void
85
- }
86
-
87
- const FilterItemContext = createContext<FilterItemContextValue | undefined>(
88
- undefined
89
- )
90
-
91
- export function FilterItemProvider({
92
- item,
93
- mode,
94
- onClose,
95
- children,
96
- }: PropsWithChildren<{
97
- item: FilterBuilderItem
98
- mode: FilterRenderMode
99
- onClose?: () => void
100
- }>) {
101
- const value = useMemo(() => ({ item, mode, onClose }), [item, mode, onClose])
102
- return (
103
- <FilterItemContext.Provider value={value}>
104
- {children}
105
- </FilterItemContext.Provider>
106
- )
107
- }
108
-
109
- export function useFilterItem() {
110
- const ctx = useContext(FilterItemContext)
111
- return ctx?.item
112
- }
113
-
114
- export function useFilterItemMode() {
115
- const ctx = useContext(FilterItemContext)
116
- return ctx?.mode
117
- }
118
-
119
- export function useFilterItemClose() {
120
- const ctx = useContext(FilterItemContext)
121
- return ctx?.onClose
122
- }
@@ -1,11 +0,0 @@
1
- "use client"
2
-
3
- import type { PropsWithChildren } from "react"
4
-
5
- import { FilterProvider } from "./Filter.store"
6
- import type { FilterProps } from "./Filter.types"
7
-
8
- export function Filter(props: PropsWithChildren<FilterProps>) {
9
- const { children, ...providerProps } = props
10
- return <FilterProvider {...providerProps}>{children}</FilterProvider>
11
- }
@@ -1,107 +0,0 @@
1
- import type { ReactNode } from "react"
2
-
3
- export type FilterPrimitive =
4
- | string
5
- | number
6
- | boolean
7
- | null
8
- | undefined
9
- | Date
10
- | [Date, Date]
11
- | (string | number)[]
12
-
13
- export type SelectOption = {
14
- label: string
15
- value: string
16
- avatar?: string
17
- icon?: React.ReactNode
18
- }
19
-
20
- export type SerializableSelectOption = Omit<SelectOption, "icon">
21
-
22
- export type DateFilterMode = "from" | "to" | "range"
23
- export type DateFilterPreset = "lastWeek" | "thisWeek" | "thisMonth"
24
-
25
- export interface DateModeFilterValue {
26
- mode: DateFilterMode
27
- from?: Date
28
- to?: Date
29
- preset?: DateFilterPreset
30
- }
31
-
32
- export type FilterFieldValue =
33
- | FilterPrimitive
34
- | FilterPrimitive[]
35
- | SerializableSelectOption[]
36
- | DateModeFilterValue
37
-
38
- export type FilterValue = Record<string, FilterFieldValue>
39
-
40
- export interface FilterContextValue {
41
- value: FilterValue
42
- onChange: (value: FilterValue) => void
43
- setFieldValue: (field: string, v: FilterFieldValue) => void
44
- clearField: (field: string) => void
45
- reset: () => void
46
- }
47
-
48
- export interface FilterProps {
49
- value?: FilterValue
50
- defaultValue?: FilterValue
51
- onChange?: (value: FilterValue) => void
52
- children: ReactNode
53
- }
54
-
55
- export interface OptionsLoader {
56
- hasNextPage: boolean
57
- onFetchNextPage: () => void
58
- isFetching?: boolean
59
- onSearch?: (search: string) => void
60
- }
61
-
62
- export type FilterRenderMode = "builder" | "row"
63
-
64
- export interface FilterBuilderItem {
65
- type?: "filter"
66
- field: string
67
- label: ReactNode
68
- icon?: ReactNode
69
- description?: ReactNode
70
- render: (mode: FilterRenderMode) => ReactNode
71
- options?: SelectOption[]
72
- renderIcon?: (option: SelectOption, isSelected: boolean) => ReactNode
73
- multi?: boolean
74
- formatValue?: (value: unknown) => string
75
- isDisabled?: boolean
76
- renderRowValue?: (args: { value: unknown; field: string }) => React.ReactNode
77
- }
78
-
79
- export interface FilterBuilderSeparator {
80
- type: "separator"
81
- }
82
-
83
- export type FilterBuilderEntry = FilterBuilderItem | FilterBuilderSeparator
84
-
85
- export interface FilterBuilderProps {
86
- items: FilterBuilderEntry[]
87
- }
88
-
89
- export function isFilterItem(
90
- entry: FilterBuilderEntry
91
- ): entry is FilterBuilderItem {
92
- return entry.type !== "separator"
93
- }
94
-
95
- export function isSelectOptionArray(
96
- value: unknown
97
- ): value is SerializableSelectOption[] {
98
- if (!Array.isArray(value)) return false
99
- if (value.length === 0) return false
100
- const first = value[0]
101
- return (
102
- typeof first === "object" &&
103
- first !== null &&
104
- "value" in first &&
105
- "label" in first
106
- )
107
- }
@@ -1,38 +0,0 @@
1
- "use client"
2
-
3
- import { useEffect } from "react"
4
-
5
- import { useFilterContext } from "./Filter.store"
6
- import type { FilterBuilderEntry } from "./Filter.types"
7
- import { isFilterItem } from "./Filter.types"
8
- import { FilterBuilder } from "./FilterBuilder"
9
- import { FilterRow } from "./FilterRow"
10
-
11
- interface FilterBarProps {
12
- items: FilterBuilderEntry[]
13
- }
14
-
15
- export function FilterBar({ items }: FilterBarProps) {
16
- const { value, clearField } = useFilterContext()
17
-
18
- // Auto-clear values for disabled filters
19
- useEffect(() => {
20
- for (const entry of items) {
21
- if (!isFilterItem(entry)) continue
22
- if (entry.isDisabled && value[entry.field] != null) {
23
- clearField(entry.field)
24
- }
25
- }
26
- }, [items, value, clearField])
27
-
28
- return (
29
- <div className="flex flex-wrap items-center gap-1.5">
30
- {items.map((entry) => {
31
- if (!isFilterItem(entry)) return null
32
- if (value[entry.field] == null) return null
33
- return <FilterRow key={entry.field} item={entry} />
34
- })}
35
- <FilterBuilder items={items} />
36
- </div>
37
- )
38
- }
@@ -1,158 +0,0 @@
1
- "use client"
2
-
3
- import { useLayoutEffect, useMemo, useRef, useState } from "react"
4
- import { Button } from "@eggspot/ui/components/Button"
5
- import { SearchInput } from "@eggspot/ui/components/Input"
6
- import {
7
- Menu,
8
- MenuHeader,
9
- MenuItem,
10
- MenuPopover,
11
- MenuSeparator,
12
- MenuSubTrigger,
13
- MenuTrigger,
14
- } from "@eggspot/ui/components/Menu"
15
- import { ListFilter as FilterIcon } from "lucide-react"
16
-
17
- import { FilterItemProvider, useFilterContext } from "./Filter.store"
18
- import type { FilterBuilderItem, FilterBuilderProps } from "./Filter.types"
19
- import { isFilterItem } from "./Filter.types"
20
-
21
- export function FilterBuilder({ items }: FilterBuilderProps) {
22
- const { value: filters } = useFilterContext()
23
- const [search, setSearch] = useState("")
24
-
25
- const activeFilterCount = Object.keys(filters).filter(
26
- (key) => filters[key] != null
27
- ).length
28
- const prevCountRef = useRef(activeFilterCount)
29
-
30
- useLayoutEffect(() => {
31
- if (prevCountRef.current !== activeFilterCount) {
32
- prevCountRef.current = activeFilterCount
33
- window.dispatchEvent(new Event("resize"))
34
- }
35
- }, [activeFilterCount])
36
-
37
- const visibleItems = useMemo(
38
- () =>
39
- items.filter((entry) => {
40
- if (!isFilterItem(entry)) return !search
41
- if (!search) return true
42
- const text =
43
- typeof entry.label === "string"
44
- ? entry.label.toLowerCase()
45
- : entry.field.toLowerCase()
46
- return text.includes(search.toLowerCase())
47
- }),
48
- [items, search]
49
- )
50
-
51
- const disabledKeys = useMemo(
52
- () =>
53
- visibleItems
54
- .filter(
55
- (entry): entry is FilterBuilderItem =>
56
- isFilterItem(entry) && entry.isDisabled === true
57
- )
58
- .map((entry) => entry.field),
59
- [visibleItems]
60
- )
61
-
62
- return (
63
- <MenuTrigger
64
- onOpenChange={(isOpen) => {
65
- if (isOpen) setSearch("")
66
- }}
67
- >
68
- <Button
69
- size="sm"
70
- variant="ghost"
71
- intent="secondary"
72
- aria-label="Filter"
73
- tooltip="Filter"
74
- >
75
- <FilterIcon aria-hidden />
76
- {!activeFilterCount && "Filter"}
77
- </Button>
78
-
79
- <MenuPopover placement="bottom start" className="p-0">
80
- <div className="flex max-h-[400px] min-w-[200px] flex-col">
81
- <div className="border-gray-6 border-b p-2">
82
- <SearchInput
83
- autoFocus
84
- placeholder="Filter..."
85
- className="placeholder:text-gray-11 h-7 rounded border-0 bg-transparent px-2 text-xs ring-0!"
86
- onChange={(value) => setSearch(value)}
87
- />
88
- </div>
89
-
90
- {visibleItems.length === 0 ? (
91
- <div className="text-gray-11 px-3 py-4 text-center text-xs">
92
- No matching filters
93
- </div>
94
- ) : (
95
- <Menu className="flex-1 overflow-auto" disabledKeys={disabledKeys}>
96
- <MenuHeader inset={false} separator={false}>
97
- <span className="text-gray-11 text-[11px] tracking-wide uppercase">
98
- Filter by
99
- </span>
100
- </MenuHeader>
101
-
102
- {visibleItems.map((entry, index) => {
103
- if (!isFilterItem(entry)) {
104
- return <MenuSeparator key={`separator-${index}`} />
105
- }
106
-
107
- const hasValue = filters[entry.field] != null
108
- const isDisabled = entry.isDisabled ?? false
109
-
110
- return (
111
- <MenuSubTrigger key={entry.field}>
112
- <MenuItem id={entry.field} className="data-open:bg-gray-3">
113
- <div className="flex items-center gap-2">
114
- {entry.icon && (
115
- <span
116
- className={
117
- isDisabled
118
- ? "text-gray-11 opacity-50"
119
- : "text-gray-12"
120
- }
121
- >
122
- {entry.icon}
123
- </span>
124
- )}
125
- <span
126
- className={
127
- isDisabled
128
- ? "text-gray-11 opacity-50"
129
- : hasValue
130
- ? "text-gray-12"
131
- : "text-gray-11"
132
- }
133
- >
134
- {entry.label}
135
- </span>
136
- </div>
137
- </MenuItem>
138
- <MenuPopover className="p-0">
139
- <FilterSubmenu item={entry} />
140
- </MenuPopover>
141
- </MenuSubTrigger>
142
- )
143
- })}
144
- </Menu>
145
- )}
146
- </div>
147
- </MenuPopover>
148
- </MenuTrigger>
149
- )
150
- }
151
-
152
- function FilterSubmenu({ item }: { item: FilterBuilderItem }) {
153
- return (
154
- <FilterItemProvider item={item} mode="builder">
155
- {item.render("builder")}
156
- </FilterItemProvider>
157
- )
158
- }
@@ -1,250 +0,0 @@
1
- "use client"
2
-
3
- import { useRef, useState } from "react"
4
- import { Popover, PopoverDialog } from "@eggspot/ui/components/Popover"
5
- import { Separator } from "@eggspot/ui/components/Separator"
6
- import { cn } from "@eggspot/ui/lib/utils"
7
- import dayjs from "dayjs"
8
- import { ChevronDown } from "lucide-react"
9
-
10
- import { useFilterContext } from "../Filter.store"
11
- import type { DateFilterMode, DateModeFilterValue } from "../Filter.types"
12
-
13
- const MODE_LABEL: Record<DateFilterMode, string> = {
14
- to: "To",
15
- from: "From",
16
- range: "Range",
17
- }
18
-
19
- function normalizeDateValue(value: unknown): DateModeFilterValue | null {
20
- if (value == null) return null
21
-
22
- if (typeof value === "object" && !Array.isArray(value) && "mode" in value) {
23
- const v = value as DateModeFilterValue
24
- return {
25
- ...v,
26
- from: v.from ? new Date(v.from) : undefined,
27
- to: v.to ? new Date(v.to) : undefined,
28
- }
29
- }
30
-
31
- if (Array.isArray(value) && value.length === 2) {
32
- const [fromRaw, toRaw] = value
33
- const from = fromRaw ? new Date(fromRaw as any) : undefined
34
- const to = toRaw ? new Date(toRaw as any) : undefined
35
-
36
- return {
37
- mode: "range",
38
- from,
39
- to,
40
- }
41
- }
42
-
43
- if (value instanceof Date || typeof value === "string") {
44
- const d = new Date(value as any)
45
- return {
46
- mode: "to",
47
- to: d,
48
- }
49
- }
50
-
51
- return null
52
- }
53
-
54
- export function DateModeRowValue({
55
- value,
56
- field,
57
- }: {
58
- value: unknown
59
- field: string
60
- }) {
61
- const { setFieldValue } = useFilterContext()
62
- const [isOpen, setIsOpen] = useState(false)
63
- const triggerRef = useRef<HTMLSpanElement>(null)
64
-
65
- const v = normalizeDateValue(value)
66
- const mode: DateFilterMode = v?.mode ?? "to"
67
-
68
- const applyMode = (next: DateFilterMode) => {
69
- const base: DateModeFilterValue =
70
- v ??
71
- ({
72
- mode: next,
73
- } as DateModeFilterValue)
74
-
75
- let nextValue: DateModeFilterValue
76
- const today = dayjs().endOf("day").toDate()
77
-
78
- if (next === "from") {
79
- const existingDate = base.from ?? base.to
80
- nextValue = {
81
- mode: "from",
82
- from: existingDate,
83
- to: undefined,
84
- }
85
- } else if (next === "to") {
86
- const existingDate = base.to ?? base.from
87
- nextValue = {
88
- mode: "to",
89
- from: undefined,
90
- to: existingDate,
91
- }
92
- } else {
93
- const existingDate = base.from ?? base.to
94
- if (existingDate) {
95
- nextValue = {
96
- mode: "range",
97
- from: dayjs(existingDate).startOf("day").toDate(),
98
- to: today,
99
- preset: base.preset,
100
- }
101
- } else {
102
- nextValue = {
103
- mode: "range",
104
- from: base.from,
105
- to: base.to ?? today,
106
- preset: base.preset,
107
- }
108
- }
109
- }
110
-
111
- setFieldValue(field, nextValue)
112
- setIsOpen(false)
113
- }
114
-
115
- const label = MODE_LABEL[mode]
116
- const text = formatDateFilterValue(value)
117
- const hasPreset = !!v?.preset
118
-
119
- return (
120
- <>
121
- <>
122
- <span
123
- ref={triggerRef}
124
- role="button"
125
- tabIndex={0}
126
- onClick={(e) => {
127
- e.stopPropagation()
128
- setIsOpen(true)
129
- }}
130
- onKeyDown={(e) => {
131
- if (e.key === "Enter" || e.key === " ") {
132
- e.preventDefault()
133
- e.stopPropagation()
134
- setIsOpen(true)
135
- }
136
- }}
137
- className={cn(
138
- "inline-flex items-center gap-0.5 rounded-sm py-0.5 pr-1.5 pl-2",
139
- "text-gray-12 cursor-pointer bg-transparent",
140
- "hover:bg-gray-5 focus-visible:ring-accent-9 focus-visible:ring-1 focus-visible:outline-none"
141
- )}
142
- >
143
- <span className="capitalize">{label}</span>
144
- <ChevronDown className="size-3" aria-hidden />
145
- </span>
146
- <Separator
147
- orientation="vertical"
148
- className="bg-gray-6 mx-2.5 h-4 w-px"
149
- />
150
- </>
151
-
152
- <span className="text-gray-12">{text}</span>
153
-
154
- <Popover
155
- triggerRef={triggerRef}
156
- isOpen={isOpen}
157
- onOpenChange={setIsOpen}
158
- placement="bottom start"
159
- className="overflow-hidden rounded-lg"
160
- >
161
- <PopoverDialog className="bg-gray-2 min-w-[140px] p-1">
162
- <ModeItem
163
- active={mode === "from"}
164
- onClick={(e) => {
165
- e.stopPropagation()
166
- applyMode("from")
167
- }}
168
- >
169
- <span>From</span>
170
- </ModeItem>
171
- <ModeItem
172
- active={mode === "to"}
173
- onClick={(e) => {
174
- e.stopPropagation()
175
- applyMode("to")
176
- }}
177
- >
178
- <span>To</span>
179
- </ModeItem>
180
- <ModeItem
181
- active={mode === "range"}
182
- onClick={(e) => {
183
- e.stopPropagation()
184
- applyMode("range")
185
- }}
186
- >
187
- <span>Range</span>
188
- </ModeItem>
189
- </PopoverDialog>
190
- </Popover>
191
- </>
192
- )
193
- }
194
-
195
- function ModeItem({
196
- active,
197
- children,
198
- onClick,
199
- }: {
200
- active: boolean
201
- children: React.ReactNode
202
- onClick: React.MouseEventHandler<HTMLButtonElement>
203
- }) {
204
- return (
205
- <button
206
- type="button"
207
- onClick={onClick}
208
- className={cn(
209
- "text-gray-12 flex w-full items-center rounded-md px-2 py-1 text-xs",
210
- "hover:bg-gray-3 transition-colors",
211
- active && "bg-gray-4"
212
- )}
213
- >
214
- {children}
215
- </button>
216
- )
217
- }
218
-
219
- function formatDateFilterValue(raw: unknown): string {
220
- const v = normalizeDateValue(raw)
221
- if (!v) return "Any time"
222
-
223
- const fmt = (d?: Date) => (d ? dayjs(d).format("MMM D, YYYY") : "—")
224
-
225
- const fmtRange = (from?: Date, to?: Date) => {
226
- if (!from || !to) return `${fmt(from)} - ${fmt(to)}`
227
-
228
- const fromYear = dayjs(from).year()
229
- const toYear = dayjs(to).year()
230
-
231
- if (fromYear === toYear) {
232
- return `${dayjs(from).format("MMM D")} - ${dayjs(to).format("MMM D, YYYY")}`
233
- }
234
- return `${fmt(from)} - ${fmt(to)}`
235
- }
236
-
237
- if (v.preset && v.from && v.to) {
238
- return fmtRange(v.from, v.to)
239
- }
240
-
241
- switch (v.mode) {
242
- case "from":
243
- return fmt(v.from)
244
- case "to":
245
- return fmt(v.to)
246
- case "range":
247
- default:
248
- return fmtRange(v.from, v.to)
249
- }
250
- }