exploreda 0.0.5 → 0.1.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.
- package/README.md +144 -0
- package/dist/ExplorEda.cjs +4608 -10858
- package/dist/ExplorEda.cjs.map +1 -1
- package/dist/ExplorEda.css +2332 -1653
- package/dist/ExplorEda.css.map +1 -1
- package/dist/ExplorEda.d.cts +125 -278
- package/dist/ExplorEda.d.ts +125 -278
- package/dist/ExplorEda.js +4521 -10782
- package/dist/ExplorEda.js.map +1 -1
- package/dist/calculations.cjs +18 -0
- package/dist/calculations.cjs.map +1 -0
- package/dist/calculations.d.cts +63 -0
- package/dist/calculations.d.ts +63 -0
- package/dist/calculations.js +3 -0
- package/dist/calculations.js.map +1 -0
- package/dist/charts/bar.cjs +27 -0
- package/dist/charts/bar.cjs.map +1 -0
- package/dist/charts/bar.d.cts +2 -0
- package/dist/charts/bar.d.ts +2 -0
- package/dist/charts/bar.js +18 -0
- package/dist/charts/bar.js.map +1 -0
- package/dist/charts/box-plot.cjs +26 -0
- package/dist/charts/box-plot.cjs.map +1 -0
- package/dist/charts/box-plot.d.cts +2 -0
- package/dist/charts/box-plot.d.ts +2 -0
- package/dist/charts/box-plot.js +17 -0
- package/dist/charts/box-plot.js.map +1 -0
- package/dist/charts/color-legend.cjs +22 -0
- package/dist/charts/color-legend.cjs.map +1 -0
- package/dist/charts/color-legend.d.cts +2 -0
- package/dist/charts/color-legend.d.ts +2 -0
- package/dist/charts/color-legend.js +13 -0
- package/dist/charts/color-legend.js.map +1 -0
- package/dist/charts/data-table.cjs +22 -0
- package/dist/charts/data-table.cjs.map +1 -0
- package/dist/charts/data-table.d.cts +2 -0
- package/dist/charts/data-table.d.ts +2 -0
- package/dist/charts/data-table.js +13 -0
- package/dist/charts/data-table.js.map +1 -0
- package/dist/charts/line.cjs +30 -0
- package/dist/charts/line.cjs.map +1 -0
- package/dist/charts/line.d.cts +2 -0
- package/dist/charts/line.d.ts +2 -0
- package/dist/charts/line.js +17 -0
- package/dist/charts/line.js.map +1 -0
- package/dist/charts/markdown.cjs +16 -0
- package/dist/charts/markdown.cjs.map +1 -0
- package/dist/charts/markdown.css +77 -0
- package/dist/charts/markdown.css.map +1 -0
- package/dist/charts/markdown.d.cts +2 -0
- package/dist/charts/markdown.d.ts +2 -0
- package/dist/charts/markdown.js +7 -0
- package/dist/charts/markdown.js.map +1 -0
- package/dist/charts/pivot-table.cjs +23 -0
- package/dist/charts/pivot-table.cjs.map +1 -0
- package/dist/charts/pivot-table.d.cts +2 -0
- package/dist/charts/pivot-table.d.ts +2 -0
- package/dist/charts/pivot-table.js +14 -0
- package/dist/charts/pivot-table.js.map +1 -0
- package/dist/charts/row.cjs +27 -0
- package/dist/charts/row.cjs.map +1 -0
- package/dist/charts/row.d.cts +6 -0
- package/dist/charts/row.d.ts +6 -0
- package/dist/charts/row.js +18 -0
- package/dist/charts/row.js.map +1 -0
- package/dist/charts/scatter.cjs +24 -0
- package/dist/charts/scatter.cjs.map +1 -0
- package/dist/charts/scatter.d.cts +2 -0
- package/dist/charts/scatter.d.ts +2 -0
- package/dist/charts/scatter.js +15 -0
- package/dist/charts/scatter.js.map +1 -0
- package/dist/charts/summary-table.cjs +19 -0
- package/dist/charts/summary-table.cjs.map +1 -0
- package/dist/charts/summary-table.d.cts +2 -0
- package/dist/charts/summary-table.d.ts +2 -0
- package/dist/charts/summary-table.js +10 -0
- package/dist/charts/summary-table.js.map +1 -0
- package/dist/charts/three-d-scatter.cjs +24 -0
- package/dist/charts/three-d-scatter.cjs.map +1 -0
- package/dist/charts/three-d-scatter.d.cts +6 -0
- package/dist/charts/three-d-scatter.d.ts +6 -0
- package/dist/charts/three-d-scatter.js +15 -0
- package/dist/charts/three-d-scatter.js.map +1 -0
- package/dist/chunk-3PGYFLE3.cjs +499 -0
- package/dist/chunk-3PGYFLE3.cjs.map +1 -0
- package/dist/chunk-4HNDKMWF.js +167 -0
- package/dist/chunk-4HNDKMWF.js.map +1 -0
- package/dist/chunk-4QNENKTV.cjs +1214 -0
- package/dist/chunk-4QNENKTV.cjs.map +1 -0
- package/dist/chunk-54M32JJB.js +132 -0
- package/dist/chunk-54M32JJB.js.map +1 -0
- package/dist/chunk-5B23JVH3.cjs +2238 -0
- package/dist/chunk-5B23JVH3.cjs.map +1 -0
- package/dist/chunk-5LH6NSNL.js +456 -0
- package/dist/chunk-5LH6NSNL.js.map +1 -0
- package/dist/chunk-6DOKKCJ5.cjs +313 -0
- package/dist/chunk-6DOKKCJ5.cjs.map +1 -0
- package/dist/chunk-6HZX5CBT.cjs +1074 -0
- package/dist/chunk-6HZX5CBT.cjs.map +1 -0
- package/dist/chunk-6U5DOIQM.js +1071 -0
- package/dist/chunk-6U5DOIQM.js.map +1 -0
- package/dist/chunk-7GBZIK2R.cjs +80 -0
- package/dist/chunk-7GBZIK2R.cjs.map +1 -0
- package/dist/chunk-7PTJNIOD.js +520 -0
- package/dist/chunk-7PTJNIOD.js.map +1 -0
- package/dist/chunk-AHZYQ7FN.js +319 -0
- package/dist/chunk-AHZYQ7FN.js.map +1 -0
- package/dist/chunk-AOODAOL4.cjs +55 -0
- package/dist/chunk-AOODAOL4.cjs.map +1 -0
- package/dist/chunk-ASKFIRMC.cjs +165 -0
- package/dist/chunk-ASKFIRMC.cjs.map +1 -0
- package/dist/chunk-B7OQUBH4.cjs +171 -0
- package/dist/chunk-B7OQUBH4.cjs.map +1 -0
- package/dist/chunk-BIMEHDLB.js +72 -0
- package/dist/chunk-BIMEHDLB.js.map +1 -0
- package/dist/chunk-C62KHV7S.js +1225 -0
- package/dist/chunk-C62KHV7S.js.map +1 -0
- package/dist/chunk-C7GQT65O.cjs +1119 -0
- package/dist/chunk-C7GQT65O.cjs.map +1 -0
- package/dist/chunk-CGDWDV4Z.js +1211 -0
- package/dist/chunk-CGDWDV4Z.js.map +1 -0
- package/dist/chunk-CJQQFNEY.js +69 -0
- package/dist/chunk-CJQQFNEY.js.map +1 -0
- package/dist/chunk-DHYLSXNR.js +964 -0
- package/dist/chunk-DHYLSXNR.js.map +1 -0
- package/dist/chunk-DKFA4KOJ.cjs +87 -0
- package/dist/chunk-DKFA4KOJ.cjs.map +1 -0
- package/dist/chunk-DS5BS7PP.cjs +357 -0
- package/dist/chunk-DS5BS7PP.cjs.map +1 -0
- package/dist/chunk-EGMFQSGK.js +909 -0
- package/dist/chunk-EGMFQSGK.js.map +1 -0
- package/dist/chunk-EU5EFHO5.cjs +53 -0
- package/dist/chunk-EU5EFHO5.cjs.map +1 -0
- package/dist/chunk-FM46QSDM.js +837 -0
- package/dist/chunk-FM46QSDM.js.map +1 -0
- package/dist/chunk-GV2LRR32.cjs +843 -0
- package/dist/chunk-GV2LRR32.cjs.map +1 -0
- package/dist/chunk-H3XKFSA5.cjs +322 -0
- package/dist/chunk-H3XKFSA5.cjs.map +1 -0
- package/dist/chunk-H5AVMMCE.js +347 -0
- package/dist/chunk-H5AVMMCE.js.map +1 -0
- package/dist/chunk-JDMUN4VK.cjs +986 -0
- package/dist/chunk-JDMUN4VK.cjs.map +1 -0
- package/dist/chunk-JNO7OXCC.js +2171 -0
- package/dist/chunk-JNO7OXCC.js.map +1 -0
- package/dist/chunk-JQMG4ZR7.js +111 -0
- package/dist/chunk-JQMG4ZR7.js.map +1 -0
- package/dist/chunk-L2Q2R43U.cjs +118 -0
- package/dist/chunk-L2Q2R43U.cjs.map +1 -0
- package/dist/chunk-LBTZVERO.js +466 -0
- package/dist/chunk-LBTZVERO.js.map +1 -0
- package/dist/chunk-LUUGGTTK.cjs +1227 -0
- package/dist/chunk-LUUGGTTK.cjs.map +1 -0
- package/dist/chunk-MEEPH7ZC.cjs +911 -0
- package/dist/chunk-MEEPH7ZC.cjs.map +1 -0
- package/dist/chunk-MJPDJ5AS.js +184 -0
- package/dist/chunk-MJPDJ5AS.js.map +1 -0
- package/dist/chunk-MJROUIDZ.cjs +219 -0
- package/dist/chunk-MJROUIDZ.cjs.map +1 -0
- package/dist/chunk-MUWSBYJS.js +528 -0
- package/dist/chunk-MUWSBYJS.js.map +1 -0
- package/dist/chunk-NDF5LCST.js +1088 -0
- package/dist/chunk-NDF5LCST.js.map +1 -0
- package/dist/chunk-NGWTPED4.js +311 -0
- package/dist/chunk-NGWTPED4.js.map +1 -0
- package/dist/chunk-PP4VCONW.js +739 -0
- package/dist/chunk-PP4VCONW.js.map +1 -0
- package/dist/chunk-PRMC2A6P.cjs +488 -0
- package/dist/chunk-PRMC2A6P.cjs.map +1 -0
- package/dist/chunk-PST6UU6S.cjs +742 -0
- package/dist/chunk-PST6UU6S.cjs.map +1 -0
- package/dist/chunk-Q7LK2UWH.js +33 -0
- package/dist/chunk-Q7LK2UWH.js.map +1 -0
- package/dist/chunk-SFV5LZPD.js +162 -0
- package/dist/chunk-SFV5LZPD.js.map +1 -0
- package/dist/chunk-SKXGYJJG.cjs +370 -0
- package/dist/chunk-SKXGYJJG.cjs.map +1 -0
- package/dist/chunk-SWLNKY6R.js +477 -0
- package/dist/chunk-SWLNKY6R.js.map +1 -0
- package/dist/chunk-TGVLNHUB.cjs +483 -0
- package/dist/chunk-TGVLNHUB.cjs.map +1 -0
- package/dist/chunk-TLLRW6S3.js +74 -0
- package/dist/chunk-TLLRW6S3.js.map +1 -0
- package/dist/chunk-TRAIXZ6M.cjs +140 -0
- package/dist/chunk-TRAIXZ6M.cjs.map +1 -0
- package/dist/chunk-U74A5VK5.cjs +74 -0
- package/dist/chunk-U74A5VK5.cjs.map +1 -0
- package/dist/chunk-UAVDLBTA.cjs +74 -0
- package/dist/chunk-UAVDLBTA.cjs.map +1 -0
- package/dist/chunk-UJWS6TRV.js +354 -0
- package/dist/chunk-UJWS6TRV.js.map +1 -0
- package/dist/chunk-UUJMUPB3.cjs +531 -0
- package/dist/chunk-UUJMUPB3.cjs.map +1 -0
- package/dist/chunk-VTKHZIJB.cjs +549 -0
- package/dist/chunk-VTKHZIJB.cjs.map +1 -0
- package/dist/chunk-YXPAWUXO.js +51 -0
- package/dist/chunk-YXPAWUXO.js.map +1 -0
- package/dist/chunk-ZD64SCZB.js +80 -0
- package/dist/chunk-ZD64SCZB.js.map +1 -0
- package/dist/core.cjs +28 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +22 -0
- package/dist/core.d.ts +22 -0
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -0
- package/dist/dataLayerState-B4XmQjQN.d.cts +258 -0
- package/dist/dataLayerState-B4XmQjQN.d.ts +258 -0
- package/package.json +32 -52
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/charts/PivotTable/utils/calculations.ts","../src/components/charts/PivotTable/PivotTable.tsx","../src/components/charts/PivotTable/PivotTableSettingsPanel.tsx","../src/components/charts/PivotTable/definition.ts"],"names":["numericInputs","value","categoryKey","categoryValue","categoryLabel","categoryEqual","useDataLayer","useGetLiveIds","useMemo","useState","useRef","useEffect","useCallback","categoryIncludes","applyFilter","jsxs","jsx","hasFieldDisplayFormat","FilterIcon","getChartSummary","cn","ActionTooltip","Dialog","DialogContent","Fragment","DialogHeader","DialogTitle","DialogDescription","useColumnNames","Label","multi_select_default","FieldSelector","ComboBox","Table","DEFAULT_CHART_SETTINGS"],"mappings":"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","file":"chunk-MEEPH7ZC.cjs","sourcesContent":["import {\n categoryEqual,\n categoryKey,\n categoryLabel,\n categoryValue,\n} from \"@/lib/categories\";\nimport { datum } from \"@/types/FilterTypes\";\nimport {\n PivotCell,\n PivotContributor,\n PivotHeader,\n PivotNumericExclusion,\n PivotRow,\n PivotSourceId,\n PivotTableData,\n RowKey,\n} from \"../types\";\nimport { PivotTableSettings } from \"../definition\";\nimport { numericInputs } from \"@/lib/aggregates\";\n\nexport type PivotInputRow = Record<string, datum> & {\n __ID?: PivotSourceId;\n};\n\ntype AggregateResult = {\n value: datum;\n includedIndexes: Set<number>;\n numericExclusions: Array<{ index: number; reason: string }>;\n};\n\nconst numericAggregations = new Set([\n \"sum\",\n \"avg\",\n \"min\",\n \"max\",\n \"median\",\n \"stddev\",\n \"variance\",\n]);\n\nfunction aggregate(name: string, values: datum[]): AggregateResult {\n const includedIndexes = new Set<number>();\n const numeric = numericAggregations.has(name)\n ? numericInputs(values)\n : { inputs: [], exclusions: [] };\n numeric.inputs.forEach(({ index }) => includedIndexes.add(index));\n\n if (name === \"count\") {\n values.forEach((_, index) => includedIndexes.add(index));\n return { value: values.length, includedIndexes, numericExclusions: [] };\n }\n if (name === \"countUnique\") {\n values.forEach((_, index) => includedIndexes.add(index));\n return {\n value: new Set(values).size,\n includedIndexes,\n numericExclusions: [],\n };\n }\n if (name === \"mode\") {\n values.forEach((_, index) => includedIndexes.add(index));\n const counts = new Map<string | number | boolean | null, number>();\n values.forEach((value) => {\n const key = value ?? null;\n counts.set(key, (counts.get(key) || 0) + 1);\n });\n let maxCount = 0;\n let value: datum = undefined;\n counts.forEach((count, candidate) => {\n if (count > maxCount) {\n maxCount = count;\n value = candidate === null ? undefined : candidate;\n }\n });\n return { value, includedIndexes, numericExclusions: [] };\n }\n if (name === \"singleValue\") {\n if (values.length === 0) {\n return { value: undefined, includedIndexes, numericExclusions: [] };\n }\n const uniqueValues = new Set(values.map((value) => categoryKey(value)));\n if (uniqueValues.size !== 1) {\n throw new Error(\"Multiple values found when single value expected\");\n }\n values.forEach((_, index) => includedIndexes.add(index));\n return { value: values[0], includedIndexes, numericExclusions: [] };\n }\n if (!numericAggregations.has(name)) {\n throw new Error(`Unsupported aggregation: ${name}`);\n }\n\n const numbers = numeric.inputs.map(({ value }) => value);\n if (numbers.length === 0) {\n return {\n value: undefined,\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n if (name === \"sum\") {\n return {\n value: numbers.reduce((sum, value) => sum + value, 0),\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n if (name === \"avg\") {\n return {\n value: numbers.reduce((sum, value) => sum + value, 0) / numbers.length,\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n if (name === \"min\") {\n return {\n value: Math.min(...numbers),\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n if (name === \"max\") {\n return {\n value: Math.max(...numbers),\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n if (name === \"median\") {\n const sorted = [...numbers].sort((a, b) => a - b);\n const mid = Math.floor(sorted.length / 2);\n return {\n value:\n sorted.length % 2 ? sorted[mid] : (sorted[mid - 1]! + sorted[mid]!) / 2,\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n }\n\n const average =\n numbers.reduce((sum, value) => sum + value, 0) / numbers.length;\n const squareDiffs = numbers.map((value) => (value - average) ** 2);\n const variance =\n squareDiffs.reduce((sum, value) => sum + value, 0) / squareDiffs.length;\n return {\n value: name === \"stddev\" ? Math.sqrt(variance) : variance,\n includedIndexes,\n numericExclusions: numeric.exclusions,\n };\n}\n\nfunction generateHeaders(data: PivotInputRow[], field: string): PivotHeader[] {\n if (!field) {\n return [];\n }\n const uniqueValues = new Map<string, datum>();\n data.forEach((row) => {\n const value = categoryValue(row[field]);\n const key = categoryKey(value);\n if (!uniqueValues.has(key)) {\n uniqueValues.set(key, value);\n }\n });\n return Array.from(uniqueValues.values())\n .sort((left, right) => categoryKey(left).localeCompare(categoryKey(right)))\n .map((value) => ({\n label: categoryLabel(value),\n field,\n value,\n children: [],\n span: 1,\n depth: 0,\n }));\n}\n\nfunction makeContributors(\n rows: PivotInputRow[],\n groupingKeys: RowKey[],\n valueField: string,\n result: AggregateResult\n): {\n contributors: PivotContributor[];\n numericExclusions: PivotNumericExclusion[];\n} {\n const exclusionByIndex = new Map(\n result.numericExclusions.map((exclusion) => [\n exclusion.index,\n exclusion.reason,\n ])\n );\n const contributors = rows.map((row, index) => ({\n sourceId: row.__ID,\n groupingKeys,\n input: row[valueField],\n included: result.includedIndexes.has(index),\n exclusionReason: exclusionByIndex.get(index),\n }));\n return {\n contributors,\n numericExclusions: result.numericExclusions.map(({ index, reason }) => ({\n sourceId: rows[index]?.__ID,\n value: rows[index]?.[valueField],\n reason,\n })),\n };\n}\n\nfunction generateCell(\n rows: PivotInputRow[],\n groupingKeys: RowKey[],\n columnField: string,\n columnValue: datum,\n isTotal: boolean,\n valueField: PivotTableSettings[\"valueFields\"][number]\n): PivotCell {\n const values = rows.map((row) => row[valueField.field]);\n let result: AggregateResult;\n let error: string | undefined;\n try {\n result = aggregate(valueField.aggregation, values);\n } catch (caught) {\n result = {\n value: undefined,\n includedIndexes: new Set(),\n numericExclusions: [],\n };\n error = caught instanceof Error ? caught.message : \"Aggregation failed\";\n }\n const { contributors, numericExclusions } = makeContributors(\n rows,\n groupingKeys,\n valueField.field,\n result\n );\n const status = error\n ? \"error\"\n : rows.length === 0\n ? \"empty\"\n : result.numericExclusions.length > 0 && result.includedIndexes.size === 0\n ? \"invalid\"\n : \"ok\";\n return {\n key: {\n columnField,\n columnValue,\n valueField: valueField.field,\n isTotal,\n },\n value: result.value,\n rawValue: result.value,\n aggregation: valueField.aggregation,\n status,\n error,\n contributors,\n numericExclusions,\n };\n}\n\nfunction generateCells(\n rowData: PivotInputRow[],\n columnHeaders: PivotHeader[],\n rowKeys: RowKey[],\n hasColumnField: boolean,\n valueFields: PivotTableSettings[\"valueFields\"]\n): PivotCell[] {\n const cells: PivotCell[] = [];\n const headers = hasColumnField\n ? columnHeaders\n : [{ field: \"total\", value: \"total\" as datum }];\n headers.forEach((header) => {\n const columnData = hasColumnField\n ? rowData.filter((row) =>\n categoryEqual(categoryValue(row[header.field]), header.value)\n )\n : rowData;\n const groupingKeys = !hasColumnField\n ? rowKeys\n : [...rowKeys, { field: header.field, value: header.value }];\n valueFields.forEach((valueField) => {\n cells.push(\n generateCell(\n columnData,\n groupingKeys,\n hasColumnField ? header.field : \"total\",\n header.value,\n !hasColumnField,\n valueField\n )\n );\n });\n });\n return cells;\n}\n\nfunction generateRows(\n data: PivotInputRow[],\n rowFields: string[],\n columnField: string,\n valueFields: PivotTableSettings[\"valueFields\"]\n): PivotRow[] {\n const rows: PivotRow[] = [];\n const columnHeaders = generateHeaders(data, columnField);\n const rowGroups = new Map<string, PivotInputRow[]>();\n data.forEach((item) => {\n const keyString = JSON.stringify(\n rowFields.map((field) => categoryKey(categoryValue(item[field])))\n );\n if (!rowGroups.has(keyString)) {\n rowGroups.set(keyString, []);\n }\n rowGroups.get(keyString)!.push(item);\n });\n rowGroups.forEach((groupData) => {\n const keys = rowFields.map((field) => ({\n field,\n value: categoryValue(groupData[0]![field]),\n }));\n const headers = keys.map((key, index) => ({\n label: categoryLabel(key.value),\n field: key.field,\n value: key.value,\n span: 1,\n depth: index,\n }));\n rows.push({\n keys,\n headers,\n cells: generateCells(\n groupData,\n columnHeaders,\n keys,\n Boolean(columnField),\n valueFields\n ),\n });\n });\n return rows;\n}\n\nexport function calculatePivotData(\n data: PivotInputRow[],\n settings: PivotTableSettings\n): PivotTableData {\n return {\n headers: generateHeaders(data, settings.columnField),\n rows: generateRows(\n data,\n settings.rowFields,\n settings.columnField,\n settings.valueFields\n ),\n };\n}\n","import { ActionTooltip } from \"@/components/ui/tooltip\";\nimport { categoryIncludes, categoryKey } from \"@/lib/categories\";\nimport { calculatePivotData } from \"@/components/charts/PivotTable/utils/calculations\";\nimport { cn } from \"@/lib/utils\";\nimport { useDataLayer } from \"@/providers/DataLayerProvider\";\nimport { BaseChartProps } from \"@/types/ChartTypes\";\nimport { Filter, ValueFilter, datum } from \"@/types/FilterTypes\";\nimport { Filter as FilterIcon } from \"lucide-react\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useGetLiveIds } from \"../useGetLiveData\";\nimport { PivotCell, PivotHeader, PivotRow, CellKey } from \"./types\";\nimport { applyFilter } from \"@/hooks/applyFilter\";\nimport { PivotTableSettings } from \"./definition\";\nimport { getChartSummary } from \"../chartAccessibility\";\nimport { hasFieldDisplayFormat } from \"@/lib/fieldSettings\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\n\ntype PivotTableProps = BaseChartProps & {\n settings: PivotTableSettings;\n};\n\ntype SelectedCell = { cell: PivotCell; rowHeaders: PivotHeader[] };\n\nfunction displayValue(value: datum): string {\n if (value === undefined || value === null || value === \"\") {\n return \"Missing\";\n }\n if (typeof value === \"number\") {\n return String(value);\n }\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\nfunction displayExactValue(value: datum): string {\n if (value === undefined) {\n return \"undefined\";\n }\n if (value === null) {\n return \"null\";\n }\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n return String(value);\n}\n\nfunction displayCellValue(cell: PivotCell): string {\n if (cell.status === \"empty\") {\n return \"No rows\";\n }\n if (cell.status === \"error\") {\n return \"Conflict\";\n }\n if (cell.status === \"invalid\") {\n return \"No valid numbers\";\n }\n return displayValue(cell.value);\n}\n\nfunction cellName(cell: PivotCell, rowHeaders: PivotHeader[]): string {\n const rowLabel = rowHeaders.map((header) => header.label).join(\" / \");\n const columnLabel = cell.key.isTotal\n ? \"Total\"\n : displayValue(cell.key.columnValue);\n return [rowLabel, columnLabel, cell.key.valueField]\n .filter(Boolean)\n .join(\" · \");\n}\n\nexport function PivotTable({ settings, height, facetIds }: PivotTableProps) {\n const getColumnData = useDataLayer((state) => state.getColumnData);\n const getFieldLabel = useDataLayer((state) => state.getFieldLabel);\n const formatFieldValue = useDataLayer((state) => state.formatFieldValue);\n const fieldSettings = useDataLayer((state) => state.fieldSettings);\n const updateChart = useDataLayer((state) => state.updateChart);\n void fieldSettings;\n\n const allLiveIds = useGetLiveIds(settings);\n\n // Get all required field data\n const pivotData = useMemo(() => {\n // Use facetIds if provided, otherwise use liveItems\n const liveIds = facetIds\n ? allLiveIds.filter((id) => facetIds.includes(id))\n : allLiveIds;\n\n // Gather all required fields\n const allFields = new Set([\n ...settings.rowFields,\n settings.columnField,\n ...settings.valueFields.map((f) => f.field),\n ]);\n\n // Get column data for each field\n const fieldData: Record<string, Record<string | number, datum>> = {};\n allFields.forEach((field) => {\n fieldData[field] = getColumnData(field);\n });\n\n // Create data array for pivot calculations\n const data = liveIds.map((id: string | number) => {\n const row: Record<string, datum> & { __ID: string | number } = {\n __ID: id,\n };\n allFields.forEach((field) => {\n row[field] = fieldData[field]?.[id];\n });\n return row;\n });\n\n return calculatePivotData(data, settings);\n }, [facetIds, allLiveIds, settings, getColumnData]);\n\n const [selectedCell, setSelectedCell] = useState<SelectedCell | null>(null);\n const lastTrigger = useRef<HTMLButtonElement | null>(null);\n const [contributorPage, setContributorPage] = useState(0);\n useEffect(() => {\n setSelectedCell(null);\n }, [pivotData, settings]);\n useEffect(() => {\n setContributorPage(0);\n }, [selectedCell]);\n\n const handleFilterClick = useCallback(\n (field: string, value: datum) => {\n const currentFilters = settings.filters || [];\n const existingFilterIndex = currentFilters.findIndex(\n (f): f is ValueFilter =>\n f.type === \"value\" &&\n f.field === field &&\n categoryIncludes(f.values, value)\n );\n\n let newFilters: Filter[];\n if (existingFilterIndex >= 0) {\n // Remove the filter if it exists\n newFilters = [\n ...currentFilters.slice(0, existingFilterIndex),\n ...currentFilters.slice(existingFilterIndex + 1),\n ];\n } else {\n // Add new filter\n const newFilter: ValueFilter = {\n type: \"value\",\n field,\n values: [value],\n };\n newFilters = [...currentFilters, newFilter];\n }\n\n updateChart(settings.id, {\n ...settings,\n filters: newFilters,\n });\n },\n [settings, updateChart]\n );\n\n const isValueFiltered = useCallback(\n (field: string, value: datum) => {\n const currentFilters = settings.filters || [];\n const fieldFilters = currentFilters.filter((f) => f.field === field);\n\n // If no filters for this field, return false\n if (fieldFilters.length === 0) {\n return false;\n }\n\n // Check if the value matches any of the filters for this field\n return fieldFilters.some((filter) => applyFilter(value, filter));\n },\n [settings.filters]\n );\n\n const isCellFiltered = useCallback(\n (rowHeaders: PivotHeader[], cellKey: CellKey) => {\n const currentFilters = settings.filters || [];\n\n if (currentFilters.length === 0) {\n return false;\n }\n\n // Get all row field filters\n const rowFieldFilters = rowHeaders.map((header) => {\n const fieldFilters = currentFilters.filter(\n (f) => f.field === header.field\n );\n return {\n header,\n filters: fieldFilters,\n };\n });\n\n // Check if any row header matches its field's filters\n const hasRowFilters = rowFieldFilters.some((rf) => rf.filters.length > 0);\n const rowMatches =\n !hasRowFilters ||\n rowFieldFilters.every(\n ({ header, filters }) =>\n filters.length === 0 ||\n filters.some((filter) => applyFilter(header.value, filter))\n );\n\n // Get column filters\n const columnFilters = currentFilters.filter(\n (f) => !cellKey.isTotal && f.field === cellKey.columnField\n );\n\n // Check if column matches its filters\n const hasColumnFilters = columnFilters.length > 0;\n const columnMatches =\n !hasColumnFilters ||\n columnFilters.some((filter) =>\n applyFilter(cellKey.columnValue, filter)\n );\n\n // Cell is highlighted if both row and column conditions are met\n return rowMatches && columnMatches;\n },\n [settings.filters]\n );\n\n const filterButton = (header: PivotHeader) => (\n <button\n type=\"button\"\n className=\"eda-pivot-filter\"\n aria-label={`Filter ${header.field} by ${header.label}`}\n aria-pressed={isValueFiltered(header.field, header.value)}\n onClick={() => handleFilterClick(header.field, header.value)}\n >\n <span>\n {hasFieldDisplayFormat(fieldSettings[header.field])\n ? (formatFieldValue?.(header.field, header.value) ?? header.label)\n : header.label}\n </span>\n <FilterIcon aria-hidden=\"true\" />\n </button>\n );\n\n const valueLabel = (field: string, aggregation: string, label?: string) =>\n label || `${getFieldLabel?.(field) ?? field} (${aggregation})`;\n const displayPivotCell = (cell: PivotCell) => {\n if (cell.status !== \"ok\") return displayCellValue(cell);\n return hasFieldDisplayFormat(fieldSettings[cell.key.valueField!])\n ? (formatFieldValue?.(cell.key.valueField!, cell.value) ??\n displayCellValue(cell))\n : displayCellValue(cell);\n };\n\n const selectedCellName = selectedCell\n ? cellName(selectedCell.cell, selectedCell.rowHeaders)\n : \"\";\n const valueColumnCount =\n settings.valueFields.length *\n (settings.columnField ? pivotData.headers.length : 1);\n const contributorPageSize = 50;\n const contributorCount = selectedCell?.cell.contributors.length ?? 0;\n const contributorPageCount = Math.max(\n 1,\n Math.ceil(contributorCount / contributorPageSize)\n );\n const contributorStart = contributorPage * contributorPageSize;\n const visibleContributors =\n selectedCell?.cell.contributors.slice(\n contributorStart,\n contributorStart + contributorPageSize\n ) ?? [];\n\n return (\n <div\n className=\"w-full min-h-0 overflow-auto\"\n style={{ height }}\n tabIndex={0}\n aria-label=\"Pivot table, scroll to see more\"\n >\n <table\n className=\"eda-pivot-table\"\n style={{\n minWidth: settings.rowFields.length * 140 + valueColumnCount * 112,\n }}\n >\n <caption className=\"sr-only\">{getChartSummary(settings)}</caption>\n <colgroup>\n {settings.rowFields.map((field) => (\n <col key={field} style={{ width: 140 }} />\n ))}\n {Array.from({ length: valueColumnCount }, (_, index) => (\n <col key={index} />\n ))}\n </colgroup>\n <thead className=\"sticky top-0 z-30\">\n <tr>\n {settings.rowFields.map((field, index) => (\n <th\n key={field}\n scope=\"col\"\n rowSpan={settings.columnField ? 2 : 1}\n className=\"eda-pivot-row-label\"\n style={{ left: index * 140, zIndex: 20 - index }}\n >\n {getFieldLabel?.(field) ?? field}\n </th>\n ))}\n {settings.columnField\n ? pivotData.headers.map((header) => (\n <th\n key={`${header.field}-${categoryKey(header.value)}`}\n scope=\"colgroup\"\n colSpan={settings.valueFields.length}\n >\n {filterButton(header)}\n </th>\n ))\n : settings.valueFields.map((valueField) => (\n <th key={valueField.field} scope=\"col\">\n {valueLabel(\n valueField.field,\n valueField.aggregation,\n valueField.label\n )}\n </th>\n ))}\n </tr>\n {settings.columnField && (\n <tr>\n {pivotData.headers.flatMap((header) =>\n settings.valueFields.map((valueField) => (\n <th\n key={`${header.field}-${categoryKey(header.value)}-${valueField.field}`}\n scope=\"col\"\n >\n {valueLabel(\n valueField.field,\n valueField.aggregation,\n valueField.label\n )}\n </th>\n ))\n )}\n </tr>\n )}\n </thead>\n <tbody>\n {pivotData.rows.map((row: PivotRow) => (\n <tr\n key={JSON.stringify(\n row.keys.map((key) => [key.field, categoryKey(key.value)])\n )}\n >\n {row.headers.map((header, index) => (\n <th\n key={`${header.field}-${categoryKey(header.value)}`}\n scope=\"row\"\n className=\"eda-pivot-row-label\"\n style={{ left: index * 140, zIndex: 10 - index }}\n >\n {filterButton(header)}\n </th>\n ))}\n {row.cells.map((cell: PivotCell) => (\n <td\n key={`${cell.key.isTotal ? \"total\" : cell.key.columnField}-${categoryKey(cell.key.columnValue)}-${cell.key.valueField}`}\n className={cn(\n isCellFiltered(row.headers, cell.key) && \"is-selected\"\n )}\n >\n <div className=\"flex items-center justify-end gap-2\">\n <ActionTooltip\n content={cell.error ?? cellName(cell, row.headers)}\n >\n <span tabIndex={cell.error ? 0 : undefined}>\n {displayPivotCell(cell)}\n </span>\n </ActionTooltip>\n <button\n type=\"button\"\n className=\"rounded px-1 text-[10px] text-muted-foreground underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-haspopup=\"dialog\"\n aria-label={`Inspect ${cellName(cell, row.headers)}`}\n onClick={(event) => {\n lastTrigger.current = event.currentTarget;\n setSelectedCell({ cell, rowHeaders: row.headers });\n }}\n >\n Inspect\n </button>\n </div>\n </td>\n ))}\n </tr>\n ))}\n {pivotData.rows.length === 0 && (\n <tr>\n <td\n colSpan={settings.rowFields.length + valueColumnCount}\n className=\"text-muted-foreground\"\n >\n No matching rows\n </td>\n </tr>\n )}\n </tbody>\n </table>\n\n <Dialog\n open={selectedCell !== null}\n onOpenChange={(open) => {\n if (!open) {\n setSelectedCell(null);\n window.setTimeout(() => lastTrigger.current?.focus(), 0);\n }\n }}\n >\n <DialogContent className=\"max-h-[80vh] max-w-3xl overflow-y-auto\">\n {selectedCell && (\n <>\n <DialogHeader>\n <DialogTitle>Inspect {selectedCellName}</DialogTitle>\n <DialogDescription>\n This cell uses the current filtered rows and the same\n aggregation as the table.\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid gap-2 text-sm sm:grid-cols-3\">\n <div>\n <div className=\"text-muted-foreground\">Aggregation</div>\n <div>{selectedCell.cell.aggregation}</div>\n </div>\n <div>\n <div className=\"text-muted-foreground\">Result</div>\n <div>{displayPivotCell(selectedCell.cell)}</div>\n </div>\n <div>\n <div className=\"text-muted-foreground\">Contributors</div>\n <div>{selectedCell.cell.contributors.length}</div>\n </div>\n </div>\n {selectedCell.cell.error && (\n <p\n role=\"alert\"\n className=\"rounded border border-destructive/50 p-2 text-sm text-destructive\"\n >\n {selectedCell.cell.error}. The other pivot cells remain\n available.\n </p>\n )}\n {selectedCell.cell.numericExclusions.length > 0 && (\n <p className=\"text-sm text-muted-foreground\">\n {selectedCell.cell.numericExclusions.length} numeric value(s)\n excluded; the result uses the{\" \"}\n {\n selectedCell.cell.contributors.filter(\n (contributor) => contributor.included\n ).length\n }{\" \"}\n valid value(s).\n </p>\n )}\n <div className=\"overflow-auto rounded border\">\n <table className=\"w-full text-left text-sm\">\n <caption className=\"sr-only\">Pivot cell contributors</caption>\n <thead className=\"bg-muted\">\n <tr>\n <th className=\"p-2\" scope=\"col\">\n Source row ID (zero-based)\n </th>\n <th className=\"p-2\" scope=\"col\">\n Grouping keys\n </th>\n <th className=\"p-2\" scope=\"col\">\n Input\n </th>\n <th className=\"p-2\" scope=\"col\">\n Used\n </th>\n </tr>\n </thead>\n <tbody>\n {visibleContributors.map((contributor, index) => (\n <tr\n key={`${contributor.sourceId ?? \"unknown\"}-${index}`}\n className=\"border-t\"\n >\n <td className=\"p-2\">\n {contributor.sourceId ?? \"Unknown\"}\n </td>\n <td className=\"p-2\">\n {contributor.groupingKeys\n .map(\n (key) => `${key.field}=${displayValue(key.value)}`\n )\n .join(\", \")}\n </td>\n <td className=\"p-2\">\n {displayExactValue(contributor.input)}\n </td>\n <td className=\"p-2\">\n {contributor.included\n ? \"Yes\"\n : contributor.exclusionReason || \"No\"}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {contributorCount === 0 && (\n <p className=\"p-3 text-sm text-muted-foreground\">\n No rows match this cell.\n </p>\n )}\n </div>\n <div className=\"flex items-center justify-between gap-3 text-sm text-muted-foreground\">\n <span>\n Showing {contributorCount === 0 ? 0 : contributorStart + 1}–\n {Math.min(\n contributorStart + contributorPageSize,\n contributorCount\n )}{\" \"}\n of {contributorCount} source rows\n </span>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"rounded border px-2 py-1 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={contributorPage === 0}\n onClick={() => setContributorPage((page) => page - 1)}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"rounded border px-2 py-1 disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={contributorPage >= contributorPageCount - 1}\n onClick={() => setContributorPage((page) => page + 1)}\n >\n Next\n </button>\n </div>\n </div>\n </>\n )}\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n","import { ComboBox } from \"@/components/ComboBox\";\nimport { Label } from \"@/components/ui/label\";\nimport MultiSelect, { Option } from \"@/components/ui/multi-select\";\nimport { ChartSettingsPanelProps } from \"@/types/ChartTypes\";\nimport { PivotTableSettings } from \"./definition\";\nimport { useColumnNames } from \"./useColumnNames\";\nimport { FieldSelector } from \"@/components/FieldSelector\";\n\nconst AGGREGATION_OPTIONS: Array<{\n label: string;\n value: PivotTableSettings[\"valueFields\"][number][\"aggregation\"];\n}> = [\n { label: \"Sum\", value: \"sum\" },\n { label: \"Count\", value: \"count\" },\n { label: \"Average\", value: \"avg\" },\n { label: \"Min\", value: \"min\" },\n { label: \"Max\", value: \"max\" },\n { label: \"Median\", value: \"median\" },\n { label: \"Mode\", value: \"mode\" },\n { label: \"StdDev\", value: \"stddev\" },\n { label: \"Variance\", value: \"variance\" },\n { label: \"Count Unique\", value: \"countUnique\" },\n { label: \"Single Value\", value: \"singleValue\" },\n];\n\nexport function PivotTableSettingsPanel({\n settings,\n onSettingsChange,\n}: ChartSettingsPanelProps<PivotTableSettings>) {\n const availableFields = useColumnNames();\n\n const fieldOptions = availableFields.map((f) => ({\n label: f,\n value: f,\n }));\n\n return (\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label>Row Fields</Label>\n <div className=\"max-w-[400px]\">\n <MultiSelect\n options={fieldOptions}\n value={settings.rowFields.map((f) => ({\n label: f,\n value: f,\n }))}\n onChange={(values: Option[]) =>\n onSettingsChange({\n ...settings,\n rowFields: values.map((v) => v.value),\n })\n }\n />\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <div className=\"max-w-[400px]\">\n <FieldSelector\n label=\"Column Field\"\n value={settings.columnField}\n onChange={(value) =>\n onSettingsChange({ ...settings, columnField: value })\n }\n />\n </div>\n </div>\n\n <div className=\"space-y-2\">\n <Label>Value Fields</Label>\n <div className=\"max-w-[400px] space-y-2\">\n {settings.valueFields.map((valueField, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n <div className=\"flex-1\">\n <ComboBox\n options={fieldOptions}\n value={fieldOptions.find((f) => f.value === valueField.field)}\n onChange={(option) => {\n const newValueFields = [...settings.valueFields];\n newValueFields[index] = {\n ...valueField,\n field: option?.value || valueField.field,\n };\n onSettingsChange({\n ...settings,\n valueFields: newValueFields,\n });\n }}\n optionToString={(option) => option.label}\n />\n </div>\n <div className=\"flex-1\">\n <ComboBox\n options={AGGREGATION_OPTIONS}\n value={AGGREGATION_OPTIONS.find(\n (o) => o.value === valueField.aggregation\n )}\n onChange={(option) => {\n if (!option) {\n return;\n }\n const newValueFields = [...settings.valueFields];\n newValueFields[index] = {\n ...valueField,\n aggregation: option.value,\n };\n onSettingsChange({\n ...settings,\n valueFields: newValueFields,\n });\n }}\n optionToString={(option) => option.label}\n />\n </div>\n <button\n className=\"p-2 hover:bg-accent rounded\"\n onClick={() => {\n const newValueFields = settings.valueFields.filter(\n (_, i) => i !== index\n );\n onSettingsChange({\n ...settings,\n valueFields: newValueFields,\n });\n }}\n >\n ×\n </button>\n </div>\n ))}\n <button\n className=\"text-sm text-primary hover:text-primary/80\"\n onClick={() => {\n const field = availableFields[0];\n if (!field) {\n return;\n }\n\n onSettingsChange({\n ...settings,\n valueFields: [\n ...settings.valueFields,\n {\n field,\n aggregation: \"count\",\n },\n ],\n });\n }}\n >\n + Add Value Field\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import { BaseChartSettings, ChartDefinition, datum } from \"@/types/ChartTypes\";\nimport { ValueFilter } from \"@/types/FilterTypes\";\nimport { DEFAULT_CHART_SETTINGS } from \"@/utils/defaultSettings\";\nimport { Table } from \"lucide-react\";\n\nimport { applyFilter } from \"@/hooks/applyFilter\";\nimport { IdType } from \"@/providers/DataLayerProvider\";\nimport { PivotTable } from \"./PivotTable\";\nimport { PivotTableSettingsPanel } from \"./PivotTableSettingsPanel\";\n\nexport interface PivotTableSettings extends BaseChartSettings {\n type: \"pivot\";\n rowFields: string[];\n columnField: string;\n valueFields: Array<{\n field: string;\n aggregation:\n | \"sum\"\n | \"count\"\n | \"avg\"\n | \"min\"\n | \"max\"\n | \"median\"\n | \"mode\"\n | \"stddev\"\n | \"variance\"\n | \"countUnique\"\n | \"singleValue\";\n label?: string;\n }>;\n}\n\nconst VALID_AGGREGATIONS: ReadonlySet<\n PivotTableSettings[\"valueFields\"][number][\"aggregation\"]\n> = new Set([\n \"sum\",\n \"count\",\n \"avg\",\n \"min\",\n \"max\",\n \"median\",\n \"mode\",\n \"stddev\",\n \"variance\",\n \"countUnique\",\n \"singleValue\",\n]);\n\nexport const pivotTableDefinition: ChartDefinition<PivotTableSettings> = {\n type: \"pivot\",\n name: \"Pivot Table\",\n description: \"Interactive pivot table for data analysis\",\n icon: Table,\n\n component: PivotTable,\n settingsPanel: PivotTableSettingsPanel,\n\n createDefaultSettings: (layout) => ({\n ...DEFAULT_CHART_SETTINGS,\n id: crypto.randomUUID(),\n type: \"pivot\",\n title: \"Pivot Table\",\n layout,\n margin: { top: 0, right: 0, bottom: 0, left: 0 },\n rowFields: [],\n columnField: \"\",\n valueFields: [],\n filters: [],\n }),\n\n validateSettings: (settings) => {\n const rowFields =\n Array.isArray(settings.rowFields) &&\n settings.rowFields.every(\n (field) => typeof field === \"string\" && field.trim().length > 0\n );\n const columnField =\n typeof settings.columnField === \"string\" &&\n (settings.columnField === \"\" || settings.columnField.trim().length > 0);\n const valueFields =\n Array.isArray(settings.valueFields) &&\n settings.valueFields.length > 0 &&\n settings.valueFields.every(\n (valueField) =>\n typeof valueField.field === \"string\" &&\n valueField.field.trim().length > 0 &&\n VALID_AGGREGATIONS.has(valueField.aggregation)\n );\n\n return (\n rowFields &&\n columnField &&\n valueFields &&\n new Set(settings.rowFields).size === settings.rowFields.length &&\n (!settings.columnField ||\n !settings.rowFields.includes(settings.columnField))\n );\n },\n\n getFilterFunction: (\n settings: PivotTableSettings,\n fieldGetter: (name: string) => Record<IdType, datum>\n ) => {\n const fields = [...settings.rowFields, settings.columnField];\n const filters = settings.filters.filter(\n (filter): filter is ValueFilter =>\n filter.type === \"value\" && fields.includes(filter.field)\n );\n const activeFields = [...new Set(filters.map((filter) => filter.field))];\n const groups = activeFields.map((field) => ({\n data: fieldGetter(field),\n filters: filters.filter((filter) => filter.field === field),\n }));\n // Alternatives within one field; intersection across different fields.\n return (id) =>\n groups.every((group) =>\n group.filters.some((filter) => applyFilter(group.data[id], filter))\n );\n },\n};\n"]}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { cn } from './chunk-JNO7OXCC.js';
|
|
2
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
5
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
6
|
+
import { XIcon } from 'lucide-react';
|
|
7
|
+
|
|
8
|
+
function Popover({
|
|
9
|
+
...props
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
12
|
+
}
|
|
13
|
+
function PopoverTrigger({
|
|
14
|
+
...props
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
17
|
+
}
|
|
18
|
+
function PopoverContent({
|
|
19
|
+
className,
|
|
20
|
+
align = "center",
|
|
21
|
+
sideOffset = 8,
|
|
22
|
+
collisionPadding = 12,
|
|
23
|
+
...props
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
26
|
+
PopoverPrimitive.Content,
|
|
27
|
+
{
|
|
28
|
+
"data-slot": "popover-content",
|
|
29
|
+
align,
|
|
30
|
+
sideOffset,
|
|
31
|
+
collisionPadding,
|
|
32
|
+
className: cn(
|
|
33
|
+
"bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe: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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 max-w-[calc(100vw-1.5rem)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border border-border p-3 shadow-md outline-hidden",
|
|
34
|
+
className
|
|
35
|
+
),
|
|
36
|
+
...props
|
|
37
|
+
}
|
|
38
|
+
) });
|
|
39
|
+
}
|
|
40
|
+
function PopoverAnchor({
|
|
41
|
+
...props
|
|
42
|
+
}) {
|
|
43
|
+
return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
44
|
+
}
|
|
45
|
+
function Input({ className, type, ...props }) {
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
"input",
|
|
48
|
+
{
|
|
49
|
+
type,
|
|
50
|
+
"data-slot": "input",
|
|
51
|
+
className: cn(
|
|
52
|
+
"border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground aria-invalid:outline-destructive/60 aria-invalid:ring-destructive/20 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/40 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/60 dark:aria-invalid:border-destructive flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-4 focus-visible:outline-1 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:ring-[3px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-4",
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function Label({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}) {
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
LabelPrimitive.Root,
|
|
65
|
+
{
|
|
66
|
+
"data-slot": "label",
|
|
67
|
+
className: cn(
|
|
68
|
+
"text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
69
|
+
className
|
|
70
|
+
),
|
|
71
|
+
...props
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
function Dialog({
|
|
76
|
+
...props
|
|
77
|
+
}) {
|
|
78
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
79
|
+
}
|
|
80
|
+
function DialogPortal({
|
|
81
|
+
...props
|
|
82
|
+
}) {
|
|
83
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
84
|
+
}
|
|
85
|
+
function DialogOverlay({
|
|
86
|
+
className,
|
|
87
|
+
...props
|
|
88
|
+
}) {
|
|
89
|
+
return /* @__PURE__ */ jsx(
|
|
90
|
+
DialogPrimitive.Overlay,
|
|
91
|
+
{
|
|
92
|
+
"data-slot": "dialog-overlay",
|
|
93
|
+
className: cn(
|
|
94
|
+
"motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-foreground/25",
|
|
95
|
+
className
|
|
96
|
+
),
|
|
97
|
+
...props
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
function DialogContent({
|
|
102
|
+
className,
|
|
103
|
+
children,
|
|
104
|
+
showCloseButton = true,
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
108
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
109
|
+
/* @__PURE__ */ jsxs(
|
|
110
|
+
DialogPrimitive.Content,
|
|
111
|
+
{
|
|
112
|
+
"data-slot": "dialog-content",
|
|
113
|
+
className: cn(
|
|
114
|
+
"bg-background motion-safe:data-[state=open]:animate-in motion-safe: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 border-border p-6 shadow-lg duration-200",
|
|
115
|
+
className
|
|
116
|
+
),
|
|
117
|
+
...props,
|
|
118
|
+
children: [
|
|
119
|
+
children,
|
|
120
|
+
showCloseButton && /* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
|
|
121
|
+
/* @__PURE__ */ jsx(XIcon, {}),
|
|
122
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
123
|
+
] })
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
] });
|
|
128
|
+
}
|
|
129
|
+
function DialogHeader({ className, ...props }) {
|
|
130
|
+
return /* @__PURE__ */ jsx(
|
|
131
|
+
"div",
|
|
132
|
+
{
|
|
133
|
+
"data-slot": "dialog-header",
|
|
134
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
135
|
+
...props
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
function DialogFooter({ className, ...props }) {
|
|
140
|
+
return /* @__PURE__ */ jsx(
|
|
141
|
+
"div",
|
|
142
|
+
{
|
|
143
|
+
"data-slot": "dialog-footer",
|
|
144
|
+
className: cn(
|
|
145
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
146
|
+
className
|
|
147
|
+
),
|
|
148
|
+
...props
|
|
149
|
+
}
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
function DialogTitle({
|
|
153
|
+
className,
|
|
154
|
+
...props
|
|
155
|
+
}) {
|
|
156
|
+
return /* @__PURE__ */ jsx(
|
|
157
|
+
DialogPrimitive.Title,
|
|
158
|
+
{
|
|
159
|
+
"data-slot": "dialog-title",
|
|
160
|
+
className: cn(
|
|
161
|
+
"text-lg leading-none font-semibold tracking-tight",
|
|
162
|
+
className
|
|
163
|
+
),
|
|
164
|
+
...props
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
function DialogDescription({
|
|
169
|
+
className,
|
|
170
|
+
...props
|
|
171
|
+
}) {
|
|
172
|
+
return /* @__PURE__ */ jsx(
|
|
173
|
+
DialogPrimitive.Description,
|
|
174
|
+
{
|
|
175
|
+
"data-slot": "dialog-description",
|
|
176
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
177
|
+
...props
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
|
|
183
|
+
//# sourceMappingURL=chunk-MJPDJ5AS.js.map
|
|
184
|
+
//# sourceMappingURL=chunk-MJPDJ5AS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/popover.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/ui/dialog.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-MJPDJ5AS.js","sourcesContent":["import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 8,\n collisionPadding = 12,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n collisionPadding={collisionPadding}\n className={cn(\n \"bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe: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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 max-w-[calc(100vw-1.5rem)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border border-border p-3 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground aria-invalid:outline-destructive/60 aria-invalid:ring-destructive/20 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/40 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/60 dark:aria-invalid:border-destructive flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-4 focus-visible:outline-1 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:ring-[3px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-foreground/25\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background motion-safe:data-[state=open]:animate-in motion-safe: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 border-border p-6 shadow-lg duration-200\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"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 DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n \"text-lg leading-none font-semibold tracking-tight\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"]}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk5B23JVH3_cjs = require('./chunk-5B23JVH3.cjs');
|
|
4
|
+
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var LabelPrimitive = require('@radix-ui/react-label');
|
|
7
|
+
var DialogPrimitive = require('@radix-ui/react-dialog');
|
|
8
|
+
var lucideReact = require('lucide-react');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
|
|
29
|
+
var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
|
|
30
|
+
var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
|
|
31
|
+
|
|
32
|
+
function Popover({
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
|
|
36
|
+
}
|
|
37
|
+
function PopoverTrigger({
|
|
38
|
+
...props
|
|
39
|
+
}) {
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
41
|
+
}
|
|
42
|
+
function PopoverContent({
|
|
43
|
+
className,
|
|
44
|
+
align = "center",
|
|
45
|
+
sideOffset = 8,
|
|
46
|
+
collisionPadding = 12,
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
+
PopoverPrimitive__namespace.Content,
|
|
51
|
+
{
|
|
52
|
+
"data-slot": "popover-content",
|
|
53
|
+
align,
|
|
54
|
+
sideOffset,
|
|
55
|
+
collisionPadding,
|
|
56
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
57
|
+
"bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe: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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 max-w-[calc(100vw-1.5rem)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border border-border p-3 shadow-md outline-hidden",
|
|
58
|
+
className
|
|
59
|
+
),
|
|
60
|
+
...props
|
|
61
|
+
}
|
|
62
|
+
) });
|
|
63
|
+
}
|
|
64
|
+
function PopoverAnchor({
|
|
65
|
+
...props
|
|
66
|
+
}) {
|
|
67
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
68
|
+
}
|
|
69
|
+
function Input({ className, type, ...props }) {
|
|
70
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
71
|
+
"input",
|
|
72
|
+
{
|
|
73
|
+
type,
|
|
74
|
+
"data-slot": "input",
|
|
75
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
76
|
+
"border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground aria-invalid:outline-destructive/60 aria-invalid:ring-destructive/20 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/40 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/60 dark:aria-invalid:border-destructive flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-4 focus-visible:outline-1 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:ring-[3px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-4",
|
|
77
|
+
className
|
|
78
|
+
),
|
|
79
|
+
...props
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
function Label({
|
|
84
|
+
className,
|
|
85
|
+
...props
|
|
86
|
+
}) {
|
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
+
LabelPrimitive__namespace.Root,
|
|
89
|
+
{
|
|
90
|
+
"data-slot": "label",
|
|
91
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
92
|
+
"text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
93
|
+
className
|
|
94
|
+
),
|
|
95
|
+
...props
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
function Dialog({
|
|
100
|
+
...props
|
|
101
|
+
}) {
|
|
102
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "dialog", ...props });
|
|
103
|
+
}
|
|
104
|
+
function DialogPortal({
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "dialog-portal", ...props });
|
|
108
|
+
}
|
|
109
|
+
function DialogOverlay({
|
|
110
|
+
className,
|
|
111
|
+
...props
|
|
112
|
+
}) {
|
|
113
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
114
|
+
DialogPrimitive__namespace.Overlay,
|
|
115
|
+
{
|
|
116
|
+
"data-slot": "dialog-overlay",
|
|
117
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
118
|
+
"motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-foreground/25",
|
|
119
|
+
className
|
|
120
|
+
),
|
|
121
|
+
...props
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
function DialogContent({
|
|
126
|
+
className,
|
|
127
|
+
children,
|
|
128
|
+
showCloseButton = true,
|
|
129
|
+
...props
|
|
130
|
+
}) {
|
|
131
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
134
|
+
DialogPrimitive__namespace.Content,
|
|
135
|
+
{
|
|
136
|
+
"data-slot": "dialog-content",
|
|
137
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
138
|
+
"bg-background motion-safe:data-[state=open]:animate-in motion-safe: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 border-border p-6 shadow-lg duration-200",
|
|
139
|
+
className
|
|
140
|
+
),
|
|
141
|
+
...props,
|
|
142
|
+
children: [
|
|
143
|
+
children,
|
|
144
|
+
showCloseButton && /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
146
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
147
|
+
] })
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
] });
|
|
152
|
+
}
|
|
153
|
+
function DialogHeader({ className, ...props }) {
|
|
154
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
"div",
|
|
156
|
+
{
|
|
157
|
+
"data-slot": "dialog-header",
|
|
158
|
+
className: chunk5B23JVH3_cjs.cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
159
|
+
...props
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function DialogFooter({ className, ...props }) {
|
|
164
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
"data-slot": "dialog-footer",
|
|
168
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
169
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
170
|
+
className
|
|
171
|
+
),
|
|
172
|
+
...props
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
function DialogTitle({
|
|
177
|
+
className,
|
|
178
|
+
...props
|
|
179
|
+
}) {
|
|
180
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
181
|
+
DialogPrimitive__namespace.Title,
|
|
182
|
+
{
|
|
183
|
+
"data-slot": "dialog-title",
|
|
184
|
+
className: chunk5B23JVH3_cjs.cn(
|
|
185
|
+
"text-lg leading-none font-semibold tracking-tight",
|
|
186
|
+
className
|
|
187
|
+
),
|
|
188
|
+
...props
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
function DialogDescription({
|
|
193
|
+
className,
|
|
194
|
+
...props
|
|
195
|
+
}) {
|
|
196
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
197
|
+
DialogPrimitive__namespace.Description,
|
|
198
|
+
{
|
|
199
|
+
"data-slot": "dialog-description",
|
|
200
|
+
className: chunk5B23JVH3_cjs.cn("text-muted-foreground text-sm", className),
|
|
201
|
+
...props
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
exports.Dialog = Dialog;
|
|
207
|
+
exports.DialogContent = DialogContent;
|
|
208
|
+
exports.DialogDescription = DialogDescription;
|
|
209
|
+
exports.DialogFooter = DialogFooter;
|
|
210
|
+
exports.DialogHeader = DialogHeader;
|
|
211
|
+
exports.DialogTitle = DialogTitle;
|
|
212
|
+
exports.Input = Input;
|
|
213
|
+
exports.Label = Label;
|
|
214
|
+
exports.Popover = Popover;
|
|
215
|
+
exports.PopoverAnchor = PopoverAnchor;
|
|
216
|
+
exports.PopoverContent = PopoverContent;
|
|
217
|
+
exports.PopoverTrigger = PopoverTrigger;
|
|
218
|
+
//# sourceMappingURL=chunk-MJROUIDZ.cjs.map
|
|
219
|
+
//# sourceMappingURL=chunk-MJROUIDZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/popover.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/ui/dialog.tsx"],"names":["PopoverPrimitive","jsx","cn","LabelPrimitive","DialogPrimitive","jsxs","XIcon"],"mappings":"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","file":"chunk-MJROUIDZ.cjs","sourcesContent":["import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 8,\n collisionPadding = 12,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n collisionPadding={collisionPadding}\n className={cn(\n \"bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe: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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 max-w-[calc(100vw-1.5rem)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border border-border p-3 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground aria-invalid:outline-destructive/60 aria-invalid:ring-destructive/20 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60 dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/40 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/60 dark:aria-invalid:border-destructive flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-4 focus-visible:outline-1 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:focus-visible:ring-[3px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-foreground/25\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background motion-safe:data-[state=open]:animate-in motion-safe: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 border-border p-6 shadow-lg duration-200\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"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 DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n \"text-lg leading-none font-semibold tracking-tight\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"]}
|