@mastra/playground-ui 56.0.0-alpha.11 → 56.0.0-alpha.12

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 (121) hide show
  1. package/dist/components/DataList.cjs.js +4 -3
  2. package/dist/components/DataList.cjs.js.map +1 -1
  3. package/dist/components/DataList.es.js +6 -5
  4. package/dist/components/DataList.es.js.map +1 -1
  5. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  6. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  7. package/dist/components/LogsDataList.cjs.js +3 -1
  8. package/dist/components/LogsDataList.cjs.js.map +1 -1
  9. package/dist/components/LogsDataList.es.js +4 -2
  10. package/dist/components/LogsDataList.es.js.map +1 -1
  11. package/dist/components/MainSidebar.cjs.js +11 -125
  12. package/dist/components/MainSidebar.cjs.js.map +1 -1
  13. package/dist/components/MainSidebar.es.js +1 -120
  14. package/dist/components/MainSidebar.es.js.map +1 -1
  15. package/dist/{data-list-CcPJ3wcC.js → data-list-CGB8KPW9.js} +5 -60
  16. package/dist/data-list-CGB8KPW9.js.map +1 -0
  17. package/dist/{data-list-BpYV-2Bj.cjs → data-list-IUvskr2z.cjs} +4 -59
  18. package/dist/data-list-IUvskr2z.cjs.map +1 -0
  19. package/dist/{data-list-skeleton-D0iW1xFo.js → data-list-skeleton-BalvZOZj.js} +2 -2
  20. package/dist/{data-list-skeleton-D0iW1xFo.js.map → data-list-skeleton-BalvZOZj.js.map} +1 -1
  21. package/dist/{data-list-spacer-DkhJEYvX.cjs → data-list-spacer-BYkDwIgG.cjs} +60 -1
  22. package/dist/{data-list-spacer-DkhJEYvX.cjs.map → data-list-spacer-BYkDwIgG.cjs.map} +1 -1
  23. package/dist/{data-list-spacer-Ckmvj2AQ.js → data-list-spacer-DkRj2ZTu.js} +62 -4
  24. package/dist/{data-list-spacer-Ckmvj2AQ.js.map → data-list-spacer-DkRj2ZTu.js.map} +1 -1
  25. package/dist/{data-list-top-DSxMTI-3.js → data-list-top-D1fdQBy-.js} +2 -2
  26. package/dist/{data-list-top-DSxMTI-3.js.map → data-list-top-D1fdQBy-.js.map} +1 -1
  27. package/dist/domains/logs/components/logs-list-view.cjs.js +5 -3
  28. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  29. package/dist/domains/logs/components/logs-list-view.es.js +6 -4
  30. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  31. package/dist/domains/logs/hooks/use-logs.cjs.js +7 -3
  32. package/dist/domains/logs/hooks/use-logs.cjs.js.map +1 -1
  33. package/dist/domains/logs/hooks/use-logs.es.js +7 -3
  34. package/dist/domains/logs/hooks/use-logs.es.js.map +1 -1
  35. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  36. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  37. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  38. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  39. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  40. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  41. package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -2
  42. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  43. package/dist/domains/traces/components/trace-columns-menu.es.js +2 -2
  44. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  45. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +3 -1
  46. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
  47. package/dist/domains/traces/components/traces-list-view-adapter.es.js +3 -1
  48. package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
  49. package/dist/domains/traces/components/traces-list-view.cjs.js +8 -7
  50. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  51. package/dist/domains/traces/components/traces-list-view.es.js +9 -8
  52. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  53. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -0
  54. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  55. package/dist/domains/traces/components/traces-page-skeleton.es.js +3 -1
  56. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  57. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  58. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  59. package/dist/domains/traces/trace-list-columns.cjs.js +12 -5
  60. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  61. package/dist/domains/traces/trace-list-columns.es.js +12 -6
  62. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  63. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  64. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  65. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  66. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  67. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -0
  68. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  69. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -1
  70. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  71. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  72. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  73. package/dist/layout/tabbed-container.cjs.js +1 -1
  74. package/dist/layout/tabbed-container.es.js +1 -1
  75. package/dist/{logs-data-list-Ixf3-LUC.cjs → logs-data-list-CEziCQkJ.cjs} +3 -2
  76. package/dist/logs-data-list-CEziCQkJ.cjs.map +1 -0
  77. package/dist/{logs-data-list-DpjwD0cx.js → logs-data-list-CneGYT6s.js} +4 -3
  78. package/dist/{logs-data-list-DpjwD0cx.js.map → logs-data-list-CneGYT6s.js.map} +1 -1
  79. package/dist/{main-sidebar-link-active-C5KQFLny.js → main-sidebar-Cgw_njDw.js} +118 -6
  80. package/dist/main-sidebar-Cgw_njDw.js.map +1 -0
  81. package/dist/{main-sidebar-link-active-BdR1g6As.cjs → main-sidebar-CnECYm2z.cjs} +117 -4
  82. package/dist/main-sidebar-CnECYm2z.cjs.map +1 -0
  83. package/dist/new/sidebar.cjs.js +32 -32
  84. package/dist/new/sidebar.cjs.js.map +1 -1
  85. package/dist/new/sidebar.es.js +2 -2
  86. package/dist/sort/sort-by.cjs.js +44 -0
  87. package/dist/sort/sort-by.cjs.js.map +1 -0
  88. package/dist/sort/sort-by.d.ts +2 -0
  89. package/dist/sort/sort-by.es.js +39 -0
  90. package/dist/sort/sort-by.es.js.map +1 -0
  91. package/dist/sort/use-url-sort.cjs.js +52 -0
  92. package/dist/sort/use-url-sort.cjs.js.map +1 -0
  93. package/dist/sort/use-url-sort.d.ts +2 -0
  94. package/dist/sort/use-url-sort.es.js +45 -0
  95. package/dist/sort/use-url-sort.es.js.map +1 -0
  96. package/dist/src/domains/logs/components/logs-list-view.d.ts +5 -1
  97. package/dist/src/domains/logs/hooks/use-logs.d.ts +2 -0
  98. package/dist/src/domains/traces/components/traces-list-view.d.ts +5 -1
  99. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +2 -2
  100. package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +16 -16
  101. package/dist/src/domains/traces/trace-list-columns.d.ts +4 -1
  102. package/dist/src/ds/components/DataList/ScoresDataList/scores-data-list.d.ts +2 -0
  103. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +2 -3
  104. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +4 -2
  105. package/dist/src/ds/components/DataList/data-list-sortable-top-cell.d.ts +4 -4
  106. package/dist/src/ds/components/DataList/data-list.d.ts +2 -1
  107. package/dist/src/ds/components/LogsDataList/logs-data-list.d.ts +2 -0
  108. package/dist/src/lib/sort/sort-by.d.ts +16 -0
  109. package/dist/src/lib/sort/use-url-sort.d.ts +24 -0
  110. package/dist/{traces-data-list-BfE5e8C_.cjs → traces-data-list-Cgkbq_if.cjs} +33 -23
  111. package/dist/traces-data-list-Cgkbq_if.cjs.map +1 -0
  112. package/dist/{traces-data-list-Dfz9qD1_.js → traces-data-list-DXwIWiC9.js} +36 -26
  113. package/dist/traces-data-list-DXwIWiC9.js.map +1 -0
  114. package/package.json +16 -6
  115. package/dist/data-list-BpYV-2Bj.cjs.map +0 -1
  116. package/dist/data-list-CcPJ3wcC.js.map +0 -1
  117. package/dist/logs-data-list-Ixf3-LUC.cjs.map +0 -1
  118. package/dist/main-sidebar-link-active-BdR1g6As.cjs.map +0 -1
  119. package/dist/main-sidebar-link-active-C5KQFLny.js.map +0 -1
  120. package/dist/traces-data-list-BfE5e8C_.cjs.map +0 -1
  121. package/dist/traces-data-list-Dfz9qD1_.js.map +0 -1
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const dataList = require('../data-list-BpYV-2Bj.cjs');
5
+ const dataList = require('../data-list-IUvskr2z.cjs');
6
6
  const dataListSkeleton = require('../data-list-skeleton-DnTMoMyR.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
- const dataListSpacer = require('../data-list-spacer-DkhJEYvX.cjs');
8
+ const dataListSpacer = require('../data-list-spacer-BYkDwIgG.cjs');
9
9
  const dataListTop = require('../data-list-top-Bjn3dbrS.cjs');
10
10
  const dateFns = require('date-fns');
11
- const tracesDataList = require('../traces-data-list-BfE5e8C_.cjs');
11
+ const tracesDataList = require('../traces-data-list-Cgkbq_if.cjs');
12
12
  const useDataListKeyboard = require('../use-data-list-keyboard-DF3tLe10.cjs');
13
13
  const layout_tabbedContainer = require('../layout/tabbed-container.cjs.js');
14
14
 
@@ -43,6 +43,7 @@ function ScoresDataListRoot(props) {
43
43
  const ScoresDataList = Object.assign(ScoresDataListRoot, {
44
44
  Top: dataListTop.DataListTop,
45
45
  TopCell: dataListTop.DataListTopCell,
46
+ SortableTopCell: dataListSpacer.DataListSortableTopCell,
46
47
  RowButton: dataListSpacer.DataListRowButton,
47
48
  NoMatch: dataListSpacer.DataListNoMatch,
48
49
  NextPageLoading: dataListSpacer.DataListNextPageLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"DataList.cjs.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { format, isToday } from 'date-fns';\nimport { DataListCell } from '../data-list-cells';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction toDate(value: Date | string): Date | null {\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-placeholder\">\n {date ? (isToday(date) ? 'Today' : format(date, 'MMM dd')) : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-muted-foreground\">\n {date ? format(date, 'h:mm:ss aaa') : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":["jsx","DataListCell","isToday","format","DataListRoot","DataListTop","DataListTopCell","DataListRowButton","DataListNoMatch","DataListNextPageLoading"],"mappings":";;;;;;;;;;;;;;AAOA,SAAS,OAAO,KAAA,EAAmC;AACjD,EAAA,MAAM,OAAO,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,IAAI,IAAA,GAAO,IAAA;AACxC;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACEA,cAAA,CAACC,wBAAA,EAAA,EAAa,SAAA,EAAU,8BAAA,EACrB,QAAA,EAAA,IAAA,GAAQC,eAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,GAAUC,cAAA,CAAO,IAAA,EAAM,QAAQ,IAAK,GAAA,EAC/D,CAAA;AAEJ;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACEH,cAAA,CAACC,4BAAa,SAAA,EAAU,mCAAA,EACrB,iBAAOE,cAAA,CAAO,IAAA,EAAM,aAAa,CAAA,GAAI,GAAA,EACxC,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,uBACEH,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACEA,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,KAAA,EAAO,OAAA,EACpE,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,uBACEA,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;;ACtFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAOA,cAAA,CAACI,wBAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAKC,uBAAA;AAAA,EACL,OAAA,EAASC,2BAAA;AAAA,EACT,SAAA,EAAWC,gCAAA;AAAA,EACX,OAAA,EAASC,8BAAA;AAAA,EACT,eAAA,EAAiBC,sCAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;;;;;;"}
1
+ {"version":3,"file":"DataList.cjs.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { format, isToday } from 'date-fns';\nimport { DataListCell } from '../data-list-cells';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction toDate(value: Date | string): Date | null {\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-placeholder\">\n {date ? (isToday(date) ? 'Today' : format(date, 'MMM dd')) : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-muted-foreground\">\n {date ? format(date, 'h:mm:ss aaa') : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":["jsx","DataListCell","isToday","format","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListRowButton","DataListNoMatch","DataListNextPageLoading"],"mappings":";;;;;;;;;;;;;;AAOA,SAAS,OAAO,KAAA,EAAmC;AACjD,EAAA,MAAM,OAAO,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,IAAI,IAAA,GAAO,IAAA;AACxC;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACEA,cAAA,CAACC,wBAAA,EAAA,EAAa,SAAA,EAAU,8BAAA,EACrB,QAAA,EAAA,IAAA,GAAQC,eAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,GAAUC,cAAA,CAAO,IAAA,EAAM,QAAQ,IAAK,GAAA,EAC/D,CAAA;AAEJ;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACEH,cAAA,CAACC,4BAAa,SAAA,EAAU,mCAAA,EACrB,iBAAOE,cAAA,CAAO,IAAA,EAAM,aAAa,CAAA,GAAI,GAAA,EACxC,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,uBACEH,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACEA,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,KAAA,EAAO,OAAA,EACpE,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,uBACEA,cAAA,CAACC,4BACC,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;;ACnFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAOA,cAAA,CAACI,wBAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAKC,uBAAA;AAAA,EACL,OAAA,EAASC,2BAAA;AAAA,EACT,eAAA,EAAiBC,sCAAA;AAAA,EACjB,SAAA,EAAWC,gCAAA;AAAA,EACX,OAAA,EAASC,8BAAA;AAAA,EACT,eAAA,EAAiBC,sCAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
- export { D as DataList } from '../data-list-CcPJ3wcC.js';
2
- export { D as DataListSkeleton } from '../data-list-skeleton-D0iW1xFo.js';
1
+ export { D as DataList } from '../data-list-CGB8KPW9.js';
2
+ export { D as DataListSkeleton } from '../data-list-skeleton-BalvZOZj.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import { D as DataListNextPageLoading, a as DataListNoMatch, d as DataListRowButton } from '../data-list-spacer-Ckmvj2AQ.js';
5
- import { c as DataListCell, b as DataListTopCell, a as DataListTop, D as DataListRoot } from '../data-list-top-DSxMTI-3.js';
4
+ import { D as DataListNextPageLoading, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from '../data-list-spacer-DkRj2ZTu.js';
5
+ import { c as DataListCell, b as DataListTopCell, a as DataListTop, D as DataListRoot } from '../data-list-top-D1fdQBy-.js';
6
6
  import { format, isToday } from 'date-fns';
7
- export { T as TracesDataList } from '../traces-data-list-Dfz9qD1_.js';
7
+ export { T as TracesDataList } from '../traces-data-list-DXwIWiC9.js';
8
8
  export { u as useDataListKeyboard } from '../use-data-list-keyboard-DFQr4t38.js';
9
9
  export { TabbedContainer } from '../layout/tabbed-container.es.js';
10
10
 
@@ -39,6 +39,7 @@ function ScoresDataListRoot(props) {
39
39
  const ScoresDataList = Object.assign(ScoresDataListRoot, {
40
40
  Top: DataListTop,
41
41
  TopCell: DataListTopCell,
42
+ SortableTopCell: DataListSortableTopCell,
42
43
  RowButton: DataListRowButton,
43
44
  NoMatch: DataListNoMatch,
44
45
  NextPageLoading: DataListNextPageLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"DataList.es.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { format, isToday } from 'date-fns';\nimport { DataListCell } from '../data-list-cells';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction toDate(value: Date | string): Date | null {\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-placeholder\">\n {date ? (isToday(date) ? 'Today' : format(date, 'MMM dd')) : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-muted-foreground\">\n {date ? format(date, 'h:mm:ss aaa') : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":[],"mappings":";;;;;;;;;;AAOA,SAAS,OAAO,KAAA,EAAmC;AACjD,EAAA,MAAM,OAAO,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,IAAI,IAAA,GAAO,IAAA;AACxC;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8BAAA,EACrB,QAAA,EAAA,IAAA,GAAQ,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,GAAU,MAAA,CAAO,IAAA,EAAM,QAAQ,IAAK,GAAA,EAC/D,CAAA;AAEJ;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACE,GAAA,CAAC,gBAAa,SAAA,EAAU,mCAAA,EACrB,iBAAO,MAAA,CAAO,IAAA,EAAM,aAAa,CAAA,GAAI,GAAA,EACxC,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,KAAA,EAAO,OAAA,EACpE,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;;ACtFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAK,WAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;"}
1
+ {"version":3,"file":"DataList.es.js","sources":["../../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx"],"sourcesContent":["import { format, isToday } from 'date-fns';\nimport { DataListCell } from '../data-list-cells';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction toDate(value: Date | string): Date | null {\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-placeholder\">\n {date ? (isToday(date) ? 'Today' : format(date, 'MMM dd')) : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n const date = toDate(timestamp);\n return (\n <DataListCell className=\"text-ui-smd text-muted-foreground\">\n {date ? format(date, 'h:mm:ss aaa') : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <span className=\"text-ui-smd block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <span className=\"text-ui-smd text-muted-foreground block max-w-full min-w-0 truncate font-mono\" title={display}>\n {display}\n </span>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n"],"names":[],"mappings":";;;;;;;;;;AAOA,SAAS,OAAO,KAAA,EAAmC;AACjD,EAAA,MAAM,OAAO,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,IAAI,IAAA,GAAO,IAAA;AACxC;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,8BAAA,EACrB,QAAA,EAAA,IAAA,GAAQ,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,GAAU,MAAA,CAAO,IAAA,EAAM,QAAQ,IAAK,GAAA,EAC/D,CAAA;AAEJ;AAUO,SAAS,sBAAA,CAAuB,EAAE,SAAA,EAAU,EAAgC;AACjF,EAAA,MAAM,IAAA,GAAO,OAAO,SAAS,CAAA;AAC7B,EAAA,uBACE,GAAA,CAAC,gBAAa,SAAA,EAAU,mCAAA,EACrB,iBAAO,MAAA,CAAO,IAAA,EAAM,aAAa,CAAA,GAAI,GAAA,EACxC,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,UAAU,KAAA,IAAS,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,GAAA;AACxD,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAS,EAAkC;AACpF,EAAA,MAAM,UAAU,QAAA,IAAY,GAAA;AAC5B,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,KAAA,EAAO,OAAA,EACpE,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,KAAA,EAAM,EAAiC;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAA,IAAS,IAAA,GAAO,GAAA,GAAM,OAAO,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AACtG,EAAA,uBACE,GAAA,CAAC,gBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+EAAA,EAAgF,KAAA,EAAO,OAAA,EACpG,QAAA,EAAA,OAAA,EACH,CAAA,EACF,CAAA;AAEJ;;ACnFA,SAAS,mBAAmB,KAAA,EAA4C;AACtE,EAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAClC;AAEO,MAAM,cAAA,GAAiB,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AAAA,EAC9D,GAAA,EAAK,WAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,QAAA,EAAU,sBAAA;AAAA,EACV,QAAA,EAAU,sBAAA;AAAA,EACV,SAAA,EAAW,uBAAA;AAAA,EACX,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW;AACb,CAAC;;;;"}
@@ -10,7 +10,7 @@ const Button = require('../Button-CSmXdQ09.cjs');
10
10
  const Notice = require('../Notice-CafEiN9-.cjs');
11
11
  const envFile = require('../env-file-BU2hStkm.cjs');
12
12
  const Txt = require('../Txt-Dy6h8r0i.cjs');
13
- const dataList = require('../data-list-BpYV-2Bj.cjs');
13
+ const dataList = require('../data-list-IUvskr2z.cjs');
14
14
  const hooks_useCopyToClipboard = require('../hooks/use-copy-to-clipboard.cjs.js');
15
15
  const fieldBlock = require('../field-block-DjOm7woP.cjs');
16
16
  const fieldErrorId = require('../field-error-id-B3Z2Zu5y.cjs');
@@ -6,7 +6,7 @@ import { B as Button } from '../Button-CtuSHFtc.js';
6
6
  import { N as Notice } from '../Notice-BHq_w0In.js';
7
7
  import { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '../env-file-BITYowCx.js';
8
8
  import { T as Txt } from '../Txt-vsOCKfz7.js';
9
- import { D as DataList } from '../data-list-CcPJ3wcC.js';
9
+ import { D as DataList } from '../data-list-CGB8KPW9.js';
10
10
  import { useCopyToClipboard } from '../hooks/use-copy-to-clipboard.es.js';
11
11
  import { F as FieldBlock } from '../field-block-Cux0sH4A.js';
12
12
  import { f as fieldErrorId } from '../field-error-id-D3yg1nBh.js';
@@ -2,8 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const logsDataList = require('../logs-data-list-Ixf3-LUC.cjs');
5
+ const logsDataList = require('../logs-data-list-CEziCQkJ.cjs');
6
6
  const dataListSkeleton = require('../data-list-skeleton-DnTMoMyR.cjs');
7
+ require('react');
8
+ require('../keyboard/keyboard-shortcuts-context.cjs.js');
7
9
 
8
10
 
9
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,3 +1,5 @@
1
- export { L as LogsDataList } from '../logs-data-list-DpjwD0cx.js';
2
- export { D as LogsDataListSkeleton } from '../data-list-skeleton-D0iW1xFo.js';
1
+ export { L as LogsDataList } from '../logs-data-list-CneGYT6s.js';
2
+ export { D as LogsDataListSkeleton } from '../data-list-skeleton-BalvZOZj.js';
3
+ import 'react';
4
+ import '../keyboard/keyboard-shortcuts-context.es.js';
3
5
  //# sourceMappingURL=LogsDataList.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -2,132 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const utils_cn = require('../cn-DqcFobIY.cjs');
7
- const mainSidebarLinkActive = require('../main-sidebar-link-active-BdR1g6As.cjs');
8
- const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
9
- const React = require('react');
5
+ const mainSidebar = require('../main-sidebar-CnECYm2z.cjs');
10
6
 
11
- function MainSidebarBottom({ className, children, ...props }) {
12
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("mt-auto", className), ...props, children });
13
- }
14
7
 
15
- function MainSidebarNavHeader({
16
- children,
17
- className,
18
- state: stateProp,
19
- href,
20
- isActive,
21
- LinkComponent: LinkProp,
22
- ...props
23
- }) {
24
- const ctx = mainSidebarLinkActive.useMaybeSidebarState();
25
- const state = stateProp ?? ctx?.state ?? "default";
26
- const isMobile = ctx?.isMobile ?? false;
27
- const Link = LinkProp ?? ctx?.LinkComponent ?? "a";
28
- const showTitle = state === "default" && !isMobile;
29
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("mt-2 mb-0.5 flex min-h-8 min-w-0 items-center", className), children: showTitle ? /* @__PURE__ */ jsxRuntime.jsx(
30
- "header",
31
- {
32
- ...props,
33
- className: utils_cn.cn("max-w-full min-w-0 truncate pl-3 text-ui-sm font-medium", {
34
- "text-foreground": isActive,
35
- "text-muted-foreground/70": !isActive
36
- }),
37
- children: href ? /* @__PURE__ */ jsxRuntime.jsx(
38
- Link,
39
- {
40
- href,
41
- className: utils_cn.cn("block min-w-0 truncate transition-colors duration-normal", {
42
- "hover:text-foreground": !isActive,
43
- "text-foreground": isActive
44
- }),
45
- children
46
- }
47
- ) : children
48
- }
49
- ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
50
- /* @__PURE__ */ jsxRuntime.jsx(reactVisuallyHidden.VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("header", { ...props, children }) }),
51
- /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "bg-border mx-3 h-px flex-1" })
52
- ] }) });
53
- }
54
8
 
