@mieweb/ui 0.6.1-dev.158 → 0.6.1-dev.159

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 (59) hide show
  1. package/dist/{chunk-7PA26KBF.cjs → chunk-3AMNAMJA.cjs} +4 -2
  2. package/dist/chunk-3AMNAMJA.cjs.map +1 -0
  3. package/dist/{chunk-3SSXDWD7.js → chunk-4N72FAQW.js} +13 -11
  4. package/dist/chunk-4N72FAQW.js.map +1 -0
  5. package/dist/{chunk-UHPQYBXQ.js → chunk-7QZSJFYT.js} +3 -6
  6. package/dist/chunk-7QZSJFYT.js.map +1 -0
  7. package/dist/{chunk-2T4JU5RH.cjs → chunk-CB4JX5EJ.cjs} +3 -6
  8. package/dist/chunk-CB4JX5EJ.cjs.map +1 -0
  9. package/dist/{chunk-TXYTMU3K.js → chunk-EYJDPYOP.js} +3 -3
  10. package/dist/{chunk-TXYTMU3K.js.map → chunk-EYJDPYOP.js.map} +1 -1
  11. package/dist/{chunk-6R2ZPDN7.cjs → chunk-HMQ2PRTB.cjs} +3 -3
  12. package/dist/{chunk-6R2ZPDN7.cjs.map → chunk-HMQ2PRTB.cjs.map} +1 -1
  13. package/dist/{chunk-FADQVM4M.cjs → chunk-KX4NWZIR.cjs} +5 -5
  14. package/dist/{chunk-FADQVM4M.cjs.map → chunk-KX4NWZIR.cjs.map} +1 -1
  15. package/dist/{chunk-RXY5SD3O.js → chunk-RUGWUQ47.js} +4 -2
  16. package/dist/chunk-RUGWUQ47.js.map +1 -0
  17. package/dist/{chunk-ASLZUFH4.js → chunk-TQV5CGSA.js} +3 -3
  18. package/dist/{chunk-ASLZUFH4.js.map → chunk-TQV5CGSA.js.map} +1 -1
  19. package/dist/{chunk-LZPPH5BW.cjs → chunk-WJIANZPI.cjs} +13 -11
  20. package/dist/chunk-WJIANZPI.cjs.map +1 -0
  21. package/dist/components/RichTextEditor/index.cjs +4 -4
  22. package/dist/components/RichTextEditor/index.js +1 -1
  23. package/dist/components/SuperChat/index.cjs +61 -10
  24. package/dist/components/SuperChat/index.cjs.map +1 -1
  25. package/dist/components/SuperChat/index.js +60 -9
  26. package/dist/components/SuperChat/index.js.map +1 -1
  27. package/dist/components/SuperChat/plugins/index.cjs +7 -4
  28. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  29. package/dist/components/SuperChat/plugins/index.js +6 -3
  30. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  31. package/dist/datavis.cjs +5 -5
  32. package/dist/datavis.d.cts +1 -0
  33. package/dist/datavis.d.ts +1 -0
  34. package/dist/datavis.js +1 -1
  35. package/dist/index.cjs +52 -52
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.js +7 -7
  38. package/dist/index.js.map +1 -1
  39. package/dist/kerebron.cjs +15 -0
  40. package/dist/kerebron.cjs.map +1 -1
  41. package/dist/kerebron.js +15 -0
  42. package/dist/kerebron.js.map +1 -1
  43. package/dist/{nitroTableGrid-J7F6D2QA.cjs → nitroTableGrid-RQNSZQO4.cjs} +14 -11
  44. package/dist/nitroTableGrid-RQNSZQO4.cjs.map +1 -0
  45. package/dist/nitroTableGrid-W6XWRFA7.js +25 -0
  46. package/dist/nitroTableGrid-W6XWRFA7.js.map +1 -0
  47. package/dist/styles.css +1 -1
  48. package/dist/tailwind-preset.cjs +4 -4
  49. package/dist/tailwind-preset.js +1 -1
  50. package/package.json +4 -4
  51. package/dist/chunk-2T4JU5RH.cjs.map +0 -1
  52. package/dist/chunk-3SSXDWD7.js.map +0 -1
  53. package/dist/chunk-7PA26KBF.cjs.map +0 -1
  54. package/dist/chunk-LZPPH5BW.cjs.map +0 -1
  55. package/dist/chunk-RXY5SD3O.js.map +0 -1
  56. package/dist/chunk-UHPQYBXQ.js.map +0 -1
  57. package/dist/nitroTableGrid-GKJAX3J4.js +0 -22
  58. package/dist/nitroTableGrid-GKJAX3J4.js.map +0 -1
  59. package/dist/nitroTableGrid-J7F6D2QA.cjs.map +0 -1
