@flanksource/clicky-ui 0.2.14 → 0.2.15

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 (461) hide show
  1. package/dist/chat.cjs +20 -0
  2. package/dist/chat.cjs.map +1 -0
  3. package/dist/chat.d.ts +2 -0
  4. package/dist/chat.d.ts.map +1 -0
  5. package/dist/chat.js +20 -0
  6. package/dist/chat.js.map +1 -0
  7. package/dist/components/Combobox.cjs +5 -3
  8. package/dist/components/Combobox.cjs.map +1 -1
  9. package/dist/components/Combobox.d.ts +2 -0
  10. package/dist/components/Combobox.d.ts.map +1 -1
  11. package/dist/components/Combobox.js +5 -3
  12. package/dist/components/Combobox.js.map +1 -1
  13. package/dist/components/DateTimePicker.cjs +3 -1
  14. package/dist/components/DateTimePicker.cjs.map +1 -1
  15. package/dist/components/DateTimePicker.d.ts +5 -1
  16. package/dist/components/DateTimePicker.d.ts.map +1 -1
  17. package/dist/components/DateTimePicker.js +3 -1
  18. package/dist/components/DateTimePicker.js.map +1 -1
  19. package/dist/components/FilterBar.cjs +8 -41
  20. package/dist/components/FilterBar.cjs.map +1 -1
  21. package/dist/components/FilterBar.d.ts +0 -2
  22. package/dist/components/FilterBar.d.ts.map +1 -1
  23. package/dist/components/FilterBar.js +3 -36
  24. package/dist/components/FilterBar.js.map +1 -1
  25. package/dist/components/FormatOptionsDropdown.cjs +2 -18
  26. package/dist/components/FormatOptionsDropdown.cjs.map +1 -1
  27. package/dist/components/FormatOptionsDropdown.d.ts +1 -17
  28. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  29. package/dist/components/FormatOptionsDropdown.js +1 -17
  30. package/dist/components/FormatOptionsDropdown.js.map +1 -1
  31. package/dist/components/JsonSchemaForm.cjs +128 -12
  32. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  33. package/dist/components/JsonSchemaForm.d.ts +1 -1
  34. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  35. package/dist/components/JsonSchemaForm.js +131 -15
  36. package/dist/components/JsonSchemaForm.js.map +1 -1
  37. package/dist/components/SecretKeySelector.cjs +0 -1
  38. package/dist/components/SecretKeySelector.cjs.map +1 -1
  39. package/dist/components/SecretKeySelector.d.ts +0 -2
  40. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  41. package/dist/components/SecretKeySelector.js +1 -2
  42. package/dist/components/SecretKeySelector.js.map +1 -1
  43. package/dist/components/TreePickerField.cjs +137 -0
  44. package/dist/components/TreePickerField.cjs.map +1 -0
  45. package/dist/components/TreePickerField.d.ts +30 -0
  46. package/dist/components/TreePickerField.d.ts.map +1 -0
  47. package/dist/components/TreePickerField.js +137 -0
  48. package/dist/components/TreePickerField.js.map +1 -0
  49. package/dist/components/WorkloadPicker.cjs +6 -81
  50. package/dist/components/WorkloadPicker.cjs.map +1 -1
  51. package/dist/components/WorkloadPicker.d.ts +1 -20
  52. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  53. package/dist/components/WorkloadPicker.js +3 -78
  54. package/dist/components/WorkloadPicker.js.map +1 -1
  55. package/dist/components/button-variants.cjs +30 -0
  56. package/dist/components/button-variants.cjs.map +1 -0
  57. package/dist/components/button-variants.d.ts +5 -0
  58. package/dist/components/button-variants.d.ts.map +1 -0
  59. package/dist/components/button-variants.js +30 -0
  60. package/dist/components/button-variants.js.map +1 -0
  61. package/dist/components/button.cjs +11 -82
  62. package/dist/components/button.cjs.map +1 -1
  63. package/dist/components/button.d.ts +1 -5
  64. package/dist/components/button.d.ts.map +1 -1
  65. package/dist/components/button.js +5 -76
  66. package/dist/components/button.js.map +1 -1
  67. package/dist/components/filter-bar-utils.cjs +37 -0
  68. package/dist/components/filter-bar-utils.cjs.map +1 -0
  69. package/dist/components/filter-bar-utils.d.ts +4 -0
  70. package/dist/components/filter-bar-utils.d.ts.map +1 -0
  71. package/dist/components/filter-bar-utils.js +37 -0
  72. package/dist/components/filter-bar-utils.js.map +1 -0
  73. package/dist/components/format-options.cjs +20 -0
  74. package/dist/components/format-options.cjs.map +1 -0
  75. package/dist/components/format-options.d.ts +18 -0
  76. package/dist/components/format-options.d.ts.map +1 -0
  77. package/dist/components/format-options.js +20 -0
  78. package/dist/components/format-options.js.map +1 -0
  79. package/dist/components/json-schema-form-array.cjs +13 -17
  80. package/dist/components/json-schema-form-array.cjs.map +1 -1
  81. package/dist/components/json-schema-form-array.d.ts +1 -2
  82. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  83. package/dist/components/json-schema-form-array.js +3 -7
  84. package/dist/components/json-schema-form-array.js.map +1 -1
  85. package/dist/components/json-schema-form-fields.cjs +90 -232
  86. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  87. package/dist/components/json-schema-form-fields.d.ts +51 -6
  88. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  89. package/dist/components/json-schema-form-fields.js +82 -224
  90. package/dist/components/json-schema-form-fields.js.map +1 -1
  91. package/dist/components/json-schema-form-object.cjs +149 -0
  92. package/dist/components/json-schema-form-object.cjs.map +1 -0
  93. package/dist/components/json-schema-form-object.d.ts +10 -0
  94. package/dist/components/json-schema-form-object.d.ts.map +1 -0
  95. package/dist/components/json-schema-form-object.js +149 -0
  96. package/dist/components/json-schema-form-object.js.map +1 -0
  97. package/dist/components/json-schema-form-preferences.cjs +41 -0
  98. package/dist/components/json-schema-form-preferences.cjs.map +1 -0
  99. package/dist/components/json-schema-form-preferences.d.ts +10 -0
  100. package/dist/components/json-schema-form-preferences.d.ts.map +1 -0
  101. package/dist/components/json-schema-form-preferences.js +41 -0
  102. package/dist/components/json-schema-form-preferences.js.map +1 -0
  103. package/dist/components/json-schema-form-render.cjs +43 -72
  104. package/dist/components/json-schema-form-render.cjs.map +1 -1
  105. package/dist/components/json-schema-form-render.d.ts +5 -33
  106. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  107. package/dist/components/json-schema-form-render.js +41 -70
  108. package/dist/components/json-schema-form-render.js.map +1 -1
  109. package/dist/components/json-schema-form-resolve.cjs +9 -1
  110. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  111. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-resolve.js +9 -1
  113. package/dist/components/json-schema-form-resolve.js.map +1 -1
  114. package/dist/components/json-schema-form-types.d.ts +58 -1
  115. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  116. package/dist/components/json-schema-form-utils.cjs +96 -0
  117. package/dist/components/json-schema-form-utils.cjs.map +1 -0
  118. package/dist/components/json-schema-form-utils.d.ts +17 -0
  119. package/dist/components/json-schema-form-utils.d.ts.map +1 -0
  120. package/dist/components/json-schema-form-utils.js +96 -0
  121. package/dist/components/json-schema-form-utils.js.map +1 -0
  122. package/dist/components/loading.cjs +109 -0
  123. package/dist/components/loading.cjs.map +1 -0
  124. package/dist/components/loading.d.ts +27 -0
  125. package/dist/components/loading.d.ts.map +1 -0
  126. package/dist/components/loading.js +109 -0
  127. package/dist/components/loading.js.map +1 -0
  128. package/dist/components/workload-picker-utils.cjs +88 -0
  129. package/dist/components/workload-picker-utils.cjs.map +1 -0
  130. package/dist/components/workload-picker-utils.d.ts +34 -0
  131. package/dist/components/workload-picker-utils.d.ts.map +1 -0
  132. package/dist/components/workload-picker-utils.js +88 -0
  133. package/dist/components/workload-picker-utils.js.map +1 -0
  134. package/dist/components.cjs +18 -6
  135. package/dist/components.cjs.map +1 -1
  136. package/dist/components.d.ts +10 -3
  137. package/dist/components.d.ts.map +1 -1
  138. package/dist/components.js +16 -4
  139. package/dist/components.js.map +1 -1
  140. package/dist/data/Badge.cjs +11 -91
  141. package/dist/data/Badge.cjs.map +1 -1
  142. package/dist/data/Badge.d.ts +1 -5
  143. package/dist/data/Badge.d.ts.map +1 -1
  144. package/dist/data/Badge.js +11 -91
  145. package/dist/data/Badge.js.map +1 -1
  146. package/dist/data/Clicky.cjs +4 -3
  147. package/dist/data/Clicky.cjs.map +1 -1
  148. package/dist/data/Clicky.d.ts.map +1 -1
  149. package/dist/data/Clicky.js +4 -3
  150. package/dist/data/Clicky.js.map +1 -1
  151. package/dist/data/DataTable.cjs +161 -156
  152. package/dist/data/DataTable.cjs.map +1 -1
  153. package/dist/data/DataTable.d.ts +25 -4
  154. package/dist/data/DataTable.d.ts.map +1 -1
  155. package/dist/data/DataTable.js +140 -135
  156. package/dist/data/DataTable.js.map +1 -1
  157. package/dist/data/FilterPill.cjs +3 -0
  158. package/dist/data/FilterPill.cjs.map +1 -1
  159. package/dist/data/FilterPill.d.ts.map +1 -1
  160. package/dist/data/FilterPill.js +3 -0
  161. package/dist/data/FilterPill.js.map +1 -1
  162. package/dist/data/Icon.cjs +7 -7
  163. package/dist/data/Icon.cjs.map +1 -1
  164. package/dist/data/Icon.js +7 -7
  165. package/dist/data/Icon.js.map +1 -1
  166. package/dist/data/LogDetails.cjs +5 -14
  167. package/dist/data/LogDetails.cjs.map +1 -1
  168. package/dist/data/LogDetails.d.ts +8 -4
  169. package/dist/data/LogDetails.d.ts.map +1 -1
  170. package/dist/data/LogDetails.js +4 -13
  171. package/dist/data/LogDetails.js.map +1 -1
  172. package/dist/data/LogsTable.cjs +6 -165
  173. package/dist/data/LogsTable.cjs.map +1 -1
  174. package/dist/data/LogsTable.d.ts +2 -15
  175. package/dist/data/LogsTable.d.ts.map +1 -1
  176. package/dist/data/LogsTable.js +6 -165
  177. package/dist/data/LogsTable.js.map +1 -1
  178. package/dist/data/TimeseriesPanel.axes.cjs.map +1 -1
  179. package/dist/data/TimeseriesPanel.axes.js.map +1 -1
  180. package/dist/data/TreeNode.cjs +13 -7
  181. package/dist/data/TreeNode.cjs.map +1 -1
  182. package/dist/data/TreeNode.d.ts.map +1 -1
  183. package/dist/data/TreeNode.js +13 -7
  184. package/dist/data/TreeNode.js.map +1 -1
  185. package/dist/data/badge-variants.cjs +85 -0
  186. package/dist/data/badge-variants.cjs.map +1 -0
  187. package/dist/data/badge-variants.d.ts +6 -0
  188. package/dist/data/badge-variants.d.ts.map +1 -0
  189. package/dist/data/badge-variants.js +85 -0
  190. package/dist/data/badge-variants.js.map +1 -0
  191. package/dist/data/cache-browser/CacheBrowser.cjs +59 -0
  192. package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -0
  193. package/dist/data/cache-browser/CacheBrowser.d.ts +26 -0
  194. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -0
  195. package/dist/data/cache-browser/CacheBrowser.js +59 -0
  196. package/dist/data/cache-browser/CacheBrowser.js.map +1 -0
  197. package/dist/data/cache-browser/CacheDetailPanel.cjs +193 -0
  198. package/dist/data/cache-browser/CacheDetailPanel.cjs.map +1 -0
  199. package/dist/data/cache-browser/CacheDetailPanel.d.ts +20 -0
  200. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -0
  201. package/dist/data/cache-browser/CacheDetailPanel.js +193 -0
  202. package/dist/data/cache-browser/CacheDetailPanel.js.map +1 -0
  203. package/dist/data/cache-browser/CacheStatsOverview.cjs +126 -0
  204. package/dist/data/cache-browser/CacheStatsOverview.cjs.map +1 -0
  205. package/dist/data/cache-browser/CacheStatsOverview.d.ts +17 -0
  206. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -0
  207. package/dist/data/cache-browser/CacheStatsOverview.js +126 -0
  208. package/dist/data/cache-browser/CacheStatsOverview.js.map +1 -0
  209. package/dist/data/cache-browser/CacheTree.cjs +189 -0
  210. package/dist/data/cache-browser/CacheTree.cjs.map +1 -0
  211. package/dist/data/cache-browser/CacheTree.d.ts +27 -0
  212. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -0
  213. package/dist/data/cache-browser/CacheTree.js +189 -0
  214. package/dist/data/cache-browser/CacheTree.js.map +1 -0
  215. package/dist/data/cache-browser/CacheValue.cjs +86 -0
  216. package/dist/data/cache-browser/CacheValue.cjs.map +1 -0
  217. package/dist/data/cache-browser/CacheValue.d.ts +11 -0
  218. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -0
  219. package/dist/data/cache-browser/CacheValue.js +86 -0
  220. package/dist/data/cache-browser/CacheValue.js.map +1 -0
  221. package/dist/data/cache-browser/adapter.cjs +52 -0
  222. package/dist/data/cache-browser/adapter.cjs.map +1 -0
  223. package/dist/data/cache-browser/adapter.d.ts +48 -0
  224. package/dist/data/cache-browser/adapter.d.ts.map +1 -0
  225. package/dist/data/cache-browser/adapter.js +52 -0
  226. package/dist/data/cache-browser/adapter.js.map +1 -0
  227. package/dist/data/cache-browser/api.cjs +42 -0
  228. package/dist/data/cache-browser/api.cjs.map +1 -0
  229. package/dist/data/cache-browser/api.d.ts +33 -0
  230. package/dist/data/cache-browser/api.d.ts.map +1 -0
  231. package/dist/data/cache-browser/api.js +42 -0
  232. package/dist/data/cache-browser/api.js.map +1 -0
  233. package/dist/data/cache-browser/index.d.ts +9 -0
  234. package/dist/data/cache-browser/index.d.ts.map +1 -0
  235. package/dist/data/cache-browser/types.cjs +7 -0
  236. package/dist/data/cache-browser/types.cjs.map +1 -0
  237. package/dist/data/cache-browser/types.d.ts +78 -0
  238. package/dist/data/cache-browser/types.d.ts.map +1 -0
  239. package/dist/data/cache-browser/types.js +7 -0
  240. package/dist/data/cache-browser/types.js.map +1 -0
  241. package/dist/data/cells/TagList.cjs +4 -101
  242. package/dist/data/cells/TagList.cjs.map +1 -1
  243. package/dist/data/cells/TagList.d.ts +1 -49
  244. package/dist/data/cells/TagList.d.ts.map +1 -1
  245. package/dist/data/cells/TagList.js +3 -100
  246. package/dist/data/cells/TagList.js.map +1 -1
  247. package/dist/data/cells/Timestamp.cjs +3 -192
  248. package/dist/data/cells/Timestamp.cjs.map +1 -1
  249. package/dist/data/cells/Timestamp.d.ts +1 -50
  250. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  251. package/dist/data/cells/Timestamp.js +2 -191
  252. package/dist/data/cells/Timestamp.js.map +1 -1
  253. package/dist/data/cells/tag-utils.cjs +103 -0
  254. package/dist/data/cells/tag-utils.cjs.map +1 -0
  255. package/dist/data/cells/tag-utils.d.ts +51 -0
  256. package/dist/data/cells/tag-utils.d.ts.map +1 -0
  257. package/dist/data/cells/tag-utils.js +103 -0
  258. package/dist/data/cells/tag-utils.js.map +1 -0
  259. package/dist/data/cells/timestamp-format.cjs +193 -0
  260. package/dist/data/cells/timestamp-format.cjs.map +1 -0
  261. package/dist/data/cells/timestamp-format.d.ts +51 -0
  262. package/dist/data/cells/timestamp-format.d.ts.map +1 -0
  263. package/dist/data/cells/timestamp-format.js +193 -0
  264. package/dist/data/cells/timestamp-format.js.map +1 -0
  265. package/dist/data/chat/Chat.cjs +48 -0
  266. package/dist/data/chat/Chat.cjs.map +1 -0
  267. package/dist/data/chat/Chat.d.ts +26 -0
  268. package/dist/data/chat/Chat.d.ts.map +1 -0
  269. package/dist/data/chat/Chat.fixtures.d.ts +6 -0
  270. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -0
  271. package/dist/data/chat/Chat.js +48 -0
  272. package/dist/data/chat/Chat.js.map +1 -0
  273. package/dist/data/chat/Conversation.cjs +34 -0
  274. package/dist/data/chat/Conversation.cjs.map +1 -0
  275. package/dist/data/chat/Conversation.d.ts +11 -0
  276. package/dist/data/chat/Conversation.d.ts.map +1 -0
  277. package/dist/data/chat/Conversation.js +34 -0
  278. package/dist/data/chat/Conversation.js.map +1 -0
  279. package/dist/data/chat/Message.cjs +44 -0
  280. package/dist/data/chat/Message.cjs.map +1 -0
  281. package/dist/data/chat/Message.d.ts +10 -0
  282. package/dist/data/chat/Message.d.ts.map +1 -0
  283. package/dist/data/chat/Message.js +44 -0
  284. package/dist/data/chat/Message.js.map +1 -0
  285. package/dist/data/chat/PromptInput.cjs +61 -0
  286. package/dist/data/chat/PromptInput.cjs.map +1 -0
  287. package/dist/data/chat/PromptInput.d.ts +16 -0
  288. package/dist/data/chat/PromptInput.d.ts.map +1 -0
  289. package/dist/data/chat/PromptInput.js +61 -0
  290. package/dist/data/chat/PromptInput.js.map +1 -0
  291. package/dist/data/chat/ToolCall.cjs +92 -0
  292. package/dist/data/chat/ToolCall.cjs.map +1 -0
  293. package/dist/data/chat/ToolCall.d.ts +14 -0
  294. package/dist/data/chat/ToolCall.d.ts.map +1 -0
  295. package/dist/data/chat/ToolCall.js +92 -0
  296. package/dist/data/chat/ToolCall.js.map +1 -0
  297. package/dist/data/chat/clickyOperationsToTools.cjs +73 -0
  298. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -0
  299. package/dist/data/chat/clickyOperationsToTools.d.ts +10 -0
  300. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -0
  301. package/dist/data/chat/clickyOperationsToTools.js +73 -0
  302. package/dist/data/chat/clickyOperationsToTools.js.map +1 -0
  303. package/dist/data/chat/index.d.ts +8 -0
  304. package/dist/data/chat/index.d.ts.map +1 -0
  305. package/dist/data/chat/types.cjs +18 -0
  306. package/dist/data/chat/types.cjs.map +1 -0
  307. package/dist/data/chat/types.d.ts +41 -0
  308. package/dist/data/chat/types.d.ts.map +1 -0
  309. package/dist/data/chat/types.js +18 -0
  310. package/dist/data/chat/types.js.map +1 -0
  311. package/dist/data/data-table-utils.cjs +55 -0
  312. package/dist/data/data-table-utils.cjs.map +1 -0
  313. package/dist/data/data-table-utils.d.ts +24 -0
  314. package/dist/data/data-table-utils.d.ts.map +1 -0
  315. package/dist/data/data-table-utils.js +55 -0
  316. package/dist/data/data-table-utils.js.map +1 -0
  317. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +2 -1
  318. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  319. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  320. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +3 -2
  321. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  322. package/dist/data/diagnostics/GoroutineCard.cjs +3 -22
  323. package/dist/data/diagnostics/GoroutineCard.cjs.map +1 -1
  324. package/dist/data/diagnostics/GoroutineCard.d.ts +0 -2
  325. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  326. package/dist/data/diagnostics/GoroutineCard.js +2 -21
  327. package/dist/data/diagnostics/GoroutineCard.js.map +1 -1
  328. package/dist/data/diagnostics/ThreadCard.cjs +3 -38
  329. package/dist/data/diagnostics/ThreadCard.cjs.map +1 -1
  330. package/dist/data/diagnostics/ThreadCard.d.ts +0 -2
  331. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  332. package/dist/data/diagnostics/ThreadCard.js +2 -37
  333. package/dist/data/diagnostics/ThreadCard.js.map +1 -1
  334. package/dist/data/diagnostics/state-styles.cjs +59 -0
  335. package/dist/data/diagnostics/state-styles.cjs.map +1 -0
  336. package/dist/data/diagnostics/state-styles.d.ts +5 -0
  337. package/dist/data/diagnostics/state-styles.d.ts.map +1 -0
  338. package/dist/data/diagnostics/state-styles.js +59 -0
  339. package/dist/data/diagnostics/state-styles.js.map +1 -0
  340. package/dist/data/logs-normalize.cjs +166 -0
  341. package/dist/data/logs-normalize.cjs.map +1 -0
  342. package/dist/data/logs-normalize.d.ts +16 -0
  343. package/dist/data/logs-normalize.d.ts.map +1 -0
  344. package/dist/data/logs-normalize.js +166 -0
  345. package/dist/data/logs-normalize.js.map +1 -0
  346. package/dist/data/task-status.cjs +19 -19
  347. package/dist/data/task-status.cjs.map +1 -1
  348. package/dist/data/task-status.js +19 -19
  349. package/dist/data/task-status.js.map +1 -1
  350. package/dist/data/version-info.cjs +3 -3
  351. package/dist/data/version-info.js +3 -3
  352. package/dist/data.cjs +43 -18
  353. package/dist/data.cjs.map +1 -1
  354. package/dist/data.d.ts +11 -5
  355. package/dist/data.d.ts.map +1 -1
  356. package/dist/data.js +30 -5
  357. package/dist/data.js.map +1 -1
  358. package/dist/hooks/density-provider.cjs +38 -0
  359. package/dist/hooks/density-provider.cjs.map +1 -0
  360. package/dist/hooks/density-provider.d.ts +20 -0
  361. package/dist/hooks/density-provider.d.ts.map +1 -0
  362. package/dist/hooks/density-provider.js +38 -0
  363. package/dist/hooks/density-provider.js.map +1 -0
  364. package/dist/hooks/theme-provider.cjs +43 -0
  365. package/dist/hooks/theme-provider.cjs.map +1 -0
  366. package/dist/hooks/theme-provider.d.ts +9 -0
  367. package/dist/hooks/theme-provider.d.ts.map +1 -0
  368. package/dist/hooks/theme-provider.js +43 -0
  369. package/dist/hooks/theme-provider.js.map +1 -0
  370. package/dist/hooks/use-density.cjs +8 -37
  371. package/dist/hooks/use-density.cjs.map +1 -1
  372. package/dist/hooks/use-density.d.ts +5 -20
  373. package/dist/hooks/use-density.d.ts.map +1 -1
  374. package/dist/hooks/use-density.js +9 -38
  375. package/dist/hooks/use-density.js.map +1 -1
  376. package/dist/hooks/use-theme.cjs +10 -43
  377. package/dist/hooks/use-theme.cjs.map +1 -1
  378. package/dist/hooks/use-theme.d.ts +6 -9
  379. package/dist/hooks/use-theme.d.ts.map +1 -1
  380. package/dist/hooks/use-theme.js +11 -44
  381. package/dist/hooks/use-theme.js.map +1 -1
  382. package/dist/hooks.cjs +5 -2
  383. package/dist/hooks.cjs.map +1 -1
  384. package/dist/hooks.d.ts +4 -2
  385. package/dist/hooks.d.ts.map +1 -1
  386. package/dist/hooks.js +5 -2
  387. package/dist/hooks.js.map +1 -1
  388. package/dist/icons/changeIconAliases.cjs +13 -13
  389. package/dist/icons/changeIconAliases.cjs.map +1 -1
  390. package/dist/icons/changeIconAliases.d.ts.map +1 -1
  391. package/dist/icons/changeIconAliases.js +13 -13
  392. package/dist/icons/changeIconAliases.js.map +1 -1
  393. package/dist/index.cjs +71 -30
  394. package/dist/index.cjs.map +1 -1
  395. package/dist/index.js +53 -12
  396. package/dist/index.js.map +1 -1
  397. package/dist/overlay/DropdownMenu.cjs +2 -0
  398. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  399. package/dist/overlay/DropdownMenu.d.ts +3 -1
  400. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  401. package/dist/overlay/DropdownMenu.js +2 -0
  402. package/dist/overlay/DropdownMenu.js.map +1 -1
  403. package/dist/overlay/Modal.cjs +11 -4
  404. package/dist/overlay/Modal.cjs.map +1 -1
  405. package/dist/overlay/Modal.d.ts +1 -1
  406. package/dist/overlay/Modal.d.ts.map +1 -1
  407. package/dist/overlay/Modal.js +11 -4
  408. package/dist/overlay/Modal.js.map +1 -1
  409. package/dist/overlay/modalStack.cjs +35 -0
  410. package/dist/overlay/modalStack.cjs.map +1 -0
  411. package/dist/overlay/modalStack.d.ts +13 -0
  412. package/dist/overlay/modalStack.d.ts.map +1 -0
  413. package/dist/overlay/modalStack.js +35 -0
  414. package/dist/overlay/modalStack.js.map +1 -0
  415. package/dist/rpc/AcceptPicker.cjs +2 -18
  416. package/dist/rpc/AcceptPicker.cjs.map +1 -1
  417. package/dist/rpc/AcceptPicker.d.ts +1 -41
  418. package/dist/rpc/AcceptPicker.d.ts.map +1 -1
  419. package/dist/rpc/AcceptPicker.js +2 -18
  420. package/dist/rpc/AcceptPicker.js.map +1 -1
  421. package/dist/rpc/CommandOutput.cjs +1 -1
  422. package/dist/rpc/CommandOutput.cjs.map +1 -1
  423. package/dist/rpc/CommandOutput.js +1 -1
  424. package/dist/rpc/CommandOutput.js.map +1 -1
  425. package/dist/rpc/EndpointList.cjs +1 -1
  426. package/dist/rpc/EndpointList.cjs.map +1 -1
  427. package/dist/rpc/EndpointList.js +1 -1
  428. package/dist/rpc/EndpointList.js.map +1 -1
  429. package/dist/rpc/OperationCatalog.cjs +23 -41
  430. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  431. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  432. package/dist/rpc/OperationCatalog.js +24 -42
  433. package/dist/rpc/OperationCatalog.js.map +1 -1
  434. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  435. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  436. package/dist/rpc/OperationCommandPage.js.map +1 -1
  437. package/dist/rpc/accept-options.cjs +20 -0
  438. package/dist/rpc/accept-options.cjs.map +1 -0
  439. package/dist/rpc/accept-options.d.ts +42 -0
  440. package/dist/rpc/accept-options.d.ts.map +1 -0
  441. package/dist/rpc/accept-options.js +20 -0
  442. package/dist/rpc/accept-options.js.map +1 -0
  443. package/dist/rpc/classify.cjs +15 -4
  444. package/dist/rpc/classify.cjs.map +1 -1
  445. package/dist/rpc/classify.d.ts.map +1 -1
  446. package/dist/rpc/classify.js +15 -4
  447. package/dist/rpc/classify.js.map +1 -1
  448. package/dist/rpc/clickyMetadata.cjs +13 -3
  449. package/dist/rpc/clickyMetadata.cjs.map +1 -1
  450. package/dist/rpc/clickyMetadata.d.ts +2 -0
  451. package/dist/rpc/clickyMetadata.d.ts.map +1 -1
  452. package/dist/rpc/clickyMetadata.js +14 -4
  453. package/dist/rpc/clickyMetadata.js.map +1 -1
  454. package/dist/rpc.cjs +3 -2
  455. package/dist/rpc.cjs.map +1 -1
  456. package/dist/rpc.d.ts +2 -1
  457. package/dist/rpc.d.ts.map +1 -1
  458. package/dist/rpc.js +2 -1
  459. package/dist/rpc.js.map +1 -1
  460. package/dist/styles.css +1 -1
  461. package/package.json +16 -1
