@mastra/playground-ui 52.0.1-alpha.0 → 53.0.0-alpha.2

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 (136) hide show
  1. package/dist/{command-C2XK36se.cjs → command-CUev1UxH.cjs} +2 -2
  2. package/dist/{command-C2XK36se.cjs.map → command-CUev1UxH.cjs.map} +1 -1
  3. package/dist/{command-ehL7-lrV.js → command-DWFd0d4c.js} +2 -2
  4. package/dist/{command-ehL7-lrV.js.map → command-DWFd0d4c.js.map} +1 -1
  5. package/dist/components/Breadcrumb.cjs.js +1 -1
  6. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  7. package/dist/components/Breadcrumb.es.js +1 -1
  8. package/dist/components/Breadcrumb.es.js.map +1 -1
  9. package/dist/components/Command.cjs.js +1 -1
  10. package/dist/components/Command.es.js +1 -1
  11. package/dist/components/CommandPalette.cjs.js +2 -2
  12. package/dist/components/CommandPalette.es.js +2 -2
  13. package/dist/components/Composer.cjs.js +1 -1
  14. package/dist/components/Composer.es.js +1 -1
  15. package/dist/components/DataList.cjs.js +15 -14
  16. package/dist/components/DataList.cjs.js.map +1 -1
  17. package/dist/components/DataList.es.js +4 -4
  18. package/dist/components/EnvironmentVariablesEditor.cjs.js +12 -23
  19. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  20. package/dist/components/EnvironmentVariablesEditor.es.js +12 -23
  21. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  22. package/dist/components/HorizontalBars.cjs.js +1 -1
  23. package/dist/components/HorizontalBars.es.js +1 -1
  24. package/dist/components/LogsDataList.cjs.js +2 -4
  25. package/dist/components/LogsDataList.cjs.js.map +1 -1
  26. package/dist/components/LogsDataList.es.js +2 -4
  27. package/dist/components/LogsDataList.es.js.map +1 -1
  28. package/dist/components/MainSidebar.cjs.js +1 -1
  29. package/dist/components/MainSidebar.es.js +1 -1
  30. package/dist/components/PageLayout.cjs.js +1 -1
  31. package/dist/components/PageLayout.es.js +1 -1
  32. package/dist/components/ScrollArea.cjs.js +1 -1
  33. package/dist/components/ScrollArea.es.js +1 -1
  34. package/dist/components/ThemeToggle.cjs.js +36 -10
  35. package/dist/components/ThemeToggle.cjs.js.map +1 -1
  36. package/dist/components/ThemeToggle.es.js +36 -10
  37. package/dist/components/ThemeToggle.es.js.map +1 -1
  38. package/dist/components/ThreadRail.cjs.js +1 -1
  39. package/dist/components/ThreadRail.es.js +1 -1
  40. package/dist/components/ai/task-list.cjs.js +1 -1
  41. package/dist/components/ai/task-list.es.js +1 -1
  42. package/dist/data-list-B5Wicaoc.cjs +131 -0
  43. package/dist/data-list-B5Wicaoc.cjs.map +1 -0
  44. package/dist/data-list-BUK_v9ax.js +127 -0
  45. package/dist/data-list-BUK_v9ax.js.map +1 -0
  46. package/dist/data-list-skeleton-BZR_Hkvj.cjs +38 -0
  47. package/dist/data-list-skeleton-BZR_Hkvj.cjs.map +1 -0
  48. package/dist/data-list-skeleton-BoaQlbOY.js +36 -0
  49. package/dist/data-list-skeleton-BoaQlbOY.js.map +1 -0
  50. package/dist/{data-list-CE6USbK0.cjs → data-list-top-cell-CIs1L8gy.cjs} +83 -216
  51. package/dist/data-list-top-cell-CIs1L8gy.cjs.map +1 -0
  52. package/dist/{data-list-Dvxj3Y3r.js → data-list-top-cell-D4-Hbz2H.js} +75 -214
  53. package/dist/data-list-top-cell-D4-Hbz2H.js.map +1 -0
  54. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -4
  55. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  56. package/dist/domains/logs/components/logs-list-view.es.js +3 -4
  57. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  58. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  59. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  60. package/dist/domains/metrics/components/metrics-utils.cjs.js +1 -2
  61. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  62. package/dist/domains/metrics/components/metrics-utils.es.js +1 -2
  63. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  64. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  65. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  66. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  67. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  68. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
  69. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
  70. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
  71. package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
  72. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
  73. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  74. package/dist/domains/traces/components/traces-list-view.es.js +4 -4
  75. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  76. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  77. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  78. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -2
  79. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  80. package/dist/ee/signals/components/entity-index-list.es.js +1 -2
  81. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  82. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  83. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  84. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -3
  85. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  86. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -3
  87. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  88. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  89. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  90. package/dist/hooks/use-debounced-value.cjs.js +17 -0
  91. package/dist/hooks/use-debounced-value.cjs.js.map +1 -0
  92. package/dist/hooks/use-debounced-value.d.ts +2 -0
  93. package/dist/hooks/use-debounced-value.es.js +13 -0
  94. package/dist/hooks/use-debounced-value.es.js.map +1 -0
  95. package/dist/{horizontal-bars-CV2XRu4w.cjs → horizontal-bars-CE1O-Y6G.cjs} +2 -2
  96. package/dist/{horizontal-bars-CV2XRu4w.cjs.map → horizontal-bars-CE1O-Y6G.cjs.map} +1 -1
  97. package/dist/{horizontal-bars-3vH3FLj3.js → horizontal-bars-DZ5J4TKv.js} +2 -2
  98. package/dist/{horizontal-bars-3vH3FLj3.js.map → horizontal-bars-DZ5J4TKv.js.map} +1 -1
  99. package/dist/{logs-data-list-DmpfI4NU.cjs → logs-data-list-PExVAYf3.cjs} +20 -20
  100. package/dist/{logs-data-list-DmpfI4NU.cjs.map → logs-data-list-PExVAYf3.cjs.map} +1 -1
  101. package/dist/{logs-data-list-ppn0Twn6.js → logs-data-list-VCTqogr3.js} +2 -2
  102. package/dist/{logs-data-list-ppn0Twn6.js.map → logs-data-list-VCTqogr3.js.map} +1 -1
  103. package/dist/{no-data-page-layout-CkhD1Xwb.js → no-data-page-layout-BB6l1JBu.js} +2 -2
  104. package/dist/no-data-page-layout-BB6l1JBu.js.map +1 -0
  105. package/dist/{no-data-page-layout-CBJ50ULk.cjs → no-data-page-layout-DxgToazD.cjs} +2 -2
  106. package/dist/no-data-page-layout-DxgToazD.cjs.map +1 -0
  107. package/dist/{scroll-area-D_-TyC0c.cjs → scroll-area-B1vdOFuC.cjs} +5 -5
  108. package/dist/{scroll-area-D_-TyC0c.cjs.map → scroll-area-B1vdOFuC.cjs.map} +1 -1
  109. package/dist/{scroll-area-DVSQTnjk.js → scroll-area-BiHnOfzg.js} +5 -5
  110. package/dist/{scroll-area-DVSQTnjk.js.map → scroll-area-BiHnOfzg.js.map} +1 -1
  111. package/dist/src/domains/metrics/components/metrics-utils.d.ts +0 -1
  112. package/dist/src/ds/components/Card/Card.d.ts +2 -2
  113. package/dist/src/ds/components/DataList/data-list-root.d.ts +10 -17
  114. package/dist/src/ds/components/DataList/data-list-skeleton.d.ts +7 -2
  115. package/dist/src/ds/components/DataList/data-list.d.ts +1 -1
  116. package/dist/src/ds/components/DataList/data-list.stories.d.ts +15 -41
  117. package/dist/src/ds/components/DataList/shared.d.ts +19 -24
  118. package/dist/src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.d.ts +1 -1
  119. package/dist/src/ds/components/LogsDataList/logs-data-list.stories.d.ts +0 -1
  120. package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +25 -1
  121. package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +3 -0
  122. package/dist/src/hooks/use-debounced-value.d.ts +1 -0
  123. package/dist/style.css +113 -130
  124. package/dist/{traces-data-list-Ccszs0fr.js → traces-data-list-BnK1mfZp.js} +3 -2
  125. package/dist/{traces-data-list-Ccszs0fr.js.map → traces-data-list-BnK1mfZp.js.map} +1 -1
  126. package/dist/{traces-data-list-C0GZNznu.cjs → traces-data-list-MX4shJfG.cjs} +17 -16
  127. package/dist/{traces-data-list-C0GZNznu.cjs.map → traces-data-list-MX4shJfG.cjs.map} +1 -1
  128. package/package.json +8 -8
  129. package/dist/data-list-CE6USbK0.cjs.map +0 -1
  130. package/dist/data-list-Dvxj3Y3r.js.map +0 -1
  131. package/dist/data-list-skeleton-5i8xvHk2.js +0 -34
  132. package/dist/data-list-skeleton-5i8xvHk2.js.map +0 -1
  133. package/dist/data-list-skeleton-DiQp8oTF.cjs +0 -36
  134. package/dist/data-list-skeleton-DiQp8oTF.cjs.map +0 -1
  135. package/dist/no-data-page-layout-CBJ50ULk.cjs.map +0 -1
  136. package/dist/no-data-page-layout-CkhD1Xwb.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-BUK_v9ax.js","sources":["../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(\n isWrapped ? 'grid grid-cols-subgrid gap-8 px-5 transition-colors duration-200' : dataListRowStaticStyles,\n className,\n )}\n style={resolvedStyle}\n data-featured={featured || undefined}\n data-variant={variant ?? 'default'}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'data-list-subheader relative isolate col-span-full px-5 py-3 text-ui-md font-medium text-neutral4',\n 'bg-(--data-list-background)',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return <span className={cn('text-ui-sm font-normal text-neutral2', className)}>{children}</span>;\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto',\n !colStart && 'col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListVariant } from './data-list-root';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const dataListTopCell = require('./data-list-top-cell-CIs1L8gy.cjs');