55
- function getLinkKey(link) {
56
- return `${link.url}:${link.name}`;
57
- }
58
- function MainSidebarSectionLink({ link, activeCandidates, level = 0, isActive }) {
59
- const childLinks = link.children ?? [];
60
- return /* @__PURE__ */ jsxRuntime.jsx(
61
- mainSidebarLinkActive.MainSidebarNavLink,
62
- {
63
- link,
64
- isActive: isActive?.(link, activeCandidates) ?? link.isActive,
65
- level,
66
- subItems: childLinks.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(mainSidebarLinkActive.MainSidebarNavList, { className: "mt-0.5", children: childLinks.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
67
- MainSidebarSectionLink,
68
- {
69
- link: child,
70
- activeCandidates,
71
- level: level + 1,
72
- isActive
73
- },
74
- getLinkKey(child)
75
- )) }) : null
76
- }
77
- );
78
- }
79
- function MainSidebarSections({ sections, isActive, className }) {
80
- const baseId = React.useId();
81
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: sections.map((section) => {
82
- const showSeparator = section.links.length > 0 && section.separator;
83
- const headerId = section.title ? `${baseId}-${section.key}` : void 0;
84
- return /* @__PURE__ */ jsxRuntime.jsxs(
85
- mainSidebarLinkActive.MainSidebarNavSection,
86
- {
87
- className,
88
- "aria-labelledby": headerId,
89
- "aria-label": !headerId ? section.key : void 0,
90
- children: [
91
- showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(mainSidebarLinkActive.MainSidebarNavSeparator, {}) : null,
92
- section.title ? /* @__PURE__ */ jsxRuntime.jsx(MainSidebarNavHeader, { id: headerId, href: section.href, isActive: section.isHeaderActive, children: section.title }) : null,
93
- /* @__PURE__ */ jsxRuntime.jsx(mainSidebarLinkActive.MainSidebarNavList, { children: section.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
94
- MainSidebarSectionLink,
95
- {
96
- link,
97
- activeCandidates: section.links,
98
- isActive
99
- },
100
- getLinkKey(link)
101
- )) })
102
- ]
103
- },
104
- section.key
105
- );
106
- }) });
107
- }
108
-
109
- const MainSidebar = Object.assign(mainSidebarLinkActive.MainSidebarRoot, {
110
- Bottom: MainSidebarBottom,
111
- Nav: mainSidebarLinkActive.MainSidebarNav,
112
- NavSection: mainSidebarLinkActive.MainSidebarNavSection,
113
- NavLink: mainSidebarLinkActive.MainSidebarNavLink,
114
- NavLabel: mainSidebarLinkActive.MainSidebarNavLabel,
115
- NavHeader: MainSidebarNavHeader,
116
- NavList: mainSidebarLinkActive.MainSidebarNavList,
117
- NavSeparator: mainSidebarLinkActive.MainSidebarNavSeparator,
118
- Sections: MainSidebarSections,
119
- Trigger: mainSidebarLinkActive.MainSidebarTrigger,
120
- MobileTrigger: mainSidebarLinkActive.MainSidebarMobileTrigger
121
- });
122
-
123
- exports.MainSidebarMobileTrigger = mainSidebarLinkActive.MainSidebarMobileTrigger;
124
- exports.MainSidebarProvider = mainSidebarLinkActive.MainSidebarProvider;
125
- exports.MainSidebarTrigger = mainSidebarLinkActive.MainSidebarTrigger;
126
- exports.getIsLinkActive = mainSidebarLinkActive.getIsLinkActive;
127
- exports.navItemClasses = mainSidebarLinkActive.navItemClasses;
128
- exports.useMainSidebar = mainSidebarLinkActive.useMainSidebar;
129
- exports.useMaybeSidebar = mainSidebarLinkActive.useMaybeSidebar;
130
- exports.useMaybeSidebarState = mainSidebarLinkActive.useMaybeSidebarState;
131
- exports.useMobileDrawer = mainSidebarLinkActive.useMobileDrawer;
132
- exports.MainSidebar = MainSidebar;
9
+ exports.MainSidebar = mainSidebar.MainSidebar;
10
+ exports.MainSidebarMobileTrigger = mainSidebar.MainSidebarMobileTrigger;
11
+ exports.MainSidebarProvider = mainSidebar.MainSidebarProvider;
12
+ exports.MainSidebarTrigger = mainSidebar.MainSidebarTrigger;
13
+ exports.getIsLinkActive = mainSidebar.getIsLinkActive;
14
+ exports.navItemClasses = mainSidebar.navItemClasses;
15
+ exports.useMainSidebar = mainSidebar.useMainSidebar;
16
+ exports.useMaybeSidebar = mainSidebar.useMaybeSidebar;
17
+ exports.useMaybeSidebarState = mainSidebar.useMaybeSidebarState;
18
+ exports.useMobileDrawer = mainSidebar.useMobileDrawer;
133
19
  //# sourceMappingURL=MainSidebar.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainSidebar.cjs.js","sources":["../../src/ds/components/MainSidebar/main-sidebar-bottom.tsx","../../src/ds/components/MainSidebar/main-sidebar-nav-header.tsx","../../src/ds/components/MainSidebar/main-sidebar-sections.tsx","../../src/ds/components/MainSidebar/main-sidebar.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarBottomProps = ComponentPropsWithoutRef<'div'>;\n\nexport function MainSidebarBottom({ className, children, ...props }: MainSidebarBottomProps) {\n return (\n <div className={cn('mt-auto', className)} {...props}>\n {children}\n </div>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { SidebarState } from './main-sidebar-context';\nimport { useMaybeSidebarState } from './main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavHeaderProps = Omit<ComponentPropsWithoutRef<'header'>, 'children'> & {\n children?: React.ReactNode;\n state?: SidebarState;\n href?: string;\n isActive?: boolean;\n LinkComponent?: LinkComponent;\n};\nexport function MainSidebarNavHeader({\n children,\n className,\n state: stateProp,\n href,\n isActive,\n LinkComponent: LinkProp,\n ...props\n}: MainSidebarNavHeaderProps) {\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n const isMobile = ctx?.isMobile ?? false;\n const Link: LinkComponent = LinkProp ?? ctx?.LinkComponent ?? 'a';\n const showTitle = state === 'default' && !isMobile;\n\n return (\n <div className={cn('mt-2 mb-0.5 flex min-h-8 min-w-0 items-center', className)}>\n {showTitle ? (\n <header\n {...props}\n className={cn('max-w-full min-w-0 truncate pl-3 text-ui-sm font-medium', {\n 'text-foreground': isActive,\n 'text-muted-foreground/70': !isActive,\n })}\n >\n {href ? (\n <Link\n href={href}\n className={cn('block min-w-0 truncate transition-colors duration-normal', {\n 'hover:text-foreground': !isActive,\n 'text-foreground': isActive,\n })}\n >\n {children}\n </Link>\n ) : (\n children\n )}\n </header>\n ) : (\n <>\n <VisuallyHidden asChild>\n <header {...props}>{children}</header>\n </VisuallyHidden>\n <div aria-hidden=\"true\" className=\"bg-border mx-3 h-px flex-1\" />\n </>\n )}\n </div>\n );\n}\n","import { useId } from 'react';\nimport { MainSidebarNavHeader } from './main-sidebar-nav-header';\nimport { MainSidebarNavLink } from './main-sidebar-nav-link';\nimport type { NavLink } from './main-sidebar-nav-link';\nimport { MainSidebarNavList } from './main-sidebar-nav-list';\nimport { MainSidebarNavSection } from './main-sidebar-nav-section';\nimport type { NavSection } from './main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from './main-sidebar-nav-separator';\n\nexport type MainSidebarSectionsProps = {\n sections: NavSection[];\n /**\n * Called per link to decide the active state. Receives the section's links so\n * callers can use section-aware active logic without re-scanning `sections`\n * from the outside. Default: each link's `isActive`.\n */\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n};\n\ntype MainSidebarSectionLinkProps = {\n link: NavLink;\n activeCandidates: NavLink[];\n level?: number;\n isActive?: MainSidebarSectionsProps['isActive'];\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nfunction MainSidebarSectionLink({ link, activeCandidates, level = 0, isActive }: MainSidebarSectionLinkProps) {\n const childLinks = link.children ?? [];\n\n return (\n <MainSidebarNavLink\n link={link}\n isActive={isActive?.(link, activeCandidates) ?? link.isActive}\n level={level}\n subItems={\n childLinks.length > 0 ? (\n <MainSidebarNavList className=\"mt-0.5\">\n {childLinks.map(child => (\n <MainSidebarSectionLink\n key={getLinkKey(child)}\n link={child}\n activeCandidates={activeCandidates}\n level={level + 1}\n isActive={isActive}\n />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n\nexport function MainSidebarSections({ sections, isActive, className }: MainSidebarSectionsProps) {\n const baseId = useId();\n\n return (\n <>\n {sections.map(section => {\n const showSeparator = section.links.length > 0 && section.separator;\n const headerId = section.title ? `${baseId}-${section.key}` : undefined;\n return (\n <MainSidebarNavSection\n key={section.key}\n className={className}\n aria-labelledby={headerId}\n aria-label={!headerId ? section.key : undefined}\n >\n {/* Render separator and header independently — a section can have\n both (titled group preceded by a divider). */}\n {showSeparator ? <MainSidebarNavSeparator /> : null}\n {section.title ? (\n <MainSidebarNavHeader id={headerId} href={section.href} isActive={section.isHeaderActive}>\n {section.title}\n </MainSidebarNavHeader>\n ) : null}\n <MainSidebarNavList>\n {section.links.map(link => (\n <MainSidebarSectionLink\n key={getLinkKey(link)}\n link={link}\n activeCandidates={section.links}\n isActive={isActive}\n />\n ))}\n </MainSidebarNavList>\n </MainSidebarNavSection>\n );\n })}\n </>\n );\n}\n","import { MainSidebarBottom } from './main-sidebar-bottom';\nimport { MainSidebarMobileTrigger } from './main-sidebar-mobile-trigger';\nimport { MainSidebarNav } from './main-sidebar-nav';\nimport { MainSidebarNavHeader } from './main-sidebar-nav-header';\nimport { MainSidebarNavLabel } from './main-sidebar-nav-label';\nimport { MainSidebarNavLink } from './main-sidebar-nav-link';\nimport { MainSidebarNavList } from './main-sidebar-nav-list';\nimport { MainSidebarNavSection } from './main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from './main-sidebar-nav-separator';\nimport { MainSidebarRoot } from './main-sidebar-root';\nimport { MainSidebarSections } from './main-sidebar-sections';\nimport { MainSidebarTrigger } from './main-sidebar-trigger';\n\nexport type { MainSidebarStateContextValue, MobileDrawerContextValue, SidebarState } from './main-sidebar-context';\nexport { useMainSidebar, useMaybeSidebar, useMaybeSidebarState, useMobileDrawer } from './main-sidebar-context';\nexport { MainSidebarProvider, type MainSidebarProviderProps } from './main-sidebar-provider';\nexport { navItemClasses } from './main-sidebar-nav-item-classes';\nexport { type MainSidebarNavItemSize } from './main-sidebar-nav-item-classes';\nexport { type NavLink } from './main-sidebar-nav-link';\nexport { type NavSection } from './main-sidebar-nav-section';\nexport { MainSidebarTrigger } from './main-sidebar-trigger';\nexport { MainSidebarMobileTrigger } from './main-sidebar-mobile-trigger';\nexport { getIsLinkActive } from './main-sidebar-link-active';\n\nexport const MainSidebar = Object.assign(MainSidebarRoot, {\n Bottom: MainSidebarBottom,\n Nav: MainSidebarNav,\n NavSection: MainSidebarNavSection,\n NavLink: MainSidebarNavLink,\n NavLabel: MainSidebarNavLabel,\n NavHeader: MainSidebarNavHeader,\n NavList: MainSidebarNavList,\n NavSeparator: MainSidebarNavSeparator,\n Sections: MainSidebarSections,\n Trigger: MainSidebarTrigger,\n MobileTrigger: MainSidebarMobileTrigger,\n});\n"],"names":["jsx","cn","useMaybeSidebarState","jsxs","Fragment","VisuallyHidden","MainSidebarNavLink","MainSidebarNavList","useId","MainSidebarNavSection","MainSidebarNavSeparator","MainSidebarRoot","MainSidebarNav","MainSidebarNavLabel","MainSidebarTrigger","MainSidebarMobileTrigger"],"mappings":"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"}
