@malloy-publisher/sdk 0.0.137 → 0.0.139

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 (586) hide show
  1. package/README.md +122 -1
  2. package/dist/ServerProvider-Bzid56gJ.cjs.js +1 -0
  3. package/dist/{ServerProvider-BGGK1ZQ_.es.js → ServerProvider-D-y63tG0.es.js} +550 -478
  4. package/dist/client/api.d.ts +144 -53
  5. package/dist/client/index.cjs.js +1 -1
  6. package/dist/client/index.es.js +22 -21
  7. package/dist/components/Notebook/Notebook.d.ts +4 -1
  8. package/dist/components/Notebook/NotebookCell.d.ts +2 -2
  9. package/dist/components/Notebook/types.d.ts +21 -0
  10. package/dist/components/filter/DimensionFilter.d.ts +43 -0
  11. package/dist/components/filter/index.d.ts +4 -0
  12. package/dist/components/filter/utils.d.ts +75 -0
  13. package/dist/components/index.d.ts +7 -6
  14. package/dist/components/styles.d.ts +3 -3
  15. package/dist/hooks/index.d.ts +4 -0
  16. package/dist/hooks/useDimensionFilters.d.ts +84 -0
  17. package/dist/hooks/useDimensionFiltersFromSpec.d.ts +52 -0
  18. package/dist/hooks/useDimensionFiltersQuery.d.ts +79 -0
  19. package/dist/hooks/useDimensionalFilterRangeData.d.ts +106 -0
  20. package/dist/index.cjs.js +141 -112
  21. package/dist/index.d.ts +3 -2
  22. package/dist/index.es.js +47903 -39798
  23. package/dist/sdk.css +1 -1
  24. package/package.json +16 -11
  25. package/src/components/Home/Home.tsx +15 -11
  26. package/src/components/Notebook/Notebook.tsx +391 -6
  27. package/src/components/Notebook/NotebookCell.tsx +2 -2
  28. package/src/components/Notebook/types.ts +24 -0
  29. package/src/components/Package/Connections.tsx +3 -6
  30. package/src/components/RenderedResult/RenderedResult.tsx +22 -3
  31. package/src/components/filter/DimensionFilter.tsx +738 -0
  32. package/src/components/filter/index.ts +20 -0
  33. package/src/components/filter/utils.ts +354 -0
  34. package/src/components/highlighter.ts +14 -6
  35. package/src/components/index.ts +7 -6
  36. package/src/hooks/index.ts +31 -0
  37. package/src/hooks/useDimensionFilters.ts +322 -0
  38. package/src/hooks/useDimensionFiltersFromSpec.ts +117 -0
  39. package/src/hooks/useDimensionFiltersQuery.ts +300 -0
  40. package/src/hooks/useDimensionalFilterRangeData.ts +758 -0
  41. package/src/index.ts +3 -2
  42. package/dist/ServerProvider-lXAaPKBb.cjs.js +0 -1
  43. package/dist/abap-BmBUA35e.es.js +0 -6
  44. package/dist/abap-Dwt2rH6y.cjs.js +0 -1
  45. package/dist/actionscript-3-mj8Uhnsc.cjs.js +0 -1
  46. package/dist/actionscript-3-zFUbzQa9.es.js +0 -6
  47. package/dist/ada-CBvPkFpZ.es.js +0 -6
  48. package/dist/ada-DZM58Vqs.cjs.js +0 -1
  49. package/dist/andromeeda-BXc5FOIb.cjs.js +0 -1
  50. package/dist/andromeeda-uXNdzNpk.es.js +0 -4
  51. package/dist/angular-html-B60m4jt-.cjs.js +0 -1
  52. package/dist/angular-html-D3aW1y6T.es.js +0 -32
  53. package/dist/angular-ts-Jud40GrY.es.js +0 -21
  54. package/dist/angular-ts-SIlYrqkG.cjs.js +0 -1
  55. package/dist/apache-CVNlsSDc.es.js +0 -6
  56. package/dist/apache-D7v5fxtZ.cjs.js +0 -1
  57. package/dist/apex-4hrAnw0a.cjs.js +0 -1
  58. package/dist/apex-DFk3KRB1.es.js +0 -6
  59. package/dist/apl-CKSaOFbt.cjs.js +0 -1
  60. package/dist/apl-pE3PRTDr.es.js +0 -16
  61. package/dist/applescript-CYMR_y0g.es.js +0 -6
  62. package/dist/applescript-Cnd3Dxju.cjs.js +0 -1
  63. package/dist/ara-4QmU5e04.es.js +0 -6
  64. package/dist/ara-BQ2aGbFQ.cjs.js +0 -1
  65. package/dist/asciidoc-C6nYvw8K.cjs.js +0 -1
  66. package/dist/asciidoc-v_1bjgUg.es.js +0 -6
  67. package/dist/asm-CQnBVCj-.cjs.js +0 -1
  68. package/dist/asm-RC0Yh-NZ.es.js +0 -6
  69. package/dist/astro-Be6fybGX.es.js +0 -16
  70. package/dist/astro-KhYkz6Xu.cjs.js +0 -1
  71. package/dist/aurora-x-BwoVEUWZ.es.js +0 -4
  72. package/dist/aurora-x-C5IpmIOG.cjs.js +0 -1
  73. package/dist/awk-DUx4h__E.cjs.js +0 -1
  74. package/dist/awk-gPH8MVMW.es.js +0 -6
  75. package/dist/ayu-dark-Cv7nTiif.cjs.js +0 -1
  76. package/dist/ayu-dark-CxPZkpb2.es.js +0 -4
  77. package/dist/ballerina-CXlzbmzl.cjs.js +0 -1
  78. package/dist/ballerina-kvLnRU_e.es.js +0 -6
  79. package/dist/bat-BHYy44sT.es.js +0 -6
  80. package/dist/bat-DlMT9sut.cjs.js +0 -1
  81. package/dist/beancount-CyyiuUzM.cjs.js +0 -1
  82. package/dist/beancount-D-MADTs_.es.js +0 -6
  83. package/dist/berry-B0EjuzrL.cjs.js +0 -1
  84. package/dist/berry-Ci9U0o4h.es.js +0 -6
  85. package/dist/bibtex-CX618D15.es.js +0 -6
  86. package/dist/bibtex-CfoG9xRq.cjs.js +0 -1
  87. package/dist/bicep-D6PH_9IY.cjs.js +0 -1
  88. package/dist/bicep-iuYiPopT.es.js +0 -6
  89. package/dist/blade-C0tMuk8f.cjs.js +0 -1
  90. package/dist/blade-DmXp5Zcz.es.js +0 -18
  91. package/dist/bsl-CfHcite8.cjs.js +0 -1
  92. package/dist/bsl-NPX_d-bb.es.js +0 -8
  93. package/dist/c-C4sXGJZM.cjs.js +0 -1
  94. package/dist/c-DASdrs7p.es.js +0 -6
  95. package/dist/cadence-BDALQi26.es.js +0 -6
  96. package/dist/cadence-Dq2CYzXG.cjs.js +0 -1
  97. package/dist/cairo-17kO8-kb.es.js +0 -8
  98. package/dist/cairo-CcKpJkyf.cjs.js +0 -1
  99. package/dist/catppuccin-frappe-BrTOiad2.es.js +0 -4
  100. package/dist/catppuccin-frappe-DXAedND3.cjs.js +0 -1
  101. package/dist/catppuccin-latte-D-dc_R4m.es.js +0 -4
  102. package/dist/catppuccin-latte-mwGw3-Ej.cjs.js +0 -1
  103. package/dist/catppuccin-macchiato-DN4jOp0G.es.js +0 -4
  104. package/dist/catppuccin-macchiato-cQCk9ADg.cjs.js +0 -1
  105. package/dist/catppuccin-mocha-B8yCE3-3.es.js +0 -4
  106. package/dist/catppuccin-mocha-ClSzDZSl.cjs.js +0 -1
  107. package/dist/clarity-CNgV2Ths.es.js +0 -6
  108. package/dist/clarity-ytMkUD5Q.cjs.js +0 -1
  109. package/dist/clojure-B_Wv414H.cjs.js +0 -1
  110. package/dist/clojure-CsKKFGwv.es.js +0 -6
  111. package/dist/cmake-Dr-A3iJx.es.js +0 -6
  112. package/dist/cmake-TBUaQXYY.cjs.js +0 -1
  113. package/dist/cobol-BzcJm6ie.es.js +0 -10
  114. package/dist/cobol-DXFNH4EH.cjs.js +0 -1
  115. package/dist/codeowners-Bt9yU6NX.es.js +0 -6
  116. package/dist/codeowners-QhPK6lIJ.cjs.js +0 -1
  117. package/dist/codeql-B7Q9tkDJ.cjs.js +0 -1
  118. package/dist/codeql-DBNTqJi1.es.js +0 -6
  119. package/dist/coffee-GRRSkgX1.cjs.js +0 -1
  120. package/dist/coffee-q2iaxUnQ.es.js +0 -8
  121. package/dist/common-lisp-Ced3ctK5.cjs.js +0 -1
  122. package/dist/common-lisp-r7ZEOG7T.es.js +0 -6
  123. package/dist/coq-BTRB4iqi.cjs.js +0 -1
  124. package/dist/coq-CB6Pv_W9.es.js +0 -6
  125. package/dist/cpp-CPOvHZqs.cjs.js +0 -1
  126. package/dist/cpp-CPQtoCcU.es.js +0 -18
  127. package/dist/crystal-BY_Cg265.es.js +0 -18
  128. package/dist/crystal-C6AG-iew.cjs.js +0 -1
  129. package/dist/csharp-CYWRhZ2R.es.js +0 -6
  130. package/dist/csharp-TKds-MhG.cjs.js +0 -1
  131. package/dist/css-B0kbn78J.cjs.js +0 -1
  132. package/dist/css-D1aVdRIU.es.js +0 -6
  133. package/dist/csv-BVJjiaC3.cjs.js +0 -1
  134. package/dist/csv-DvCncUGQ.es.js +0 -6
  135. package/dist/cue-BXMrmvay.es.js +0 -6
  136. package/dist/cue-Cz4J-rnd.cjs.js +0 -1
  137. package/dist/cypher-DTm5zNR1.es.js +0 -6
  138. package/dist/cypher-DuKTiyez.cjs.js +0 -1
  139. package/dist/d-BW9Wd7aK.cjs.js +0 -1
  140. package/dist/d-D6ZXmn3l.es.js +0 -6
  141. package/dist/dark-plus-Cd5emcYO.cjs.js +0 -1
  142. package/dist/dark-plus-pUHDTVV0.es.js +0 -4
  143. package/dist/dart-CWs-er6b.cjs.js +0 -1
  144. package/dist/dart-Dz59Is3F.es.js +0 -6
  145. package/dist/dax-CDxFL2Kb.cjs.js +0 -1
  146. package/dist/dax-DTVGzydb.es.js +0 -6
  147. package/dist/desktop-CFgo0jo7.cjs.js +0 -1
  148. package/dist/desktop-Db9vb-dl.es.js +0 -6
  149. package/dist/diff-BsEkKwI8.cjs.js +0 -1
  150. package/dist/diff-XmNrvgM1.es.js +0 -6
  151. package/dist/docker-DWH2onkn.es.js +0 -6
  152. package/dist/docker-hwiw4W8I.cjs.js +0 -1
  153. package/dist/dotenv-4337wvzu.es.js +0 -6
  154. package/dist/dotenv-CJ5o3G1C.cjs.js +0 -1
  155. package/dist/dracula-BNgwAJ-d.cjs.js +0 -1
  156. package/dist/dracula-BtZx2Kac.es.js +0 -4
  157. package/dist/dracula-soft-BHZ7sHFu.cjs.js +0 -1
  158. package/dist/dracula-soft-BKa-aqBv.es.js +0 -4
  159. package/dist/dream-maker-CvvfrJSx.es.js +0 -6
  160. package/dist/dream-maker-DBharE9Q.cjs.js +0 -1
  161. package/dist/edge-DI6_BHKG.es.js +0 -12
  162. package/dist/edge-i77KJtJz.cjs.js +0 -1
  163. package/dist/elixir-D00NoPSM.cjs.js +0 -1
  164. package/dist/elixir-ic9y5jcd.es.js +0 -8
  165. package/dist/elm-Bhj5Vf-e.cjs.js +0 -1
  166. package/dist/elm-DxnUqUaW.es.js +0 -8
  167. package/dist/emacs-lisp-BAefI874.es.js +0 -6
  168. package/dist/emacs-lisp-CDDyFsvQ.cjs.js +0 -1
  169. package/dist/erb-Cbj2YePa.es.js +0 -10
  170. package/dist/erb-Dybaw01v.cjs.js +0 -1
  171. package/dist/erlang-3VgdrQXV.cjs.js +0 -1
  172. package/dist/erlang-CmIiwF3I.es.js +0 -6
  173. package/dist/everforest-dark-DMCBqXCK.es.js +0 -4
  174. package/dist/everforest-dark-_sBMomR1.cjs.js +0 -1
  175. package/dist/everforest-light-BbXl82Em.es.js +0 -4
  176. package/dist/everforest-light-H0xoYxl0.cjs.js +0 -1
  177. package/dist/fennel-BvcDRFAV.cjs.js +0 -1
  178. package/dist/fennel-DNqkz9pE.es.js +0 -6
  179. package/dist/fish-CnamI0Ar.cjs.js +0 -1
  180. package/dist/fish-DIm72t2T.es.js +0 -6
  181. package/dist/fluent-BapTxJsC.es.js +0 -6
  182. package/dist/fluent-DFpT66K8.cjs.js +0 -1
  183. package/dist/fortran-fixed-form-DECY15PY.es.js +0 -8
  184. package/dist/fortran-fixed-form-u_RcUPMu.cjs.js +0 -1
  185. package/dist/fortran-free-form-CNDsBFUj.es.js +0 -6
  186. package/dist/fortran-free-form-IaGrWIda.cjs.js +0 -1
  187. package/dist/fsharp-B-aK2rr3.cjs.js +0 -1
  188. package/dist/fsharp-D2ZqviWP.es.js +0 -8
  189. package/dist/gdresource-BBAqNWe4.cjs.js +0 -1
  190. package/dist/gdresource-RIsK8sku.es.js +0 -10
  191. package/dist/gdscript-5N_43TPQ.cjs.js +0 -1
  192. package/dist/gdscript-D7aheHm-.es.js +0 -6
  193. package/dist/gdshader-BGJEsM2Z.es.js +0 -6
  194. package/dist/gdshader-Bl85Hrm5.cjs.js +0 -1
  195. package/dist/genie-C9gPjc6J.es.js +0 -6
  196. package/dist/genie-DGsxMAbQ.cjs.js +0 -1
  197. package/dist/gherkin-CVV6nEUH.cjs.js +0 -1
  198. package/dist/gherkin-bka1Exbx.es.js +0 -6
  199. package/dist/git-commit-BRJ1E4Bx.es.js +0 -8
  200. package/dist/git-commit-CwfgI4fD.cjs.js +0 -1
  201. package/dist/git-rebase-C3X7aMpn.es.js +0 -8
  202. package/dist/git-rebase-DUvbIQDw.cjs.js +0 -1
  203. package/dist/github-dark-BKL9xNgN.cjs.js +0 -1
  204. package/dist/github-dark-DenFmJkN.es.js +0 -4
  205. package/dist/github-dark-default-BJPUVz4H.es.js +0 -4
  206. package/dist/github-dark-default-Dsv5MuSi.cjs.js +0 -1
  207. package/dist/github-dark-dimmed-CtB9hz8U.cjs.js +0 -1
  208. package/dist/github-dark-dimmed-DUshB20C.es.js +0 -4
  209. package/dist/github-dark-high-contrast-BqZVM-jF.cjs.js +0 -1
  210. package/dist/github-dark-high-contrast-D3aGCnF8.es.js +0 -4
  211. package/dist/github-light-BFTOhCbz.cjs.js +0 -1
  212. package/dist/github-light-JYsPkUQd.es.js +0 -4
  213. package/dist/github-light-default-BZoWH9dH.cjs.js +0 -1
  214. package/dist/github-light-default-D99KPAby.es.js +0 -4
  215. package/dist/github-light-high-contrast-BbmZE-Mp.es.js +0 -4
  216. package/dist/github-light-high-contrast-Ks3kPGJU.cjs.js +0 -1
  217. package/dist/gleam-B4k9YFGD.es.js +0 -6
  218. package/dist/gleam-nR4mjrhK.cjs.js +0 -1
  219. package/dist/glimmer-js-C4MQf3Na.es.js +0 -14
  220. package/dist/glimmer-js-CNfyUqSb.cjs.js +0 -1
  221. package/dist/glimmer-ts-Bp7_dELi.cjs.js +0 -1
  222. package/dist/glimmer-ts-CoYpqZrZ.es.js +0 -14
  223. package/dist/glsl-BYTq1Tfl.es.js +0 -8
  224. package/dist/glsl-CIu1PL9X.cjs.js +0 -1
  225. package/dist/gnuplot-CurtDYoJ.cjs.js +0 -1
  226. package/dist/gnuplot-DnWoRZt-.es.js +0 -6
  227. package/dist/go-BErP6iv1.es.js +0 -6
  228. package/dist/go-CM9_GlwL.cjs.js +0 -1
  229. package/dist/graphql-BnnSMMC2.cjs.js +0 -1
  230. package/dist/graphql-g3nHRc0M.es.js +0 -14
  231. package/dist/groovy-BaVp9Il5.cjs.js +0 -1
  232. package/dist/groovy-IWs5-NIO.es.js +0 -6
  233. package/dist/hack-BVxH3fsq.cjs.js +0 -1
  234. package/dist/hack-wPAsyujS.es.js +0 -10
  235. package/dist/haml-4TJ757dz.es.js +0 -10
  236. package/dist/haml-vutdexHh.cjs.js +0 -1
  237. package/dist/handlebars-7GDLw__F.es.js +0 -14
  238. package/dist/handlebars-COmZnO8P.cjs.js +0 -1
  239. package/dist/haskell-CtlGos0K.es.js +0 -6
  240. package/dist/haskell-suhyCHEm.cjs.js +0 -1
  241. package/dist/haxe-BIQU1qHi.cjs.js +0 -1
  242. package/dist/haxe-CZZ33vZw.es.js +0 -6
  243. package/dist/hcl-6hOg9WP4.es.js +0 -6
  244. package/dist/hcl-CbQ1yCnz.cjs.js +0 -1
  245. package/dist/hjson-CgwED-oz.es.js +0 -6
  246. package/dist/hjson-Ddklb4QM.cjs.js +0 -1
  247. package/dist/hlsl-3-lv4gi7.es.js +0 -6
  248. package/dist/hlsl-B4NkiBfC.cjs.js +0 -1
  249. package/dist/houston-BDYrDoDW.es.js +0 -4
  250. package/dist/houston-T57H3gQZ.cjs.js +0 -1
  251. package/dist/html-Dc-Bg17s.cjs.js +0 -1
  252. package/dist/html-PSPajZka.es.js +0 -10
  253. package/dist/html-derivative-Brb3b4aI.es.js +0 -8
  254. package/dist/html-derivative-CY9mJeT0.cjs.js +0 -1
  255. package/dist/http-BrKsebcH.cjs.js +0 -1
  256. package/dist/http-CWBcr-Ch.es.js +0 -14
  257. package/dist/hxml-DLduiIv3.es.js +0 -8
  258. package/dist/hxml-DbGPHkY4.cjs.js +0 -1
  259. package/dist/hy-C2xHhR6I.es.js +0 -6
  260. package/dist/hy-DpyTdO3T.cjs.js +0 -1
  261. package/dist/imba-BEYqRZzB.es.js +0 -8
  262. package/dist/imba-CAIkF-GD.cjs.js +0 -1
  263. package/dist/ini-BUcvsX-U.es.js +0 -6
  264. package/dist/ini-CymULaw_.cjs.js +0 -1
  265. package/dist/java-B7odJ7Ap.es.js +0 -6
  266. package/dist/java-Bn1Lvoni.cjs.js +0 -1
  267. package/dist/javascript-Bnnicc83.cjs.js +0 -1
  268. package/dist/javascript-fa8UlHZE.es.js +0 -6
  269. package/dist/jinja-BoeZymy4.cjs.js +0 -1
  270. package/dist/jinja-DKLHYjK0.es.js +0 -11
  271. package/dist/jison-C0DlFEjB.cjs.js +0 -1
  272. package/dist/jison-CzPfUIvM.es.js +0 -8
  273. package/dist/json-71t8ZF9g.es.js +0 -6
  274. package/dist/json-y-J1j5EW.cjs.js +0 -1
  275. package/dist/json5-CzvlWgZ7.cjs.js +0 -1
  276. package/dist/json5-Z7F6rA6a.es.js +0 -6
  277. package/dist/jsonc-BnhWfmQw.cjs.js +0 -1
  278. package/dist/jsonc-Dphhs4m2.es.js +0 -6
  279. package/dist/jsonl-BbGkWPJz.cjs.js +0 -1
  280. package/dist/jsonl-D9jj92Gg.es.js +0 -6
  281. package/dist/jsonnet-Bn--UDZ1.cjs.js +0 -1
  282. package/dist/jsonnet-DEQ7IUoJ.es.js +0 -6
  283. package/dist/jssm-4CSVp8lc.cjs.js +0 -1
  284. package/dist/jssm-j74e88UX.es.js +0 -6
  285. package/dist/jsx-Bkesy5tT.es.js +0 -6
  286. package/dist/jsx-D8YwVp-7.cjs.js +0 -1
  287. package/dist/julia-B_r6juN7.es.js +0 -16
  288. package/dist/julia-DLxGoAlk.cjs.js +0 -1
  289. package/dist/kanagawa-dragon-BJZF7xDr.cjs.js +0 -1
  290. package/dist/kanagawa-dragon-CiKur4Hl.es.js +0 -4
  291. package/dist/kanagawa-lotus-BKu-smKu.es.js +0 -4
  292. package/dist/kanagawa-lotus-BhgzmRV4.cjs.js +0 -1
  293. package/dist/kanagawa-wave-BgJip59C.cjs.js +0 -1
  294. package/dist/kanagawa-wave-CQwozSzG.es.js +0 -4
  295. package/dist/kotlin-DCgZY7Ii.es.js +0 -6
  296. package/dist/kotlin-DDI6myF6.cjs.js +0 -1
  297. package/dist/kusto-Cw029H-v.es.js +0 -6
  298. package/dist/kusto-OZxALJZT.cjs.js +0 -1
  299. package/dist/laserwave--izBLY1I.cjs.js +0 -1
  300. package/dist/laserwave-6a00oqik.es.js +0 -4
  301. package/dist/latex-CXOK56Uv.cjs.js +0 -1
  302. package/dist/latex-GxBxlqbc.es.js +0 -8
  303. package/dist/lean-CYSet4vs.es.js +0 -6
  304. package/dist/lean-D1iY-35j.cjs.js +0 -1
  305. package/dist/less-DIaY7vQJ.cjs.js +0 -1
  306. package/dist/less-DQA4v-Nm.es.js +0 -6
  307. package/dist/light-plus-B5D0le0o.cjs.js +0 -1
  308. package/dist/light-plus-CZuVqSLX.es.js +0 -4
  309. package/dist/liquid-BYouVITI.cjs.js +0 -1
  310. package/dist/liquid-BxBkR-z5.es.js +0 -14
  311. package/dist/log-BIXUeBaj.cjs.js +0 -1
  312. package/dist/log-D2eRfqDn.es.js +0 -6
  313. package/dist/logo-B2d3b27P.cjs.js +0 -1
  314. package/dist/logo-QEAtGWZ9.es.js +0 -6
  315. package/dist/lua-B2_GGnC5.cjs.js +0 -1
  316. package/dist/lua-DeXVjwzF.es.js +0 -8
  317. package/dist/luau-BjYGiqID.es.js +0 -6
  318. package/dist/luau-CvqAeq4F.cjs.js +0 -1
  319. package/dist/make-BjuHP00g.es.js +0 -6
  320. package/dist/make-Oob5Z9Pk.cjs.js +0 -1
  321. package/dist/markdown-B6guhLWd.es.js +0 -6
  322. package/dist/markdown-BGBuj4LZ.cjs.js +0 -1
  323. package/dist/marko-CS7eEGs3.cjs.js +0 -1
  324. package/dist/marko-DwPYPpB3.es.js +0 -14
  325. package/dist/material-theme-D6KBX41T.es.js +0 -4
  326. package/dist/material-theme-Dj0-OyRN.cjs.js +0 -1
  327. package/dist/material-theme-darker-CkRroheE.es.js +0 -4
  328. package/dist/material-theme-darker-Dvfs29ir.cjs.js +0 -1
  329. package/dist/material-theme-lighter-BUBw43Yz.es.js +0 -4
  330. package/dist/material-theme-lighter-EU3ZGl_r.cjs.js +0 -1
  331. package/dist/material-theme-ocean-ClGX14Ja.es.js +0 -4
  332. package/dist/material-theme-ocean-px_3Pwqa.cjs.js +0 -1
  333. package/dist/material-theme-palenight-38jxvsGX.cjs.js +0 -1
  334. package/dist/material-theme-palenight-C1RVm8K1.es.js +0 -4
  335. package/dist/matlab-BpQlIJiw.es.js +0 -6
  336. package/dist/matlab-CbN2rF6P.cjs.js +0 -1
  337. package/dist/mdc-Bkl-bu_Z.cjs.js +0 -1
  338. package/dist/mdc-X4YjkufV.es.js +0 -12
  339. package/dist/mdx-Cl31h8mi.cjs.js +0 -1
  340. package/dist/mdx-DIoECIFU.es.js +0 -6
  341. package/dist/mermaid-BZ7WHNIe.es.js +0 -6
  342. package/dist/mermaid-CSogK_LM.cjs.js +0 -1
  343. package/dist/min-dark-C7ak0t6c.es.js +0 -4
  344. package/dist/min-dark-tt5o_I5e.cjs.js +0 -1
  345. package/dist/min-light-CKFxVcPp.es.js +0 -4
  346. package/dist/min-light-tmTHl_CQ.cjs.js +0 -1
  347. package/dist/mipsasm-BseoYJQp.cjs.js +0 -1
  348. package/dist/mipsasm-DusDYkFc.es.js +0 -6
  349. package/dist/mojo-CY9jaezJ.es.js +0 -6
  350. package/dist/mojo-D8QAG3Ze.cjs.js +0 -1
  351. package/dist/monokai-C1KBYcO0.es.js +0 -4
  352. package/dist/monokai-DMIxv6MM.cjs.js +0 -1
  353. package/dist/move-ChphFumd.es.js +0 -6
  354. package/dist/move-DaBrcjat.cjs.js +0 -1
  355. package/dist/narrat-Dz4d7OmN.es.js +0 -6
  356. package/dist/narrat-oOfAO4q8.cjs.js +0 -1
  357. package/dist/nextflow-BxJSKvPb.cjs.js +0 -1
  358. package/dist/nextflow-DW0Yq9a2.es.js +0 -6
  359. package/dist/nginx-ChI-VqNT.es.js +0 -8
  360. package/dist/nginx-LuyFICzP.cjs.js +0 -1
  361. package/dist/night-owl-BN78kThQ.cjs.js +0 -1
  362. package/dist/night-owl-Bm2rzalh.es.js +0 -4
  363. package/dist/nim-BiJA-5u7.es.js +0 -20
  364. package/dist/nim-DkC83hsN.cjs.js +0 -1
  365. package/dist/nix-Cg5uV_xg.es.js +0 -6
  366. package/dist/nix-DNME0Ea7.cjs.js +0 -1
  367. package/dist/nord-CC5OiUXg.es.js +0 -4
  368. package/dist/nord-Ca5AGUWc.cjs.js +0 -1
  369. package/dist/nushell-BfRnzRWn.es.js +0 -6
  370. package/dist/nushell-DI9Z3l3M.cjs.js +0 -1
  371. package/dist/objective-c-BGg9R27G.es.js +0 -6
  372. package/dist/objective-c-DVx8Rcni.cjs.js +0 -1
  373. package/dist/objective-cpp-CJ3y3V_5.es.js +0 -6
  374. package/dist/objective-cpp-s6XI7Jvk.cjs.js +0 -1
  375. package/dist/ocaml-BZLsfx_o.es.js +0 -6
  376. package/dist/ocaml-kUzDDUf2.cjs.js +0 -1
  377. package/dist/one-dark-pro-D7-kP8fv.es.js +0 -4
  378. package/dist/one-dark-pro-JOzzHStv.cjs.js +0 -1
  379. package/dist/one-light-020-h_lv.cjs.js +0 -1
  380. package/dist/one-light-D9sNaUtq.es.js +0 -4
  381. package/dist/pascal-D509_I72.cjs.js +0 -1
  382. package/dist/pascal-l2bqd7Dz.es.js +0 -6
  383. package/dist/perl-CkXYjL3t.es.js +0 -16
  384. package/dist/perl-DUnCLRB_.cjs.js +0 -1
  385. package/dist/php-D0k1sQr6.cjs.js +0 -1
  386. package/dist/php-q40Yjh5d.es.js +0 -18
  387. package/dist/plastic-CSTz3KZp.es.js +0 -4
  388. package/dist/plastic-r5piqq-S.cjs.js +0 -1
  389. package/dist/plsql-C_qH_YOK.cjs.js +0 -1
  390. package/dist/plsql-oVq_K_wH.es.js +0 -6
  391. package/dist/po-5jaeIyVd.es.js +0 -6
  392. package/dist/po-CBsLQIcu.cjs.js +0 -1
  393. package/dist/poimandres-BLP3NNjc.cjs.js +0 -1
  394. package/dist/poimandres-C-VADXHD.es.js +0 -4
  395. package/dist/polar-De-CDeYv.cjs.js +0 -1
  396. package/dist/polar-wcLp8ci7.es.js +0 -6
  397. package/dist/postcss-BZ3MNRIJ.es.js +0 -6
  398. package/dist/postcss-BtcsgaYj.cjs.js +0 -1
  399. package/dist/powerquery-B0rHn13V.cjs.js +0 -1
  400. package/dist/powerquery-CgRa2XRw.es.js +0 -6
  401. package/dist/powershell-Diwyv8Eh.es.js +0 -6
  402. package/dist/powershell-rCX2OYXT.cjs.js +0 -1
  403. package/dist/prisma-BaaUHYMp.cjs.js +0 -1
  404. package/dist/prisma-COL_v1x4.es.js +0 -6
  405. package/dist/prolog-CuvJOxqT.es.js +0 -6
  406. package/dist/prolog-DrXD2tGS.cjs.js +0 -1
  407. package/dist/proto-BtmQjBQu.cjs.js +0 -1
  408. package/dist/proto-o9HLmF90.es.js +0 -6
  409. package/dist/pug-Br4hpvIv.es.js +0 -12
  410. package/dist/pug-CFQMpTUe.cjs.js +0 -1
  411. package/dist/puppet-cIrXIuy8.cjs.js +0 -1
  412. package/dist/puppet-wpGOnQp5.es.js +0 -6
  413. package/dist/purescript-B_1NgE2N.es.js +0 -6
  414. package/dist/purescript-CX9QPs2N.cjs.js +0 -1
  415. package/dist/python-B9x3euv6.cjs.js +0 -1
  416. package/dist/python-xYxLFJY-.es.js +0 -6
  417. package/dist/qml-CzqrIM5W.cjs.js +0 -1
  418. package/dist/qml-D5gi21kK.es.js +0 -8
  419. package/dist/qmldir-BInDYbpo.es.js +0 -6
  420. package/dist/qmldir-DNF9H2ir.cjs.js +0 -1
  421. package/dist/qss-C744dLby.cjs.js +0 -1
  422. package/dist/qss-D-h4NdUG.es.js +0 -6
  423. package/dist/r-DgOc9oMe.cjs.js +0 -1
  424. package/dist/r-F-9I-ITZ.es.js +0 -6
  425. package/dist/racket-BoD1TBFT.es.js +0 -6
  426. package/dist/racket-Do9_vqnd.cjs.js +0 -1
  427. package/dist/raku-BW8wAUIz.cjs.js +0 -1
  428. package/dist/raku-IaYcw19m.es.js +0 -6
  429. package/dist/razor-Bt_t1YJb.es.js +0 -10
  430. package/dist/razor-COQhlwWF.cjs.js +0 -1
  431. package/dist/red-7y8PH7HH.es.js +0 -4
  432. package/dist/red-BQGOv1D5.cjs.js +0 -1
  433. package/dist/reg-CGWN_v-z.cjs.js +0 -1
  434. package/dist/reg-CMUdAgIP.es.js +0 -6
  435. package/dist/regexp-GiFkbxS-.es.js +0 -6
  436. package/dist/regexp-N7Z4hEeU.cjs.js +0 -1
  437. package/dist/rel-BYqA7mnV.cjs.js +0 -1
  438. package/dist/rel-BaRn3QX7.es.js +0 -6
  439. package/dist/riscv-B9V3SsvW.es.js +0 -6
  440. package/dist/riscv-ayQMUpo9.cjs.js +0 -1
  441. package/dist/rose-pine-DKEdv1Oe.cjs.js +0 -1
  442. package/dist/rose-pine-DhT-HZE9.es.js +0 -4
  443. package/dist/rose-pine-dawn-Bvt6DtVH.cjs.js +0 -1
  444. package/dist/rose-pine-dawn-DiCjL2i4.es.js +0 -4
  445. package/dist/rose-pine-moon-BNmGHlcn.es.js +0 -4
  446. package/dist/rose-pine-moon-cHuJy0Ng.cjs.js +0 -1
  447. package/dist/rst-BmKw97ch.es.js +0 -22
  448. package/dist/rst-Bq-h_T5U.cjs.js +0 -1
  449. package/dist/ruby-Bw5IEIKD.cjs.js +0 -1
  450. package/dist/ruby-cs7BSa_9.es.js +0 -30
  451. package/dist/rust-BnFKGEfa.cjs.js +0 -1
  452. package/dist/rust-Pc7DCsZD.es.js +0 -6
  453. package/dist/sas-BWKaSYkZ.cjs.js +0 -1
  454. package/dist/sas-DgvHx4mL.es.js +0 -8
  455. package/dist/sass-B9gYryDE.cjs.js +0 -1
  456. package/dist/sass-iCyS6eP9.es.js +0 -6
  457. package/dist/scala-C85dOwSU.cjs.js +0 -1
  458. package/dist/scala-Cly-fENF.es.js +0 -6
  459. package/dist/scheme-B_XUaARm.cjs.js +0 -1
  460. package/dist/scheme-Zi24oEYu.es.js +0 -6
  461. package/dist/scss-B_hSZppj.es.js +0 -8
  462. package/dist/scss-CV3c8_Y7.cjs.js +0 -1
  463. package/dist/sdbl-7Y5u0OW0.cjs.js +0 -1
  464. package/dist/sdbl-BBamrXFL.es.js +0 -6
  465. package/dist/shaderlab-CJ8U2E2w.cjs.js +0 -1
  466. package/dist/shaderlab-U9mqcu_f.es.js +0 -8
  467. package/dist/shellscript-3DYM9fut.cjs.js +0 -1
  468. package/dist/shellscript-Dn0-btNd.es.js +0 -6
  469. package/dist/shellsession-CbKmorC3.cjs.js +0 -1
  470. package/dist/shellsession-LvXGClmj.es.js +0 -8
  471. package/dist/slack-dark-akqwQ7ED.cjs.js +0 -1
  472. package/dist/slack-dark-i7wN4OET.es.js +0 -4
  473. package/dist/slack-ochin-BoQQWmTv.cjs.js +0 -1
  474. package/dist/slack-ochin-ndHf0LoP.es.js +0 -4
  475. package/dist/smalltalk-CCvytUuW.cjs.js +0 -1
  476. package/dist/smalltalk-Cns31tKw.es.js +0 -6
  477. package/dist/snazzy-light-BlSJXAu4.es.js +0 -4
  478. package/dist/snazzy-light-D_IwRieF.cjs.js +0 -1
  479. package/dist/solarized-dark-UTmkh7lw.es.js +0 -4
  480. package/dist/solarized-dark-gmm-WbDC.cjs.js +0 -1
  481. package/dist/solarized-light-BheCkDPT.es.js +0 -4
  482. package/dist/solarized-light-DzcxRSZP.cjs.js +0 -1
  483. package/dist/solidity-BG_k8fA_.es.js +0 -6
  484. package/dist/solidity-BcNcjFC4.cjs.js +0 -1
  485. package/dist/soy-B2d9ZydM.cjs.js +0 -1
  486. package/dist/soy-C0yEn39K.es.js +0 -8
  487. package/dist/sparql-CiBxIK0g.cjs.js +0 -1
  488. package/dist/sparql-CuZaxpno.es.js +0 -8
  489. package/dist/splunk-CTqDjQdo.es.js +0 -6
  490. package/dist/splunk-CzITjJj7.cjs.js +0 -1
  491. package/dist/sql-BqWZrLHB.cjs.js +0 -1
  492. package/dist/sql-DCkt643-.es.js +0 -6
  493. package/dist/ssh-config-DHHGll-v.es.js +0 -6
  494. package/dist/ssh-config-DUPeuEdB.cjs.js +0 -1
  495. package/dist/stata-B8m3qL-x.cjs.js +0 -1
  496. package/dist/stata-Dv81f34z.es.js +0 -8
  497. package/dist/stylus-ByHs6N-o.cjs.js +0 -1
  498. package/dist/stylus-n_9f0QQ5.es.js +0 -6
  499. package/dist/svelte-CfLoBBrI.cjs.js +0 -1
  500. package/dist/svelte-SoJd35Jr.es.js +0 -14
  501. package/dist/swift-BAWqNR8A.es.js +0 -6
  502. package/dist/swift-C5DnOriA.cjs.js +0 -1
  503. package/dist/synthwave-84-BBRLOmNT.cjs.js +0 -1
  504. package/dist/synthwave-84-NU3C_KFZ.es.js +0 -4
  505. package/dist/system-verilog-ClPLYLwh.cjs.js +0 -1
  506. package/dist/system-verilog-Cui-g-ut.es.js +0 -6
  507. package/dist/systemd-BASX0DlX.cjs.js +0 -1
  508. package/dist/systemd-CsKYQIQK.es.js +0 -6
  509. package/dist/talonscript-D2dGh8FO.es.js +0 -6
  510. package/dist/talonscript-DkCSnLHD.cjs.js +0 -1
  511. package/dist/tasl-BAQJK7KZ.cjs.js +0 -1
  512. package/dist/tasl-D3W8HMV6.es.js +0 -6
  513. package/dist/tcl-2y0Fuc4S.es.js +0 -6
  514. package/dist/tcl-CwJAYTvh.cjs.js +0 -1
  515. package/dist/templ-BSMv2wKZ.cjs.js +0 -1
  516. package/dist/templ-C7he2afp.es.js +0 -12
  517. package/dist/terraform-BGW6Oerf.es.js +0 -6
  518. package/dist/terraform-s-pzyVvp.cjs.js +0 -1
  519. package/dist/tex-B0y3cEZp.es.js +0 -8
  520. package/dist/tex-DwtFCA08.cjs.js +0 -1
  521. package/dist/tokyo-night-9T7_vGSy.cjs.js +0 -1
  522. package/dist/tokyo-night-LhP3hHhi.es.js +0 -4
  523. package/dist/toml-CQSfOn0e.es.js +0 -6
  524. package/dist/toml-CyMM7IXy.cjs.js +0 -1
  525. package/dist/ts-tags-C5-4VQhf.es.js +0 -41
  526. package/dist/ts-tags-MIr66hKK.cjs.js +0 -1
  527. package/dist/tsv-BtvSkaG0.es.js +0 -6
  528. package/dist/tsv-DqNGnuVj.cjs.js +0 -1
  529. package/dist/tsx-DiGsgWT8.es.js +0 -6
  530. package/dist/tsx-DpBRUnKC.cjs.js +0 -1
  531. package/dist/turtle-BJ2wmjPc.es.js +0 -6
  532. package/dist/turtle-DfO3eAsu.cjs.js +0 -1
  533. package/dist/twig-BzjoX4ZJ.cjs.js +0 -1
  534. package/dist/twig-OmkATFdv.es.js +0 -18
  535. package/dist/typescript-BqvpT6pB.cjs.js +0 -1
  536. package/dist/typescript-buWNZFwO.es.js +0 -6
  537. package/dist/typespec-P-ZVy8yC.cjs.js +0 -1
  538. package/dist/typespec-bLbdsxJL.es.js +0 -6
  539. package/dist/typst-BVh2IsT9.cjs.js +0 -1
  540. package/dist/typst-Y9_SmXTs.es.js +0 -6
  541. package/dist/v-BUlE9136.cjs.js +0 -1
  542. package/dist/v-wa8Orrdd.es.js +0 -6
  543. package/dist/vala-BIymb2K_.cjs.js +0 -1
  544. package/dist/vala-DRdriFr_.es.js +0 -6
  545. package/dist/vb-E2_-jk4M.es.js +0 -6
  546. package/dist/vb-IXOh8mqV.cjs.js +0 -1
  547. package/dist/verilog-B1iBoR5_.es.js +0 -6
  548. package/dist/verilog-BiglCqvO.cjs.js +0 -1
  549. package/dist/vesper-CJsaOsSM.es.js +0 -4
  550. package/dist/vesper-DqLWLxOu.cjs.js +0 -1
  551. package/dist/vhdl-CJUzuS2t.cjs.js +0 -1
  552. package/dist/vhdl-CRVaAhXk.es.js +0 -6
  553. package/dist/viml-B-zWOd7Z.es.js +0 -6
  554. package/dist/viml-B1nKLcgt.cjs.js +0 -1
  555. package/dist/vitesse-black-BoGvW84i.es.js +0 -4
  556. package/dist/vitesse-black-MF-1S1MG.cjs.js +0 -1
  557. package/dist/vitesse-dark-Cym-eLtO.es.js +0 -4
  558. package/dist/vitesse-dark-SIffJYSe.cjs.js +0 -1
  559. package/dist/vitesse-light-CcmG315c.es.js +0 -4
  560. package/dist/vitesse-light-U63SkYGT.cjs.js +0 -1
  561. package/dist/vue-DCwwWMGI.es.js +0 -31
  562. package/dist/vue-DYZqcRaZ.cjs.js +0 -1
  563. package/dist/vue-html-CdPbyrq1.cjs.js +0 -1
  564. package/dist/vue-html-sRE_Ny23.es.js +0 -10
  565. package/dist/vyper-CO9xUkIY.cjs.js +0 -1
  566. package/dist/vyper-DWutKXpa.es.js +0 -6
  567. package/dist/wasm-Bv5f0gKv.es.js +0 -6
  568. package/dist/wasm-CdIThIat.cjs.js +0 -1
  569. package/dist/wenyan-BMYnfus1.es.js +0 -6
  570. package/dist/wenyan-BSJ3fk7e.cjs.js +0 -1
  571. package/dist/wgsl-DnPoPGDU.es.js +0 -6
  572. package/dist/wgsl-d3zZE7ZN.cjs.js +0 -1
  573. package/dist/wikitext-BRCqXN2g.cjs.js +0 -1
  574. package/dist/wikitext-CntM04PE.es.js +0 -6
  575. package/dist/wolfram-C3rR92zj.cjs.js +0 -1
  576. package/dist/wolfram-Ws5qPlX9.es.js +0 -6
  577. package/dist/xml-BRLTD55J.cjs.js +0 -1
  578. package/dist/xml-Ch1q_kJp.es.js +0 -8
  579. package/dist/xsl-DyL8yqXw.es.js +0 -8
  580. package/dist/xsl-ETbYGV_-.cjs.js +0 -1
  581. package/dist/yaml-7DV6pRKj.cjs.js +0 -1
  582. package/dist/yaml-Bbg74JKr.es.js +0 -6
  583. package/dist/zenscript-BWMxwjeH.cjs.js +0 -1
  584. package/dist/zenscript-C0RKE4nU.es.js +0 -6
  585. package/dist/zig-D6SXBGNm.es.js +0 -6
  586. package/dist/zig-yAcNfpgW.cjs.js +0 -1