@@ -1,54 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
3
  const react = require("react");
5
- const STORAGE_KEY = "clicky-ui-density";
4
+ const DENSITY_STORAGE_KEY = "clicky-ui-density";
6
5
  const DATA_ATTR = "data-density";
7
6
  const DensityContext = react.createContext(null);
8
- function readStored() {
7
+ function readStoredDensity() {
9
8
  if (typeof window === "undefined") return null;
10
- const raw = window.localStorage.getItem(STORAGE_KEY);
9
+ const raw = window.localStorage.getItem(DENSITY_STORAGE_KEY);
11
10
  return raw === "compact" || raw === "comfortable" || raw === "spacious" ? raw : null;
12
11
  }
13
- function apply(density) {
12
+ function applyDensity(density) {
14
13
  if (typeof document === "undefined") return;
15
14
  document.documentElement.setAttribute(DATA_ATTR, density);
16
15
  }
17
- function DensityProvider({
18
- children,
19
- defaultDensity = "comfortable",
20
- storageKey = STORAGE_KEY
21
- }) {
22
- const [density, setDensityState] = react.useState(() => {
23
- if (typeof window === "undefined") return defaultDensity;
24
- return readStored() ?? defaultDensity;
25
- });
26
- react.useEffect(() => {
27
- apply(density);
28
- if (typeof window !== "undefined") {
29
- window.localStorage.setItem(storageKey, density);
30
- }
31
- }, [density, storageKey]);
32
- const setDensity = react.useCallback((next) => setDensityState(next), []);
33
- const value = react.useMemo(
34
- () => ({ density, setDensity }),
35
- [density, setDensity]
36
- );
37
- return /* @__PURE__ */ jsxRuntime.jsx(DensityContext.Provider, { value, children });
38
- }
39
16
  function useDensity() {
40
17
  const ctx = react.useContext(DensityContext);
41
18
  if (!ctx) throw new Error("useDensity must be used inside <DensityProvider>");
42
19
  return ctx;
43
20
  }
44
- function DensityValueProvider({
45
- density,
46
- children
47
- }) {
48
- const value = react.useMemo(() => ({ density, setDensity: () => {
49
- } }), [density]);
50
- return /* @__PURE__ */ jsxRuntime.jsx(DensityContext.Provider, { value, children });
51
- }
52
21
  function useDensityValue() {
53
22
  const ctx = react.useContext(DensityContext);
54
23
  if (ctx) return ctx.density;
@@ -56,8 +25,10 @@ function useDensityValue() {
56
25
  const raw = document.documentElement.getAttribute("data-density");
57
26
  return raw === "compact" || raw === "spacious" ? raw : "comfortable";
58
27
  }
59
- exports.DensityProvider = DensityProvider;
60
- exports.DensityValueProvider = DensityValueProvider;
28
+ exports.DENSITY_STORAGE_KEY = DENSITY_STORAGE_KEY;
29
+ exports.DensityContext = DensityContext;
30
+ exports.applyDensity = applyDensity;
31
+ exports.readStoredDensity = readStoredDensity;
61
32
  exports.useDensity = useDensity;
62
33
  exports.useDensityValue = useDensityValue;
63
34
  //# sourceMappingURL=use-density.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-density.cjs","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 * Provide a density value to descendants without owning the storage / setter.\n * Useful when a component (e.g. DataTable) already manages density via its\n * own state and just needs leaf cells like TagList to read the active value\n * via {@link useDensityValue}. Calls to `setDensity` from descendants are\n * ignored — the host component controls density externally.\n */\nexport function DensityValueProvider({\n density,\n children,\n}: {\n density: Density;\n children: ReactNode;\n}) {\n const value = useMemo<DensityContextValue>(() => ({ density, setDensity: () => {} }), [density]);\n return <DensityContext.Provider value={value}>{children}</DensityContext.Provider>;\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":["createContext","useState","useEffect","useCallback","useMemo","jsx","useContext"],"mappings":";;;;AAiBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,iBAAiBA,MAAAA,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,IAAIC,MAAAA,SAAkB,MAAM;AACzD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AAEDC,QAAAA,UAAU,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,aAAaC,MAAAA,YAAY,CAAC,SAAkB,gBAAgB,IAAI,GAAG,EAAE;AAE3E,QAAM,QAAQC,MAAAA;AAAAA,IACZ,OAAO,EAAE,SAAS;IAClB,CAAC,SAAS,UAAU;AAAA,EAAA;AAGtB,SAAOC,2BAAAA,IAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;AAEO,SAAS,aAAkC;AAChD,QAAM,MAAMC,MAAAA,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kDAAkD;AAC5E,SAAO;AACT;AASO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQF,MAAAA,QAA6B,OAAO,EAAE,SAAS,YAAY,MAAM;AAAA,EAAC,EAAA,IAAM,CAAC,OAAO,CAAC;AAC/F,SAAOC,2BAAAA,IAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;AAQO,SAAS,kBAA2B;AACzC,QAAM,MAAMC,MAAAA,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;;;;;"}
1
+ {"version":3,"file":"use-density.cjs","sources":["../../src/hooks/use-density.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type Density = \"compact\" | \"comfortable\" | \"spacious\";\n\nexport type DensityContextValue = {\n density: Density;\n setDensity: (next: Density) => void;\n};\n\nexport const DENSITY_STORAGE_KEY = \"clicky-ui-density\";\nconst DATA_ATTR = \"data-density\";\n\nexport const DensityContext = createContext<DensityContextValue | null>(null);\n\nexport function readStoredDensity(): Density | null {\n if (typeof window === \"undefined\") return null;\n const raw = window.localStorage.getItem(DENSITY_STORAGE_KEY);\n return raw === \"compact\" || raw === \"comfortable\" || raw === \"spacious\" ? raw : null;\n}\n\nexport function applyDensity(density: Density): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, density);\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":["createContext","useContext"],"mappings":";;;AASO,MAAM,sBAAsB;AACnC,MAAM,YAAY;AAEX,MAAM,iBAAiBA,MAAAA,cAA0C,IAAI;AAErE,SAAS,oBAAoC;AAClD,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,mBAAmB;AAC3D,SAAO,QAAQ,aAAa,QAAQ,iBAAiB,QAAQ,aAAa,MAAM;AAClF;AAEO,SAAS,aAAa,SAAwB;AACnD,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,OAAO;AAC1D;AAEO,SAAS,aAAkC;AAChD,QAAM,MAAMC,MAAAA,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kDAAkD;AAC5E,SAAO;AACT;AAQO,SAAS,kBAA2B;AACzC,QAAM,MAAMA,MAAAA,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;;;;;;;"}
@@ -1,27 +1,13 @@
1
- import { ReactNode } from 'react';
2
1
  export type Density = "compact" | "comfortable" | "spacious";
3
- type DensityContextValue = {
2
+ export type DensityContextValue = {
4
3
  density: Density;
5
4
  setDensity: (next: Density) => void;
6
5
  };
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;
6
+ export declare const DENSITY_STORAGE_KEY = "clicky-ui-density";
7
+ export declare const DensityContext: import('react').Context<DensityContextValue | null>;
8
+ export declare function readStoredDensity(): Density | null;
9
+ export declare function applyDensity(density: Density): void;
13
10
  export declare function useDensity(): DensityContextValue;
14
- /**
15
- * Provide a density value to descendants without owning the storage / setter.
16
- * Useful when a component (e.g. DataTable) already manages density via its
17
- * own state and just needs leaf cells like TagList to read the active value
18
- * via {@link useDensityValue}. Calls to `setDensity` from descendants are
19
- * ignored — the host component controls density externally.
20
- */
21
- export declare function DensityValueProvider({ density, children, }: {
22
- density: Density;
23
- children: ReactNode;
24
- }): import("react/jsx-runtime").JSX.Element;
25
11
  /**
26
12
  * Non-throwing density read. Returns the context value if a `<DensityProvider>`
27
13
  * is mounted, otherwise reads the current `data-density` attribute on
@@ -29,5 +15,4 @@ export declare function DensityValueProvider({ density, children, }: {
29
15
  * should respect density without requiring their host to mount a provider.
30
16
  */
31
17
  export declare function useDensityValue(): Density;
32
- export {};
33
18
  //# sourceMappingURL=use-density.d.ts.map
@@ -1 +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;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAGA;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
1
+ {"version":3,"file":"use-density.d.ts","sourceRoot":"","sources":["../../src/hooks/use-density.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAGvD,eAAO,MAAM,cAAc,qDAAkD,CAAC;AAE9E,wBAAgB,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAIlD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGnD;AAED,wBAAgB,UAAU,IAAI,mBAAmB,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
@@ -1,52 +1,21 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useState, useEffect, useCallback, useMemo, useContext, createContext } from "react";
3
- const STORAGE_KEY = "clicky-ui-density";
1
+ import { useContext, createContext } from "react";
2
+ const DENSITY_STORAGE_KEY = "clicky-ui-density";
4
3
  const DATA_ATTR = "data-density";
5
4
  const DensityContext = createContext(null);
6
- function readStored() {
5
+ function readStoredDensity() {
7
6
  if (typeof window === "undefined") return null;
8
- const raw = window.localStorage.getItem(STORAGE_KEY);
7
+ const raw = window.localStorage.getItem(DENSITY_STORAGE_KEY);
9
8
  return raw === "compact" || raw === "comfortable" || raw === "spacious" ? raw : null;
10
9
  }
11
- function apply(density) {
10
+ function applyDensity(density) {
12
11
  if (typeof document === "undefined") return;
13
12
  document.documentElement.setAttribute(DATA_ATTR, density);
14
13
  }
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
14
  function useDensity() {
38
15
  const ctx = useContext(DensityContext);
39
16
  if (!ctx) throw new Error("useDensity must be used inside <DensityProvider>");
40
17
  return ctx;
41
18
  }
42
- function DensityValueProvider({
43
- density,
44
- children
45
- }) {
46
- const value = useMemo(() => ({ density, setDensity: () => {
47
- } }), [density]);
48
- return /* @__PURE__ */ jsx(DensityContext.Provider, { value, children });
49
- }
50
19
  function useDensityValue() {
51
20
  const ctx = useContext(DensityContext);
52
21
  if (ctx) return ctx.density;
@@ -55,8 +24,10 @@ function useDensityValue() {
55
24
  return raw === "compact" || raw === "spacious" ? raw : "comfortable";
56
25
  }
57
26
  export {
58
- DensityProvider,
59
- DensityValueProvider,
27
+ DENSITY_STORAGE_KEY,
28
+ DensityContext,
29
+ applyDensity,
30
+ readStoredDensity,
60
31
  useDensity,
61
32
  useDensityValue
62
33
  };
@@ -1 +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 * Provide a density value to descendants without owning the storage / setter.\n * Useful when a component (e.g. DataTable) already manages density via its\n * own state and just needs leaf cells like TagList to read the active value\n * via {@link useDensityValue}. Calls to `setDensity` from descendants are\n * ignored — the host component controls density externally.\n */\nexport function DensityValueProvider({\n density,\n children,\n}: {\n density: Density;\n children: ReactNode;\n}) {\n const value = useMemo<DensityContextValue>(() => ({ density, setDensity: () => {} }), [density]);\n return <DensityContext.Provider value={value}>{children}</DensityContext.Provider>;\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;AASO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQ,QAA6B,OAAO,EAAE,SAAS,YAAY,MAAM;AAAA,EAAC,EAAA,IAAM,CAAC,OAAO,CAAC;AAC/F,SAAO,oBAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;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;"}
1
+ {"version":3,"file":"use-density.js","sources":["../../src/hooks/use-density.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type Density = \"compact\" | \"comfortable\" | \"spacious\";\n\nexport type DensityContextValue = {\n density: Density;\n setDensity: (next: Density) => void;\n};\n\nexport const DENSITY_STORAGE_KEY = \"clicky-ui-density\";\nconst DATA_ATTR = \"data-density\";\n\nexport const DensityContext = createContext<DensityContextValue | null>(null);\n\nexport function readStoredDensity(): Density | null {\n if (typeof window === \"undefined\") return null;\n const raw = window.localStorage.getItem(DENSITY_STORAGE_KEY);\n return raw === \"compact\" || raw === \"comfortable\" || raw === \"spacious\" ? raw : null;\n}\n\nexport function applyDensity(density: Density): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, density);\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":";AASO,MAAM,sBAAsB;AACnC,MAAM,YAAY;AAEX,MAAM,iBAAiB,cAA0C,IAAI;AAErE,SAAS,oBAAoC;AAClD,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,mBAAmB;AAC3D,SAAO,QAAQ,aAAa,QAAQ,iBAAiB,QAAQ,aAAa,MAAM;AAClF;AAEO,SAAS,aAAa,SAAwB;AACnD,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,OAAO;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;"}
@@ -1,63 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
3
  const react = require("react");
5
- const STORAGE_KEY = "clicky-ui-theme";
4
+ const THEME_STORAGE_KEY = "clicky-ui-theme";
6
5
  const DATA_ATTR = "data-theme";
7
6
  const ThemeContext = react.createContext(null);
8
7
  function prefersDark() {
9
8
  if (typeof window === "undefined") return false;
10
9
  return window.matchMedia("(prefers-color-scheme: dark)").matches;
11
10
  }
12
- function readStored() {
11
+ function readStoredTheme() {
13
12
  if (typeof window === "undefined") return "system";
14
- const raw = window.localStorage.getItem(STORAGE_KEY);
13
+ const raw = window.localStorage.getItem(THEME_STORAGE_KEY);
15
14
  return raw === "light" || raw === "dark" || raw === "system" ? raw : "system";
16
15
  }
17
- function resolve(theme) {
16
+ function resolveTheme(theme) {
18
17
  if (theme === "system") return prefersDark() ? "dark" : "light";
19
18
  return theme;
20
19
  }
21
- function apply(resolved) {
20
+ function applyTheme(resolved) {
22
21
  if (typeof document === "undefined") return;
23
22
  document.documentElement.setAttribute(DATA_ATTR, resolved);
24
23
  }
25
- function ThemeProvider({
26
- children,
27
- defaultTheme = "system",
28
- storageKey = STORAGE_KEY
29
- }) {
30
- const [theme, setThemeState] = react.useState(() => {
31
- if (typeof window === "undefined") return defaultTheme;
32
- return readStored() ?? defaultTheme;
33
- });
34
- const [resolvedTheme, setResolvedTheme] = react.useState(() => resolve(theme));
35
- react.useEffect(() => {
36
- const next = resolve(theme);
37
- setResolvedTheme(next);
38
- apply(next);
39
- if (typeof window !== "undefined") {
40
- window.localStorage.setItem(storageKey, theme);
41
- }
42
- }, [theme, storageKey]);
43
- react.useEffect(() => {
44
- if (theme !== "system" || typeof window === "undefined") return;
45
- const mq = window.matchMedia("(prefers-color-scheme: dark)");
46
- const onChange = () => {
47
- const next = mq.matches ? "dark" : "light";
48
- setResolvedTheme(next);
49
- apply(next);
50
- };
51
- mq.addEventListener("change", onChange);
52
- return () => mq.removeEventListener("change", onChange);
53
- }, [theme]);
54
- const setTheme = react.useCallback((next) => setThemeState(next), []);
55
- const value = react.useMemo(
56
- () => ({ theme, resolvedTheme, setTheme }),
57
- [theme, resolvedTheme, setTheme]
58
- );
59
- return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value, children });
60
- }
61
24
  function useTheme() {
62
25
  const ctx = react.useContext(ThemeContext);
63
26
  if (!ctx) throw new Error("useTheme must be used inside <ThemeProvider>");
@@ -83,7 +46,11 @@ function useResolvedTheme(override) {
83
46
  if (ctx) return ctx.resolvedTheme;
84
47
  return systemResolved;
85
48
  }
86
- exports.ThemeProvider = ThemeProvider;
49
+ exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY;
50
+ exports.ThemeContext = ThemeContext;
51
+ exports.applyTheme = applyTheme;
52
+ exports.readStoredTheme = readStoredTheme;
53
+ exports.resolveTheme = resolveTheme;
87
54
  exports.useOptionalTheme = useOptionalTheme;
88
55
  exports.useResolvedTheme = useResolvedTheme;
89
56
  exports.useTheme = useTheme;
@@ -1 +1 @@
1
- {"version":3,"file":"use-theme.cjs","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\nexport function useOptionalTheme(): ThemeContextValue | null {\n return useContext(ThemeContext);\n}\n\nexport function useResolvedTheme(override?: Theme): ResolvedTheme {\n const ctx = useOptionalTheme();\n const [systemResolved, setSystemResolved] = useState<ResolvedTheme>(() =>\n prefersDark() ? \"dark\" : \"light\",\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => setSystemResolved(mq.matches ? \"dark\" : \"light\");\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n if (override && override !== \"system\") return override;\n if (override === \"system\") return systemResolved;\n if (ctx) return ctx.resolvedTheme;\n return systemResolved;\n}\n"],"names":["createContext","useState","useEffect","useCallback","useMemo","jsx","useContext"],"mappings":";;;;AAmBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,eAAeA,MAAAA,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,IAAIC,MAAAA,SAAgB,MAAM;AACnD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,MAAAA,SAAwB,MAAM,QAAQ,KAAK,CAAC;AAEtFC,QAAAA,UAAU,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;AAEtBA,QAAAA,UAAU,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,WAAWC,MAAAA,YAAY,CAAC,SAAgB,cAAc,IAAI,GAAG,EAAE;AAErE,QAAM,QAAQC,MAAAA;AAAAA,IACZ,OAAO,EAAE,OAAO,eAAe;IAC/B,CAAC,OAAO,eAAe,QAAQ;AAAA,EAAA;AAGjC,SAAOC,2BAAAA,IAAC,aAAa,UAAb,EAAsB,OAAe,SAAA,CAAS;AACxD;AAEO,SAAS,WAA8B;AAC5C,QAAM,MAAMC,MAAAA,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEO,SAAS,mBAA6C;AAC3D,SAAOA,MAAAA,WAAW,YAAY;AAChC;AAEO,SAAS,iBAAiB,UAAiC;AAChE,QAAM,MAAM,iBAAA;AACZ,QAAM,CAAC,gBAAgB,iBAAiB,IAAIL,MAAAA;AAAAA,IAAwB,MAClE,YAAA,IAAgB,SAAS;AAAA,EAAA;AAG3BC,QAAAA,UAAU,MAAM;AACd,QAAI,OAAO,WAAW,YAAa;AACnC,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM,kBAAkB,GAAG,UAAU,SAAS,OAAO;AACtE,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAA,CAAE;AAEL,MAAI,YAAY,aAAa,SAAU,QAAO;AAC9C,MAAI,aAAa,SAAU,QAAO;AAClC,MAAI,YAAY,IAAI;AACpB,SAAO;AACT;;;;;"}
1
+ {"version":3,"file":"use-theme.cjs","sources":["../../src/hooks/use-theme.ts"],"sourcesContent":["import { createContext, useContext, useEffect, useState } from \"react\";\n\nexport type Theme = \"light\" | \"dark\" | \"system\";\nexport type ResolvedTheme = \"light\" | \"dark\";\n\nexport type ThemeContextValue = {\n theme: Theme;\n resolvedTheme: ResolvedTheme;\n setTheme: (next: Theme) => void;\n};\n\nexport const THEME_STORAGE_KEY = \"clicky-ui-theme\";\nconst DATA_ATTR = \"data-theme\";\n\nexport const 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\nexport function readStoredTheme(): Theme {\n if (typeof window === \"undefined\") return \"system\";\n const raw = window.localStorage.getItem(THEME_STORAGE_KEY);\n return raw === \"light\" || raw === \"dark\" || raw === \"system\" ? raw : \"system\";\n}\n\nexport function resolveTheme(theme: Theme): ResolvedTheme {\n if (theme === \"system\") return prefersDark() ? \"dark\" : \"light\";\n return theme;\n}\n\nexport function applyTheme(resolved: ResolvedTheme): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, resolved);\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\nexport function useOptionalTheme(): ThemeContextValue | null {\n return useContext(ThemeContext);\n}\n\nexport function useResolvedTheme(override?: Theme): ResolvedTheme {\n const ctx = useOptionalTheme();\n const [systemResolved, setSystemResolved] = useState<ResolvedTheme>(() =>\n prefersDark() ? \"dark\" : \"light\",\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => setSystemResolved(mq.matches ? \"dark\" : \"light\");\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n if (override && override !== \"system\") return override;\n if (override === \"system\") return systemResolved;\n if (ctx) return ctx.resolvedTheme;\n return systemResolved;\n}\n"],"names":["createContext","useContext","useState","useEffect"],"mappings":";;;AAWO,MAAM,oBAAoB;AACjC,MAAM,YAAY;AAEX,MAAM,eAAeA,MAAAA,cAAwC,IAAI;AAExE,SAAS,cAAuB;AAC9B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,OAAO,WAAW,8BAA8B,EAAE;AAC3D;AAEO,SAAS,kBAAyB;AACvC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,iBAAiB;AACzD,SAAO,QAAQ,WAAW,QAAQ,UAAU,QAAQ,WAAW,MAAM;AACvE;AAEO,SAAS,aAAa,OAA6B;AACxD,MAAI,UAAU,SAAU,QAAO,YAAA,IAAgB,SAAS;AACxD,SAAO;AACT;AAEO,SAAS,WAAW,UAA+B;AACxD,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,QAAQ;AAC3D;AAEO,SAAS,WAA8B;AAC5C,QAAM,MAAMC,MAAAA,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEO,SAAS,mBAA6C;AAC3D,SAAOA,MAAAA,WAAW,YAAY;AAChC;AAEO,SAAS,iBAAiB,UAAiC;AAChE,QAAM,MAAM,iBAAA;AACZ,QAAM,CAAC,gBAAgB,iBAAiB,IAAIC,MAAAA;AAAAA,IAAwB,MAClE,YAAA,IAAgB,SAAS;AAAA,EAAA;AAG3BC,QAAAA,UAAU,MAAM;AACd,QAAI,OAAO,WAAW,YAAa;AACnC,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM,kBAAkB,GAAG,UAAU,SAAS,OAAO;AACtE,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAA,CAAE;AAEL,MAAI,YAAY,aAAa,SAAU,QAAO;AAC9C,MAAI,aAAa,SAAU,QAAO;AAClC,MAAI,YAAY,IAAI;AACpB,SAAO;AACT;;;;;;;;;"}
@@ -1,19 +1,16 @@
1
- import { ReactNode } from 'react';
2
1
  export type Theme = "light" | "dark" | "system";
3
2
  export type ResolvedTheme = "light" | "dark";
4
- type ThemeContextValue = {
3
+ export type ThemeContextValue = {
5
4
  theme: Theme;
6
5
  resolvedTheme: ResolvedTheme;
7
6
  setTheme: (next: Theme) => void;
8
7
  };
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;
8
+ export declare const THEME_STORAGE_KEY = "clicky-ui-theme";
9
+ export declare const ThemeContext: import('react').Context<ThemeContextValue | null>;
10
+ export declare function readStoredTheme(): Theme;
11
+ export declare function resolveTheme(theme: Theme): ResolvedTheme;
12
+ export declare function applyTheme(resolved: ResolvedTheme): void;
15
13
  export declare function useTheme(): ThemeContextValue;
16
14
  export declare function useOptionalTheme(): ThemeContextValue | null;
17
15
  export declare function useResolvedTheme(override?: Theme): ResolvedTheme;
18
- export {};
19
16
  //# sourceMappingURL=use-theme.d.ts.map
@@ -1 +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;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,aAAa,CAkBhE"}
1
+ {"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../src/hooks/use-theme.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAGnD,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAO1E,wBAAgB,eAAe,IAAI,KAAK,CAIvC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAGxD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGxD;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,aAAa,CAkBhE"}
@@ -1,61 +1,24 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useState, useEffect, useCallback, useMemo, useContext, createContext } from "react";
3
- const STORAGE_KEY = "clicky-ui-theme";
1
+ import { useContext, useState, useEffect, createContext } from "react";
2
+ const THEME_STORAGE_KEY = "clicky-ui-theme";
4
3
  const DATA_ATTR = "data-theme";
5
4
  const ThemeContext = createContext(null);
6
5
  function prefersDark() {
7
6
  if (typeof window === "undefined") return false;
8
7
  return window.matchMedia("(prefers-color-scheme: dark)").matches;
9
8
  }
10
- function readStored() {
9
+ function readStoredTheme() {
11
10
  if (typeof window === "undefined") return "system";
12
- const raw = window.localStorage.getItem(STORAGE_KEY);
11
+ const raw = window.localStorage.getItem(THEME_STORAGE_KEY);
13
12
  return raw === "light" || raw === "dark" || raw === "system" ? raw : "system";
14
13
  }
15
- function resolve(theme) {
14
+ function resolveTheme(theme) {
16
15
  if (theme === "system") return prefersDark() ? "dark" : "light";
17
16
  return theme;
18
17
  }
19
- function apply(resolved) {
18
+ function applyTheme(resolved) {
20
19
  if (typeof document === "undefined") return;
21
20
  document.documentElement.setAttribute(DATA_ATTR, resolved);
22
21
  }
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
22
  function useTheme() {
60
23
  const ctx = useContext(ThemeContext);
61
24
  if (!ctx) throw new Error("useTheme must be used inside <ThemeProvider>");
@@ -82,7 +45,11 @@ function useResolvedTheme(override) {
82
45
  return systemResolved;
83
46
  }
84
47
  export {
85
- ThemeProvider,
48
+ THEME_STORAGE_KEY,
49
+ ThemeContext,
50
+ applyTheme,
51
+ readStoredTheme,
52
+ resolveTheme,
86
53
  useOptionalTheme,
87
54
  useResolvedTheme,
88
55
  useTheme
@@ -1 +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\nexport function useOptionalTheme(): ThemeContextValue | null {\n return useContext(ThemeContext);\n}\n\nexport function useResolvedTheme(override?: Theme): ResolvedTheme {\n const ctx = useOptionalTheme();\n const [systemResolved, setSystemResolved] = useState<ResolvedTheme>(() =>\n prefersDark() ? \"dark\" : \"light\",\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => setSystemResolved(mq.matches ? \"dark\" : \"light\");\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n if (override && override !== \"system\") return override;\n if (override === \"system\") return systemResolved;\n if (ctx) return ctx.resolvedTheme;\n return systemResolved;\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;AAEO,SAAS,mBAA6C;AAC3D,SAAO,WAAW,YAAY;AAChC;AAEO,SAAS,iBAAiB,UAAiC;AAChE,QAAM,MAAM,iBAAA;AACZ,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAAwB,MAClE,YAAA,IAAgB,SAAS;AAAA,EAAA;AAG3B,YAAU,MAAM;AACd,QAAI,OAAO,WAAW,YAAa;AACnC,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM,kBAAkB,GAAG,UAAU,SAAS,OAAO;AACtE,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAA,CAAE;AAEL,MAAI,YAAY,aAAa,SAAU,QAAO;AAC9C,MAAI,aAAa,SAAU,QAAO;AAClC,MAAI,YAAY,IAAI;AACpB,SAAO;AACT;"}
1
+ {"version":3,"file":"use-theme.js","sources":["../../src/hooks/use-theme.ts"],"sourcesContent":["import { createContext, useContext, useEffect, useState } from \"react\";\n\nexport type Theme = \"light\" | \"dark\" | \"system\";\nexport type ResolvedTheme = \"light\" | \"dark\";\n\nexport type ThemeContextValue = {\n theme: Theme;\n resolvedTheme: ResolvedTheme;\n setTheme: (next: Theme) => void;\n};\n\nexport const THEME_STORAGE_KEY = \"clicky-ui-theme\";\nconst DATA_ATTR = \"data-theme\";\n\nexport const 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\nexport function readStoredTheme(): Theme {\n if (typeof window === \"undefined\") return \"system\";\n const raw = window.localStorage.getItem(THEME_STORAGE_KEY);\n return raw === \"light\" || raw === \"dark\" || raw === \"system\" ? raw : \"system\";\n}\n\nexport function resolveTheme(theme: Theme): ResolvedTheme {\n if (theme === \"system\") return prefersDark() ? \"dark\" : \"light\";\n return theme;\n}\n\nexport function applyTheme(resolved: ResolvedTheme): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, resolved);\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\nexport function useOptionalTheme(): ThemeContextValue | null {\n return useContext(ThemeContext);\n}\n\nexport function useResolvedTheme(override?: Theme): ResolvedTheme {\n const ctx = useOptionalTheme();\n const [systemResolved, setSystemResolved] = useState<ResolvedTheme>(() =>\n prefersDark() ? \"dark\" : \"light\",\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => setSystemResolved(mq.matches ? \"dark\" : \"light\");\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n if (override && override !== \"system\") return override;\n if (override === \"system\") return systemResolved;\n if (ctx) return ctx.resolvedTheme;\n return systemResolved;\n}\n"],"names":[],"mappings":";AAWO,MAAM,oBAAoB;AACjC,MAAM,YAAY;AAEX,MAAM,eAAe,cAAwC,IAAI;AAExE,SAAS,cAAuB;AAC9B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,OAAO,WAAW,8BAA8B,EAAE;AAC3D;AAEO,SAAS,kBAAyB;AACvC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,iBAAiB;AACzD,SAAO,QAAQ,WAAW,QAAQ,UAAU,QAAQ,WAAW,MAAM;AACvE;AAEO,SAAS,aAAa,OAA6B;AACxD,MAAI,UAAU,SAAU,QAAO,YAAA,IAAgB,SAAS;AACxD,SAAO;AACT;AAEO,SAAS,WAAW,UAA+B;AACxD,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,QAAQ;AAC3D;AAEO,SAAS,WAA8B;AAC5C,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEO,SAAS,mBAA6C;AAC3D,SAAO,WAAW,YAAY;AAChC;AAEO,SAAS,iBAAiB,UAAiC;AAChE,QAAM,MAAM,iBAAA;AACZ,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAAwB,MAClE,YAAA,IAAgB,SAAS;AAAA,EAAA;AAG3B,YAAU,MAAM;AACd,QAAI,OAAO,WAAW,YAAa;AACnC,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM,kBAAkB,GAAG,UAAU,SAAS,OAAO;AACtE,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAA,CAAE;AAEL,MAAI,YAAY,aAAa,SAAU,QAAO;AAC9C,MAAI,aAAa,SAAU,QAAO;AAClC,MAAI,YAAY,IAAI;AACpB,SAAO;AACT;"}
package/dist/hooks.cjs CHANGED
@@ -1,17 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const useTheme = require("./hooks/use-theme.cjs");
4
+ const themeProvider = require("./hooks/theme-provider.cjs");
4
5
  const useDensity = require("./hooks/use-density.cjs");
6
+ const densityProvider = require("./hooks/density-provider.cjs");
5
7
  const useSort = require("./hooks/use-sort.cjs");
6
8
  const useHistoryRoute = require("./hooks/use-history-route.cjs");
7
9
  const useTaskRun = require("./hooks/use-task-run.cjs");
8
- exports.ThemeProvider = useTheme.ThemeProvider;
9
10
  exports.useOptionalTheme = useTheme.useOptionalTheme;
10
11
  exports.useResolvedTheme = useTheme.useResolvedTheme;
11
12
  exports.useTheme = useTheme.useTheme;
12
- exports.DensityProvider = useDensity.DensityProvider;
13
+ exports.ThemeProvider = themeProvider.ThemeProvider;
13
14
  exports.useDensity = useDensity.useDensity;
14
15
  exports.useDensityValue = useDensity.useDensityValue;
16
+ exports.DensityProvider = densityProvider.DensityProvider;
17
+ exports.DensityValueProvider = densityProvider.DensityValueProvider;
15
18
  exports.useSort = useSort.useSort;
16
19
  exports.useHistoryRoute = useHistoryRoute.useHistoryRoute;
17
20
  exports.useTaskRun = useTaskRun.useTaskRun;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"hooks.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
package/dist/hooks.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- export { ThemeProvider, useTheme, useOptionalTheme, useResolvedTheme, type Theme, type ResolvedTheme, } from './hooks/use-theme';
2
- export { DensityProvider, useDensity, useDensityValue, type Density } from './hooks/use-density';
1
+ export { useTheme, useOptionalTheme, useResolvedTheme, type Theme, type ResolvedTheme, } from './hooks/use-theme';
2
+ export { ThemeProvider, type ThemeProviderProps } from './hooks/theme-provider';
3
+ export { useDensity, useDensityValue, type Density } from './hooks/use-density';
4
+ export { DensityProvider, DensityValueProvider, type DensityProviderProps, } from './hooks/density-provider';
3
5
  export { useSort, type SortDir, type SortState, type UseSortOptions, type UseSortReturn, } from './hooks/use-sort';
4
6
  export { useHistoryRoute, type UseHistoryRouteOptions } from './hooks/use-history-route';
5
7
  export { useTaskRun, useTaskRuns, type UseTaskRunOptions, type UseTaskRunResult, type UseTaskRunsOptions, type UseTaskRunsResult, type TaskTransportOptions, } from './hooks/use-task-run';
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,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;AACzF,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,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;AACzF,OAAO,EACL,UAAU,EACV,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
package/dist/hooks.js CHANGED
@@ -1,10 +1,13 @@
1
- import { ThemeProvider, useOptionalTheme, useResolvedTheme, useTheme } from "./hooks/use-theme.js";
2
- import { DensityProvider, useDensity, useDensityValue } from "./hooks/use-density.js";
1
+ import { useOptionalTheme, useResolvedTheme, useTheme } from "./hooks/use-theme.js";
2
+ import { ThemeProvider } from "./hooks/theme-provider.js";
3
+ import { useDensity, useDensityValue } from "./hooks/use-density.js";
4
+ import { DensityProvider, DensityValueProvider } from "./hooks/density-provider.js";
3
5
  import { useSort } from "./hooks/use-sort.js";
4
6
  import { useHistoryRoute } from "./hooks/use-history-route.js";
5
7
  import { useTaskRun, useTaskRuns } from "./hooks/use-task-run.js";
6
8
  export {
7
9
  DensityProvider,
10
+ DensityValueProvider,
8
11
  ThemeProvider,
9
12
  useDensity,
10
13
  useDensityValue,
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const UiCloudDownload = require("./components/UiCloudDownload.cjs");
4
- const UiServer = require("./components/UiServer.cjs");
5
- const UiPlaybook = require("./components/UiPlaybook.cjs");
6
- const UiInsightCost = require("./components/UiInsightCost.cjs");
7
- const UiShield = require("./components/UiShield.cjs");
3
+ const UiAdd = require("./components/UiAdd.cjs");
8
4
  const UiArrowRight = require("./components/UiArrowRight.cjs");
5
+ const UiCamera = require("./components/UiCamera.cjs");
9
6
  const UiCircleX = require("./components/UiCircleX.cjs");
7
+ const UiCloudDownload = require("./components/UiCloudDownload.cjs");
8
+ const UiDatabase = require("./components/UiDatabase.cjs");
9
+ const UiDiff = require("./components/UiDiff.cjs");
10
+ const UiEdit = require("./components/UiEdit.cjs");
11
+ const UiInsightCost = require("./components/UiInsightCost.cjs");
12
+ const UiKey = require("./components/UiKey.cjs");
10
13
  const UiPass = require("./components/UiPass.cjs");
11
14
  const UiPlay = require("./components/UiPlay.cjs");
12
- const UiDatabase = require("./components/UiDatabase.cjs");
15
+ const UiPlaybook = require("./components/UiPlaybook.cjs");
13
16
  const UiRefresh = require("./components/UiRefresh.cjs");
14
17
  const UiRocket = require("./components/UiRocket.cjs");
15
- const UiKey = require("./components/UiKey.cjs");
16
- const UiCamera = require("./components/UiCamera.cjs");
17
- const UiUsersThree = require("./components/UiUsersThree.cjs");
18
- const UiUser = require("./components/UiUser.cjs");
19
- const UiDiff = require("./components/UiDiff.cjs");
18
+ const UiServer = require("./components/UiServer.cjs");
19
+ const UiShield = require("./components/UiShield.cjs");
20
20
  const UiTrash = require("./components/UiTrash.cjs");
21
- const UiEdit = require("./components/UiEdit.cjs");
22
- const UiAdd = require("./components/UiAdd.cjs");
21
+ const UiUser = require("./components/UiUser.cjs");
22
+ const UiUsersThree = require("./components/UiUsersThree.cjs");
23
23
  const changeIconAliases = {
24
24
  "CREATE": { outline: UiAdd.UiAdd, filled: UiAdd.UiAddFilled },
25
25
  "UPDATE": { outline: UiEdit.UiEdit, filled: UiEdit.UiEditFilled },