1
+ {"version":3,"file":"MainSidebar.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -1,121 +1,2 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { c as cn } from '../cn-BmQQRqRs.js';
3
- import { u as useMaybeSidebarState, M as MainSidebarNavSection, a as MainSidebarNavSeparator, b as MainSidebarNavList, c as MainSidebarNavLink, d as MainSidebarRoot, e as MainSidebarMobileTrigger, f as MainSidebarTrigger, g as MainSidebarNavLabel, h as MainSidebarNav } from '../main-sidebar-link-active-C5KQFLny.js';
4
- export { i as MainSidebarProvider, j as getIsLinkActive, n as navItemClasses, k as useMainSidebar, l as useMaybeSidebar, m as useMobileDrawer } from '../main-sidebar-link-active-C5KQFLny.js';
5
- import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
6
- import { useId } from 'react';
7
-
8
- function MainSidebarBottom({ className, children, ...props }) {
9
- return /* @__PURE__ */ jsx("div", { className: cn("mt-auto", className), ...props, children });
10
- }
11
-
12
- function MainSidebarNavHeader({
13
- children,
14
- className,
15
- state: stateProp,
16
- href,
17
- isActive,
18
- LinkComponent: LinkProp,
19
- ...props
20
- }) {
21
- const ctx = useMaybeSidebarState();
22
- const state = stateProp ?? ctx?.state ?? "default";
23
- const isMobile = ctx?.isMobile ?? false;
24
- const Link = LinkProp ?? ctx?.LinkComponent ?? "a";
25
- const showTitle = state === "default" && !isMobile;
26
- return /* @__PURE__ */ jsx("div", { className: cn("mt-2 mb-0.5 flex min-h-8 min-w-0 items-center", className), children: showTitle ? /* @__PURE__ */ jsx(
27
- "header",
28
- {
29
- ...props,
30
- className: cn("max-w-full min-w-0 truncate pl-3 text-ui-sm font-medium", {
31
- "text-foreground": isActive,
32
- "text-muted-foreground/70": !isActive
33
- }),
34
- children: href ? /* @__PURE__ */ jsx(
35
- Link,
36
- {
37
- href,
38
- className: cn("block min-w-0 truncate transition-colors duration-normal", {
39
- "hover:text-foreground": !isActive,
40
- "text-foreground": isActive
41
- }),
42
- children
43
- }
44
- ) : children
45
- }
46
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
47
- /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx("header", { ...props, children }) }),
48
- /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "bg-border mx-3 h-px flex-1" })
49
- ] }) });
50
- }
51
-
52
- function getLinkKey(link) {
53
- return `${link.url}:${link.name}`;
54
- }
55
- function MainSidebarSectionLink({ link, activeCandidates, level = 0, isActive }) {
56
- const childLinks = link.children ?? [];
57
- return /* @__PURE__ */ jsx(
58
- MainSidebarNavLink,
59
- {
60
- link,
61
- isActive: isActive?.(link, activeCandidates) ?? link.isActive,
62
- level,
63
- subItems: childLinks.length > 0 ? /* @__PURE__ */ jsx(MainSidebarNavList, { className: "mt-0.5", children: childLinks.map((child) => /* @__PURE__ */ jsx(
64
- MainSidebarSectionLink,
65
- {
66
- link: child,
67
- activeCandidates,
68
- level: level + 1,
69
- isActive
70
- },
71
- getLinkKey(child)
72
- )) }) : null
73
- }
74
- );
75
- }
76
- function MainSidebarSections({ sections, isActive, className }) {
77
- const baseId = useId();
78
- return /* @__PURE__ */ jsx(Fragment, { children: sections.map((section) => {
79
- const showSeparator = section.links.length > 0 && section.separator;
80
- const headerId = section.title ? `${baseId}-${section.key}` : void 0;
81
- return /* @__PURE__ */ jsxs(
82
- MainSidebarNavSection,
83
- {
84
- className,
85
- "aria-labelledby": headerId,
86
- "aria-label": !headerId ? section.key : void 0,
87
- children: [
88
- showSeparator ? /* @__PURE__ */ jsx(MainSidebarNavSeparator, {}) : null,
89
- section.title ? /* @__PURE__ */ jsx(MainSidebarNavHeader, { id: headerId, href: section.href, isActive: section.isHeaderActive, children: section.title }) : null,
90
- /* @__PURE__ */ jsx(MainSidebarNavList, { children: section.links.map((link) => /* @__PURE__ */ jsx(
91
- MainSidebarSectionLink,
92
- {
93
- link,
94
- activeCandidates: section.links,
95
- isActive
96
- },
97
- getLinkKey(link)
98
- )) })
99
- ]
100
- },
101
- section.key
102
- );
103
- }) });
104
- }
105
-
106
- const MainSidebar = Object.assign(MainSidebarRoot, {
107
- Bottom: MainSidebarBottom,
108
- Nav: MainSidebarNav,
109
- NavSection: MainSidebarNavSection,
110
- NavLink: MainSidebarNavLink,
111
- NavLabel: MainSidebarNavLabel,
112
- NavHeader: MainSidebarNavHeader,
113
- NavList: MainSidebarNavList,
114
- NavSeparator: MainSidebarNavSeparator,
115
- Sections: MainSidebarSections,
116
- Trigger: MainSidebarTrigger,
117
- MobileTrigger: MainSidebarMobileTrigger
118
- });
119
-
120
- export { MainSidebar, MainSidebarMobileTrigger, MainSidebarTrigger, useMaybeSidebarState };
1
+ export { M as MainSidebar, a as MainSidebarMobileTrigger, b as MainSidebarProvider, c as MainSidebarTrigger, g as getIsLinkActive, n as navItemClasses, u as useMainSidebar, d as useMaybeSidebar, e as useMaybeSidebarState, f as useMobileDrawer } from '../main-sidebar-Cgw_njDw.js';
121
2
  //# sourceMappingURL=MainSidebar.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainSidebar.es.js","sources":["../../src/ds/components/MainSidebar/main-sidebar-bottom.tsx","../../src/ds/components/MainSidebar/main-sidebar-nav-header.tsx","../../src/ds/components/MainSidebar/main-sidebar-sections.tsx","../../src/ds/components/MainSidebar/main-sidebar.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarBottomProps = ComponentPropsWithoutRef<'div'>;\n\nexport function MainSidebarBottom({ className, children, ...props }: MainSidebarBottomProps) {\n return (\n <div className={cn('mt-auto', className)} {...props}>\n {children}\n </div>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { SidebarState } from './main-sidebar-context';\nimport { useMaybeSidebarState } from './main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavHeaderProps = Omit<ComponentPropsWithoutRef<'header'>, 'children'> & {\n children?: React.ReactNode;\n state?: SidebarState;\n href?: string;\n isActive?: boolean;\n LinkComponent?: LinkComponent;\n};\nexport function MainSidebarNavHeader({\n children,\n className,\n state: stateProp,\n href,\n isActive,\n LinkComponent: LinkProp,\n ...props\n}: MainSidebarNavHeaderProps) {\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n const isMobile = ctx?.isMobile ?? false;\n const Link: LinkComponent = LinkProp ?? ctx?.LinkComponent ?? 'a';\n const showTitle = state === 'default' && !isMobile;\n\n return (\n <div className={cn('mt-2 mb-0.5 flex min-h-8 min-w-0 items-center', className)}>\n {showTitle ? (\n <header\n {...props}\n className={cn('max-w-full min-w-0 truncate pl-3 text-ui-sm font-medium', {\n 'text-foreground': isActive,\n 'text-muted-foreground/70': !isActive,\n })}\n >\n {href ? (\n <Link\n href={href}\n className={cn('block min-w-0 truncate transition-colors duration-normal', {\n 'hover:text-foreground': !isActive,\n 'text-foreground': isActive,\n })}\n >\n {children}\n </Link>\n ) : (\n children\n )}\n </header>\n ) : (\n <>\n <VisuallyHidden asChild>\n <header {...props}>{children}</header>\n </VisuallyHidden>\n <div aria-hidden=\"true\" className=\"bg-border mx-3 h-px flex-1\" />\n </>\n )}\n </div>\n );\n}\n","import { useId } from 'react';\nimport { MainSidebarNavHeader } from './main-sidebar-nav-header';\nimport { MainSidebarNavLink } from './main-sidebar-nav-link';\nimport type { NavLink } from './main-sidebar-nav-link';\nimport { MainSidebarNavList } from './main-sidebar-nav-list';\nimport { MainSidebarNavSection } from './main-sidebar-nav-section';\nimport type { NavSection } from './main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from './main-sidebar-nav-separator';\n\nexport type MainSidebarSectionsProps = {\n sections: NavSection[];\n /**\n * Called per link to decide the active state. Receives the section's links so\n * callers can use section-aware active logic without re-scanning `sections`\n * from the outside. Default: each link's `isActive`.\n */\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n};\n\ntype MainSidebarSectionLinkProps = {\n link: NavLink;\n activeCandidates: NavLink[];\n level?: number;\n isActive?: MainSidebarSectionsProps['isActive'];\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nfunction MainSidebarSectionLink({ link, activeCandidates, level = 0, isActive }: MainSidebarSectionLinkProps) {\n const childLinks = link.children ?? [];\n\n return (\n <MainSidebarNavLink\n link={link}\n isActive={isActive?.(link, activeCandidates) ?? link.isActive}\n level={level}\n subItems={\n childLinks.length > 0 ? (\n <MainSidebarNavList className=\"mt-0.5\">\n {childLinks.map(child => (\n <MainSidebarSectionLink\n key={getLinkKey(child)}\n link={child}\n activeCandidates={activeCandidates}\n level={level + 1}\n isActive={isActive}\n />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n\nexport function MainSidebarSections({ sections, isActive, className }: MainSidebarSectionsProps) {\n const baseId = useId();\n\n return (\n <>\n {sections.map(section => {\n const showSeparator = section.links.length > 0 && section.separator;\n const headerId = section.title ? `${baseId}-${section.key}` : undefined;\n return (\n <MainSidebarNavSection\n key={section.key}\n className={className}\n aria-labelledby={headerId}\n aria-label={!headerId ? section.key : undefined}\n >\n {/* Render separator and header independently — a section can have\n both (titled group preceded by a divider). */}\n {showSeparator ? <MainSidebarNavSeparator /> : null}\n {section.title ? (\n <MainSidebarNavHeader id={headerId} href={section.href} isActive={section.isHeaderActive}>\n {section.title}\n </MainSidebarNavHeader>\n ) : null}\n <MainSidebarNavList>\n {section.links.map(link => (\n <MainSidebarSectionLink\n key={getLinkKey(link)}\n link={link}\n activeCandidates={section.links}\n isActive={isActive}\n />\n ))}\n </MainSidebarNavList>\n </MainSidebarNavSection>\n );\n })}\n </>\n );\n}\n","import { MainSidebarBottom } from './main-sidebar-bottom';\nimport { MainSidebarMobileTrigger } from './main-sidebar-mobile-trigger';\nimport { MainSidebarNav } from './main-sidebar-nav';\nimport { MainSidebarNavHeader } from './main-sidebar-nav-header';\nimport { MainSidebarNavLabel } from './main-sidebar-nav-label';\nimport { MainSidebarNavLink } from './main-sidebar-nav-link';\nimport { MainSidebarNavList } from './main-sidebar-nav-list';\nimport { MainSidebarNavSection } from './main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from './main-sidebar-nav-separator';\nimport { MainSidebarRoot } from './main-sidebar-root';\nimport { MainSidebarSections } from './main-sidebar-sections';\nimport { MainSidebarTrigger } from './main-sidebar-trigger';\n\nexport type { MainSidebarStateContextValue, MobileDrawerContextValue, SidebarState } from './main-sidebar-context';\nexport { useMainSidebar, useMaybeSidebar, useMaybeSidebarState, useMobileDrawer } from './main-sidebar-context';\nexport { MainSidebarProvider, type MainSidebarProviderProps } from './main-sidebar-provider';\nexport { navItemClasses } from './main-sidebar-nav-item-classes';\nexport { type MainSidebarNavItemSize } from './main-sidebar-nav-item-classes';\nexport { type NavLink } from './main-sidebar-nav-link';\nexport { type NavSection } from './main-sidebar-nav-section';\nexport { MainSidebarTrigger } from './main-sidebar-trigger';\nexport { MainSidebarMobileTrigger } from './main-sidebar-mobile-trigger';\nexport { getIsLinkActive } from './main-sidebar-link-active';\n\nexport const MainSidebar = Object.assign(MainSidebarRoot, {\n Bottom: MainSidebarBottom,\n Nav: MainSidebarNav,\n NavSection: MainSidebarNavSection,\n NavLink: MainSidebarNavLink,\n NavLabel: MainSidebarNavLabel,\n NavHeader: MainSidebarNavHeader,\n NavList: MainSidebarNavList,\n NavSeparator: MainSidebarNavSeparator,\n Sections: MainSidebarSections,\n Trigger: MainSidebarTrigger,\n MobileTrigger: MainSidebarMobileTrigger,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MainSidebar.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
