@flanksource/clicky-ui 0.1.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +29 -2
  2. package/dist/api-explorer.d.ts +5 -0
  3. package/dist/api-explorer.d.ts.map +1 -0
  4. package/dist/api-explorer.js +25 -0
  5. package/dist/api-explorer.js.map +1 -0
  6. package/dist/clicky.d.ts +2 -0
  7. package/dist/clicky.d.ts.map +1 -0
  8. package/dist/clicky.js +5 -0
  9. package/dist/clicky.js.map +1 -0
  10. package/dist/components/DatePicker.d.ts +18 -0
  11. package/dist/components/DatePicker.d.ts.map +1 -0
  12. package/dist/components/DatePicker.js +63 -0
  13. package/dist/components/DatePicker.js.map +1 -0
  14. package/dist/components/DateTimePicker.d.ts +18 -0
  15. package/dist/components/DateTimePicker.d.ts.map +1 -0
  16. package/dist/components/DateTimePicker.js +84 -0
  17. package/dist/components/DateTimePicker.js.map +1 -0
  18. package/dist/components/FilterBar.d.ts +180 -0
  19. package/dist/components/FilterBar.d.ts.map +1 -0
  20. package/dist/components/FilterBar.js +1685 -0
  21. package/dist/components/FilterBar.js.map +1 -0
  22. package/dist/components/MultiSelect.d.ts +19 -0
  23. package/dist/components/MultiSelect.d.ts.map +1 -0
  24. package/dist/components/MultiSelect.js +143 -0
  25. package/dist/components/MultiSelect.js.map +1 -0
  26. package/dist/components/RangeSlider.d.ts +16 -0
  27. package/dist/components/RangeSlider.d.ts.map +1 -0
  28. package/dist/components/RangeSlider.js +92 -0
  29. package/dist/components/RangeSlider.js.map +1 -0
  30. package/dist/components/button.d.ts +21 -0
  31. package/dist/components/button.d.ts.map +1 -0
  32. package/dist/components/button.js +126 -0
  33. package/dist/components/button.js.map +1 -0
  34. package/dist/components/density-switcher.d.ts +7 -0
  35. package/dist/components/density-switcher.d.ts.map +1 -0
  36. package/dist/components/density-switcher.js +32 -0
  37. package/dist/components/density-switcher.js.map +1 -0
  38. package/dist/components/icon-menu-picker.d.ts +23 -0
  39. package/dist/components/icon-menu-picker.d.ts.map +1 -0
  40. package/dist/components/icon-menu-picker.js +192 -0
  41. package/dist/components/icon-menu-picker.js.map +1 -0
  42. package/dist/components/select.d.ts +15 -0
  43. package/dist/components/select.d.ts.map +1 -0
  44. package/dist/components/select.js +39 -0
  45. package/dist/components/select.js.map +1 -0
  46. package/dist/components/theme-switcher.d.ts +7 -0
  47. package/dist/components/theme-switcher.d.ts.map +1 -0
  48. package/dist/components/theme-switcher.js +42 -0
  49. package/dist/components/theme-switcher.js.map +1 -0
  50. package/dist/components.d.ts +15 -0
  51. package/dist/components.d.ts.map +1 -0
  52. package/dist/components.js +33 -0
  53. package/dist/components.js.map +1 -0
  54. package/dist/data/AnsiHtml.d.ts +7 -0
  55. package/dist/data/AnsiHtml.d.ts.map +1 -0
  56. package/dist/data/AnsiHtml.js +71 -0
  57. package/dist/data/AnsiHtml.js.map +1 -0
  58. package/dist/data/Avatar.d.ts +32 -0
  59. package/dist/data/Avatar.d.ts.map +1 -0
  60. package/dist/data/Avatar.js +201 -0
  61. package/dist/data/Avatar.js.map +1 -0
  62. package/dist/data/AvatarBadge.d.ts +26 -0
  63. package/dist/data/AvatarBadge.d.ts.map +1 -0
  64. package/dist/data/AvatarBadge.js +104 -0
  65. package/dist/data/AvatarBadge.js.map +1 -0
  66. package/dist/data/Badge.d.ts +44 -0
  67. package/dist/data/Badge.d.ts.map +1 -0
  68. package/dist/data/Badge.js +667 -0
  69. package/dist/data/Badge.js.map +1 -0
  70. package/dist/data/Clicky.d.ts +147 -0
  71. package/dist/data/Clicky.d.ts.map +1 -0
  72. package/dist/data/Clicky.fixtures.d.ts +3 -0
  73. package/dist/data/Clicky.fixtures.d.ts.map +1 -0
  74. package/dist/data/Clicky.js +1960 -0
  75. package/dist/data/Clicky.js.map +1 -0
  76. package/dist/data/DataTable.d.ts +95 -0
  77. package/dist/data/DataTable.d.ts.map +1 -0
  78. package/dist/data/DataTable.js +1464 -0
  79. package/dist/data/DataTable.js.map +1 -0
  80. package/dist/data/FilterPill.d.ts +29 -0
  81. package/dist/data/FilterPill.d.ts.map +1 -0
  82. package/dist/data/FilterPill.js +153 -0
  83. package/dist/data/FilterPill.js.map +1 -0
  84. package/dist/data/Gauge.d.ts +15 -0
  85. package/dist/data/Gauge.d.ts.map +1 -0
  86. package/dist/data/Gauge.js +63 -0
  87. package/dist/data/Gauge.js.map +1 -0
  88. package/dist/data/Icon.d.ts +53 -0
  89. package/dist/data/Icon.d.ts.map +1 -0
  90. package/dist/data/Icon.js +115 -0
  91. package/dist/data/Icon.js.map +1 -0
  92. package/dist/data/JsonView.d.ts +8 -0
  93. package/dist/data/JsonView.d.ts.map +1 -0
  94. package/dist/data/JsonView.js +74 -0
  95. package/dist/data/JsonView.js.map +1 -0
  96. package/dist/data/KeyValueList.d.ts +17 -0
  97. package/dist/data/KeyValueList.d.ts.map +1 -0
  98. package/dist/data/KeyValueList.js +33 -0
  99. package/dist/data/KeyValueList.js.map +1 -0
  100. package/dist/data/LogViewer.d.ts +10 -0
  101. package/dist/data/LogViewer.d.ts.map +1 -0
  102. package/dist/data/LogViewer.js +46 -0
  103. package/dist/data/LogViewer.js.map +1 -0
  104. package/dist/data/LogsTable.d.ts +27 -0
  105. package/dist/data/LogsTable.d.ts.map +1 -0
  106. package/dist/data/LogsTable.js +580 -0
  107. package/dist/data/LogsTable.js.map +1 -0
  108. package/dist/data/Markdown.d.ts +6 -0
  109. package/dist/data/Markdown.d.ts.map +1 -0
  110. package/dist/data/Markdown.js +59 -0
  111. package/dist/data/Markdown.js.map +1 -0
  112. package/dist/data/MatrixTable.d.ts +22 -0
  113. package/dist/data/MatrixTable.d.ts.map +1 -0
  114. package/dist/data/MatrixTable.js +164 -0
  115. package/dist/data/MatrixTable.js.map +1 -0
  116. package/dist/data/MethodBadge.d.ts +6 -0
  117. package/dist/data/MethodBadge.d.ts.map +1 -0
  118. package/dist/data/MethodBadge.js +18 -0
  119. package/dist/data/MethodBadge.js.map +1 -0
  120. package/dist/data/ProgressBar.d.ts +13 -0
  121. package/dist/data/ProgressBar.d.ts.map +1 -0
  122. package/dist/data/ProgressBar.js +34 -0
  123. package/dist/data/ProgressBar.js.map +1 -0
  124. package/dist/data/SortableHeader.d.ts +12 -0
  125. package/dist/data/SortableHeader.d.ts.map +1 -0
  126. package/dist/data/SortableHeader.js +33 -0
  127. package/dist/data/SortableHeader.js.map +1 -0
  128. package/dist/data/TabButton.d.ts +12 -0
  129. package/dist/data/TabButton.d.ts.map +1 -0
  130. package/dist/data/TabButton.js +45 -0
  131. package/dist/data/TabButton.js.map +1 -0
  132. package/dist/data/Tree.d.ts +35 -0
  133. package/dist/data/Tree.d.ts.map +1 -0
  134. package/dist/data/Tree.js +236 -0
  135. package/dist/data/Tree.js.map +1 -0
  136. package/dist/data/TreeGroupHeader.d.ts +11 -0
  137. package/dist/data/TreeGroupHeader.d.ts.map +1 -0
  138. package/dist/data/TreeGroupHeader.js +41 -0
  139. package/dist/data/TreeGroupHeader.js.map +1 -0
  140. package/dist/data/TreeNode.d.ts +43 -0
  141. package/dist/data/TreeNode.d.ts.map +1 -0
  142. package/dist/data/TreeNode.js +100 -0
  143. package/dist/data/TreeNode.js.map +1 -0
  144. package/dist/data/cells/StatusDot.d.ts +11 -0
  145. package/dist/data/cells/StatusDot.d.ts.map +1 -0
  146. package/dist/data/cells/StatusDot.js +38 -0
  147. package/dist/data/cells/StatusDot.js.map +1 -0
  148. package/dist/data/cells/TagList.d.ts +59 -0
  149. package/dist/data/cells/TagList.d.ts.map +1 -0
  150. package/dist/data/cells/TagList.js +257 -0
  151. package/dist/data/cells/TagList.js.map +1 -0
  152. package/dist/data/cells/Timestamp.d.ts +46 -0
  153. package/dist/data/cells/Timestamp.d.ts.map +1 -0
  154. package/dist/data/cells/Timestamp.js +146 -0
  155. package/dist/data/cells/Timestamp.js.map +1 -0
  156. package/dist/data/cells/status-mapping.d.ts +8 -0
  157. package/dist/data/cells/status-mapping.d.ts.map +1 -0
  158. package/dist/data/cells/status-mapping.js +44 -0
  159. package/dist/data/cells/status-mapping.js.map +1 -0
  160. package/dist/data/code-highlight.d.ts +12 -0
  161. package/dist/data/code-highlight.d.ts.map +1 -0
  162. package/dist/data/code-highlight.js +28 -0
  163. package/dist/data/code-highlight.js.map +1 -0
  164. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +9 -0
  165. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -0
  166. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +445 -0
  167. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -0
  168. package/dist/data/diagnostics/DiagnosticsTree.d.ts +9 -0
  169. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -0
  170. package/dist/data/diagnostics/DiagnosticsTree.js +78 -0
  171. package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -0
  172. package/dist/data/diagnostics/ErrorDetails.d.ts +20 -0
  173. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -0
  174. package/dist/data/diagnostics/ErrorDetails.js +157 -0
  175. package/dist/data/diagnostics/ErrorDetails.js.map +1 -0
  176. package/dist/data/diagnostics/GoroutineCard.d.ts +10 -0
  177. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -0
  178. package/dist/data/diagnostics/GoroutineCard.js +75 -0
  179. package/dist/data/diagnostics/GoroutineCard.js.map +1 -0
  180. package/dist/data/diagnostics/JvmStackTrace.d.ts +11 -0
  181. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -0
  182. package/dist/data/diagnostics/JvmStackTrace.js +26 -0
  183. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -0
  184. package/dist/data/diagnostics/RenderedStackTrace.d.ts +18 -0
  185. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -0
  186. package/dist/data/diagnostics/RenderedStackTrace.js +235 -0
  187. package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -0
  188. package/dist/data/diagnostics/ThreadCard.d.ts +10 -0
  189. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -0
  190. package/dist/data/diagnostics/ThreadCard.js +78 -0
  191. package/dist/data/diagnostics/ThreadCard.js.map +1 -0
  192. package/dist/data/diagnostics/error-diagnostics.d.ts +26 -0
  193. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -0
  194. package/dist/data/diagnostics/error-diagnostics.js +108 -0
  195. package/dist/data/diagnostics/error-diagnostics.js.map +1 -0
  196. package/dist/data/diagnostics/fixtures.d.ts +3 -0
  197. package/dist/data/diagnostics/fixtures.d.ts.map +1 -0
  198. package/dist/data/diagnostics/jvm-stacktrace.d.ts +34 -0
  199. package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -0
  200. package/dist/data/diagnostics/jvm-stacktrace.js +190 -0
  201. package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -0
  202. package/dist/data/diagnostics/stacktrace-parse.d.ts +11 -0
  203. package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -0
  204. package/dist/data/diagnostics/stacktrace-parse.js +87 -0
  205. package/dist/data/diagnostics/stacktrace-parse.js.map +1 -0
  206. package/dist/data/diagnostics/stacktrace.d.ts +38 -0
  207. package/dist/data/diagnostics/stacktrace.d.ts.map +1 -0
  208. package/dist/data/diagnostics/stacktrace.js +119 -0
  209. package/dist/data/diagnostics/stacktrace.js.map +1 -0
  210. package/dist/data/diagnostics/types.d.ts +30 -0
  211. package/dist/data/diagnostics/types.d.ts.map +1 -0
  212. package/dist/data/diagnostics/utils.d.ts +8 -0
  213. package/dist/data/diagnostics/utils.d.ts.map +1 -0
  214. package/dist/data/diagnostics/utils.js +59 -0
  215. package/dist/data/diagnostics/utils.js.map +1 -0
  216. package/dist/data/har/HarPanel.d.ts +9 -0
  217. package/dist/data/har/HarPanel.d.ts.map +1 -0
  218. package/dist/data/har/HarPanel.js +175 -0
  219. package/dist/data/har/HarPanel.js.map +1 -0
  220. package/dist/data/har/fixtures.d.ts +3 -0
  221. package/dist/data/har/fixtures.d.ts.map +1 -0
  222. package/dist/data/har/types.d.ts +47 -0
  223. package/dist/data/har/types.d.ts.map +1 -0
  224. package/dist/data.d.ts +39 -0
  225. package/dist/data.d.ts.map +1 -0
  226. package/dist/data.js +109 -0
  227. package/dist/data.js.map +1 -0
  228. package/dist/hooks/use-density.d.ts +22 -0
  229. package/dist/hooks/use-density.d.ts.map +1 -0
  230. package/dist/hooks/use-density.js +54 -0
  231. package/dist/hooks/use-density.js.map +1 -0
  232. package/dist/hooks/use-history-route.d.ts +6 -0
  233. package/dist/hooks/use-history-route.d.ts.map +1 -0
  234. package/dist/hooks/use-history-route.js +31 -0
  235. package/dist/hooks/use-history-route.js.map +1 -0
  236. package/dist/hooks/use-sort.d.ts +17 -0
  237. package/dist/hooks/use-sort.d.ts.map +1 -0
  238. package/dist/hooks/use-sort.js +42 -0
  239. package/dist/hooks/use-sort.js.map +1 -0
  240. package/dist/hooks/use-theme.d.ts +17 -0
  241. package/dist/hooks/use-theme.d.ts.map +1 -0
  242. package/dist/hooks/use-theme.js +68 -0
  243. package/dist/hooks/use-theme.js.map +1 -0
  244. package/dist/hooks.d.ts +5 -0
  245. package/dist/hooks.d.ts.map +1 -0
  246. package/dist/hooks.js +14 -0
  247. package/dist/hooks.js.map +1 -0
  248. package/dist/index.d.ts +7 -0
  249. package/dist/index.d.ts.map +1 -0
  250. package/dist/index.js +195 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/layout/Section.d.ts +23 -0
  253. package/dist/layout/Section.d.ts.map +1 -0
  254. package/dist/layout/Section.js +73 -0
  255. package/dist/layout/Section.js.map +1 -0
  256. package/dist/layout/SplitPane.d.ts +13 -0
  257. package/dist/layout/SplitPane.d.ts.map +1 -0
  258. package/dist/layout/SplitPane.js +72 -0
  259. package/dist/layout/SplitPane.js.map +1 -0
  260. package/dist/lib/palette.d.ts +4 -0
  261. package/dist/lib/palette.d.ts.map +1 -0
  262. package/dist/lib/palette.js +35 -0
  263. package/dist/lib/palette.js.map +1 -0
  264. package/dist/lib/size.d.ts +6 -0
  265. package/dist/lib/size.d.ts.map +1 -0
  266. package/dist/lib/size.js +14 -0
  267. package/dist/lib/size.js.map +1 -0
  268. package/dist/lib/utils.d.ts +3 -0
  269. package/dist/lib/utils.d.ts.map +1 -0
  270. package/dist/lib/utils.js +9 -0
  271. package/dist/lib/utils.js.map +1 -0
  272. package/dist/overlay/HoverCard.d.ts +13 -0
  273. package/dist/overlay/HoverCard.d.ts.map +1 -0
  274. package/dist/overlay/HoverCard.js +170 -0
  275. package/dist/overlay/HoverCard.js.map +1 -0
  276. package/dist/overlay/Modal.d.ts +17 -0
  277. package/dist/overlay/Modal.d.ts.map +1 -0
  278. package/dist/overlay/Modal.js +91 -0
  279. package/dist/overlay/Modal.js.map +1 -0
  280. package/dist/rpc/AcceptPicker.d.ts +52 -0
  281. package/dist/rpc/AcceptPicker.d.ts.map +1 -0
  282. package/dist/rpc/AcceptPicker.js +126 -0
  283. package/dist/rpc/AcceptPicker.js.map +1 -0
  284. package/dist/rpc/ApiExplorer.d.ts +11 -0
  285. package/dist/rpc/ApiExplorer.d.ts.map +1 -0
  286. package/dist/rpc/ApiExplorer.js +37 -0
  287. package/dist/rpc/ApiExplorer.js.map +1 -0
  288. package/dist/rpc/CommandForm.d.ts +15 -0
  289. package/dist/rpc/CommandForm.d.ts.map +1 -0
  290. package/dist/rpc/CommandForm.js +356 -0
  291. package/dist/rpc/CommandForm.js.map +1 -0
  292. package/dist/rpc/CommandOutput.d.ts +11 -0
  293. package/dist/rpc/CommandOutput.d.ts.map +1 -0
  294. package/dist/rpc/CommandOutput.js +195 -0
  295. package/dist/rpc/CommandOutput.js.map +1 -0
  296. package/dist/rpc/EndpointList.d.ts +18 -0
  297. package/dist/rpc/EndpointList.d.ts.map +1 -0
  298. package/dist/rpc/EndpointList.js +56 -0
  299. package/dist/rpc/EndpointList.js.map +1 -0
  300. package/dist/rpc/EntityExplorerApp.d.ts +15 -0
  301. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -0
  302. package/dist/rpc/EntityExplorerApp.js +282 -0
  303. package/dist/rpc/EntityExplorerApp.js.map +1 -0
  304. package/dist/rpc/ExecutionResult.d.ts +14 -0
  305. package/dist/rpc/ExecutionResult.d.ts.map +1 -0
  306. package/dist/rpc/ExecutionResult.js +51 -0
  307. package/dist/rpc/ExecutionResult.js.map +1 -0
  308. package/dist/rpc/FilterForm.d.ts +22 -0
  309. package/dist/rpc/FilterForm.d.ts.map +1 -0
  310. package/dist/rpc/FilterForm.js +392 -0
  311. package/dist/rpc/FilterForm.js.map +1 -0
  312. package/dist/rpc/InlineError.d.ts +7 -0
  313. package/dist/rpc/InlineError.d.ts.map +1 -0
  314. package/dist/rpc/InlineError.js +54 -0
  315. package/dist/rpc/InlineError.js.map +1 -0
  316. package/dist/rpc/OperationActionDialog.d.ts +12 -0
  317. package/dist/rpc/OperationActionDialog.d.ts.map +1 -0
  318. package/dist/rpc/OperationActionDialog.js +105 -0
  319. package/dist/rpc/OperationActionDialog.js.map +1 -0
  320. package/dist/rpc/OperationCatalog.d.ts +21 -0
  321. package/dist/rpc/OperationCatalog.d.ts.map +1 -0
  322. package/dist/rpc/OperationCatalog.js +339 -0
  323. package/dist/rpc/OperationCatalog.js.map +1 -0
  324. package/dist/rpc/OperationCommandPage.d.ts +22 -0
  325. package/dist/rpc/OperationCommandPage.d.ts.map +1 -0
  326. package/dist/rpc/OperationCommandPage.js +484 -0
  327. package/dist/rpc/OperationCommandPage.js.map +1 -0
  328. package/dist/rpc/OperationEntityPage.d.ts +23 -0
  329. package/dist/rpc/OperationEntityPage.d.ts.map +1 -0
  330. package/dist/rpc/OperationEntityPage.js +218 -0
  331. package/dist/rpc/OperationEntityPage.js.map +1 -0
  332. package/dist/rpc/classify.d.ts +8 -0
  333. package/dist/rpc/classify.d.ts.map +1 -0
  334. package/dist/rpc/classify.js +76 -0
  335. package/dist/rpc/classify.js.map +1 -0
  336. package/dist/rpc/clickyMetadata.d.ts +12 -0
  337. package/dist/rpc/clickyMetadata.d.ts.map +1 -0
  338. package/dist/rpc/clickyMetadata.js +71 -0
  339. package/dist/rpc/clickyMetadata.js.map +1 -0
  340. package/dist/rpc/formMetadata.d.ts +27 -0
  341. package/dist/rpc/formMetadata.d.ts.map +1 -0
  342. package/dist/rpc/formMetadata.js +250 -0
  343. package/dist/rpc/formMetadata.js.map +1 -0
  344. package/dist/rpc/types.d.ts +109 -0
  345. package/dist/rpc/types.d.ts.map +1 -0
  346. package/dist/rpc/types.js +8 -0
  347. package/dist/rpc/types.js.map +1 -0
  348. package/dist/rpc/useOperations.d.ts +346 -0
  349. package/dist/rpc/useOperations.d.ts.map +1 -0
  350. package/dist/rpc/useOperations.js +31 -0
  351. package/dist/rpc/useOperations.js.map +1 -0
  352. package/dist/rpc.d.ts +14 -0
  353. package/dist/rpc.d.ts.map +1 -0
  354. package/dist/rpc.js +37 -0
  355. package/dist/rpc.js.map +1 -0
  356. package/dist/styles.css +2 -0
  357. package/dist/styles.d.ts +1 -0
  358. package/dist/styles.d.ts.map +1 -0
  359. package/dist/styles.js +2 -0
  360. package/dist/styles.js.map +1 -0
  361. package/dist/tailwind-preset.d.ts +4 -0
  362. package/dist/tailwind-preset.d.ts.map +1 -0
  363. package/dist/tailwind-preset.js +69 -0
  364. package/dist/tailwind-preset.js.map +1 -0
  365. package/dist/utils.d.ts +4 -0
  366. package/dist/utils.d.ts.map +1 -0
  367. package/dist/utils.js +12 -0
  368. package/dist/utils.js.map +1 -0
  369. package/package.json +83 -40
  370. package/dist/index.d.mts +0 -834
  371. package/dist/index.d.mts.map +0 -1
  372. package/dist/index.mjs +0 -2918
  373. package/dist/index.mjs.map +0 -1
  374. package/dist/tailwind-preset.d.mts +0 -7
  375. package/dist/tailwind-preset.d.mts.map +0 -1
  376. package/dist/tailwind-preset.mjs +0 -64
  377. package/dist/tailwind-preset.mjs.map +0 -1
  378. package/src/styles/tokens.css +0 -78
