@databricks/appkit-ui 0.1.4 → 0.2.0

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 (194) hide show
  1. package/AGENTS.md +89 -12
  2. package/CLAUDE.md +89 -12
  3. package/NOTICE.md +4 -0
  4. package/README.md +21 -15
  5. package/dist/js/arrow/arrow-client.js.map +1 -1
  6. package/dist/js/arrow/lazy-arrow.js.map +1 -1
  7. package/dist/js/sse/connect-sse.js.map +1 -1
  8. package/dist/react/charts/area/index.d.ts +2 -2
  9. package/dist/react/charts/bar/index.d.ts +2 -2
  10. package/dist/react/charts/base.d.ts +2 -2
  11. package/dist/react/charts/base.js.map +1 -1
  12. package/dist/react/charts/create-chart.d.ts +2 -2
  13. package/dist/react/charts/create-chart.js +2 -1
  14. package/dist/react/charts/create-chart.js.map +1 -1
  15. package/dist/react/charts/heatmap/index.d.ts +2 -2
  16. package/dist/react/charts/line/index.d.ts +2 -2
  17. package/dist/react/charts/normalize.d.ts +1 -1
  18. package/dist/react/charts/normalize.js +1 -1
  19. package/dist/react/charts/normalize.js.map +1 -1
  20. package/dist/react/charts/pie/index.d.ts +3 -3
  21. package/dist/react/charts/radar/index.d.ts +2 -2
  22. package/dist/react/charts/scatter/index.d.ts +2 -2
  23. package/dist/react/charts/theme.js.map +1 -1
  24. package/dist/react/charts/types.d.ts +5 -0
  25. package/dist/react/charts/types.d.ts.map +1 -1
  26. package/dist/react/charts/types.js.map +1 -1
  27. package/dist/react/charts/utils.js.map +1 -1
  28. package/dist/react/charts/wrapper.d.ts +4 -2
  29. package/dist/react/charts/wrapper.d.ts.map +1 -1
  30. package/dist/react/charts/wrapper.js +4 -2
  31. package/dist/react/charts/wrapper.js.map +1 -1
  32. package/dist/react/hooks/types.d.ts +2 -0
  33. package/dist/react/hooks/types.d.ts.map +1 -1
  34. package/dist/react/hooks/use-analytics-query.js +9 -3
  35. package/dist/react/hooks/use-analytics-query.js.map +1 -1
  36. package/dist/react/hooks/use-chart-data.d.ts +2 -0
  37. package/dist/react/hooks/use-chart-data.d.ts.map +1 -1
  38. package/dist/react/hooks/use-chart-data.js +3 -2
  39. package/dist/react/hooks/use-chart-data.js.map +1 -1
  40. package/dist/react/hooks/use-mobile.js +3 -3
  41. package/dist/react/hooks/use-mobile.js.map +1 -1
  42. package/dist/react/index.d.ts +3 -1
  43. package/dist/react/index.js +3 -1
  44. package/dist/react/lib/utils.d.ts +7 -0
  45. package/dist/react/lib/utils.d.ts.map +1 -0
  46. package/dist/react/portal-container-context.d.ts +48 -0
  47. package/dist/react/portal-container-context.d.ts.map +1 -0
  48. package/dist/react/portal-container-context.js +51 -0
  49. package/dist/react/portal-container-context.js.map +1 -0
  50. package/dist/react/table/data-table.d.ts +2 -2
  51. package/dist/react/table/data-table.d.ts.map +1 -1
  52. package/dist/react/table/table-wrapper.js +3 -2
  53. package/dist/react/table/table-wrapper.js.map +1 -1
  54. package/dist/react/table/types.d.ts.map +1 -1
  55. package/dist/react/ui/accordion.d.ts +6 -6
  56. package/dist/react/ui/accordion.d.ts.map +1 -1
  57. package/dist/react/ui/alert-dialog.d.ts +14 -13
  58. package/dist/react/ui/alert-dialog.d.ts.map +1 -1
  59. package/dist/react/ui/alert-dialog.js +3 -1
  60. package/dist/react/ui/alert-dialog.js.map +1 -1
  61. package/dist/react/ui/alert.d.ts +5 -5
  62. package/dist/react/ui/alert.d.ts.map +1 -1
  63. package/dist/react/ui/aspect-ratio.d.ts +2 -2
  64. package/dist/react/ui/avatar.d.ts +5 -5
  65. package/dist/react/ui/avatar.d.ts.map +1 -1
  66. package/dist/react/ui/badge.d.ts +6 -6
  67. package/dist/react/ui/badge.d.ts.map +1 -1
  68. package/dist/react/ui/breadcrumb.d.ts +10 -10
  69. package/dist/react/ui/breadcrumb.d.ts.map +1 -1
  70. package/dist/react/ui/button-group.d.ts +6 -6
  71. package/dist/react/ui/button.d.ts +6 -6
  72. package/dist/react/ui/button.d.ts.map +1 -1
  73. package/dist/react/ui/calendar.d.ts +6 -6
  74. package/dist/react/ui/calendar.d.ts.map +1 -1
  75. package/dist/react/ui/calendar.js +3 -3
  76. package/dist/react/ui/calendar.js.map +1 -1
  77. package/dist/react/ui/card.d.ts +9 -9
  78. package/dist/react/ui/card.d.ts.map +1 -1
  79. package/dist/react/ui/carousel.d.ts +7 -7
  80. package/dist/react/ui/carousel.d.ts.map +1 -1
  81. package/dist/react/ui/carousel.js +11 -11
  82. package/dist/react/ui/carousel.js.map +1 -1
  83. package/dist/react/ui/chart.d.ts +52 -16
  84. package/dist/react/ui/chart.d.ts.map +1 -1
  85. package/dist/react/ui/chart.js +23 -7
  86. package/dist/react/ui/chart.js.map +1 -1
  87. package/dist/react/ui/checkbox.d.ts +3 -3
  88. package/dist/react/ui/checkbox.d.ts.map +1 -1
  89. package/dist/react/ui/checkbox.js +1 -1
  90. package/dist/react/ui/checkbox.js.map +1 -1
  91. package/dist/react/ui/collapsible.d.ts +4 -4
  92. package/dist/react/ui/command.d.ts +12 -12
  93. package/dist/react/ui/command.d.ts.map +1 -1
  94. package/dist/react/ui/context-menu.d.ts +21 -20
  95. package/dist/react/ui/context-menu.d.ts.map +1 -1
  96. package/dist/react/ui/context-menu.js +11 -6
  97. package/dist/react/ui/context-menu.js.map +1 -1
  98. package/dist/react/ui/dialog.d.ts +14 -13
  99. package/dist/react/ui/dialog.d.ts.map +1 -1
  100. package/dist/react/ui/dialog.js +3 -1
  101. package/dist/react/ui/dialog.js.map +1 -1
  102. package/dist/react/ui/drawer.d.ts +13 -12
  103. package/dist/react/ui/drawer.d.ts.map +1 -1
  104. package/dist/react/ui/drawer.js +3 -1
  105. package/dist/react/ui/drawer.js.map +1 -1
  106. package/dist/react/ui/dropdown-menu.d.ts +21 -20
  107. package/dist/react/ui/dropdown-menu.d.ts.map +1 -1
  108. package/dist/react/ui/dropdown-menu.js +12 -7
  109. package/dist/react/ui/dropdown-menu.js.map +1 -1
  110. package/dist/react/ui/empty.d.ts +7 -7
  111. package/dist/react/ui/field.d.ts +11 -11
  112. package/dist/react/ui/form.d.ts +9 -9
  113. package/dist/react/ui/form.d.ts.map +1 -1
  114. package/dist/react/ui/form.js +6 -6
  115. package/dist/react/ui/form.js.map +1 -1
  116. package/dist/react/ui/hover-card.d.ts +5 -5
  117. package/dist/react/ui/hover-card.d.ts.map +1 -1
  118. package/dist/react/ui/hover-card.js +2 -0
  119. package/dist/react/ui/hover-card.js.map +1 -1
  120. package/dist/react/ui/input-group.d.ts +11 -11
  121. package/dist/react/ui/input-group.d.ts.map +1 -1
  122. package/dist/react/ui/input-otp.d.ts +8 -8
  123. package/dist/react/ui/input-otp.d.ts.map +1 -1
  124. package/dist/react/ui/input-otp.js +2 -2
  125. package/dist/react/ui/input-otp.js.map +1 -1
  126. package/dist/react/ui/input.d.ts +3 -3
  127. package/dist/react/ui/input.d.ts.map +1 -1
  128. package/dist/react/ui/item.d.ts +16 -16
  129. package/dist/react/ui/item.d.ts.map +1 -1
  130. package/dist/react/ui/kbd.d.ts +3 -3
  131. package/dist/react/ui/label.d.ts +3 -3
  132. package/dist/react/ui/label.d.ts.map +1 -1
  133. package/dist/react/ui/menubar.d.ts +22 -21
  134. package/dist/react/ui/menubar.d.ts.map +1 -1
  135. package/dist/react/ui/menubar.js +3 -1
  136. package/dist/react/ui/menubar.js.map +1 -1
  137. package/dist/react/ui/navigation-menu.d.ts +11 -11
  138. package/dist/react/ui/navigation-menu.d.ts.map +1 -1
  139. package/dist/react/ui/pagination.d.ts +10 -10
  140. package/dist/react/ui/pagination.d.ts.map +1 -1
  141. package/dist/react/ui/popover.d.ts +6 -6
  142. package/dist/react/ui/popover.d.ts.map +1 -1
  143. package/dist/react/ui/popover.js +11 -7
  144. package/dist/react/ui/popover.js.map +1 -1
  145. package/dist/react/ui/progress.d.ts +3 -3
  146. package/dist/react/ui/progress.d.ts.map +1 -1
  147. package/dist/react/ui/radio-group.d.ts +4 -4
  148. package/dist/react/ui/radio-group.d.ts.map +1 -1
  149. package/dist/react/ui/resizable.d.ts +6 -6
  150. package/dist/react/ui/resizable.d.ts.map +1 -1
  151. package/dist/react/ui/scroll-area.d.ts +4 -4
  152. package/dist/react/ui/scroll-area.d.ts.map +1 -1
  153. package/dist/react/ui/select.d.ts +13 -13
  154. package/dist/react/ui/select.d.ts.map +1 -1
  155. package/dist/react/ui/select.js +19 -15
  156. package/dist/react/ui/select.js.map +1 -1
  157. package/dist/react/ui/separator.d.ts +3 -3
  158. package/dist/react/ui/separator.d.ts.map +1 -1
  159. package/dist/react/ui/sheet.d.ts +11 -11
  160. package/dist/react/ui/sheet.d.ts.map +1 -1
  161. package/dist/react/ui/sheet.js +3 -1
  162. package/dist/react/ui/sheet.js.map +1 -1
  163. package/dist/react/ui/sidebar.d.ts +34 -34
  164. package/dist/react/ui/sidebar.d.ts.map +1 -1
  165. package/dist/react/ui/sidebar.js +10 -10
  166. package/dist/react/ui/sidebar.js.map +1 -1
  167. package/dist/react/ui/skeleton.d.ts +2 -2
  168. package/dist/react/ui/slider.d.ts +3 -3
  169. package/dist/react/ui/slider.d.ts.map +1 -1
  170. package/dist/react/ui/slider.js +2 -2
  171. package/dist/react/ui/slider.js.map +1 -1
  172. package/dist/react/ui/sonner.d.ts +2 -2
  173. package/dist/react/ui/spinner.d.ts +2 -2
  174. package/dist/react/ui/switch.d.ts +3 -3
  175. package/dist/react/ui/switch.d.ts.map +1 -1
  176. package/dist/react/ui/table.d.ts +10 -10
  177. package/dist/react/ui/table.d.ts.map +1 -1
  178. package/dist/react/ui/tabs.d.ts +6 -6
  179. package/dist/react/ui/tabs.d.ts.map +1 -1
  180. package/dist/react/ui/textarea.d.ts +3 -3
  181. package/dist/react/ui/textarea.d.ts.map +1 -1
  182. package/dist/react/ui/toggle-group.d.ts +5 -5
  183. package/dist/react/ui/toggle-group.d.ts.map +1 -1
  184. package/dist/react/ui/toggle-group.js +3 -3
  185. package/dist/react/ui/toggle-group.js.map +1 -1
  186. package/dist/react/ui/toggle.d.ts +3 -3
  187. package/dist/react/ui/toggle.d.ts.map +1 -1
  188. package/dist/react/ui/tooltip.d.ts +6 -6
  189. package/dist/react/ui/tooltip.d.ts.map +1 -1
  190. package/dist/react/ui/tooltip.js +11 -7
  191. package/dist/react/ui/tooltip.js.map +1 -1
  192. package/dist/shared/src/sql/helpers.js.map +1 -1
  193. package/llms.txt +89 -12
  194. package/package.json +1 -1
