@malloy-publisher/sdk 0.0.138 → 0.0.140

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