- import { o as dataListRowStaticStyles, b as DataListTopCell, D as DataListRoot, p as DataListTopSelectCell, q as DataListSelectCell, f as DataListTimeCell, g as DataListDateCell, r as DataListNumberCell, t as DataListRowHeaderCell, k as DataListIdCell, u as DataListDescriptionCell, v as DataListNameCell, e as DataListTextCell, w as DataListActionsCell, c as DataListCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, a as DataListTop } from './data-list-top-DSxMTI-3.js';
2
- import { u as useDataListRowWrapperContext, D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper } from './data-list-spacer-Ckmvj2AQ.js';
1
+ import { l as dataListRowStaticStyles, D as DataListRoot, m as DataListTopSelectCell, n as DataListSelectCell, f as DataListTimeCell, j as DataListCreatedCell, g as DataListDateCell, o as DataListNumberCell, p as DataListRowHeaderCell, k as DataListIdCell, q as DataListDescriptionCell, r as DataListNameCell, e as DataListTextCell, t as DataListActionsCell, c as DataListCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-D1fdQBy-.js';
2
+ import { u as useDataListRowWrapperContext, D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-DkRj2ZTu.js';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
- import { ArrowLeftIcon, ArrowRightIcon, ArrowUpDown, ArrowDown, ArrowUp } from 'lucide-react';
4
+ import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';
5
5
  import { B as Button } from './Button-CtuSHFtc.js';
6
6
  import { forwardRef } from 'react';
7
7
  import { c as cn } from './cn-BmQQRqRs.js';
@@ -44,62 +44,6 @@ const DataListRowStatic = forwardRef(
44
44
  );
45
45
  DataListRowStatic.displayName = "DataListRowStatic";
46
46
 
47
- const sortIcons = {
48
- asc: ArrowUp,
49
- desc: ArrowDown,
50
- none: ArrowUpDown
51
- };
52
- const sortLabels = {
53
- asc: "ascending",
54
- desc: "descending"
55
- };
56
- const sortAnimations = {
57
- asc: "animate-sort-arrow-up",
58
- desc: "animate-sort-arrow-down"
59
- };
60
- const sortTooltips = {
61
- asc: "Asc",
62
- desc: "Desc",
63
- none: "Sort"
64
- };
65
- function DataListSortableTopCell({
66
- children,
67
- sortKey,
68
- sort,
69
- onSortChange,
70
- align = "start",
71
- className,
72
- ...props
73
- }) {
74
- const next = sort === "asc" ? "desc" : "asc";
75
- const SortIcon = sortIcons[sort ?? "none"];
76
- const label = typeof children === "string" ? children : sortKey;
77
- const current = sort ? `sorted ${sortLabels[sort]}` : "not sorted";
78
- return /* @__PURE__ */ jsxs(
79
- DataListTopCell,
80
- {
81
- "data-sort": sort ?? "none",
82
- className: cn("gap-1 overflow-visible", align === "end" && "flex-row-reverse", className),
83
- ...props,
84
- children: [
85
- /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children }),
86
- /* @__PURE__ */ jsx(
87
- Button,
88
- {
89
- variant: "ghost",
90
- size: "icon-xs",
91
- "aria-label": `${label}, ${current}, sort ${sortLabels[next]}`,
92
- tooltip: sortTooltips[sort ?? "none"],
93
- onClick: () => onSortChange(next, sortKey),
94
- className: cn("shrink-0", sort ? "text-foreground" : "text-muted-foreground"),
95
- children: /* @__PURE__ */ jsx(SortIcon, { className: sort && sortAnimations[sort] }, sort ?? "none")
96
- }
97
- )
98
- ]
99
- }
100
- );
101
- }
102
-
103
47
  const DataListSubheader = forwardRef(
104
48
  ({ children, className, ...rest }, ref) => {
105
49
  return /* @__PURE__ */ jsx(
@@ -164,6 +108,7 @@ const DataList = Object.assign(DataListRoot, {
164
108
  RowHeaderCell: DataListRowHeaderCell,
165
109
  NumberCell: DataListNumberCell,
166
110
  DateCell: DataListDateCell,
111
+ CreatedCell: DataListCreatedCell,
167
112
  TimeCell: DataListTimeCell,
168
113
  SelectCell: DataListSelectCell,
169
114
  TopSelectCell: DataListTopSelectCell,
@@ -176,4 +121,4 @@ const DataList = Object.assign(DataListRoot, {
176
121
  });
177
122
 
178
123
  export { DataList as D, DataListSubHeading as a, DataListSubheader as b };
179
- //# sourceMappingURL=data-list-CcPJ3wcC.js.map
124
+ //# sourceMappingURL=data-list-CGB8KPW9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-CGB8KPW9.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-muted-foreground col-span-full flex items-center justify-center gap-4 py-3\">\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} icon={<ArrowLeftIcon />}>\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNextPage} icon={<ArrowRightIcon />}>\n Next\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-4 px-3 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-3 py-2 text-ui-md font-medium text-muted-foreground',\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-placeholder', 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-4 px-3 [&>*]: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 DataListCreatedCell,\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 { DataListSortableTopCell } from './data-list-sortable-top-cell';\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';\nexport type { DataListSortableTopCellProps, DataListSort } from './data-list-sortable-top-cell';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\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 CreatedCell: DataListCreatedCell,\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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"}