@@ -40,12 +40,13 @@ function resolveFormat(format, parameters) {
40
40
  * ```
41
41
  */
42
42
  function useChartData(options) {
43
- const { queryKey, parameters, format = "auto", transformer } = options;
43
+ const { queryKey, parameters, format = "auto", transformer, asUser = false } = options;
44
44
  const resolvedFormat = useMemo(() => resolveFormat(format, parameters), [format, parameters]);
45
45
  const isArrowFormat = resolvedFormat === "ARROW";
46
46
  const { data: rawData, loading, error } = useAnalyticsQuery(queryKey, parameters, {
47
47
  autoStart: true,
48
- format: resolvedFormat
48
+ format: resolvedFormat,
49
+ asUser
49
50
  });
50
51
  const processedData = useMemo(() => {
51
52
  if (!rawData) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"use-chart-data.js","names":[],"sources":["../../../src/react/hooks/use-chart-data.ts"],"sourcesContent":["import type { Table } from \"apache-arrow\";\nimport { useMemo } from \"react\";\nimport type { ChartData, DataFormat } from \"../charts/types\";\nimport { useAnalyticsQuery } from \"./use-analytics-query\";\n\n/** Threshold for auto-selecting Arrow format (row count hint) */\nconst ARROW_THRESHOLD = 500;\n\n// ============================================================================\n// Hook Options & Result Types\n// ============================================================================\n\nexport interface UseChartDataOptions {\n /** Analytics query key */\n queryKey: string;\n /** Query parameters */\n parameters?: Record<string, unknown>;\n /**\n * Data format preference\n * - \"json\": Force JSON format\n * - \"arrow\": Force Arrow format\n * - \"auto\": Auto-select based on heuristics\n * @default \"auto\"\n */\n format?: DataFormat;\n /** Transform data after fetching */\n transformer?: <T>(data: T) => T;\n}\n\nexport interface UseChartDataResult {\n /** The fetched data (Arrow Table or JSON array) */\n data: ChartData | null;\n /** Whether the data is in Arrow format */\n isArrow: boolean;\n /** Loading state */\n loading: boolean;\n /** Error message if any */\n error: string | null;\n /** Whether the data is empty */\n isEmpty: boolean;\n}\n\n// ============================================================================\n// Format Resolution\n// ============================================================================\n\n/**\n * Resolves the data format based on hints and preferences\n */\nfunction resolveFormat(\n format: DataFormat,\n parameters?: Record<string, unknown>,\n): \"JSON\" | \"ARROW\" {\n // Explicit format selection\n if (format === \"json\") return \"JSON\";\n if (format === \"arrow\") return \"ARROW\";\n\n // Auto-selection heuristics\n if (format === \"auto\") {\n // Check for explicit hint in parameters\n if (parameters?._preferArrow === true) return \"ARROW\";\n if (parameters?._preferJson === true) return \"JSON\";\n\n // Check limit parameter as data size hint\n const limit = parameters?.limit;\n if (typeof limit === \"number\" && limit > ARROW_THRESHOLD) {\n return \"ARROW\";\n }\n\n // Check for date range queries (often large)\n if (parameters?.startDate && parameters?.endDate) {\n return \"ARROW\";\n }\n\n return \"JSON\";\n }\n\n return \"JSON\";\n}\n\n// ============================================================================\n// Main Hook\n// ============================================================================\n\n/**\n * Hook for fetching chart data in either JSON or Arrow format.\n * Automatically selects the best format based on query hints.\n *\n * @example\n * ```tsx\n * // Auto-select format\n * const { data, isArrow, loading } = useChartData({\n * queryKey: \"spend_data\",\n * parameters: { limit: 1000 }\n * });\n *\n * // Force Arrow format\n * const { data } = useChartData({\n * queryKey: \"big_query\",\n * format: \"arrow\"\n * });\n * ```\n */\nexport function useChartData(options: UseChartDataOptions): UseChartDataResult {\n const { queryKey, parameters, format = \"auto\", transformer } = options;\n\n // Resolve the format to use\n const resolvedFormat = useMemo(\n () => resolveFormat(format, parameters),\n [format, parameters],\n );\n\n const isArrowFormat = resolvedFormat === \"ARROW\";\n\n // Fetch data using the analytics query hook\n const {\n data: rawData,\n loading,\n error,\n } = useAnalyticsQuery(queryKey, parameters, {\n autoStart: true,\n format: resolvedFormat,\n });\n\n // Process and transform data\n const processedData = useMemo(() => {\n if (!rawData) return null;\n\n // Apply transformer if provided\n if (transformer) {\n try {\n return transformer(rawData);\n } catch (err) {\n console.error(\"[useChartData] Transformer error:\", err);\n return rawData;\n }\n }\n\n return rawData;\n }, [rawData, transformer]);\n\n // Determine if data is empty\n const isEmpty = useMemo(() => {\n if (!processedData) return true;\n\n // Arrow Table - check using duck typing\n if (\n typeof processedData === \"object\" &&\n \"numRows\" in processedData &&\n typeof (processedData as Table).numRows === \"number\"\n ) {\n return (processedData as Table).numRows === 0;\n }\n\n // JSON Array\n if (Array.isArray(processedData)) {\n return processedData.length === 0;\n }\n\n return true;\n }, [processedData]);\n\n // Detect actual data type (may differ from requested if server doesn't support format)\n const isArrow = useMemo(() => {\n if (!processedData) return isArrowFormat;\n // Duck type check for Arrow Table\n return (\n typeof processedData === \"object\" &&\n processedData !== null &&\n \"schema\" in processedData &&\n \"numRows\" in processedData &&\n typeof (processedData as Table).getChild === \"function\"\n );\n }, [processedData, isArrowFormat]);\n\n return {\n data: processedData as ChartData | null,\n isArrow,\n loading,\n error,\n isEmpty,\n };\n}\n"],"mappings":";;;;;AAMA,MAAM,kBAAkB;;;;AA2CxB,SAAS,cACP,QACA,YACkB;AAElB,KAAI,WAAW,OAAQ,QAAO;AAC9B,KAAI,WAAW,QAAS,QAAO;AAG/B,KAAI,WAAW,QAAQ;AAErB,MAAI,YAAY,iBAAiB,KAAM,QAAO;AAC9C,MAAI,YAAY,gBAAgB,KAAM,QAAO;EAG7C,MAAM,QAAQ,YAAY;AAC1B,MAAI,OAAO,UAAU,YAAY,QAAQ,gBACvC,QAAO;AAIT,MAAI,YAAY,aAAa,YAAY,QACvC,QAAO;AAGT,SAAO;;AAGT,QAAO;;;;;;;;;;;;;;;;;;;;;AA0BT,SAAgB,aAAa,SAAkD;CAC7E,MAAM,EAAE,UAAU,YAAY,SAAS,QAAQ,gBAAgB;CAG/D,MAAM,iBAAiB,cACf,cAAc,QAAQ,WAAW,EACvC,CAAC,QAAQ,WAAW,CACrB;CAED,MAAM,gBAAgB,mBAAmB;CAGzC,MAAM,EACJ,MAAM,SACN,SACA,UACE,kBAAkB,UAAU,YAAY;EAC1C,WAAW;EACX,QAAQ;EACT,CAAC;CAGF,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,QAAS,QAAO;AAGrB,MAAI,YACF,KAAI;AACF,UAAO,YAAY,QAAQ;WACpB,KAAK;AACZ,WAAQ,MAAM,qCAAqC,IAAI;AACvD,UAAO;;AAIX,SAAO;IACN,CAAC,SAAS,YAAY,CAAC;CAG1B,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,cAAe,QAAO;AAG3B,MACE,OAAO,kBAAkB,YACzB,aAAa,iBACb,OAAQ,cAAwB,YAAY,SAE5C,QAAQ,cAAwB,YAAY;AAI9C,MAAI,MAAM,QAAQ,cAAc,CAC9B,QAAO,cAAc,WAAW;AAGlC,SAAO;IACN,CAAC,cAAc,CAAC;AAenB,QAAO;EACL,MAAM;EACN,SAdc,cAAc;AAC5B,OAAI,CAAC,cAAe,QAAO;AAE3B,UACE,OAAO,kBAAkB,YACzB,kBAAkB,QAClB,YAAY,iBACZ,aAAa,iBACb,OAAQ,cAAwB,aAAa;KAE9C,CAAC,eAAe,cAAc,CAAC;EAKhC;EACA;EACA;EACD"}
1
+ {"version":3,"file":"use-chart-data.js","names":[],"sources":["../../../src/react/hooks/use-chart-data.ts"],"sourcesContent":["import type { Table } from \"apache-arrow\";\nimport { useMemo } from \"react\";\nimport type { ChartData, DataFormat } from \"../charts/types\";\nimport { useAnalyticsQuery } from \"./use-analytics-query\";\n\n/** Threshold for auto-selecting Arrow format (row count hint) */\nconst ARROW_THRESHOLD = 500;\n\n// ============================================================================\n// Hook Options & Result Types\n// ============================================================================\n\nexport interface UseChartDataOptions {\n /** Analytics query key */\n queryKey: string;\n /** Query parameters */\n parameters?: Record<string, unknown>;\n /**\n * Data format preference\n * - \"json\": Force JSON format\n * - \"arrow\": Force Arrow format\n * - \"auto\": Auto-select based on heuristics\n * @default \"auto\"\n */\n format?: DataFormat;\n /** Transform data after fetching */\n transformer?: <T>(data: T) => T;\n /** Whether to execute the query as the current user. @default false */\n asUser?: boolean;\n}\n\nexport interface UseChartDataResult {\n /** The fetched data (Arrow Table or JSON array) */\n data: ChartData | null;\n /** Whether the data is in Arrow format */\n isArrow: boolean;\n /** Loading state */\n loading: boolean;\n /** Error message if any */\n error: string | null;\n /** Whether the data is empty */\n isEmpty: boolean;\n}\n\n// ============================================================================\n// Format Resolution\n// ============================================================================\n\n/**\n * Resolves the data format based on hints and preferences\n */\nfunction resolveFormat(\n format: DataFormat,\n parameters?: Record<string, unknown>,\n): \"JSON\" | \"ARROW\" {\n // Explicit format selection\n if (format === \"json\") return \"JSON\";\n if (format === \"arrow\") return \"ARROW\";\n\n // Auto-selection heuristics\n if (format === \"auto\") {\n // Check for explicit hint in parameters\n if (parameters?._preferArrow === true) return \"ARROW\";\n if (parameters?._preferJson === true) return \"JSON\";\n\n // Check limit parameter as data size hint\n const limit = parameters?.limit;\n if (typeof limit === \"number\" && limit > ARROW_THRESHOLD) {\n return \"ARROW\";\n }\n\n // Check for date range queries (often large)\n if (parameters?.startDate && parameters?.endDate) {\n return \"ARROW\";\n }\n\n return \"JSON\";\n }\n\n return \"JSON\";\n}\n\n// ============================================================================\n// Main Hook\n// ============================================================================\n\n/**\n * Hook for fetching chart data in either JSON or Arrow format.\n * Automatically selects the best format based on query hints.\n *\n * @example\n * ```tsx\n * // Auto-select format\n * const { data, isArrow, loading } = useChartData({\n * queryKey: \"spend_data\",\n * parameters: { limit: 1000 }\n * });\n *\n * // Force Arrow format\n * const { data } = useChartData({\n * queryKey: \"big_query\",\n * format: \"arrow\"\n * });\n * ```\n */\nexport function useChartData(options: UseChartDataOptions): UseChartDataResult {\n const {\n queryKey,\n parameters,\n format = \"auto\",\n transformer,\n asUser = false,\n } = options;\n\n // Resolve the format to use\n const resolvedFormat = useMemo(\n () => resolveFormat(format, parameters),\n [format, parameters],\n );\n\n const isArrowFormat = resolvedFormat === \"ARROW\";\n\n // Fetch data using the analytics query hook\n const {\n data: rawData,\n loading,\n error,\n } = useAnalyticsQuery(queryKey, parameters, {\n autoStart: true,\n format: resolvedFormat,\n asUser,\n });\n\n // Process and transform data\n const processedData = useMemo(() => {\n if (!rawData) return null;\n\n // Apply transformer if provided\n if (transformer) {\n try {\n return transformer(rawData);\n } catch (err) {\n console.error(\"[useChartData] Transformer error:\", err);\n return rawData;\n }\n }\n\n return rawData;\n }, [rawData, transformer]);\n\n // Determine if data is empty\n const isEmpty = useMemo(() => {\n if (!processedData) return true;\n\n // Arrow Table - check using duck typing\n if (\n typeof processedData === \"object\" &&\n \"numRows\" in processedData &&\n typeof (processedData as Table).numRows === \"number\"\n ) {\n return (processedData as Table).numRows === 0;\n }\n\n // JSON Array\n if (Array.isArray(processedData)) {\n return processedData.length === 0;\n }\n\n return true;\n }, [processedData]);\n\n // Detect actual data type (may differ from requested if server doesn't support format)\n const isArrow = useMemo(() => {\n if (!processedData) return isArrowFormat;\n // Duck type check for Arrow Table\n return (\n typeof processedData === \"object\" &&\n processedData !== null &&\n \"schema\" in processedData &&\n \"numRows\" in processedData &&\n typeof (processedData as Table).getChild === \"function\"\n );\n }, [processedData, isArrowFormat]);\n\n return {\n data: processedData as ChartData | null,\n isArrow,\n loading,\n error,\n isEmpty,\n };\n}\n"],"mappings":";;;;;AAMA,MAAM,kBAAkB;;;;AA6CxB,SAAS,cACP,QACA,YACkB;AAElB,KAAI,WAAW,OAAQ,QAAO;AAC9B,KAAI,WAAW,QAAS,QAAO;AAG/B,KAAI,WAAW,QAAQ;AAErB,MAAI,YAAY,iBAAiB,KAAM,QAAO;AAC9C,MAAI,YAAY,gBAAgB,KAAM,QAAO;EAG7C,MAAM,QAAQ,YAAY;AAC1B,MAAI,OAAO,UAAU,YAAY,QAAQ,gBACvC,QAAO;AAIT,MAAI,YAAY,aAAa,YAAY,QACvC,QAAO;AAGT,SAAO;;AAGT,QAAO;;;;;;;;;;;;;;;;;;;;;AA0BT,SAAgB,aAAa,SAAkD;CAC7E,MAAM,EACJ,UACA,YACA,SAAS,QACT,aACA,SAAS,UACP;CAGJ,MAAM,iBAAiB,cACf,cAAc,QAAQ,WAAW,EACvC,CAAC,QAAQ,WAAW,CACrB;CAED,MAAM,gBAAgB,mBAAmB;CAGzC,MAAM,EACJ,MAAM,SACN,SACA,UACE,kBAAkB,UAAU,YAAY;EAC1C,WAAW;EACX,QAAQ;EACR;EACD,CAAC;CAGF,MAAM,gBAAgB,cAAc;AAClC,MAAI,CAAC,QAAS,QAAO;AAGrB,MAAI,YACF,KAAI;AACF,UAAO,YAAY,QAAQ;WACpB,KAAK;AACZ,WAAQ,MAAM,qCAAqC,IAAI;AACvD,UAAO;;AAIX,SAAO;IACN,CAAC,SAAS,YAAY,CAAC;CAG1B,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,cAAe,QAAO;AAG3B,MACE,OAAO,kBAAkB,YACzB,aAAa,iBACb,OAAQ,cAAwB,YAAY,SAE5C,QAAQ,cAAwB,YAAY;AAI9C,MAAI,MAAM,QAAQ,cAAc,CAC9B,QAAO,cAAc,WAAW;AAGlC,SAAO;IACN,CAAC,cAAc,CAAC;AAenB,QAAO;EACL,MAAM;EACN,SAdc,cAAc;AAC5B,OAAI,CAAC,cAAe,QAAO;AAE3B,UACE,OAAO,kBAAkB,YACzB,kBAAkB,QAClB,YAAY,iBACZ,aAAa,iBACb,OAAQ,cAAwB,aAAa;KAE9C,CAAC,eAAe,cAAc,CAAC;EAKhC;EACA;EACA;EACD"}
@@ -1,10 +1,10 @@
1
- import * as React from "react";
1
+ import * as React$1 from "react";
2
2
 
3
3
  //#region src/react/hooks/use-mobile.ts
4
4
  const MOBILE_BREAKPOINT = 768;
5
5
  function useIsMobile() {
6
- const [isMobile, setIsMobile] = React.useState(void 0);
7
- React.useEffect(() => {
6
+ const [isMobile, setIsMobile] = React$1.useState(void 0);
7
+ React$1.useEffect(() => {
8
8
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
9
9
  const onChange = () => {
10
10
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -1 +1 @@
1
- {"version":3,"file":"use-mobile.js","names":[],"sources":["../../../src/react/hooks/use-mobile.ts"],"sourcesContent":["import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n"],"mappings":";;;AAEA,MAAM,oBAAoB;AAE1B,SAAgB,cAAc;CAC5B,MAAM,CAAC,UAAU,eAAe,MAAM,SACpC,OACD;AAED,OAAM,gBAAgB;EACpB,MAAM,MAAM,OAAO,WAAW,eAAe,oBAAoB,EAAE,KAAK;EACxE,MAAM,iBAAiB;AACrB,eAAY,OAAO,aAAa,kBAAkB;;AAEpD,MAAI,iBAAiB,UAAU,SAAS;AACxC,cAAY,OAAO,aAAa,kBAAkB;AAClD,eAAa,IAAI,oBAAoB,UAAU,SAAS;IACvD,EAAE,CAAC;AAEN,QAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"use-mobile.js","names":["React"],"sources":["../../../src/react/hooks/use-mobile.ts"],"sourcesContent":["import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n"],"mappings":";;;AAEA,MAAM,oBAAoB;AAE1B,SAAgB,cAAc;CAC5B,MAAM,CAAC,UAAU,eAAeA,QAAM,SACpC,OACD;AAED,SAAM,gBAAgB;EACpB,MAAM,MAAM,OAAO,WAAW,eAAe,oBAAoB,EAAE,KAAK;EACxE,MAAM,iBAAiB;AACrB,eAAY,OAAO,aAAa,kBAAkB;;AAEpD,MAAI,iBAAiB,UAAU,SAAS;AACxC,cAAY,OAAO,aAAa,kBAAkB;AAClD,eAAa,IAAI,oBAAoB,UAAU,SAAS;IACvD,EAAE,CAAC;AAEN,QAAO,CAAC,CAAC"}
@@ -18,6 +18,7 @@ import { createTimeSeriesData, formatLabel, sortTimeSeriesAscending, toChartArra
18
18
  import { CartesianContext, HeatmapContext, OptionBuilderContext, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption } from "./charts/options.js";
19
19
  import { AnalyticsFormat, InferResultByFormat, InferRowType, PluginRegistry, QueryRegistry, TypedArrowTable, UseAnalyticsQueryOptions, UseAnalyticsQueryResult } from "./hooks/types.js";
20
20
  import { useAnalyticsQuery } from "./hooks/use-analytics-query.js";
21
+ import { PortalContainerContext, PortalContainerProvider, usePortalContainer, useResolvedPortalContainer } from "./portal-container-context.js";
21
22
  import { DataTable } from "./table/data-table.js";
22
23
  import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./ui/accordion.js";
23
24
  import { Alert, AlertDescription, AlertTitle } from "./ui/alert.js";
@@ -72,4 +73,5 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs.js";
72
73
  import { Textarea } from "./ui/textarea.js";
73
74
  import { Toggle, toggleVariants } from "./ui/toggle.js";
74
75
  import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group.js";
75
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnalyticsFormat, AreaChart, AreaChartProps, AreaChartSpecificProps, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BarChartProps, BarChartSpecificProps, BaseChart, BaseChartProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartesianContext, ChartBaseProps, ChartColorPalette, ChartConfig, ChartContainer, ChartData, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartType, ChartWrapper, ChartWrapperProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataFormat, DataProps, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, DonutChartProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeatmapChart, HeatmapChartProps, HeatmapChartSpecificProps, HeatmapContext, HoverCard, HoverCardContent, HoverCardTrigger, InferResultByFormat, InferRowType, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, LineChartProps, LineChartSpecificProps, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NormalizedChartData, NormalizedChartDataBase, NormalizedHeatmapData, OptionBuilderContext, Orientation, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, PieChartProps, PieChartSpecificProps, PluginRegistry, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, QueryProps, QueryRegistry, RadarChart, RadarChartProps, RadarChartSpecificProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScatterChartProps, ScatterChartSpecificProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TypedArrowTable, UnifiedChartProps, UseAnalyticsQueryOptions, UseAnalyticsQueryResult, UseChartDataOptions, UseChartDataResult, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, createChart, createTimeSeriesData, formatLabel, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useSidebar, useThemeColors };
76
+ import { cn } from "./lib/utils.js";
77
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnalyticsFormat, AreaChart, AreaChartProps, AreaChartSpecificProps, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BarChartProps, BarChartSpecificProps, BaseChart, BaseChartProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartesianContext, ChartBaseProps, ChartColorPalette, ChartConfig, ChartContainer, ChartData, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartType, ChartWrapper, ChartWrapperProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataFormat, DataProps, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, DonutChartProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeatmapChart, HeatmapChartProps, HeatmapChartSpecificProps, HeatmapContext, HoverCard, HoverCardContent, HoverCardTrigger, InferResultByFormat, InferRowType, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, LineChartProps, LineChartSpecificProps, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NormalizedChartData, NormalizedChartDataBase, NormalizedHeatmapData, OptionBuilderContext, Orientation, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, PieChartProps, PieChartSpecificProps, PluginRegistry, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, QueryProps, QueryRegistry, RadarChart, RadarChartProps, RadarChartSpecificProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScatterChartProps, ScatterChartSpecificProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TypedArrowTable, UnifiedChartProps, UseAnalyticsQueryOptions, UseAnalyticsQueryResult, UseChartDataOptions, UseChartDataResult, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatLabel, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
@@ -19,6 +19,8 @@ import { RadarChart } from "./charts/radar/index.js";
19
19
  import { ScatterChart } from "./charts/scatter/index.js";
20
20
  import "./charts/index.js";
21
21
  import "./hooks/index.js";
22
+ import { PortalContainerContext, PortalContainerProvider, usePortalContainer, useResolvedPortalContainer } from "./portal-container-context.js";
23
+ import { cn } from "./lib/utils.js";
22
24
  import { Button, buttonVariants } from "./ui/button.js";
23
25
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./ui/dropdown-menu.js";
24
26
  import { Input } from "./ui/input.js";
@@ -76,4 +78,4 @@ import { Toggle, toggleVariants } from "./ui/toggle.js";
76
78
  import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group.js";
77
79
  import "./ui/index.js";
78
80
 
79
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BaseChart, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartWrapper, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeatmapChart, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadarChart, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, createChart, createTimeSeriesData, formatLabel, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useSidebar, useThemeColors };
81
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BaseChart, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartWrapper, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeatmapChart, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, RadarChart, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatLabel, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
@@ -0,0 +1,7 @@
1
+ import { ClassValue } from "clsx";
2
+
3
+ //#region src/react/lib/utils.d.ts
4
+ declare function cn(...inputs: ClassValue[]): string;
5
+ //#endregion
6
+ export { cn };
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../src/react/lib/utils.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,EAAA,YAAc"}
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/react/portal-container-context.d.ts
5
+
6
+ /**
7
+ * Context for providing a custom portal container.
8
+ * This is used when rendering components in isolated contexts like iframes or shadow DOM.
9
+ * Portal components (AlertDialog, ContextMenu, etc.) will use this container instead of document.body
10
+ */
11
+ declare const PortalContainerContext: React.Context<HTMLElement | null>;
12
+ declare function usePortalContainer(): HTMLElement | null;
13
+ /**
14
+ * Resolves the final portal container from explicit prop or context.
15
+ *
16
+ * This hook enables Portal components to work seamlessly in isolated rendering contexts
17
+ * (like iframes, shadow DOM, or isolated component previews) by accepting a container
18
+ * from either:
19
+ * 1. An explicit `container` prop (highest priority)
20
+ * 2. A `PortalContainerProvider` context (fallback)
21
+ * 3. undefined (lets Radix UI use document.body as default)
22
+ *
23
+ * @param containerProp - Optional explicit container element from props
24
+ * @returns The resolved container element to use for portal rendering
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * function MyPortal({ container, ...props }) {
29
+ * return (
30
+ * <RadixPortal container={useResolvedPortalContainer(container)} {...props}>
31
+ * <MyContent />
32
+ * </RadixPortal>
33
+ * );
34
+ * }
35
+ * ```
36
+ */
37
+ declare function useResolvedPortalContainer(containerProp?: Element | DocumentFragment | HTMLElement | null | undefined): Element | DocumentFragment | HTMLElement | null | undefined;
38
+ interface PortalContainerProviderProps {
39
+ container: HTMLElement | null;
40
+ children: React.ReactNode;
41
+ }
42
+ declare function PortalContainerProvider({
43
+ container,
44
+ children
45
+ }: PortalContainerProviderProps): react_jsx_runtime0.JSX.Element;
46
+ //#endregion
47
+ export { PortalContainerContext, PortalContainerProvider, usePortalContainer, useResolvedPortalContainer };
48
+ //# sourceMappingURL=portal-container-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-container-context.d.ts","names":[],"sources":["../../src/react/portal-container-context.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAQA;;AAAmC,cAAtB,sBAAsB,EAAA,KAAA,CAAA,OAAA,CAAA,WAAA,GAAA,IAAA,CAAA;AAAA,iBAEnB,kBAAA,CAAA,CAFmB,EAED,WAFC,GAAA,IAAA;;AAEnC;AA4BA;;;;;;;;;AAKC;;;;;AAOD;;;;;;;;iBAZgB,0BAAA,iBACE,UAAU,mBAAmB,iCAC5C,UAAU,mBAAmB;UAKtB,4BAAA;aACG;YACD,KAAA,CAAM;;iBAGF,uBAAA;;;GAGb,+BAA4B,kBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { createContext, useContext } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/react/portal-container-context.tsx
5
+ /**
6
+ * Context for providing a custom portal container.
7
+ * This is used when rendering components in isolated contexts like iframes or shadow DOM.
8
+ * Portal components (AlertDialog, ContextMenu, etc.) will use this container instead of document.body
9
+ */
10
+ const PortalContainerContext = createContext(null);
11
+ function usePortalContainer() {
12
+ return useContext(PortalContainerContext);
13
+ }
14
+ /**
15
+ * Resolves the final portal container from explicit prop or context.
16
+ *
17
+ * This hook enables Portal components to work seamlessly in isolated rendering contexts
18
+ * (like iframes, shadow DOM, or isolated component previews) by accepting a container
19
+ * from either:
20
+ * 1. An explicit `container` prop (highest priority)
21
+ * 2. A `PortalContainerProvider` context (fallback)
22
+ * 3. undefined (lets Radix UI use document.body as default)
23
+ *
24
+ * @param containerProp - Optional explicit container element from props
25
+ * @returns The resolved container element to use for portal rendering
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * function MyPortal({ container, ...props }) {
30
+ * return (
31
+ * <RadixPortal container={useResolvedPortalContainer(container)} {...props}>
32
+ * <MyContent />
33
+ * </RadixPortal>
34
+ * );
35
+ * }
36
+ * ```
37
+ */
38
+ function useResolvedPortalContainer(containerProp) {
39
+ const containerFromContext = usePortalContainer();
40
+ return containerProp ?? containerFromContext ?? void 0;
41
+ }
42
+ function PortalContainerProvider({ container, children }) {
43
+ return /* @__PURE__ */ jsx(PortalContainerContext.Provider, {
44
+ value: container,
45
+ children
46
+ });
47
+ }
48
+
49
+ //#endregion
50
+ export { PortalContainerContext, PortalContainerProvider, usePortalContainer, useResolvedPortalContainer };
51
+ //# sourceMappingURL=portal-container-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-container-context.js","names":[],"sources":["../../src/react/portal-container-context.tsx"],"sourcesContent":["import type React from \"react\";\nimport { createContext, useContext } from \"react\";\n\n/**\n * Context for providing a custom portal container.\n * This is used when rendering components in isolated contexts like iframes or shadow DOM.\n * Portal components (AlertDialog, ContextMenu, etc.) will use this container instead of document.body\n */\nexport const PortalContainerContext = createContext<HTMLElement | null>(null);\n\nexport function usePortalContainer() {\n return useContext(PortalContainerContext);\n}\n\n/**\n * Resolves the final portal container from explicit prop or context.\n *\n * This hook enables Portal components to work seamlessly in isolated rendering contexts\n * (like iframes, shadow DOM, or isolated component previews) by accepting a container\n * from either:\n * 1. An explicit `container` prop (highest priority)\n * 2. A `PortalContainerProvider` context (fallback)\n * 3. undefined (lets Radix UI use document.body as default)\n *\n * @param containerProp - Optional explicit container element from props\n * @returns The resolved container element to use for portal rendering\n *\n * @example\n * ```tsx\n * function MyPortal({ container, ...props }) {\n * return (\n * <RadixPortal container={useResolvedPortalContainer(container)} {...props}>\n * <MyContent />\n * </RadixPortal>\n * );\n * }\n * ```\n */\nexport function useResolvedPortalContainer(\n containerProp?: Element | DocumentFragment | HTMLElement | null | undefined,\n): Element | DocumentFragment | HTMLElement | null | undefined {\n const containerFromContext = usePortalContainer();\n return containerProp ?? containerFromContext ?? undefined;\n}\n\ninterface PortalContainerProviderProps {\n container: HTMLElement | null;\n children: React.ReactNode;\n}\n\nexport function PortalContainerProvider({\n container,\n children,\n}: PortalContainerProviderProps) {\n return (\n <PortalContainerContext.Provider value={container}>\n {children}\n </PortalContainerContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;AAQA,MAAa,yBAAyB,cAAkC,KAAK;AAE7E,SAAgB,qBAAqB;AACnC,QAAO,WAAW,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;AA2B3C,SAAgB,2BACd,eAC6D;CAC7D,MAAM,uBAAuB,oBAAoB;AACjD,QAAO,iBAAiB,wBAAwB;;AAQlD,SAAgB,wBAAwB,EACtC,WACA,YAC+B;AAC/B,QACE,oBAAC,uBAAuB;EAAS,OAAO;EACrC;GAC+B"}
@@ -1,5 +1,5 @@
1
1
  import { DataTableProps } from "./types.js";
2
- import * as react_jsx_runtime284 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/table/data-table.d.ts
5
5
 
@@ -41,7 +41,7 @@ import * as react_jsx_runtime284 from "react/jsx-runtime";
41
41
  * )}
42
42
  * </DataTable>
43
43
  */
44
- declare function DataTable(props: DataTableProps): react_jsx_runtime284.JSX.Element;
44
+ declare function DataTable(props: DataTableProps): react_jsx_runtime0.JSX.Element;
45
45
  //#endregion
46
46
  export { DataTable };
47
47
  //# sourceMappingURL=data-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.d.ts","names":[],"sources":["../../../src/react/table/data-table.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAmEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,SAAA,QAAiB,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"data-table.d.ts","names":[],"sources":["../../../src/react/table/data-table.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAmEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,SAAA,QAAiB,iBAAc,kBAAA,CAAA,GAAA,CAAA"}
@@ -29,6 +29,7 @@ const CHECKBOX_COLUMN_WIDTH = 40;
29
29
  * @param props.queryKey - The query key to fetch the data
30
30
  * @param props.parameters - The parameters to pass to the query
31
31
  * @param props.transformer - Optional function to transform raw data before creating table
32
+ * @param props.asUser - Whether to execute the query as a user. Default is false.
32
33
  * @param props.children - Render function that receives the TanStack Table instance
33
34
  * @param props.className - Optional CSS class name for the wrapper
34
35
  * @param props.ariaLabel - Optional accessibility label
@@ -37,12 +38,12 @@ const CHECKBOX_COLUMN_WIDTH = 40;
37
38
  * @returns The rendered table with state management
38
39
  */
39
40
  function TableWrapper(props) {
40
- const { queryKey, parameters, transformer, children, className, ariaLabel, testId, enableRowSelection = false, onRowSelectionChange, pageSize = 10 } = props;
41
+ const { queryKey, parameters, transformer, asUser = false, children, className, ariaLabel, testId, enableRowSelection = false, onRowSelectionChange, pageSize = 10 } = props;
41
42
  const [sorting, setSorting] = useState([]);
42
43
  const [columnFilters, setColumnFilters] = useState([]);
43
44
  const [columnVisibility, setColumnVisibility] = useState({});
44
45
  const [rowSelection, setRowSelection] = useState({});
45
- const { data, loading, error } = useAnalyticsQuery(queryKey, parameters);
46
+ const { data, loading, error } = useAnalyticsQuery(queryKey, parameters, { asUser });
46
47
  useEffect(() => {
47
48
  if (onRowSelectionChange && enableRowSelection) onRowSelectionChange(rowSelection);
48
49
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"table-wrapper.js","names":["table"],"sources":["../../../src/react/table/table-wrapper.tsx"],"sourcesContent":["import {\n type Column,\n type ColumnFiltersState,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\nimport { ArrowUpDown } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAnalyticsQuery } from \"..\";\nimport {\n formatChartValue,\n formatFieldLabel,\n SAFE_KEY_REGEX,\n} from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport { Checkbox } from \"../ui/checkbox\";\nimport { EmptyState } from \"./empty\";\nimport { ErrorState } from \"./error\";\nimport { LoadingSkeleton } from \"./loading\";\nimport type { TableWrapperProps } from \"./types\";\n\nconst CHECKBOX_COLUMN_WIDTH = 40;\n\n/**\n * Wrapper component for tables with automatic data fetching and state management\n * This component handles:\n * - Data fetching via useAnalyticsQuery\n * - Loading, error, and empty states with proper UI components\n * - Data transformation (optional)\n * - Dynamic column generation from data structure\n * - TanStack Table instance creation with all features (sorting, filtering, pagination, etc.)\n *\n * @template TRaw - The raw data type returned by the analytics query\n * @template TProcessed - The processed data type after transformation\n *\n * @param props - Props for the TableWrapper component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query\n * @param props.transformer - Optional function to transform raw data before creating table\n * @param props.children - Render function that receives the TanStack Table instance\n * @param props.className - Optional CSS class name for the wrapper\n * @param props.ariaLabel - Optional accessibility label\n * @param props.testId - Optional test ID for testing\n *\n * @returns The rendered table with state management\n */\nexport function TableWrapper<TRaw = any, TProcessed = any>(\n props: TableWrapperProps<TRaw, TProcessed>,\n) {\n const {\n queryKey,\n parameters,\n transformer,\n children,\n className,\n ariaLabel,\n testId,\n enableRowSelection = false,\n onRowSelectionChange,\n pageSize = 10,\n } = props;\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n\n const { data, loading, error } = useAnalyticsQuery<TRaw[]>(\n queryKey,\n parameters,\n );\n\n useEffect(() => {\n if (onRowSelectionChange && enableRowSelection) {\n onRowSelectionChange(rowSelection);\n }\n }, [rowSelection, onRowSelectionChange, enableRowSelection]);\n\n const hasData = data && data.length > 0;\n\n const processedData = hasData\n ? transformer\n ? transformer(data)\n : (data as unknown as TProcessed[])\n : [];\n\n const tableColumns = useMemo(() => {\n if (!hasData) return [];\n\n if (!processedData[0] || typeof processedData[0] !== \"object\") {\n console.warn(\"Invalid data format for DataTable\");\n return [];\n }\n\n const dataColumns = Object.keys(processedData[0] as object)\n .filter((key) => SAFE_KEY_REGEX.test(key))\n .map((key) => {\n const formattedLabel = formatFieldLabel(key);\n return {\n accessorKey: key,\n header: ({ column }: { column: Column<TProcessed> }) => {\n return (\n <Button\n variant=\"ghost\"\n onClick={() =>\n column.toggleSorting(column.getIsSorted() === \"asc\")\n }\n className=\"h-8 px-2\"\n >\n {formattedLabel}\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }: { row: Row<TProcessed> }) => {\n const value = row.getValue(key);\n if (typeof value === \"number\" || Number.isFinite(Number(value))) {\n return (\n <div className=\"text-right font-mono\">\n {formatChartValue(Number(value), key)}\n </div>\n );\n }\n return <div>{String(value)}</div>;\n },\n };\n });\n\n if (enableRowSelection) {\n return [\n {\n id: \"select\",\n maxSize: CHECKBOX_COLUMN_WIDTH,\n minSize: CHECKBOX_COLUMN_WIDTH,\n header: ({ table }: { table: Table<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) =>\n table.toggleAllPageRowsSelected(!!value)\n }\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }: { row: Row<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n ),\n enableSorting: false,\n enableHiding: false,\n },\n ...dataColumns,\n ];\n }\n\n return dataColumns;\n }, [hasData, processedData, enableRowSelection]);\n\n const table = useReactTable({\n data: processedData,\n columns: tableColumns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n initialState: {\n pagination: {\n pageSize: pageSize,\n },\n },\n });\n\n if (loading) return <LoadingSkeleton />;\n if (error)\n return (\n <ErrorState error={typeof error === \"string\" ? error : \"Unknown error\"} />\n );\n\n if (!hasData) return <EmptyState />;\n\n return (\n <section className={className} aria-label={ariaLabel} data-testid={testId}>\n {children(table)}\n </section>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-wrapper.js","names":["table"],"sources":["../../../src/react/table/table-wrapper.tsx"],"sourcesContent":["import {\n type Column,\n type ColumnFiltersState,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\nimport { ArrowUpDown } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAnalyticsQuery } from \"..\";\nimport {\n formatChartValue,\n formatFieldLabel,\n SAFE_KEY_REGEX,\n} from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport { Checkbox } from \"../ui/checkbox\";\nimport { EmptyState } from \"./empty\";\nimport { ErrorState } from \"./error\";\nimport { LoadingSkeleton } from \"./loading\";\nimport type { TableWrapperProps } from \"./types\";\n\nconst CHECKBOX_COLUMN_WIDTH = 40;\n\n/**\n * Wrapper component for tables with automatic data fetching and state management\n * This component handles:\n * - Data fetching via useAnalyticsQuery\n * - Loading, error, and empty states with proper UI components\n * - Data transformation (optional)\n * - Dynamic column generation from data structure\n * - TanStack Table instance creation with all features (sorting, filtering, pagination, etc.)\n *\n * @template TRaw - The raw data type returned by the analytics query\n * @template TProcessed - The processed data type after transformation\n *\n * @param props - Props for the TableWrapper component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query\n * @param props.transformer - Optional function to transform raw data before creating table\n * @param props.asUser - Whether to execute the query as a user. Default is false.\n * @param props.children - Render function that receives the TanStack Table instance\n * @param props.className - Optional CSS class name for the wrapper\n * @param props.ariaLabel - Optional accessibility label\n * @param props.testId - Optional test ID for testing\n *\n * @returns The rendered table with state management\n */\nexport function TableWrapper<TRaw = any, TProcessed = any>(\n props: TableWrapperProps<TRaw, TProcessed>,\n) {\n const {\n queryKey,\n parameters,\n transformer,\n asUser = false,\n children,\n className,\n ariaLabel,\n testId,\n enableRowSelection = false,\n onRowSelectionChange,\n pageSize = 10,\n } = props;\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n\n const { data, loading, error } = useAnalyticsQuery<TRaw[]>(\n queryKey,\n parameters,\n { asUser },\n );\n\n useEffect(() => {\n if (onRowSelectionChange && enableRowSelection) {\n onRowSelectionChange(rowSelection);\n }\n }, [rowSelection, onRowSelectionChange, enableRowSelection]);\n\n const hasData = data && data.length > 0;\n\n const processedData = hasData\n ? transformer\n ? transformer(data)\n : (data as unknown as TProcessed[])\n : [];\n\n const tableColumns = useMemo(() => {\n if (!hasData) return [];\n\n if (!processedData[0] || typeof processedData[0] !== \"object\") {\n console.warn(\"Invalid data format for DataTable\");\n return [];\n }\n\n const dataColumns = Object.keys(processedData[0] as object)\n .filter((key) => SAFE_KEY_REGEX.test(key))\n .map((key) => {\n const formattedLabel = formatFieldLabel(key);\n return {\n accessorKey: key,\n header: ({ column }: { column: Column<TProcessed> }) => {\n return (\n <Button\n variant=\"ghost\"\n onClick={() =>\n column.toggleSorting(column.getIsSorted() === \"asc\")\n }\n className=\"h-8 px-2\"\n >\n {formattedLabel}\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }: { row: Row<TProcessed> }) => {\n const value = row.getValue(key);\n if (typeof value === \"number\" || Number.isFinite(Number(value))) {\n return (\n <div className=\"text-right font-mono\">\n {formatChartValue(Number(value), key)}\n </div>\n );\n }\n return <div>{String(value)}</div>;\n },\n };\n });\n\n if (enableRowSelection) {\n return [\n {\n id: \"select\",\n maxSize: CHECKBOX_COLUMN_WIDTH,\n minSize: CHECKBOX_COLUMN_WIDTH,\n header: ({ table }: { table: Table<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) =>\n table.toggleAllPageRowsSelected(!!value)\n }\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }: { row: Row<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n ),\n enableSorting: false,\n enableHiding: false,\n },\n ...dataColumns,\n ];\n }\n\n return dataColumns;\n }, [hasData, processedData, enableRowSelection]);\n\n const table = useReactTable({\n data: processedData,\n columns: tableColumns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n initialState: {\n pagination: {\n pageSize: pageSize,\n },\n },\n });\n\n if (loading) return <LoadingSkeleton />;\n if (error)\n return (\n <ErrorState error={typeof error === \"string\" ? error : \"Unknown error\"} />\n );\n\n if (!hasData) return <EmptyState />;\n\n return (\n <section className={className} aria-label={ariaLabel} data-testid={testId}>\n {children(table)}\n </section>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/react/table/types.ts"],"sourcesContent":[],"mappings":";;;;;UA+BiB,cAAA;;;;cAIH;;;;;;;;WAQH;;;;;;;;;;wCAU6B;;qBAEnB,eAAe,KAAA,CAAM;;;;;;;UAQzB,eAAA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/react/table/types.ts"],"sourcesContent":[],"mappings":";;;;;UAiCiB,cAAA;;;;cAIH;;;;;;;;WAQH;;;;;;;;;;wCAU6B;;qBAEnB,eAAe,KAAA,CAAM;;;;;;;UAQzB,eAAA"}
@@ -1,25 +1,25 @@
1
- import * as React from "react";
2
- import * as react_jsx_runtime8 from "react/jsx-runtime";
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
4
4
 
5
5
  //#region src/react/ui/accordion.d.ts
6
6
  declare function Accordion({
7
7
  ...props
8
- }: React.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime8.JSX.Element;
8
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime4.JSX.Element;
9
9
  declare function AccordionItem({
10
10
  className,
11
11
  ...props
12
- }: React.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime8.JSX.Element;
12
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime4.JSX.Element;
13
13
  declare function AccordionTrigger({
14
14
  className,
15
15
  children,
16
16
  ...props
17
- }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime8.JSX.Element;
17
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime4.JSX.Element;
18
18
  declare function AccordionContent({
19
19
  className,
20
20
  children,
21
21
  ...props
22
- }: React.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime8.JSX.Element;
22
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime4.JSX.Element;
23
23
  //#endregion
24
24
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
25
25
  //# sourceMappingURL=accordion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,SAAA;;GAEN,KAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAI9C,aAAA;;;GAGN,KAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAU9C,gBAAA;;;;GAIN,KAAA,CAAM,sBAAsB,kBAAA,CAAmB,WAAQ,kBAAA,CAAA,GAAA,CAAA;AA5BM,iBA8CvD,gBAAA,CAzCS;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6Cf,KAAA,CAAM,cA7CS,CAAA,OA6Ca,kBAAA,CAAmB,OA7ChC,CAAA,CAAA,EA6CwC,kBAAA,CAAA,GAAA,CAAA,OA7CxC"}
1
+ {"version":3,"file":"accordion.d.ts","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,SAAA;;GAEN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAI9C,aAAA;;;GAGN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,kBAAA,CAAA,GAAA,CAAA;iBAU9C,gBAAA;;;;GAIN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,WAAQ,kBAAA,CAAA,GAAA,CAAA;AA5BM,iBA8CvD,gBAAA,CAzCS;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6Cf,OAAA,CAAM,cA7CS,CAAA,OA6Ca,kBAAA,CAAmB,OA7ChC,CAAA,CAAA,EA6CwC,kBAAA,CAAA,GAAA,CAAA,OA7CxC"}
@@ -1,49 +1,50 @@
1
- import * as React from "react";
2
- import * as react_jsx_runtime15 from "react/jsx-runtime";
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
3
3
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
4
4
 
5
5
  //#region src/react/ui/alert-dialog.d.ts
6
6
  declare function AlertDialog({
7
7
  ...props
8
- }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime15.JSX.Element;
8
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime11.JSX.Element;
9
9
  declare function AlertDialogTrigger({
10
10
  ...props
11
- }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime15.JSX.Element;
11
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime11.JSX.Element;
12
12
  declare function AlertDialogPortal({
13
+ container,
13
14
  ...props
14
- }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime15.JSX.Element;
15
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime11.JSX.Element;
15
16
  declare function AlertDialogOverlay({
16
17
  className,
17
18
  ...props
18
- }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime15.JSX.Element;
19
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime11.JSX.Element;
19
20
  declare function AlertDialogContent({
20
21
  className,
21
22
  ...props
22
- }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime15.JSX.Element;
23
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime11.JSX.Element;
23
24
  declare function AlertDialogHeader({
24
25
  className,
25
26
  ...props
26
- }: React.ComponentProps<"div">): react_jsx_runtime15.JSX.Element;
27
+ }: React$1.ComponentProps<"div">): react_jsx_runtime11.JSX.Element;
27
28
  declare function AlertDialogFooter({
28
29
  className,
29
30
  ...props
30
- }: React.ComponentProps<"div">): react_jsx_runtime15.JSX.Element;
31
+ }: React$1.ComponentProps<"div">): react_jsx_runtime11.JSX.Element;
31
32
  declare function AlertDialogTitle({
32
33
  className,
33
34
  ...props
34
- }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime15.JSX.Element;
35
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime11.JSX.Element;
35
36
  declare function AlertDialogDescription({
36
37
  className,
37
38
  ...props
38
- }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime15.JSX.Element;
39
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime11.JSX.Element;
39
40
  declare function AlertDialogAction({
40
41
  className,
41
42
  ...props
42
- }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime15.JSX.Element;
43
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime11.JSX.Element;
43
44
  declare function AlertDialogCancel({
44
45
  className,
45
46
  ...props
46
- }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime15.JSX.Element;
47
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime11.JSX.Element;
47
48
  //#endregion
48
49
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
49
50
  //# sourceMappingURL=alert-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,WAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAIhD,kBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,WAAQ,mBAAA,CAAA,GAAA,CAAA;iBAMnD,iBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,UAAO,mBAAA,CAAA,GAAA,CAAA;AArBU,iBA2B5D,kBAAA,CAtBW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyBjB,KAAA,CAAM,cAzBW,CAAA,OAyBW,oBAAA,CAAqB,OAzBhC,CAAA,CAAA,EAyBwC,mBAAA,CAAA,GAAA,CAAA,OAzBxC;iBAsCX,kBAAA,CAtCW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyCjB,KAAA,CAAM,cAzCW,CAAA,OAyCW,oBAAA,CAAqB,OAzChC,CAAA,CAAA,EAyCwC,mBAAA,CAAA,GAAA,CAAA,OAzCxC;iBAyDX,iBAAA,CAvD2C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0DjD,KAAA,CAAM,cA1D2C,CAAA,KAAA,CAAA,CAAA,EA0DtB,mBAAA,CAAA,GAAA,CAAA,OA1DsB;iBAoE3C,iBAAA,CApEA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuEN,KAAA,CAAM,cAvEA,CAAA,KAAA,CAAA,CAAA,EAuEqB,mBAAA,CAAA,GAAA,CAAA,OAvErB;iBAoFA,gBAAA,CApFgD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuFtD,KAAA,CAAM,cAvFgD,CAAA,OAuF1B,oBAAA,CAAqB,KAvFK,CAAA,CAAA,EAuFC,mBAAA,CAAA,GAAA,CAAA,OAvFD;iBAiGhD,sBAAA,CAjGgD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoGtD,KAAA,CAAM,cApGgD,CAAA,OAoG1B,oBAAA,CAAqB,WApGK,CAAA,CAAA,EAoGO,mBAAA,CAAA,GAAA,CAAA,OApGP;AAAA,iBA8GhD,iBAAA,CA1GkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6GxB,KAAA,CAAM,cA7GkB,CAAA,OA6GI,oBAAA,CAAqB,MA7GzB,CAAA,CAAA,EA6GgC,mBAAA,CAAA,GAAA,CAAA,OA7GhC;iBAsHlB,iBAAA,CAtHkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyHxB,KAAA,CAAM,cAzHkB,CAAA,OAyHI,oBAAA,CAAqB,MAzHzB,CAAA,CAAA,EAyHgC,mBAAA,CAAA,GAAA,CAAA,OAzHhC"}
1
+ {"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,WAAA;;GAEN,OAAA,CAAM,sBAAsB,oBAAA,CAAqB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAIhD,kBAAA;;GAEN,OAAA,CAAM,sBAAsB,oBAAA,CAAqB,WAAQ,mBAAA,CAAA,GAAA,CAAA;iBAMnD,iBAAA;;;GAGN,OAAA,CAAM,sBAAsB,oBAAA,CAAqB,UAAO,mBAAA,CAAA,GAAA,CAAA;AAvBU,iBAiC5D,kBAAA,CA3BW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8BjB,OAAA,CAAM,cA9BW,CAAA,OA8BW,oBAAA,CAAqB,OA9BhC,CAAA,CAAA,EA8BwC,mBAAA,CAAA,GAAA,CAAA,OA9BxC;iBA2CX,kBAAA,CA3CW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8CjB,OAAA,CAAM,cA9CW,CAAA,OA8CW,oBAAA,CAAqB,OA9ChC,CAAA,CAAA,EA8CwC,mBAAA,CAAA,GAAA,CAAA,OA9CxC;iBA8DX,iBAAA,CA5D2C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+DjD,OAAA,CAAM,cA/D2C,CAAA,KAAA,CAAA,CAAA,EA+DtB,mBAAA,CAAA,GAAA,CAAA,OA/DsB;iBAyE3C,iBAAA,CAzEA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4EN,OAAA,CAAM,cA5EA,CAAA,KAAA,CAAA,CAAA,EA4EqB,mBAAA,CAAA,GAAA,CAAA,OA5ErB;iBAyFA,gBAAA,CAzFgD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4FtD,OAAA,CAAM,cA5FgD,CAAA,OA4F1B,oBAAA,CAAqB,KA5FK,CAAA,CAAA,EA4FC,mBAAA,CAAA,GAAA,CAAA,OA5FD;iBAsGhD,sBAAA,CAtGgD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyGtD,OAAA,CAAM,cAzGgD,CAAA,OAyG1B,oBAAA,CAAqB,WAzGK,CAAA,CAAA,EAyGO,mBAAA,CAAA,GAAA,CAAA,OAzGP;AAAA,iBAmHhD,iBAAA,CA/GkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkHxB,OAAA,CAAM,cAlHkB,CAAA,OAkHI,oBAAA,CAAqB,MAlHzB,CAAA,CAAA,EAkHgC,mBAAA,CAAA,GAAA,CAAA,OAlHhC;iBA2HlB,iBAAA,CA3HkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8HxB,OAAA,CAAM,cA9HkB,CAAA,OA8HI,oBAAA,CAAqB,MA9HzB,CAAA,CAAA,EA8HgC,mBAAA,CAAA,GAAA,CAAA,OA9HhC"}
@@ -1,3 +1,4 @@
1
+ import { useResolvedPortalContainer } from "../portal-container-context.js";
1
2
  import { cn } from "../lib/utils.js";
2
3
  import { buttonVariants } from "./button.js";
3
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -16,9 +17,10 @@ function AlertDialogTrigger({ ...props }) {
16
17
  ...props
17
18
  });
18
19
  }
19
- function AlertDialogPortal({ ...props }) {
20
+ function AlertDialogPortal({ container, ...props }) {
20
21
  return /* @__PURE__ */ jsx(AlertDialogPrimitive.Portal, {
21
22
  "data-slot": "alert-dialog-portal",
23
+ container: useResolvedPortalContainer(container),
22
24
  ...props
23
25
  });
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.js","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n"],"mappings":";;;;;;AAMA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAe,GAAI;GAAS;;AAG1E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EAAQ,aAAU;EAAuB,GAAI;GAAS;;AAIhF,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EAAO,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,qBAAC,gCACC,oBAAC,uBAAqB,EACtB,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,+WACA,UACD;EACD,GAAI;GACJ,IACgB;;AAIxB,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;GACJ;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,gBAAgB,EAAE,UAAU;EAC1C,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,eAAe,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU;EAChE,GAAI;GACJ"}
1
+ {"version":3,"file":"alert-dialog.js","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\nimport { buttonVariants } from \"./button\";\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n container,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal\n data-slot=\"alert-dialog-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n"],"mappings":";;;;;;;AAOA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAe,GAAI;GAAS;;AAG1E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EAAQ,aAAU;EAAuB,GAAI;GAAS;;AAIhF,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,qBAAC,gCACC,oBAAC,uBAAqB,EACtB,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,+WACA,UACD;EACD,GAAI;GACJ,IACgB;;AAIxB,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;GACJ;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,gBAAgB,EAAE,UAAU;EAC1C,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,eAAe,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU;EAChE,GAAI;GACJ"}
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import * as class_variance_authority_types0 from "class-variance-authority/types";
5
5
 
@@ -11,15 +11,15 @@ declare function Alert({
11
11
  className,
12
12
  variant,
13
13
  ...props
14
- }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): react_jsx_runtime12.JSX.Element;
14
+ }: React$1.ComponentProps<"div"> & VariantProps<typeof alertVariants>): react_jsx_runtime1.JSX.Element;
15
15
  declare function AlertTitle({
16
16
  className,
17
17
  ...props
18
- }: React.ComponentProps<"div">): react_jsx_runtime12.JSX.Element;
18
+ }: React$1.ComponentProps<"div">): react_jsx_runtime1.JSX.Element;
19
19
  declare function AlertDescription({
20
20
  className,
21
21
  ...props
22
- }: React.ComponentProps<"div">): react_jsx_runtime12.JSX.Element;
22
+ }: React$1.ComponentProps<"div">): react_jsx_runtime1.JSX.Element;
23
23
  //#endregion
24
24
  export { Alert, AlertDescription, AlertTitle };
25
25
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAcL,+BAAA,CAAA;iBAEQ,KAAA;;;;GAIN,KAAA,CAAM,wBAAwB,oBAAoB,iBAAc,mBAAA,CAAA,GAAA,CAAA;AAxBD,iBAmCzD,UAAA,CAjBR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiB4C,KAAA,CAAM,cAjBlD,CAAA,KAAA,CAAA,CAAA,EAiBuE,mBAAA,CAAA,GAAA,CAAA,OAjBvE;iBA8BQ,gBAAA,CA5BK;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+BX,KAAA,CAAM,cA/BK,CAAA,KAAA,CAAA,CAAA,EA+BgB,mBAAA,CAAA,GAAA,CAAA,OA/BhB"}
1
+ {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAcL,+BAAA,CAAA;iBAEQ,KAAA;;;;GAIN,OAAA,CAAM,wBAAwB,oBAAoB,iBAAc,kBAAA,CAAA,GAAA,CAAA;AAxBD,iBAmCzD,UAAA,CAjBR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiB4C,OAAA,CAAM,cAjBlD,CAAA,KAAA,CAAA,CAAA,EAiBuE,kBAAA,CAAA,GAAA,CAAA,OAjBvE;iBA8BQ,gBAAA,CA5BK;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+BX,OAAA,CAAM,cA/BK,CAAA,KAAA,CAAA,CAAA,EA+BgB,kBAAA,CAAA,GAAA,CAAA,OA/BhB"}
@@ -1,10 +1,10 @@
1
- import * as react_jsx_runtime26 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
2
2
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
3
3
 
4
4
  //#region src/react/ui/aspect-ratio.d.ts
5
5
  declare function AspectRatio({
6
6
  ...props
7
- }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime26.JSX.Element;
7
+ }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime22.JSX.Element;
8
8
  //#endregion
9
9
  export { AspectRatio };
10
10
  //# sourceMappingURL=aspect-ratio.d.ts.map