@@ -0,0 +1,47 @@
1
+ export interface HARHeader {
2
+ name: string;
3
+ value: string;
4
+ }
5
+ export interface HARPostData {
6
+ mimeType: string;
7
+ text: string;
8
+ }
9
+ export interface HARContent {
10
+ size: number;
11
+ mimeType?: string;
12
+ text?: string;
13
+ truncated?: boolean;
14
+ }
15
+ export interface HARRequest {
16
+ method: string;
17
+ url: string;
18
+ httpVersion?: string;
19
+ headers?: HARHeader[];
20
+ queryString?: HARHeader[];
21
+ postData?: HARPostData;
22
+ headersSize?: number;
23
+ bodySize?: number;
24
+ }
25
+ export interface HARResponse {
26
+ status: number;
27
+ statusText?: string;
28
+ httpVersion?: string;
29
+ headers?: HARHeader[];
30
+ content?: HARContent;
31
+ redirectURL?: string;
32
+ headersSize?: number;
33
+ bodySize: number;
34
+ }
35
+ export interface HAREntry extends Record<string, unknown> {
36
+ startedDateTime?: string;
37
+ time: number;
38
+ request: HARRequest;
39
+ response: HARResponse;
40
+ cache?: unknown;
41
+ timings?: {
42
+ send?: number;
43
+ wait?: number;
44
+ receive?: number;
45
+ };
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/har/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D"}
package/dist/data.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ export { AnsiHtml, type AnsiHtmlProps } from './data/AnsiHtml';
2
+ export { Avatar, type AvatarKind, type AvatarProps, type AvatarVariant } from './data/Avatar';
3
+ export { AvatarBadge, type AvatarBadgeProps } from './data/AvatarBadge';
4
+ export { Badge, badgeVariants, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeStatus, type BadgeTone, type BadgeTruncate, type BadgeVariant, } from './data/Badge';
5
+ export { DataTable, inferColumns, type DataTableColumn, type DataTableColumnInput, type DataTableColumnKind, type DataTableProps, type StatusOptions, type TagsOptions, type TimestampOptions, } from './data/DataTable';
6
+ export { Timestamp, chooseTimestampFormat, formatTimestamp, parseTimestamp, modeToFormat, type TimestampFormat, type TimestampMode, type TimestampProps, } from './data/cells/Timestamp';
7
+ export { TagActionsProvider, TagList, normalizeTags, splitTagToken, tagActionsFromRecord, tagFilterTokens, useTagActions, useTagActionsValue, type NormalizedTag, type TagActionsContextValue, type TagFilterMode, type TagInput, type TagListProps, type TagsValue, } from './data/cells/TagList';
8
+ export { StatusDot, type StatusDotProps, type StatusDotSize } from './data/cells/StatusDot';
9
+ export { normalizeStatus, STATUS_TOKEN_GROUPS } from './data/cells/status-mapping';
10
+ export { FilterPill, FilterPillGroup, FilterSeparator, type FilterPillProps, type FilterPillGroupProps, type FilterMode, } from './data/FilterPill';
11
+ export { Gauge, type GaugeProps, type GaugeTone } from './data/Gauge';
12
+ export { Icon, setFallbackIconProvider, type FallbackIconProps, type IconProps, type IconStyle, type IconTone, } from './data/Icon';
13
+ export { JsonView, type JsonViewProps } from './data/JsonView';
14
+ export { KeyValueList, type KeyValueListItem, type KeyValueListProps } from './data/KeyValueList';
15
+ export { LogViewer, type LogViewerProps } from './data/LogViewer';
16
+ export { LogsTable, normalizeLogsTableRows, type LogsTableInput, type LogsTableProps, type LogsTableRow, } from './data/LogsTable';
17
+ export { MatrixTable, type MatrixTableProps, type MatrixTableRow } from './data/MatrixTable';
18
+ export { Markdown, type MarkdownProps } from './data/Markdown';
19
+ export { MethodBadge, type MethodBadgeProps } from './data/MethodBadge';
20
+ export { ProgressBar, type ProgressBarProps, type ProgressSegment } from './data/ProgressBar';
21
+ export { SortableHeader, type SortableHeaderProps } from './data/SortableHeader';
22
+ export { TabButton, type TabButtonProps } from './data/TabButton';
23
+ export { Tree, type TreeProps } from './data/Tree';
24
+ export { TreeNode, type TreeNodeProps, type TreeRowContext } from './data/TreeNode';
25
+ export { TreeGroupHeader, type TreeGroupHeaderProps } from './data/TreeGroupHeader';
26
+ export { DiagnosticsTree, type DiagnosticsTreeProps } from './data/diagnostics/DiagnosticsTree';
27
+ export { DiagnosticsDetailPanel, type DiagnosticsDetailPanelProps, } from './data/diagnostics/DiagnosticsDetailPanel';
28
+ export type { ProcessNode, StackCapture, RunMeta } from './data/diagnostics/types';
29
+ export { findProcessByPID, countProcesses, processLabel, processStateIcon, processStateColor, } from './data/diagnostics/utils';
30
+ export { parseGoroutineDump, countGoroutinesByState, parseStackDump, detectDumpFormat, countStackByState, type ParsedGoroutine, type ParsedGoroutineFrame, type ParsedStack, type DumpFormat, } from './data/diagnostics/stacktrace';
31
+ export { parseJvmThreadDump, countThreadsByState, type ParsedThread, type ParsedThreadFrame, } from './data/diagnostics/jvm-stacktrace';
32
+ export { JvmStackTrace, JvmStackFrameRow, type JvmStackTraceProps, } from './data/diagnostics/JvmStackTrace';
33
+ export { StackTrace, type StackTraceProps, type StackTraceSourceResolver, } from './data/diagnostics/RenderedStackTrace';
34
+ export { parseJavaStackTrace, type ParsedStackFrame, type ParsedStackTrace, } from './data/diagnostics/stacktrace-parse';
35
+ export { ErrorDetails, PrettyStackTrace, CopyBadge, type ErrorDetailsProps, } from './data/diagnostics/ErrorDetails';
36
+ export { normalizeErrorDiagnostics, parseDiagnosticsStackTrace, parseInlineJsonContextValue, compactStackPath, isApplicationStackFrame, type ErrorDiagnostics, type ErrorStackFrame, type ParsedErrorStackTrace, } from './data/diagnostics/error-diagnostics';
37
+ export { HarPanel, type HarPanelProps } from './data/har/HarPanel';
38
+ export type { HAREntry, HARRequest, HARResponse, HARContent, HARHeader, HARPostData, } from './data/har/types';
39
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/data.js ADDED
@@ -0,0 +1,109 @@
1
+ import { AnsiHtml } from "./data/AnsiHtml.js";
2
+ import { Avatar } from "./data/Avatar.js";
3
+ import { AvatarBadge } from "./data/AvatarBadge.js";
4
+ import { Badge, badgeVariants } from "./data/Badge.js";
5
+ import { DataTable, inferColumns } from "./data/DataTable.js";
6
+ import { Timestamp, chooseTimestampFormat, formatTimestamp, modeToFormat, parseTimestamp } from "./data/cells/Timestamp.js";
7
+ import { TagActionsProvider, TagList, normalizeTags, splitTagToken, tagActionsFromRecord, tagFilterTokens, useTagActions, useTagActionsValue } from "./data/cells/TagList.js";
8
+ import { StatusDot } from "./data/cells/StatusDot.js";
9
+ import { STATUS_TOKEN_GROUPS, normalizeStatus } from "./data/cells/status-mapping.js";
10
+ import { FilterPill, FilterPillGroup, FilterSeparator } from "./data/FilterPill.js";
11
+ import { Gauge } from "./data/Gauge.js";
12
+ import { Icon, setFallbackIconProvider } from "./data/Icon.js";
13
+ import { JsonView } from "./data/JsonView.js";
14
+ import { KeyValueList } from "./data/KeyValueList.js";
15
+ import { LogViewer } from "./data/LogViewer.js";
16
+ import { LogsTable, normalizeLogsTableRows } from "./data/LogsTable.js";
17
+ import { MatrixTable } from "./data/MatrixTable.js";
18
+ import { Markdown } from "./data/Markdown.js";
19
+ import { MethodBadge } from "./data/MethodBadge.js";
20
+ import { ProgressBar } from "./data/ProgressBar.js";
21
+ import { SortableHeader } from "./data/SortableHeader.js";
22
+ import { TabButton } from "./data/TabButton.js";
23
+ import { Tree } from "./data/Tree.js";
24
+ import { TreeNode } from "./data/TreeNode.js";
25
+ import { TreeGroupHeader } from "./data/TreeGroupHeader.js";
26
+ import { DiagnosticsTree } from "./data/diagnostics/DiagnosticsTree.js";
27
+ import { DiagnosticsDetailPanel } from "./data/diagnostics/DiagnosticsDetailPanel.js";
28
+ import { countProcesses, findProcessByPID, processLabel, processStateColor, processStateIcon } from "./data/diagnostics/utils.js";
29
+ import { countGoroutinesByState, countStackByState, detectDumpFormat, parseGoroutineDump, parseStackDump } from "./data/diagnostics/stacktrace.js";
30
+ import { countThreadsByState, parseJvmThreadDump } from "./data/diagnostics/jvm-stacktrace.js";
31
+ import { JvmStackFrameRow, JvmStackTrace } from "./data/diagnostics/JvmStackTrace.js";
32
+ import { StackTrace } from "./data/diagnostics/RenderedStackTrace.js";
33
+ import { parseJavaStackTrace } from "./data/diagnostics/stacktrace-parse.js";
34
+ import { CopyBadge, ErrorDetails, PrettyStackTrace } from "./data/diagnostics/ErrorDetails.js";
35
+ import { compactStackPath, isApplicationStackFrame, normalizeErrorDiagnostics, parseDiagnosticsStackTrace, parseInlineJsonContextValue } from "./data/diagnostics/error-diagnostics.js";
36
+ import { HarPanel } from "./data/har/HarPanel.js";
37
+ export {
38
+ AnsiHtml,
39
+ Avatar,
40
+ AvatarBadge,
41
+ Badge,
42
+ CopyBadge,
43
+ DataTable,
44
+ DiagnosticsDetailPanel,
45
+ DiagnosticsTree,
46
+ ErrorDetails,
47
+ FilterPill,
48
+ FilterPillGroup,
49
+ FilterSeparator,
50
+ Gauge,
51
+ HarPanel,
52
+ Icon,
53
+ JsonView,
54
+ JvmStackFrameRow,
55
+ JvmStackTrace,
56
+ KeyValueList,
57
+ LogViewer,
58
+ LogsTable,
59
+ Markdown,
60
+ MatrixTable,
61
+ MethodBadge,
62
+ PrettyStackTrace,
63
+ ProgressBar,
64
+ STATUS_TOKEN_GROUPS,
65
+ SortableHeader,
66
+ StackTrace,
67
+ StatusDot,
68
+ TabButton,
69
+ TagActionsProvider,
70
+ TagList,
71
+ Timestamp,
72
+ Tree,
73
+ TreeGroupHeader,
74
+ TreeNode,
75
+ badgeVariants,
76
+ chooseTimestampFormat,
77
+ compactStackPath,
78
+ countGoroutinesByState,
79
+ countProcesses,
80
+ countStackByState,
81
+ countThreadsByState,
82
+ detectDumpFormat,
83
+ findProcessByPID,
84
+ formatTimestamp,
85
+ inferColumns,
86
+ isApplicationStackFrame,
87
+ modeToFormat,
88
+ normalizeErrorDiagnostics,
89
+ normalizeLogsTableRows,
90
+ normalizeStatus,
91
+ normalizeTags,
92
+ parseDiagnosticsStackTrace,
93
+ parseGoroutineDump,
94
+ parseInlineJsonContextValue,
95
+ parseJavaStackTrace,
96
+ parseJvmThreadDump,
97
+ parseStackDump,
98
+ parseTimestamp,
99
+ processLabel,
100
+ processStateColor,
101
+ processStateIcon,
102
+ setFallbackIconProvider,
103
+ splitTagToken,
104
+ tagActionsFromRecord,
105
+ tagFilterTokens,
106
+ useTagActions,
107
+ useTagActionsValue
108
+ };
109
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ export type Density = "compact" | "comfortable" | "spacious";
3
+ type DensityContextValue = {
4
+ density: Density;
5
+ setDensity: (next: Density) => void;
6
+ };
7
+ export type DensityProviderProps = {
8
+ children: ReactNode;
9
+ defaultDensity?: Density;
10
+ storageKey?: string;
11
+ };
12
+ export declare function DensityProvider({ children, defaultDensity, storageKey, }: DensityProviderProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function useDensity(): DensityContextValue;
14
+ /**
15
+ * Non-throwing density read. Returns the context value if a `<DensityProvider>`
16
+ * is mounted, otherwise reads the current `data-density` attribute on
17
+ * `<html>`, falling back to `comfortable`. Use inside leaf components that
18
+ * should respect density without requiring their host to mount a provider.
19
+ */
20
+ export declare function useDensityValue(): Density;
21
+ export {};
22
+ //# sourceMappingURL=use-density.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-density.d.ts","sourceRoot":"","sources":["../../src/hooks/use-density.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAkBF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,cAA8B,EAC9B,UAAwB,GACzB,EAAE,oBAAoB,2CAqBtB;AAED,wBAAgB,UAAU,IAAI,mBAAmB,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
@@ -0,0 +1,54 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useContext, createContext, useState, useEffect, useCallback, useMemo } from "react";
3
+ const STORAGE_KEY = "clicky-ui-density";
4
+ const DATA_ATTR = "data-density";
5
+ const DensityContext = createContext(null);
6
+ function readStored() {
7
+ if (typeof window === "undefined") return null;
8
+ const raw = window.localStorage.getItem(STORAGE_KEY);
9
+ return raw === "compact" || raw === "comfortable" || raw === "spacious" ? raw : null;
10
+ }
11
+ function apply(density) {
12
+ if (typeof document === "undefined") return;
13
+ document.documentElement.setAttribute(DATA_ATTR, density);
14
+ }
15
+ function DensityProvider({
16
+ children,
17
+ defaultDensity = "comfortable",
18
+ storageKey = STORAGE_KEY
19
+ }) {
20
+ const [density, setDensityState] = useState(() => {
21
+ if (typeof window === "undefined") return defaultDensity;
22
+ return readStored() ?? defaultDensity;
23
+ });
24
+ useEffect(() => {
25
+ apply(density);
26
+ if (typeof window !== "undefined") {
27
+ window.localStorage.setItem(storageKey, density);
28
+ }
29
+ }, [density, storageKey]);
30
+ const setDensity = useCallback((next) => setDensityState(next), []);
31
+ const value = useMemo(
32
+ () => ({ density, setDensity }),
33
+ [density, setDensity]
34
+ );
35
+ return /* @__PURE__ */ jsx(DensityContext.Provider, { value, children });
36
+ }
37
+ function useDensity() {
38
+ const ctx = useContext(DensityContext);
39
+ if (!ctx) throw new Error("useDensity must be used inside <DensityProvider>");
40
+ return ctx;
41
+ }
42
+ function useDensityValue() {
43
+ const ctx = useContext(DensityContext);
44
+ if (ctx) return ctx.density;
45
+ if (typeof document === "undefined") return "comfortable";
46
+ const raw = document.documentElement.getAttribute("data-density");
47
+ return raw === "compact" || raw === "spacious" ? raw : "comfortable";
48
+ }
49
+ export {
50
+ DensityProvider,
51
+ useDensity,
52
+ useDensityValue
53
+ };
54
+ //# sourceMappingURL=use-density.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-density.js","sources":["../../src/hooks/use-density.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from \"react\";\n\nexport type Density = \"compact\" | \"comfortable\" | \"spacious\";\n\ntype DensityContextValue = {\n density: Density;\n setDensity: (next: Density) => void;\n};\n\nconst STORAGE_KEY = \"clicky-ui-density\";\nconst DATA_ATTR = \"data-density\";\n\nconst DensityContext = createContext<DensityContextValue | null>(null);\n\nfunction readStored(): Density | null {\n if (typeof window === \"undefined\") return null;\n const raw = window.localStorage.getItem(STORAGE_KEY);\n return raw === \"compact\" || raw === \"comfortable\" || raw === \"spacious\" ? raw : null;\n}\n\nfunction apply(density: Density): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, density);\n}\n\nexport type DensityProviderProps = {\n children: ReactNode;\n defaultDensity?: Density;\n storageKey?: string;\n};\n\nexport function DensityProvider({\n children,\n defaultDensity = \"comfortable\",\n storageKey = STORAGE_KEY,\n}: DensityProviderProps) {\n const [density, setDensityState] = useState<Density>(() => {\n if (typeof window === \"undefined\") return defaultDensity;\n return readStored() ?? defaultDensity;\n });\n\n useEffect(() => {\n apply(density);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(storageKey, density);\n }\n }, [density, storageKey]);\n\n const setDensity = useCallback((next: Density) => setDensityState(next), []);\n\n const value = useMemo<DensityContextValue>(\n () => ({ density, setDensity }),\n [density, setDensity],\n );\n\n return <DensityContext.Provider value={value}>{children}</DensityContext.Provider>;\n}\n\nexport function useDensity(): DensityContextValue {\n const ctx = useContext(DensityContext);\n if (!ctx) throw new Error(\"useDensity must be used inside <DensityProvider>\");\n return ctx;\n}\n\n/**\n * Non-throwing density read. Returns the context value if a `<DensityProvider>`\n * is mounted, otherwise reads the current `data-density` attribute on\n * `<html>`, falling back to `comfortable`. Use inside leaf components that\n * should respect density without requiring their host to mount a provider.\n */\nexport function useDensityValue(): Density {\n const ctx = useContext(DensityContext);\n if (ctx) return ctx.density;\n if (typeof document === \"undefined\") return \"comfortable\";\n const raw = document.documentElement.getAttribute(\"data-density\");\n return raw === \"compact\" || raw === \"spacious\" ? raw : \"comfortable\";\n}\n"],"names":[],"mappings":";;AAiBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,iBAAiB,cAA0C,IAAI;AAErE,SAAS,aAA6B;AACpC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,SAAO,QAAQ,aAAa,QAAQ,iBAAiB,QAAQ,aAAa,MAAM;AAClF;AAEA,SAAS,MAAM,SAAwB;AACrC,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,OAAO;AAC1D;AAQO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,iBAAiB;AAAA,EACjB,aAAa;AACf,GAAyB;AACvB,QAAM,CAAC,SAAS,eAAe,IAAI,SAAkB,MAAM;AACzD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AAED,YAAU,MAAM;AACd,UAAM,OAAO;AACb,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO,aAAa,QAAQ,YAAY,OAAO;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,SAAS,UAAU,CAAC;AAExB,QAAM,aAAa,YAAY,CAAC,SAAkB,gBAAgB,IAAI,GAAG,EAAE;AAE3E,QAAM,QAAQ;AAAA,IACZ,OAAO,EAAE,SAAS;IAClB,CAAC,SAAS,UAAU;AAAA,EAAA;AAGtB,SAAO,oBAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;AAEO,SAAS,aAAkC;AAChD,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kDAAkD;AAC5E,SAAO;AACT;AAQO,SAAS,kBAA2B;AACzC,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,YAAY,IAAI;AACpB,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,QAAM,MAAM,SAAS,gBAAgB,aAAa,cAAc;AAChE,SAAO,QAAQ,aAAa,QAAQ,aAAa,MAAM;AACzD;"}
@@ -0,0 +1,6 @@
1
+ export type UseHistoryRouteOptions<R> = {
2
+ parse: (pathname: string, search: string) => R;
3
+ build: (route: R) => string;
4
+ };
5
+ export declare function useHistoryRoute<R>(options: UseHistoryRouteOptions<R>): [R, (next: Partial<R> | ((prev: R) => R)) => void];
6
+ //# sourceMappingURL=use-history-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-history-route.d.ts","sourceRoot":"","sources":["../../src/hooks/use-history-route.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAgCpD"}
@@ -0,0 +1,31 @@
1
+ import { useState, useEffect, useCallback } from "react";
2
+ function useHistoryRoute(options) {
3
+ const { parse, build } = options;
4
+ const [route, setRoute] = useState(
5
+ () => typeof window === "undefined" ? parse("/", "") : parse(window.location.pathname, window.location.search)
6
+ );
7
+ useEffect(() => {
8
+ const onPop = () => setRoute(parse(window.location.pathname, window.location.search));
9
+ window.addEventListener("popstate", onPop);
10
+ return () => window.removeEventListener("popstate", onPop);
11
+ }, [parse]);
12
+ const navigate = useCallback(
13
+ (next) => {
14
+ setRoute((prev) => {
15
+ const merged = typeof next === "function" ? next(prev) : { ...prev, ...next };
16
+ const path = build(merged);
17
+ if (typeof window !== "undefined") {
18
+ const current = window.location.pathname + window.location.search;
19
+ if (current !== path) window.history.pushState(null, "", path);
20
+ }
21
+ return merged;
22
+ });
23
+ },
24
+ [build]
25
+ );
26
+ return [route, navigate];
27
+ }
28
+ export {
29
+ useHistoryRoute
30
+ };
31
+ //# sourceMappingURL=use-history-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-history-route.js","sources":["../../src/hooks/use-history-route.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\n\nexport type UseHistoryRouteOptions<R> = {\n parse: (pathname: string, search: string) => R;\n build: (route: R) => string;\n};\n\nexport function useHistoryRoute<R>(\n options: UseHistoryRouteOptions<R>,\n): [R, (next: Partial<R> | ((prev: R) => R)) => void] {\n const { parse, build } = options;\n\n const [route, setRoute] = useState<R>(() =>\n typeof window === \"undefined\"\n ? parse(\"/\", \"\")\n : parse(window.location.pathname, window.location.search),\n );\n\n useEffect(() => {\n const onPop = () => setRoute(parse(window.location.pathname, window.location.search));\n window.addEventListener(\"popstate\", onPop);\n return () => window.removeEventListener(\"popstate\", onPop);\n }, [parse]);\n\n const navigate = useCallback(\n (next: Partial<R> | ((prev: R) => R)) => {\n setRoute((prev) => {\n const merged =\n typeof next === \"function\" ? (next as (p: R) => R)(prev) : ({ ...prev, ...next } as R);\n const path = build(merged);\n if (typeof window !== \"undefined\") {\n const current = window.location.pathname + window.location.search;\n if (current !== path) window.history.pushState(null, \"\", path);\n }\n return merged;\n });\n },\n [build],\n );\n\n return [route, navigate];\n}\n"],"names":[],"mappings":";AAOO,SAAS,gBACd,SACoD;AACpD,QAAM,EAAE,OAAO,MAAA,IAAU;AAEzB,QAAM,CAAC,OAAO,QAAQ,IAAI;AAAA,IAAY,MACpC,OAAO,WAAW,cACd,MAAM,KAAK,EAAE,IACb,MAAM,OAAO,SAAS,UAAU,OAAO,SAAS,MAAM;AAAA,EAAA;AAG5D,YAAU,MAAM;AACd,UAAM,QAAQ,MAAM,SAAS,MAAM,OAAO,SAAS,UAAU,OAAO,SAAS,MAAM,CAAC;AACpF,WAAO,iBAAiB,YAAY,KAAK;AACzC,WAAO,MAAM,OAAO,oBAAoB,YAAY,KAAK;AAAA,EAC3D,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,WAAW;AAAA,IACf,CAAC,SAAwC;AACvC,eAAS,CAAC,SAAS;AACjB,cAAM,SACJ,OAAO,SAAS,aAAc,KAAqB,IAAI,IAAK,EAAE,GAAG,MAAM,GAAG,KAAA;AAC5E,cAAM,OAAO,MAAM,MAAM;AACzB,YAAI,OAAO,WAAW,aAAa;AACjC,gBAAM,UAAU,OAAO,SAAS,WAAW,OAAO,SAAS;AAC3D,cAAI,YAAY,KAAM,QAAO,QAAQ,UAAU,MAAM,IAAI,IAAI;AAAA,QAC/D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,KAAK;AAAA,EAAA;AAGR,SAAO,CAAC,OAAO,QAAQ;AACzB;"}
@@ -0,0 +1,17 @@
1
+ export type SortDir = "asc" | "desc";
2
+ export type SortState = {
3
+ key: string;
4
+ dir: SortDir;
5
+ };
6
+ export type UseSortOptions<T> = {
7
+ defaultKey?: string;
8
+ defaultDir?: SortDir;
9
+ resolvers?: Record<string, (item: T) => unknown>;
10
+ };
11
+ export type UseSortReturn<T> = {
12
+ sorted: T[];
13
+ sort: SortState | null;
14
+ toggle: (key: string) => void;
15
+ };
16
+ export declare function useSort<T>(items: T[], options?: UseSortOptions<T>): UseSortReturn<T>;
17
+ //# sourceMappingURL=use-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sort.d.ts","sourceRoot":"","sources":["../../src/hooks/use-sort.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AASF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,GAAE,cAAc,CAAC,CAAC,CAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAqCxF"}
@@ -0,0 +1,42 @@
1
+ import { useState, useMemo } from "react";
2
+ function resolvePath(obj, path) {
3
+ return path.split(".").reduce((o, k) => {
4
+ if (o && typeof o === "object") return o[k];
5
+ return void 0;
6
+ }, obj);
7
+ }
8
+ function useSort(items, options = {}) {
9
+ const { defaultKey, defaultDir = "asc", resolvers } = options;
10
+ const [sort, setSort] = useState(
11
+ defaultKey ? { key: defaultKey, dir: defaultDir } : null
12
+ );
13
+ function toggle(key) {
14
+ setSort((prev) => {
15
+ if ((prev == null ? void 0 : prev.key) === key) {
16
+ return prev.dir === "asc" ? { key, dir: "desc" } : null;
17
+ }
18
+ return { key, dir: "asc" };
19
+ });
20
+ }
21
+ const sorted = useMemo(() => {
22
+ if (!items) return [];
23
+ if (!sort) return items;
24
+ const { key, dir } = sort;
25
+ const resolver = resolvers == null ? void 0 : resolvers[key];
26
+ const get = (item) => resolver ? resolver(item) : resolvePath(item, key);
27
+ return [...items].sort((a, b) => {
28
+ const av = get(a);
29
+ const bv = get(b);
30
+ if (av == null && bv == null) return 0;
31
+ if (av == null) return 1;
32
+ if (bv == null) return -1;
33
+ const cmp = typeof av === "number" && typeof bv === "number" ? av - bv : String(av).localeCompare(String(bv));
34
+ return dir === "asc" ? cmp : -cmp;
35
+ });
36
+ }, [items, sort, resolvers]);
37
+ return { sorted, sort, toggle };
38
+ }
39
+ export {
40
+ useSort
41
+ };
42
+ //# sourceMappingURL=use-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sort.js","sources":["../../src/hooks/use-sort.ts"],"sourcesContent":["import { useMemo, useState } from \"react\";\n\nexport type SortDir = \"asc\" | \"desc\";\n\nexport type SortState = {\n key: string;\n dir: SortDir;\n};\n\nexport type UseSortOptions<T> = {\n defaultKey?: string;\n defaultDir?: SortDir;\n resolvers?: Record<string, (item: T) => unknown>;\n};\n\nexport type UseSortReturn<T> = {\n sorted: T[];\n sort: SortState | null;\n toggle: (key: string) => void;\n};\n\nfunction resolvePath(obj: unknown, path: string): unknown {\n return path.split(\".\").reduce<unknown>((o, k) => {\n if (o && typeof o === \"object\") return (o as Record<string, unknown>)[k];\n return undefined;\n }, obj);\n}\n\nexport function useSort<T>(items: T[], options: UseSortOptions<T> = {}): UseSortReturn<T> {\n const { defaultKey, defaultDir = \"asc\", resolvers } = options;\n\n const [sort, setSort] = useState<SortState | null>(\n defaultKey ? { key: defaultKey, dir: defaultDir } : null,\n );\n\n function toggle(key: string) {\n setSort((prev) => {\n if (prev?.key === key) {\n return prev.dir === \"asc\" ? { key, dir: \"desc\" } : null;\n }\n return { key, dir: \"asc\" };\n });\n }\n\n const sorted = useMemo(() => {\n if (!items) return [];\n if (!sort) return items;\n const { key, dir } = sort;\n const resolver = resolvers?.[key];\n const get = (item: T) => (resolver ? resolver(item) : resolvePath(item, key));\n return [...items].sort((a, b) => {\n const av = get(a);\n const bv = get(b);\n if (av == null && bv == null) return 0;\n if (av == null) return 1;\n if (bv == null) return -1;\n const cmp =\n typeof av === \"number\" && typeof bv === \"number\"\n ? av - bv\n : String(av).localeCompare(String(bv));\n return dir === \"asc\" ? cmp : -cmp;\n });\n }, [items, sort, resolvers]);\n\n return { sorted, sort, toggle };\n}\n"],"names":[],"mappings":";AAqBA,SAAS,YAAY,KAAc,MAAuB;AACxD,SAAO,KAAK,MAAM,GAAG,EAAE,OAAgB,CAAC,GAAG,MAAM;AAC/C,QAAI,KAAK,OAAO,MAAM,SAAU,QAAQ,EAA8B,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,GAAG;AACR;AAEO,SAAS,QAAW,OAAY,UAA6B,IAAsB;AACxF,QAAM,EAAE,YAAY,aAAa,OAAO,cAAc;AAEtD,QAAM,CAAC,MAAM,OAAO,IAAI;AAAA,IACtB,aAAa,EAAE,KAAK,YAAY,KAAK,eAAe;AAAA,EAAA;AAGtD,WAAS,OAAO,KAAa;AAC3B,YAAQ,CAAC,SAAS;AAChB,WAAI,6BAAM,SAAQ,KAAK;AACrB,eAAO,KAAK,QAAQ,QAAQ,EAAE,KAAK,KAAK,WAAW;AAAA,MACrD;AACA,aAAO,EAAE,KAAK,KAAK,MAAA;AAAA,IACrB,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,QAAQ,MAAM;AAC3B,QAAI,CAAC,MAAO,QAAO,CAAA;AACnB,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,EAAE,KAAK,IAAA,IAAQ;AACrB,UAAM,WAAW,uCAAY;AAC7B,UAAM,MAAM,CAAC,SAAa,WAAW,SAAS,IAAI,IAAI,YAAY,MAAM,GAAG;AAC3E,WAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM;AAC/B,YAAM,KAAK,IAAI,CAAC;AAChB,YAAM,KAAK,IAAI,CAAC;AAChB,UAAI,MAAM,QAAQ,MAAM,KAAM,QAAO;AACrC,UAAI,MAAM,KAAM,QAAO;AACvB,UAAI,MAAM,KAAM,QAAO;AACvB,YAAM,MACJ,OAAO,OAAO,YAAY,OAAO,OAAO,WACpC,KAAK,KACL,OAAO,EAAE,EAAE,cAAc,OAAO,EAAE,CAAC;AACzC,aAAO,QAAQ,QAAQ,MAAM,CAAC;AAAA,IAChC,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,MAAM,SAAS,CAAC;AAE3B,SAAO,EAAE,QAAQ,MAAM,OAAA;AACzB;"}
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ export type Theme = "light" | "dark" | "system";
3
+ export type ResolvedTheme = "light" | "dark";
4
+ type ThemeContextValue = {
5
+ theme: Theme;
6
+ resolvedTheme: ResolvedTheme;
7
+ setTheme: (next: Theme) => void;
8
+ };
9
+ export type ThemeProviderProps = {
10
+ children: ReactNode;
11
+ defaultTheme?: Theme;
12
+ storageKey?: string;
13
+ };
14
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function useTheme(): ThemeContextValue;
16
+ export {};
17
+ //# sourceMappingURL=use-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AA4BF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAuB,EACvB,UAAwB,GACzB,EAAE,kBAAkB,2CAoCpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
@@ -0,0 +1,68 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useContext, createContext, useState, useEffect, useCallback, useMemo } from "react";
3
+ const STORAGE_KEY = "clicky-ui-theme";
4
+ const DATA_ATTR = "data-theme";
5
+ const ThemeContext = createContext(null);
6
+ function prefersDark() {
7
+ if (typeof window === "undefined") return false;
8
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
9
+ }
10
+ function readStored() {
11
+ if (typeof window === "undefined") return "system";
12
+ const raw = window.localStorage.getItem(STORAGE_KEY);
13
+ return raw === "light" || raw === "dark" || raw === "system" ? raw : "system";
14
+ }
15
+ function resolve(theme) {
16
+ if (theme === "system") return prefersDark() ? "dark" : "light";
17
+ return theme;
18
+ }
19
+ function apply(resolved) {
20
+ if (typeof document === "undefined") return;
21
+ document.documentElement.setAttribute(DATA_ATTR, resolved);
22
+ }
23
+ function ThemeProvider({
24
+ children,
25
+ defaultTheme = "system",
26
+ storageKey = STORAGE_KEY
27
+ }) {
28
+ const [theme, setThemeState] = useState(() => {
29
+ if (typeof window === "undefined") return defaultTheme;
30
+ return readStored() ?? defaultTheme;
31
+ });
32
+ const [resolvedTheme, setResolvedTheme] = useState(() => resolve(theme));
33
+ useEffect(() => {
34
+ const next = resolve(theme);
35
+ setResolvedTheme(next);
36
+ apply(next);
37
+ if (typeof window !== "undefined") {
38
+ window.localStorage.setItem(storageKey, theme);
39
+ }
40
+ }, [theme, storageKey]);
41
+ useEffect(() => {
42
+ if (theme !== "system" || typeof window === "undefined") return;
43
+ const mq = window.matchMedia("(prefers-color-scheme: dark)");
44
+ const onChange = () => {
45
+ const next = mq.matches ? "dark" : "light";
46
+ setResolvedTheme(next);
47
+ apply(next);
48
+ };
49
+ mq.addEventListener("change", onChange);
50
+ return () => mq.removeEventListener("change", onChange);
51
+ }, [theme]);
52
+ const setTheme = useCallback((next) => setThemeState(next), []);
53
+ const value = useMemo(
54
+ () => ({ theme, resolvedTheme, setTheme }),
55
+ [theme, resolvedTheme, setTheme]
56
+ );
57
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
58
+ }
59
+ function useTheme() {
60
+ const ctx = useContext(ThemeContext);
61
+ if (!ctx) throw new Error("useTheme must be used inside <ThemeProvider>");
62
+ return ctx;
63
+ }
64
+ export {
65
+ ThemeProvider,
66
+ useTheme
67
+ };
68
+ //# sourceMappingURL=use-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.js","sources":["../../src/hooks/use-theme.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from \"react\";\n\nexport type Theme = \"light\" | \"dark\" | \"system\";\nexport type ResolvedTheme = \"light\" | \"dark\";\n\ntype ThemeContextValue = {\n theme: Theme;\n resolvedTheme: ResolvedTheme;\n setTheme: (next: Theme) => void;\n};\n\nconst STORAGE_KEY = \"clicky-ui-theme\";\nconst DATA_ATTR = \"data-theme\";\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nfunction prefersDark(): boolean {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\n\nfunction readStored(): Theme {\n if (typeof window === \"undefined\") return \"system\";\n const raw = window.localStorage.getItem(STORAGE_KEY);\n return raw === \"light\" || raw === \"dark\" || raw === \"system\" ? raw : \"system\";\n}\n\nfunction resolve(theme: Theme): ResolvedTheme {\n if (theme === \"system\") return prefersDark() ? \"dark\" : \"light\";\n return theme;\n}\n\nfunction apply(resolved: ResolvedTheme): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, resolved);\n}\n\nexport type ThemeProviderProps = {\n children: ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n};\n\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n storageKey = STORAGE_KEY,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === \"undefined\") return defaultTheme;\n return readStored() ?? defaultTheme;\n });\n const [resolvedTheme, setResolvedTheme] = useState<ResolvedTheme>(() => resolve(theme));\n\n useEffect(() => {\n const next = resolve(theme);\n setResolvedTheme(next);\n apply(next);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(storageKey, theme);\n }\n }, [theme, storageKey]);\n\n useEffect(() => {\n if (theme !== \"system\" || typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => {\n const next: ResolvedTheme = mq.matches ? \"dark\" : \"light\";\n setResolvedTheme(next);\n apply(next);\n };\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, [theme]);\n\n const setTheme = useCallback((next: Theme) => setThemeState(next), []);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ theme, resolvedTheme, setTheme }),\n [theme, resolvedTheme, setTheme],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used inside <ThemeProvider>\");\n return ctx;\n}\n"],"names":[],"mappings":";;AAmBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,eAAe,cAAwC,IAAI;AAEjE,SAAS,cAAuB;AAC9B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,OAAO,WAAW,8BAA8B,EAAE;AAC3D;AAEA,SAAS,aAAoB;AAC3B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,SAAO,QAAQ,WAAW,QAAQ,UAAU,QAAQ,WAAW,MAAM;AACvE;AAEA,SAAS,QAAQ,OAA6B;AAC5C,MAAI,UAAU,SAAU,QAAO,YAAA,IAAgB,SAAS;AACxD,SAAO;AACT;AAEA,SAAS,MAAM,UAA+B;AAC5C,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,QAAQ;AAC3D;AAQO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,eAAe;AAAA,EACf,aAAa;AACf,GAAuB;AACrB,QAAM,CAAC,OAAO,aAAa,IAAI,SAAgB,MAAM;AACnD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAwB,MAAM,QAAQ,KAAK,CAAC;AAEtF,YAAU,MAAM;AACd,UAAM,OAAO,QAAQ,KAAK;AAC1B,qBAAiB,IAAI;AACrB,UAAM,IAAI;AACV,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO,aAAa,QAAQ,YAAY,KAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,YAAU,MAAM;AACd,QAAI,UAAU,YAAY,OAAO,WAAW,YAAa;AACzD,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM;AACrB,YAAM,OAAsB,GAAG,UAAU,SAAS;AAClD,uBAAiB,IAAI;AACrB,YAAM,IAAI;AAAA,IACZ;AACA,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,WAAW,YAAY,CAAC,SAAgB,cAAc,IAAI,GAAG,EAAE;AAErE,QAAM,QAAQ;AAAA,IACZ,OAAO,EAAE,OAAO,eAAe;IAC/B,CAAC,OAAO,eAAe,QAAQ;AAAA,EAAA;AAGjC,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAe,SAAA,CAAS;AACxD;AAEO,SAAS,WAA8B;AAC5C,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;"}
@@ -0,0 +1,5 @@
1
+ export { ThemeProvider, useTheme, type Theme, type ResolvedTheme } from './hooks/use-theme';
2
+ export { DensityProvider, useDensity, useDensityValue, type Density } from './hooks/use-density';
3
+ export { useSort, type SortDir, type SortState, type UseSortOptions, type UseSortReturn, } from './hooks/use-sort';
4
+ export { useHistoryRoute, type UseHistoryRouteOptions } from './hooks/use-history-route';
5
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/hooks.js ADDED
@@ -0,0 +1,14 @@
1
+ import { ThemeProvider, useTheme } from "./hooks/use-theme.js";
2
+ import { DensityProvider, useDensity, useDensityValue } from "./hooks/use-density.js";
3
+ import { useSort } from "./hooks/use-sort.js";
4
+ import { useHistoryRoute } from "./hooks/use-history-route.js";
5
+ export {
6
+ DensityProvider,
7
+ ThemeProvider,
8
+ useDensity,
9
+ useDensityValue,
10
+ useHistoryRoute,
11
+ useSort,
12
+ useTheme
13
+ };
14
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,7 @@
1
+ export * from './utils';
2
+ export * from './hooks';
3
+ export * from './components';
4
+ export * from './data';
5
+ export * from './clicky';
6
+ export * from './rpc';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}