5
+ const utils_cn = require('./cn-DCPcv4xv.cjs');
6
+
7
+ const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
8
+ const headerWidths = ["3rem", "5rem", "4rem", "3.5rem", "4.5rem", "3rem"];
9
+ function SkeletonBar({ width, className }) {
10
+ return /* @__PURE__ */ jsxRuntime.jsx(
11
+ "div",
12
+ {
13
+ className: utils_cn.cn("h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none", className),
14
+ style: { width }
15
+ }
16
+ );
17
+ }
18
+ function DataListSkeleton({
19
+ columns = "auto 1fr auto auto",
20
+ numberOfRows = 3,
21
+ fit,
22
+ variant
23
+ }) {
24
+ const columnParts = columns.trim().split(/\s+/);
25
+ const columnCount = columnParts.length;
26
+ const skeletonColumns = columnParts.map((col) => col === "auto" ? "minmax(6rem, auto)" : col).join(" ");
27
+ const getPseudoRandomWidth = (rowIdx, colIdx) => {
28
+ const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;
29
+ return widths[index] ?? widths[0];
30
+ };
31
+ return /* @__PURE__ */ jsxRuntime.jsxs(dataListTopCell.DataListRoot, { columns: skeletonColumns, fit, variant, children: [
32
+ /* @__PURE__ */ jsxRuntime.jsx(dataListTopCell.DataListTop, { children: Array.from({ length: columnCount }).map((_, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(dataListTopCell.DataListTopCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonBar, { width: headerWidths[colIdx % headerWidths.length] ?? headerWidths[0], className: "h-3" }) }, colIdx)) }),
33
+ Array.from({ length: numberOfRows }).map((_, rowIdx) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("grid grid-cols-subgrid gap-8 px-5", ...dataListTopCell.dataListRowOuterStyles), children: Array.from({ length: columnCount }).map((_2, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(dataListTopCell.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonBar, { width: getPseudoRandomWidth(rowIdx, colIdx) }) }, colIdx)) }, rowIdx))
34
+ ] });
35
+ }
36
+
37
+ exports.DataListSkeleton = DataListSkeleton;
38
+ //# sourceMappingURL=data-list-skeleton-BZR_Hkvj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-BZR_Hkvj.cjs","sources":["../src/ds/components/DataList/data-list-skeleton.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit, DataListVariant } from './data-list-root';\nimport { DataListTop } from './data-list-top';\nimport { DataListTopCell } from './data-list-top-cell';\nimport { dataListRowOuterStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'] as const;\nconst headerWidths = ['3rem', '5rem', '4rem', '3.5rem', '4.5rem', '3rem'] as const;\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n variant?: DataListVariant;\n};\n\nfunction SkeletonBar({ width, className }: { width: string; className?: string }) {\n return (\n <div\n className={cn('h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none', className)}\n style={{ width }}\n />\n );\n}\n\n/**\n * Loading placeholder mirroring the real list: same root, a sticky header\n * band with one placeholder label per column, then rows of placeholder cells.\n */\nexport function DataListSkeleton({\n columns = 'auto 1fr auto auto',\n numberOfRows = 3,\n fit,\n variant,\n}: DataListSkeletonProps) {\n const columnParts = columns.trim().split(/\\s+/);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index] ?? widths[0];\n };\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit} variant={variant}>\n <DataListTop>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListTopCell key={colIdx}>\n <SkeletonBar width={headerWidths[colIdx % headerWidths.length] ?? headerWidths[0]} className=\"h-3\" />\n </DataListTopCell>\n ))}\n </DataListTop>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div key={rowIdx} className={cn('grid grid-cols-subgrid gap-8 px-5', ...dataListRowOuterStyles)}>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <SkeletonBar width={getPseudoRandomWidth(rowIdx, colIdx)} />\n </DataListCell>\n ))}\n </div>\n ))}\n </DataListRoot>\n );\n}\n"],"names":["jsx","cn","jsxs","DataListRoot","DataListTop","DataListTopCell","dataListRowOuterStyles","_","DataListCell"],"mappings":";;;;;;AAQA,MAAM,SAAS,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AACxD,MAAM,eAAe,CAAC,MAAA,EAAQ,QAAQ,MAAA,EAAQ,QAAA,EAAU,UAAU,MAAM,CAAA;AASxE,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,SAAA,EAAU,EAA0C;AAChF,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA,CAAG,uFAAA,EAAyF,SAAS,CAAA;AAAA,MAChH,KAAA,EAAO,EAAE,KAAA;AAAM;AAAA,GACjB;AAEJ;AAMO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,OAAA,GAAU,oBAAA;AAAA,EACV,YAAA,GAAe,CAAA;AAAA,EACf,GAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAC9C,EAAA,MAAM,cAAc,WAAA,CAAY,MAAA;AAChC,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,GAAA,CAAI,CAAA,GAAA,KAAQ,GAAA,KAAQ,SAAS,oBAAA,GAAuB,GAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAEtG,EAAA,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAgB,MAAA,KAAmB;AAC/D,IAAA,MAAM,KAAA,GAAA,CAAS,MAAA,GAAS,MAAA,GAAS,WAAA,GAAc,gBAAgB,MAAA,CAAO,MAAA;AACtE,IAAA,OAAO,MAAA,CAAO,KAAK,CAAA,IAAK,MAAA,CAAO,CAAC,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,uBACEC,eAAA,CAACC,4BAAA,EAAA,EAAa,OAAA,EAAS,eAAA,EAAiB,KAAU,OAAA,EAChD,QAAA,EAAA;AAAA,oBAAAH,cAAA,CAACI,2BAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,MAAA,oCAC1CC,+BAAA,EAAA,EACC,QAAA,kBAAAL,cAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAO,YAAA,CAAa,MAAA,GAAS,YAAA,CAAa,MAAM,CAAA,IAAK,YAAA,CAAa,CAAC,CAAA,EAAG,SAAA,EAAU,KAAA,EAAM,CAAA,EAAA,EAD/E,MAEtB,CACD,CAAA,EACH,CAAA;AAAA,IACC,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,cAAc,CAAA,CAAE,IAAI,CAAC,CAAA,EAAG,2BAC5CA,cAAA,CAAC,KAAA,EAAA,EAAiB,WAAWC,WAAA,CAAG,mCAAA,EAAqC,GAAGK,sCAAsB,CAAA,EAC3F,gBAAM,IAAA,CAAK,EAAE,QAAQ,WAAA,EAAa,EAAE,GAAA,CAAI,CAACC,IAAG,MAAA,qBAC3CP,cAAA,CAACQ,gCACC,QAAA,kBAAAR,cAAA,CAAC,WAAA,EAAA,EAAY,OAAO,oBAAA,CAAqB,MAAA,EAAQ,MAAM,CAAA,EAAG,CAAA,EAAA,EADzC,MAEnB,CACD,CAAA,EAAA,EALO,MAMV,CACD;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
@@ -0,0 +1,36 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { D as DataListRoot, a as DataListTop, b as DataListTopCell, c as DataListCell, d as dataListRowOuterStyles } from './data-list-top-cell-D4-Hbz2H.js';
3
+ import { c as cn } from './cn-B4oPhFx9.js';
4
+
5
+ const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
6
+ const headerWidths = ["3rem", "5rem", "4rem", "3.5rem", "4.5rem", "3rem"];
7
+ function SkeletonBar({ width, className }) {
8
+ return /* @__PURE__ */ jsx(
9
+ "div",
10
+ {
11
+ className: cn("h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none", className),
12
+ style: { width }
13
+ }
14
+ );
15
+ }
16
+ function DataListSkeleton({
17
+ columns = "auto 1fr auto auto",
18
+ numberOfRows = 3,
19
+ fit,
20
+ variant
21
+ }) {
22
+ const columnParts = columns.trim().split(/\s+/);
23
+ const columnCount = columnParts.length;
24
+ const skeletonColumns = columnParts.map((col) => col === "auto" ? "minmax(6rem, auto)" : col).join(" ");
25
+ const getPseudoRandomWidth = (rowIdx, colIdx) => {
26
+ const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;
27
+ return widths[index] ?? widths[0];
28
+ };
29
+ return /* @__PURE__ */ jsxs(DataListRoot, { columns: skeletonColumns, fit, variant, children: [
30
+ /* @__PURE__ */ jsx(DataListTop, { children: Array.from({ length: columnCount }).map((_, colIdx) => /* @__PURE__ */ jsx(DataListTopCell, { children: /* @__PURE__ */ jsx(SkeletonBar, { width: headerWidths[colIdx % headerWidths.length] ?? headerWidths[0], className: "h-3" }) }, colIdx)) }),
31
+ Array.from({ length: numberOfRows }).map((_, rowIdx) => /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-subgrid gap-8 px-5", ...dataListRowOuterStyles), children: Array.from({ length: columnCount }).map((_2, colIdx) => /* @__PURE__ */ jsx(DataListCell, { children: /* @__PURE__ */ jsx(SkeletonBar, { width: getPseudoRandomWidth(rowIdx, colIdx) }) }, colIdx)) }, rowIdx))
32
+ ] });
33
+ }
34
+
35
+ export { DataListSkeleton as D };
36
+ //# sourceMappingURL=data-list-skeleton-BoaQlbOY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-BoaQlbOY.js","sources":["../src/ds/components/DataList/data-list-skeleton.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit, DataListVariant } from './data-list-root';\nimport { DataListTop } from './data-list-top';\nimport { DataListTopCell } from './data-list-top-cell';\nimport { dataListRowOuterStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'] as const;\nconst headerWidths = ['3rem', '5rem', '4rem', '3.5rem', '4.5rem', '3rem'] as const;\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n variant?: DataListVariant;\n};\n\nfunction SkeletonBar({ width, className }: { width: string; className?: string }) {\n return (\n <div\n className={cn('h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none', className)}\n style={{ width }}\n />\n );\n}\n\n/**\n * Loading placeholder mirroring the real list: same root, a sticky header\n * band with one placeholder label per column, then rows of placeholder cells.\n */\nexport function DataListSkeleton({\n columns = 'auto 1fr auto auto',\n numberOfRows = 3,\n fit,\n variant,\n}: DataListSkeletonProps) {\n const columnParts = columns.trim().split(/\\s+/);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index] ?? widths[0];\n };\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit} variant={variant}>\n <DataListTop>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListTopCell key={colIdx}>\n <SkeletonBar width={headerWidths[colIdx % headerWidths.length] ?? headerWidths[0]} className=\"h-3\" />\n </DataListTopCell>\n ))}\n </DataListTop>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div key={rowIdx} className={cn('grid grid-cols-subgrid gap-8 px-5', ...dataListRowOuterStyles)}>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <SkeletonBar width={getPseudoRandomWidth(rowIdx, colIdx)} />\n </DataListCell>\n ))}\n </div>\n ))}\n </DataListRoot>\n );\n}\n"],"names":["_"],"mappings":";;;;AAQA,MAAM,SAAS,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AACxD,MAAM,eAAe,CAAC,MAAA,EAAQ,QAAQ,MAAA,EAAQ,QAAA,EAAU,UAAU,MAAM,CAAA;AASxE,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,SAAA,EAAU,EAA0C;AAChF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,uFAAA,EAAyF,SAAS,CAAA;AAAA,MAChH,KAAA,EAAO,EAAE,KAAA;AAAM;AAAA,GACjB;AAEJ;AAMO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,OAAA,GAAU,oBAAA;AAAA,EACV,YAAA,GAAe,CAAA;AAAA,EACf,GAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAC9C,EAAA,MAAM,cAAc,WAAA,CAAY,MAAA;AAChC,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,GAAA,CAAI,CAAA,GAAA,KAAQ,GAAA,KAAQ,SAAS,oBAAA,GAAuB,GAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAEtG,EAAA,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAgB,MAAA,KAAmB;AAC/D,IAAA,MAAM,KAAA,GAAA,CAAS,MAAA,GAAS,MAAA,GAAS,WAAA,GAAc,gBAAgB,MAAA,CAAO,MAAA;AACtE,IAAA,OAAO,MAAA,CAAO,KAAK,CAAA,IAAK,MAAA,CAAO,CAAC,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,eAAA,EAAiB,KAAU,OAAA,EAChD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,MAAA,yBAC1C,eAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAO,YAAA,CAAa,MAAA,GAAS,YAAA,CAAa,MAAM,CAAA,IAAK,YAAA,CAAa,CAAC,CAAA,EAAG,SAAA,EAAU,KAAA,EAAM,CAAA,EAAA,EAD/E,MAEtB,CACD,CAAA,EACH,CAAA;AAAA,IACC,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,cAAc,CAAA,CAAE,IAAI,CAAC,CAAA,EAAG,2BAC5C,GAAA,CAAC,KAAA,EAAA,EAAiB,WAAW,EAAA,CAAG,mCAAA,EAAqC,GAAG,sBAAsB,CAAA,EAC3F,gBAAM,IAAA,CAAK,EAAE,QAAQ,WAAA,EAAa,EAAE,GAAA,CAAI,CAACA,IAAG,MAAA,qBAC3C,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,OAAO,oBAAA,CAAqB,MAAA,EAAQ,MAAM,CAAA,EAAG,CAAA,EAAA,EADzC,MAEnB,CACD,CAAA,EAAA,EALO,MAMV,CACD;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
@@ -3,42 +3,35 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const dateFns = require('date-fns');
5
5
  const React = require('react');
6
- const index = require('./index-BRtrE4oe.cjs');
7
6
  const checkbox = require('./checkbox-z-Yfud4v.cjs');
8
7
  const utils_cn = require('./cn-DCPcv4xv.cjs');
9
- const lucideReact = require('lucide-react');
10
- const Button = require('./Button-D10WB4vc.cjs');
11
- const scrollArea = require('./scroll-area-D_-TyC0c.cjs');
8
+ const scrollArea = require('./scroll-area-B1vdOFuC.cjs');
12
9
  const tooltip = require('./tooltip-DIi_oOxO.cjs');
13
10
 
14
11
  const dataListRowOuterStyles = [
15
- "group/data-list-row data-list-row col-span-full relative min-h-9",
16
- "transition-colors duration-200 rounded-lg"
12
+ "group/data-list-row data-list-row col-span-full relative min-h-9 bg-surface2",
13
+ "transition-colors duration-200"
14
+ ];
15
+ const dataListRowStateStyles = [
16
+ "hover:bg-surface3 active:bg-surface4",
17
+ "data-featured:bg-surface3 has-data-featured:bg-surface3 has-data-selected:bg-surface3",
18
+ "data-featured:hover:bg-surface4 has-data-featured:hover:bg-surface4 has-data-selected:hover:bg-surface4",
19
+ "data-[variant=error]:bg-notice-destructive/10 has-data-[variant=error]:bg-notice-destructive/10"
17
20
  ];
18
21
  const dataListRowInteractiveStyles = [
19
- "grid grid-cols-subgrid gap-8 px-5 outline-none cursor-pointer",
20
- "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-accent1",
21
- "transition-colors duration-200 rounded-lg"
22
+ "grid grid-cols-subgrid gap-8 px-5 cursor-pointer",
23
+ "outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-accent1"
24
+ ];
25
+ const dataListRowStyles = [
26
+ ...dataListRowInteractiveStyles,
27
+ ...dataListRowOuterStyles,
28
+ ...dataListRowStateStyles
22
29
  ];
23
- const dataListRowStyles = [...dataListRowInteractiveStyles, ...dataListRowOuterStyles];
24
30
  const dataListRowStaticStyles = ["grid grid-cols-subgrid gap-8 px-5", ...dataListRowOuterStyles];
25
- const dataListRowRevealStyles = "opacity-0 pointer-coarse:opacity-100 group-focus-within/data-list-row:opacity-100 group-hover/data-list-row:opacity-100";
26
- const dataListTopRevealStyles = "opacity-0 pointer-coarse:opacity-100 group-focus-within/data-list-top:opacity-100 group-hover/data-list-top:opacity-100";
31
+ const dataListRowActionRevealStyles = "opacity-0 pointer-coarse:opacity-100 group-focus-within/data-list-row:opacity-100 group-hover/data-list-row:opacity-100";
27
32
  const dataListStickyStartStyles = [
28
- "data-list-sticky-start sticky left-0 z-10 isolate self-stretch overflow-visible",
29
- 'after:absolute after:-right-4 after:top-1/2 after:-translate-y-1/2 after:h-4 after:w-px after:bg-border2 after:content-[""] after:pointer-events-none'
33
+ "data-list-sticky-start sticky left-0 z-10 isolate self-stretch overflow-visible"
30
34
  ];
31
- const dataListRowVariants = index.cva("", {
32
- variants: {
33
- variant: {
34
- default: "",
35
- error: "bg-notice-destructive/10! hover:bg-notice-destructive/15!"
36
- }
37
- },
38
- defaultVariants: {
39
- variant: "default"
40
- }
41
- });
42
35
 
43
36
  function DataListCell({ children, className, as, sticky, ...rest }) {
44
37
  const Component = as || "span";
@@ -61,7 +54,7 @@ function DataListActionsCell({ children, className, ...rest }) {
61
54
  {
62
55
  className: utils_cn.cn(
63
56
  "flex w-full items-center justify-end gap-1 pr-3 transition-opacity duration-200",
64
- dataListRowRevealStyles
57
+ dataListRowActionRevealStyles
65
58
  ),
66
59
  children
67
60
  }
@@ -106,7 +99,7 @@ function DataListRowHeaderCell({ children, className, ...rest }) {
106
99
  {
107
100
  sticky: "start",
108
101
  className: utils_cn.cn(
109
- "data-list-row-header -mr-4 -ml-5 w-auto max-w-none rounded-l-lg pr-4 pl-5 text-left text-ui-sm font-medium text-neutral2",
102
+ "data-list-row-header -mr-4 -ml-5 w-auto max-w-none pr-4 pl-5 text-left text-ui-sm font-medium text-neutral2",
110
103
  className
111
104
  ),
112
105
  ...rest,
@@ -141,10 +134,10 @@ function DataListSelectCell({ checked, onToggle, disabled, ...rest }) {
141
134
  as: "label",
142
135
  className: utils_cn.cn(
143
136
  "size-8 justify-items-center self-center overflow-visible px-0",
144
- !checked && dataListRowRevealStyles,
145
137
  disabled ? "cursor-not-allowed" : "cursor-pointer"
146
138
  ),
147
139
  onClick: (e) => e.stopPropagation(),
140
+ "data-selected": checked || void 0,
148
141
  children: /* @__PURE__ */ jsxRuntime.jsx(
149
142
  checkbox.Checkbox,
150
143
  {
@@ -197,9 +190,8 @@ function DataListNextPageLoading({
197
190
  "div",
198
191
  {
199
192
  ref: setEndOfListElement,
200
- className: utils_cn.cn("col-span-full flex min-h-1 justify-center text-ui-md text-neutral3 opacity-50", {
201
- "py-4": isLoading,
202
- "py-0": !hasMore
193
+ className: utils_cn.cn("col-span-full -mt-px flex justify-center text-ui-md text-neutral3 opacity-50", {
194
+ "py-4": isLoading
203
195
  }),
204
196
  children: isLoading && loadingText
205
197
  }
@@ -214,102 +206,68 @@ function DataListNoMatch({
214
206
  return /* @__PURE__ */ jsxRuntime.jsx(
215
207
  "div",
216
208
  {
217
- className: utils_cn.cn("col-span-full flex flex-col items-center justify-center gap-2 py-12 text-neutral3", className),
209
+ className: utils_cn.cn(
210
+ "col-span-full flex flex-col items-center justify-center gap-2 rounded-lg bg-surface2 py-12 text-neutral3",
211
+ className
212
+ ),
218
213
  ...props,
219
214
  children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-md", children: message })
220
215
  }
221
216
  );
222
217
  }
223
218
 
224
- function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
225
- const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
226
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4", children: [
227
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
228
- "Page ",
229
- /* @__PURE__ */ jsxRuntime.jsx("b", { children: currentPage ? currentPage + 1 : "1" })
230
- ] }),
231
- showNavigation && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4", children: [
232
- typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { type: "button", variant: "outline", size: "sm", onClick: onPrevPage, children: [
233
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {}),
234
- "Previous"
235
- ] }),
236
- hasMore && /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { type: "button", variant: "outline", size: "sm", onClick: onNextPage, children: [
237
- "Next",
238
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {})
239
- ] })
240
- ] })
241
- ] });
242
- }
243
-
244
- const stickyHeaderBackgroundValues = {
245
- tinted: {
246
- background: "var(--surface-header)",
247
- hoverBackground: "var(--surface-header-hover)"
248
- },
249
- surface: {
250
- background: "var(--surface2)",
251
- hoverBackground: "color-mix(in oklch, var(--surface2), var(--neutral6) 10%)"
252
- },
253
- transparent: {
254
- background: "transparent",
255
- hoverBackground: "transparent"
256
- }
257
- };
258
219
  function getDataListMask(mask) {
259
220
  if (mask === void 0) return { top: false };
260
221
  if (typeof mask === "object") return { top: false, ...mask };
261
222
  return mask;
262
223
  }