@@ -105,26 +105,28 @@ function mergeTableDef(tableDef, features) {
105
105
  return void 0;
106
106
  }
107
107
  const { rowMode, ...featureFlags } = features ?? {};
108
+ const mergedFeatures = Object.keys(featureFlags).length > 0 ? {
109
+ ...tableDef?.features ?? {},
110
+ ...featureFlags
111
+ } : void 0;
108
112
  return {
109
113
  ...tableDef,
110
114
  ...rowMode !== void 0 ? { rowMode } : {},
111
- ...Object.keys(featureFlags).length > 0 ? {
112
- features: {
113
- ...tableDef?.features ?? {},
114
- ...featureFlags
115
- }
116
- } : {}
115
+ ...mergedFeatures ? { features: mergedFeatures } : {}
117
116
  };
118
117
  }
119
118
  function DataVisNitroSource(props) {
120
119
  const { type, children } = props;
121
120
  const url = props.type === "http" ? props.url : void 0;
121
+ const varName = props.type === "local" ? props.varName : void 0;
122
122
  const viewRef = react.useRef(null);
123
- if (viewRef.current === null || viewRef.current._dvType !== type || viewRef.current._dvUrl !== url) {
124
- const source = props.type === "http" ? new datavisAce.Source({ type, url: props.url }) : new datavisAce.Source({ type });
123
+ if (viewRef.current === null || viewRef.current._dvType !== type || viewRef.current._dvUrl !== url || viewRef.current._dvVarName !== varName) {
124
+ const source = props.type === "http" ? new datavisAce.Source({ type, url: props.url }) : new datavisAce.Source(
125
+ props.type === "local" && props.varName ? { type, varName: props.varName } : { type }
126
+ );
125
127
  viewRef.current = Object.assign(
126
128
  new datavisAce.ComputedView(source),
127
- { _dvType: type, _dvUrl: url }
129
+ { _dvType: type, _dvUrl: url, _dvVarName: varName }
128
130
  );
129
131
  }
130
132
  return /* @__PURE__ */ jsxRuntime.jsx(DataVisNitroContext.Provider, { value: viewRef.current, children });
@@ -364,5 +366,5 @@ exports.DataVisNitroContext = DataVisNitroContext;
364
366
  exports.DataVisNitroGraph = DataVisNitroGraph;
365
367
  exports.DataVisNitroGrid = DataVisNitroGrid;
366
368
  exports.DataVisNitroSource = DataVisNitroSource;
367
- //# sourceMappingURL=chunk-LZPPH5BW.cjs.map
368
- //# sourceMappingURL=chunk-LZPPH5BW.cjs.map
369
+ //# sourceMappingURL=chunk-WJIANZPI.cjs.map
370
+ //# sourceMappingURL=chunk-WJIANZPI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DataVisNITRO/DataVisNITRO.tsx","../src/components/DataVisNITRO/DataVisNitroGraph.tsx"],"names":["createContext","determineColumns","useRef","Source","ComputedView","useView","useMemo","buildAggregateFunctions","getBuiltinGroupFunctions","jsx","DataGrid","TableRenderer","useContext","isObject","normalizeTypeInfo","normalizeFieldType","buildColumnFromField","buildResolvedColumns","buildFallbackFieldOrder","useState","useCallback","GraphView"],"mappings":"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","file":"chunk-WJIANZPI.cjs","sourcesContent":["import React, { createContext, useContext, useMemo, useRef } from 'react';\nimport { ComputedView, Source } from 'datavis-ace';\n\nimport {\n DataGrid,\n determineColumns,\n getBuiltinGroupFunctions,\n buildAggregateFunctions,\n useView,\n TableRenderer,\n type DataGridProps,\n type GridTableDef,\n type ViewInstance,\n type TableRendererProps,\n type TableColumn,\n type TableFeatures,\n type ColumnFilterConfig,\n type AggregateFunction,\n type GroupFunctionDef,\n} from '@mieweb/datavis';\n\ntype TranslateFn = (key: string, ...args: unknown[]) => string;\n\ntype DataVisNitroSourceType = 'http' | 'local' | 'file';\n\ninterface HttpDataVisNitroSourceProps {\n type: 'http';\n url: string;\n children?: React.ReactNode;\n}\n\ninterface LocalDataVisNitroSourceProps {\n type: 'local';\n varName?: string;\n children?: React.ReactNode;\n}\n\ninterface FileDataVisNitroSourceProps {\n type: 'file';\n children?: React.ReactNode;\n}\n\nexport type DataVisNitroSourceProps =\n | HttpDataVisNitroSourceProps\n | LocalDataVisNitroSourceProps\n | FileDataVisNitroSourceProps;\n\ntype TrackedViewInstance = ViewInstance & {\n _dvType: DataVisNitroSourceType;\n _dvUrl: string | undefined;\n};\n\ntype DataVisTypeInfoEntry = {\n type?: string;\n displayText?: string;\n format?: string | Record<string, unknown>;\n internalType?: string;\n};\n\ntype DataVisTypeInfoMap = Record<string, DataVisTypeInfoEntry>;\n\ntype DataVisTypeInfoOrdMap = {\n keys?: () => string[];\n get?: (key: string) => DataVisTypeInfoEntry | undefined;\n};\n\nexport type DataVisNitroColumn = string | TableColumn;\n\nexport interface DataVisNitroGridProps\n extends\n Omit<DataGridProps, 'view' | 'children' | 'allColumns'>,\n Pick<\n TableRendererProps,\n | 'formatCell'\n | 'onColumnReorder'\n | 'onColumnResize'\n | 'onHeaderContextMenu'\n | 'onRowClick'\n | 'onRowDoubleClick'\n | 'onSelectionChange'\n > {\n columns?: DataVisNitroColumn[];\n allColumns?: TableColumn[];\n features?: TableFeatures;\n filterColumns?: ColumnFilterConfig[];\n aggregateFunctions?: AggregateFunction[];\n groupFunctionDefs?: GroupFunctionDef[];\n style?: React.CSSProperties;\n trans?: TranslateFn;\n}\n\nexport const DataVisNitroContext = createContext<ViewInstance | null>(null);\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction normalizeTypeInfo(typeInfo: unknown): DataVisTypeInfoMap {\n if (Array.isArray(typeInfo)) {\n return Object.fromEntries(\n typeInfo.filter(isObject).map((entry) => [entry.field, entry])\n ) as DataVisTypeInfoMap;\n }\n\n if (!isObject(typeInfo)) {\n return {};\n }\n\n const maybeOrdMap = typeInfo as DataVisTypeInfoOrdMap;\n if (\n typeof maybeOrdMap.keys === 'function' &&\n typeof maybeOrdMap.get === 'function'\n ) {\n return Object.fromEntries(\n maybeOrdMap.keys().map((field) => [field, maybeOrdMap.get?.(field) ?? {}])\n );\n }\n\n return Object.fromEntries(\n Object.entries(typeInfo).filter(([, value]) => isObject(value))\n ) as DataVisTypeInfoMap;\n}\n\nfunction normalizeFieldType(type: string | undefined): string | undefined {\n if (!type) return undefined;\n if (type === 'integer') return 'number';\n if (type === 'boolean') return 'string';\n return type;\n}\n\nfunction buildColumnFromField(\n field: string,\n typeInfo: DataVisTypeInfoMap\n): TableColumn {\n const info = typeInfo[field];\n const normalizedType = normalizeFieldType(info?.type);\n\n return {\n field,\n header: info?.displayText ?? field,\n sortable: true,\n filterable: true,\n resizable: true,\n reorderable: true,\n ...(normalizedType\n ? {\n typeInfo: {\n type: normalizedType,\n ...(info?.format !== undefined ? { format: info.format } : {}),\n ...(info?.internalType !== undefined\n ? { internalType: info.internalType }\n : {}),\n },\n }\n : {}),\n };\n}\n\nfunction mergeColumnWithTypeInfo(\n column: TableColumn,\n typeInfo: DataVisTypeInfoMap\n): TableColumn {\n const fallbackColumn = buildColumnFromField(column.field, typeInfo);\n return {\n ...fallbackColumn,\n ...column,\n header: column.header ?? fallbackColumn.header,\n typeInfo: column.typeInfo ?? fallbackColumn.typeInfo,\n };\n}\n\nfunction buildResolvedColumns(\n columns: DataVisNitroColumn[] | undefined,\n fallbackFields: string[],\n typeInfo: DataVisTypeInfoMap\n): TableColumn[] {\n if (columns && columns.length > 0) {\n return columns.map((column) => {\n if (typeof column === 'string') {\n return buildColumnFromField(column, typeInfo);\n }\n\n return mergeColumnWithTypeInfo(column, typeInfo);\n });\n }\n\n return fallbackFields.map((field) => buildColumnFromField(field, typeInfo));\n}\n\nfunction buildFallbackFieldOrder(\n typeInfo: DataVisTypeInfoMap,\n data: unknown[] | null\n): string[] {\n const rows = Array.isArray(data)\n ? data.filter((row): row is Record<string, unknown> => isObject(row))\n : null;\n\n const normalizedEntries = Object.fromEntries(\n Object.entries(typeInfo).map(([field, info]) => [\n field,\n {\n type: normalizeFieldType(info.type) ?? 'string',\n ...(info.displayText !== undefined\n ? { displayText: info.displayText }\n : {}),\n },\n ])\n );\n\n return determineColumns(null, normalizedEntries, rows);\n}\n\nfunction buildControlFields(\n columns: TableColumn[]\n): NonNullable<DataGridProps['controlFields']> {\n return columns.map((column) => ({\n field: column.field,\n displayName: column.header,\n type: column.typeInfo?.type,\n }));\n}\n\nfunction buildAggregateFields(\n columns: TableColumn[]\n): NonNullable<DataGridProps['aggregateFields']> {\n return columns.map((column) => ({\n field: column.field,\n displayName: column.header,\n }));\n}\n\nfunction mergeTableDef(\n tableDef: GridTableDef | undefined,\n features: TableFeatures | undefined\n): GridTableDef | undefined {\n if (!tableDef && !features) {\n return undefined;\n }\n\n const { rowMode, ...featureFlags } = features ?? {};\n const mergedFeatures =\n Object.keys(featureFlags).length > 0\n ? ({\n ...(tableDef?.features ?? {}),\n ...featureFlags,\n } as GridTableDef['features'])\n : undefined;\n\n return {\n ...tableDef,\n ...(rowMode !== undefined ? { rowMode } : {}),\n ...(mergedFeatures ? { features: mergedFeatures } : {}),\n };\n}\n\nfunction DataVisNitroSource(props: DataVisNitroSourceProps) {\n const { type, children } = props;\n const url = props.type === 'http' ? props.url : undefined;\n const varName = props.type === 'local' ? props.varName : undefined;\n const viewRef = useRef<TrackedViewInstance | null>(null);\n\n if (\n viewRef.current === null ||\n viewRef.current._dvType !== type ||\n viewRef.current._dvUrl !== url ||\n (viewRef.current as TrackedViewInstance & { _dvVarName?: string })\n ._dvVarName !== varName\n ) {\n const source =\n props.type === 'http'\n ? new Source({ type, url: props.url })\n : new Source(\n props.type === 'local' && props.varName\n ? { type, varName: props.varName }\n : { type }\n );\n\n viewRef.current = Object.assign(\n new ComputedView(source) as unknown as ViewInstance,\n { _dvType: type, _dvUrl: url, _dvVarName: varName }\n );\n }\n\n return (\n <DataVisNitroContext.Provider value={viewRef.current}>\n {children}\n </DataVisNitroContext.Provider>\n );\n}\n\nfunction DataVisNitroGridInner({\n computedView,\n columns,\n allColumns,\n features,\n filterColumns,\n controlFields,\n aggregateFields,\n aggregateFunctions,\n groupFunctionDefs,\n tableDef,\n formatCell,\n onColumnReorder,\n onColumnResize,\n onHeaderContextMenu,\n onRowClick,\n onRowDoubleClick,\n onSelectionChange,\n style,\n trans,\n ...dataGridProps\n}: DataVisNitroGridProps & { computedView: ViewInstance }) {\n const viewState = useView(computedView, false);\n\n const normalizedTypeInfo = useMemo(\n () =>\n normalizeTypeInfo(viewState.typeInfo ?? computedView?.typeInfo ?? null),\n [computedView, viewState.typeInfo]\n );\n\n const fallbackFields = useMemo(\n () =>\n buildFallbackFieldOrder(normalizedTypeInfo, viewState.data?.data ?? null),\n [normalizedTypeInfo, viewState.data?.data]\n );\n\n const resolvedAllColumns = useMemo(() => {\n if (allColumns && allColumns.length > 0) {\n return allColumns.map((column) =>\n mergeColumnWithTypeInfo(column, normalizedTypeInfo)\n );\n }\n\n return buildResolvedColumns(columns, fallbackFields, normalizedTypeInfo);\n }, [allColumns, columns, fallbackFields, normalizedTypeInfo]);\n\n const resolvedColumns = useMemo(() => {\n if (columns && columns.length > 0) {\n return buildResolvedColumns(\n columns,\n fallbackFields,\n normalizedTypeInfo\n ).filter((column) => column.visible !== false);\n }\n\n return resolvedAllColumns.filter((column) => column.visible !== false);\n }, [columns, fallbackFields, normalizedTypeInfo, resolvedAllColumns]);\n\n const effectiveAggregateFunctions = useMemo(\n () => aggregateFunctions ?? buildAggregateFunctions(),\n [aggregateFunctions]\n );\n\n const effectiveGroupFunctionDefs = useMemo(\n () =>\n groupFunctionDefs ??\n getBuiltinGroupFunctions(trans as TranslateFn | undefined),\n [groupFunctionDefs, trans]\n );\n\n const effectiveTableDef = useMemo(\n () => mergeTableDef(tableDef, features),\n [tableDef, features]\n );\n\n const aggFnLabels = useMemo(\n () =>\n Object.fromEntries(\n effectiveAggregateFunctions.map((fn) => [fn.name, fn.label])\n ),\n [effectiveAggregateFunctions]\n );\n\n return (\n <div style={style}>\n <DataGrid\n {...dataGridProps}\n view={computedView}\n tableDef={effectiveTableDef}\n allColumns={resolvedAllColumns}\n filterColumns={filterColumns ?? []}\n controlFields={controlFields ?? buildControlFields(resolvedAllColumns)}\n aggregateFields={\n aggregateFields ?? buildAggregateFields(resolvedAllColumns)\n }\n aggregateFunctions={effectiveAggregateFunctions}\n groupFunctionDefs={effectiveGroupFunctionDefs}\n >\n <TableRenderer\n viewData={viewState.data}\n columns={resolvedColumns}\n features={\n (effectiveTableDef?.features as TableFeatures | undefined) ??\n features\n }\n totalRows={viewState.totalRowCount ?? viewState.rowCount}\n loading={viewState.loading || !viewState.ready}\n formatCell={formatCell}\n aggFnLabels={aggFnLabels}\n onColumnReorder={onColumnReorder}\n onColumnResize={onColumnResize}\n onHeaderContextMenu={onHeaderContextMenu}\n onRowClick={onRowClick}\n onRowDoubleClick={onRowDoubleClick}\n onSelectionChange={onSelectionChange}\n />\n </DataGrid>\n </div>\n );\n}\n\nfunction DataVisNitroGrid(props: DataVisNitroGridProps) {\n const computedView = useContext(DataVisNitroContext);\n\n if (computedView === null) {\n return null;\n }\n\n return <DataVisNitroGridInner {...props} computedView={computedView} />;\n}\n\nDataVisNitroSource.displayName = 'DataVisNitroSource';\nDataVisNitroGrid.displayName = 'DataVisNitroGrid';\n\nexport { DataVisNitroGrid, DataVisNitroSource };\n","import React, { useCallback, useContext, useMemo, useState } from 'react';\n\nimport {\n GraphView,\n determineColumns,\n useView,\n type GraphConfig,\n type TableColumn,\n type ViewInstance,\n} from '@mieweb/datavis';\n\nimport { DataVisNitroContext } from './DataVisNITRO';\nimport type { DataVisNitroColumn } from './DataVisNITRO';\n\ntype DataVisTypeInfoEntry = {\n type?: string;\n displayText?: string;\n format?: string | Record<string, unknown>;\n internalType?: string;\n};\n\ntype DataVisTypeInfoMap = Record<string, DataVisTypeInfoEntry>;\n\ntype DataVisTypeInfoOrdMap = {\n keys?: () => string[];\n get?: (key: string) => DataVisTypeInfoEntry | undefined;\n};\n\nexport interface DataVisNitroGraphProps {\n /** Column definitions or field names to include in the graph. */\n columns?: DataVisNitroColumn[];\n /** Initial graph configuration (chart type, axes, etc.). */\n config?: Partial<GraphConfig>;\n /** Locale for formatting. */\n locale?: string;\n /** Additional CSS class name. */\n className?: string;\n /** CSS height for the container. */\n height?: string;\n /** Callback when the user changes graph configuration. */\n onConfigChange?: (config: GraphConfig) => void;\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction normalizeTypeInfo(typeInfo: unknown): DataVisTypeInfoMap {\n if (Array.isArray(typeInfo)) {\n return Object.fromEntries(\n typeInfo.filter(isObject).map((entry) => [entry.field, entry])\n ) as DataVisTypeInfoMap;\n }\n\n if (!isObject(typeInfo)) {\n return {};\n }\n\n const maybeOrdMap = typeInfo as DataVisTypeInfoOrdMap;\n if (\n typeof maybeOrdMap.keys === 'function' &&\n typeof maybeOrdMap.get === 'function'\n ) {\n return Object.fromEntries(\n maybeOrdMap.keys().map((field) => [field, maybeOrdMap.get?.(field) ?? {}])\n );\n }\n\n return Object.fromEntries(\n Object.entries(typeInfo).filter(([, value]) => isObject(value))\n ) as DataVisTypeInfoMap;\n}\n\nfunction normalizeFieldType(type: string | undefined): string | undefined {\n if (!type) return undefined;\n if (type === 'integer') return 'number';\n if (type === 'boolean') return 'string';\n return type;\n}\n\nfunction buildColumnFromField(\n field: string,\n typeInfo: DataVisTypeInfoMap\n): TableColumn {\n const info = typeInfo[field];\n const normalizedType = normalizeFieldType(info?.type);\n\n return {\n field,\n header: info?.displayText ?? field,\n sortable: true,\n filterable: true,\n resizable: true,\n reorderable: true,\n ...(normalizedType\n ? {\n typeInfo: {\n type: normalizedType,\n ...(info?.format !== undefined ? { format: info.format } : {}),\n ...(info?.internalType !== undefined\n ? { internalType: info.internalType }\n : {}),\n },\n }\n : {}),\n };\n}\n\nfunction buildResolvedColumns(\n columns: DataVisNitroColumn[] | undefined,\n fallbackFields: string[],\n typeInfo: DataVisTypeInfoMap\n): TableColumn[] {\n if (columns && columns.length > 0) {\n return columns.map((column) => {\n if (typeof column === 'string') {\n return buildColumnFromField(column, typeInfo);\n }\n return column;\n });\n }\n\n return fallbackFields.map((field) => buildColumnFromField(field, typeInfo));\n}\n\nfunction buildFallbackFieldOrder(\n typeInfo: DataVisTypeInfoMap,\n data: unknown[] | null\n): string[] {\n const rows = Array.isArray(data)\n ? data.filter((row): row is Record<string, unknown> => isObject(row))\n : null;\n\n const normalizedEntries = Object.fromEntries(\n Object.entries(typeInfo).map(([field, info]) => [\n field,\n {\n type: normalizeFieldType(info.type) ?? 'string',\n ...(info.displayText !== undefined\n ? { displayText: info.displayText }\n : {}),\n },\n ])\n );\n\n return determineColumns(null, normalizedEntries, rows);\n}\n\nfunction DataVisNitroGraphInner({\n computedView,\n columns,\n config: initialConfig,\n locale,\n className,\n height,\n onConfigChange,\n}: DataVisNitroGraphProps & { computedView: ViewInstance }) {\n const viewState = useView(computedView);\n const [liveConfig, setLiveConfig] = useState<\n Partial<GraphConfig> | undefined\n >(initialConfig);\n\n const handleConfigChange = useCallback(\n (newConfig: GraphConfig) => {\n setLiveConfig(newConfig);\n onConfigChange?.(newConfig);\n },\n [onConfigChange]\n );\n\n const normalizedTypeInfo = useMemo(\n () =>\n normalizeTypeInfo(viewState.typeInfo ?? computedView?.typeInfo ?? null),\n [computedView, viewState.typeInfo]\n );\n\n const fallbackFields = useMemo(\n () =>\n buildFallbackFieldOrder(normalizedTypeInfo, viewState.data?.data ?? null),\n [normalizedTypeInfo, viewState.data?.data]\n );\n\n const resolvedColumns = useMemo(\n () => buildResolvedColumns(columns, fallbackFields, normalizedTypeInfo),\n [columns, fallbackFields, normalizedTypeInfo]\n );\n\n return (\n <div style={height ? { height } : undefined}>\n <GraphView\n viewData={viewState.data}\n columns={resolvedColumns}\n config={liveConfig}\n locale={locale}\n className={className}\n onConfigChange={handleConfigChange}\n />\n </div>\n );\n}\n\nfunction DataVisNitroGraph(props: DataVisNitroGraphProps) {\n const computedView = useContext(DataVisNitroContext);\n\n if (computedView === null) {\n return null;\n }\n\n return <DataVisNitroGraphInner {...props} computedView={computedView} />;\n}\n\nDataVisNitroGraph.displayName = 'DataVisNitroGraph';\n\nexport { DataVisNitroGraph };\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk6R2ZPDN7_cjs = require('../../chunk-6R2ZPDN7.cjs');
3
+ var chunkHMQ2PRTB_cjs = require('../../chunk-HMQ2PRTB.cjs');
4
4
  require('../../chunk-OXYFTCRW.cjs');
5
5
  require('../../chunk-H4T5T65N.cjs');
6
6
  require('../../chunk-A2QVQF54.cjs');
@@ -14,15 +14,15 @@ require('../../chunk-OR5DRJCW.cjs');
14
14
 
15
15
  Object.defineProperty(exports, "RichTextEditor", {
16
16
  enumerable: true,
17
- get: function () { return chunk6R2ZPDN7_cjs.RichTextEditor; }
17
+ get: function () { return chunkHMQ2PRTB_cjs.RichTextEditor; }
18
18
  });
19
19
  Object.defineProperty(exports, "convertAngleBracketsToMustache", {
20
20
  enumerable: true,
21
- get: function () { return chunk6R2ZPDN7_cjs.convertAngleBracketsToMustache; }
21
+ get: function () { return chunkHMQ2PRTB_cjs.convertAngleBracketsToMustache; }
22
22
  });
23
23
  Object.defineProperty(exports, "processDictation", {
24
24
  enumerable: true,
25
- get: function () { return chunk6R2ZPDN7_cjs.processDictation; }
25
+ get: function () { return chunkHMQ2PRTB_cjs.processDictation; }
26
26
  });
27
27
  Object.defineProperty(exports, "isHtmlEmpty", {
28
28
  enumerable: true,
@@ -1,4 +1,4 @@
1
- export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from '../../chunk-TXYTMU3K.js';
1
+ export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from '../../chunk-EYJDPYOP.js';
2
2
  import '../../chunk-BX6BTDTR.js';
3
3
  import '../../chunk-M7BLVBL4.js';
4
4
  import '../../chunk-ZVSW2KS6.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkJFLC7SHM_cjs = require('../../chunk-JFLC7SHM.cjs');
4
4
  var chunkIWDQPSJN_cjs = require('../../chunk-IWDQPSJN.cjs');
5
- var chunk2T4JU5RH_cjs = require('../../chunk-2T4JU5RH.cjs');
5
+ var chunkCB4JX5EJ_cjs = require('../../chunk-CB4JX5EJ.cjs');
6
6
  var chunkH4T5T65N_cjs = require('../../chunk-H4T5T65N.cjs');
7
7
  require('../../chunk-LOTMAKUG.cjs');
8
8
  require('../../chunk-MSRU3XBH.cjs');
@@ -126,7 +126,7 @@ function baseComponents() {
126
126
  {
127
127
  ...props,
128
128
  className: chunkOR5DRJCW_cjs.cn(
129
- "text-primary-700 hover:text-primary-800 dark:text-primary-300 underline underline-offset-2",
129
+ "text-primary-800 hover:text-primary-900 dark:text-primary-300 underline underline-offset-2",
130
130
  props.className
131
131
  ),
132
132
  target: props.target ?? "_blank",
@@ -138,6 +138,7 @@ function baseComponents() {
138
138
  "pre",
139
139
  {
140
140
  ...props,
141
+ tabIndex: 0,
141
142
  className: chunkOR5DRJCW_cjs.cn(
142
143
  "overflow-x-auto rounded-lg bg-neutral-900 p-3 text-sm text-neutral-100 dark:bg-neutral-950",
143
144
  props.className
@@ -151,12 +152,24 @@ function baseComponents() {
151
152
  {
152
153
  ...props,
153
154
  className: chunkOR5DRJCW_cjs.cn(
154
- !isBlock && "rounded bg-neutral-200 px-1 py-0.5 text-[0.85em] dark:bg-neutral-700",
155
+ !isBlock && "rounded bg-neutral-200 px-1 py-0.5 text-[0.85em] text-neutral-800 dark:bg-neutral-700 dark:text-neutral-100",
155
156
  props.className
156
157
  )
157
158
  }
158
159
  );
159
160
  },
161
+ input: ({ node: _node, ...props }) => {
162
+ if (props.type === "checkbox") {
163
+ return /* @__PURE__ */ jsxRuntime.jsx(
164
+ "input",
165
+ {
166
+ ...props,
167
+ "aria-label": props["aria-label"] ?? (props["aria-labelledby"] ? void 0 : "Task list item")
168
+ }
169
+ );
170
+ }
171
+ return /* @__PURE__ */ jsxRuntime.jsx("input", { ...props });
172
+ },
160
173
  table: ({ node: _node, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-2 overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
161
174
  "table",
162
175
  {
@@ -337,6 +350,43 @@ function lastMessageByTime(thread) {
337
350
  }
338
351
  return latest;
339
352
  }
353
+ function parseHexColor(value) {
354
+ const hex = value.trim();
355
+ if (!/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(hex)) return null;
356
+ const normalized = hex.length === 4 ? "#" + [...hex.slice(1)].map((char) => char + char).join("") : hex;
357
+ return [1, 3, 5].map(
358
+ (start) => parseInt(normalized.slice(start, start + 2), 16)
359
+ );
360
+ }
361
+ function relativeLuminanceChannel(channel) {
362
+ const normalized = channel / 255;
363
+ return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;
364
+ }
365
+ function relativeLuminance(value) {
366
+ const rgb = parseHexColor(value);
367
+ if (!rgb) return null;
368
+ const [red, green, blue] = rgb;
369
+ return 0.2126 * relativeLuminanceChannel(red) + 0.7152 * relativeLuminanceChannel(green) + 0.0722 * relativeLuminanceChannel(blue);
370
+ }
371
+ function contrastRatio(foreground, background) {
372
+ const foregroundLuminance = relativeLuminance(foreground);
373
+ const backgroundLuminance = relativeLuminance(background);
374
+ if (foregroundLuminance === null || backgroundLuminance === null) return null;
375
+ const lighter = Math.max(foregroundLuminance, backgroundLuminance);
376
+ const darker = Math.min(foregroundLuminance, backgroundLuminance);
377
+ return (lighter + 0.05) / (darker + 0.05);
378
+ }
379
+ function minimumContrastRatio(value, backgrounds) {
380
+ const contrasts = backgrounds.map((background) => contrastRatio(value, background)).filter((contrast) => contrast !== null);
381
+ if (contrasts.length !== backgrounds.length) return null;
382
+ return Math.min(...contrasts);
383
+ }
384
+ function accessibleAccentTextColor(value) {
385
+ if (!value) return void 0;
386
+ const contrast = minimumContrastRatio(value, ["#f5f5f5", "#262626"]);
387
+ if (contrast === null) return value;
388
+ return contrast < 4.5 ? void 0 : value;
389
+ }
340
390
  function ParticipantAvatar({
341
391
  participant
342
392
  }) {
@@ -578,6 +628,7 @@ var MessageRow = React4__namespace.memo(function MessageRow2({
578
628
  );
579
629
  }
580
630
  const accent = participant?.color;
631
+ const accentTextColor = accessibleAccentTextColor(accent);
581
632
  const authorName = participant?.name ?? "Unknown";
582
633
  const canEdit = !!editable && isSelf && !streaming && typeof message.text === "string" && !message.content?.length;
583
634
  const startEdit = () => {
@@ -658,17 +709,17 @@ ${block.text}
658
709
  "span",
659
710
  {
660
711
  className: "text-xs font-medium",
661
- style: accent ? { color: accent } : void 0,
712
+ style: accentTextColor ? { color: accentTextColor } : void 0,
662
713
  children: authorName
663
714
  }
664
715
  ),
665
- participant?.role && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-neutral-400", children: participant.role }),
666
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-neutral-400", children: formatTime(message.time) }),
716
+ participant?.role && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-neutral-500 dark:text-neutral-400", children: participant.role }),
717
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-neutral-500 dark:text-neutral-400", children: formatTime(message.time) }),
667
718
  message.editedAt && /* @__PURE__ */ jsxRuntime.jsx(
668
719
  "span",
669
720
  {
670
721
  "data-slot": "superchat-edited-indicator",
671
- className: "text-[10px] text-neutral-400",
722
+ className: "text-[10px] text-neutral-500 dark:text-neutral-400",
672
723
  title: `Edited ${formatTime(message.editedAt)}`,
673
724
  children: "(edited)"
674
725
  }
@@ -711,7 +762,7 @@ ${block.text}
711
762
  "data-slot": "superchat-bubble",
712
763
  variant: isSelf ? "user" : "assistant",
713
764
  hasError: message.status === "error",
714
- className: "text-sm",
765
+ className: "text-sm has-[[data-slot=superchat-nitro-table]]:w-full has-[[data-slot=superchat-nitro-table]]:max-w-full",
715
766
  children: isEditing ? /* @__PURE__ */ jsxRuntime.jsxs(
716
767
  "div",
717
768
  {
@@ -1113,7 +1164,7 @@ function SuperChat({
1113
1164
  }
1114
1165
  ),
1115
1166
  /* @__PURE__ */ jsxRuntime.jsx(
1116
- chunk2T4JU5RH_cjs.MessageComposer,
1167
+ chunkCB4JX5EJ_cjs.MessageComposer,
1117
1168
  {
1118
1169
  onSend: handleComposerSend,
1119
1170
  disabled: readOnly,
@@ -1192,7 +1243,7 @@ function SuperChatConversations({
1192
1243
  children: [
1193
1244
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1 truncate", children: [
1194
1245
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate font-medium", children: c.title }),
1195
- last?.text && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate text-xs text-neutral-400", children: last.text })
1246
+ last?.text && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate text-xs text-neutral-600 dark:text-neutral-400", children: last.text })
1196
1247
  ] }),
1197
1248
  !!c.unread && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "bg-primary-600 ml-1 inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-[10px] font-semibold text-white", children: [
1198
1249
  c.unread,