@@ -0,0 +1,84 @@
1
+ import { DimensionSpec } from './useDimensionalFilterRangeData';
2
+ /**
3
+ * Match types for filtering dimensions
4
+ */
5
+ export type MatchType = "Equals" | "Contains" | "After" | "Before" | "Less Than" | "Greater Than" | "Between" | "Concept Search";
6
+ /**
7
+ * Primitive types that can be used as filter values
8
+ */
9
+ export type FilterValuePrimitive = string | number | boolean | Date;
10
+ /**
11
+ * Type for filter values - can be a single value or an array for multi-select
12
+ */
13
+ export type FilterValue = FilterValuePrimitive | FilterValuePrimitive[];
14
+ /**
15
+ * A selected filter value with its match type
16
+ */
17
+ export interface FilterSelection {
18
+ dimensionName: string;
19
+ matchType: MatchType;
20
+ value: FilterValue;
21
+ value2?: FilterValuePrimitive;
22
+ }
23
+ /**
24
+ * Complete filter state including the dimension spec and selection
25
+ */
26
+ export interface DimensionFilterState {
27
+ spec: DimensionSpec;
28
+ selection: FilterSelection | null;
29
+ }
30
+ /**
31
+ * Parameters for the useDimensionFilters hook
32
+ */
33
+ export interface UseDimensionFiltersParams {
34
+ /** Dimension specifications (each includes source and model) */
35
+ dimensionSpecs: DimensionSpec[];
36
+ }
37
+ /**
38
+ * Result from the useDimensionFilters hook
39
+ */
40
+ export interface UseDimensionFiltersResult {
41
+ /** Current filter states */
42
+ filterStates: Map<string, DimensionFilterState>;
43
+ /** Update a filter selection */
44
+ updateFilter: (dimensionName: string, selection: FilterSelection | null) => void;
45
+ /** Clear a specific filter */
46
+ clearFilter: (dimensionName: string) => void;
47
+ /** Clear all filters */
48
+ clearAllFilters: () => void;
49
+ /** Get active filters (with selections) */
50
+ getActiveFilters: () => FilterSelection[];
51
+ /** Generate Malloy query fragment for active filters */
52
+ generateWhereClause: () => string;
53
+ }
54
+ /**
55
+ * Custom hook to manage dimension filter state and generate Malloy queries
56
+ *
57
+ * This hook maintains filter state for multiple dimensions and provides utilities
58
+ * to generate Malloy WHERE clauses based on the active filters.
59
+ *
60
+ * @param params - Parameters including dimension specs (each with source and model)
61
+ * @returns Filter state management functions and query generation
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * const { filterStates, updateFilter, generateWhereClause } = useDimensionFilters({
66
+ * dimensionSpecs: [
67
+ * { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
68
+ * { dimensionName: "price", filterType: "MinMax", source: "my_source", model: "model.malloy" },
69
+ * ],
70
+ * });
71
+ *
72
+ * // Update a filter
73
+ * updateFilter("category", {
74
+ * dimensionName: "category",
75
+ * matchType: "Equals",
76
+ * value: "Electronics"
77
+ * });
78
+ *
79
+ * // Generate query
80
+ * const whereClause = generateWhereClause();
81
+ * // Returns: "where `category` = 'Electronics'"
82
+ * ```
83
+ */
84
+ export declare function useDimensionFilters(params: UseDimensionFiltersParams): UseDimensionFiltersResult;
@@ -0,0 +1,52 @@
1
+ import { DimensionSpec, DimensionValues } from './useDimensionalFilterRangeData';
2
+ import { DimensionFilterState, FilterSelection } from './useDimensionFilters';
3
+ /**
4
+ * Configuration for dimensional filters
5
+ */
6
+ export interface DimensionFiltersConfig {
7
+ /** Project name */
8
+ project: string;
9
+ /** Package name */
10
+ package: string;
11
+ /** Version ID (optional) */
12
+ versionId?: string;
13
+ /** Index limit for retrieval queries */
14
+ indexLimit: number;
15
+ /** Dimension specifications for filters (each includes source and model) */
16
+ dimensionSpecs: DimensionSpec[];
17
+ /** Fields/columns to group by in the query (if not specified, uses select *) */
18
+ selectFields?: string[];
19
+ }
20
+ /**
21
+ * Options passed to useDimensionFiltersFromSpec
22
+ */
23
+ export interface UseDimensionFiltersFromSpecOptions {
24
+ config: DimensionFiltersConfig;
25
+ /** Maximum number of results to return from query (default: 100) */
26
+ queryLimit?: number;
27
+ }
28
+ /**
29
+ * Combined hook that manages dimensional filters, data fetching, and query execution
30
+ * from a single configuration object.
31
+ *
32
+ * @param config - Configuration containing project, package, dimension specs, and index limit
33
+ * @param queryLimit - Maximum number of results to return from query (default: 100)
34
+ * @returns All state and methods needed for dimensional filtering UI
35
+ */
36
+ export declare function useDimensionFiltersFromSpec(config: DimensionFiltersConfig, queryLimit?: number): {
37
+ filterStates: Map<string, DimensionFilterState>;
38
+ updateFilter: (dimensionName: string, selection: FilterSelection | null) => void;
39
+ clearAllFilters: () => void;
40
+ activeFilters: FilterSelection[];
41
+ data: DimensionValues;
42
+ noRowsMatchedFilter: boolean;
43
+ isLoading: boolean;
44
+ isInitialLoading: boolean;
45
+ isError: boolean;
46
+ error: Error;
47
+ refetch: () => void;
48
+ embeddedQueryResult: string;
49
+ queryString: string;
50
+ executeQuery: () => void;
51
+ canExecute: boolean;
52
+ };
@@ -0,0 +1,79 @@
1
+ import { FilterSelection } from './useDimensionFilters';
2
+ /**
3
+ * Parameters for the useDimensionFiltersQuery hook
4
+ */
5
+ export interface UseDimensionFiltersQueryParams {
6
+ /** Project name */
7
+ project: string;
8
+ /** Package name */
9
+ package: string;
10
+ /** Model path */
11
+ model: string;
12
+ /** Source name within the model */
13
+ source: string;
14
+ /** Active filter selections */
15
+ filterSelections: FilterSelection[];
16
+ /** Optional fields to select in the query */
17
+ fields?: string[];
18
+ /** Maximum number of results to return (default: 1000) */
19
+ limit?: number;
20
+ }
21
+ /**
22
+ * Result from the useDimensionFiltersQuery hook
23
+ */
24
+ export interface DimensionFiltersQueryResult {
25
+ /** Embedded query result string suitable for rendering with EmbeddedQueryResult */
26
+ embeddedQueryResult: string | null;
27
+ /** The generated Malloy query string (preview only, not executed) */
28
+ queryString: string;
29
+ /** The resource URI for the model */
30
+ resourceUri: string;
31
+ /** Function to execute the query and generate the embedded result */
32
+ executeQuery: () => void;
33
+ /** Whether a query can be executed (has filter selections) */
34
+ canExecute: boolean;
35
+ }
36
+ /**
37
+ * Custom hook to generate an embedded Malloy query with dimensional filters
38
+ *
39
+ * This hook takes filter selections from useDimensionFilters, builds a complete
40
+ * Malloy query with WHERE clauses, and provides a function to execute the query
41
+ * and create an embedded query result string that can be rendered with the
42
+ * EmbeddedQueryResult component.
43
+ *
44
+ * The query is not executed automatically - you must call executeQuery() to
45
+ * generate the embedded result.
46
+ *
47
+ * @param params - Parameters including model info, source, and filter selections
48
+ * @returns Query metadata, embedded result, and execute function
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * const { filterStates, getActiveFilters } = useDimensionFilters({
53
+ * dimensionSpecs: [
54
+ * { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
55
+ * ],
56
+ * });
57
+ *
58
+ * const { embeddedQueryResult, executeQuery, canExecute } = useDimensionFiltersQuery({
59
+ * project: "my-project",
60
+ * package: "my-package",
61
+ * model: "model.malloy",
62
+ * source: "my_source",
63
+ * filterSelections: getActiveFilters(),
64
+ * fields: ["category", "price", "quantity"],
65
+ * limit: 1000, // Optional: defaults to 1000
66
+ * });
67
+ *
68
+ * // Execute button
69
+ * <Button onClick={executeQuery} disabled={!canExecute}>
70
+ * Execute Query
71
+ * </Button>
72
+ *
73
+ * // Render with EmbeddedQueryResult component
74
+ * {embeddedQueryResult && (
75
+ * <EmbeddedQueryResult embeddedQueryResult={embeddedQueryResult} />
76
+ * )}
77
+ * ```
78
+ */
79
+ export declare function useDimensionFiltersQuery(params: UseDimensionFiltersQueryParams): DimensionFiltersQueryResult;
@@ -0,0 +1,106 @@
1
+ import { FilterSelection, FilterValuePrimitive } from './useDimensionFilters';
2
+ /**
3
+ * Filter types for dimensions
4
+ */
5
+ export type FilterType = "NONE" | "Star" | "MinMax" | "DateMinMax" | "Retrieval" | "Boolean";
6
+ /**
7
+ * Specification for a dimension to filter
8
+ */
9
+ export interface DimensionSpec {
10
+ /** Name of the dimension field */
11
+ dimensionName: string;
12
+ /** Type of filter to apply */
13
+ filterType: FilterType;
14
+ /** Source name within the model */
15
+ source: string;
16
+ /** Model path */
17
+ model: string;
18
+ /** Minimum similarity score for Retrieval filter type (default: 0.1) */
19
+ minSimilarityScore?: number;
20
+ /** Optional list of static values to use for the dropdown instead of querying */
21
+ values?: string[];
22
+ }
23
+ /**
24
+ * Value information for a dimension
25
+ */
26
+ export interface DimensionValue {
27
+ value: FilterValuePrimitive;
28
+ count?: number;
29
+ }
30
+ /**
31
+ * Result type mapping dimension names to their values
32
+ */
33
+ export type DimensionValues = Map<string, DimensionValue[]>;
34
+ /**
35
+ * Parameters for the useDimensionalFilterRangeData hook
36
+ */
37
+ export interface UseDimensionalFilterRangeDataParams {
38
+ /** Project name */
39
+ project: string;
40
+ /** Package name */
41
+ package: string;
42
+ /** List of dimension specifications (each includes source and model) */
43
+ dimensionSpecs: DimensionSpec[];
44
+ /** Version ID (optional) */
45
+ versionId?: string;
46
+ /** Whether the query should be enabled */
47
+ enabled?: boolean;
48
+ /** Maximum number of index results to return (default: 1000) */
49
+ indexLimit?: number;
50
+ /** Active filter selections to apply when fetching dimension values (optional) */
51
+ activeFilters?: FilterSelection[];
52
+ }
53
+ /**
54
+ * Result from the useDimensionalFilterRangeData hook
55
+ */
56
+ export interface DimensionalFilterRangeDataResult {
57
+ /** Map of dimension names to their values */
58
+ data: DimensionValues | undefined;
59
+ /** Whether no rows matched the filter */
60
+ noRowsMatchedFilter: boolean;
61
+ /** Whether the query is loading */
62
+ isLoading: boolean;
63
+ /** Whether the query encountered an error */
64
+ isError: boolean;
65
+ /** Error object if query failed */
66
+ error: Error | null;
67
+ /** Refetch function to manually trigger the query */
68
+ refetch: () => void;
69
+ }
70
+ /**
71
+ * Custom hook to fetch dimensional filter values from a Malloy model
72
+ *
73
+ * This hook uses Malloy's built-in `index` operator to create dimensional search indexes
74
+ * for the specified dimensions. The index operator efficiently returns distinct values
75
+ * and ranges for dimensions in a single query.
76
+ *
77
+ * Filter types:
78
+ * - NONE: Display only, no values fetched
79
+ * - Star: Fetches all distinct values with counts (for string fields)
80
+ * - MinMax: Fetches minimum and maximum values (for numeric fields as ranges)
81
+ * - DateMinMax: Fetches minimum and maximum values (for date fields as Date objects)
82
+ * - Retrieval: Uses retrieval, no values fetched
83
+ *
84
+ * Reference: https://docs.malloydata.dev/documentation/patterns/dim_index
85
+ *
86
+ * The hook groups dimension specs by source/model combination and runs separate
87
+ * index queries for each group, then merges the results.
88
+ *
89
+ * @param params - Parameters including project, package, and dimension specs (each with source/model)
90
+ * @returns Query result with dimension values map, loading state, and error information
91
+ *
92
+ * @example
93
+ * ```tsx
94
+ * const { data, isLoading, error } = useDimensionalFilterRangeData({
95
+ * project: "my-project",
96
+ * package: "my-package",
97
+ * dimensionSpecs: [
98
+ * { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
99
+ * { dimensionName: "price", filterType: "MinMax", source: "my_source", model: "model.malloy" },
100
+ * { dimensionName: "status", filterType: "Star", source: "other_source", model: "other.malloy" },
101
+ * ],
102
+ * indexLimit: 1000, // Optional: set higher if needed for many Star dimensions
103
+ * });
104
+ * ```
105
+ */
106
+ export declare function useDimensionalFilterRangeData(params: UseDimensionalFilterRangeDataParams): DimensionalFilterRangeDataResult;