263
- const borderlessTableStyles = [
224
+ const dataListGridStyles = [
264
225
  "gap-y-px",
265
- // A shared opaque tint gives both column headers and sticky row headers the
266
- // same treatment without revealing scrolled content beneath sticky surfaces.
267
- "[&_.data-list-top]:bg-[var(--data-list-sticky-header-background)] [&_.data-list-top]:rounded-lg",
268
- "[&_.data-list-row]:rounded-lg",
269
- "[&_.data-list-row]:hover:bg-surface-overlay-strong!",
270
- "[&_.data-list-row:focus-within]:bg-surface-overlay-strong!",
271
- "[&_.data-list-row>.data-list-sticky-start]:bg-[var(--data-list-sticky-header-background)]",
226
+ // Rows are siblings of the header, so first/last are found via sibling combinators.
227
+ "[&_.data-list-row:not(.data-list-row~.data-list-row)]:rounded-t-lg",
228
+ "[&_.data-list-row:not(:has(~.data-list-row))]:rounded-b-lg",
229
+ "[&_.data-list-row:not(.data-list-row~.data-list-row)>.data-list-sticky-start]:rounded-tl-lg",
230
+ "[&_.data-list-row:not(:has(~.data-list-row))>.data-list-sticky-start]:rounded-bl-lg",
231
+ // Subheaders split the rows into sections; each section gets its own rounded ends.
232
+ "[&_.data-list-subheader+.data-list-row]:rounded-t-lg",
233
+ "[&_.data-list-row:has(+.data-list-subheader)]:rounded-b-lg",
234
+ "[&_.data-list-subheader+.data-list-row>.data-list-sticky-start]:rounded-tl-lg",
235
+ "[&_.data-list-row:has(+.data-list-subheader)>.data-list-sticky-start]:rounded-bl-lg",
236
+ "[&_.data-list-top]:bg-(--data-list-background)",
237
+ "[&_.data-list-row>.data-list-sticky-start]:bg-surface2",
272
238
  "[&_.data-list-row>.data-list-sticky-start]:after:right-0",
273
- "[&_.data-list-row:hover>.data-list-sticky-start]:bg-[var(--data-list-sticky-header-hover-background)]",
274
- "[&_.data-list-row:focus-within>.data-list-sticky-start]:bg-[var(--data-list-sticky-header-hover-background)]",
275
239
  "[&_.data-list-top>.data-list-sticky-start]:after:right-0"
276
240
  ];
241
+ const dataListVariantClasses = {
242
+ default: "bg-surface4",
243
+ light: ""
244
+ };
245
+ const dataListVariantBackground = {
246
+ default: "var(--surface4)",
247
+ light: "var(--surface1)"
248
+ };
277
249
  const dataListFitClasses = {
278
250
  content: "w-max max-w-none min-w-full",
279
251
  container: "w-full max-w-full"
280
252
  };
281
- const dataListRootVariants = index.cva(utils_cn.cn("grid content-start", ...borderlessTableStyles), {
282
- variants: {
283
- variant: {
284
- striped: "[&_.data-list-row]:even:bg-surface-overlay-soft",
285
- plain: ""
286
- }
287
- },
288
- defaultVariants: {
289
- variant: "plain"
290
- }
291
- });
292
253
  function DataListRoot({
293
254
  children,
294
255
  columns,
295
256
  className,
296
- variant = "plain",
297
257
  fit = "content",
298
- stickyHeaderBackground = "tinted",
258
+ variant = "default",
299
259
  mask,
300
260
  scrollRef,
301
261
  ...props
302
262
  }) {
303
- const stickyHeaderColors = stickyHeaderBackgroundValues[stickyHeaderBackground];
304
263
  const gridStyle = {
305
- "--data-list-sticky-header-background": stickyHeaderColors.background,
306
- "--data-list-sticky-header-hover-background": stickyHeaderColors.hoverBackground,
264
+ "--data-list-background": dataListVariantBackground[variant],
307
265
  gridTemplateColumns: columns
308
266
  };
309
267
  const grid = /* @__PURE__ */ jsxRuntime.jsx(
310
268
  "div",
311
269
  {
312
- className: utils_cn.cn(dataListRootVariants({ variant }), dataListFitClasses[fit]),
270
+ className: utils_cn.cn("grid content-start", ...dataListGridStyles, dataListFitClasses[fit]),
313
271
  style: gridStyle,
314
272
  children
315
273
  }
@@ -321,8 +279,12 @@ function DataListRoot({
321
279
  orientation: "both",
322
280
  mask: getDataListMask(mask),
323
281
  viewportRef: scrollRef,
324
- viewPortClassName: "max-h-[inherit]",
325
- className: utils_cn.cn("size-full", className),
282
+ viewPortClassName: "min-h-0 flex-1 basis-auto",
283
+ className: utils_cn.cn(
284
+ "flex max-h-full w-full flex-col self-start rounded-xl px-1 pb-1",
285
+ dataListVariantClasses[variant],
286
+ className
287
+ ),
326
288
  children: grid
327
289
  }
328
290
  );
@@ -343,16 +305,10 @@ const DataListRowButton = React.forwardRef(
343
305
  {
344
306
  ref,
345
307
  type,
346
- className: utils_cn.cn(
347
- ...isWrapped ? dataListRowInteractiveStyles : dataListRowStyles,
348
- "text-left",
349
- // `!` so the selection fill wins over borderless table root styling
350
- // (higher-specificity descendant rules); same color in `default`.
351
- featured && "bg-surface-row-featured!",
352
- dataListRowVariants({ variant }),
353
- className
354
- ),
308
+ className: utils_cn.cn(...isWrapped ? dataListRowInteractiveStyles : dataListRowStyles, "text-left", className),
355
309
  style: resolvedStyle,
310
+ "data-featured": featured || void 0,
311
+ "data-variant": variant ?? "default",
356
312
  ...rest,
357
313
  children
358
314
  }
@@ -380,50 +336,32 @@ function DataListRowLink({
380
336
  Link,
381
337
  {
382
338
  href: to,
383
- className: utils_cn.cn(
384
- ...isWrapped ? dataListRowInteractiveStyles : dataListRowStyles,
385
- // `!` so the selection fill wins over borderless table root styling
386
- // (higher-specificity descendant rules); same color in `default`.
387
- featured && "bg-surface-row-featured!",
388
- dataListRowVariants({ variant }),
389
- className
390
- ),
339
+ className: utils_cn.cn(...isWrapped ? dataListRowInteractiveStyles : dataListRowStyles, className),
391
340
  style: resolvedStyle,
341
+ "data-featured": featured || void 0,
342
+ "data-variant": variant ?? "default",
392
343
  ...rest,
393
344
  children
394
345
  }
395
346
  );
396
347
  }
397
348
 
398
- const DataListRowStatic = React.forwardRef(
399
- ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
400
- const isWrapped = useDataListRowWrapperContext();
401
- const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
402
- const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
403
- return /* @__PURE__ */ jsxRuntime.jsx(
349
+ const DataListRowWrapper = React.forwardRef(
350
+ ({ children, className, ...rest }, ref) => {
351
+ return /* @__PURE__ */ jsxRuntime.jsx(DataListRowWrapperContext.Provider, { value: true, children: /* @__PURE__ */ jsxRuntime.jsx(
404
352
  "div",
405
353
  {
406
354
  ref,
407
355
  className: utils_cn.cn(
408
- isWrapped ? "grid grid-cols-subgrid gap-8 rounded-lg px-5 transition-colors duration-200" : dataListRowStaticStyles,
409
- // `!` so the selection fill wins over borderless table root styling
410
- // (higher-specificity descendant rules); same color in `default`.
411
- featured && "bg-surface-row-featured!",
412
- dataListRowVariants({ variant }),
356
+ "grid grid-cols-subgrid gap-0",
357
+ ...dataListRowOuterStyles,
358
+ ...dataListRowStateStyles,
413
359
  className
414
360
  ),
415
- style: resolvedStyle,
416
361
  ...rest,
417
362
  children
418
363
  }
419
- );
420
- }
421
- );
422
- DataListRowStatic.displayName = "DataListRowStatic";
423
-
424
- const DataListRowWrapper = React.forwardRef(
425
- ({ children, className, ...rest }, ref) => {
426
- return /* @__PURE__ */ jsxRuntime.jsx(DataListRowWrapperContext.Provider, { value: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("grid grid-cols-subgrid gap-0", ...dataListRowOuterStyles, className), ...rest, children }) });
364
+ ) });
427
365
  }
428
366
  );
429
367
  DataListRowWrapper.displayName = "DataListRowWrapper";
@@ -433,29 +371,6 @@ function DataListSpacer({ height }) {
433
371
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-full", style: { height } });
434
372
  }
435
373
 
436
- const DataListSubheader = React.forwardRef(
437
- ({ children, className, ...rest }, ref) => {
438
- return /* @__PURE__ */ jsxRuntime.jsx(
439
- "div",
440
- {
441
- ref,
442
- className: utils_cn.cn(
443
- "relative isolate col-span-full mt-2 border-none px-5 py-3 text-ui-md font-medium text-neutral4",
444
- "before:absolute before:inset-0 before:-z-1 before:rounded-lg before:bg-[var(--data-list-sticky-header-background)]",
445
- className
446
- ),
447
- ...rest,
448
- children
449
- }
450
- );
451
- }
452
- );
453
- DataListSubheader.displayName = "DataListSubheader";
454
-
455
- function DataListSubHeading({ children, className }) {
456
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("text-ui-sm font-normal text-neutral2", className), children });
457
- }
458
-
459
374
  function DataListTop({ children, className, hasLeadingCell, ...props }) {
460
375
  return /* @__PURE__ */ jsxRuntime.jsx(
461
376
  "div",
@@ -482,8 +397,8 @@ const DataListTopCell = React.forwardRef(
482
397
  className: utils_cn.cn(
483
398
  "flex h-10 max-w-full min-w-0 items-center overflow-hidden py-1 text-ui-sm font-medium whitespace-nowrap text-neutral2",
484
399
  sticky === "start" && dataListStickyStartStyles,
485
- sticky === "start" && "-mr-4 -ml-5 w-auto max-w-none rounded-l-lg pr-4 pl-5",
486
- sticky === "start" && "z-20 bg-[var(--data-list-sticky-header-background)]",
400
+ sticky === "start" && "-mr-4 -ml-5 w-auto max-w-none pr-4 pl-5",
401
+ sticky === "start" && "z-20",
487
402
  className
488
403
  ),
489
404
  ...rest,
@@ -528,86 +443,38 @@ function DataListTopSelectCell({ checked, onToggle, ...rest }) {
528
443
  DataListTopCell,
529
444
  {
530
445
  as: "label",
531
- className: utils_cn.cn(
532
- "w-8 cursor-pointer justify-center overflow-visible px-0 py-0!",
533
- checked === false && dataListTopRevealStyles
534
- ),
446
+ className: "w-8 cursor-pointer justify-center overflow-visible px-0 py-0!",
535
447
  onClick: (e) => e.stopPropagation(),
536
448
  children: /* @__PURE__ */ jsxRuntime.jsx(checkbox.Checkbox, { checked, onCheckedChange: () => onToggle(), "aria-label": rest["aria-label"] })
537
449
  }
538
450
  );
539
451
  }
540
452
 
541
- const DataListTopCells = React.forwardRef(
542
- ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
543
- return /* @__PURE__ */ jsxRuntime.jsx(
544
- "div",
545
- {
546
- ref,
547
- className: utils_cn.cn(
548
- "pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto",
549
- !colStart && "col-span-full",
550
- flushLeft && "pl-0!",
551
- className
552
- ),
553
- style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
554
- ...rest,
555
- children
556
- }
557
- );
558
- }
559
- );
560
- DataListTopCells.displayName = "DataListTopCells";
561
-
562
- const DataList = Object.assign(DataListRoot, {
563
- Top: DataListTop,
564
- TopCells: DataListTopCells,
565
- TopCell: DataListTopCell,
566
- TopCellWithTooltip: DataListTopCellWithTooltip,
567
- TopCellSmart: DataListTopCellSmart,
568
- RowWrapper: DataListRowWrapper,
569
- RowButton: DataListRowButton,
570
- RowLink: DataListRowLink,
571
- RowStatic: DataListRowStatic,
572
- Cell: DataListCell,
573
- ActionsCell: DataListActionsCell,
574
- TextCell: DataListTextCell,
575
- NameCell: DataListNameCell,
576
- DescriptionCell: DataListDescriptionCell,
577
- IdCell: DataListIdCell,
578
- RowHeaderCell: DataListRowHeaderCell,
579
- NumberCell: DataListNumberCell,
580
- DateCell: DataListDateCell,
581
- TimeCell: DataListTimeCell,
582
- SelectCell: DataListSelectCell,
583
- TopSelectCell: DataListTopSelectCell,
584
- NoMatch: DataListNoMatch,
585
- Subheader: DataListSubheader,
586
- SubHeading: DataListSubHeading,
587
- Spacer: DataListSpacer,
588
- NextPageLoading: DataListNextPageLoading,
589
- Pagination: DataListPagination
590
- });
591
-
592
- exports.DataList = DataList;
453
+ exports.DataListActionsCell = DataListActionsCell;
593
454
  exports.DataListCell = DataListCell;
594
455
  exports.DataListCreatedCell = DataListCreatedCell;
595
456
  exports.DataListDateCell = DataListDateCell;
457
+ exports.DataListDescriptionCell = DataListDescriptionCell;
596
458
  exports.DataListIdCell = DataListIdCell;
459
+ exports.DataListNameCell = DataListNameCell;
597
460
  exports.DataListNextPageLoading = DataListNextPageLoading;
598
461
  exports.DataListNoMatch = DataListNoMatch;
462
+ exports.DataListNumberCell = DataListNumberCell;
599
463
  exports.DataListRoot = DataListRoot;
600
464
  exports.DataListRowButton = DataListRowButton;
465
+ exports.DataListRowHeaderCell = DataListRowHeaderCell;
601
466
  exports.DataListRowLink = DataListRowLink;
602
467
  exports.DataListRowWrapper = DataListRowWrapper;
468
+ exports.DataListSelectCell = DataListSelectCell;
603
469
  exports.DataListSpacer = DataListSpacer;
604
- exports.DataListSubHeading = DataListSubHeading;
605
- exports.DataListSubheader = DataListSubheader;
606
470
  exports.DataListTextCell = DataListTextCell;
607
471
  exports.DataListTimeCell = DataListTimeCell;
608
472
  exports.DataListTop = DataListTop;
609
473
  exports.DataListTopCell = DataListTopCell;
610
474
  exports.DataListTopCellSmart = DataListTopCellSmart;
611
475
  exports.DataListTopCellWithTooltip = DataListTopCellWithTooltip;
476
+ exports.DataListTopSelectCell = DataListTopSelectCell;
612
477
  exports.dataListRowOuterStyles = dataListRowOuterStyles;
613
- //# sourceMappingURL=data-list-CE6USbK0.cjs.map
478
+ exports.dataListRowStaticStyles = dataListRowStaticStyles;
479
+ exports.useDataListRowWrapperContext = useDataListRowWrapperContext;
480
+ //# sourceMappingURL=data-list-top-cell-CIs1L8gy.cjs.map